Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
curtains.c
Go to the documentation of this file.
1#include "common.h"
2#include "theater/walls.png.h"
3#include "theater/curtains.png.h"
4#include "theater/floor.png.h"
5#include "ui/no_controller.png.h"
6#include "ld_addrs.h"
7#include "nu/nusys.h"
8#include "game_modes.h"
9#include "include_asset.h"
10
11INCLUDE_IMG("theater/walls.png", theater_walls_png);
12
20
21INCLUDE_IMG("theater/curtains.png", theater_curtains_png);
22
30
31INCLUDE_IMG("theater/floor.png", theater_floor_png);
32INCLUDE_PAL("theater/floor.pal", theater_floor_pal);
33
42
43#include "theater/left_wall_vtx.vtx.inc.c"
44#include "theater/right_wall_vtx.vtx.inc.c"
45#include "theater/floor_vtx.vtx.inc.c"
46#include "theater/left_inset_shadow_vtx.vtx.inc.c"
47#include "theater/right_inset_shadow_vtx.vtx.inc.c"
48#include "theater/curtain_vtx.vtx.inc.c"
49#include "theater/wall_shadows_vtx.vtx.inc.c"
50
61
68 gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
69 gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0),
70 gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0),
71 gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0),
72 gsSP2Triangles(15, 16, 17, 0, 15, 17, 18, 0),
73 gsSP2Triangles(19, 20, 21, 0, 19, 21, 22, 0),
74 gsSP2Triangles(13, 23, 24, 0, 13, 24, 14, 0),
75 gsSP2Triangles(23, 25, 26, 0, 23, 26, 24, 0),
76 gsSP2Triangles(25, 27, 28, 0, 25, 28, 26, 0),
77 gsSP2Triangles(27, 29, 30, 0, 27, 30, 28, 0),
79};
80
92
100 gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
101 gsSP2Triangles(4, 5, 0, 0, 4, 0, 3, 0),
102 gsSP2Triangles(1, 6, 7, 0, 1, 7, 2, 0),
103 gsSP2Triangles(3, 8, 9, 0, 3, 9, 10, 0),
104 gsSP2Triangles(11, 4, 3, 0, 11, 3, 10, 0),
105 gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0),
106 gsSP2Triangles(8, 12, 15, 0, 8, 15, 9, 0),
107 gsSP2Triangles(6, 16, 13, 0, 6, 13, 7, 0),
108 gsSP2Triangles(14, 17, 18, 0, 19, 14, 18, 0),
109 gsSP2Triangles(20, 11, 21, 0, 11, 22, 21, 0),
110 gsSP2Triangles(23, 19, 18, 0, 23, 18, 24, 0),
111 gsSP2Triangles(22, 23, 24, 0, 22, 24, 21, 0),
113};
114
126
138
148
150 {
151 {(SCREEN_WIDTH/2)*4, (SCREEN_HEIGHT/2)*4, 0x200 - 1, 0},
152 {(SCREEN_WIDTH/2)*4, (SCREEN_HEIGHT/2)*4, 0x200 - 1, 0},
153 }
154};
155
175
176INCLUDE_IMG("ui/no_controller.png", ui_no_controller_png);
177
198
200 gsSPTextureRectangle(0x0180, 0x0260, 0x0380, 0x02E0, G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400),
201 gsDPPipeSync(),
203};
204
211
214 gCurtainScale = 2.0f;
215 gCurtainScaleGoal = 2.0f;
216 gCurtainFade = 0.0f;
217 gCurtainFadeGoal = 0.0f;
218}
219
220void update_curtains(void) {
221}
222
223void render_curtains(void) {
226 }
227
230 }
231
232 if (gCurtainScale < 1.9) {
233 Matrix4f m;
234 f32 scale;
235 s8 rgb;
236
240
241 guFrustumF(m, -80.0f, 80.0f, -60.0f, 60.0f, 160.0f, 640.0f, 1.0f);
242 guMtxF2L(m, &D_8009BAA8[0]);
243
245
246 scale = gCurtainScale - 0.01;
247 if (scale < 1.0f) {
248 scale = 1.0f;
249 }
250
251 guPositionF(m, 0.0f, 0.0f, 0.0f, scale * 0.1, 0.0f, 0.0f, -320.0f);
252
253 guMtxF2L(m, &D_8009BAA8[1]);
254
256 rgb = 255.0f - (gCurtainFade * 255.0f);
257 gDPSetPrimColor(gMainGfxPos++, 0, 0, rgb, rgb, rgb, 255);
261 }
262
263 if (gCurtainDrawCallback != NULL) {
265 }
266
267 if (!(gGameStatusPtr->contBitPattern & 1)) {
271 s32 alpha = ((gGameStatusPtr->frameCounter) % 0x18) << 5;
272
273 if (alpha > 255) {
274 alpha = 255;
275 }
276
279 gDPSetPrimColor(gMainGfxPos++, 0, 0, 0xFF, 0x20, 0x10, alpha);
281 }
282 }
283}
284
286 gCurtainScaleGoal = scale;
287}
288
290 gCurtainScaleGoal = scale;
291 gCurtainScale = scale;
292}
293
295 gCurtainDrawCallback = callback;
296}
297
301
BSS s32 PopupMenu_SelectedIndex
u16 * nuGfxCfb_ptr
Definition cam_main.c:14
f32 Matrix4f[4][4]
Gfx TheaterInsetShadowsGfx[]
Definition curtains.c:81
void initialize_curtains(void)
Definition curtains.c:212
Gfx NoControllerGfx[]
Definition curtains.c:199
void set_curtain_fade(f32 fade)
Definition curtains.c:302
Gfx TheaterWallShadowsGfx[]
Definition curtains.c:51
Gfx TheaterGfx[]
Definition curtains.c:139
Gfx D_80075730[]
Definition curtains.c:23
Gfx NoControllerSetupTexGfx[]
Definition curtains.c:178
Vp TheaterViewport
Definition curtains.c:149
void update_curtains(void)
Definition curtains.c:220
Gfx D_800746E0[]
Definition curtains.c:13
void set_curtain_fade_goal(f32 fade)
Definition curtains.c:298
void set_curtain_draw_callback(UNK_FUN_PTR(callback))
Definition curtains.c:294
Gfx TheaterInitGfx[]
Definition curtains.c:156
BSS f32 gCurtainFadeGoal
Definition curtains.c:208
Gfx D_800758A0[]
Definition curtains.c:34
BSS f32 gCurtainScale
Definition curtains.c:205
Gfx TheaterRightWallGfx[]
Definition curtains.c:115
BSS Mtx D_8009BAA8[2]
Definition curtains.c:210
void set_curtain_scale(f32 scale)
Definition curtains.c:289
Gfx TheaterFloorGfx[]
Definition curtains.c:93
void render_curtains(void)
Definition curtains.c:223
BSS f32 gCurtainScaleGoal
Definition curtains.c:206
BSS f32 gCurtainFade
Definition curtains.c:207
Gfx TheaterLeftWallGfx[]
Definition curtains.c:127
Gfx TheaterCurtainGfx[]
Definition curtains.c:62
void set_curtain_scale_goal(f32 scale)
Definition curtains.c:285
Color_RGB8 rgb
Definition demo_api.c:16
#define guMtxF2L
#define guFrustumF
#define guPositionF
@ DEMO_STATE_NONE
Definition enums.h:3534
s32 get_game_mode(void)
Definition game_modes.c:123
@ GAME_MODE_TITLE_SCREEN
Definition game_modes.h:9
@ GAME_MODE_INTRO
Definition game_modes.h:21
#define INCLUDE_PAL(FILENAME, SYMBOLNAME)
#define INCLUDE_IMG(FILENAME, SYMBOLNAME)
#define SCREEN_WIDTH
Definition macros.h:109
#define BSS
Definition macros.h:7
#define PM_CC2_MULTIPLY_PRIM
Definition macros.h:309
#define SCREEN_HEIGHT
Definition macros.h:110
#define UNK_FUN_PTR(name)
Definition types.h:10
GameStatus * gGameStatusPtr
Definition main_loop.c:32
Gfx * gMainGfxPos
Definition cam_main.c:15