34s16
D_80249BBC[16] = { 315, 303, 283, 260, 235, 210, 185, 160, 135, 110, 85, 60, 37, 17, 5, 0 };
35s16
D_80249BDC[16] = { 315, 303, 283, 260, 235, 210, 185, 160, 135, 110, 85, 60, 37, 17, 5, 0 };
36s16
D_80249BFC[16] = { 157, 151, 141, 130, 117, 105, 92, 80, 67, 55, 42, 30, 18, 8, 2, 0 };
37s16
D_80249C1C[16] = { 157, 151, 141, 130, 117, 105, 92, 80, 67, 55, 42, 30, 18, 8, 2, 0 };
38s16
D_80249C3C[16] = { 63, 60, 56, 52, 47, 42, 37, 32, 27, 22, 17, 12, 7, 3, 1, 0 };
39s16
D_80249C5C[16] = { 63, 60, 56, 52, 47, 42, 37, 32, 27, 22, 17, 12, 7, 3, 1, 0 };
40s16
D_80249C7C[10] = { -5, -17, -37, -60, -85, -110, -135, -160, -185, -210 };
41s16
D_80249C90[10] = { -5, -17, -37, -60, -85, -110, -135, -160, -185, -210 };
42s16
D_80249CA4[10] = { -2, -8, -18, -30, -42, -55, -70, -85, -100, -115 };
43s16
D_80249CB8[10] = { -2, -8, -18, -30, -42, -55, -70, -85, -100, -115 };
44s16
D_80249CCC[10] = { -1, -3, -7, -12, -17, -22, -27, -32, -37, -42 };
45s16
D_80249CE0[10] = { -1, -3, -7, -12, -17, -22, -27, -32, -37, -42 };
46s16
D_80249CF4[16] = { 180, 173, 161, 148, 134, 120, 105, 91, 77, 62, 48, 34, 21, 9, 2, 0 };
47s16
D_80249D14[16] = { 0, 2, 9, 21, 34, 48, 62, 77, 91, 105, 120, 134, 148, 161, 173, 180 };
48s16
D_80249D34[10] = { 185, 160, 135, 110, 85, 60, 37, 17, 5, 0 };
49s16
D_80249D48[10] = { 0, 5, 17, 37, 60, 85, 110, 135, 160, 185};
53 .vscale = { 640, 480, 511, 0},
54 .vtrans = { 640, 480, 511, 0},
58 7.0f, 12.5f, 13.0f, 14.5f, 14.0f,
59 13.0f, 11.5f, 9.5f, 7.5f, 5.5f,
60 3.5f, 2.0f, 1.0f, 0.5f, 0.0f
73 .fpDrawContents = NULL,
132BSS s32 D_802517D0[1];
133BSS s32 D_802517D4[1];
141void filemenu_draw_rect(s32 ulx, s32 uly, s32 lrx, s32 lry, s32 tileIdx, s32 uls, s32 ult, s32 dsdx, s32 dtdy) {
142 if (ulx <= -2688 || uly <= -2688 || lrx <= 0 || lry <= 0) {
145 if (ulx >= 1280 || uly >= 960 || lrx >= 2688 || lry >= 2688) {
148 gSPScisTextureRectangle(
gMainGfxPos++, ulx, uly, lrx, lry, tileIdx, uls, ult, dsdx, dtdy);
172 s8 parent = window->
parent;
204 if ((xDelta == 0) && (yDelta == 0)) {
227 s8 parent = window->
parent;
308 s32* posX, s32* posY, s32* posZ,
309 f32* scaleX, f32* scaleY,
310 f32* rotX, f32* rotY, f32* rotZ,
317 if (updateCounter == 0) {
318 window->
flags &= ~WINDOW_FLAG_HIDDEN;
325 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
332 s32* posX, s32* posY, s32* posZ,
333 f32* scaleX, f32* scaleY,
334 f32* rotX, f32* rotY, f32* rotZ,
341 if (updateCounter == 0) {
342 window->
flags &= ~WINDOW_FLAG_HIDDEN;
349 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
356 s32* posX, s32* posY, s32* posZ,
357 f32* scaleX, f32* scaleY,
358 f32* rotX, f32* rotY, f32* rotZ,
365 if (updateCounter == 0) {
366 window->
flags &= ~WINDOW_FLAG_HIDDEN;
373 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
380 s32* posX, s32* posY, s32* posZ,
381 f32* scaleX, f32* scaleY,
382 f32* rotX, f32* rotY, f32* rotZ,
389 if (updateCounter == 0) {
390 window->
flags &= ~WINDOW_FLAG_HIDDEN;
397 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
404 s32* posX, s32* posY, s32* posZ,
405 f32* scaleX, f32* scaleY,
406 f32* rotX, f32* rotY, f32* rotZ,
413 if (updateCounter == 0) {
414 window->
flags &= ~WINDOW_FLAG_HIDDEN;
421 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
428 s32* posX, s32* posY, s32* posZ,
429 f32* scaleX, f32* scaleY,
430 f32* rotX, f32* rotY, f32* rotZ,
437 if (updateCounter == 0) {
438 window->
flags &= ~WINDOW_FLAG_HIDDEN;
445 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
452 s32* posX, s32* posY, s32* posZ,
453 f32* scaleX, f32* scaleY,
454 f32* rotX, f32* rotY, f32* rotZ,
465 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
473 s32* posX, s32* posY, s32* posZ,
474 f32* scaleX, f32* scaleY,
475 f32* rotX, f32* rotY, f32* rotZ,
486 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
494 s32* posX, s32* posY, s32* posZ,
495 f32* scaleX, f32* scaleY,
496 f32* rotX, f32* rotY, f32* rotZ,
507 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
515 s32* posX, s32* posY, s32* posZ,
516 f32* scaleX, f32* scaleY,
517 f32* rotX, f32* rotY, f32* rotZ,
528 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
536 s32* posX, s32* posY, s32* posZ,
537 f32* scaleX, f32* scaleY,
538 f32* rotX, f32* rotY, f32* rotZ,
549 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
557 s32* posX, s32* posY, s32* posZ,
558 f32* scaleX, f32* scaleY,
559 f32* rotX, f32* rotY, f32* rotZ,
570 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
578 s32* posX, s32* posY, s32* posZ,
579 f32* scaleX, f32* scaleY,
580 f32* rotX, f32* rotY, f32* rotZ,
587 if (updateCounter == 0) {
588 window->
flags &= ~WINDOW_FLAG_HIDDEN;
596 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
603 s32* posX, s32* posY, s32* posZ,
604 f32* scaleX, f32* scaleY,
605 f32* rotX, f32* rotY, f32* rotZ,
612 if (updateCounter < 10) {
617 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
625 s32* posX, s32* posY, s32* posZ,
626 f32* scaleX, f32* scaleY,
627 f32* rotX, f32* rotY, f32* rotZ,
634 f32 temp_f4 = updateCounter / 16.0f;
635 s32 widthDelta = (parent->
width / 2) - (window->
width / 2);
636 s32 heightDelta = (parent->
height / 2) - (window->
height / 2) - 34;
638 if (updateCounter < 16) {
639 *posX += -window->
pos.
x + (((f32) (widthDelta - window->
pos.
x) * temp_f4) + window->
pos.
x);
640 *posY += -window->
pos.
y + (((f32) (heightDelta - window->
pos.
y) * temp_f4) + window->
pos.
y);
642 *posX += -window->
pos.
x + ((f32) (widthDelta - window->
pos.
x) + window->
pos.
x);
643 *posY += -window->
pos.
y + ((f32) (heightDelta - window->
pos.
y) + window->
pos.
y);
644 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
651 s32* posX, s32* posY, s32* posZ,
652 f32* scaleX, f32* scaleY,
653 f32* rotX, f32* rotY, f32* rotZ,
659 f32 temp_f4 = 1.0f - (updateCounter / 16.0f);
661 if (updateCounter < 16) {
662 *posX += -window->
pos.
x + (((80 - window->
pos.
x) * temp_f4) + window->
pos.
x);
663 *posY += -window->
pos.
y + (((36 - window->
pos.
y) * temp_f4) + window->
pos.
y);
665 *posX += -window->
pos.
x + ((80 - window->
pos.
x) * 0.0f + window->
pos.
x);
666 *posY += -window->
pos.
y + ((36 - window->
pos.
y) * 0.0f + window->
pos.
y);
667 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
674 s32* posX, s32* posY, s32* posZ,
675 f32* scaleX, f32* scaleY,
676 f32* rotX, f32* rotY, f32* rotZ,
686 gDPSetCombineMode(
gMainGfxPos++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
687 gDPSetRenderMode(
gMainGfxPos++, G_RM_CLD_SURF, G_RM_CLD_SURF2);
688 gDPSetPrimColor(
gMainGfxPos++, 0, 0, 0, 0, 0, 140);
690 if (updateCounter < 10) {
691 s32 x = updateCounter * 16;
692 s32 y = updateCounter * 12;
701 counter = updateCounter - 10;
703 window->
flags &= ~WINDOW_FLAG_HIDDEN;
706 if (updateCounter >= 20) {
707 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
714 s32* posX, s32* posY, s32* posZ,
715 f32* scaleX, f32* scaleY,
716 f32* rotX, f32* rotY, f32* rotZ,
726 gDPSetCombineMode(
gMainGfxPos++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
727 gDPSetRenderMode(
gMainGfxPos++, G_RM_CLD_SURF, G_RM_CLD_SURF2);
728 gDPSetPrimColor(
gMainGfxPos++, 0, 0, 0, 0, 0, 140 - updateCounter * 14);
732 window->
flags &= ~WINDOW_FLAG_INITIAL_ANIMATION;
817 rotAngle = -
atan2(startX, startZ, endX, endZ) - 90.0f;
825 G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
827 gDPSetPrimColor(
gMainGfxPos++, 0, 0, 0, 0, 0, 128);
830 guTranslateF(transformMtx, startX + 4.0f, startZ + 4.0f, 0.0f);
831 guScaleF(tempMtx, -1.0f, 1.0f, 1.0f);
832 guMtxCatF(tempMtx, transformMtx, transformMtx);
833 guRotateF(tempMtx, rotAngle, 0.0f, 0.0f, 1.0f);
834 guMtxCatF(tempMtx, transformMtx, transformMtx);
838 G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
843 guMtxCatF(tempMtx, transformMtx, transformMtx);
847 G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
852 gDPSetPrimColor(
gMainGfxPos++, 0, 0, 230, 230, 230, 255);
856 guScaleF(tempMtx, -1.0f, 1.0f, 1.0f);
857 guMtxCatF(tempMtx, transformMtx, transformMtx);
858 guRotateF(tempMtx, rotAngle, 0.0f, 0.0f, 1.0f);
859 guMtxCatF(tempMtx, transformMtx, transformMtx);
863 G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
868 guMtxCatF(tempMtx, transformMtx, transformMtx);
872 G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
929 if (menu->
fpInit != NULL) {
WindowBackground background
WindowStyleCustom * customStyle
#define DX_MOD_NAME
Creates the version string that appears on the file select menu.
@ WINDOW_FLAG_INITIAL_ANIMATION
@ WINDOW_FLAG_HIDDEN
Updated but not rendered.
b32 fio_load_globals(void)
b32 fio_load_game(s32 saveSlot)
SaveFileSummary gSaveSlotSummary[4]
SaveSlotMetadata gSaveSlotMetadata[4]
void set_window_update(s32 panelID, s32)
void update_window_hierarchy(s32 windowIndex, u8 arg1)
void setup_pause_menu_tab(MenuWindowBP *bpArray, s32 arraySize)
@ GAME_MODE_END_FILE_SELECT
void hud_element_set_alpha(s32 id, s32 opacity)
void hud_element_draw_without_clipping(s32 id)
void hud_element_set_render_pos(s32 id, s32 x, s32 y)
s32 hud_element_create(HudScript *anim)
Creates a new HUD element and returns its ID.
void hud_element_set_flags(s32 id, s32 flags)
Turns on the given flags.
void hud_element_free(s32 id)
@ HUD_ELEMENT_FLAG_DROP_SHADOW
#define DMA_COPY_SEGMENT(segment)
GameStatus * gGameStatusPtr
DisplayContext * gDisplayContext
SaveData gCurrentSaveFile