match windows.c and migrate data for draw_box (#646)

* match 9 functions

* draw_box data

* fix warnings

* fix

* fix warnings again

* PR suggestions

* replace int literals with enum values

* two more ints replaced
This commit is contained in:
Unnunu 2022-02-13 11:19:59 +03:00 committed by GitHub
parent 0f27b16f3c
commit 546152b69e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
46 changed files with 1248 additions and 1404 deletions

View File

@ -2139,13 +2139,18 @@ typedef struct WindowStyleCustom {
/* 0x1C */ char unk_1C[0x4];
/* 0x20 */ Gfx opaqueCombineMode; // used when alpha == 255
/* 0x28 */ Gfx transparentCombineMode; // used when alpha < 255
/* 0x30 */ s8 color1[4];
/* 0x34 */ s8 color2[4];
/* 0x30 */ Color_RGBA8 color1;
/* 0x34 */ Color_RGBA8 color2;
} WindowStyleCustom; // size = 0x38;
typedef union {
int defaultStyleID;
WindowStyleCustom* customStyle;
} WindowStyle TRANSPARENT_UNION;
typedef union {
int i;
void (*func)(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void (*func)(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
} WindowUpdateFunc __attribute__((transparent_union));
@ -2155,27 +2160,27 @@ typedef struct MenuWindowBP {
/* 0x02 */ Vec2s pos;
/* 0x06 */ s16 width;
/* 0x08 */ s16 height;
/* 0x0A */ char unk_0A[2];
/* 0x0A */ u8 priority;
/* 0x0C */ void (*fpDrawContents)(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening);
/* 0x10 */ MenuPanel* tab;
/* 0x14 */ s8 parentID;
/* 0x18 */ WindowUpdateFunc fpUpdate;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ WindowStyleCustom* style;
/* 0x1C */ u8 extraFlags;
/* 0x20 */ WindowStyle style;
} MenuWindowBP; // size = 0x24;
typedef struct {
/* 0x00 */ u8 flags;
/* 0x01 */ s8 panelID; // ?
/* 0x02 */ u8 unk_02; // related to heirarchy somehow - sibling? group?
/* 0x03 */ s8 parent; // ?
/* 0x01 */ u8 priority; // lower priority rendered first
/* 0x02 */ u8 originalPriority;
/* 0x03 */ s8 parent;
/* 0x04 */ WindowUpdateFunc fpUpdate;
/* 0x08 */ WindowUpdateFunc fpPending;
/* 0x0C */ Vec2s pos;
/* 0x10 */ s16 width;
/* 0x12 */ s16 height;
/* 0x14 */ UNK_FUN_PTR(fpDrawContents);
/* 0x18 */ s32 drawContentsArg0;
/* 0x18 */ void* drawContentsArg0;
/* 0x1C */ u8 updateCounter;
/* 0x1D */ char unk_1D[3];
} Window; // size = 0x20

View File

@ -2922,38 +2922,20 @@ enum EncounterStatusFlags {
};
enum WindowFlags {
WINDOW_FLAGS_1 = 0x00000001,
WINDOW_FLAGS_2 = 0x00000002,
WINDOW_FLAGS_4 = 0x00000004,
WINDOW_FLAGS_8 = 0x00000008,
WINDOW_FLAGS_10 = 0x00000010,
WINDOW_FLAGS_20 = 0x00000020,
WINDOW_FLAGS_INITIALIZED = 0x00000001,
WINDOW_FLAGS_FPUPDATE_CHANGED = 0x00000002,
WINDOW_FLAGS_HIDDEN = 0x00000004, ///< Updated but not rendered
WINDOW_FLAGS_INITIAL_ANIMATION = 0x00000008,
WINDOW_FLAGS_HAS_CHILDREN = 0x00000010,
WINDOW_FLAGS_DISABLED = 0x00000020, ///< Not updated or rendered
WINDOW_FLAGS_40 = 0x00000040,
WINDOW_FLAGS_80 = 0x00000080,
WINDOW_FLAGS_100 = 0x00000100,
WINDOW_FLAGS_200 = 0x00000200,
WINDOW_FLAGS_400 = 0x00000400,
WINDOW_FLAGS_800 = 0x00000800,
WINDOW_FLAGS_1000 = 0x00001000,
WINDOW_FLAGS_2000 = 0x00002000,
WINDOW_FLAGS_4000 = 0x00004000,
WINDOW_FLAGS_8000 = 0x00008000,
WINDOW_FLAGS_10000 = 0x00010000,
WINDOW_FLAGS_20000 = 0x00020000,
WINDOW_FLAGS_40000 = 0x00040000,
WINDOW_FLAGS_80000 = 0x00080000,
WINDOW_FLAGS_100000 = 0x00100000,
WINDOW_FLAGS_200000 = 0x00200000,
WINDOW_FLAGS_400000 = 0x00400000,
WINDOW_FLAGS_800000 = 0x00800000,
WINDOW_FLAGS_1000000 = 0x01000000,
WINDOW_FLAGS_2000000 = 0x02000000,
WINDOW_FLAGS_4000000 = 0x04000000,
WINDOW_FLAGS_8000000 = 0x08000000,
WINDOW_FLAGS_10000000 = 0x10000000,
WINDOW_FLAGS_20000000 = 0x20000000,
WINDOW_FLAGS_40000000 = 0x40000000,
WINDOW_FLAGS_80000000 = 0x80000000,
};
enum DrawFlags {
DRAW_FLAGS_ROTSCALE = 0x00000001,
DRAW_FLAGS_2 = 0x00000002,
DRAW_FLAGS_CLIP = 0x00000004,
DRAW_FLAGS_CULL_BACK = 0x00000008,
};
enum EntityModelFlags {
@ -3288,4 +3270,22 @@ enum WindowId {
WINDOW_ID_63 = 63,
};
enum SimpleWindowUpdateId {
WINDOW_UPDATE_SHOW = 1,
WINDOW_UPDATE_HIDE = 2,
WINDOW_UPDATE_HIER_UPDATE = 3,
WINDOW_UPDATE_DARKENED = 4,
WINDOW_UPDATE_TRANSPARENT = 5,
WINDOW_UPDATE_OPAQUE = 6,
WINDOW_UPDATE_SHOW_TRANSPARENT = 7,
WINDOW_UPDATE_SHOW_DARKENED = 8,
};
enum WindowGroupId {
WINDOW_GROUP_ALL = 0,
WINDOW_GROUP_1 = 1,
WINDOW_GROUP_PAUSE_MENU = 2,
WINDOW_GROUP_FILE_MENU = 3,
};
#endif

View File

@ -74,7 +74,7 @@ void setup_pause_menu_tab(MenuWindowBP* bpArray, s32 arraySize);
s32 draw_ci_image_with_clipping(s32* raster, s32 width, s32 height, s32 fmt, s32 bitDepth, s32* palette, s16 posX,
s16 posY, u16 clipULx, u16 clipULy, u16 clipLRx, u16 clipRLy, u8 opacity);
void update_window_hierarchy(s32 windowIndex, s32 arg1);
void update_window_hierarchy(s32 windowIndex, u8 arg1);
void get_msg_properties(s32 msgID, s32* height, s32* width, s32* maxLineChars, s32* numLines,
s32* maxLinesPerPage, s32* arg6, s32 charset);
void replace_window_update(s32 idx, s8 arg1, WindowUpdateFunc pendingFunc);
@ -173,9 +173,9 @@ s32 player_test_lateral_overlap(s32, PlayerStatus*, f32*, f32*, f32*, f32, f32);
Npc* peach_make_disguise_npc(s32 peachDisguise);
void peach_set_disguise_anim(s32);
void draw_box(s32 flags, WindowStyleCustom* windowStyle, s32 posX, s32 posY, s32 posZ, s32 width, s32 height, u8 opacity,
s32 draw_box(s32 flags, WindowStyle windowStyle, s32 posX, s32 posY, s32 posZ, s32 width, s32 height, u8 opacity,
u8 darkening, f32 scaleX, f32 scaleY, f32 rotX, f32 rotY, f32 rotZ, void (*fpDrawContents)(s32),
void* drawContentsArg0, Matrix4f rotScaleMtx, s32 translateX, s32 translateY, Matrix4f* outMtx);
void* drawContentsArg0, Matrix4f rotScaleMtx, s32 translateX, s32 translateY, f32 (*outMtx)[4]);
s32 get_msg_width(s32 msgID, u16 charset);
s32 partner_player_can_pause(void);
@ -460,9 +460,9 @@ void bgm_push_battle_song(void);
void func_801497FC(s32 arg0);
s32 func_8014AA54(s32 playerIndex, s32 arg1, s16 arg2);
void basic_window_update(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void basic_window_update(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void basic_hidden_window_update(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void basic_hidden_window_update(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void player_create_target_list(Actor* actor);
@ -690,7 +690,7 @@ void func_80149A6C(s32, s32);
void func_800EF300(void);
void enable_player_shadow(void);
s32 get_msg_lines(s32 messageID);
void set_window_properties(s32 panelID, s32 posX, s32 posY, s32 width, s32 height, s32, void* drawContents, PopupMessage* popup, s32 parent);
void set_window_properties(s32 panelID, s32 posX, s32 posY, s32 width, s32 height, u8, void* drawContents, void* drawContentsArg, s8 parent);
void set_window_update(s32 panelID, WindowUpdateFunc);
void snd_stop_sound(s32 soundID);
void snd_start_sound_with_shift(s32 soundID, u8 volume, u8 pan, s16 pitchShift);

View File

@ -185,8 +185,8 @@ void func_8024330C(
s32 windowIdx,
s32* flags,
s32* posX, s32* posY, s32* posZ,
s32* scaleX, s32* scaleY,
s32* rotX, f32* rotY, s32* rotZ,
f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ,
s32* darkening,
s32* opacity
) {
@ -194,14 +194,14 @@ void func_8024330C(
s32 updateCounter = window->updateCounter;
if (updateCounter == 0) {
window->flags &= ~WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_HIDDEN;
}
if (updateCounter < ARRAY_COUNT(D_80249BBC)) {
*posX -= D_80249BBC[updateCounter];
} else {
*posX -= D_80249BBC[ARRAY_COUNT(D_80249BBC) - 1];
window->flags &= ~WINDOW_FLAGS_8;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
}
}
@ -209,8 +209,8 @@ void filemenu_update_show_name_input(
s32 windowIdx,
s32* flags,
s32* posX, s32* posY, s32* posZ,
s32* scaleX, s32* scaleY,
s32* rotX, f32* rotY, s32* rotZ,
f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ,
s32* darkening,
s32* opacity
) {
@ -218,14 +218,14 @@ void filemenu_update_show_name_input(
s32 updateCounter = window->updateCounter;
if (updateCounter == 0) {
window->flags &= ~WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_HIDDEN;
}
if (updateCounter < ARRAY_COUNT(D_80249BDC)) {
*posX += D_80249BDC[updateCounter];
} else {
*posX += D_80249BDC[ARRAY_COUNT(D_80249BDC) - 1];
window->flags &= ~WINDOW_FLAGS_8;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
}
}
@ -233,8 +233,8 @@ void filemenu_update_show_options_left(
s32 windowIdx,
s32* flags,
s32* posX, s32* posY, s32* posZ,
s32* scaleX, s32* scaleY,
s32* rotX, f32* rotY, s32* rotZ,
f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ,
s32* darkening,
s32* opacity
) {
@ -242,14 +242,14 @@ void filemenu_update_show_options_left(
s32 updateCounter = window->updateCounter;
if (updateCounter == 0) {
window->flags &= ~WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_HIDDEN;
}
if (updateCounter < ARRAY_COUNT(D_80249BFC)) {
*posX -= D_80249BFC[updateCounter];
} else {
*posX -= D_80249BFC[ARRAY_COUNT(D_80249BFC) - 1];
window->flags &= ~WINDOW_FLAGS_8;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
}
}
@ -257,8 +257,8 @@ void filemenu_update_show_options_right(
s32 windowIdx,
s32* flags,
s32* posX, s32* posY, s32* posZ,
s32* scaleX, s32* scaleY,
s32* rotX, f32* rotY, s32* rotZ,
f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ,
s32* darkening,
s32* opacity
) {
@ -266,14 +266,14 @@ void filemenu_update_show_options_right(
s32 updateCounter = window->updateCounter;
if (updateCounter == 0) {
window->flags &= ~WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_HIDDEN;
}
if (updateCounter < ARRAY_COUNT(D_80249C1C)) {
*posX += D_80249C1C[updateCounter];
} else {
*posX += D_80249C1C[ARRAY_COUNT(D_80249C1C) - 1];
window->flags &= ~WINDOW_FLAGS_8;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
}
}
@ -281,8 +281,8 @@ void filemenu_update_show_options_bottom(
s32 windowIdx,
s32* flags,
s32* posX, s32* posY, s32* posZ,
s32* scaleX, s32* scaleY,
s32* rotX, f32* rotY, s32* rotZ,
f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ,
s32* darkening,
s32* opacity
) {
@ -290,14 +290,14 @@ void filemenu_update_show_options_bottom(
s32 updateCounter = window->updateCounter;
if (updateCounter == 0) {
window->flags &= ~WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_HIDDEN;
}
if (updateCounter < ARRAY_COUNT(D_80249C3C)) {
*posY += D_80249C3C[updateCounter];
} else {
*posY += D_80249C3C[ARRAY_COUNT(D_80249C3C) - 1];
window->flags &= ~WINDOW_FLAGS_8;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
}
}
@ -305,8 +305,8 @@ void filemenu_update_show_title(
s32 windowIdx,
s32* flags,
s32* posX, s32* posY, s32* posZ,
s32* scaleX, s32* scaleY,
s32* rotX, f32* rotY, s32* rotZ,
f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ,
s32* darkening,
s32* opacity
) {
@ -314,14 +314,14 @@ void filemenu_update_show_title(
s32 updateCounter = window->updateCounter;
if (updateCounter == 0) {
window->flags &= ~WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_HIDDEN;
}
if (updateCounter < ARRAY_COUNT(D_80249C5C)) {
*posY -= D_80249C5C[updateCounter];
} else {
*posY -= D_80249C5C[ARRAY_COUNT(D_80249C5C) - 1];
window->flags &= ~WINDOW_FLAGS_8;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
}
}
@ -329,8 +329,8 @@ void func_802435C4(
s32 windowIdx,
s32* flags,
s32* posX, s32* posY, s32* posZ,
s32* scaleX, s32* scaleY,
s32* rotX, f32* rotY, s32* rotZ,
f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ,
s32* darkening,
s32* opacity
) {
@ -341,8 +341,8 @@ void func_802435C4(
*posX += D_80249C7C[updateCounter];
} else {
*posX += D_80249C7C[ARRAY_COUNT(D_80249C7C) - 1];
window->flags &= ~WINDOW_FLAGS_8;
window->flags |= WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
window->flags |= WINDOW_FLAGS_HIDDEN;
}
}
@ -350,8 +350,8 @@ void filemenu_update_hidden_name_input(
s32 windowIdx,
s32* flags,
s32* posX, s32* posY, s32* posZ,
s32* scaleX, s32* scaleY,
s32* rotX, f32* rotY, s32* rotZ,
f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ,
s32* darkening,
s32* opacity
) {
@ -362,8 +362,8 @@ void filemenu_update_hidden_name_input(
*posX -= D_80249C90[updateCounter];
} else {
*posX -= D_80249C90[ARRAY_COUNT(D_80249C90) - 1];
window->flags &= ~WINDOW_FLAGS_8;
window->flags |= WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
window->flags |= WINDOW_FLAGS_HIDDEN;
}
}
@ -371,8 +371,8 @@ void filemenu_update_hidden_options_left(
s32 windowIdx,
s32* flags,
s32* posX, s32* posY, s32* posZ,
s32* scaleX, s32* scaleY,
s32* rotX, f32* rotY, s32* rotZ,
f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ,
s32* darkening,
s32* opacity
) {
@ -383,8 +383,8 @@ void filemenu_update_hidden_options_left(
*posX += D_80249CA4[updateCounter];
} else {
*posX += D_80249CA4[ARRAY_COUNT(D_80249CA4) - 1];
window->flags &= ~WINDOW_FLAGS_8;
window->flags |= WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
window->flags |= WINDOW_FLAGS_HIDDEN;
}
}
@ -392,8 +392,8 @@ void filemenu_update_hidden_options_right(
s32 windowIdx,
s32* flags,
s32* posX, s32* posY, s32* posZ,
s32* scaleX, s32* scaleY,
s32* rotX, f32* rotY, s32* rotZ,
f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ,
s32* darkening,
s32* opacity
) {
@ -404,8 +404,8 @@ void filemenu_update_hidden_options_right(
*posX -= D_80249CB8[updateCounter];
} else {
*posX -= D_80249CB8[ARRAY_COUNT(D_80249CB8) - 1];
window->flags &= ~WINDOW_FLAGS_8;
window->flags |= WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
window->flags |= WINDOW_FLAGS_HIDDEN;
}
}
@ -413,8 +413,8 @@ void filemenu_update_hidden_title(
s32 windowIdx,
s32* flags,
s32* posX, s32* posY, s32* posZ,
s32* scaleX, s32* scaleY,
s32* rotX, f32* rotY, s32* rotZ,
f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ,
s32* darkening,
s32* opacity
) {
@ -425,8 +425,8 @@ void filemenu_update_hidden_title(
*posY += D_80249CCC[updateCounter];
} else {
*posY += D_80249CCC[ARRAY_COUNT(D_80249CCC) - 1];
window->flags &= ~WINDOW_FLAGS_8;
window->flags |= WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
window->flags |= WINDOW_FLAGS_HIDDEN;
}
}
@ -434,8 +434,8 @@ void filemenu_update_hidden_options_bottom(
s32 windowIdx,
s32* flags,
s32* posX, s32* posY, s32* posZ,
s32* scaleX, s32* scaleY,
s32* rotX, f32* rotY, s32* rotZ,
f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ,
s32* darkening,
s32* opacity
) {
@ -446,8 +446,8 @@ void filemenu_update_hidden_options_bottom(
*posY -= D_80249CE0[updateCounter];
} else {
*posY -= D_80249CE0[ARRAY_COUNT(D_80249CE0) - 1];
window->flags &= ~WINDOW_FLAGS_8;
window->flags |= WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
window->flags |= WINDOW_FLAGS_HIDDEN;
}
}
@ -455,8 +455,8 @@ void filemenu_update_show_with_rotation(
s32 windowIdx,
s32* flags,
s32* posX, s32* posY, s32* posZ,
s32* scaleX, s32* scaleY,
s32* rotX, f32* rotY, s32* rotZ,
f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ,
s32* darkening,
s32* opacity
) {
@ -464,15 +464,15 @@ void filemenu_update_show_with_rotation(
s32 updateCounter = window->updateCounter;
if (updateCounter == 0) {
window->flags &= ~WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_HIDDEN;
}
if (updateCounter < ARRAY_COUNT(D_80249CF4)) {
*rotY += D_80249CF4[updateCounter];
*flags = 8 | 1;
*flags = DRAW_FLAGS_CULL_BACK | DRAW_FLAGS_ROTSCALE;
} else {
*flags = 0;
window->flags &= ~WINDOW_FLAGS_8;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
}
}
@ -480,8 +480,8 @@ void filemenu_update_hidden_with_rotation(
s32 windowIdx,
s32* flags,
s32* posX, s32* posY, s32* posZ,
s32* scaleX, s32* scaleY,
s32* rotX, f32* rotY, s32* rotZ,
f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ,
s32* darkening,
s32* opacity
) {
@ -490,11 +490,11 @@ void filemenu_update_hidden_with_rotation(
if (updateCounter < 10) { // TODO: array count?
*rotY += -D_80249D14[updateCounter];
*flags = 8 | 1;
*flags = DRAW_FLAGS_CULL_BACK | DRAW_FLAGS_ROTSCALE;
} else {
*flags = 0;
window->flags &= ~WINDOW_FLAGS_8;
window->flags |= WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
window->flags |= WINDOW_FLAGS_HIDDEN;
}
}
@ -508,8 +508,8 @@ void filemenu_update_hidden_name_confirm(
s32 windowIdx,
s32* flags,
s32* posX, s32* posY, s32* posZ,
s32* scaleX, s32* scaleY,
s32* rotX, f32* rotY, s32* rotZ,
f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ,
s32* darkening,
s32* opacity
) {
@ -525,8 +525,8 @@ void filemenu_update_hidden_name_confirm(
mainmenu_draw_rect(0, 0, 1280, 960, 0, 0, 0, 0, 0);
*posY -= D_80249D48[updateCounter];
} else {
window->flags &= ~WINDOW_FLAGS_8;
window->flags |= WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
window->flags |= WINDOW_FLAGS_HIDDEN;
}
}
@ -569,11 +569,11 @@ void filemenu_cleanup(void) {
}
for (i = 0x2C; i < ARRAY_COUNT(gWindows); i++) {
set_window_update(i, 2);
set_window_update(i, WINDOW_UPDATE_HIDE);
}
set_window_update(0x18, 2);
set_window_update(0x17, 2);
set_window_update(0x18, WINDOW_UPDATE_HIDE);
set_window_update(0x17, WINDOW_UPDATE_HIDE);
func_80244BC4();
}

View File

@ -289,10 +289,10 @@ void filemenu_main_init(MenuPanel* menu) {
*posXPtr = x;
if (menu->page != 0) {
set_window_update(0x35, 2);
set_window_update(0x37, 2);
set_window_update(0x33, 2);
set_window_update(0x34, 2);
set_window_update(0x35, WINDOW_UPDATE_HIDE);
set_window_update(0x37, WINDOW_UPDATE_HIDE);
set_window_update(0x33, WINDOW_UPDATE_HIDE);
set_window_update(0x34, WINDOW_UPDATE_HIDE);
}
menu->initialized = 1;
}
@ -302,7 +302,7 @@ static const f32 padding[] = { 0.0f }; // TODO remove when the following func is
void filemenu_main_handle_input(MenuPanel* menu);
INCLUDE_ASM(s32, "165490", filemenu_main_handle_input);
extern s32 D_8014F150[];
extern s32 gWindowStyles[];
INCLUDE_ASM(s32, "165490", filemenu_main_update);

View File

@ -12,12 +12,12 @@ extern s8 D_8024C098;
extern s32 D_8024C100_C09980[3];
extern s32 D_8024C110;
void filemenu_update_show_options_left(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX,
s32* scaleY, f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void filemenu_update_show_options_right(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX,
s32* scaleY, f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void filemenu_update_show_options_bottom(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX,
s32* scaleY, f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void filemenu_update_show_options_left(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX,
f32* scaleY, f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void filemenu_update_show_options_right(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX,
f32* scaleY, f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void filemenu_update_show_options_bottom(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX,
f32* scaleY, f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void filemenu_info_draw_message_contents(MenuPanel* menu, s32 baseX, s32 baseY) {
s8 page = menu->page;
@ -90,7 +90,7 @@ void filemenu_info_handle_input(void) {
filemenu_set_selected(menu, 1, 2);
break;
}
set_window_update(0x2F, 2);
set_window_update(0x2F, WINDOW_UPDATE_HIDE);
}
}
@ -104,8 +104,8 @@ void func_80248170(s32 idx) {
Window* window = &gWindows[idx];
if (window->updateCounter == 8) {
window->flags &= ~WINDOW_FLAGS_8;
set_window_update(idx, 1);
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
set_window_update(idx, WINDOW_UPDATE_SHOW);
}
}

View File

@ -188,7 +188,7 @@ void initialize_battle(void) {
create_generic_entity_world(NULL, func_8023ED5C);
func_8024EDC0();
func_80268E88();
set_windows_visible(1);
set_windows_visible(WINDOW_GROUP_1);
D_8029EFBC = create_hud_element(HudScript_HPBar);
set_hud_element_flags(D_8029EFBC, 0x80);

View File

@ -633,7 +633,7 @@ void btl_state_update_celebration(void) {
x = 20;
y = 186;
set_window_properties(8, 20, 186, 280, 32, 20, func_80260948, NULL, -1);
set_window_update(8, 1);
set_window_update(8, WINDOW_UPDATE_SHOW);
gBattleState2 = BATTLE_STATES2_UNK_8;
}
break;
@ -676,7 +676,7 @@ void btl_state_update_celebration(void) {
break;
case BATTLE_STATES2_UNK_9:
free_hud_element(D_8029FAE8);
set_window_update(8, 2);
set_window_update(8, WINDOW_UPDATE_HIDE);
switch (battleStatus->currentSubmenu) {
case 0:
@ -784,7 +784,7 @@ void btl_state_update_celebration(void) {
x = 160 - (width / 2);
y = 80;
set_window_properties(9, x, y, width, 28, 10, func_80260A20, NULL, -1);
set_window_update(9, 1);
set_window_update(9, WINDOW_UPDATE_SHOW);
D_8029FB4C = 60;
gBattleState2 = BATTLE_STATES2_UNK_10;
break;
@ -796,7 +796,7 @@ void btl_state_update_celebration(void) {
D_8029FB4C--;
break;
}
set_window_update(9, 2);
set_window_update(9, WINDOW_UPDATE_HIDE);
gBattleState2 = BATTLE_STATES2_UNK_8;
break;
case BATTLE_STATES2_UNK_14:

View File

@ -349,17 +349,17 @@ void func_802A27D0(void) {
void func_802A27E4(void) {
s32 i;
set_window_update(1, 2);
set_window_update(1, WINDOW_UPDATE_HIDE);
if (!battle_menu_hasSpiritsMenu) {
set_window_update(2, 2);
set_window_update(3, 2);
set_window_update(2, WINDOW_UPDATE_HIDE);
set_window_update(3, WINDOW_UPDATE_HIDE);
} else {
set_window_update(4, 2);
set_window_update(5, 2);
set_window_update(4, WINDOW_UPDATE_HIDE);
set_window_update(5, WINDOW_UPDATE_HIDE);
}
set_window_update(8, 2);
set_window_update(8, WINDOW_UPDATE_HIDE);
for (i = 0; i < battle_menu_moveOptionCount; i++) {
free_hud_element(battle_menu_moveOptionIconIDs[i]);
@ -398,17 +398,17 @@ void func_802A2910(void) {
}
set_hud_element_anim(battle_menu_moveCursorIcon, HudScript_AnimatedHandPointer);
set_window_update(1, 5);
set_window_update(1, WINDOW_UPDATE_TRANSPARENT);
if (!battle_menu_hasSpiritsMenu) {
set_window_update(2, 5);
set_window_update(3, 5);
set_window_update(2, WINDOW_UPDATE_TRANSPARENT);
set_window_update(3, WINDOW_UPDATE_TRANSPARENT);
} else {
set_window_update(4, 5);
set_window_update(5, 5);
set_window_update(4, WINDOW_UPDATE_TRANSPARENT);
set_window_update(5, WINDOW_UPDATE_TRANSPARENT);
}
set_window_update(8, 1);
set_window_update(8, WINDOW_UPDATE_SHOW);
battle_menu_moveTextColor = 10;
D_802AD10F = 1;
battle_menu_moveTextOpacity = 255;
@ -420,16 +420,16 @@ void func_802A2AB8(void) {
s32* moveOptionCostUnitIconIDs;
s32 i;
set_window_update(1, 5);
set_window_update(1, WINDOW_UPDATE_TRANSPARENT);
if (!battle_menu_hasSpiritsMenu) {
set_window_update(2, 5);
set_window_update(3, 5);
set_window_update(2, WINDOW_UPDATE_TRANSPARENT);
set_window_update(3, WINDOW_UPDATE_TRANSPARENT);
} else {
set_window_update(4, 5);
set_window_update(5, 5);
set_window_update(4, WINDOW_UPDATE_TRANSPARENT);
set_window_update(5, WINDOW_UPDATE_TRANSPARENT);
}
set_window_update(8, 1);
set_window_update(8, WINDOW_UPDATE_SHOW);
moveOptionIconIDs = battle_menu_moveOptionIconIDs;
@ -455,7 +455,7 @@ void func_802A2AB8(void) {
}
void func_802A2C58(void) {
set_window_update(8, 1);
set_window_update(8, WINDOW_UPDATE_SHOW);
battle_menu_moveState = 30;
}
@ -576,9 +576,9 @@ void func_802A4718(void) {
void func_802A472C(void) {
s32 i;
set_window_update(6, 2);
set_window_update(7, 2);
set_window_update(8, 2);
set_window_update(6, WINDOW_UPDATE_HIDE);
set_window_update(7, WINDOW_UPDATE_HIDE);
set_window_update(8, WINDOW_UPDATE_HIDE);
for (i = 0; i < D_802AD66C; i++) {
free_hud_element(D_802AD628[i]);
@ -600,9 +600,9 @@ void func_802A47E0(void) {
set_hud_element_tint(D_802AD61C, 0xFF, 0xFF, 0xFF);
set_hud_element_tint(D_802AD620, 0xFF, 0xFF, 0xFF);
set_hud_element_anim(D_802AD618, HudScript_AnimatedHandPointer);
set_window_update(6, 5);
set_window_update(7, 5);
set_window_update(8, 1);
set_window_update(6, WINDOW_UPDATE_TRANSPARENT);
set_window_update(7, WINDOW_UPDATE_TRANSPARENT);
set_window_update(8, WINDOW_UPDATE_SHOW);
D_802AD614 = 10;
D_802AD60B = 1;
D_802AD624 = 255;
@ -612,9 +612,9 @@ void func_802A47E0(void) {
void func_802A48FC(void) {
s32 i;
set_window_update(6, 5);
set_window_update(7, 5);
set_window_update(8, 1);
set_window_update(6, WINDOW_UPDATE_TRANSPARENT);
set_window_update(7, WINDOW_UPDATE_TRANSPARENT);
set_window_update(8, WINDOW_UPDATE_SHOW);
for (i = 0; i < D_802AD66C; i++) {
set_hud_element_tint(D_802AD628[i], 0xFF, 0xFF, 0xFF);
@ -630,9 +630,9 @@ void func_802A48FC(void) {
}
void func_802A4A10(void) {
set_window_update(6, 5);
set_window_update(7, 5);
set_window_update(8, 1);
set_window_update(6, WINDOW_UPDATE_TRANSPARENT);
set_window_update(7, WINDOW_UPDATE_TRANSPARENT);
set_window_update(8, WINDOW_UPDATE_SHOW);
D_802AD604 = 30;
}

View File

@ -513,7 +513,7 @@ void show_coin_counter(void) {
s32 index;
if ((D_8010CD10 != 0) || (D_8010CD12 != 0)) {
set_window_update(0x14, 2);
set_window_update(0x14, WINDOW_UPDATE_HIDE);
if (uiStatus->iconIndex12 > -1) {
free_hud_element(uiStatus->iconIndex10);
free_hud_element(uiStatus->iconIndex11);

View File

@ -239,62 +239,62 @@ s32 popup_menu_update(void) {
} else {
set_window_properties(0xF, 0xC, -6, 0x79, 0x10, 0x15, popup_menu_draw_title_contents, NULL, 0xE);
}
set_window_update(0xF, 1);
set_window_update(0x11, 2);
set_window_update(0xF, WINDOW_UPDATE_SHOW);
set_window_update(0x11, WINDOW_UPDATE_HIDE);
break;
case 1:
set_window_properties(0xE, posX, posY, 0x8B, ((s8) D_8010D656 * 0xD) + 0x1A, 0x14, popup_menu_draw_menu_contents, NULL, -1);
set_window_properties(0x11, 0xD, -6, 0x72, 0x10, 0x15, popup_menu_draw_title_contents, NULL, 0xE);
set_window_update(0xF, 2);
set_window_update(0x11, 1);
set_window_update(0xF, WINDOW_UPDATE_HIDE);
set_window_update(0x11, WINDOW_UPDATE_SHOW);
break;
case 3:
set_window_properties(0xE, posX, posY, 0xA2, ((s8) D_8010D656 * 0xD) + 0x1A, 0x14, popup_menu_draw_menu_contents, NULL, -1);
set_window_properties(0xF, 0x11, -6, 0x60, 0x10, 0x15, popup_menu_draw_title_contents, NULL, 0xE);
set_window_update(0xF, 1);
set_window_update(0x11, 2);
set_window_update(0xF, WINDOW_UPDATE_SHOW);
set_window_update(0x11, WINDOW_UPDATE_HIDE);
break;
case 4:
set_window_properties(0xE, posX, posY, 0x92, ((s8) D_8010D656 * 0xD) + 0x1A, 0x14, popup_menu_draw_menu_contents, NULL, -1);
set_window_properties(0x11, 0xC, -6, 0x72, 0x10, 0x15, popup_menu_draw_title_contents, NULL, 0xE);
set_window_update(0xF, 2);
set_window_update(0x11, 1);
set_window_update(0xF, WINDOW_UPDATE_HIDE);
set_window_update(0x11, WINDOW_UPDATE_SHOW);
break;
case 5:
set_window_properties(0xE, posX, posY, 0xA7, ((s8) D_8010D656 * 0xD) + 0x1A, 0x14, popup_menu_draw_menu_contents, NULL, -1);
set_window_properties(0xF, 0x16, -6, 0x5F, 0x10, 0x15, popup_menu_draw_title_contents, NULL, 0xE);
set_window_update(0xF, 1);
set_window_update(0x11, 2);
set_window_update(0xF, WINDOW_UPDATE_SHOW);
set_window_update(0x11, WINDOW_UPDATE_HIDE);
break;
case 8:
set_window_properties(0xE, posX, posY, 0xAA, ((s8) D_8010D656 * 0xD) + 0x1A, 0x14, popup_menu_draw_menu_contents, NULL, -1);
set_window_properties(0xF, 0x20, -6, 0x68, 0x10, 0x15, popup_menu_draw_title_contents, NULL, 0xE);
set_window_update(0xF, 1);
set_window_update(0x11, 2);
set_window_update(0xF, WINDOW_UPDATE_SHOW);
set_window_update(0x11, WINDOW_UPDATE_HIDE);
break;
case 9:
set_window_properties(0xE, posX, posY, 0x91, ((s8) D_8010D656 * 0xD) + 0x1A, 0x14, popup_menu_draw_menu_contents, NULL, -1);
set_window_properties(0xF, 0xC, -6, 0x79, 0x10, 0x15, popup_menu_draw_title_contents, NULL, 0xE);
set_window_update(0xF, 1);
set_window_update(0x11, 2);
set_window_update(0xF, WINDOW_UPDATE_SHOW);
set_window_update(0x11, WINDOW_UPDATE_HIDE);
break;
case 10:
set_window_properties(0xE, posX, posY, 0x80, ((s8) D_8010D656 * 0xD) + 0x1A, 0x14, popup_menu_draw_menu_contents, NULL, -1);
set_window_properties(0xF, 0xC, -6, 0x68, 0x10, 0x15, popup_menu_draw_title_contents, NULL, 0xE);
set_window_update(0xF, 1);
set_window_update(0x11, 2);
set_window_update(0xF, WINDOW_UPDATE_SHOW);
set_window_update(0x11, WINDOW_UPDATE_HIDE);
break;
case 11:
set_window_properties(0xE, posX, posY, 0x95, ((s8) D_8010D656 * 0xD) + 0x1A, 0x14, popup_menu_draw_menu_contents, NULL, -1);
set_window_properties(0xF, 6, -6, 0x8B, 0x10, 0x15, popup_menu_draw_title_contents, NULL, 0xE);
set_window_update(0xF, 1);
set_window_update(0x11, 2);
set_window_update(0xF, WINDOW_UPDATE_SHOW);
set_window_update(0x11, WINDOW_UPDATE_HIDE);
break;
case 13:
set_window_properties(0xE, posX, posY, 0x83, ((s8) D_8010D656 * 0xD) + 0x1A, 0x14, popup_menu_draw_menu_contents, NULL, -1);
set_window_properties(0x11, 0xA, -6, 0x72, 0x10, 0x15, popup_menu_draw_title_contents, NULL, 0xE);
set_window_update(0xF, 2);
set_window_update(0x11, 1);
set_window_update(0xF, WINDOW_UPDATE_HIDE);
set_window_update(0x11, WINDOW_UPDATE_SHOW);
break;
}
@ -374,18 +374,18 @@ s32 popup_menu_update(void) {
case 8:
case 9:
case 12:
set_window_update(0xE, 1);
set_window_update(0x13, 1);
set_window_update(0xE, WINDOW_UPDATE_SHOW);
set_window_update(0x13, WINDOW_UPDATE_SHOW);
break;
case 1:
case 4:
set_window_update(0xE, 1);
set_window_update(0x13, 1);
set_window_update(0xE, WINDOW_UPDATE_SHOW);
set_window_update(0x13, WINDOW_UPDATE_SHOW);
break;
case 10:
case 11:
case 13:
set_window_update(0xE, 1);
set_window_update(0xE, WINDOW_UPDATE_SHOW);
break;
}
} else {
@ -416,7 +416,7 @@ s32 popup_menu_update(void) {
sfx_play_sound(1);
break;
}
set_window_update(0x15, 1);
set_window_update(0x15, WINDOW_UPDATE_SHOW);
}
if (gPopupMenu->popupType == 3) {
@ -636,18 +636,18 @@ s32 popup_menu_update(void) {
case 8:
case 9:
case 12:
set_window_update(0xE, 2);
set_window_update(0x13, 2);
set_window_update(0xE, WINDOW_UPDATE_HIDE);
set_window_update(0x13, WINDOW_UPDATE_HIDE);
break;
case 1:
case 4:
set_window_update(0xE, 2);
set_window_update(0x13, 2);
set_window_update(0xE, WINDOW_UPDATE_HIDE);
set_window_update(0x13, WINDOW_UPDATE_HIDE);
break;
case 10:
case 11:
case 13:
set_window_update(0xE, 2);
set_window_update(0xE, WINDOW_UPDATE_HIDE);
break;
}
destroy_popup_menu();
@ -688,14 +688,14 @@ s32 popup_menu_update(void) {
gPopupMenu->result = -1;
return 0;
case 31:
set_window_update(0xE, 2);
set_window_update(0x13, 2);
set_window_update(0xE, WINDOW_UPDATE_HIDE);
set_window_update(0x13, WINDOW_UPDATE_HIDE);
if (D_8010D68E != 0) {
set_window_update(0x15, 2);
set_window_update(0x15, WINDOW_UPDATE_HIDE);
}
width = get_msg_width(0x1D006B, 0) + 23;
set_window_properties(9, 160 - (width / 2), 0x50, width, 0x28, 0x14, func_800F4CF0, NULL, -1);
set_window_update(9, 1);
set_window_update(9, WINDOW_UPDATE_SHOW);
D_8010D644 = 0x3C;
D_8010D640 = 0x20;
return 0;
@ -707,11 +707,11 @@ s32 popup_menu_update(void) {
D_8010D644--;
return 0;
}
set_window_update(9, 2);
set_window_update(0xE, 1);
set_window_update(0x13, 1);
set_window_update(9, WINDOW_UPDATE_HIDE);
set_window_update(0xE, WINDOW_UPDATE_SHOW);
set_window_update(0x13, WINDOW_UPDATE_SHOW);
if (D_8010D68E != 0) {
set_window_update(0x15, 1);
set_window_update(0x15, WINDOW_UPDATE_SHOW);
}
D_8010D640 = 1;
gPopupMenu->result = 0;
@ -749,18 +749,18 @@ s32 popup_menu_update(void) {
case 8:
case 9:
case 12:
set_window_update(0xE, 2);
set_window_update(0x13, 2);
set_window_update(0xE, WINDOW_UPDATE_HIDE);
set_window_update(0x13, WINDOW_UPDATE_HIDE);
break;
case 1:
case 4:
set_window_update(0xE, 2);
set_window_update(0x13, 2);
set_window_update(0xE, WINDOW_UPDATE_HIDE);
set_window_update(0x13, WINDOW_UPDATE_HIDE);
break;
case 10:
case 11:
case 13:
set_window_update(0xE, 2);
set_window_update(0xE, WINDOW_UPDATE_HIDE);
break;
}
@ -772,14 +772,14 @@ s32 popup_menu_update(void) {
}
width = get_msg_width(msgID, 0) + 23;
set_window_properties(0x15, 160 - (width / 2), 76, width, 32, 0x13, func_800F4C1C, NULL, -1);
set_window_update(0x15, 1);
set_window_update(0x15, WINDOW_UPDATE_SHOW);
D_8010D6A0 = msg_get_printer_for_msg(0x1E001D, &D_8010D6A4);
msg_printer_set_origin_pos(D_8010D6A0, 160, 0x90);
D_8010D640 = 0x65;
break;
case 101:
if (D_8010D6A4 == 1) {
set_window_update(0x15, 2);
set_window_update(0x15, WINDOW_UPDATE_HIDE);
switch (D_8010D6A0->currentOption) {
case 0:
D_8010D640 = 0x66;
@ -825,18 +825,18 @@ s32 popup_menu_update(void) {
case 8:
case 9:
case 12:
set_window_update(0xE, 1);
set_window_update(0x13, 1);
set_window_update(0xE, WINDOW_UPDATE_SHOW);
set_window_update(0x13, WINDOW_UPDATE_SHOW);
break;
case 1:
case 4:
set_window_update(0xE, 1);
set_window_update(0x13, 1);
set_window_update(0xE, WINDOW_UPDATE_SHOW);
set_window_update(0x13, WINDOW_UPDATE_SHOW);
break;
case 10:
case 11:
case 13:
set_window_update(0xE, 1);
set_window_update(0xE, WINDOW_UPDATE_SHOW);
break;
}
D_8010D690 = 0xA;

View File

@ -1,6 +1,337 @@
#include "common.h"
typedef struct DefaultWindowStyle {
/* 0x00 */ u8 bgIndex;
/* 0x01 */ u8 cornersIndex;
/* 0x02 */ u8 unk_2;
/* 0x03 */ Color_RGBA8 color1;
/* 0x07 */ Color_RGBA8 color2;
} DefaultWindowStyle; // size = 0x0B
INCLUDE_ASM(void, "8e790_len_2850", draw_box, s32 flags, s32 windowStyle, s32 posX, s32 posY, s32 posZ, s32 width,
typedef struct UnkDrawStruct {
Vtx vert[16];
} UnkDrawStruct; // size = 0x100
static UnkDrawStruct D_8010D6B0[];
DefaultWindowStyle D_801098E0[] = {
{
.bgIndex = 1,
.cornersIndex = 0,
.unk_2 = 0,
.color1 = { .r = 200, .g = 191, .b = 164, .a = 255 },
.color2 = { .r = 128, .g = 128, .b = 128, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 1,
.unk_2 = 1,
.color1 = { .r = 255, .g = 200, .b = 128, .a = 255 },
.color2 = { .r = 128, .g = 128, .b = 128, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 2,
.unk_2 = 1,
.color1 = { .r = 232, .g = 196, .b = 77, .a = 255 },
.color2 = { .r = 163, .g = 123, .b = 0, .a = 255 }
},
{
.bgIndex = 0,
.cornersIndex = 3,
.unk_2 = 1,
.color1 = { .r = 226, .g = 225, .b = 216, .a = 255 },
.color2 = { .r = 217, .g = 208, .b = 201, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 4,
.unk_2 = 1,
.color1 = { .r = 61, .g = 74, .b = 188, .a = 255 },
.color2 = { .r = 0, .g = 25, .b = 28, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 5,
.unk_2 = 1,
.color1 = { .r = 235, .g = 230, .b = 119, .a = 255 },
.color2 = { .r = 142, .g = 90, .b = 37, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 6,
.unk_2 = 1,
.color1 = { .r = 235, .g = 230, .b = 119, .a = 255 },
.color2 = { .r = 142, .g = 99, .b = 37, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 4,
.unk_2 = 1,
.color1 = { .r = 215, .g = 191, .b = 116, .a = 255 },
.color2 = { .r = 132, .g = 70, .b = 50, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 4,
.unk_2 = 1,
.color1 = { .r = 215, .g = 191, .b = 116, .a = 255 },
.color2 = { .r = 132, .g = 70, .b = 50, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 4,
.unk_2 = 1,
.color1 = { .r = 141, .g = 143, .b = 255, .a = 255 },
.color2 = { .r = 43, .g = 69, .b = 102, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 8,
.unk_2 = 1,
.color1 = { .r = 141, .g = 143, .b = 255, .a = 255 },
.color2 = { .r = 43, .g = 69, .b = 102, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 4,
.unk_2 = 1,
.color1 = { .r = 170, .g = 208, .b = 128, .a = 255 },
.color2 = { .r = 71, .g = 123, .b = 83, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 8,
.unk_2 = 1,
.color1 = { .r = 170, .g = 208, .b = 128, .a = 255 },
.color2 = { .r = 71, .g = 123, .b = 83, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 4,
.unk_2 = 1,
.color1 = { .r = 200, .g = 200, .b = 90, .a = 255 },
.color2 = { .r = 140, .g = 140, .b = 0, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 8,
.unk_2 = 1,
.color1 = { .r = 200, .g = 200, .b = 90, .a = 255 },
.color2 = { .r = 140, .g = 140, .b = 0, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 4,
.unk_2 = 1,
.color1 = { .r = 235, .g = 230, .b = 119, .a = 255 },
.color2 = { .r = 142, .g = 90, .b = 37, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 4,
.unk_2 = 1,
.color1 = { .r = 142, .g = 212, .b = 236, .a = 255 },
.color2 = { .r = 67, .g = 98, .b = 69, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 4,
.unk_2 = 1,
.color1 = { .r = 167, .g = 151, .b = 119, .a = 255 },
.color2 = { .r = 98, .g = 55, .b = 154, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 7,
.unk_2 = 1,
.color1 = { .r = 17, .g = 151, .b = 29, .a = 255 },
.color2 = { .r = 8, .g = 55, .b = 14, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 7,
.unk_2 = 1,
.color1 = { .r = 110, .g = 110, .b = 200, .a = 255 },
.color2 = { .r = 10, .g = 10, .b = 100, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 4,
.unk_2 = 1,
.color1 = { .r = 181, .g = 60, .b = 60, .a = 255 },
.color2 = { .r = 76, .g = 10, .b = 0, .a = 255 }
},
{
.bgIndex = 1,
.cornersIndex = 4,
.unk_2 = 1,
.color1 = { .r = 174, .g = 227, .b = 235, .a = 255 },
.color2 = { .r = 76, .g = 110, .b = 60, .a = 255 }
},
{
.bgIndex = 0,
.cornersIndex = 3,
.unk_2 = 1,
.color1 = { .r = 126, .g = 125, .b = 216, .a = 255 },
.color2 = { .r = 217, .g = 108, .b = 201, .a = 255 }
}
};
#include "ui/corners9.png.inc.c"
#include "ui/corners8.png.inc.c"
#include "ui/corners6.png.inc.c"
#include "ui/corners7.png.inc.c"
#include "ui/corners3.png.inc.c"
#include "ui/corners5.png.inc.c"
#include "ui/corners4.png.inc.c"
#include "ui/background1.png.inc.c"
#include "ui/corners1.png.inc.c"
#include "ui/corners2.png.inc.c"
#include "ui/background2.png.inc.c"
WindowBackground D_8010BAE8[] = {
{
.imgData = ui_background1_png,
.packedTileFormat = 0x40,
.width = 16,
.height = 16,
.unk_07 = { 0, 0, 0, 0},
.size = 128
},
{
.imgData = ui_background2_png,
.packedTileFormat = 0x40,
.width = 16,
.height = 1,
.unk_07 = { 0, 0, 0, 0},
.size = 8
}
};
WindowCorners D_8010BB00[] = {
{
.imgData = ui_corners1_png,
.packedTileFormat = 0x31,
.size1 = { 16, 16},
.size2 = { 16, 16},
.size3 = { 16, 16},
.size4 = { 16, 16},
.unk_0D = { 0, 0, 0}
},
{
.imgData = ui_corners2_png,
.packedTileFormat = 0x40,
.size1 = { 16, 16},
.size2 = { 16, 16},
.size3 = { 16, 16},
.size4 = { 16, 16},
.unk_0D = { 0, 0, 0}
},
{
.imgData = ui_corners3_png,
.packedTileFormat = 0x31,
.size1 = { 16, 32},
.size2 = { 16, 32},
.size3 = { 16, 16},
.size4 = { 16, 16},
.unk_0D = { 0, 0, 0}
},
{
.imgData = ui_corners4_png,
.packedTileFormat = 0x31,
.size1 = { 8, 8},
.size2 = { 8, 8},
.size3 = { 8, 8},
.size4 = { 8, 8},
.unk_0D = { 0, 0, 0}
},
{
.imgData = ui_corners5_png,
.packedTileFormat = 0x31,
.size1 = { 16, 8},
.size2 = { 16, 8},
.size3 = { 16, 8},
.size4 = { 16, 8},
.unk_0D = { 0, 0, 0}
},
{
.imgData = ui_corners6_png,
.packedTileFormat = 0x31,
.size1 = { 16, 8},
.size2 = { 16, 8},
.size3 = { 16, 8},
.size4 = { 16, 16},
.unk_0D = { 0, 0, 0}
},
{
.imgData = ui_corners7_png,
.packedTileFormat = 0x31,
.size1 = { 16, 8},
.size2 = { 16, 8},
.size3 = { 16, 8},
.size4 = { 16, 8},
.unk_0D = { 0, 0, 0}
},
{
.imgData = ui_corners8_png,
.packedTileFormat = 0x31,
.size1 = { 24, 24},
.size2 = { 24, 24},
.size3 = { 24, 24},
.size4 = { 24, 24},
.unk_0D = { 0, 0, 0}
},
{
.imgData = ui_corners9_png,
.packedTileFormat = 0x31,
.size1 = { 16, 16},
.size2 = { 16, 16},
.size3 = { 16, 16},
.size4 = { 16, 16},
.unk_0D = { 0, 0, 0}
}
};
Gfx D_8010BB90[] = {
gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL1, TEXEL0, ENVIRONMENT, ENV_ALPHA, COMBINED, 0, 0, 0, COMBINED),
gsDPSetCombineLERP(TEXEL0, 0, TEXEL1, 0, 0, 0, 0, TEXEL1, PRIMITIVE, ENVIRONMENT, COMBINED, ENVIRONMENT, 0, 0, 0, COMBINED),
gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL1, 0, PRIMITIVE, 0, TEXEL0, ENVIRONMENT, ENV_ALPHA, COMBINED, 0, 0, 0, COMBINED),
gsDPSetCombineLERP(TEXEL0, 0, TEXEL1, 0, TEXEL1, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, COMBINED, ENVIRONMENT, 0, 0, 0, COMBINED)
};
s32 D_8010BBB0 = 0;
s32 D_8010BBB4 = 0;
Vp D_8010BBB8 = {
.vp = {
.vscale = { 640, 480, 511, 0 },
.vtrans = { 640, 480, 511, 0 }
}
};
#include "vtx/drawbox1.vtx.inc.c"
/*
| 0.0 0.0 0.0 0.0|
| 0.0 0.0 0.0 0.0|
| 0.0 0.0 0.0 0.0|
|-6.0 0.0 0.0 0.0|
*/
Mtx D_8010BC08 = {
.m = {
// integer portion
{ 0x00000000, 0x00000000,
0x00000000, 0x00000000 },
{ 0x00000000, 0x00000000,
0xFFFA0000, 0x00000000 },
//fractional portion
{ 0x00000000, 0x00000000,
0x00000000, 0x00000000 },
{ 0x00000000, 0x00000000,
0x00000000, 0x00000000 }
}
};
INCLUDE_ASM(void, "8e790_len_2850", draw_box, s32 flags, WindowStyle windowStyle, s32 posX, s32 posY, s32 posZ, s32 width,
s32 height, s32 opacity, s32 darkening, f32 scaleX, f32 scaleY, f32 rotX, f32 rotY, f32 rotZ,
void (*fpDrawContents)(s32),s32 drawContentsArg0, Matrix4f rotScaleMtx, s32 translateX, s32 translateY,
Matrix4f* outMtx);
f32 (*outMtx)[4]);

View File

@ -1,80 +0,0 @@
#include "common.h"
s32 D_8014F150[] = { 0x00000003, 0x00000003, 0x0000000B, 0x0000000C, 0x0000000D, 0x0000000E, 0x00000003, 0x00000015,
0x00000003, 0x00000000, 0x00000009, 0x00000003, 0x00000000, 0x00000001, 0x00000003, 0x00000009,
0x0000000A, 0x00000007, 0x00000008, 0x00000003, 0x00000003, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x0000000B, 0x0000000C, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
};
s32 D_8014F250[] = { 0x00000800, 0x0000000C, 0x00000004, 0x08000001, 0x00080000, 0x04000864, 0x00040008, 0x00000200,
0x0800B802, 0x000800FF, 0x02000C00, 0xB804000C, 0x64000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000,
};
s32 D_8014F298[] = { 0x32506469, 0x64000000, };
s8 D_8014F2A0[] = { 0x01, 0x01, 0x01, 0x01, };
s8 D_8014F2A4[] = { 0x00, 0x00, 0x00, 0x00, };
s32 D_8014F2A8[] = { 0x69644D39, 0x281B1008, 0x03000000, };
s8 D_8014F2B4[] = { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 };
s8 D_8014F2BD = 0;
s32 D_8014F2C0[] = { 0x003F0809, 0x162B2C3F, 0x00000000, 0x00000000, };
// this is definitely wrong but I had issues trying to use an array accessor
void clear_windows(void) {
Window* windowIt = gWindows;
s32 i;
for (i = 0; i < ARRAY_COUNT(gWindows); i++, windowIt++) {
windowIt->flags = 0;
}
}
INCLUDE_ASM(s32, "ddaf0_len_c50", update_windows);
INCLUDE_ASM(s32, "ddaf0_len_c50", basic_window_update);
INCLUDE_ASM(s32, "ddaf0_len_c50", basic_hidden_window_update);
INCLUDE_ASM(s32, "ddaf0_len_c50", main_menu_window_update);
INCLUDE_ASM(s32, "ddaf0_len_c50", render_windows);
INCLUDE_ASM(s32, "ddaf0_len_c50", render_window_root);
INCLUDE_ASM(s32, "ddaf0_len_c50", set_window_properties);
INCLUDE_ASM(s32, "ddaf0_len_c50", update_window_hierarchy);
void replace_window_update(s32 idx, s8 arg1, WindowUpdateFunc pendingFunc) {
if (gWindows[idx].flags & 1) {
gWindows[idx].flags |= 0xA;
gWindows[idx].fpPending = pendingFunc;
gWindows[idx].unk_02 = arg1;
}
}
void set_window_update(s32 panelIndex, WindowUpdateFunc func) {
if (gWindows[panelIndex].flags & 1) {
if (func.i == gWindows[panelIndex].fpUpdate.i) {
gWindows[panelIndex].flags &= ~0x2;
} else {
gWindows[panelIndex].flags |= 0xA;
gWindows[panelIndex].fpPending = func;
}
}
}
INCLUDE_ASM(s32, "ddaf0_len_c50", set_windows_visible);
void setup_pause_menu_tab(MenuWindowBP* bpArray, s32 arraySize);
INCLUDE_ASM(s32, "ddaf0_len_c50", setup_pause_menu_tab);

View File

@ -755,7 +755,7 @@ void draw_message_window(MessagePrintState* printer) {
case MSG_WINDOW_STATE_E:
printer->windowBasePos.x = 160 - (printer->windowSize.x / 2);
printer->windowBasePos.y = 56;
draw_box(1, 0, printer->windowBasePos.x, 56, 0, printer->windowSize.x, printer->windowSize.y, 255, 0,
draw_box(DRAW_FLAGS_ROTSCALE, 0, printer->windowBasePos.x, 56, 0, printer->windowSize.x, printer->windowSize.y, 255, 0,
scale, scale, 0.0f, 0.0f, rotZ, drawbox_message_delegate, printer, NULL, SCREEN_WIDTH,
SCREEN_HEIGHT, NULL);
break;

View File

@ -46,13 +46,13 @@ MenuWindowBP gPauseBadgesWindowBPs[] = {
.pos = { .x = 3, .y = 16 },
.width = 289,
.height = 154,
.unk_0A = { 1, 0},
.priority = 1,
.fpDrawContents = &pause_badges_draw_contents,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_MAIN,
.fpUpdate = { 2 },
.unk_1C = 0,
.style = &gPauseWS_16
.fpUpdate = { WINDOW_UPDATE_HIDE },
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_16 }
}
};
MenuPanel gPausePanelBadges = {
@ -309,7 +309,7 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width
currentBadgeColumn = gPauseBadgesSelectedIndex / currentPage->numCols;
currentBadgeRow = gPauseBadgesSelectedIndex % currentPage->numCols;
draw_box(4, &gPauseWS_15, baseX + 84, baseY, 0, width - 84, height, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0);
draw_box(DRAW_FLAGS_CLIP, &gPauseWS_15, baseX + 84, baseY, 0, width - 84, height, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0);
set_hud_element_render_pos(gPauseBadgesIconIDs[20], baseX + 241, baseY + 11);
palette = 10;
draw_hud_element_3(gPauseBadgesIconIDs[20]);
@ -406,7 +406,7 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width
}
if (isEquipped) {
draw_box(4, &gPauseWS_14, badgeListX + pause_badges_scroll_offset_x(posX) - 20,
draw_box(DRAW_FLAGS_CLIP, &gPauseWS_14, badgeListX + pause_badges_scroll_offset_x(posX) - 20,
baseY + pause_badges_scroll_offset_y(posY) + 17, 0, 200, 13, 255, 0, 0, 0, 0, 0,
0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0);
} else if (cannotBeEquipped) {
@ -610,7 +610,7 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width
gDPPipeSync(gMasterGfxPos++);
}
draw_box(4, &gPauseWS_13, gPauseBadgesCurrentTab == 0 ? baseX + 9 : baseX, baseY + 7, 0,
draw_box(DRAW_FLAGS_CLIP, &gPauseWS_13, gPauseBadgesCurrentTab == 0 ? baseX + 9 : baseX, baseY + 7, 0,
91, 34, 255, gPauseBadgesCurrentTab == 1 ? 128 : 0, 0, 0,
0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0);
@ -626,7 +626,7 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width
}
draw_msg(msg, msgX, msgY, msgOpacity, 0, 1);
draw_box(4, &gPauseWS_13, gPauseBadgesCurrentTab == 1 ? baseX + 9 : baseX, baseY + 37, 0, 91, 34, 255,
draw_box(DRAW_FLAGS_CLIP, &gPauseWS_13, gPauseBadgesCurrentTab == 1 ? baseX + 9 : baseX, baseY + 37, 0, 91, 34, 255,
gPauseBadgesCurrentTab == 0 ? 128 : 0, 0, 0, 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0);
msg = pause_get_menu_msg(0x48);
@ -678,10 +678,10 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width
if (gPauseBadgesShowNotEnoughBP != 0) {
pause_set_cursor_opacity(0);
if (gPauseBadgesShowNotEnoughBP == 1) {
draw_box(4, &gPauseWS_13, baseX + 67, baseY + 60, 0, 137, 26, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0);
draw_box(DRAW_FLAGS_CLIP, &gPauseWS_13, baseX + 67, baseY + 60, 0, 137, 26, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0);
draw_msg(pause_get_menu_msg(0x4A), baseX + 86, baseY + 66, 255, 0, 1);
} else {
draw_box(4, &gPauseWS_13, baseX + 67, baseY + 60, 0, 173, 26, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0);
draw_box(DRAW_FLAGS_CLIP, &gPauseWS_13, baseX + 67, baseY + 60, 0, 173, 26, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0);
draw_msg(pause_get_menu_msg(0x4B), baseX + 90, baseY + 66, 255, 0, 1);
}
}

View File

@ -99,19 +99,19 @@ extern HudScript* gPauseCurrentDescIconScript;
extern s32 gPauseCursorIconID;
extern s8 gPauseMenuCurrentTab;
void pause_update_tab_default(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void pause_update_tab_default(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void pause_update_tab_active(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void pause_update_tab_active(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void pause_update_tab_inactive(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void pause_update_tab_inactive(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void pause_update_page_active_1(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void pause_update_page_active_1(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void pause_update_page_inactive_1(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void pause_update_page_inactive_1(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void pause_update_page_active_2(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void pause_update_page_active_2(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void pause_update_page_inactive_2(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void pause_update_page_inactive_2(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void pause_set_cursor_pos(s32 windowID, s32 posX, s32 posY);

View File

@ -39,13 +39,13 @@ MenuWindowBP gPauseItemsWindowBPs[] = {
.pos = { .x = 3, .y = 16 },
.width = 289,
.height = 154,
.unk_0A = { 1, 0},
.priority = 1,
.fpDrawContents = &pause_items_draw_contents,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_MAIN,
.fpUpdate = { 2 },
.unk_1C = 0,
.style = &gPauseWS_19
.fpUpdate = { WINDOW_UPDATE_HIDE },
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_19 }
}
};
MenuPanel gPausePanelItems = {
@ -129,7 +129,7 @@ void pause_items_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width,
palette = 10;
currentItemColumn = gPauseItemsSelectedIndex / gPauseItemsPages[gPauseItemsCurrentPage].numCols;
currentItemRow = gPauseItemsSelectedIndex % gPauseItemsPages[gPauseItemsCurrentPage].numCols;
draw_box(4, &gPauseWS_18, baseX + 68, baseY, 0, width - 68, height, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0);
draw_box(DRAW_FLAGS_CLIP, &gPauseWS_18, baseX + 68, baseY, 0, width - 68, height, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0);
x1 = baseX + 1;
y1 = baseY + 7;
@ -292,7 +292,7 @@ void pause_items_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width,
}
}
draw_box(4, &gPauseWS_17, gPauseItemsCurrentTab == 0 ? baseX + 9 : baseX, baseY + 7, 0,
draw_box(DRAW_FLAGS_CLIP, &gPauseWS_17, gPauseItemsCurrentTab == 0 ? baseX + 9 : baseX, baseY + 7, 0,
91, 34, 255, gPauseItemsCurrentTab == 1 ? 128 : 0, 0, 0,
0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0);
@ -308,7 +308,7 @@ void pause_items_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width,
}
draw_msg(msg, msgX, msgY, opacity1, 0, 1);
draw_box(4, &gPauseWS_17, gPauseItemsCurrentTab == 1 ? baseX + 9 : baseX, baseY + 39, 0,
draw_box(DRAW_FLAGS_CLIP, &gPauseWS_17, gPauseItemsCurrentTab == 1 ? baseX + 9 : baseX, baseY + 39, 0,
91, 34, 255, gPauseItemsCurrentTab == 0 ? 128 : 0, 0, 0,
0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0);

View File

@ -52,10 +52,10 @@ s32 gPauseCursorTargetPosY = -120;
s32 gPauseCursorTargetOpacity = 0;
u32 D_8024EFB4 = 1;
s16 D_8024EFB8[] = { -10, -25, -42, -60, -80 }; //unused
u8 gPauseWindowFlipUpFlags[] = { 1, 1, 1, 1, 1, 0, 0};
u8 gPauseWindowFlipUpFlags[] = { DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, 0, 0};
s16 gPauseWindowFlipUpAngles[] = { -80, -65, -38, -30, -10, 0 };
s16 gPauseWindowFlipUpAngles_2[] = { 80, 65, 38, 30, 10, 0 };
u8 gPauseWindowFlipDownFlags[] = { 1, 1, 1, 1, 1, 1, 0, 0 };
u8 gPauseWindowFlipDownFlags[] = { DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, 0, 0 };
u8 D_8024EFEC[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x11, 0x00, 0x25, 0x00, 0x3C,
0x00, 0x55, 0x00, 0x6E }; //unused
s16 gPauseWindowFlipDownAngles[] = { -10, -25, -42, -60, -80};
@ -103,13 +103,13 @@ MenuWindowBP gPauseCommonWindowsBPs[] = {
.pos = { .x = 12, .y = 20 },
.width = 296,
.height = 200,
.unk_0A = { 0, 0 },
.priority = 0,
.fpDrawContents = &pause_main_draw_contents,
.tab = NULL,
.parentID = WINDOW_ID_NONE,
.fpUpdate = { 1 },
.unk_1C = 0x40000000,
.style = &gPauseWS_0
.fpUpdate = { WINDOW_UPDATE_SHOW },
.extraFlags = WINDOW_FLAGS_40,
.style = { .customStyle = &gPauseWS_0 }
},
{
.windowID = WINDOW_ID_PAUSE_TUTORIAL,
@ -117,13 +117,13 @@ MenuWindowBP gPauseCommonWindowsBPs[] = {
.pos = { .x = 0, .y = 138 },
.width = 296,
.height = 63,
.unk_0A = { 0, 0 },
.priority = 0,
.fpDrawContents = &pause_tutorial_draw_contents,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_MAIN,
.fpUpdate = { 2 },
.unk_1C = 0,
.style = &gPauseWS_2
.fpUpdate = { WINDOW_UPDATE_HIDE },
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_2 }
},
{
.windowID = WINDOW_ID_PAUSE_DECRIPTION,
@ -131,13 +131,13 @@ MenuWindowBP gPauseCommonWindowsBPs[] = {
.pos = { .x = 20, .y = 164 },
.width = 256,
.height = 32,
.unk_0A = { 0, 0 },
.priority = 0,
.fpDrawContents = &pause_textbox_draw_contents,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_MAIN,
.fpUpdate = { .func = &basic_window_update },
.unk_1C = 0,
.style = &gPauseWS_1
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_1 }
},
{
.windowID = WINDOW_ID_PAUSE_CURSOR,
@ -145,13 +145,13 @@ MenuWindowBP gPauseCommonWindowsBPs[] = {
.pos = { .x = 0, .y = 0 },
.width = SCREEN_WIDTH,
.height = SCREEN_HEIGHT,
.unk_0A = { 0, 0 },
.priority = 0,
.fpDrawContents = &pause_draw_cursor,
.tab = NULL,
.parentID = WINDOW_ID_NONE,
.fpUpdate = { 1 },
.unk_1C = 0,
.style = &gPauseWS_0
.fpUpdate = { WINDOW_UPDATE_SHOW },
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_0 }
}
};
@ -172,7 +172,7 @@ void pause_set_cursor_pos_immediate(s32 windowID, s32 posX, s32 posY) {
Window* window = &gWindows[i];
s8 parent = window->parent;
if ((parent == WINDOW_ID_NONE || parent == WINDOW_ID_PAUSE_MAIN) && (window->flags & WINDOW_FLAGS_8)) {
if ((parent == WINDOW_ID_NONE || parent == WINDOW_ID_PAUSE_MAIN) && (window->flags & WINDOW_FLAGS_INITIAL_ANIMATION)) {
break;
}
}
@ -185,7 +185,7 @@ void pause_set_cursor_pos_immediate(s32 windowID, s32 posX, s32 posY) {
gPauseCursorTargetPosY = posY;
gPauseCursorPosY = posY;
} else if ((window->flags & WINDOW_FLAGS_8) == 0 && (window->parent == -1 || !(gWindows[window->parent].flags & WINDOW_FLAGS_8))) {
} else if ((window->flags & WINDOW_FLAGS_INITIAL_ANIMATION) == 0 && (window->parent == -1 || !(gWindows[window->parent].flags & WINDOW_FLAGS_INITIAL_ANIMATION))) {
gPauseCursorTargetPosX = posX;
gPauseCursorPosX = posX;
gPauseCursorTargetPosY = posY;
@ -206,7 +206,7 @@ void pause_set_cursor_pos(s32 windowID, s32 posX, s32 posY) {
Window* window = &gWindows[i];
s8 parent = window->parent;
if ((parent == -1 || parent == WINDOW_ID_PAUSE_MAIN) && (window->flags & WINDOW_FLAGS_8)) {
if ((parent == -1 || parent == WINDOW_ID_PAUSE_MAIN) && (window->flags & WINDOW_FLAGS_INITIAL_ANIMATION)) {
break;
}
}
@ -218,7 +218,7 @@ void pause_set_cursor_pos(s32 windowID, s32 posX, s32 posY) {
gPauseCursorPosX = posX;
gPauseCursorTargetPosY = posY;
gPauseCursorPosY = posY;
} else if ((window->flags & WINDOW_FLAGS_8) == 0 && (window->parent == -1 || !(gWindows[window->parent].flags & WINDOW_FLAGS_8))) {
} else if ((window->flags & WINDOW_FLAGS_INITIAL_ANIMATION) == 0 && (window->parent == -1 || !(gWindows[window->parent].flags & WINDOW_FLAGS_INITIAL_ANIMATION))) {
gPauseCursorTargetPosX = posX;
gPauseCursorTargetPosY = posY;
}
@ -256,73 +256,73 @@ void pause_interp_cursor(void) {
gPauseCursorTargetOpacity = 255;
}
void pause_update_tab_default(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void pause_update_tab_default(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity) {
Window* window = &gWindows[windowIndex];
*darkening = 160;
window->flags &= ~(WINDOW_FLAGS_4 | WINDOW_FLAGS_8);
window->flags &= ~(WINDOW_FLAGS_HIDDEN | WINDOW_FLAGS_INITIAL_ANIMATION);
}
void func_80242FBC(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void func_80242FBC(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity) {
Window* window = &gWindows[windowIndex];
*darkening = 160;
*opacity = 80;
window->flags &= ~(WINDOW_FLAGS_4 | WINDOW_FLAGS_8);
window->flags &= ~(WINDOW_FLAGS_HIDDEN | WINDOW_FLAGS_INITIAL_ANIMATION);
}
void pause_update_tab_inactive(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void pause_update_tab_inactive(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity) {
Window* window = &gWindows[windowIndex];
s32 updateCounter = window->updateCounter;
if (updateCounter == 0) {
window->flags &= ~WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_HIDDEN;
}
if (updateCounter == 5) {
update_window_hierarchy(windowIndex, window->unk_02);
update_window_hierarchy(windowIndex, window->originalPriority);
}
if (updateCounter < 10) {
*darkening = (updateCounter + 1) * 16;
} else {
*darkening = 160;
window->flags &= ~WINDOW_FLAGS_8;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
}
}
void pause_update_tab_active(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void pause_update_tab_active(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity) {
Window* window = &gWindows[windowIndex];
if (window->updateCounter == 0) {
update_window_hierarchy(windowIndex, window->unk_02);
update_window_hierarchy(windowIndex, window->originalPriority);
*darkening = 0;
window->flags &= ~WINDOW_FLAGS_8;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
}
}
void func_802430E4(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void func_802430E4(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity) {
Window* window = &gWindows[windowIndex];
s32 updateCounter = window->updateCounter;
if (updateCounter == 0) {
window->flags &= ~WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_HIDDEN;
}
if (updateCounter < 16) {
*opacity = updateCounter * 16;
} else {
*opacity = 255;
window->flags &= ~WINDOW_FLAGS_8;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
}
}
void func_8024313C(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void func_8024313C(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity) {
Window* window = &gWindows[windowIndex];
s32 updateCounter = window->updateCounter;
@ -331,18 +331,18 @@ void func_8024313C(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ,
*opacity = 255 - (updateCounter * 16);
} else {
*opacity = 0;
window->flags &= ~WINDOW_FLAGS_8;
window->flags |= WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
window->flags |= WINDOW_FLAGS_HIDDEN;
}
}
void pause_update_page_active_2(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void pause_update_page_active_2(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity) {
Window* window = &gWindows[windowIndex];
s32 updateCounter = window->updateCounter;
if (updateCounter == 0) {
window->flags &= ~WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_HIDDEN;
}
if (updateCounter < 7) {
*flags = gPauseWindowFlipUpFlags[updateCounter];
@ -350,17 +350,17 @@ void pause_update_page_active_2(s32 windowIndex, s32* flags, s32* posX, s32* pos
} else {
*flags = gPauseWindowFlipUpFlags[5];
*rotX += gPauseWindowFlipUpAngles[6];
window->flags &= ~WINDOW_FLAGS_8;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
}
}
void pause_update_page_active_1(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void pause_update_page_active_1(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity) {
Window* window = &gWindows[windowIndex];
s32 updateCounter = window->updateCounter;
if (updateCounter == 0) {
window->flags &= ~WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_HIDDEN;
}
if (updateCounter < 7) {
*flags = gPauseWindowFlipUpFlags[updateCounter];
@ -368,11 +368,11 @@ void pause_update_page_active_1(s32 windowIndex, s32* flags, s32* posX, s32* pos
} else {
*flags = gPauseWindowFlipUpFlags[5];
*rotX += gPauseWindowFlipUpAngles_2[6];
window->flags &= ~WINDOW_FLAGS_8;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
}
}
void pause_update_page_inactive_1(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void pause_update_page_inactive_1(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity) {
Window* window = &gWindows[windowIndex];
s32 updateCounter = window->updateCounter;
@ -383,12 +383,12 @@ void pause_update_page_inactive_1(s32 windowIndex, s32* flags, s32* posX, s32* p
} else {
*flags = gPauseWindowFlipDownFlags[4];
*rotX += gPauseWindowFlipDownAngles[4];
window->flags &= ~WINDOW_FLAGS_8;
window->flags |= WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
window->flags |= WINDOW_FLAGS_HIDDEN;
}
}
void pause_update_page_inactive_2(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void pause_update_page_inactive_2(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity) {
Window* window = &gWindows[windowIndex];
s32 updateCounter = window->updateCounter;
@ -399,8 +399,8 @@ void pause_update_page_inactive_2(s32 windowIndex, s32* flags, s32* posX, s32* p
} else {
*flags = gPauseWindowFlipDownFlags[4];
*rotX = gPauseWindowFlipDownAngles_2[4];
window->flags &= ~WINDOW_FLAGS_8;
window->flags |= WINDOW_FLAGS_4;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
window->flags |= WINDOW_FLAGS_HIDDEN;
}
}
@ -610,7 +610,7 @@ void pause_init(void) {
posX = 225;
for (i = 6; i > 0; i--) {
if (!gPausePanels[i]->initialized) {
set_window_update(24 + i, 2);
set_window_update(24 + i, WINDOW_UPDATE_HIDE);
} else {
gWindows[WINDOW_ID_PAUSE_TUTORIAL + i].pos.x = posX + 14;
posX -= 45;
@ -625,7 +625,7 @@ void pause_init(void) {
gPauseTutorialSprites[i] = spr_load_npc_sprite(gPauseTutorialSpriteAnims[i][0], gPauseTutorialSpriteAnims[i]);
}
set_window_update(WINDOW_ID_PAUSE_TUTORIAL, 1);
set_window_update(WINDOW_ID_PAUSE_TUTORIAL, WINDOW_UPDATE_SHOW);
sfx_play_sound(SOUND_MENU_START_TUTORIAL);
}
@ -788,9 +788,9 @@ void pause_cleanup(void) {
}
for (i = WINDOW_ID_PAUSE_MAIN; i < WINDOW_ID_PAUSE_CURSOR; i++)
set_window_update(i, 2);
set_window_update(i, WINDOW_UPDATE_HIDE);
set_window_update(WINDOW_ID_PAUSE_CURSOR, 2);
set_window_update(WINDOW_ID_PAUSE_CURSOR, WINDOW_UPDATE_HIDE);
}

View File

@ -106,13 +106,13 @@ MenuWindowBP gPauseMapWindowBPs[] = {
.pos = { .x = 3, .y = 16 },
.width = 289,
.height = 154,
.unk_0A = { 1, 0 },
.priority = 1,
.fpDrawContents = &pause_map_draw_contents,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_MAIN,
.fpUpdate = { 2 },
.unk_1C = 0,
.style = &gPauseWS_26
.fpUpdate = { WINDOW_UPDATE_HIDE },
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_26 }
},
{
.windowID = WINDOW_ID_PAUSE_MAP_TITLE,
@ -120,13 +120,13 @@ MenuWindowBP gPauseMapWindowBPs[] = {
.pos = { .x = 56, .y = 124 },
.width = 180,
.height = 20,
.unk_0A = { 0, 0 },
.priority = 0,
.fpDrawContents = &pause_map_draw_title,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_MAP,
.fpUpdate = { 1 },
.unk_1C = 0,
.style = &gPauseWS_28
.fpUpdate = { WINDOW_UPDATE_SHOW },
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_28 }
},
{ },
{ },

View File

@ -134,65 +134,65 @@ MenuWindowBP gPausePartnersWindowBPs[] = {
.pos = { .x = 3, .y = 16 },
.width = 289,
.height = 154,
.unk_0A = { 1, 0},
.priority = 1,
.fpDrawContents = &pause_partners_draw_contents,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_MAIN,
.fpUpdate = { 2 },
.unk_1C = 0,
.style = &gPauseWS_20
.fpUpdate = { WINDOW_UPDATE_HIDE },
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_20 }
}, {
.windowID = WINDOW_ID_PAUSE_PARTNERS_TITLE,
.unk_01 = 0,
.pos = { .x = 8, .y = 103 },
.width = 112,
.height = 20,
.unk_0A = { 0, 0},
.priority = 0,
.fpDrawContents = &pause_partners_draw_title,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_PARTNERS,
.fpUpdate = { 1 },
.unk_1C = 0,
.style = &gPauseWS_22
.fpUpdate = { WINDOW_UPDATE_SHOW },
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_22 }
}, {
.windowID = WINDOW_ID_PAUSE_PARTNERS_MOVELIST,
.unk_01 = 0,
.pos = { .x = 133, .y = 36 },
.width = 140,
.height = 80,
.unk_0A = { 0, 0},
.priority = 0,
.fpDrawContents = &pause_partners_draw_movelist,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_PARTNERS,
.fpUpdate = { 2 },
.unk_1C = 0,
.style = (WindowStyleCustom*)-1
.fpUpdate = { WINDOW_UPDATE_HIDE },
.extraFlags = 0,
.style = { -1 }
}, {
.windowID = WINDOW_ID_PAUSE_PARTNERS_MOVELIST_TITLE,
.unk_01 = 0,
.pos = { .x = 12, .y = -6 },
.width = 80,
.height = 16,
.unk_0A = { 0, 0},
.priority = 0,
.fpDrawContents = &pause_partners_draw_movelist_title,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_PARTNERS_MOVELIST,
.fpUpdate = { 1 },
.unk_1C = 0,
.style = (WindowStyleCustom*)-1
.fpUpdate = { WINDOW_UPDATE_SHOW },
.extraFlags = 0,
.style = { -1 }
}, {
.windowID = WINDOW_ID_PAUSE_PARTNERS_MOVELIST_FLOWER,
.unk_01 = 0,
.pos = { .x = 102, .y = -12 },
.width = 32,
.height = 32,
.unk_0A = { 0, 0},
.priority = 0,
.fpDrawContents = &pause_partners_draw_movelist_flower,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_PARTNERS_MOVELIST,
.fpUpdate = { 1 },
.unk_1C = 0,
.style = (WindowStyleCustom*)-1
.fpUpdate = { WINDOW_UPDATE_SHOW },
.extraFlags = 0,
.style = { -1 }
}
};
u8 gPausePartnersPortraitScrollInterpTable[] = {0, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8 };
@ -508,7 +508,7 @@ void pause_partners_init(MenuPanel* panel) {
}
if (gPausePartnersNumPartners == 0) {
set_window_update(WINDOW_ID_PAUSE_PARTNERS, 2);
set_window_update(WINDOW_ID_PAUSE_PARTNERS, WINDOW_UPDATE_HIDE);
panel->initialized = FALSE;
return;
}
@ -630,7 +630,7 @@ void pause_partners_handle_input(MenuPanel* panel) {
if ((gPausePressedButtons & BUTTON_A) && gPausePartnersLevel == 0) {
gPausePartnersLevel = 1;
sfx_play_sound(SOUND_MENU_NEXT);
set_window_update(WINDOW_ID_PAUSE_PARTNERS_MOVELIST, 1);
set_window_update(WINDOW_ID_PAUSE_PARTNERS_MOVELIST, WINDOW_UPDATE_SHOW);
return;
}
@ -642,7 +642,7 @@ void pause_partners_handle_input(MenuPanel* panel) {
} else {
gPausePartnersLevel = 0;
sfx_play_sound(SOUND_MENU_BACK);
set_window_update(WINDOW_ID_PAUSE_PARTNERS_MOVELIST, 2);
set_window_update(WINDOW_ID_PAUSE_PARTNERS_MOVELIST, WINDOW_UPDATE_HIDE);
return;
}
}

View File

@ -103,13 +103,13 @@ MenuWindowBP gPauseSpiritsWindowsBPs[] = {
.pos = { .x = 3, .y = 16 },
.width = 289,
.height = 154,
.unk_0A = { 1, 0 },
.priority = 1,
.fpDrawContents = &pause_spirits_draw_contents,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_MAIN,
.fpUpdate = { 2 },
.unk_1C = 0,
.style = &gPauseWS_23
.fpUpdate = { WINDOW_UPDATE_HIDE },
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_23 }
},
{
.windowID = WINDOW_ID_PAUSE_SPIRITS_TITLE,
@ -117,13 +117,13 @@ MenuWindowBP gPauseSpiritsWindowsBPs[] = {
.pos = { .x = 86, .y = 124 },
.width = 120,
.height = 20,
.unk_0A = { 0, 0 },
.priority = 0,
.fpDrawContents = &pause_spirits_draw_title,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_SPIRITS,
.fpUpdate = { 1 },
.unk_1C = 0,
.style = &gPauseWS_24
.fpUpdate = { WINDOW_UPDATE_SHOW },
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_24 }
}
};
MenuPanel gPausePanelSpirits = {

View File

@ -67,13 +67,13 @@ MenuWindowBP gStatsMenuWindowBPs[] = {
.pos = { .x = 3, .y = 16 },
.width = 289,
.height = 154,
.unk_0A = { 0, 0},
.priority = 0,
.fpDrawContents = &pause_stats_draw_contents,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_MAIN,
.fpUpdate = { 2 },
.unk_1C = 0,
.style = &gPauseWS_12
.fpUpdate = { WINDOW_UPDATE_HIDE },
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_12 }
}
};
MenuPanel gPausePanelStats = {

View File

@ -1,7 +1,7 @@
#include "common.h"
extern s8 D_8010B460[];
extern s8 D_8010B360[];
extern s8 ui_background1_png[];
extern s8 ui_corners4_png[];
extern s8 pause_image_1439F0_png[];
extern s8 pause_image_143BF0_png[];
extern s8 pause_image_143FF0_png[];
@ -33,7 +33,7 @@ WindowStyleCustom gPauseWS_0 = {
};
WindowStyleCustom gPauseWS_1 = {
.background = {
.imgData = D_8010B460,
.imgData = ui_background1_png,
.packedTileFormat = 0x40,
.width = 16,
.height = 16,
@ -41,7 +41,7 @@ WindowStyleCustom gPauseWS_1 = {
.size = 128
},
.corners = {
.imgData = D_8010B360,
.imgData = ui_corners4_png,
.packedTileFormat = 0x31,
.size1 = { .x = 8, .y = 8},
.size2 = { .x = 8, .y = 8},
@ -297,7 +297,7 @@ WindowStyleCustom gPauseWS_11 = {
};
WindowStyleCustom gPauseWS_12 = {
.background = {
.imgData = D_8010B460,
.imgData = ui_background1_png,
.packedTileFormat = 0x40,
.width = 16,
.height = 16,
@ -305,7 +305,7 @@ WindowStyleCustom gPauseWS_12 = {
.size = 128
},
.corners = {
.imgData = D_8010B360,
.imgData = ui_corners4_png,
.packedTileFormat = 0x31,
.size1 = { .x = 8, .y = 8 },
.size2 = { .x = 8, .y = 8 },
@ -369,7 +369,7 @@ WindowStyleCustom gPauseWS_14 = {
};
WindowStyleCustom gPauseWS_15 = {
.background = {
.imgData = D_8010B460,
.imgData = ui_background1_png,
.packedTileFormat = 0x40,
.width = 16,
.height = 16,
@ -377,7 +377,7 @@ WindowStyleCustom gPauseWS_15 = {
.size = 128
},
.corners = {
.imgData = D_8010B360,
.imgData = ui_corners4_png,
.packedTileFormat = 0x31,
.size1 = { .x = 8, .y = 8 },
.size2 = { .x = 8, .y = 8 },
@ -393,7 +393,7 @@ WindowStyleCustom gPauseWS_15 = {
};
WindowStyleCustom gPauseWS_16 = {
.background = {
.imgData = D_8010B460,
.imgData = ui_background1_png,
.packedTileFormat = 0x40,
.width = 16,
.height = 16,
@ -401,7 +401,7 @@ WindowStyleCustom gPauseWS_16 = {
.size = 128
},
.corners = {
.imgData = D_8010B360,
.imgData = ui_corners4_png,
.packedTileFormat = 0x31,
.size1 = { .x = 8, .y = 8 },
.size2 = { .x = 8, .y = 8 },
@ -441,7 +441,7 @@ WindowStyleCustom gPauseWS_17 = {
};
WindowStyleCustom gPauseWS_18 = {
.background = {
.imgData = D_8010B460,
.imgData = ui_background1_png,
.packedTileFormat = 0x40,
.width = 16,
.height = 16,
@ -449,7 +449,7 @@ WindowStyleCustom gPauseWS_18 = {
.size = 128
},
.corners = {
.imgData = D_8010B360,
.imgData = ui_corners4_png,
.packedTileFormat = 0x31,
.size1 = { .x = 8, .y = 8 },
.size2 = { .x = 8, .y = 8 },
@ -465,7 +465,7 @@ WindowStyleCustom gPauseWS_18 = {
};
WindowStyleCustom gPauseWS_19 = {
.background = {
.imgData = D_8010B460,
.imgData = ui_background1_png,
.packedTileFormat = 0x40,
.width = 16,
.height = 16,
@ -473,7 +473,7 @@ WindowStyleCustom gPauseWS_19 = {
.size = 128
},
.corners = {
.imgData = D_8010B360,
.imgData = ui_corners4_png,
.packedTileFormat = 0x31,
.size1 = { .x = 8, .y = 8 },
.size2 = { .x = 8, .y = 8 },
@ -489,7 +489,7 @@ WindowStyleCustom gPauseWS_19 = {
};
WindowStyleCustom gPauseWS_20 = {
.background = {
.imgData = D_8010B460,
.imgData = ui_background1_png,
.packedTileFormat = 0x40,
.width = 16,
.height = 16,
@ -497,7 +497,7 @@ WindowStyleCustom gPauseWS_20 = {
.size = 128
},
.corners = {
.imgData = D_8010B360,
.imgData = ui_corners4_png,
.packedTileFormat = 0x31,
.size1 = { .x = 8, .y = 8 },
.size2 = { .x = 8, .y = 8 },
@ -513,7 +513,7 @@ WindowStyleCustom gPauseWS_20 = {
};
WindowStyleCustom gPauseWS_21 = {
.background = {
.imgData = D_8010B460,
.imgData = ui_background1_png,
.packedTileFormat = 0x40,
.width = 16,
.height = 16,
@ -561,7 +561,7 @@ WindowStyleCustom gPauseWS_22 = {
};
WindowStyleCustom gPauseWS_23 = {
.background = {
.imgData = D_8010B460,
.imgData = ui_background1_png,
.packedTileFormat = 0x40,
.width = 16,
.height = 16,
@ -569,7 +569,7 @@ WindowStyleCustom gPauseWS_23 = {
.size = 128
},
.corners = {
.imgData = D_8010B360,
.imgData = ui_corners4_png,
.packedTileFormat = 0x31,
.size1 = { .x = 8, .y = 8 },
.size2 = { .x = 8, .y = 8 },
@ -609,7 +609,7 @@ WindowStyleCustom gPauseWS_24 = {
};
WindowStyleCustom gPauseWS_25 = {
.background = {
.imgData = D_8010B460,
.imgData = ui_background1_png,
.packedTileFormat = 0x40,
.width = 16,
.height = 16,
@ -633,7 +633,7 @@ WindowStyleCustom gPauseWS_25 = {
};
WindowStyleCustom gPauseWS_26 = {
.background = {
.imgData = D_8010B460,
.imgData = ui_background1_png,
.packedTileFormat = 0x40,
.width = 16,
.height = 16,
@ -641,7 +641,7 @@ WindowStyleCustom gPauseWS_26 = {
.size = 128
},
.corners = {
.imgData = D_8010B360,
.imgData = ui_corners4_png,
.packedTileFormat = 0x31,
.size1 = { .x = 8, .y = 8 },
.size2 = { .x = 8, .y = 8 },
@ -657,7 +657,7 @@ WindowStyleCustom gPauseWS_26 = {
};
WindowStyleCustom gPauseWS_27 = {
.background = {
.imgData = D_8010B460,
.imgData = ui_background1_png,
.packedTileFormat = 0x40,
.width = 16,
.height = 16,

View File

@ -30,13 +30,13 @@ MenuWindowBP gPauseTabsWindowBPs[] = {
.pos = { .x = 0, .y = 7 },
.width = 43,
.height = 15,
.unk_0A = { 64, 0 },
.priority = 64,
.fpDrawContents = &pause_tabs_draw_stats,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_MAIN,
.fpUpdate = { 1 },
.unk_1C = 0,
.style = &gPauseWS_3
.fpUpdate = { WINDOW_UPDATE_SHOW },
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_3 }
},
{
.windowID = WINDOW_ID_PAUSE_TAB_BADGES,
@ -44,13 +44,13 @@ MenuWindowBP gPauseTabsWindowBPs[] = {
.pos = { .x = 0, .y = 7 },
.width = 43,
.height = 15,
.unk_0A = { 0, 0 },
.priority = 0,
.fpDrawContents = &pause_tabs_draw_badges,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_MAIN,
.fpUpdate = { .func = &pause_update_tab_default },
.unk_1C = 0,
.style = &gPauseWS_4
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_4 }
},
{
.windowID = WINDOW_ID_PAUSE_TAB_ITEMS,
@ -58,13 +58,13 @@ MenuWindowBP gPauseTabsWindowBPs[] = {
.pos = { .x = 0, .y = 7 },
.width = 43,
.height = 15,
.unk_0A = { 0, 0 },
.priority = 0,
.fpDrawContents = &pause_tabs_draw_items,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_MAIN,
.fpUpdate = { .func = &pause_update_tab_default },
.unk_1C = 0,
.style = &gPauseWS_5
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_5 }
},
{
.windowID = WINDOW_ID_PAUSE_TAB_PARTY,
@ -72,13 +72,13 @@ MenuWindowBP gPauseTabsWindowBPs[] = {
.pos = { .x = 0, .y = 7 },
.width = 43,
.height = 15,
.unk_0A = { 0, 0 },
.priority = 0,
.fpDrawContents = &pause_tabs_draw_party,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_MAIN,
.fpUpdate = { .func = &pause_update_tab_default },
.unk_1C = 0,
.style = &gPauseWS_6
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_6 }
},
{
.windowID = WINDOW_ID_PAUSE_TAB_SPIRITS,
@ -86,13 +86,13 @@ MenuWindowBP gPauseTabsWindowBPs[] = {
.pos = { .x = 0, .y = 7 },
.width = 43,
.height = 15,
.unk_0A = { 0, 0 },
.priority = 0,
.fpDrawContents = &pause_tabs_draw_spirits,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_MAIN,
.fpUpdate = { .func = &pause_update_tab_default },
.unk_1C = 0,
.style = &gPauseWS_7
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_7 }
},
{
.windowID = WINDOW_ID_PAUSE_TAB_MAP,
@ -100,13 +100,13 @@ MenuWindowBP gPauseTabsWindowBPs[] = {
.pos = { .x = 0, .y = 7 },
.width = 43,
.height = 15,
.unk_0A = { 0, 0 },
.priority = 0,
.fpDrawContents = &pause_tabs_draw_map,
.tab = NULL,
.parentID = WINDOW_ID_PAUSE_MAIN,
.fpUpdate = { .func = &pause_update_tab_default },
.unk_1C = 0,
.style = &gPauseWS_8
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_8 }
},
{
.windowID = WINDOW_ID_PAUSE_TAB_INVIS,
@ -114,13 +114,13 @@ MenuWindowBP gPauseTabsWindowBPs[] = {
.pos = { .x = 8, .y = 8 },
.width = 16,
.height = 16,
.unk_0A = { 64, 0 },
.priority = 64,
.fpDrawContents = &pause_tabs_draw_invis,
.tab = NULL,
.parentID = WINDOW_ID_NONE,
.fpUpdate = { 1 },
.unk_1C = 0,
.style = &gPauseWS_9
.fpUpdate = { WINDOW_UPDATE_SHOW },
.extraFlags = 0,
.style = { .customStyle = &gPauseWS_9 }
}
};
s32 gPauseTabsCurrentTab = 0;
@ -326,9 +326,9 @@ void pause_tabs_update(MenuPanel* tab) {
f32 delta;
f32 deltaBefore;
f32 f7;
void (*fpUpdateInactive)(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void (*fpUpdateInactive)(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
void (*fpUpdateActive)(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, s32* scaleX, s32* scaleY,
void (*fpUpdateActive)(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
WindowUpdateFunc fpUpdate;
s32 i;

View File

@ -103,7 +103,7 @@ void state_step_language_select(void) {
gOverrideFlags &= ~0x8;
} else {
gOverrideFlags |= 8;
set_windows_visible(3);
set_windows_visible(WINDOW_GROUP_FILE_MENU);
D_800A0930 = 1;
D_800A0931 = 3;
}
@ -160,7 +160,7 @@ void state_step_file_select(void) {
switch (D_800A0931) {
case 1:
set_windows_visible(3);
set_windows_visible(WINDOW_GROUP_FILE_MENU);
D_800A0930 = temp;
D_800A0931 = 2;
break;
@ -310,7 +310,7 @@ void state_step_exit_language_select(void) {
func_800E98C4();
set_time_freeze_mode(1);
}
set_windows_visible(0);
set_windows_visible(WINDOW_GROUP_ALL);
D_800A0931 = 3;
update_player();
update_npcs();
@ -366,7 +366,7 @@ void state_step_exit_file_select(void) {
Window* window = &gWindows[i];
if (window->parent == 44 || window->parent == -1) {
flagSum += window->flags & WINDOW_FLAGS_8;
flagSum += window->flags & WINDOW_FLAGS_INITIAL_ANIMATION;
}
}
@ -381,7 +381,7 @@ void state_step_exit_file_select(void) {
break;
case 2:
filemenu_cleanup();
set_windows_visible(FALSE);
set_windows_visible(WINDOW_GROUP_ALL);
D_800A0931 = 3;
case 3:
set_time_freeze_mode(0);

View File

@ -24,7 +24,7 @@ void state_init_pause(void) {
D_800A0922 = 0;
disable_player_input();
set_time_freeze_mode(TIME_FREEZE_PARTNER_MENU);
set_windows_visible(2);
set_windows_visible(WINDOW_GROUP_PAUSE_MENU);
}
void state_step_pause(void) {
@ -181,7 +181,7 @@ void state_step_unpause(void) {
gGameStatusPtr->unk_15C = gGameStatusPtr->unk_15E;
calculate_model_sizes();
npc_reload_all();
set_windows_visible(0);
set_windows_visible(WINDOW_GROUP_ALL);
func_800E98C4();
set_time_freeze_mode(TIME_FREEZE_PARTIAL);
D_800A0921 = 3;

View File

@ -242,7 +242,7 @@ void update_merlee_message(PopupMessage* popup) {
}
if (closeMessage) {
set_window_update(9, 2);
set_window_update(9, WINDOW_UPDATE_HIDE);
D_800A0F40 = 0;
dispose_merlee_message(popup);
}
@ -270,7 +270,7 @@ void draw_merlee_message(PopupMessage* popup) {
width = get_msg_width(messageID, 0) + 30;
xPos = 160 - (width / 2);
set_window_properties(9, xPos, 80, width, D_80078160[get_msg_lines(messageID) - 1], 0, draw_merlee_message_string, popup, -1);
set_window_update(9, 1);
set_window_update(9, WINDOW_UPDATE_SHOW);
}
}

470
src/windows.c Normal file
View File

@ -0,0 +1,470 @@
#include "common.h"
#include "nu/nusys.h"
enum SimpleWindowUpdateFlags {
SIMPLE_WINDOW_UPDATE_1 = 0x1,
SIMPLE_WINDOW_UPDATE_OPACITY = 0x2,
SIMPLE_WINDOW_UPDATE_DARKENING = 0x4,
};
typedef struct SimpleWindowUpdateData {
/* 0x00 */ u8 flags;
/* 0x01 */ u8 windowFlagsSet;
/* 0x02 */ u8 windowFlagsUnset;
/* 0x03 */ u8 darkening;
/* 0x04 */ u8 opacity;
} SimpleWindowUpdateData; // size = 0x05
typedef struct WindowGroup {
/* 0x00 */ u8 min;
/* 0x01 */ u8 max;
} WindowGroup; // size = 0x02
WindowStyle gWindowStyles[] = {
{ 3 }, { 3 }, { 11 }, { 12 }, { 13 }, { 14 }, { 3 }, { 21 }, { 3 }, { 0 }, { 9 }, { 3 }, { 0 }, { 1 }, { 3 }, { 9 },
{ 10 }, { 7 }, { 8 }, { 3 }, { 3 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 },
{ 0 }, { 0 }, { 0 }, { 0 }, { 3 }, { 11 }, { 12 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 },
{ 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 0 }, { 1 }
};
SimpleWindowUpdateData gSimpleWindowUpdates[] = {
{
.flags = 0,
.windowFlagsSet = 0,
.windowFlagsUnset = WINDOW_FLAGS_INITIAL_ANIMATION,
.darkening = 0,
.opacity = 0
},
{
.flags = 0,
.windowFlagsSet = 0,
.windowFlagsUnset = WINDOW_FLAGS_HIDDEN | WINDOW_FLAGS_INITIAL_ANIMATION,
.darkening = 0,
.opacity = 0
},
{
.flags = 0,
.windowFlagsSet = WINDOW_FLAGS_HIDDEN,
.windowFlagsUnset = WINDOW_FLAGS_INITIAL_ANIMATION,
.darkening = 0,
.opacity = 0
},
{
.flags = SIMPLE_WINDOW_UPDATE_1,
.windowFlagsSet = 0,
.windowFlagsUnset = WINDOW_FLAGS_INITIAL_ANIMATION,
.darkening = 0,
.opacity = 0
},
{
.flags = SIMPLE_WINDOW_UPDATE_DARKENING,
.windowFlagsSet = 0,
.windowFlagsUnset = WINDOW_FLAGS_INITIAL_ANIMATION,
.darkening = 100,
.opacity = 0
},
{
.flags = SIMPLE_WINDOW_UPDATE_DARKENING,
.windowFlagsSet = 0,
.windowFlagsUnset = WINDOW_FLAGS_INITIAL_ANIMATION,
.darkening = 0,
.opacity = 0
},
{
.flags = SIMPLE_WINDOW_UPDATE_OPACITY,
.windowFlagsSet = 0,
.windowFlagsUnset = WINDOW_FLAGS_INITIAL_ANIMATION,
.darkening = 0,
.opacity = 184
},
{
.flags = SIMPLE_WINDOW_UPDATE_OPACITY,
.windowFlagsSet = 0,
.windowFlagsUnset = WINDOW_FLAGS_INITIAL_ANIMATION,
.darkening = 0,
.opacity = 255
},
{
.flags = SIMPLE_WINDOW_UPDATE_OPACITY,
.windowFlagsSet = 0,
.windowFlagsUnset = WINDOW_FLAGS_HIDDEN | WINDOW_FLAGS_INITIAL_ANIMATION,
.darkening = 0,
.opacity = 184
},
{
.flags = SIMPLE_WINDOW_UPDATE_DARKENING,
.windowFlagsSet = 0,
.windowFlagsUnset = WINDOW_FLAGS_HIDDEN | WINDOW_FLAGS_INITIAL_ANIMATION,
.darkening = 100,
.opacity = 0
},
{ },
{ },
{ },
{ }
};
u8 gWindowAppearScales[] = { 50, 80, 100, 105, 100 };
u8 gWindowAppearFlags[] = { DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, 0};
u8 gWindowDisappearScales[] = { 105, 100, 77, 57, 40, 27, 16, 8, 3, 0 };
u8 gWindowDisappearFlags[] = { DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE,
DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE,
DRAW_FLAGS_ROTSCALE, DRAW_FLAGS_ROTSCALE, 0 };
WindowGroup gWindowGroups[] = {
{ WINDOW_ID_0, WINDOW_ID_63 }, // all windows
{ WINDOW_ID_8, WINDOW_ID_9 }, // battle ?
{ WINDOW_ID_PAUSE_MAIN, WINDOW_ID_PAUSE_TAB_INVIS }, // pause menu
{ WINDOW_ID_PAUSE_CURSOR, WINDOW_ID_63 } // file menu
};
void clear_windows(void) {
Window* window = gWindows;
s32 i;
for (i = 0; i < ARRAY_COUNT(gWindows); i++, window++) {
window->flags = 0;
}
}
void update_windows(void) {
Window* window;
s32 i;
u8 flags;
for (i = 0, window = gWindows; i < ARRAY_COUNT(gWindows); i++, window++) {
flags = window->flags;
if (!flags || (flags & WINDOW_FLAGS_DISABLED)) {
continue;
}
if (flags & WINDOW_FLAGS_FPUPDATE_CHANGED) {
window->flags = flags & ~WINDOW_FLAGS_FPUPDATE_CHANGED;
window->fpUpdate = window->fpPending;
window->updateCounter = 0;
}
}
}
void basic_window_update(s32 windowID, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity) {
Window* window = &gWindows[windowID];
s32 counter = window->updateCounter;
if (counter == 0) {
window->flags &= ~WINDOW_FLAGS_HIDDEN;
}
if (counter < 5) {
*flags = gWindowAppearFlags[counter];
*scaleX = (f32)gWindowAppearScales[counter] * 0.01;
*scaleY = (f32)gWindowAppearScales[counter] * 0.01;
*rotZ = (4 - counter) * 3;
} else {
*flags = gWindowAppearFlags[4];
*scaleX = 1.0f;
*scaleY = 1.0f;
*rotZ = 0.0f;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
}
}
void basic_hidden_window_update(s32 windowID, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity) {
Window* window = &gWindows[windowID];
s32 counter = window->updateCounter;
if (counter < 10) {
*flags = gWindowDisappearFlags[counter];
*scaleX = (f32)gWindowDisappearScales[counter] * 0.01;
*scaleY = (f32)gWindowDisappearScales[counter] * 0.01;
*rotZ = -counter;
} else {
*flags = gWindowDisappearFlags[9];
*scaleX = 0.0f;
*scaleY = 0.0f;
*rotZ = 0.0f;
window->flags &= ~WINDOW_FLAGS_INITIAL_ANIMATION;
window->flags |= WINDOW_FLAGS_HIDDEN;
}
}
void main_menu_window_update(s32 windowID, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity) {
Window* window = &gWindows[windowID];
s32 counter = window->updateCounter;
if (counter < 10) {
*darkening = (counter + 1) * 16;
} else {
*darkening = 160;
window->flags &= ~(WINDOW_FLAGS_INITIAL_ANIMATION | WINDOW_FLAGS_HIDDEN);
}
}
void render_windows(s32* windowsArray, s32 parent, s32 flags, s32 baseX, s32 baseY, s32 opacity, s32 darkening, f32 (*rotScaleMtx)[4]) {
Window* window;
Window* childWindow;
s32 i;
s32 childWindowID;
s32 counter;
Matrix4f matrix;
f32 (*outMtx)[4];
s32 childFlags;
s32 posX, posY, posZ;
f32 scaleX, scaleY, rotX, rotY, rotZ;
s32 childDarkening, childOpacity;
s32 boxFlags;
s32 boxTranslateX;
s32 boxTranslateY;
s32 fpUpdateIdx;
s32 width, height;
s32 (*fpUpdateFunc)(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
s32 childWindowIdCopy;
WindowStyle windowStyle;
void* fpDrawContents;
void* drawContentsArg0;
s32* windowArrayIt;
for (i = 0, windowArrayIt = windowsArray; i < ARRAY_COUNT(gWindows); i++, windowArrayIt++) {
window = &gWindows[parent];
childWindowID = *windowArrayIt;
if (childWindowID < 0) {
continue;
}
childWindow = &gWindows[childWindowID];
if (childWindow->flags == 0 || (childWindow->flags & WINDOW_FLAGS_DISABLED)) {
continue;
}
fpUpdateIdx = childWindow->fpUpdate.i;
if (fpUpdateIdx == 0 || childWindow->parent != parent) {
continue;
}
counter = childWindow->updateCounter;
posX = childWindow->pos.x;
posY = childWindow->pos.y;
posZ = 0;
childFlags = 0;
rotX = rotY = rotZ = 0.0f;
scaleY = scaleX = 1.0f;
childDarkening = 0;
childOpacity = 255;
width = childWindow->width;
height = childWindow->height;
if (fpUpdateIdx > 0 && fpUpdateIdx < 14) {
SimpleWindowUpdateData* updateData = &gSimpleWindowUpdates[fpUpdateIdx];
childWindow->flags |= updateData->windowFlagsSet;
childWindow->flags &= ~updateData->windowFlagsUnset;
if (counter == 0 && (updateData->flags & SIMPLE_WINDOW_UPDATE_1)) {
update_window_hierarchy(childWindowID, childWindow->originalPriority);
}
if (updateData->flags & SIMPLE_WINDOW_UPDATE_DARKENING) {
childDarkening = updateData->darkening;
}
if (updateData->flags & SIMPLE_WINDOW_UPDATE_OPACITY) {
childOpacity = updateData->opacity;
}
} else {
//type conversion needed for matching
fpUpdateFunc = (s32 (*)(s32 windowIndex, s32* flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity))(childWindow->fpUpdate.func);
fpUpdateFunc(childWindowID, &childFlags, &posX, &posY, &posZ, &scaleX, &scaleY, &rotX, &rotY, &rotZ, &childDarkening, &childOpacity);
}
if (childWindow->fpUpdate.i) {
if (childWindow->updateCounter < 255) {
childWindow->updateCounter++;
}
}
if (scaleX == 0 || scaleY == 0 || (childWindow->flags & WINDOW_FLAGS_HIDDEN)) {
continue;
}
childDarkening += darkening;
childOpacity = childOpacity * opacity / 255;
fpDrawContents = childWindow->fpDrawContents;
drawContentsArg0 = childWindow->drawContentsArg0;
windowStyle = gWindowStyles[childWindowID];
outMtx = matrix;
//needed to match
childWindowIdCopy = childWindowID;
if (childDarkening > 255) {
childDarkening = 255;
}
childFlags |= flags;
if (!(flags & DRAW_FLAGS_ROTSCALE)) {
posX += baseX;
posY += baseY;
}
if (parent == -1) {
boxTranslateX = SCREEN_WIDTH;
} else {
boxTranslateX = window->width;
}
boxTranslateY = SCREEN_HEIGHT;
if (parent != -1) {
boxTranslateY = window->height;
}
boxFlags = childFlags;
if (childWindow->flags & WINDOW_FLAGS_40) {
boxFlags |= DRAW_FLAGS_2;
}
if (draw_box(boxFlags, windowStyle, posX, posY, posZ, width, height, childOpacity, childDarkening,
scaleX, scaleY, rotX, rotY, rotZ, fpDrawContents, drawContentsArg0, rotScaleMtx,
boxTranslateX, boxTranslateY, outMtx) == 0) {
if (childFlags == 0 && rotScaleMtx == 0) {
outMtx = NULL;
}
if (childWindow->flags & WINDOW_FLAGS_HAS_CHILDREN) {
render_windows(windowsArray, childWindowIdCopy, childFlags, posX, posY, childOpacity, childDarkening, outMtx);
}
}
}
}
void render_window_root(void) {
s32 priorityArray[ARRAY_COUNT(gWindows)];
s32* ptr = priorityArray;
s32 i;
Window* window;
for (i = 0; i < ARRAY_COUNT(gWindows); i++) {
*ptr++ = -1;
}
for (i = 0, window = gWindows; i < ARRAY_COUNT(gWindows); window++, i++) {
if (window->flags != 0) {
priorityArray[window->priority] = i;
}
}
gSPLoadGeometryMode(gMasterGfxPos++, 0);
gSPSetGeometryMode(gMasterGfxPos++, G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_SHADING_SMOOTH);
gDPPipelineMode(gMasterGfxPos++, G_PM_NPRIMITIVE);
gDPSetCombineMode(gMasterGfxPos++, G_CC_SHADE, G_CC_SHADE);
gDPSetAlphaCompare(gMasterGfxPos++, G_AC_NONE);
gSPSetOtherMode(gMasterGfxPos++, G_SETOTHERMODE_H, G_MDSFT_ALPHADITHER, 16, 0x2CF0); // WHAT?? does it make several operations at once?
gSPClipRatio(gMasterGfxPos++, FRUSTRATIO_2);
gDPSetColorImage(gMasterGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, osVirtualToPhysical(nuGfxCfb_ptr));
gDPPipeSync(gMasterGfxPos++);
render_windows(priorityArray, WINDOW_ID_NONE, 0, 0, 0, 255, 0, NULL);
}
void set_window_properties(s32 windowID, s32 posX, s32 posY, s32 width, s32 height, u8 priority, void* fpDrawContents, void* drawContentsArg0, s8 parent) {
Window* window = &gWindows[windowID];
u8 priorityCopy = priority;
window->flags = WINDOW_FLAGS_INITIALIZED | WINDOW_FLAGS_HIDDEN;
window->pos.x = posX;
window->pos.y = posY;
window->width = width;
window->fpUpdate.i = 0;
window->parent = parent;
window->height = height;
window->fpDrawContents = fpDrawContents;
window->drawContentsArg0 = drawContentsArg0;
if (parent >= 0) {
gWindows[parent].flags |= WINDOW_FLAGS_HAS_CHILDREN;
}
update_window_hierarchy(windowID, priorityCopy);
window->originalPriority = priority;
}
void update_window_hierarchy(s32 windowID, u8 priority) {
s32 priorityArray[ARRAY_COUNT(gWindows) + 1];
s32* ptr;
s32 i;
s32 currentPriority;
Window* window;
if (priority > ARRAY_COUNT(gWindows)) {
priority = ARRAY_COUNT(gWindows);
}
ptr = priorityArray;
for (i = 0; i < ARRAY_COUNT(priorityArray); i++, ptr++) {
*ptr = -1;
}
priorityArray[priority] = windowID;
for (i = 0, window = gWindows; i < ARRAY_COUNT(gWindows); i++, window++) {
if (window->flags && i != windowID) {
currentPriority = window->priority;
if (currentPriority >= priority) {
currentPriority++;
}
priorityArray[currentPriority] = i;
}
}
currentPriority = 0;
for (i = 0, ptr = priorityArray; i < ARRAY_COUNT(priorityArray); i++, ptr++) {
if (*ptr != -1) {
gWindows[*ptr].priority = currentPriority++;
}
}
}
void replace_window_update(s32 windowID, s8 priority, WindowUpdateFunc pendingFunc) {
if (gWindows[windowID].flags & WINDOW_FLAGS_INITIALIZED) {
gWindows[windowID].flags |= WINDOW_FLAGS_FPUPDATE_CHANGED | WINDOW_FLAGS_INITIAL_ANIMATION;
gWindows[windowID].fpPending = pendingFunc;
gWindows[windowID].originalPriority = priority;
}
}
void set_window_update(s32 windowID, WindowUpdateFunc func) {
if (gWindows[windowID].flags & WINDOW_FLAGS_INITIALIZED) {
if (func.i == gWindows[windowID].fpUpdate.i) {
gWindows[windowID].flags &= ~WINDOW_FLAGS_FPUPDATE_CHANGED;
} else {
gWindows[windowID].flags |= WINDOW_FLAGS_FPUPDATE_CHANGED | WINDOW_FLAGS_INITIAL_ANIMATION;
gWindows[windowID].fpPending = func;
}
}
}
void set_windows_visible(s32 groupIdx) {
s32 i;
Window* window = gWindows;
u8 min = gWindowGroups[groupIdx].min;
u8 max = gWindowGroups[groupIdx].max;
for (i = 0; i < ARRAY_COUNT(gWindows); i++, window++) {
if (window->flags & WINDOW_FLAGS_INITIALIZED) {
if (i < min || i > max) {
window->flags |= WINDOW_FLAGS_DISABLED;
} else {
window->flags &= ~WINDOW_FLAGS_DISABLED;
}
}
}
}
void setup_pause_menu_tab(MenuWindowBP* bp, s32 count) {
s32 i;
for (i = 0; i < count; i++, bp++) {
set_window_properties(bp->windowID, bp->pos.x, bp->pos.y, bp->width, bp->height, bp->priority, bp->fpDrawContents, bp->tab, bp->parentID);
if (bp->style.defaultStyleID != -1) {
gWindowStyles[bp->windowID] = bp->style;
}
set_window_update(bp->windowID, bp->fpUpdate);
gWindows[bp->windowID].flags |= bp->extraFlags;
}
}

View File

@ -13,7 +13,7 @@ extern s32 D_80286530;
extern s32 D_80286534;
extern Evt* D_8028652C;
extern HudScript* HudScript_Item_Coin;
extern s32 D_8014F150[64];
extern s32 gWindowStyles[64];
ApiStatus func_802803C8(Evt* script, s32 isInitialCall);
ApiStatus func_80280410(Evt* script, s32 isInitialCall);
@ -905,8 +905,8 @@ s32 MakeShop(Evt* script, s32 isInitialCall) {
get_generic_entity(create_generic_entity_frontUI(NULL, draw_shop_items));
set_window_properties(0xA, 100, 66, 120, 28, 0, shop_draw_item_name, NULL, -1);
set_window_properties(0xB, 32, 184, 256, 32, 1, shop_draw_item_desc, NULL, -1);
D_8014F150[10] = 9;
D_8014F150[11] = 3;
gWindowStyles[10] = 9;
gWindowStyles[11] = 3;
shop->currentItemSlot = 0;
shop->selectedStoreItemSlot = 0;
shop->flags = SHOP_FLAGS_0;

File diff suppressed because one or more lines are too long

View File

@ -24,7 +24,7 @@ dlabel D_80240E94_AF87E4
.word 0x00000043, 0x00000002, func_80240000_AF7950, 0xFE363C80, 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000000
dlabel D_80240EB8_AF8808
.word 0x00000000, 0x00000000, 0x00000000, D_8010B160, 0x31100810, 0x08100810, 0x08000000, 0x00000000, 0xFC617E60, 0xF5FFF578, 0xFC612660, 0xF5FFFF78, 0xFFB7B5FF, 0x7A593FFF
.word 0x00000000, 0x00000000, 0x00000000, ui_corners5_png, 0x31100810, 0x08100810, 0x08000000, 0x00000000, 0xFC617E60, 0xF5FFF578, 0xFC612660, 0xF5FFFF78, 0xFFB7B5FF, 0x7A593FFF
dlabel D_80240EF0_AF8840
.word 0x0A000064, 0x00420078, 0x001C0000, func_802400E4_AF7A34, 0x00000000, 0xFF000000, 0x00000002, 0x00000000, D_80240EB8_AF8808, 0x0B000020, 0x00B80100, 0x00200000, func_80240178_AF7AC8, 0x00000000, 0xFF000000, 0x00000002, 0x00000000, 0xFFFFFFFF

View File

@ -2,8 +2,8 @@
.set noreorder # don't insert nops after branches
glabel filemenu_main_update
/* 16738C 80246B2C 3C058015 */ lui $a1, %hi(D_8014F150)
/* 167390 80246B30 24A5F150 */ addiu $a1, $a1, %lo(D_8014F150)
/* 16738C 80246B2C 3C058015 */ lui $a1, %hi(gWindowStyles)
/* 167390 80246B30 24A5F150 */ addiu $a1, $a1, %lo(gWindowStyles)
/* 167394 80246B34 3C068025 */ lui $a2, %hi(D_8024BDA8)
/* 167398 80246B38 24C6BDA8 */ addiu $a2, $a2, %lo(D_8024BDA8)
/* 16739C 80246B3C 24C20070 */ addiu $v0, $a2, 0x70
@ -79,8 +79,8 @@ glabel filemenu_main_update
/* 167494 80246C34 03E00008 */ jr $ra
/* 167498 80246C38 00000000 */ nop
.L80246C3C:
/* 16749C 80246C3C 3C038015 */ lui $v1, %hi(D_8014F150)
/* 1674A0 80246C40 2463F150 */ addiu $v1, $v1, %lo(D_8014F150)
/* 16749C 80246C3C 3C038015 */ lui $v1, %hi(gWindowStyles)
/* 1674A0 80246C40 2463F150 */ addiu $v1, $v1, %lo(gWindowStyles)
/* 1674A4 80246C44 3C028025 */ lui $v0, %hi(D_8024BDE0)
/* 1674A8 80246C48 2442BDE0 */ addiu $v0, $v0, %lo(D_8024BDE0)
/* 1674AC 80246C4C AC6200E0 */ sw $v0, 0xe0($v1)
@ -88,8 +88,8 @@ glabel filemenu_main_update
/* 1674B4 80246C54 03E00008 */ jr $ra
/* 1674B8 80246C58 AC6200F0 */ sw $v0, 0xf0($v1)
.L80246C5C:
/* 1674BC 80246C5C 3C038015 */ lui $v1, %hi(D_8014F150)
/* 1674C0 80246C60 2463F150 */ addiu $v1, $v1, %lo(D_8014F150)
/* 1674BC 80246C5C 3C038015 */ lui $v1, %hi(gWindowStyles)
/* 1674C0 80246C60 2463F150 */ addiu $v1, $v1, %lo(gWindowStyles)
/* 1674C4 80246C64 3C028025 */ lui $v0, %hi(D_8024BDE0)
/* 1674C8 80246C68 2442BDE0 */ addiu $v0, $v0, %lo(D_8024BDE0)
/* 1674CC 80246C6C AC6200E4 */ sw $v0, 0xe4($v1)
@ -97,8 +97,8 @@ glabel filemenu_main_update
/* 1674D4 80246C74 03E00008 */ jr $ra
/* 1674D8 80246C78 AC6200F4 */ sw $v0, 0xf4($v1)
.L80246C7C:
/* 1674DC 80246C7C 3C038015 */ lui $v1, %hi(D_8014F150)
/* 1674E0 80246C80 2463F150 */ addiu $v1, $v1, %lo(D_8014F150)
/* 1674DC 80246C7C 3C038015 */ lui $v1, %hi(gWindowStyles)
/* 1674E0 80246C80 2463F150 */ addiu $v1, $v1, %lo(gWindowStyles)
/* 1674E4 80246C84 3C028025 */ lui $v0, %hi(D_8024BDE0)
/* 1674E8 80246C88 2442BDE0 */ addiu $v0, $v0, %lo(D_8024BDE0)
/* 1674EC 80246C8C AC6200E8 */ sw $v0, 0xe8($v1)
@ -106,8 +106,8 @@ glabel filemenu_main_update
/* 1674F4 80246C94 03E00008 */ jr $ra
/* 1674F8 80246C98 AC6200F8 */ sw $v0, 0xf8($v1)
.L80246C9C:
/* 1674FC 80246C9C 3C038015 */ lui $v1, %hi(D_8014F150)
/* 167500 80246CA0 2463F150 */ addiu $v1, $v1, %lo(D_8014F150)
/* 1674FC 80246C9C 3C038015 */ lui $v1, %hi(gWindowStyles)
/* 167500 80246CA0 2463F150 */ addiu $v1, $v1, %lo(gWindowStyles)
/* 167504 80246CA4 3C028025 */ lui $v0, %hi(D_8024BDE0)
/* 167508 80246CA8 2442BDE0 */ addiu $v0, $v0, %lo(D_8024BDE0)
/* 16750C 80246CAC AC6200EC */ sw $v0, 0xec($v1)

View File

@ -2634,8 +2634,8 @@ glabel draw_box
/* 90EA0 800F79F0 AC620034 */ sw $v0, 0x34($v1)
/* 90EA4 800F79F4 24620040 */ addiu $v0, $v1, 0x40
/* 90EA8 800F79F8 AD820000 */ sw $v0, ($t4)
/* 90EAC 800F79FC 3C028011 */ lui $v0, %hi(D_8010BBC8)
/* 90EB0 800F7A00 2442BBC8 */ addiu $v0, $v0, %lo(D_8010BBC8)
/* 90EAC 800F79FC 3C028011 */ lui $v0, %hi(vtx_drawbox1)
/* 90EB0 800F7A00 2442BBC8 */ addiu $v0, $v0, %lo(vtx_drawbox1)
/* 90EB4 800F7A04 AC690038 */ sw $t1, 0x38($v1)
/* 90EB8 800F7A08 AC62003C */ sw $v0, 0x3c($v1)
/* 90EBC 800F7A0C 24620048 */ addiu $v0, $v1, 0x48

View File

@ -1,67 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_80151248
.double 0.01
.section .text
glabel basic_hidden_window_update
/* DDC74 80147574 3C028016 */ lui $v0, %hi(gWindows)
/* DDC78 80147578 24429D50 */ addiu $v0, $v0, %lo(gWindows)
/* DDC7C 8014757C 00042140 */ sll $a0, $a0, 5
/* DDC80 80147580 00822021 */ addu $a0, $a0, $v0
/* DDC84 80147584 9086001C */ lbu $a2, 0x1c($a0)
/* DDC88 80147588 8FA70014 */ lw $a3, 0x14($sp)
/* DDC8C 8014758C 8FA80018 */ lw $t0, 0x18($sp)
/* DDC90 80147590 8FA90024 */ lw $t1, 0x24($sp)
/* DDC94 80147594 28C2000A */ slti $v0, $a2, 0xa
/* DDC98 80147598 10400022 */ beqz $v0, .L80147624
/* DDC9C 8014759C 00000000 */ nop
/* DDCA0 801475A0 3C038015 */ lui $v1, %hi(D_8014F2A8)
/* DDCA4 801475A4 2463F2A8 */ addiu $v1, $v1, %lo(D_8014F2A8)
/* DDCA8 801475A8 3C028015 */ lui $v0, %hi(D_8014F2B4)
/* DDCAC 801475AC 00461021 */ addu $v0, $v0, $a2
/* DDCB0 801475B0 9042F2B4 */ lbu $v0, %lo(D_8014F2B4)($v0)
/* DDCB4 801475B4 00C31821 */ addu $v1, $a2, $v1
/* DDCB8 801475B8 ACA20000 */ sw $v0, ($a1)
/* DDCBC 801475BC 90620000 */ lbu $v0, ($v1)
/* DDCC0 801475C0 3C018015 */ lui $at, %hi(D_80151248)
/* DDCC4 801475C4 D4221248 */ ldc1 $f2, %lo(D_80151248)($at)
/* DDCC8 801475C8 44820000 */ mtc1 $v0, $f0
/* DDCCC 801475CC 00000000 */ nop
/* DDCD0 801475D0 46800020 */ cvt.s.w $f0, $f0
/* DDCD4 801475D4 46000021 */ cvt.d.s $f0, $f0
/* DDCD8 801475D8 46220002 */ mul.d $f0, $f0, $f2
/* DDCDC 801475DC 00000000 */ nop
/* DDCE0 801475E0 46200020 */ cvt.s.d $f0, $f0
/* DDCE4 801475E4 E4E00000 */ swc1 $f0, ($a3)
/* DDCE8 801475E8 90620000 */ lbu $v0, ($v1)
/* DDCEC 801475EC 44820000 */ mtc1 $v0, $f0
/* DDCF0 801475F0 00000000 */ nop
/* DDCF4 801475F4 46800020 */ cvt.s.w $f0, $f0
/* DDCF8 801475F8 46000021 */ cvt.d.s $f0, $f0
/* DDCFC 801475FC 46220002 */ mul.d $f0, $f0, $f2
/* DDD00 80147600 00000000 */ nop
/* DDD04 80147604 00061023 */ negu $v0, $a2
/* DDD08 80147608 46200020 */ cvt.s.d $f0, $f0
/* DDD0C 8014760C E5000000 */ swc1 $f0, ($t0)
/* DDD10 80147610 44820000 */ mtc1 $v0, $f0
/* DDD14 80147614 00000000 */ nop
/* DDD18 80147618 46800020 */ cvt.s.w $f0, $f0
/* DDD1C 8014761C 03E00008 */ jr $ra
/* DDD20 80147620 E5200000 */ swc1 $f0, ($t1)
.L80147624:
/* DDD24 80147624 3C028015 */ lui $v0, %hi(D_8014F2BD)
/* DDD28 80147628 9042F2BD */ lbu $v0, %lo(D_8014F2BD)($v0)
/* DDD2C 8014762C ACA20000 */ sw $v0, ($a1)
/* DDD30 80147630 ACE00000 */ sw $zero, ($a3)
/* DDD34 80147634 AD000000 */ sw $zero, ($t0)
/* DDD38 80147638 AD200000 */ sw $zero, ($t1)
/* DDD3C 8014763C 90820000 */ lbu $v0, ($a0)
/* DDD40 80147640 304200F7 */ andi $v0, $v0, 0xf7
/* DDD44 80147644 34420004 */ ori $v0, $v0, 4
/* DDD48 80147648 03E00008 */ jr $ra
/* DDD4C 8014764C A0820000 */ sb $v0, ($a0)

View File

@ -1,77 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_80151240
.double 0.01
.section .text
glabel basic_window_update
/* DDB74 80147474 3C028016 */ lui $v0, %hi(gWindows)
/* DDB78 80147478 24429D50 */ addiu $v0, $v0, %lo(gWindows)
/* DDB7C 8014747C 00042140 */ sll $a0, $a0, 5
/* DDB80 80147480 00822021 */ addu $a0, $a0, $v0
/* DDB84 80147484 8FA70014 */ lw $a3, 0x14($sp)
/* DDB88 80147488 8FA80018 */ lw $t0, 0x18($sp)
/* DDB8C 8014748C 9086001C */ lbu $a2, 0x1c($a0)
/* DDB90 80147490 8FA90024 */ lw $t1, 0x24($sp)
/* DDB94 80147494 14C00005 */ bnez $a2, .L801474AC
/* DDB98 80147498 28C20005 */ slti $v0, $a2, 5
/* DDB9C 8014749C 90820000 */ lbu $v0, ($a0)
/* DDBA0 801474A0 304200FB */ andi $v0, $v0, 0xfb
/* DDBA4 801474A4 A0820000 */ sb $v0, ($a0)
/* DDBA8 801474A8 28C20005 */ slti $v0, $a2, 5
.L801474AC:
/* DDBAC 801474AC 10400025 */ beqz $v0, .L80147544
/* DDBB0 801474B0 00000000 */ nop
/* DDBB4 801474B4 3C038015 */ lui $v1, %hi(D_8014F298)
/* DDBB8 801474B8 2463F298 */ addiu $v1, $v1, %lo(D_8014F298)
/* DDBBC 801474BC 3C028015 */ lui $v0, %hi(D_8014F2A0)
/* DDBC0 801474C0 00461021 */ addu $v0, $v0, $a2
/* DDBC4 801474C4 9042F2A0 */ lbu $v0, %lo(D_8014F2A0)($v0)
/* DDBC8 801474C8 00C31821 */ addu $v1, $a2, $v1
/* DDBCC 801474CC ACA20000 */ sw $v0, ($a1)
/* DDBD0 801474D0 90620000 */ lbu $v0, ($v1)
/* DDBD4 801474D4 3C018015 */ lui $at, %hi(D_80151240)
/* DDBD8 801474D8 D4221240 */ ldc1 $f2, %lo(D_80151240)($at)
/* DDBDC 801474DC 44820000 */ mtc1 $v0, $f0
/* DDBE0 801474E0 00000000 */ nop
/* DDBE4 801474E4 46800020 */ cvt.s.w $f0, $f0
/* DDBE8 801474E8 46000021 */ cvt.d.s $f0, $f0
/* DDBEC 801474EC 46220002 */ mul.d $f0, $f0, $f2
/* DDBF0 801474F0 00000000 */ nop
/* DDBF4 801474F4 46200020 */ cvt.s.d $f0, $f0
/* DDBF8 801474F8 E4E00000 */ swc1 $f0, ($a3)
/* DDBFC 801474FC 90620000 */ lbu $v0, ($v1)
/* DDC00 80147500 44820000 */ mtc1 $v0, $f0
/* DDC04 80147504 00000000 */ nop
/* DDC08 80147508 46800020 */ cvt.s.w $f0, $f0
/* DDC0C 8014750C 46000021 */ cvt.d.s $f0, $f0
/* DDC10 80147510 46220002 */ mul.d $f0, $f0, $f2
/* DDC14 80147514 00000000 */ nop
/* DDC18 80147518 24030004 */ addiu $v1, $zero, 4
/* DDC1C 8014751C 00661823 */ subu $v1, $v1, $a2
/* DDC20 80147520 00031040 */ sll $v0, $v1, 1
/* DDC24 80147524 00431021 */ addu $v0, $v0, $v1
/* DDC28 80147528 46200020 */ cvt.s.d $f0, $f0
/* DDC2C 8014752C E5000000 */ swc1 $f0, ($t0)
/* DDC30 80147530 44820000 */ mtc1 $v0, $f0
/* DDC34 80147534 00000000 */ nop
/* DDC38 80147538 46800020 */ cvt.s.w $f0, $f0
/* DDC3C 8014753C 03E00008 */ jr $ra
/* DDC40 80147540 E5200000 */ swc1 $f0, ($t1)
.L80147544:
/* DDC44 80147544 3C028015 */ lui $v0, %hi(D_8014F2A4)
/* DDC48 80147548 9042F2A4 */ lbu $v0, %lo(D_8014F2A4)($v0)
/* DDC4C 8014754C 3C013F80 */ lui $at, 0x3f80
/* DDC50 80147550 44810000 */ mtc1 $at, $f0
/* DDC54 80147554 ACA20000 */ sw $v0, ($a1)
/* DDC58 80147558 E4E00000 */ swc1 $f0, ($a3)
/* DDC5C 8014755C E5000000 */ swc1 $f0, ($t0)
/* DDC60 80147560 AD200000 */ sw $zero, ($t1)
/* DDC64 80147564 90820000 */ lbu $v0, ($a0)
/* DDC68 80147568 304200F7 */ andi $v0, $v0, 0xf7
/* DDC6C 8014756C 03E00008 */ jr $ra
/* DDC70 80147570 A0820000 */ sb $v0, ($a0)

View File

@ -1,23 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel main_menu_window_update
/* DDD50 80147650 3C028016 */ lui $v0, %hi(gWindows)
/* DDD54 80147654 24429D50 */ addiu $v0, $v0, %lo(gWindows)
/* DDD58 80147658 00042140 */ sll $a0, $a0, 5
/* DDD5C 8014765C 00822021 */ addu $a0, $a0, $v0
/* DDD60 80147660 9083001C */ lbu $v1, 0x1c($a0)
/* DDD64 80147664 8FA50028 */ lw $a1, 0x28($sp)
/* DDD68 80147668 2862000A */ slti $v0, $v1, 0xa
/* DDD6C 8014766C 10400005 */ beqz $v0, .L80147684
/* DDD70 80147670 240200A0 */ addiu $v0, $zero, 0xa0
/* DDD74 80147674 24620001 */ addiu $v0, $v1, 1
/* DDD78 80147678 00021100 */ sll $v0, $v0, 4
/* DDD7C 8014767C 03E00008 */ jr $ra
/* DDD80 80147680 ACA20000 */ sw $v0, ($a1)
.L80147684:
/* DDD84 80147684 ACA20000 */ sw $v0, ($a1)
/* DDD88 80147688 90820000 */ lbu $v0, ($a0)
/* DDD8C 8014768C 304200F3 */ andi $v0, $v0, 0xf3
/* DDD90 80147690 03E00008 */ jr $ra
/* DDD94 80147694 A0820000 */ sb $v0, ($a0)

View File

@ -1,136 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel render_window_root
/* DE1C4 80147AC4 27BDFED0 */ addiu $sp, $sp, -0x130
/* DE1C8 80147AC8 27A20020 */ addiu $v0, $sp, 0x20
/* DE1CC 80147ACC 2404FFFF */ addiu $a0, $zero, -1
/* DE1D0 80147AD0 2403003F */ addiu $v1, $zero, 0x3f
/* DE1D4 80147AD4 AFBF012C */ sw $ra, 0x12c($sp)
/* DE1D8 80147AD8 AFB20128 */ sw $s2, 0x128($sp)
/* DE1DC 80147ADC AFB10124 */ sw $s1, 0x124($sp)
/* DE1E0 80147AE0 AFB00120 */ sw $s0, 0x120($sp)
.L80147AE4:
/* DE1E4 80147AE4 AC440000 */ sw $a0, ($v0)
/* DE1E8 80147AE8 2463FFFF */ addiu $v1, $v1, -1
/* DE1EC 80147AEC 0461FFFD */ bgez $v1, .L80147AE4
/* DE1F0 80147AF0 24420004 */ addiu $v0, $v0, 4
/* DE1F4 80147AF4 0000182D */ daddu $v1, $zero, $zero
/* DE1F8 80147AF8 3C048016 */ lui $a0, %hi(gWindows)
/* DE1FC 80147AFC 24849D50 */ addiu $a0, $a0, %lo(gWindows)
/* DE200 80147B00 27A50020 */ addiu $a1, $sp, 0x20
.L80147B04:
/* DE204 80147B04 90820000 */ lbu $v0, ($a0)
/* DE208 80147B08 50400006 */ beql $v0, $zero, .L80147B24
/* DE20C 80147B0C 24630001 */ addiu $v1, $v1, 1
/* DE210 80147B10 90820001 */ lbu $v0, 1($a0)
/* DE214 80147B14 00021080 */ sll $v0, $v0, 2
/* DE218 80147B18 00A21021 */ addu $v0, $a1, $v0
/* DE21C 80147B1C AC430000 */ sw $v1, ($v0)
/* DE220 80147B20 24630001 */ addiu $v1, $v1, 1
.L80147B24:
/* DE224 80147B24 28620040 */ slti $v0, $v1, 0x40
/* DE228 80147B28 1440FFF6 */ bnez $v0, .L80147B04
/* DE22C 80147B2C 24840020 */ addiu $a0, $a0, 0x20
/* DE230 80147B30 3C06D9FF */ lui $a2, 0xd9ff
/* DE234 80147B34 34C6FFFF */ ori $a2, $a2, 0xffff
/* DE238 80147B38 3C050020 */ lui $a1, 0x20
/* DE23C 80147B3C 34A50605 */ ori $a1, $a1, 0x605
/* DE240 80147B40 3C07E300 */ lui $a3, 0xe300
/* DE244 80147B44 34E70800 */ ori $a3, $a3, 0x800
/* DE248 80147B48 3C09FCFF */ lui $t1, 0xfcff
/* DE24C 80147B4C 3529FFFF */ ori $t1, $t1, 0xffff
/* DE250 80147B50 3C08FFFE */ lui $t0, 0xfffe
/* DE254 80147B54 3508793C */ ori $t0, $t0, 0x793c
/* DE258 80147B58 3C0AE200 */ lui $t2, 0xe200
/* DE25C 80147B5C 354A1E01 */ ori $t2, $t2, 0x1e01
/* DE260 80147B60 3C0BE300 */ lui $t3, 0xe300
/* DE264 80147B64 356B0C0F */ ori $t3, $t3, 0xc0f
/* DE268 80147B68 3C0CDB04 */ lui $t4, 0xdb04
/* DE26C 80147B6C 358C0004 */ ori $t4, $t4, 4
/* DE270 80147B70 3C0DDB04 */ lui $t5, 0xdb04
/* DE274 80147B74 35AD000C */ ori $t5, $t5, 0xc
/* DE278 80147B78 3C0EDB04 */ lui $t6, 0xdb04
/* DE27C 80147B7C 35CE0014 */ ori $t6, $t6, 0x14
/* DE280 80147B80 3C0FDB04 */ lui $t7, 0xdb04
/* DE284 80147B84 35EF001C */ ori $t7, $t7, 0x1c
/* DE288 80147B88 3C12FF10 */ lui $s2, 0xff10
/* DE28C 80147B8C 3652013F */ ori $s2, $s2, 0x13f
/* DE290 80147B90 3C11800A */ lui $s1, %hi(gMasterGfxPos)
/* DE294 80147B94 2631A66C */ addiu $s1, $s1, %lo(gMasterGfxPos)
/* DE298 80147B98 3C02D900 */ lui $v0, 0xd900
/* DE29C 80147B9C 8E300000 */ lw $s0, ($s1)
/* DE2A0 80147BA0 3C04800A */ lui $a0, %hi(nuGfxCfb_ptr)
/* DE2A4 80147BA4 8C84A64C */ lw $a0, %lo(nuGfxCfb_ptr)($a0)
/* DE2A8 80147BA8 0200182D */ daddu $v1, $s0, $zero
/* DE2AC 80147BAC 26100008 */ addiu $s0, $s0, 8
/* DE2B0 80147BB0 AE300000 */ sw $s0, ($s1)
/* DE2B4 80147BB4 AC620000 */ sw $v0, ($v1)
/* DE2B8 80147BB8 26020008 */ addiu $v0, $s0, 8
/* DE2BC 80147BBC AC600004 */ sw $zero, 4($v1)
/* DE2C0 80147BC0 AE220000 */ sw $v0, ($s1)
/* DE2C4 80147BC4 26020010 */ addiu $v0, $s0, 0x10
/* DE2C8 80147BC8 AE060000 */ sw $a2, ($s0)
/* DE2CC 80147BCC AE050004 */ sw $a1, 4($s0)
/* DE2D0 80147BD0 AE220000 */ sw $v0, ($s1)
/* DE2D4 80147BD4 26020018 */ addiu $v0, $s0, 0x18
/* DE2D8 80147BD8 AE070008 */ sw $a3, 8($s0)
/* DE2DC 80147BDC AE00000C */ sw $zero, 0xc($s0)
/* DE2E0 80147BE0 AE220000 */ sw $v0, ($s1)
/* DE2E4 80147BE4 26020020 */ addiu $v0, $s0, 0x20
/* DE2E8 80147BE8 AE090010 */ sw $t1, 0x10($s0)
/* DE2EC 80147BEC AE080014 */ sw $t0, 0x14($s0)
/* DE2F0 80147BF0 AE220000 */ sw $v0, ($s1)
/* DE2F4 80147BF4 26020028 */ addiu $v0, $s0, 0x28
/* DE2F8 80147BF8 AE0A0018 */ sw $t2, 0x18($s0)
/* DE2FC 80147BFC AE00001C */ sw $zero, 0x1c($s0)
/* DE300 80147C00 AE220000 */ sw $v0, ($s1)
/* DE304 80147C04 24022CF0 */ addiu $v0, $zero, 0x2cf0
/* DE308 80147C08 AE020024 */ sw $v0, 0x24($s0)
/* DE30C 80147C0C 26020030 */ addiu $v0, $s0, 0x30
/* DE310 80147C10 24030002 */ addiu $v1, $zero, 2
/* DE314 80147C14 AE0B0020 */ sw $t3, 0x20($s0)
/* DE318 80147C18 AE220000 */ sw $v0, ($s1)
/* DE31C 80147C1C 26020038 */ addiu $v0, $s0, 0x38
/* DE320 80147C20 AE0C0028 */ sw $t4, 0x28($s0)
/* DE324 80147C24 AE03002C */ sw $v1, 0x2c($s0)
/* DE328 80147C28 AE220000 */ sw $v0, ($s1)
/* DE32C 80147C2C 26020040 */ addiu $v0, $s0, 0x40
/* DE330 80147C30 AE030034 */ sw $v1, 0x34($s0)
/* DE334 80147C34 3403FFFE */ ori $v1, $zero, 0xfffe
/* DE338 80147C38 AE0D0030 */ sw $t5, 0x30($s0)
/* DE33C 80147C3C AE220000 */ sw $v0, ($s1)
/* DE340 80147C40 26020048 */ addiu $v0, $s0, 0x48
/* DE344 80147C44 AE0E0038 */ sw $t6, 0x38($s0)
/* DE348 80147C48 AE03003C */ sw $v1, 0x3c($s0)
/* DE34C 80147C4C AE220000 */ sw $v0, ($s1)
/* DE350 80147C50 26020050 */ addiu $v0, $s0, 0x50
/* DE354 80147C54 AE0F0040 */ sw $t7, 0x40($s0)
/* DE358 80147C58 AE030044 */ sw $v1, 0x44($s0)
/* DE35C 80147C5C AE220000 */ sw $v0, ($s1)
/* DE360 80147C60 0C0187A4 */ jal osVirtualToPhysical
/* DE364 80147C64 AE120048 */ sw $s2, 0x48($s0)
/* DE368 80147C68 8E230000 */ lw $v1, ($s1)
/* DE36C 80147C6C 27A40020 */ addiu $a0, $sp, 0x20
/* DE370 80147C70 AE02004C */ sw $v0, 0x4c($s0)
/* DE374 80147C74 3C02E700 */ lui $v0, 0xe700
/* DE378 80147C78 0000302D */ daddu $a2, $zero, $zero
/* DE37C 80147C7C 00C0382D */ daddu $a3, $a2, $zero
/* DE380 80147C80 0060282D */ daddu $a1, $v1, $zero
/* DE384 80147C84 24630008 */ addiu $v1, $v1, 8
/* DE388 80147C88 AE230000 */ sw $v1, ($s1)
/* DE38C 80147C8C ACA20000 */ sw $v0, ($a1)
/* DE390 80147C90 240200FF */ addiu $v0, $zero, 0xff
/* DE394 80147C94 ACA00004 */ sw $zero, 4($a1)
/* DE398 80147C98 2405FFFF */ addiu $a1, $zero, -1
/* DE39C 80147C9C AFA00010 */ sw $zero, 0x10($sp)
/* DE3A0 80147CA0 AFA20014 */ sw $v0, 0x14($sp)
/* DE3A4 80147CA4 AFA00018 */ sw $zero, 0x18($sp)
/* DE3A8 80147CA8 0C051DA6 */ jal render_windows
/* DE3AC 80147CAC AFA0001C */ sw $zero, 0x1c($sp)
/* DE3B0 80147CB0 8FBF012C */ lw $ra, 0x12c($sp)
/* DE3B4 80147CB4 8FB20128 */ lw $s2, 0x128($sp)
/* DE3B8 80147CB8 8FB10124 */ lw $s1, 0x124($sp)
/* DE3BC 80147CBC 8FB00120 */ lw $s0, 0x120($sp)
/* DE3C0 80147CC0 03E00008 */ jr $ra
/* DE3C4 80147CC4 27BD0130 */ addiu $sp, $sp, 0x130

View File

@ -1,284 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel render_windows
/* DDD98 80147698 27BDFF10 */ addiu $sp, $sp, -0xf0
/* DDD9C 8014769C AFB700DC */ sw $s7, 0xdc($sp)
/* DDDA0 801476A0 00A0B82D */ daddu $s7, $a1, $zero
/* DDDA4 801476A4 AFB600D8 */ sw $s6, 0xd8($sp)
/* DDDA8 801476A8 0000B02D */ daddu $s6, $zero, $zero
/* DDDAC 801476AC AFB300CC */ sw $s3, 0xcc($sp)
/* DDDB0 801476B0 AFA400F0 */ sw $a0, 0xf0($sp)
/* DDDB4 801476B4 0080982D */ daddu $s3, $a0, $zero
/* DDDB8 801476B8 00171140 */ sll $v0, $s7, 5
/* DDDBC 801476BC F7B400E8 */ sdc1 $f20, 0xe8($sp)
/* DDDC0 801476C0 4480A000 */ mtc1 $zero, $f20
/* DDDC4 801476C4 3C0B8016 */ lui $t3, %hi(gWindows)
/* DDDC8 801476C8 256B9D50 */ addiu $t3, $t3, %lo(gWindows)
/* DDDCC 801476CC AFBE00E0 */ sw $fp, 0xe0($sp)
/* DDDD0 801476D0 004BF021 */ addu $fp, $v0, $t3
/* DDDD4 801476D4 AFBF00E4 */ sw $ra, 0xe4($sp)
/* DDDD8 801476D8 AFB500D4 */ sw $s5, 0xd4($sp)
/* DDDDC 801476DC AFB400D0 */ sw $s4, 0xd0($sp)
/* DDDE0 801476E0 AFB200C8 */ sw $s2, 0xc8($sp)
/* DDDE4 801476E4 AFB100C4 */ sw $s1, 0xc4($sp)
/* DDDE8 801476E8 AFB000C0 */ sw $s0, 0xc0($sp)
/* DDDEC 801476EC AFA600F8 */ sw $a2, 0xf8($sp)
/* DDDF0 801476F0 AFA700FC */ sw $a3, 0xfc($sp)
.L801476F4:
/* DDDF4 801476F4 8E720000 */ lw $s2, ($s3)
/* DDDF8 801476F8 064200E2 */ bltzl $s2, .L80147A84
/* DDDFC 801476FC 26D60001 */ addiu $s6, $s6, 1
/* DDE00 80147700 00121140 */ sll $v0, $s2, 5
/* DDE04 80147704 3C0B8016 */ lui $t3, %hi(gWindows)
/* DDE08 80147708 256B9D50 */ addiu $t3, $t3, %lo(gWindows)
/* DDE0C 8014770C 004B8821 */ addu $s1, $v0, $t3
/* DDE10 80147710 92220000 */ lbu $v0, ($s1)
/* DDE14 80147714 504000DB */ beql $v0, $zero, .L80147A84
/* DDE18 80147718 26D60001 */ addiu $s6, $s6, 1
/* DDE1C 8014771C 30420020 */ andi $v0, $v0, 0x20
/* DDE20 80147720 544000D8 */ bnel $v0, $zero, .L80147A84
/* DDE24 80147724 26D60001 */ addiu $s6, $s6, 1
/* DDE28 80147728 8E250004 */ lw $a1, 4($s1)
/* DDE2C 8014772C 50A000D5 */ beql $a1, $zero, .L80147A84
/* DDE30 80147730 26D60001 */ addiu $s6, $s6, 1
/* DDE34 80147734 82220003 */ lb $v0, 3($s1)
/* DDE38 80147738 545700D2 */ bnel $v0, $s7, .L80147A84
/* DDE3C 8014773C 26D60001 */ addiu $s6, $s6, 1
/* DDE40 80147740 9226001C */ lbu $a2, 0x1c($s1)
/* DDE44 80147744 AFA0009C */ sw $zero, 0x9c($sp)
/* DDE48 80147748 AFA00090 */ sw $zero, 0x90($sp)
/* DDE4C 8014774C E7B400B0 */ swc1 $f20, 0xb0($sp)
/* DDE50 80147750 E7B400AC */ swc1 $f20, 0xac($sp)
/* DDE54 80147754 E7B400A8 */ swc1 $f20, 0xa8($sp)
/* DDE58 80147758 AFA000B4 */ sw $zero, 0xb4($sp)
/* DDE5C 8014775C 8623000C */ lh $v1, 0xc($s1)
/* DDE60 80147760 8624000E */ lh $a0, 0xe($s1)
/* DDE64 80147764 240200FF */ addiu $v0, $zero, 0xff
/* DDE68 80147768 AFA200B8 */ sw $v0, 0xb8($sp)
/* DDE6C 8014776C 24A2FFFF */ addiu $v0, $a1, -1
/* DDE70 80147770 3C013F80 */ lui $at, 0x3f80
/* DDE74 80147774 44810000 */ mtc1 $at, $f0
/* DDE78 80147778 2C42000D */ sltiu $v0, $v0, 0xd
/* DDE7C 8014777C AFA30094 */ sw $v1, 0x94($sp)
/* DDE80 80147780 AFA40098 */ sw $a0, 0x98($sp)
/* DDE84 80147784 E7A000A0 */ swc1 $f0, 0xa0($sp)
/* DDE88 80147788 E7A000A4 */ swc1 $f0, 0xa4($sp)
/* DDE8C 8014778C 86340010 */ lh $s4, 0x10($s1)
/* DDE90 80147790 86350012 */ lh $s5, 0x12($s1)
/* DDE94 80147794 10400022 */ beqz $v0, .L80147820
/* DDE98 80147798 00051080 */ sll $v0, $a1, 2
/* DDE9C 8014779C 3C038015 */ lui $v1, %hi(D_8014F250)
/* DDEA0 801477A0 2463F250 */ addiu $v1, $v1, %lo(D_8014F250)
/* DDEA4 801477A4 00451021 */ addu $v0, $v0, $a1
/* DDEA8 801477A8 00438021 */ addu $s0, $v0, $v1
/* DDEAC 801477AC 92230000 */ lbu $v1, ($s1)
/* DDEB0 801477B0 92020001 */ lbu $v0, 1($s0)
/* DDEB4 801477B4 00621825 */ or $v1, $v1, $v0
/* DDEB8 801477B8 A2230000 */ sb $v1, ($s1)
/* DDEBC 801477BC 92020002 */ lbu $v0, 2($s0)
/* DDEC0 801477C0 00021027 */ nor $v0, $zero, $v0
/* DDEC4 801477C4 00621824 */ and $v1, $v1, $v0
/* DDEC8 801477C8 14C00008 */ bnez $a2, .L801477EC
/* DDECC 801477CC A2230000 */ sb $v1, ($s1)
/* DDED0 801477D0 92020000 */ lbu $v0, ($s0)
/* DDED4 801477D4 30420001 */ andi $v0, $v0, 1
/* DDED8 801477D8 10400004 */ beqz $v0, .L801477EC
/* DDEDC 801477DC 00000000 */ nop
/* DDEE0 801477E0 92250002 */ lbu $a1, 2($s1)
/* DDEE4 801477E4 0C051F5C */ jal update_window_hierarchy
/* DDEE8 801477E8 0240202D */ daddu $a0, $s2, $zero
.L801477EC:
/* DDEEC 801477EC 92020000 */ lbu $v0, ($s0)
/* DDEF0 801477F0 30420004 */ andi $v0, $v0, 4
/* DDEF4 801477F4 10400003 */ beqz $v0, .L80147804
/* DDEF8 801477F8 00000000 */ nop
/* DDEFC 801477FC 92020003 */ lbu $v0, 3($s0)
/* DDF00 80147800 AFA200B4 */ sw $v0, 0xb4($sp)
.L80147804:
/* DDF04 80147804 92020000 */ lbu $v0, ($s0)
/* DDF08 80147808 30420002 */ andi $v0, $v0, 2
/* DDF0C 8014780C 1040001A */ beqz $v0, .L80147878
/* DDF10 80147810 00000000 */ nop
/* DDF14 80147814 92020004 */ lbu $v0, 4($s0)
/* DDF18 80147818 08051E1E */ j .L80147878
/* DDF1C 8014781C AFA200B8 */ sw $v0, 0xb8($sp)
.L80147820:
/* DDF20 80147820 0240202D */ daddu $a0, $s2, $zero
/* DDF24 80147824 27A50090 */ addiu $a1, $sp, 0x90
/* DDF28 80147828 27A60094 */ addiu $a2, $sp, 0x94
/* DDF2C 8014782C 27A70098 */ addiu $a3, $sp, 0x98
/* DDF30 80147830 8E220004 */ lw $v0, 4($s1)
/* DDF34 80147834 27A3009C */ addiu $v1, $sp, 0x9c
/* DDF38 80147838 AFA30010 */ sw $v1, 0x10($sp)
/* DDF3C 8014783C 27A300A0 */ addiu $v1, $sp, 0xa0
/* DDF40 80147840 AFA30014 */ sw $v1, 0x14($sp)
/* DDF44 80147844 27A300A4 */ addiu $v1, $sp, 0xa4
/* DDF48 80147848 AFA30018 */ sw $v1, 0x18($sp)
/* DDF4C 8014784C 27A300A8 */ addiu $v1, $sp, 0xa8
/* DDF50 80147850 AFA3001C */ sw $v1, 0x1c($sp)
/* DDF54 80147854 27A300AC */ addiu $v1, $sp, 0xac
/* DDF58 80147858 AFA30020 */ sw $v1, 0x20($sp)
/* DDF5C 8014785C 27A300B0 */ addiu $v1, $sp, 0xb0
/* DDF60 80147860 AFA30024 */ sw $v1, 0x24($sp)
/* DDF64 80147864 27A300B4 */ addiu $v1, $sp, 0xb4
/* DDF68 80147868 AFA30028 */ sw $v1, 0x28($sp)
/* DDF6C 8014786C 27A300B8 */ addiu $v1, $sp, 0xb8
/* DDF70 80147870 0040F809 */ jalr $v0
/* DDF74 80147874 AFA3002C */ sw $v1, 0x2c($sp)
.L80147878:
/* DDF78 80147878 8E220004 */ lw $v0, 4($s1)
/* DDF7C 8014787C 10400006 */ beqz $v0, .L80147898
/* DDF80 80147880 00000000 */ nop
/* DDF84 80147884 9223001C */ lbu $v1, 0x1c($s1)
/* DDF88 80147888 2C6200FF */ sltiu $v0, $v1, 0xff
/* DDF8C 8014788C 10400002 */ beqz $v0, .L80147898
/* DDF90 80147890 24620001 */ addiu $v0, $v1, 1
/* DDF94 80147894 A222001C */ sb $v0, 0x1c($s1)
.L80147898:
/* DDF98 80147898 C7A000A0 */ lwc1 $f0, 0xa0($sp)
/* DDF9C 8014789C 46140032 */ c.eq.s $f0, $f20
/* DDFA0 801478A0 00000000 */ nop
/* DDFA4 801478A4 45030077 */ bc1tl .L80147A84
/* DDFA8 801478A8 26D60001 */ addiu $s6, $s6, 1
/* DDFAC 801478AC C7A000A4 */ lwc1 $f0, 0xa4($sp)
/* DDFB0 801478B0 46140032 */ c.eq.s $f0, $f20
/* DDFB4 801478B4 00000000 */ nop
/* DDFB8 801478B8 45030072 */ bc1tl .L80147A84
/* DDFBC 801478BC 26D60001 */ addiu $s6, $s6, 1
/* DDFC0 801478C0 92220000 */ lbu $v0, ($s1)
/* DDFC4 801478C4 30420004 */ andi $v0, $v0, 4
/* DDFC8 801478C8 5440006E */ bnel $v0, $zero, .L80147A84
/* DDFCC 801478CC 26D60001 */ addiu $s6, $s6, 1
/* DDFD0 801478D0 8FA300B8 */ lw $v1, 0xb8($sp)
/* DDFD4 801478D4 8FAB0104 */ lw $t3, 0x104($sp)
/* DDFD8 801478D8 006B0018 */ mult $v1, $t3
/* DDFDC 801478DC 3C028080 */ lui $v0, 0x8080
/* DDFE0 801478E0 34428081 */ ori $v0, $v0, 0x8081
/* DDFE4 801478E4 00001812 */ mflo $v1
/* DDFE8 801478E8 8FA400B4 */ lw $a0, 0xb4($sp)
/* DDFEC 801478EC 8FAB0108 */ lw $t3, 0x108($sp)
/* DDFF0 801478F0 00620018 */ mult $v1, $v0
/* DDFF4 801478F4 008B2021 */ addu $a0, $a0, $t3
/* DDFF8 801478F8 AFA400B4 */ sw $a0, 0xb4($sp)
/* DDFFC 801478FC 28840100 */ slti $a0, $a0, 0x100
/* DE000 80147900 00004010 */ mfhi $t0
/* DE004 80147904 01031021 */ addu $v0, $t0, $v1
/* DE008 80147908 000211C3 */ sra $v0, $v0, 7
/* DE00C 8014790C 00031FC3 */ sra $v1, $v1, 0x1f
/* DE010 80147910 00431023 */ subu $v0, $v0, $v1
/* DE014 80147914 AFA200B8 */ sw $v0, 0xb8($sp)
/* DE018 80147918 00121080 */ sll $v0, $s2, 2
/* DE01C 8014791C 8E290014 */ lw $t1, 0x14($s1)
/* DE020 80147920 8E2A0018 */ lw $t2, 0x18($s1)
/* DE024 80147924 3C058015 */ lui $a1, %hi(D_8014F150)
/* DE028 80147928 00A22821 */ addu $a1, $a1, $v0
/* DE02C 8014792C 8CA5F150 */ lw $a1, %lo(D_8014F150)($a1)
/* DE030 80147930 14800003 */ bnez $a0, .L80147940
/* DE034 80147934 27B00050 */ addiu $s0, $sp, 0x50
/* DE038 80147938 240200FF */ addiu $v0, $zero, 0xff
/* DE03C 8014793C AFA200B4 */ sw $v0, 0xb4($sp)
.L80147940:
/* DE040 80147940 8FA20090 */ lw $v0, 0x90($sp)
/* DE044 80147944 8FAB00F8 */ lw $t3, 0xf8($sp)
/* DE048 80147948 004B1025 */ or $v0, $v0, $t3
/* DE04C 8014794C AFA20090 */ sw $v0, 0x90($sp)
/* DE050 80147950 31620001 */ andi $v0, $t3, 1
/* DE054 80147954 1440000A */ bnez $v0, .L80147980
/* DE058 80147958 2402FFFF */ addiu $v0, $zero, -1
/* DE05C 8014795C 8FA20094 */ lw $v0, 0x94($sp)
/* DE060 80147960 8FAB00FC */ lw $t3, 0xfc($sp)
/* DE064 80147964 8FA30098 */ lw $v1, 0x98($sp)
/* DE068 80147968 004B1021 */ addu $v0, $v0, $t3
/* DE06C 8014796C 8FAB0100 */ lw $t3, 0x100($sp)
/* DE070 80147970 AFA20094 */ sw $v0, 0x94($sp)
/* DE074 80147974 006B1821 */ addu $v1, $v1, $t3
/* DE078 80147978 AFA30098 */ sw $v1, 0x98($sp)
/* DE07C 8014797C 2402FFFF */ addiu $v0, $zero, -1
.L80147980:
/* DE080 80147980 12E20002 */ beq $s7, $v0, .L8014798C
/* DE084 80147984 24080140 */ addiu $t0, $zero, 0x140
/* DE088 80147988 87C80010 */ lh $t0, 0x10($fp)
.L8014798C:
/* DE08C 8014798C 2402FFFF */ addiu $v0, $zero, -1
/* DE090 80147990 12E20002 */ beq $s7, $v0, .L8014799C
/* DE094 80147994 240300F0 */ addiu $v1, $zero, 0xf0
/* DE098 80147998 87C30012 */ lh $v1, 0x12($fp)
.L8014799C:
/* DE09C 8014799C 92220000 */ lbu $v0, ($s1)
/* DE0A0 801479A0 8FA40090 */ lw $a0, 0x90($sp)
/* DE0A4 801479A4 30420040 */ andi $v0, $v0, 0x40
/* DE0A8 801479A8 54400001 */ bnel $v0, $zero, .L801479B0
/* DE0AC 801479AC 34840002 */ ori $a0, $a0, 2
.L801479B0:
/* DE0B0 801479B0 8FA60094 */ lw $a2, 0x94($sp)
/* DE0B4 801479B4 8FA70098 */ lw $a3, 0x98($sp)
/* DE0B8 801479B8 8FA2009C */ lw $v0, 0x9c($sp)
/* DE0BC 801479BC 8FAB010C */ lw $t3, 0x10c($sp)
/* DE0C0 801479C0 AFB40014 */ sw $s4, 0x14($sp)
/* DE0C4 801479C4 AFB50018 */ sw $s5, 0x18($sp)
/* DE0C8 801479C8 AFA20010 */ sw $v0, 0x10($sp)
/* DE0CC 801479CC 93A200BB */ lbu $v0, 0xbb($sp)
/* DE0D0 801479D0 AFA2001C */ sw $v0, 0x1c($sp)
/* DE0D4 801479D4 93A200B7 */ lbu $v0, 0xb7($sp)
/* DE0D8 801479D8 AFA20020 */ sw $v0, 0x20($sp)
/* DE0DC 801479DC C7A000A0 */ lwc1 $f0, 0xa0($sp)
/* DE0E0 801479E0 E7A00024 */ swc1 $f0, 0x24($sp)
/* DE0E4 801479E4 C7A000A4 */ lwc1 $f0, 0xa4($sp)
/* DE0E8 801479E8 E7A00028 */ swc1 $f0, 0x28($sp)
/* DE0EC 801479EC C7A000A8 */ lwc1 $f0, 0xa8($sp)
/* DE0F0 801479F0 E7A0002C */ swc1 $f0, 0x2c($sp)
/* DE0F4 801479F4 C7A000AC */ lwc1 $f0, 0xac($sp)
/* DE0F8 801479F8 E7A00030 */ swc1 $f0, 0x30($sp)
/* DE0FC 801479FC C7A000B0 */ lwc1 $f0, 0xb0($sp)
/* DE100 80147A00 AFA90038 */ sw $t1, 0x38($sp)
/* DE104 80147A04 AFAA003C */ sw $t2, 0x3c($sp)
/* DE108 80147A08 AFAB0040 */ sw $t3, 0x40($sp)
/* DE10C 80147A0C AFA80044 */ sw $t0, 0x44($sp)
/* DE110 80147A10 AFA30048 */ sw $v1, 0x48($sp)
/* DE114 80147A14 AFB0004C */ sw $s0, 0x4c($sp)
/* DE118 80147A18 0C03D4B8 */ jal draw_box
/* DE11C 80147A1C E7A00034 */ swc1 $f0, 0x34($sp)
/* DE120 80147A20 54400018 */ bnel $v0, $zero, .L80147A84
/* DE124 80147A24 26D60001 */ addiu $s6, $s6, 1
/* DE128 80147A28 8FA20090 */ lw $v0, 0x90($sp)
/* DE12C 80147A2C 14400004 */ bnez $v0, .L80147A40
/* DE130 80147A30 00000000 */ nop
/* DE134 80147A34 8FAB010C */ lw $t3, 0x10c($sp)
/* DE138 80147A38 51600001 */ beql $t3, $zero, .L80147A40
/* DE13C 80147A3C 0000802D */ daddu $s0, $zero, $zero
.L80147A40:
/* DE140 80147A40 92220000 */ lbu $v0, ($s1)
/* DE144 80147A44 30420010 */ andi $v0, $v0, 0x10
/* DE148 80147A48 5040000E */ beql $v0, $zero, .L80147A84
/* DE14C 80147A4C 26D60001 */ addiu $s6, $s6, 1
/* DE150 80147A50 8FA20098 */ lw $v0, 0x98($sp)
/* DE154 80147A54 8FA400F0 */ lw $a0, 0xf0($sp)
/* DE158 80147A58 8FA60090 */ lw $a2, 0x90($sp)
/* DE15C 80147A5C 8FA70094 */ lw $a3, 0x94($sp)
/* DE160 80147A60 AFA20010 */ sw $v0, 0x10($sp)
/* DE164 80147A64 8FA200B8 */ lw $v0, 0xb8($sp)
/* DE168 80147A68 AFA20014 */ sw $v0, 0x14($sp)
/* DE16C 80147A6C 8FA200B4 */ lw $v0, 0xb4($sp)
/* DE170 80147A70 0240282D */ daddu $a1, $s2, $zero
/* DE174 80147A74 AFB0001C */ sw $s0, 0x1c($sp)
/* DE178 80147A78 0C051DA6 */ jal render_windows
/* DE17C 80147A7C AFA20018 */ sw $v0, 0x18($sp)
/* DE180 80147A80 26D60001 */ addiu $s6, $s6, 1
.L80147A84:
/* DE184 80147A84 2AC20040 */ slti $v0, $s6, 0x40
/* DE188 80147A88 1440FF1A */ bnez $v0, .L801476F4
/* DE18C 80147A8C 26730004 */ addiu $s3, $s3, 4
/* DE190 80147A90 8FBF00E4 */ lw $ra, 0xe4($sp)
/* DE194 80147A94 8FBE00E0 */ lw $fp, 0xe0($sp)
/* DE198 80147A98 8FB700DC */ lw $s7, 0xdc($sp)
/* DE19C 80147A9C 8FB600D8 */ lw $s6, 0xd8($sp)
/* DE1A0 80147AA0 8FB500D4 */ lw $s5, 0xd4($sp)
/* DE1A4 80147AA4 8FB400D0 */ lw $s4, 0xd0($sp)
/* DE1A8 80147AA8 8FB300CC */ lw $s3, 0xcc($sp)
/* DE1AC 80147AAC 8FB200C8 */ lw $s2, 0xc8($sp)
/* DE1B0 80147AB0 8FB100C4 */ lw $s1, 0xc4($sp)
/* DE1B4 80147AB4 8FB000C0 */ lw $s0, 0xc0($sp)
/* DE1B8 80147AB8 D7B400E8 */ ldc1 $f20, 0xe8($sp)
/* DE1BC 80147ABC 03E00008 */ jr $ra
/* DE1C0 80147AC0 27BD00F0 */ addiu $sp, $sp, 0xf0

View File

@ -1,47 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel set_window_properties
/* DE3C8 80147CC8 27BDFFE0 */ addiu $sp, $sp, -0x20
/* DE3CC 80147CCC 0080582D */ daddu $t3, $a0, $zero
/* DE3D0 80147CD0 3C0A8016 */ lui $t2, %hi(gWindows)
/* DE3D4 80147CD4 254A9D50 */ addiu $t2, $t2, %lo(gWindows)
/* DE3D8 80147CD8 8FA90030 */ lw $t1, 0x30($sp)
/* DE3DC 80147CDC 000B1140 */ sll $v0, $t3, 5
/* DE3E0 80147CE0 AFB00010 */ sw $s0, 0x10($sp)
/* DE3E4 80147CE4 004A8021 */ addu $s0, $v0, $t2
/* DE3E8 80147CE8 AFB10014 */ sw $s1, 0x14($sp)
/* DE3EC 80147CEC 8FB10034 */ lw $s1, 0x34($sp)
/* DE3F0 80147CF0 8FA40038 */ lw $a0, 0x38($sp)
/* DE3F4 80147CF4 8FA8003C */ lw $t0, 0x3c($sp)
/* DE3F8 80147CF8 8FA30040 */ lw $v1, 0x40($sp)
/* DE3FC 80147CFC 24020005 */ addiu $v0, $zero, 5
/* DE400 80147D00 AFBF0018 */ sw $ra, 0x18($sp)
/* DE404 80147D04 A2020000 */ sb $v0, ($s0)
/* DE408 80147D08 A605000C */ sh $a1, 0xc($s0)
/* DE40C 80147D0C A606000E */ sh $a2, 0xe($s0)
/* DE410 80147D10 A6070010 */ sh $a3, 0x10($s0)
/* DE414 80147D14 AE000004 */ sw $zero, 4($s0)
/* DE418 80147D18 0220282D */ daddu $a1, $s1, $zero
/* DE41C 80147D1C A2030003 */ sb $v1, 3($s0)
/* DE420 80147D20 00031E00 */ sll $v1, $v1, 0x18
/* DE424 80147D24 00031E03 */ sra $v1, $v1, 0x18
/* DE428 80147D28 A6090012 */ sh $t1, 0x12($s0)
/* DE42C 80147D2C AE040014 */ sw $a0, 0x14($s0)
/* DE430 80147D30 04600006 */ bltz $v1, .L80147D4C
/* DE434 80147D34 AE080018 */ sw $t0, 0x18($s0)
/* DE438 80147D38 00031940 */ sll $v1, $v1, 5
/* DE43C 80147D3C 006A1821 */ addu $v1, $v1, $t2
/* DE440 80147D40 90620000 */ lbu $v0, ($v1)
/* DE444 80147D44 34420010 */ ori $v0, $v0, 0x10
/* DE448 80147D48 A0620000 */ sb $v0, ($v1)
.L80147D4C:
/* DE44C 80147D4C 0160202D */ daddu $a0, $t3, $zero
/* DE450 80147D50 0C051F5C */ jal update_window_hierarchy
/* DE454 80147D54 30A500FF */ andi $a1, $a1, 0xff
/* DE458 80147D58 A2110002 */ sb $s1, 2($s0)
/* DE45C 80147D5C 8FBF0018 */ lw $ra, 0x18($sp)
/* DE460 80147D60 8FB10014 */ lw $s1, 0x14($sp)
/* DE464 80147D64 8FB00010 */ lw $s0, 0x10($sp)
/* DE468 80147D68 03E00008 */ jr $ra
/* DE46C 80147D6C 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,34 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel set_windows_visible
/* DE5C4 80147EC4 3C068016 */ lui $a2, %hi(gWindows)
/* DE5C8 80147EC8 24C69D50 */ addiu $a2, $a2, %lo(gWindows)
/* DE5CC 80147ECC 0000282D */ daddu $a1, $zero, $zero
/* DE5D0 80147ED0 3C028015 */ lui $v0, %hi(D_8014F2C0)
/* DE5D4 80147ED4 2442F2C0 */ addiu $v0, $v0, %lo(D_8014F2C0)
/* DE5D8 80147ED8 00042040 */ sll $a0, $a0, 1
/* DE5DC 80147EDC 00822021 */ addu $a0, $a0, $v0
/* DE5E0 80147EE0 90870000 */ lbu $a3, ($a0)
/* DE5E4 80147EE4 90840001 */ lbu $a0, 1($a0)
.L80147EE8:
/* DE5E8 80147EE8 90C30000 */ lbu $v1, ($a2)
/* DE5EC 80147EEC 30620001 */ andi $v0, $v1, 1
/* DE5F0 80147EF0 5040000A */ beql $v0, $zero, .L80147F1C
/* DE5F4 80147EF4 24A50001 */ addiu $a1, $a1, 1
/* DE5F8 80147EF8 00A7102A */ slt $v0, $a1, $a3
/* DE5FC 80147EFC 14400005 */ bnez $v0, .L80147F14
/* DE600 80147F00 34620020 */ ori $v0, $v1, 0x20
/* DE604 80147F04 0085102A */ slt $v0, $a0, $a1
/* DE608 80147F08 14400002 */ bnez $v0, .L80147F14
/* DE60C 80147F0C 34620020 */ ori $v0, $v1, 0x20
/* DE610 80147F10 306200DF */ andi $v0, $v1, 0xdf
.L80147F14:
/* DE614 80147F14 A0C20000 */ sb $v0, ($a2)
/* DE618 80147F18 24A50001 */ addiu $a1, $a1, 1
.L80147F1C:
/* DE61C 80147F1C 28A20040 */ slti $v0, $a1, 0x40
/* DE620 80147F20 1440FFF1 */ bnez $v0, .L80147EE8
/* DE624 80147F24 24C60020 */ addiu $a2, $a2, 0x20
/* DE628 80147F28 03E00008 */ jr $ra
/* DE62C 80147F2C 00000000 */ nop

View File

@ -1,75 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel setup_pause_menu_tab
/* DE630 80147F30 27BDFFB8 */ addiu $sp, $sp, -0x48
/* DE634 80147F34 AFB1002C */ sw $s1, 0x2c($sp)
/* DE638 80147F38 0080882D */ daddu $s1, $a0, $zero
/* DE63C 80147F3C AFB30034 */ sw $s3, 0x34($sp)
/* DE640 80147F40 00A0982D */ daddu $s3, $a1, $zero
/* DE644 80147F44 AFB20030 */ sw $s2, 0x30($sp)
/* DE648 80147F48 0000902D */ daddu $s2, $zero, $zero
/* DE64C 80147F4C AFBF0044 */ sw $ra, 0x44($sp)
/* DE650 80147F50 AFB60040 */ sw $s6, 0x40($sp)
/* DE654 80147F54 AFB5003C */ sw $s5, 0x3c($sp)
/* DE658 80147F58 AFB40038 */ sw $s4, 0x38($sp)
/* DE65C 80147F5C 1A60002C */ blez $s3, .L80148010
/* DE660 80147F60 AFB00028 */ sw $s0, 0x28($sp)
/* DE664 80147F64 2416FFFF */ addiu $s6, $zero, -1
/* DE668 80147F68 3C158015 */ lui $s5, %hi(D_8014F150)
/* DE66C 80147F6C 26B5F150 */ addiu $s5, $s5, %lo(D_8014F150)
/* DE670 80147F70 3C148016 */ lui $s4, %hi(gWindows)
/* DE674 80147F74 26949D50 */ addiu $s4, $s4, %lo(gWindows)
/* DE678 80147F78 2490001C */ addiu $s0, $a0, 0x1c
.L80147F7C:
/* DE67C 80147F7C 8602FFEC */ lh $v0, -0x14($s0)
/* DE680 80147F80 82240000 */ lb $a0, ($s1)
/* DE684 80147F84 8605FFE6 */ lh $a1, -0x1a($s0)
/* DE688 80147F88 8606FFE8 */ lh $a2, -0x18($s0)
/* DE68C 80147F8C 8607FFEA */ lh $a3, -0x16($s0)
/* DE690 80147F90 AFA20010 */ sw $v0, 0x10($sp)
/* DE694 80147F94 9202FFEE */ lbu $v0, -0x12($s0)
/* DE698 80147F98 AFA20014 */ sw $v0, 0x14($sp)
/* DE69C 80147F9C 8E02FFF0 */ lw $v0, -0x10($s0)
/* DE6A0 80147FA0 AFA20018 */ sw $v0, 0x18($sp)
/* DE6A4 80147FA4 8E02FFF4 */ lw $v0, -0xc($s0)
/* DE6A8 80147FA8 AFA2001C */ sw $v0, 0x1c($sp)
/* DE6AC 80147FAC 8202FFF8 */ lb $v0, -8($s0)
/* DE6B0 80147FB0 0C051F32 */ jal set_window_properties
/* DE6B4 80147FB4 AFA20020 */ sw $v0, 0x20($sp)
/* DE6B8 80147FB8 8E030004 */ lw $v1, 4($s0)
/* DE6BC 80147FBC 10760005 */ beq $v1, $s6, .L80147FD4
/* DE6C0 80147FC0 00000000 */ nop
/* DE6C4 80147FC4 82220000 */ lb $v0, ($s1)
/* DE6C8 80147FC8 00021080 */ sll $v0, $v0, 2
/* DE6CC 80147FCC 00551021 */ addu $v0, $v0, $s5
/* DE6D0 80147FD0 AC430000 */ sw $v1, ($v0)
.L80147FD4:
/* DE6D4 80147FD4 82240000 */ lb $a0, ($s1)
/* DE6D8 80147FD8 8E05FFFC */ lw $a1, -4($s0)
/* DE6DC 80147FDC 0C051F9F */ jal set_window_update
/* DE6E0 80147FE0 26520001 */ addiu $s2, $s2, 1
/* DE6E4 80147FE4 82230000 */ lb $v1, ($s1)
/* DE6E8 80147FE8 92040000 */ lbu $a0, ($s0)
/* DE6EC 80147FEC 26100024 */ addiu $s0, $s0, 0x24
/* DE6F0 80147FF0 00031940 */ sll $v1, $v1, 5
/* DE6F4 80147FF4 00741821 */ addu $v1, $v1, $s4
/* DE6F8 80147FF8 90620000 */ lbu $v0, ($v1)
/* DE6FC 80147FFC 00441025 */ or $v0, $v0, $a0
/* DE700 80148000 A0620000 */ sb $v0, ($v1)
/* DE704 80148004 0253102A */ slt $v0, $s2, $s3
/* DE708 80148008 1440FFDC */ bnez $v0, .L80147F7C
/* DE70C 8014800C 26310024 */ addiu $s1, $s1, 0x24
.L80148010:
/* DE710 80148010 8FBF0044 */ lw $ra, 0x44($sp)
/* DE714 80148014 8FB60040 */ lw $s6, 0x40($sp)
/* DE718 80148018 8FB5003C */ lw $s5, 0x3c($sp)
/* DE71C 8014801C 8FB40038 */ lw $s4, 0x38($sp)
/* DE720 80148020 8FB30034 */ lw $s3, 0x34($sp)
/* DE724 80148024 8FB20030 */ lw $s2, 0x30($sp)
/* DE728 80148028 8FB1002C */ lw $s1, 0x2c($sp)
/* DE72C 8014802C 8FB00028 */ lw $s0, 0x28($sp)
/* DE730 80148030 03E00008 */ jr $ra
/* DE734 80148034 27BD0048 */ addiu $sp, $sp, 0x48
/* DE738 80148038 00000000 */ nop
/* DE73C 8014803C 00000000 */ nop

View File

@ -1,65 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel update_window_hierarchy
/* DE470 80147D70 30A200FF */ andi $v0, $a1, 0xff
/* DE474 80147D74 2C420041 */ sltiu $v0, $v0, 0x41
/* DE478 80147D78 14400002 */ bnez $v0, .L80147D84
/* DE47C 80147D7C 27BDFEF8 */ addiu $sp, $sp, -0x108
/* DE480 80147D80 24050040 */ addiu $a1, $zero, 0x40
.L80147D84:
/* DE484 80147D84 03A0382D */ daddu $a3, $sp, $zero
/* DE488 80147D88 2402FFFF */ addiu $v0, $zero, -1
/* DE48C 80147D8C 24060040 */ addiu $a2, $zero, 0x40
.L80147D90:
/* DE490 80147D90 ACE20000 */ sw $v0, ($a3)
/* DE494 80147D94 24C6FFFF */ addiu $a2, $a2, -1
/* DE498 80147D98 04C1FFFD */ bgez $a2, .L80147D90
/* DE49C 80147D9C 24E70004 */ addiu $a3, $a3, 4
/* DE4A0 80147DA0 30A200FF */ andi $v0, $a1, 0xff
/* DE4A4 80147DA4 00021880 */ sll $v1, $v0, 2
/* DE4A8 80147DA8 03A31821 */ addu $v1, $sp, $v1
/* DE4AC 80147DAC AC640000 */ sw $a0, ($v1)
/* DE4B0 80147DB0 0000302D */ daddu $a2, $zero, $zero
/* DE4B4 80147DB4 3C058016 */ lui $a1, %hi(gWindows)
/* DE4B8 80147DB8 24A59D50 */ addiu $a1, $a1, %lo(gWindows)
/* DE4BC 80147DBC 0040382D */ daddu $a3, $v0, $zero
.L80147DC0:
/* DE4C0 80147DC0 90A20000 */ lbu $v0, ($a1)
/* DE4C4 80147DC4 5040000B */ beql $v0, $zero, .L80147DF4
/* DE4C8 80147DC8 24C60001 */ addiu $a2, $a2, 1
/* DE4CC 80147DCC 50C40009 */ beql $a2, $a0, .L80147DF4
/* DE4D0 80147DD0 24C60001 */ addiu $a2, $a2, 1
/* DE4D4 80147DD4 90A30001 */ lbu $v1, 1($a1)
/* DE4D8 80147DD8 0067102A */ slt $v0, $v1, $a3
/* DE4DC 80147DDC 50400001 */ beql $v0, $zero, .L80147DE4
/* DE4E0 80147DE0 24630001 */ addiu $v1, $v1, 1
.L80147DE4:
/* DE4E4 80147DE4 00031080 */ sll $v0, $v1, 2
/* DE4E8 80147DE8 03A21021 */ addu $v0, $sp, $v0
/* DE4EC 80147DEC AC460000 */ sw $a2, ($v0)
/* DE4F0 80147DF0 24C60001 */ addiu $a2, $a2, 1
.L80147DF4:
/* DE4F4 80147DF4 28C20040 */ slti $v0, $a2, 0x40
/* DE4F8 80147DF8 1440FFF1 */ bnez $v0, .L80147DC0
/* DE4FC 80147DFC 24A50020 */ addiu $a1, $a1, 0x20
/* DE500 80147E00 0000182D */ daddu $v1, $zero, $zero
/* DE504 80147E04 0060302D */ daddu $a2, $v1, $zero
/* DE508 80147E08 03A0382D */ daddu $a3, $sp, $zero
/* DE50C 80147E0C 2405FFFF */ addiu $a1, $zero, -1
/* DE510 80147E10 3C048016 */ lui $a0, %hi(gWindows)
/* DE514 80147E14 24849D50 */ addiu $a0, $a0, %lo(gWindows)
.L80147E18:
/* DE518 80147E18 8CE20000 */ lw $v0, ($a3)
/* DE51C 80147E1C 10450005 */ beq $v0, $a1, .L80147E34
/* DE520 80147E20 24C60001 */ addiu $a2, $a2, 1
/* DE524 80147E24 00021140 */ sll $v0, $v0, 5
/* DE528 80147E28 00441021 */ addu $v0, $v0, $a0
/* DE52C 80147E2C A0430001 */ sb $v1, 1($v0)
/* DE530 80147E30 24630001 */ addiu $v1, $v1, 1
.L80147E34:
/* DE534 80147E34 28C20041 */ slti $v0, $a2, 0x41
/* DE538 80147E38 1440FFF7 */ bnez $v0, .L80147E18
/* DE53C 80147E3C 24E70004 */ addiu $a3, $a3, 4
/* DE540 80147E40 03E00008 */ jr $ra
/* DE544 80147E44 27BD0108 */ addiu $sp, $sp, 0x108

View File

@ -1,30 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel update_windows
/* DDB14 80147414 0000302D */ daddu $a2, $zero, $zero
/* DDB18 80147418 3C058016 */ lui $a1, %hi(gWindows)
/* DDB1C 8014741C 24A59D50 */ addiu $a1, $a1, %lo(gWindows)
/* DDB20 80147420 24A4001C */ addiu $a0, $a1, 0x1c
.L80147424:
/* DDB24 80147424 90A30000 */ lbu $v1, ($a1)
/* DDB28 80147428 5060000C */ beql $v1, $zero, .L8014745C
/* DDB2C 8014742C 24C60001 */ addiu $a2, $a2, 1
/* DDB30 80147430 30620020 */ andi $v0, $v1, 0x20
/* DDB34 80147434 14400009 */ bnez $v0, .L8014745C
/* DDB38 80147438 24C60001 */ addiu $a2, $a2, 1
/* DDB3C 8014743C 30620002 */ andi $v0, $v1, 2
/* DDB40 80147440 10400006 */ beqz $v0, .L8014745C
/* DDB44 80147444 00000000 */ nop
/* DDB48 80147448 306200FD */ andi $v0, $v1, 0xfd
/* DDB4C 8014744C A0A20000 */ sb $v0, ($a1)
/* DDB50 80147450 8C82FFEC */ lw $v0, -0x14($a0)
/* DDB54 80147454 A0800000 */ sb $zero, ($a0)
/* DDB58 80147458 AC82FFE8 */ sw $v0, -0x18($a0)
.L8014745C:
/* DDB5C 8014745C 24840020 */ addiu $a0, $a0, 0x20
/* DDB60 80147460 28C20040 */ slti $v0, $a2, 0x40
/* DDB64 80147464 1440FFEF */ bnez $v0, .L80147424
/* DDB68 80147468 24A50020 */ addiu $a1, $a1, 0x20
/* DDB6C 8014746C 03E00008 */ jr $ra
/* DDB70 80147470 00000000 */ nop

View File

@ -208,8 +208,8 @@ glabel MakeShop
/* 7E29F0 80281B70 AFA0001C */ sw $zero, 0x1c($sp)
/* 7E29F4 80281B74 0C051F32 */ jal set_window_properties
/* 7E29F8 80281B78 AFB00020 */ sw $s0, 0x20($sp)
/* 7E29FC 80281B7C 3C048015 */ lui $a0, %hi(D_8014F150)
/* 7E2A00 80281B80 2484F150 */ addiu $a0, $a0, %lo(D_8014F150)
/* 7E29FC 80281B7C 3C048015 */ lui $a0, %hi(gWindowStyles)
/* 7E2A00 80281B80 2484F150 */ addiu $a0, $a0, %lo(gWindowStyles)
/* 7E2A04 80281B84 24030009 */ addiu $v1, $zero, 9
/* 7E2A08 80281B88 AC830028 */ sw $v1, 0x28($a0)
/* 7E2A0C 80281B8C 24030003 */ addiu $v1, $zero, 3

View File

@ -668,7 +668,25 @@ segments:
- [0x9DA60, rgba32, ui/stat_flower, 16, 16]
- [0x9DE60, data]
- [0xA2D40, .data, 8a860_len_3f30]
- [0xA2D90, data]
- start: 0xA2D90
type: .data
name: 8e790_len_2850
subsegments:
- [0xA2D90, .data, 8e790_len_2850]
- [0xA2E90, ia8, ui/corners9, 16, 64]
- [0xA3290, ia8, ui/corners8, 24, 96]
- [0xA3B90, ia8, ui/corners6, 16, 40]
- [0xA3E10, ia8, ui/corners7, 16, 32]
- [0xA4010, ia8, ui/corners3, 16, 96]
- [0xA4610, ia8, ui/corners5, 16, 32]
- [0xA4810, ia8, ui/corners4, 8, 32]
- [0xA4910, i4, ui/background1, 16, 16]
- [0xA4990, ia8, ui/corners1, 16, 64]
- [0xA4D90, i4, ui/corners2, 16, 64]
- [0xA4F90, i4, ui/background2, 16, 1]
- [0xA4F98]
- [0xA5078, vtx, vtx/drawbox1]
- [0xA50B8]
- [0xA5100]
- type: code
start: 0xA5DD0
@ -688,7 +706,7 @@ segments:
- [0xDBD70, c, trigger]
- [0xDC470, c, dc470_len_14c0]
- [0xDD930, c, dd930_len_1c0]
- [0xDDAF0, c, ddaf0_len_c50]
- [0xDDAF0, c, windows]
- [0xDE740, c, de740_len_23f0]
- [0xDF950, c, sfx]
- [0xE0B30, c, e0b30_len_b80]
@ -712,7 +730,7 @@ segments:
- [0xE56C0, .data, hud_element]
- [0xE5820, .data, dc470_len_14c0]
- [0xE5840, .data, dd930_len_1c0]
- [0xE5850, .data, ddaf0_len_c50]
- [0xE5850, .data, windows]
- [0xE59D0, .data, sfx]
- [0xE5DF0, .data, e0b30_len_b80]
- [0xE5E40]

View File

@ -3149,15 +3149,13 @@ D_8014F12F = 0x8014F12F; // type:data rom:0xE582F
D_8014F130 = 0x8014F130; // type:data rom:0xE5830
D_8014F134 = 0x8014F134; // type:data rom:0xE5834
D_8014F140 = 0x8014F140; // type:data rom:0xE5840
D_8014F150 = 0x8014F150; // type:data rom:0xE5850
D_8014F250 = 0x8014F250; // type:data rom:0xE5950
D_8014F298 = 0x8014F298; // type:data rom:0xE5998
D_8014F2A0 = 0x8014F2A0; // type:data rom:0xE59A0
D_8014F2A4 = 0x8014F2A4; // type:data rom:0xE59A4
D_8014F2A8 = 0x8014F2A8; // type:data rom:0xE59A8
D_8014F2B4 = 0x8014F2B4; // type:data rom:0xE59B4
D_8014F2BD = 0x8014F2BD; // type:data rom:0xE59BD
D_8014F2C0 = 0x8014F2C0; // type:data rom:0xE59C0
gWindowStyles = 0x8014F150; // type:data rom:0xE5850
gSimpleWindowUpdates = 0x8014F250; // type:data rom:0xE5950
gWindowAppearScales = 0x8014F298; // type:data rom:0xE5998
gWindowAppearFlags = 0x8014F2A0; // type:data rom:0xE59A0
gWindowDisappearScales = 0x8014F2A8; // type:data rom:0xE59A8
gWindowDisappearFlags = 0x8014F2B4; // type:data rom:0xE59B4
gWindowGroups = 0x8014F2C0; // type:data rom:0xE59C0
D_8014F2D0 = 0x8014F2D0; // type:data rom:0xE59D0
D_8014F48C = 0x8014F48C; // type:data rom:0xE5B8C
D_8014F494 = 0x8014F494; // type:data rom:0xE5B94
@ -19745,7 +19743,7 @@ D_8010BB00 = 0x8010BB00; // type:data
D_8010BB90 = 0x8010BB90; // type:data
D_8010BBB0 = 0x8010BBB0; // type:data
D_8010BBB8 = 0x8010BBB8; // type:data
D_8010BBC8 = 0x8010BBC8; // type:data
vtx_drawbox1 = 0x8010BBC8; // type:data
D_8010BC08 = 0x8010BC08; // type:data
D_8010C920 = 0x8010C920; // type:data
D_8010C924 = 0x8010C924; // type:data