From 7ab4aa07b3cbfeba3dd16bece91c94aba411b84f Mon Sep 17 00:00:00 2001 From: Eebit Date: Wed, 4 Feb 2026 18:01:28 -0500 Subject: [PATCH 1/5] (link_dialog) Raw decomp and round off menu vtable --- config/YFEE01/arm9/delinks.txt | 3 + include/menu.hpp | 92 +-- include/proc.h | 1 + src/link_dialog.cpp | 1299 ++++++++++++++++++++++++++++++++ 4 files changed, 1353 insertions(+), 42 deletions(-) create mode 100644 src/link_dialog.cpp diff --git a/config/YFEE01/arm9/delinks.txt b/config/YFEE01/arm9/delinks.txt index 5281b10..9f58c96 100644 --- a/config/YFEE01/arm9/delinks.txt +++ b/config/YFEE01/arm9/delinks.txt @@ -18,6 +18,9 @@ src/hardware.cpp: src/heap.cpp: .text start:0x02011458 end:0x020115d4 +src/link_dialog.cpp: + .text start:0x020147c0 end:0x02015aa0 + src/sound_manager.cpp: .text start:0x02015bd0 end:0x02018c58 .data start:0x020cbfd4 end:0x020ce6ec diff --git a/include/menu.hpp b/include/menu.hpp index 607b46a..ffa2798 100644 --- a/include/menu.hpp +++ b/include/menu.hpp @@ -73,30 +73,30 @@ class Menu Menu(); - /* 000 */ virtual void vfunc_00(void); // ? - /* 004 */ virtual void vfunc_04(/* ? */); // func_02015368 + /* 000 */ virtual void vfunc_00(void); // func_0202806c + /* 004 */ virtual void vfunc_04(void); // func_02015368 /* 008 */ virtual void vfunc_08(void); /* 00C */ virtual void vfunc_0c(void); /* 010 */ virtual void vfunc_10(void); /* 014 */ virtual void vfunc_14(void); /* 018 */ virtual void vfunc_18(void); /* 01C */ virtual void vfunc_1c(void); - /* 020 */ virtual void vfunc_20(/* ? */); // func_02015360 - /* 024 */ virtual s32 vfunc_24(MenuItemState *, s32); // ? - /* 028 */ virtual s32 vfunc_28(void); // ? + /* 020 */ virtual s32 vfunc_20(s32); // func_02015360 + /* 024 */ virtual s32 vfunc_24(MenuItemState *, s32); // func_02015348 + /* 028 */ virtual s32 vfunc_28(s32); // func_02015340 /* 02C */ virtual s32 vfunc_2c(MenuItemState *, s32); // func_02015328 - /* 030 */ virtual void vfunc_30(/* ? */); // func_02015308 + /* 030 */ virtual s32 vfunc_30(s32); // func_02015308 /* 034 */ virtual s32 vfunc_34(MenuItemState *, s32); // func_02015310 - /* 038 */ virtual void vfunc_38(/* ? */); // func_020152e8 + /* 038 */ virtual s32 vfunc_38(s32); // func_020152e8 /* 03C */ virtual s32 vfunc_3c(MenuItemState *, s32); // func_020152f0 - /* 040 */ virtual void vfunc_40(/* ? */); // func_020152c8 + /* 040 */ virtual s32 vfunc_40(s32); // func_020152c8 /* 044 */ virtual s32 vfunc_44(MenuItemState *, s32); // func_020152d0 - /* 048 */ virtual void vfunc_48(/* ? */); // func_020152a8 + /* 048 */ virtual s32 vfunc_48(s32); // func_020152a8 /* 04C */ virtual s32 vfunc_4c(MenuItemState *, s32); // func_020152b0 - /* 050 */ virtual void vfunc_50(/* ? */); // func_02015288 + /* 050 */ virtual s32 vfunc_50(s32); // func_02015288 /* 054 */ virtual s32 vfunc_54(MenuItemState *, s32); // func_02015290 - /* 058 */ virtual s32 vfunc_58(s32); // ? - /* 05C */ virtual void vfunc_5c(/* ? */); // func_02015270 + /* 058 */ virtual s32 vfunc_58(s32); // func_02015268 + /* 05C */ virtual s32 vfunc_5c(MenuItemState *, s32); // func_02015270 /* 060 */ virtual s32 vfunc_60(void); // func_02015250 /* 064 */ virtual void vfunc_64(void); /* 068 */ virtual void vfunc_68(s32); @@ -113,9 +113,9 @@ class Menu /* 094 */ virtual s32 vfunc_94(s32, s32); // func_02015248 /* 098 */ virtual s32 vfunc_98(s32, s32); // func_02015240 /* 09C */ virtual BOOL vfunc_9c(void); // func_02015238 - /* 0A0 */ virtual BOOL vfunc_a0(void); // ? + /* 0A0 */ virtual BOOL vfunc_a0(void); // func_02015230 /* 0A4 */ virtual BOOL vfunc_a4(void); // func_02015228 - /* 0A8 */ virtual BOOL vfunc_a8(void); // ? + /* 0A8 */ virtual BOOL vfunc_a8(void); // func_02015220 /* 0AC */ virtual s32 vfunc_ac(void); // func_02015218 /* 0B0 */ virtual BOOL vfunc_b0(MenuItemState *, s32, s32); /* 0B4 */ virtual BOOL vfunc_b4(void); @@ -129,8 +129,8 @@ class Menu /* 0D4 */ virtual s32 vfunc_d4(s32); /* 0D8 */ virtual void vfunc_d8(void); /* 0DC */ virtual void vfunc_dc(void); - /* 0E0 */ virtual void vfunc_e0(/* ? */); // func_02015210 - /* 0E4 */ virtual void vfunc_e4(/* ? */); // func_0201520c + /* 0E0 */ virtual void vfunc_e0(void); // func_02015210 + /* 0E4 */ virtual void vfunc_e4(void); // func_0201520c /* 0E8 */ virtual void vfunc_e8(void); /* 0EC */ virtual void vfunc_ec(void); /* 0F0 */ virtual void vfunc_f0(s32, s32, s32, s32); @@ -177,48 +177,48 @@ class MenuResult class MenuItem : public MenuState, public MenuResult { public: - virtual char * vfunc_00(void); // ?; GetLabelText? + virtual char * vfunc_00(void); // func_02015114; GetLabelText? virtual char * vfunc_04(MenuItemState *); // func_0201511c; wraps vfunc_00 - virtual void vfunc_08(/* */); // func_020150f8 - virtual void vfunc_0c(/* */); // func_02015100; wraps vfunc_08 + virtual s32 vfunc_08(void); // func_020150f8 + virtual s32 vfunc_0c(MenuItemState *); // func_02015100; wraps vfunc_08 virtual s32 vfunc_10(MenuItemState *); // GetLabelColor? (1 = White, 2 = Grey, 3 = Cyan, 4 = Gold, 5 = Green) virtual s32 vfunc_14(void); // func_020150dc; IsEnabled? virtual s32 vfunc_18(s32); // func_020150e4; Wraps vfunc_14 virtual s32 vfunc_1c(void); // func_020150bc; OnConfirm? virtual s32 vfunc_20(MenuItemState *); // func_020150a8; OnConfirm? void * virtual s32 vfunc_24(Menu *, MenuItemState *); // func_020150c4; OnConfirm? Menu *, void * - virtual s32 vfunc_28(/* */); // func_02015074; OnBPress - virtual s32 vfunc_2c(/* */); // func_0201507c; OnBPress; wraps vfunc_28 + virtual s32 vfunc_28(void); // func_02015074; OnBPress + virtual s32 vfunc_2c(MenuItemState *); // func_0201507c; OnBPress; wraps vfunc_28 virtual s32 vfunc_30(Menu *, MenuItemState *); // func_02015090; OnBPress; wraps vfunc_2c - virtual void vfunc_34(/* */); // func_02015040; OnXPress - virtual void vfunc_38(/* */); // func_02015048; OnXPress + virtual s32 vfunc_34(void); // func_02015040; OnXPress + virtual s32 vfunc_38(MenuItemState *); // func_02015048; OnXPress virtual s32 vfunc_3c(Menu *, MenuItemState *); // func_0201505c; OnXPress - virtual void vfunc_40(/* */); // func_0201500c - virtual void vfunc_44(/* */); // func_02015014 + virtual s32 vfunc_40(void); // func_0201500c + virtual s32 vfunc_44(MenuItemState *); // func_02015014 virtual s32 vfunc_48(Menu *, MenuItemState *); // func_02015028 - virtual void vfunc_4c(/* */); // func_02014fd8; OnLPress - virtual void vfunc_50(/* */); // func_02014fe0; OnLPress + virtual s32 vfunc_4c(void); // func_02014fd8; OnLPress + virtual s32 vfunc_50(MenuItemState *); // func_02014fe0; OnLPress virtual s32 vfunc_54(Menu *, MenuItemState *); // func_02014ff4; OnLPress - virtual void vfunc_58(/* */); // func_02014fa4; OnRPress - virtual void vfunc_5c(/* */); // func_02014fac; OnRPress + virtual s32 vfunc_58(void); // func_02014fa4; OnRPress + virtual s32 vfunc_5c(MenuItemState *); // func_02014fac; OnRPress virtual s32 vfunc_60(Menu *, MenuItemState *); // func_02014fc0; OnRPress - virtual void vfunc_64(/* */); // func_02014f70; maybe onexit - virtual void vfunc_68(/* */); // func_02014f78 + virtual s32 vfunc_64(void); // func_02014f70; maybe onexit + virtual s32 vfunc_68(MenuItemState *); // func_02014f78 virtual s32 vfunc_6c(Menu *, MenuItemState *); // func_02014f8c virtual void vfunc_70(void); // func_02014f40; OnHover? or OnEnter? - virtual void vfunc_74(/* */); // func_02014f44; OnHover? void * - virtual s32 vfunc_78(Menu *, MenuItemState *); // func_02014f58; OnHover? Menu *, void * - virtual void vfunc_7c(/* */); // func_02014f10 - virtual void vfunc_80(/* */); // func_02014f14 - virtual s32 vfunc_84(Menu *, MenuItemState *); // func_02014f28 - virtual void vfunc_88(/* */); // func_02014ee0 - virtual void vfunc_8c(/* */); // func_02014ee4 + virtual void vfunc_74(MenuItemState *); // func_02014f44; OnHover? void * + virtual void vfunc_78(Menu *, MenuItemState *); // func_02014f58; OnHover? Menu *, void * + virtual void vfunc_7c(void); // func_02014f10 + virtual void vfunc_80(MenuItemState *); // func_02014f14 + virtual void vfunc_84(Menu *, MenuItemState *); // func_02014f28 + virtual void vfunc_88(void); // func_02014ee0 + virtual void vfunc_8c(MenuItemState *); // func_02014ee4 virtual void vfunc_90(Menu *, MenuItemState *); // func_02014ef8 - virtual void vfunc_94(/* */); // func_02014eb0 - virtual void vfunc_98(/* */); // func_02014eb4 + virtual void vfunc_94(void); // func_02014eb0 + virtual void vfunc_98(MenuItemState *); // func_02014eb4 virtual void vfunc_9c(Menu *, MenuItemState *); // func_02014ec8 - virtual void vfunc_a0(/* */); // func_02014e98 - virtual void vfunc_a4(/* */); // func_02014e9c + virtual void vfunc_a0(void); // func_02014e98 + virtual void vfunc_a4(MenuItemState *); // func_02014e9c virtual void vfunc_a8(Menu *, MenuItemState *); // virtual s32 vfunc_ac(MenuItemState *, s32, s32, s32, s32); virtual void vfunc_b0(Menu *, MenuItemState *); // func_02014e94 @@ -359,10 +359,18 @@ class DialogItem : public MenuItem class DialogItemYes : public DialogItem { +public: + /* 000 */ virtual char * vfunc_00(void); // func_020151e0 + /* 028 */ virtual s32 vfunc_28(void); // func_020151d8 }; class DialogItemNo : public DialogItem { +public: + /* 000 */ virtual char * vfunc_00(void); // func_0201518c + /* 014 */ virtual s32 vfunc_14(void); // func_02015184 + /* 01C */ virtual s32 vfunc_1c(void); // func_02015940 + /* 028 */ virtual s32 vfunc_28(void); // func_0201517c }; #endif // MENU_HPP \ No newline at end of file diff --git a/include/proc.h b/include/proc.h index e09ebc1..b99a50d 100644 --- a/include/proc.h +++ b/include/proc.h @@ -124,6 +124,7 @@ enum PROC_MARK_A = 0xA, }; +#define PROC_TREE_3 ((ProcPtr) 3) #define PROC_TREE_5 ((ProcPtr) 5) #define PROC_TREE_6 ((ProcPtr) 6) #define PROC_TREE_9 ((ProcPtr) 9) diff --git a/src/link_dialog.cpp b/src/link_dialog.cpp new file mode 100644 index 0000000..df4b527 --- /dev/null +++ b/src/link_dialog.cpp @@ -0,0 +1,1299 @@ +#include "global.h" + +#include + +#include "hardware.hpp" +#include "hashtable.hpp" +#include "heap.hpp" +#include "map.hpp" +#include "menu.hpp" +#include "proc_ex.hpp" + +EC char * func_02039e10(char *); + +struct UnkStruct_020cac80 +{ + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0c; + s32 unk_10; + s32 unk_14; + s32 unk_18; +}; + +extern struct UnkStruct_020cac80 data_020cac80; + +extern struct ProcCmd data_020caccc[]; + +struct UnkStruct_020efc84 +{ + u8 unk_00; + STRUCT_PAD(0x01, 0x18); + Dialog * unk_18; + STRUCT_PAD(0x1C, 0x30); + s32 unk_30; +}; + +extern struct UnkStruct_020efc84 data_020efc84; + +extern MenuItem ** data_020efcb8; + +EC void func_01ff9998(void *, s32, s32); +EC u8 * func_0202b70c(void); + +class LinkDialogBlink : public ProcEx +{ +public: + u8 * unk_38; + s32 unk_3c; + s32 unk_40; + s32 unk_44; + + LinkDialogBlink(s32 uVar1) + { + this->unk_3c = uVar1; + this->unk_40 = 0; + this->unk_44 = 0; + this->unk_38 = func_0202b70c(); + } + + // func_020158b8 + // func_02015900 + virtual ~LinkDialogBlink() + { + func_01ff9998(this->unk_38, this->unk_3c * 0x20, 0x20); + gHeap.Free(this->unk_38); + } + + virtual void Loop(void); // func_020147d4 +}; + +class LinkDialogItemNone : public DialogItem +{ +public: + /* 01C */ virtual s32 vfunc_1c(void); // func_02015130 + /* 0A8 */ virtual void vfunc_a8(Menu *, MenuItemState *); // func_02015138 + /* 0AC */ virtual s32 vfunc_ac(MenuItemState *, s32, s32, s32, s32); // func_0201513c +}; + +class LinkDialogItemOk : public DialogItem +{ +public: + /* 000 */ virtual char * vfunc_00(void); // func_0201514c + /* 01C */ virtual s32 vfunc_1c(void); // func_02015144 +}; + +class LinkDialogItemNext : public DialogItem +{ +public: + /* 000 */ virtual char * vfunc_00(void); // func_02015160 + /* 01C */ virtual s32 vfunc_1c(void); // func_02015168 +}; + +class LinkDialogItemNoF : public DialogItemNo +{ +public: + /* 01C */ virtual s32 vfunc_1c(void); // func_020151a0 +}; + +class LinkDialogItemNo : public DialogItemNo +{ +public: + /* 014 */ virtual s32 vfunc_14(void); // func_020151d0 + /* 01C */ virtual s32 vfunc_1c(void); // func_020151b8 +}; + +class LinkDialogItemYes : public DialogItemYes +{ +public: + /* 01C */ virtual s32 vfunc_1c(void); // func_020151f4 +}; + +class _LinkDialogCommon : public Dialog +{ +public: + _LinkDialogCommon() + { + data_020efc84.unk_00 = 0; + } + + /* 000 */ virtual void vfunc_00(void); // func_020153cc + /* 020 */ virtual s32 vfunc_20(s32); // func_0201536c + /* 028 */ virtual s32 vfunc_28(s32); // func_020153c4 + + // func_02015818 + // func_0201586c + virtual ~_LinkDialogCommon() + { + data_020efc84.unk_18 = NULL; + } +}; + +class _LinkDialogYesNo : public _LinkDialogCommon +{ +public: + /* 000 */ virtual void vfunc_00(void); // func_020156e4 + /* 028 */ virtual s32 vfunc_28(s32); // func_020156b4 + + // func_02015948 + // func_02015994 + // ~_LinkDialogYesNo(); +}; + +class _LinkDialogNone : public _LinkDialogCommon +{ +public: + s16 unk_58; + s16 unk_5a; + + /* 010 */ virtual void vfunc_10(void); + /* 0FC */ virtual void vfunc_fc(void); // func_020156b0 + /* 100 */ virtual void vfunc_100(void); // func_020156ac + /* 108 */ virtual void vfunc_108(void); // func_020156a8 + /* 110 */ virtual void vfunc_110(void); // func_020156a4 + /* 11C */ virtual void vfunc_11c(void); + + // func_0201556c + // func_02015500 + virtual ~_LinkDialogNone() + { + Proc_EndEach(data_020caccc); + } +}; + +class _LinkDialogConfirm : public _LinkDialogCommon +{ +public: + /* 110 */ virtual void vfunc_110(void); // func_020154fc + + // func_020159e8 + // func_02015a34 + // ~_LinkDialogConfirm(); +}; + +class LinkErrorDialog : public ProcEx +{ +public: + char * unk_38; + + LinkErrorDialog(char * str) + { + this->unk_38 = str; + } + + // func_02015a88 + // func_02015a8c + virtual ~LinkErrorDialog() + { + } +}; + +EC void func_020147c0(LinkDialogBlink * proc) +{ + proc->Loop(); + return; +} + +EC void func_01ff9a8c(u8 *, s32, s32); + +// func_020147d4 +void LinkDialogBlink::Loop(void) +{ + s32 tmp; + + if (++this->unk_40 < 4) + { + return; + } + + if (++this->unk_44 >= 0x10) + { + this->unk_44 = 0; + } + + this->unk_40 = 0; + + tmp = this->unk_44; + if (tmp >= 8) + { + tmp = 15 - tmp; + } + + func_01ff9a8c(this->unk_38 + (tmp * 0x20), this->unk_3c * 0x20, 0x20); + return; +} + +EC void func_0202fef8(Menu *); +EC void func_020303bc(Dialog *, char *, void *, ProcPtr, s32, s32); + +EC Dialog * func_02014834(ProcPtr param_1, char * param_2, s32 param_3, s32 param_4, s32 param_5, s32 param_6) +{ + static LinkDialogItemYes data_020efcac; + static LinkDialogItemNo data_020efca4; + static LinkDialogItemNoF data_020efca0; + static LinkDialogItemNext data_020efcc0; + static LinkDialogItemOk data_020efc8c; + static LinkDialogItemNone data_020efcb0; + + // clang-format off + static MenuItem * data_020cac9c[] = + { + &data_020efc8c, + }; + + static MenuItem * data_020caca4[] = + { + &data_020efcc0, + }; + + static MenuItem * data_020cacac[] = + { + &data_020efcb0, + }; + + static MenuItem * data_020cacb4[] = + { + &data_020efcac, + &data_020efca0, + }; + + static MenuItem * data_020cacc0[] = + { + &data_020efcac, + &data_020efca4, + }; + // clang-format on + + if (data_020efc84.unk_18 != NULL) + { + func_0202fef8(data_020efc84.unk_18); + } + + if (param_3 == 0) + { + data_020efc84.unk_18 = new _LinkDialogYesNo(); + } + else if (param_3 == 3) + { + data_020efc84.unk_18 = new _LinkDialogNone(); + } + else + { + data_020efc84.unk_18 = new _LinkDialogConfirm(); + } + + if (param_3 == 1) + { + data_020efcb8 = data_020cac9c; + } + else if (param_3 == 2) + { + data_020efcb8 = data_020caca4; + } + else if (param_3 == 3) + { + data_020efcb8 = data_020cacac; + } + else if (param_6 != 0) + { + data_020efcb8 = data_020cacb4; + } + else + { + data_020efcb8 = data_020cacc0; + } + + if (param_1 == NULL) + { + param_4 = 0; + param_1 = PROC_TREE_9; + } + + func_020303bc(data_020efc84.unk_18, param_2, data_020efcb8, param_1, param_4, param_5); + + return data_020efc84.unk_18; +} + +EC void func_0202fe9c(Menu *, s32); + +EC void func_02014ad0(void) +{ + if (data_020efc84.unk_18 != NULL) + { + func_0202fe9c(data_020efc84.unk_18, 0); + } + + return; +} + +EC void func_02014af4(void) +{ + data_020cac80.unk_08 = -1; + data_020cac80.unk_10 = -1; + data_020cac80.unk_14 = -1; + data_020cac80.unk_18 = -1; + data_020cac80.unk_04 = -1; + data_020cac80.unk_0c = -1; + data_020cac80.unk_00 = -1; + return; +} + +// func_02014e74 +u32 MenuItem::vfunc_d4(void) +{ + return 1; +} + +// func_02014e7c +u32 MenuItem::vfunc_d0(void) +{ + return 0; +} + +// func_02014e84 +u32 MenuItem::vfunc_cc(void) +{ + return 2; +} + +// func_02014e8c +u32 MenuItem::vfunc_c4(void) +{ + return -1; +} + +// func_02014e94 +void MenuItem::vfunc_b0(Menu * menu, MenuItemState * menuItemState) +{ + return; +} + +// func_02014e98 +void MenuItem::vfunc_a0(void) +{ + return; +} + +// func_02014e9c +void MenuItem::vfunc_a4(MenuItemState * menuItemState) +{ + this->vfunc_a0(); + return; +} + +// func_02014eb0 +void MenuItem::vfunc_94(void) +{ + return; +} + +// func_02014eb4 +void MenuItem::vfunc_98(MenuItemState * menuItemState) +{ + this->vfunc_94(); + return; +} + +// func_02014ec8 +void MenuItem::vfunc_9c(Menu * menu, MenuItemState * menuItemState) +{ + this->vfunc_98(menuItemState); + return; +} + +// func_02014ee0 +void MenuItem::vfunc_88(void) +{ + return; +} + +// func_02014ee4 +void MenuItem::vfunc_8c(MenuItemState * menuItemState) +{ + this->vfunc_88(); + return; +} + +// func_02014ef8 +void MenuItem::vfunc_90(Menu * menu, MenuItemState * menuItemState) +{ + this->vfunc_8c(menuItemState); + return; +} + +// func_02014f10 +void MenuItem::vfunc_7c(void) +{ + return; +} + +// func_02014f14 +void MenuItem::vfunc_80(MenuItemState * menuItemState) +{ + this->vfunc_7c(); + return; +} + +// func_02014f28 +void MenuItem::vfunc_84(Menu * menu, MenuItemState * menuItemState) +{ + this->vfunc_80(menuItemState); + return; +} + +// func_02014f40 +void MenuItem::vfunc_70(void) +{ + return; +} + +// func_02014f44 +void MenuItem::vfunc_74(MenuItemState * menuItemState) +{ + this->vfunc_70(); + return; +} + +// func_02014f58 +void MenuItem::vfunc_78(Menu * menu, MenuItemState * menuItemState) +{ + this->vfunc_74(menuItemState); + return; +} + +// func_02014f70 +s32 MenuItem::vfunc_64(void) +{ + return 0; +} + +// func_02014f78 +s32 MenuItem::vfunc_68(MenuItemState * menuItemState) +{ + return this->vfunc_64(); +} + +// func_02014f8c +s32 MenuItem::vfunc_6c(Menu * menu, MenuItemState * menuItemState) +{ + return this->vfunc_68(menuItemState); +} + +// func_02014fa4 +s32 MenuItem::vfunc_58(void) +{ + return 0x400; +} + +// func_02014fac +s32 MenuItem::vfunc_5c(MenuItemState * menuItemState) +{ + return this->vfunc_58(); +} + +// func_02014fc0 +s32 MenuItem::vfunc_60(Menu * menu, MenuItemState * menuItemState) +{ + return this->vfunc_5c(menuItemState); +} + +// func_02014fd8 +s32 MenuItem::vfunc_4c(void) +{ + return 0; +} + +// func_02014fe0 +s32 MenuItem::vfunc_50(MenuItemState * menuItemState) +{ + return this->vfunc_4c(); +} + +// func_02014ff4 +s32 MenuItem::vfunc_54(Menu * menu, MenuItemState * menuItemState) +{ + return this->vfunc_50(menuItemState); +} + +// func_0201500c +s32 MenuItem::vfunc_40(void) +{ + return 0; +} + +// func_02015014 +s32 MenuItem::vfunc_44(MenuItemState * menuItemState) +{ + return this->vfunc_40(); +} + +// func_02015028 +s32 MenuItem::vfunc_48(Menu * menu, MenuItemState * menuItemState) +{ + return this->vfunc_44(menuItemState); +} + +// func_02015040 +s32 MenuItem::vfunc_34(void) +{ + return 0; +} + +// func_02015048 +s32 MenuItem::vfunc_38(MenuItemState * menuItemState) +{ + return this->vfunc_34(); +} + +// func_0201505c +s32 MenuItem::vfunc_3c(Menu * menu, MenuItemState * menuItemState) +{ + return this->vfunc_38(menuItemState); +} + +// func_02015074 +s32 MenuItem::vfunc_28(void) +{ + return 0x81; +} + +// func_0201507c +s32 MenuItem::vfunc_2c(MenuItemState * menuItemState) +{ + return this->vfunc_28(); +} + +// func_02015090 +s32 MenuItem::vfunc_30(Menu * menu, MenuItemState * menuItemState) +{ + return this->vfunc_2c(menuItemState); +} + +// func_020150bc +s32 MenuItem::vfunc_1c(void) +{ + return 0; +} + +// func_020150a8 +s32 MenuItem::vfunc_20(MenuItemState * menuItemState) +{ + return this->vfunc_1c(); +} + +// func_020150c4 +s32 MenuItem::vfunc_24(Menu * menu, MenuItemState * menuItemState) +{ + return this->vfunc_20(menuItemState); +} + +// func_020150dc +s32 MenuItem::vfunc_14(void) +{ + return 0; +} + +// func_020150e4 +s32 MenuItem::vfunc_18(s32 unused) +{ + return this->vfunc_14(); +} + +// func_020150f8 +s32 MenuItem::vfunc_08(void) +{ + return 0; +} + +// func_02015100 +s32 MenuItem::vfunc_0c(MenuItemState * menuItemState) +{ + return this->vfunc_08(); +} + +// func_02015114 +char * MenuItem::vfunc_00(void) +{ + return 0; +} + +// func_0201511c +char * MenuItem::vfunc_04(MenuItemState * menuItemState) +{ + return this->vfunc_00(); +} + +// func_02015130 +s32 LinkDialogItemNone::vfunc_1c(void) +{ + return 0; +} + +// func_02015138 +void LinkDialogItemNone::vfunc_a8(Menu * menu, MenuItemState * menuItemState) +{ + return; +} + +// func_0201513c +s32 LinkDialogItemNone::vfunc_ac(MenuItemState * menuItemState, s32 arg1, s32 arg2, s32 arg3, s32 arg4) +{ + return 0; +} + +// func_02015144 +s32 LinkDialogItemOk::vfunc_1c(void) +{ + return 0x41; +} + +// func_0201514c +char * LinkDialogItemOk::vfunc_00(void) +{ + return func_02039e10("M_OK"); +} + +// func_02015160 +s32 LinkDialogItemNext::vfunc_1c(void) +{ + return 0x41; +} + +// func_02015168 +char * LinkDialogItemNext::vfunc_00(void) +{ + return func_02039e10("M_NEXT"); +} + +// func_0201517c +s32 DialogItemNo::vfunc_28(void) +{ + return 0; +} + +// func_02015184 +s32 DialogItemNo::vfunc_14(void) +{ + return 8; +} + +// func_0201518c +char * DialogItemNo::vfunc_00(void) +{ + return func_02039e10("M_いいえ"); +} + +// func_020151a0 +s32 LinkDialogItemNoF::vfunc_1c(void) +{ + data_020efc84.unk_30 = 0; + return 0x81; +} + +// func_020151b8 +s32 LinkDialogItemNo::vfunc_1c(void) +{ + data_020efc84.unk_30 = 0; + return 0x81; +} +// func_020151d0 +s32 LinkDialogItemNo::vfunc_14(void) +{ + return 0; +} + +// func_020151d8 +s32 DialogItemYes::vfunc_28(void) +{ + return 0; +} + +// func_020151e0 +char * DialogItemYes::vfunc_00(void) +{ + return func_02039e10("M_はい"); +} + +// func_020151f4 +s32 LinkDialogItemYes::vfunc_1c(void) +{ + data_020efc84.unk_30 = 1; + return 0x41; +} + +// func_0201520c +void Menu::vfunc_e4(void) +{ + return; +} + +// func_02015210 +void Menu::vfunc_e0(void) +{ + return; +} + +// func_02015214 +void Menu::vfunc_b8(s32 arg0) +{ + return; +} + +// func_02015218 +s32 Menu::vfunc_ac(void) +{ + return 0; +} + +// func_02015220 +BOOL Menu::vfunc_a8(void) +{ + return FALSE; +} + +// func_02015228 +BOOL Menu::vfunc_a4(void) +{ + return FALSE; +} + +// func_02015230 +BOOL Menu::vfunc_a0(void) +{ + return FALSE; +} + +// func_02015238 +s32 Menu::vfunc_9c(void) +{ + return 0; +} + +// func_02015240 +s32 Menu::vfunc_98(s32 arg0, s32 arg1) +{ + return 0; +} +// func_02015248 +s32 Menu::vfunc_94(s32 arg0, s32 arg1) +{ + return 0; +} + +// func_02015250 +s32 Menu::vfunc_60(void) +{ + return this->vfunc_7c() | 0x2000; +} + +// func_02015268 +s32 Menu::vfunc_58(s32 arg0) +{ + return arg0; +} + +// func_02015270 +s32 Menu::vfunc_5c(MenuItemState * menuItemState, s32 arg1) +{ + return this->vfunc_58(arg1); +} + +// func_02015288 +s32 Menu::vfunc_50(s32 arg0) +{ + return arg0; +} + +// func_02015290 +s32 Menu::vfunc_54(MenuItemState * menuItemState, s32 arg1) +{ + return this->vfunc_50(arg1); +} + +// func_020152a8 +s32 Menu::vfunc_48(s32 arg0) +{ + return arg0; +} + +// func_020152b0 +s32 Menu::vfunc_4c(MenuItemState * menuItemState, s32 arg1) +{ + return this->vfunc_48(arg1); +} + +// func_020152c8 +s32 Menu::vfunc_40(s32 arg0) +{ + return arg0; +} + +// func_020152d0 +s32 Menu::vfunc_44(MenuItemState * menuItemState, s32 arg1) +{ + return this->vfunc_40(arg1); +} + +// func_020152e8 +s32 Menu::vfunc_38(s32 arg0) +{ + return arg0; +} + +// func_020152f0 +s32 Menu::vfunc_3c(MenuItemState * menuItemState, s32 arg1) +{ + return this->vfunc_38(arg1); +} + +// func_02015308 +s32 Menu::vfunc_30(s32 arg0) +{ + return arg0; +} + +// func_02015310 +s32 Menu::vfunc_34(MenuItemState * menuItemState, s32 arg1) +{ + return this->vfunc_30(arg1); +} + +// func_02015328 +s32 Menu::vfunc_2c(MenuItemState * menuItemState, s32 arg1) +{ + return this->vfunc_28(arg1); +} + +// func_02015340 +s32 Menu::vfunc_28(s32 arg0) +{ + return arg0; +} + +// func_02015348 +s32 Menu::vfunc_24(MenuItemState * menuItemState, s32 arg1) +{ + return this->vfunc_20(arg1); +} + +// func_02015360 +s32 Menu::vfunc_20(s32 arg0) +{ + return arg0; +} + +// func_02015368 +void Menu::vfunc_04(void) +{ + return; +} + +extern struct ProcCmd ProcScr_020ce750[]; + +EC s32 func_020121c0(void); +EC s32 func_02012584(void); + +EC s32 func_ov010_02207ab4(void); +EC void func_ov010_0220986c(s32, s32, s32, ProcPtr); +EC s32 func_ov010_02209674(void); + +EC s32 func_ov011_022065a4(s32 *, s32 *); +EC s32 func_ov011_022087c8(s32, s32, s32, s32, s32, ProcPtr); +EC void func_ov011_022065b0(void); +EC s32 func_ov011_022082ec(s32, s32, s32); +EC void func_ov011_02206564(s32); + +EC s32 func_02014b20(ProcPtr param_1, s32 param_2, s32 param_3, s32 param_4) +{ + s32 iVar1; + u32 uVar2; + u32 puVar10; + s32 iVar11; + s32 local_1c; + s32 local_20; + s32 uStack_18; + + iVar11 = 0; + uStack_18 = param_4; + + switch (func_020121c0()) + { + case 1: + func_ov010_0220986c(0, 0, func_ov010_02207ab4(), param_1); + func_ov010_02207ab4(); + data_020efc84.unk_00 = func_ov010_02209674(); + break; + + case 2: + uVar2 = func_ov011_022065a4(&local_1c, &local_20); + func_ov011_022087c8(0, 0, uVar2, local_1c, local_20, param_1); + func_ov011_022065b0(); + + switch (local_20) + { + case 0: + case 1: + case 2: + func_ov011_02206564(6); + iVar11 = 1; + break; + case 3: + case 4: + case 5: + case 6: + case 7: + break; + } + data_020efc84.unk_00 = func_ov011_022082ec(uVar2, local_1c, local_20); + break; + } + + switch (param_2) + { + case 0: + break; + + case 1: + if (func_02012584() != 0) + { + iVar11 = 0; + new (Proc_StartBlocking(ProcScr_020ce750, param_1)) LinkErrorDialog("MLink_BreakUp"); + } + break; + case 2: + iVar11 = 0; + new (Proc_StartBlocking(ProcScr_020ce750, param_1)) LinkErrorDialog("MLink_DownloadFailed"); + break; + case 3: + iVar11 = 0; + new (Proc_StartBlocking(ProcScr_020ce750, param_1)) LinkErrorDialog("MLink_DownloadCancel"); + break; + case 4: + iVar11 = 0; + if (data_020efc84.unk_00 == 0) + { + new (Proc_StartBlocking(ProcScr_020ce750, param_1)) LinkErrorDialog("MLink_StorageLoginFailed"); + } + break; + case 5: + if (iVar11 == 1) + { + new (Proc_StartBlocking(ProcScr_020ce750, param_1)) LinkErrorDialog("MLink_StorageSaveFailed"); + } + break; + case 6: + iVar11 = 0; + if (data_020efc84.unk_00 == 0) + { + new (Proc_StartBlocking(ProcScr_020ce750, param_1)) LinkErrorDialog("MLink_StorageLoadFailed"); + } + break; + case 7: + iVar11 = 0; + if (data_020efc84.unk_00 == 0) + { + new (Proc_StartBlocking(ProcScr_020ce750, param_1)) LinkErrorDialog("MLink_CollectFailed"); + } + break; + case 8: + iVar11 = 0; + if (data_020efc84.unk_00 == 0) + { + new (Proc_StartBlocking(ProcScr_020ce750, param_1)) LinkErrorDialog("MLink_OnlineShopFailed"); + } + } + + return iVar11; +} + +EC Dialog * func_02014834(ProcPtr param_1, char * param_2, s32 param_3, s32 param_4, s32 param_5, s32 param_6); + +EC void func_02014e10(LinkErrorDialog * param_1) +{ + if (data_020efc84.unk_00 == 0 && data_020efc84.unk_18 == NULL) + { + func_02014834(param_1, func_02039e10(param_1->unk_38), 2, 1, 1, 1); + Proc_Break(param_1, 0); + } + + return; +} + +struct VmMap_Common +{ + STRUCT_PAD(0x00, 0x04); + u16 unk_04; + u8 unk_06; + u8 unk_07; + void * unk_08; +}; + +struct UnkStruct_02196f20 +{ + STRUCT_PAD(0x000, 0x180); + /* 180 */ void * flagMgr; + s32 unk_184; + u32 unk_188; + u32 unk_18c; + s32 unk_190; + u32 unk_194; + u8 unk_198; + u8 unk_199; + u8 unk_19a; + u8 unk_19b; + s8 unk_19c; + s8 unk_19d; + STRUCT_PAD(0x19E, 0x1A4); +}; + +extern struct UnkStruct_02196f20 * data_02196f20; + +extern struct TouchState * gTouchSt; + +// func_0201536c +s32 _LinkDialogCommon::vfunc_20(s32 param_2) +{ + if ((gMapStateManager != NULL) && (gMapStateManager->unk_14->unk_24) == 0) + { + data_02196f20->unk_19a = gTouchSt->unk_15 != 0; + } + + return param_2; +} + +// func_020153c4 +s32 _LinkDialogCommon::vfunc_28(s32 arg0) +{ + return 0; +} + +// func_020153cc +void _LinkDialogCommon::vfunc_00(void) +{ + struct VmMap_Common * iVar1; + + if ((gMapStateManager != NULL) && (gMapStateManager->unk_14->unk_24 == 0)) + { + iVar1 = static_cast(HashTable::Get2("VmMap_DialogFont")); + this->unk_14 = iVar1->unk_04; + this->unk_18 = iVar1->unk_06; + + iVar1 = static_cast(HashTable::Get2("VmMap_Dialog")); + this->unk_30 = iVar1->unk_07; + this->unk_1c = iVar1->unk_04; + this->unk_20 = iVar1->unk_06; + + iVar1 = static_cast(HashTable::Get2("VmMap_MenuCursor")); + this->unk_24 = iVar1->unk_04; + this->unk_28 = iVar1->unk_06; + } + else + { + this->unk_30 = 0; + + if (data_020cac80.unk_08 != -1) + { + this->unk_30 = data_020cac80.unk_08; + } + + if (data_020cac80.unk_10 != -1) + { + this->unk_14 = data_020cac80.unk_10; + } + + if (data_020cac80.unk_14 != -1) + { + this->unk_18 = data_020cac80.unk_14; + } + + if (data_020cac80.unk_18 != -1) + { + this->unk_1c = data_020cac80.unk_18; + } + + if (data_020cac80.unk_04 != -1) + { + this->unk_20 = data_020cac80.unk_04; + } + + if (data_020cac80.unk_0c != -1) + { + this->unk_24 = data_020cac80.unk_0c; + } + + if (data_020cac80.unk_00 != -1) + { + this->unk_28 = data_020cac80.unk_00; + } + } + + this->unk_40 = 1; + + return; +} + +// func_020154fc +void _LinkDialogConfirm::vfunc_110(void) +{ + return; +} + +// func_020155d0 +void _LinkDialogNone::vfunc_11c(void) +{ + LinkDialogBlink * puVar1; + + Menu::vfunc_11c(); + + puVar1 = new (func_01ffbf90(data_020caccc, PROC_TREE_3)) LinkDialogBlink(this->unk_20); + func_01ffbfd0(puVar1); + + return; +} + +struct UnkStruct_021970c4 +{ + void * unk_00; + void * unk_04; + void * unk_08; +}; + +extern struct UnkStruct_021970c4 * data_021970c4; +extern struct UnkStruct_021970c4 * data_021970cc; + +EC s32 func_020290f4(struct UnkStruct_021970c4 *, s32); +EC s32 func_02028e7c(struct UnkStruct_021970c4 *, s32, s32); + +// func_02015628 +void _LinkDialogNone::vfunc_10(void) +{ + u32 iVar1; + + Menu::vfunc_10(); + + iVar1 = func_020290f4(data_021970c4, this->unk_54); + + this->unk_37 = (iVar1 << 1) + 4; + this->unk_5a = this->unk_36; + + iVar1 = func_02028e7c(data_021970c4, this->unk_54, 0); + iVar1 = (((iVar1 + 7) & ~7) / 8) + 2; + + if (this->unk_5a < iVar1) + { + this->unk_5a = iVar1; + this->unk_36 = this->unk_5a; + } + + this->unk_5a += 2; + + return; +} + +// func_020156a4 +void _LinkDialogNone::vfunc_110(void) +{ + return; +} + +// func_020156a8 +void _LinkDialogNone::vfunc_108(void) +{ + return; +} + +// func_020156ac +void _LinkDialogNone::vfunc_100(void) +{ + return; +} + +// func_020156b0 +void _LinkDialogNone::vfunc_fc(void) +{ + return; +} + +// func_020156b4 +s32 _LinkDialogYesNo::vfunc_28(s32 arg0) +{ + if (arg0 == 0) + { + return this->unk_0c[1].unk_00->vfunc_24(this, &this->unk_0c[1]); + } + + return arg0; +} + +// func_020156e4 +void _LinkDialogYesNo::vfunc_00(void) +{ + struct VmMap_Common * iVar1; + + if ((gMapStateManager != NULL) && (gMapStateManager->unk_14->unk_24 == 0)) + { + iVar1 = static_cast(HashTable::Get2("VmMap_DialogFont")); + this->unk_14 = iVar1->unk_04; + this->unk_18 = iVar1->unk_06; + + iVar1 = static_cast(HashTable::Get2("VmMap_Dialog")); + this->unk_30 = iVar1->unk_07; + this->unk_1c = iVar1->unk_04; + this->unk_20 = iVar1->unk_06; + + iVar1 = static_cast(HashTable::Get2("VmMap_MenuCursor")); + this->unk_24 = iVar1->unk_04; + this->unk_28 = iVar1->unk_06; + } + else + { + this->unk_30 = 0; + + if (data_020cac80.unk_08 != -1) + { + this->unk_30 = data_020cac80.unk_08; + } + + if (data_020cac80.unk_10 != -1) + { + this->unk_14 = data_020cac80.unk_10; + } + + if (data_020cac80.unk_14 != -1) + { + this->unk_18 = data_020cac80.unk_14; + } + + if (data_020cac80.unk_18 != -1) + { + this->unk_1c = data_020cac80.unk_18; + } + + if (data_020cac80.unk_04 != -1) + { + this->unk_20 = data_020cac80.unk_04; + } + + if (data_020cac80.unk_0c != -1) + { + this->unk_24 = data_020cac80.unk_0c; + } + + if (data_020cac80.unk_00 != -1) + { + this->unk_28 = data_020cac80.unk_00; + } + } + + this->unk_40 = 1; + this->unk_48 = 1; + + return; +} + +// func_02015940 +s32 DialogItemNo::vfunc_1c(void) +{ + return 0x81; +} \ No newline at end of file From 3152cd2b9f0956b0c44b0503a6ffaf7938222a27 Mon Sep 17 00:00:00 2001 From: Eebit Date: Wed, 4 Feb 2026 18:25:30 -0500 Subject: [PATCH 2/5] (link_dialog) Symbol renames --- config/YFEE01/arm9/symbols.txt | 232 ++++++++++++++++----------------- include/menu.hpp | 160 +++++++++++------------ include/unknown_funcs.h | 232 ++++++++++++++++----------------- src/link_dialog.cpp | 162 ++++------------------- 4 files changed, 336 insertions(+), 450 deletions(-) diff --git a/config/YFEE01/arm9/symbols.txt b/config/YFEE01/arm9/symbols.txt index 577a024..e7a473e 100644 --- a/config/YFEE01/arm9/symbols.txt +++ b/config/YFEE01/arm9/symbols.txt @@ -668,127 +668,127 @@ func_02014758 kind:function(arm,size=0x10) addr:0x02014758 func_02014768 kind:function(arm,size=0x30) addr:0x02014768 func_02014798 kind:function(arm,size=0x28) addr:0x02014798 func_020147c0 kind:function(arm,size=0x14) addr:0x020147c0 -func_020147d4 kind:function(arm,size=0x60) addr:0x020147d4 +_ZN15LinkDialogBlink4LoopEv kind:function(arm,size=0x60) addr:0x020147d4 func_02014834 kind:function(arm,size=0x29c) addr:0x02014834 func_02014ad0 kind:function(arm,size=0x24) addr:0x02014ad0 func_02014af4 kind:function(arm,size=0x2c) addr:0x02014af4 func_02014b20 kind:function(arm,size=0x2f0) addr:0x02014b20 func_02014e10 kind:function(arm,size=0x64) addr:0x02014e10 -func_02014e74 kind:function(arm,size=0x8) addr:0x02014e74 -func_02014e7c kind:function(arm,size=0x8) addr:0x02014e7c -func_02014e84 kind:function(arm,size=0x8) addr:0x02014e84 -func_02014e8c kind:function(arm,size=0x8) addr:0x02014e8c -func_02014e94 kind:function(arm,size=0x4) addr:0x02014e94 -func_02014e98 kind:function(arm,size=0x4) addr:0x02014e98 -func_02014e9c kind:function(arm,size=0x14) addr:0x02014e9c -func_02014eb0 kind:function(arm,size=0x4) addr:0x02014eb0 -func_02014eb4 kind:function(arm,size=0x14) addr:0x02014eb4 -func_02014ec8 kind:function(arm,size=0x18) addr:0x02014ec8 -func_02014ee0 kind:function(arm,size=0x4) addr:0x02014ee0 -func_02014ee4 kind:function(arm,size=0x14) addr:0x02014ee4 -func_02014ef8 kind:function(arm,size=0x18) addr:0x02014ef8 -func_02014f10 kind:function(arm,size=0x4) addr:0x02014f10 -func_02014f14 kind:function(arm,size=0x14) addr:0x02014f14 -func_02014f28 kind:function(arm,size=0x18) addr:0x02014f28 -func_02014f40 kind:function(arm,size=0x4) addr:0x02014f40 -func_02014f44 kind:function(arm,size=0x14) addr:0x02014f44 -func_02014f58 kind:function(arm,size=0x18) addr:0x02014f58 -func_02014f70 kind:function(arm,size=0x8) addr:0x02014f70 -func_02014f78 kind:function(arm,size=0x14) addr:0x02014f78 -func_02014f8c kind:function(arm,size=0x18) addr:0x02014f8c -func_02014fa4 kind:function(arm,size=0x8) addr:0x02014fa4 -func_02014fac kind:function(arm,size=0x14) addr:0x02014fac -func_02014fc0 kind:function(arm,size=0x18) addr:0x02014fc0 -func_02014fd8 kind:function(arm,size=0x8) addr:0x02014fd8 -func_02014fe0 kind:function(arm,size=0x14) addr:0x02014fe0 -func_02014ff4 kind:function(arm,size=0x18) addr:0x02014ff4 -func_0201500c kind:function(arm,size=0x8) addr:0x0201500c -func_02015014 kind:function(arm,size=0x14) addr:0x02015014 -func_02015028 kind:function(arm,size=0x18) addr:0x02015028 -func_02015040 kind:function(arm,size=0x8) addr:0x02015040 -func_02015048 kind:function(arm,size=0x14) addr:0x02015048 -func_0201505c kind:function(arm,size=0x18) addr:0x0201505c -func_02015074 kind:function(arm,size=0x8) addr:0x02015074 -func_0201507c kind:function(arm,size=0x14) addr:0x0201507c -func_02015090 kind:function(arm,size=0x18) addr:0x02015090 -func_020150a8 kind:function(arm,size=0x14) addr:0x020150a8 -func_020150bc kind:function(arm,size=0x8) addr:0x020150bc -func_020150c4 kind:function(arm,size=0x18) addr:0x020150c4 -func_020150dc kind:function(arm,size=0x8) addr:0x020150dc -func_020150e4 kind:function(arm,size=0x14) addr:0x020150e4 -func_020150f8 kind:function(arm,size=0x8) addr:0x020150f8 -func_02015100 kind:function(arm,size=0x14) addr:0x02015100 -func_02015114 kind:function(arm,size=0x8) addr:0x02015114 -func_0201511c kind:function(arm,size=0x14) addr:0x0201511c -func_02015130 kind:function(arm,size=0x8) addr:0x02015130 -func_02015138 kind:function(arm,size=0x4) addr:0x02015138 -func_0201513c kind:function(arm,size=0x8) addr:0x0201513c -func_02015144 kind:function(arm,size=0x8) addr:0x02015144 -func_0201514c kind:function(arm,size=0x14) addr:0x0201514c -func_02015160 kind:function(arm,size=0x8) addr:0x02015160 -func_02015168 kind:function(arm,size=0x14) addr:0x02015168 -func_0201517c kind:function(arm,size=0x8) addr:0x0201517c -func_02015184 kind:function(arm,size=0x8) addr:0x02015184 -func_0201518c kind:function(arm,size=0x14) addr:0x0201518c -func_020151a0 kind:function(arm,size=0x18) addr:0x020151a0 -func_020151b8 kind:function(arm,size=0x18) addr:0x020151b8 -func_020151d0 kind:function(arm,size=0x8) addr:0x020151d0 -func_020151d8 kind:function(arm,size=0x8) addr:0x020151d8 -func_020151e0 kind:function(arm,size=0x14) addr:0x020151e0 -func_020151f4 kind:function(arm,size=0x18) addr:0x020151f4 -func_0201520c kind:function(arm,size=0x4) addr:0x0201520c -func_02015210 kind:function(arm,size=0x4) addr:0x02015210 -func_02015214 kind:function(arm,size=0x4) addr:0x02015214 -func_02015218 kind:function(arm,size=0x8) addr:0x02015218 -func_02015220 kind:function(arm,size=0x8) addr:0x02015220 -func_02015228 kind:function(arm,size=0x8) addr:0x02015228 -func_02015230 kind:function(arm,size=0x8) addr:0x02015230 -func_02015238 kind:function(arm,size=0x8) addr:0x02015238 -func_02015240 kind:function(arm,size=0x8) addr:0x02015240 -func_02015248 kind:function(arm,size=0x8) addr:0x02015248 -func_02015250 kind:function(arm,size=0x18) addr:0x02015250 -func_02015268 kind:function(arm,size=0x8) addr:0x02015268 -func_02015270 kind:function(arm,size=0x18) addr:0x02015270 -func_02015288 kind:function(arm,size=0x8) addr:0x02015288 -func_02015290 kind:function(arm,size=0x18) addr:0x02015290 -func_020152a8 kind:function(arm,size=0x8) addr:0x020152a8 -func_020152b0 kind:function(arm,size=0x18) addr:0x020152b0 -func_020152c8 kind:function(arm,size=0x8) addr:0x020152c8 -func_020152d0 kind:function(arm,size=0x18) addr:0x020152d0 -func_020152e8 kind:function(arm,size=0x8) addr:0x020152e8 -func_020152f0 kind:function(arm,size=0x18) addr:0x020152f0 -func_02015308 kind:function(arm,size=0x8) addr:0x02015308 -func_02015310 kind:function(arm,size=0x18) addr:0x02015310 -func_02015328 kind:function(arm,size=0x18) addr:0x02015328 -func_02015340 kind:function(arm,size=0x8) addr:0x02015340 -func_02015348 kind:function(arm,size=0x18) addr:0x02015348 -func_02015360 kind:function(arm,size=0x8) addr:0x02015360 -func_02015368 kind:function(arm,size=0x4) addr:0x02015368 -func_0201536c kind:function(arm,size=0x58) addr:0x0201536c -func_020153c4 kind:function(arm,size=0x8) addr:0x020153c4 -func_020153cc kind:function(arm,size=0x130) addr:0x020153cc -func_020154fc kind:function(arm,size=0x4) addr:0x020154fc -func_02015500 kind:function(arm,size=0x6c) addr:0x02015500 -func_0201556c kind:function(arm,size=0x64) addr:0x0201556c -func_020155d0 kind:function(arm,size=0x58) addr:0x020155d0 -func_02015628 kind:function(arm,size=0x7c) addr:0x02015628 -func_020156a4 kind:function(arm,size=0x4) addr:0x020156a4 -func_020156a8 kind:function(arm,size=0x4) addr:0x020156a8 -func_020156ac kind:function(arm,size=0x4) addr:0x020156ac -func_020156b0 kind:function(arm,size=0x4) addr:0x020156b0 -func_020156b4 kind:function(arm,size=0x30) addr:0x020156b4 -func_020156e4 kind:function(arm,size=0x134) addr:0x020156e4 -func_02015818 kind:function(arm,size=0x54) addr:0x02015818 -func_0201586c kind:function(arm,size=0x4c) addr:0x0201586c -func_020158b8 kind:function(arm,size=0x48) addr:0x020158b8 -func_02015900 kind:function(arm,size=0x40) addr:0x02015900 -func_02015940 kind:function(arm,size=0x8) addr:0x02015940 -func_02015948 kind:function(arm,size=0x4c) addr:0x02015948 -func_02015994 kind:function(arm,size=0x54) addr:0x02015994 -func_020159e8 kind:function(arm,size=0x4c) addr:0x020159e8 -func_02015a34 kind:function(arm,size=0x54) addr:0x02015a34 -func_02015a88 kind:function(arm,size=0x4) addr:0x02015a88 -func_02015a8c kind:function(arm,size=0x14) addr:0x02015a8c +_ZN8MenuItem8vfunc_d4Ev kind:function(arm,size=0x8) addr:0x02014e74 +_ZN8MenuItem8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x02014e7c +_ZN8MenuItem8vfunc_ccEv kind:function(arm,size=0x8) addr:0x02014e84 +_ZN8MenuItem8vfunc_c4Ev kind:function(arm,size=0x8) addr:0x02014e8c +_ZN8MenuItem8vfunc_b0EP4MenuP13MenuItemState kind:function(arm,size=0x4) addr:0x02014e94 +_ZN8MenuItem8vfunc_a0Ev kind:function(arm,size=0x4) addr:0x02014e98 +_ZN8MenuItem8vfunc_a4EP13MenuItemState kind:function(arm,size=0x14) addr:0x02014e9c +_ZN8MenuItem8vfunc_94Ev kind:function(arm,size=0x4) addr:0x02014eb0 +_ZN8MenuItem8vfunc_98EP13MenuItemState kind:function(arm,size=0x14) addr:0x02014eb4 +_ZN8MenuItem8vfunc_9cEP4MenuP13MenuItemState kind:function(arm,size=0x18) addr:0x02014ec8 +_ZN8MenuItem8vfunc_88Ev kind:function(arm,size=0x4) addr:0x02014ee0 +_ZN8MenuItem8vfunc_8cEP13MenuItemState kind:function(arm,size=0x14) addr:0x02014ee4 +_ZN8MenuItem8vfunc_90EP4MenuP13MenuItemState kind:function(arm,size=0x18) addr:0x02014ef8 +_ZN8MenuItem8vfunc_7cEv kind:function(arm,size=0x4) addr:0x02014f10 +_ZN8MenuItem8vfunc_80EP13MenuItemState kind:function(arm,size=0x14) addr:0x02014f14 +_ZN8MenuItem8vfunc_84EP4MenuP13MenuItemState kind:function(arm,size=0x18) addr:0x02014f28 +_ZN8MenuItem8vfunc_70Ev kind:function(arm,size=0x4) addr:0x02014f40 +_ZN8MenuItem8vfunc_74EP13MenuItemState kind:function(arm,size=0x14) addr:0x02014f44 +_ZN8MenuItem8vfunc_78EP4MenuP13MenuItemState kind:function(arm,size=0x18) addr:0x02014f58 +_ZN8MenuItem8vfunc_64Ev kind:function(arm,size=0x8) addr:0x02014f70 +_ZN8MenuItem8vfunc_68EP13MenuItemState kind:function(arm,size=0x14) addr:0x02014f78 +_ZN8MenuItem8vfunc_6cEP4MenuP13MenuItemState kind:function(arm,size=0x18) addr:0x02014f8c +_ZN8MenuItem8vfunc_58Ev kind:function(arm,size=0x8) addr:0x02014fa4 +_ZN8MenuItem8vfunc_5cEP13MenuItemState kind:function(arm,size=0x14) addr:0x02014fac +_ZN8MenuItem8vfunc_60EP4MenuP13MenuItemState kind:function(arm,size=0x18) addr:0x02014fc0 +_ZN8MenuItem8vfunc_4cEv kind:function(arm,size=0x8) addr:0x02014fd8 +_ZN8MenuItem8vfunc_50EP13MenuItemState kind:function(arm,size=0x14) addr:0x02014fe0 +_ZN8MenuItem8vfunc_54EP4MenuP13MenuItemState kind:function(arm,size=0x18) addr:0x02014ff4 +_ZN8MenuItem8vfunc_40Ev kind:function(arm,size=0x8) addr:0x0201500c +_ZN8MenuItem8vfunc_44EP13MenuItemState kind:function(arm,size=0x14) addr:0x02015014 +_ZN8MenuItem8vfunc_48EP4MenuP13MenuItemState kind:function(arm,size=0x18) addr:0x02015028 +_ZN8MenuItem8vfunc_34Ev kind:function(arm,size=0x8) addr:0x02015040 +_ZN8MenuItem8vfunc_38EP13MenuItemState kind:function(arm,size=0x14) addr:0x02015048 +_ZN8MenuItem8vfunc_3cEP4MenuP13MenuItemState kind:function(arm,size=0x18) addr:0x0201505c +_ZN8MenuItem8vfunc_28Ev kind:function(arm,size=0x8) addr:0x02015074 +_ZN8MenuItem8vfunc_2cEP13MenuItemState kind:function(arm,size=0x14) addr:0x0201507c +_ZN8MenuItem8vfunc_30EP4MenuP13MenuItemState kind:function(arm,size=0x18) addr:0x02015090 +_ZN8MenuItem8vfunc_20EP13MenuItemState kind:function(arm,size=0x14) addr:0x020150a8 +_ZN8MenuItem8vfunc_1cEv kind:function(arm,size=0x8) addr:0x020150bc +_ZN8MenuItem8vfunc_24EP4MenuP13MenuItemState kind:function(arm,size=0x18) addr:0x020150c4 +_ZN8MenuItem8vfunc_14Ev kind:function(arm,size=0x8) addr:0x020150dc +_ZN8MenuItem8vfunc_18El kind:function(arm,size=0x14) addr:0x020150e4 +_ZN8MenuItem8vfunc_08Ev kind:function(arm,size=0x8) addr:0x020150f8 +_ZN8MenuItem8vfunc_0cEP13MenuItemState kind:function(arm,size=0x14) addr:0x02015100 +_ZN8MenuItem8vfunc_00Ev kind:function(arm,size=0x8) addr:0x02015114 +_ZN8MenuItem8vfunc_04EP13MenuItemState kind:function(arm,size=0x14) addr:0x0201511c +_ZN18LinkDialogItemNone8vfunc_1cEv kind:function(arm,size=0x8) addr:0x02015130 +_ZN18LinkDialogItemNone8vfunc_a8EP4MenuP13MenuItemState kind:function(arm,size=0x4) addr:0x02015138 +_ZN18LinkDialogItemNone8vfunc_acEP13MenuItemStatellll kind:function(arm,size=0x8) addr:0x0201513c +_ZN16LinkDialogItemOk8vfunc_1cEv kind:function(arm,size=0x8) addr:0x02015144 +_ZN16LinkDialogItemOk8vfunc_00Ev kind:function(arm,size=0x14) addr:0x0201514c +_ZN18LinkDialogItemNext8vfunc_1cEv kind:function(arm,size=0x8) addr:0x02015160 +_ZN18LinkDialogItemNext8vfunc_00Ev kind:function(arm,size=0x14) addr:0x02015168 +_ZN12DialogItemNo8vfunc_28Ev kind:function(arm,size=0x8) addr:0x0201517c +_ZN12DialogItemNo8vfunc_14Ev kind:function(arm,size=0x8) addr:0x02015184 +_ZN12DialogItemNo8vfunc_00Ev kind:function(arm,size=0x14) addr:0x0201518c +_ZN17LinkDialogItemNoF8vfunc_1cEv kind:function(arm,size=0x18) addr:0x020151a0 +_ZN16LinkDialogItemNo8vfunc_1cEv kind:function(arm,size=0x18) addr:0x020151b8 +_ZN16LinkDialogItemNo8vfunc_14Ev kind:function(arm,size=0x8) addr:0x020151d0 +_ZN13DialogItemYes8vfunc_28Ev kind:function(arm,size=0x8) addr:0x020151d8 +_ZN13DialogItemYes8vfunc_00Ev kind:function(arm,size=0x14) addr:0x020151e0 +_ZN17LinkDialogItemYes8vfunc_1cEv kind:function(arm,size=0x18) addr:0x020151f4 +_ZN4Menu8vfunc_e4Ev kind:function(arm,size=0x4) addr:0x0201520c +_ZN4Menu8vfunc_e0Ev kind:function(arm,size=0x4) addr:0x02015210 +_ZN4Menu8vfunc_b8El kind:function(arm,size=0x4) addr:0x02015214 +_ZN4Menu8vfunc_acEv kind:function(arm,size=0x8) addr:0x02015218 +_ZN4Menu8vfunc_a8Ev kind:function(arm,size=0x8) addr:0x02015220 +_ZN4Menu8vfunc_a4Ev kind:function(arm,size=0x8) addr:0x02015228 +_ZN4Menu8vfunc_a0Ev kind:function(arm,size=0x8) addr:0x02015230 +_ZN4Menu8vfunc_9cEv kind:function(arm,size=0x8) addr:0x02015238 +_ZN4Menu8vfunc_98Ell kind:function(arm,size=0x8) addr:0x02015240 +_ZN4Menu8vfunc_94Ell kind:function(arm,size=0x8) addr:0x02015248 +_ZN4Menu8vfunc_60Ev kind:function(arm,size=0x18) addr:0x02015250 +_ZN4Menu8vfunc_58El kind:function(arm,size=0x8) addr:0x02015268 +_ZN4Menu8vfunc_5cEP13MenuItemStatel kind:function(arm,size=0x18) addr:0x02015270 +_ZN4Menu8vfunc_50El kind:function(arm,size=0x8) addr:0x02015288 +_ZN4Menu8vfunc_54EP13MenuItemStatel kind:function(arm,size=0x18) addr:0x02015290 +_ZN4Menu8vfunc_48El kind:function(arm,size=0x8) addr:0x020152a8 +_ZN4Menu8vfunc_4cEP13MenuItemStatel kind:function(arm,size=0x18) addr:0x020152b0 +_ZN4Menu8vfunc_40El kind:function(arm,size=0x8) addr:0x020152c8 +_ZN4Menu8vfunc_44EP13MenuItemStatel kind:function(arm,size=0x18) addr:0x020152d0 +_ZN4Menu8vfunc_38El kind:function(arm,size=0x8) addr:0x020152e8 +_ZN4Menu8vfunc_3cEP13MenuItemStatel kind:function(arm,size=0x18) addr:0x020152f0 +_ZN4Menu8vfunc_30El kind:function(arm,size=0x8) addr:0x02015308 +_ZN4Menu8vfunc_34EP13MenuItemStatel kind:function(arm,size=0x18) addr:0x02015310 +_ZN4Menu8vfunc_2cEP13MenuItemStatel kind:function(arm,size=0x18) addr:0x02015328 +_ZN4Menu8vfunc_28El kind:function(arm,size=0x8) addr:0x02015340 +_ZN4Menu8vfunc_24EP13MenuItemStatel kind:function(arm,size=0x18) addr:0x02015348 +_ZN4Menu8vfunc_20El kind:function(arm,size=0x8) addr:0x02015360 +_ZN4Menu8vfunc_04Ev kind:function(arm,size=0x4) addr:0x02015368 +_ZN17_LinkDialogCommon8vfunc_20El kind:function(arm,size=0x58) addr:0x0201536c +_ZN17_LinkDialogCommon8vfunc_28El kind:function(arm,size=0x8) addr:0x020153c4 +_ZN17_LinkDialogCommon8vfunc_00Ev kind:function(arm,size=0x130) addr:0x020153cc +_ZN18_LinkDialogConfirm9vfunc_110Ev kind:function(arm,size=0x4) addr:0x020154fc +_ZN15_LinkDialogNoneD0Ev kind:function(arm,size=0x6c) addr:0x02015500 +_ZN15_LinkDialogNoneD1Ev kind:function(arm,size=0x64) addr:0x0201556c +_ZN15_LinkDialogNone9vfunc_11cEv kind:function(arm,size=0x58) addr:0x020155d0 +_ZN15_LinkDialogNone8vfunc_10Ev kind:function(arm,size=0x7c) addr:0x02015628 +_ZN15_LinkDialogNone9vfunc_110Ev kind:function(arm,size=0x4) addr:0x020156a4 +_ZN15_LinkDialogNone9vfunc_108Ev kind:function(arm,size=0x4) addr:0x020156a8 +_ZN15_LinkDialogNone9vfunc_100Ev kind:function(arm,size=0x4) addr:0x020156ac +_ZN15_LinkDialogNone8vfunc_fcEv kind:function(arm,size=0x4) addr:0x020156b0 +_ZN16_LinkDialogYesNo8vfunc_28El kind:function(arm,size=0x30) addr:0x020156b4 +_ZN16_LinkDialogYesNo8vfunc_00Ev kind:function(arm,size=0x134) addr:0x020156e4 +_ZN17_LinkDialogCommonD0Ev kind:function(arm,size=0x54) addr:0x02015818 +_ZN17_LinkDialogCommonD1Ev kind:function(arm,size=0x4c) addr:0x0201586c +_ZN15LinkDialogBlinkD0Ev kind:function(arm,size=0x48) addr:0x020158b8 +_ZN15LinkDialogBlinkD1Ev kind:function(arm,size=0x40) addr:0x02015900 +_ZN12DialogItemNo8vfunc_1cEv kind:function(arm,size=0x8) addr:0x02015940 +_ZN16_LinkDialogYesNoD1Ev kind:function(arm,size=0x4c) addr:0x02015948 +_ZN16_LinkDialogYesNoD0Ev kind:function(arm,size=0x54) addr:0x02015994 +_ZN18_LinkDialogConfirmD1Ev kind:function(arm,size=0x4c) addr:0x020159e8 +_ZN18_LinkDialogConfirmD0Ev kind:function(arm,size=0x54) addr:0x02015a34 +_ZN15LinkErrorDialogD1Ev kind:function(arm,size=0x4) addr:0x02015a88 +_ZN15LinkErrorDialogD0Ev kind:function(arm,size=0x14) addr:0x02015a8c func_02015aa0 kind:function(arm,size=0x44) addr:0x02015aa0 func_02015ae4 kind:function(arm,size=0x24) addr:0x02015ae4 func_02015b08 kind:function(arm,size=0x20) addr:0x02015b08 diff --git a/include/menu.hpp b/include/menu.hpp index ffa2798..49b4e14 100644 --- a/include/menu.hpp +++ b/include/menu.hpp @@ -74,30 +74,30 @@ class Menu Menu(); /* 000 */ virtual void vfunc_00(void); // func_0202806c - /* 004 */ virtual void vfunc_04(void); // func_02015368 + /* 004 */ virtual void vfunc_04(void); /* 008 */ virtual void vfunc_08(void); /* 00C */ virtual void vfunc_0c(void); /* 010 */ virtual void vfunc_10(void); /* 014 */ virtual void vfunc_14(void); /* 018 */ virtual void vfunc_18(void); /* 01C */ virtual void vfunc_1c(void); - /* 020 */ virtual s32 vfunc_20(s32); // func_02015360 - /* 024 */ virtual s32 vfunc_24(MenuItemState *, s32); // func_02015348 - /* 028 */ virtual s32 vfunc_28(s32); // func_02015340 - /* 02C */ virtual s32 vfunc_2c(MenuItemState *, s32); // func_02015328 - /* 030 */ virtual s32 vfunc_30(s32); // func_02015308 - /* 034 */ virtual s32 vfunc_34(MenuItemState *, s32); // func_02015310 - /* 038 */ virtual s32 vfunc_38(s32); // func_020152e8 - /* 03C */ virtual s32 vfunc_3c(MenuItemState *, s32); // func_020152f0 - /* 040 */ virtual s32 vfunc_40(s32); // func_020152c8 - /* 044 */ virtual s32 vfunc_44(MenuItemState *, s32); // func_020152d0 - /* 048 */ virtual s32 vfunc_48(s32); // func_020152a8 - /* 04C */ virtual s32 vfunc_4c(MenuItemState *, s32); // func_020152b0 - /* 050 */ virtual s32 vfunc_50(s32); // func_02015288 - /* 054 */ virtual s32 vfunc_54(MenuItemState *, s32); // func_02015290 - /* 058 */ virtual s32 vfunc_58(s32); // func_02015268 - /* 05C */ virtual s32 vfunc_5c(MenuItemState *, s32); // func_02015270 - /* 060 */ virtual s32 vfunc_60(void); // func_02015250 + /* 020 */ virtual s32 vfunc_20(s32); + /* 024 */ virtual s32 vfunc_24(MenuItemState *, s32); + /* 028 */ virtual s32 vfunc_28(s32); + /* 02C */ virtual s32 vfunc_2c(MenuItemState *, s32); + /* 030 */ virtual s32 vfunc_30(s32); + /* 034 */ virtual s32 vfunc_34(MenuItemState *, s32); + /* 038 */ virtual s32 vfunc_38(s32); + /* 03C */ virtual s32 vfunc_3c(MenuItemState *, s32); + /* 040 */ virtual s32 vfunc_40(s32); + /* 044 */ virtual s32 vfunc_44(MenuItemState *, s32); + /* 048 */ virtual s32 vfunc_48(s32); + /* 04C */ virtual s32 vfunc_4c(MenuItemState *, s32); + /* 050 */ virtual s32 vfunc_50(s32); + /* 054 */ virtual s32 vfunc_54(MenuItemState *, s32); + /* 058 */ virtual s32 vfunc_58(s32); + /* 05C */ virtual s32 vfunc_5c(MenuItemState *, s32); + /* 060 */ virtual s32 vfunc_60(void); /* 064 */ virtual void vfunc_64(void); /* 068 */ virtual void vfunc_68(s32); /* 06C */ virtual void vfunc_6c(s32); @@ -110,16 +110,16 @@ class Menu /* 088 */ virtual s32 vfunc_88(void); /* 08C */ virtual s32 vfunc_8c(void); /* 090 */ virtual s32 vfunc_90(void); - /* 094 */ virtual s32 vfunc_94(s32, s32); // func_02015248 - /* 098 */ virtual s32 vfunc_98(s32, s32); // func_02015240 - /* 09C */ virtual BOOL vfunc_9c(void); // func_02015238 - /* 0A0 */ virtual BOOL vfunc_a0(void); // func_02015230 - /* 0A4 */ virtual BOOL vfunc_a4(void); // func_02015228 - /* 0A8 */ virtual BOOL vfunc_a8(void); // func_02015220 - /* 0AC */ virtual s32 vfunc_ac(void); // func_02015218 + /* 094 */ virtual s32 vfunc_94(s32, s32); + /* 098 */ virtual s32 vfunc_98(s32, s32); + /* 09C */ virtual BOOL vfunc_9c(void); + /* 0A0 */ virtual BOOL vfunc_a0(void); + /* 0A4 */ virtual BOOL vfunc_a4(void); + /* 0A8 */ virtual BOOL vfunc_a8(void); + /* 0AC */ virtual s32 vfunc_ac(void); /* 0B0 */ virtual BOOL vfunc_b0(MenuItemState *, s32, s32); /* 0B4 */ virtual BOOL vfunc_b4(void); - /* 0B8 */ virtual void vfunc_b8(s32); // func_02015214 + /* 0B8 */ virtual void vfunc_b8(s32); /* 0BC */ virtual void vfunc_bc(void); /* 0C0 */ virtual void vfunc_c0(void); /* 0C4 */ virtual void vfunc_c4(void); @@ -129,8 +129,8 @@ class Menu /* 0D4 */ virtual s32 vfunc_d4(s32); /* 0D8 */ virtual void vfunc_d8(void); /* 0DC */ virtual void vfunc_dc(void); - /* 0E0 */ virtual void vfunc_e0(void); // func_02015210 - /* 0E4 */ virtual void vfunc_e4(void); // func_0201520c + /* 0E0 */ virtual void vfunc_e0(void); + /* 0E4 */ virtual void vfunc_e4(void); /* 0E8 */ virtual void vfunc_e8(void); /* 0EC */ virtual void vfunc_ec(void); /* 0F0 */ virtual void vfunc_f0(s32, s32, s32, s32); @@ -177,60 +177,60 @@ class MenuResult class MenuItem : public MenuState, public MenuResult { public: - virtual char * vfunc_00(void); // func_02015114; GetLabelText? - virtual char * vfunc_04(MenuItemState *); // func_0201511c; wraps vfunc_00 - virtual s32 vfunc_08(void); // func_020150f8 - virtual s32 vfunc_0c(MenuItemState *); // func_02015100; wraps vfunc_08 + virtual char * vfunc_00(void); // GetLabelText? + virtual char * vfunc_04(MenuItemState *); // wraps vfunc_00 + virtual s32 vfunc_08(void); + virtual s32 vfunc_0c(MenuItemState *); // wraps vfunc_08 virtual s32 vfunc_10(MenuItemState *); // GetLabelColor? (1 = White, 2 = Grey, 3 = Cyan, 4 = Gold, 5 = Green) - virtual s32 vfunc_14(void); // func_020150dc; IsEnabled? - virtual s32 vfunc_18(s32); // func_020150e4; Wraps vfunc_14 - virtual s32 vfunc_1c(void); // func_020150bc; OnConfirm? - virtual s32 vfunc_20(MenuItemState *); // func_020150a8; OnConfirm? void * - virtual s32 vfunc_24(Menu *, MenuItemState *); // func_020150c4; OnConfirm? Menu *, void * - virtual s32 vfunc_28(void); // func_02015074; OnBPress - virtual s32 vfunc_2c(MenuItemState *); // func_0201507c; OnBPress; wraps vfunc_28 - virtual s32 vfunc_30(Menu *, MenuItemState *); // func_02015090; OnBPress; wraps vfunc_2c - virtual s32 vfunc_34(void); // func_02015040; OnXPress - virtual s32 vfunc_38(MenuItemState *); // func_02015048; OnXPress - virtual s32 vfunc_3c(Menu *, MenuItemState *); // func_0201505c; OnXPress - virtual s32 vfunc_40(void); // func_0201500c - virtual s32 vfunc_44(MenuItemState *); // func_02015014 - virtual s32 vfunc_48(Menu *, MenuItemState *); // func_02015028 - virtual s32 vfunc_4c(void); // func_02014fd8; OnLPress - virtual s32 vfunc_50(MenuItemState *); // func_02014fe0; OnLPress - virtual s32 vfunc_54(Menu *, MenuItemState *); // func_02014ff4; OnLPress - virtual s32 vfunc_58(void); // func_02014fa4; OnRPress - virtual s32 vfunc_5c(MenuItemState *); // func_02014fac; OnRPress - virtual s32 vfunc_60(Menu *, MenuItemState *); // func_02014fc0; OnRPress - virtual s32 vfunc_64(void); // func_02014f70; maybe onexit - virtual s32 vfunc_68(MenuItemState *); // func_02014f78 - virtual s32 vfunc_6c(Menu *, MenuItemState *); // func_02014f8c - virtual void vfunc_70(void); // func_02014f40; OnHover? or OnEnter? - virtual void vfunc_74(MenuItemState *); // func_02014f44; OnHover? void * - virtual void vfunc_78(Menu *, MenuItemState *); // func_02014f58; OnHover? Menu *, void * - virtual void vfunc_7c(void); // func_02014f10 - virtual void vfunc_80(MenuItemState *); // func_02014f14 - virtual void vfunc_84(Menu *, MenuItemState *); // func_02014f28 - virtual void vfunc_88(void); // func_02014ee0 - virtual void vfunc_8c(MenuItemState *); // func_02014ee4 - virtual void vfunc_90(Menu *, MenuItemState *); // func_02014ef8 - virtual void vfunc_94(void); // func_02014eb0 - virtual void vfunc_98(MenuItemState *); // func_02014eb4 - virtual void vfunc_9c(Menu *, MenuItemState *); // func_02014ec8 - virtual void vfunc_a0(void); // func_02014e98 - virtual void vfunc_a4(MenuItemState *); // func_02014e9c + virtual s32 vfunc_14(void); // IsEnabled? + virtual s32 vfunc_18(s32); // Wraps vfunc_14 + virtual s32 vfunc_1c(void); // OnConfirm? + virtual s32 vfunc_20(MenuItemState *); // OnConfirm? void * + virtual s32 vfunc_24(Menu *, MenuItemState *); // OnConfirm? Menu *, void * + virtual s32 vfunc_28(void); // OnBPress + virtual s32 vfunc_2c(MenuItemState *); // wraps vfunc_28 + virtual s32 vfunc_30(Menu *, MenuItemState *); // wraps vfunc_2c + virtual s32 vfunc_34(void); // OnXPress + virtual s32 vfunc_38(MenuItemState *); // OnXPress + virtual s32 vfunc_3c(Menu *, MenuItemState *); // OnXPress + virtual s32 vfunc_40(void); + virtual s32 vfunc_44(MenuItemState *); + virtual s32 vfunc_48(Menu *, MenuItemState *); + virtual s32 vfunc_4c(void); // OnLPress + virtual s32 vfunc_50(MenuItemState *); // OnLPress + virtual s32 vfunc_54(Menu *, MenuItemState *); // OnLPress + virtual s32 vfunc_58(void); // OnRPress + virtual s32 vfunc_5c(MenuItemState *); // OnRPress + virtual s32 vfunc_60(Menu *, MenuItemState *); // OnRPress + virtual s32 vfunc_64(void); // maybe onexit + virtual s32 vfunc_68(MenuItemState *); + virtual s32 vfunc_6c(Menu *, MenuItemState *); + virtual void vfunc_70(void); // OnHover? or OnEnter? + virtual void vfunc_74(MenuItemState *); // OnHover? void * + virtual void vfunc_78(Menu *, MenuItemState *); // OnHover? Menu *, void * + virtual void vfunc_7c(void); + virtual void vfunc_80(MenuItemState *); + virtual void vfunc_84(Menu *, MenuItemState *); + virtual void vfunc_88(void); + virtual void vfunc_8c(MenuItemState *); + virtual void vfunc_90(Menu *, MenuItemState *); + virtual void vfunc_94(void); + virtual void vfunc_98(MenuItemState *); + virtual void vfunc_9c(Menu *, MenuItemState *); + virtual void vfunc_a0(void); + virtual void vfunc_a4(MenuItemState *); virtual void vfunc_a8(Menu *, MenuItemState *); // virtual s32 vfunc_ac(MenuItemState *, s32, s32, s32, s32); - virtual void vfunc_b0(Menu *, MenuItemState *); // func_02014e94 + virtual void vfunc_b0(Menu *, MenuItemState *); virtual void vfunc_b4(Menu *, MenuItemState *); virtual void vfunc_b8(Menu *, MenuItemState *); virtual void vfunc_bc(Menu *, MenuItemState *); virtual void vfunc_c0(Menu *, MenuItemState *); - virtual u32 vfunc_c4(void); // func_02014e8c + virtual u32 vfunc_c4(void); virtual u32 vfunc_c8(MenuItemState *); - virtual u32 vfunc_cc(void); // func_02014e84 - virtual u32 vfunc_d0(void); // func_02014e7c - virtual u32 vfunc_d4(void); // func_02014e74 + virtual u32 vfunc_cc(void); + virtual u32 vfunc_d0(void); + virtual u32 vfunc_d4(void); }; class MenuItemState @@ -360,17 +360,17 @@ class DialogItem : public MenuItem class DialogItemYes : public DialogItem { public: - /* 000 */ virtual char * vfunc_00(void); // func_020151e0 - /* 028 */ virtual s32 vfunc_28(void); // func_020151d8 + /* 000 */ virtual char * vfunc_00(void); + /* 028 */ virtual s32 vfunc_28(void); }; class DialogItemNo : public DialogItem { public: - /* 000 */ virtual char * vfunc_00(void); // func_0201518c - /* 014 */ virtual s32 vfunc_14(void); // func_02015184 - /* 01C */ virtual s32 vfunc_1c(void); // func_02015940 - /* 028 */ virtual s32 vfunc_28(void); // func_0201517c + /* 000 */ virtual char * vfunc_00(void); + /* 014 */ virtual s32 vfunc_14(void); + /* 01C */ virtual s32 vfunc_1c(void); + /* 028 */ virtual s32 vfunc_28(void); }; #endif // MENU_HPP \ No newline at end of file diff --git a/include/unknown_funcs.h b/include/unknown_funcs.h index 2f64135..4722f72 100644 --- a/include/unknown_funcs.h +++ b/include/unknown_funcs.h @@ -689,127 +689,127 @@ EC void func_020146a0(void); // EC ??? func_02014768 // EC ??? func_02014798 // EC ??? func_020147c0 -// EC ??? func_020147d4 +// EC ??? _ZN15LinkDialogBlink4LoopEv // EC ??? func_02014834 // EC ??? func_02014ad0 // EC ??? func_02014af4 EC BOOL func_02014b20(ProcPtr, s32); // EC ??? func_02014e10 -// EC ??? func_02014e74 -// EC ??? func_02014e7c -// EC ??? func_02014e84 -// EC ??? func_02014e8c -// EC ??? func_02014e94 -// EC ??? func_02014e98 -// EC ??? func_02014e9c -// EC ??? func_02014eb0 -// EC ??? func_02014eb4 -// EC ??? func_02014ec8 -// EC ??? func_02014ee0 -// EC ??? func_02014ee4 -// EC ??? func_02014ef8 -// EC ??? func_02014f10 -// EC ??? func_02014f14 -// EC ??? func_02014f28 -// EC ??? func_02014f40 -// EC ??? func_02014f44 -// EC ??? func_02014f58 -// EC ??? func_02014f70 -// EC ??? func_02014f78 -// EC ??? func_02014f8c -// EC ??? func_02014fa4 -// EC ??? func_02014fac -// EC ??? func_02014fc0 -// EC ??? func_02014fd8 -// EC ??? func_02014fe0 -// EC ??? func_02014ff4 -// EC ??? func_0201500c -// EC ??? func_02015014 -// EC ??? func_02015028 -// EC ??? func_02015040 -// EC ??? func_02015048 -// EC ??? func_0201505c -// EC ??? func_02015074 -// EC ??? func_0201507c -// EC ??? func_02015090 -// EC ??? func_020150a8 -// EC ??? func_020150bc -// EC ??? func_020150c4 -// EC ??? func_020150dc -// EC ??? func_020150e4 -// EC ??? func_020150f8 -// EC ??? func_02015100 -// EC ??? func_02015114 -// EC ??? func_0201511c -// EC ??? func_02015130 -// EC ??? func_02015138 -// EC ??? func_0201513c -// EC ??? func_02015144 -// EC ??? func_0201514c -// EC ??? func_02015160 -// EC ??? func_02015168 -// EC ??? func_0201517c -// EC ??? func_02015184 -// EC ??? func_0201518c -// EC ??? func_020151a0 -// EC ??? func_020151b8 -// EC ??? func_020151d0 -// EC ??? func_020151d8 -// EC ??? func_020151e0 -// EC ??? func_020151f4 -// EC ??? func_0201520c -// EC ??? func_02015210 -// EC ??? func_02015214 -// EC ??? func_02015218 -// EC ??? func_02015220 -// EC ??? func_02015228 -// EC ??? func_02015230 -// EC ??? func_02015238 -// EC ??? func_02015240 -// EC ??? func_02015248 -// EC ??? func_02015250 -// EC ??? func_02015268 -// EC ??? func_02015270 -// EC ??? func_02015288 -// EC ??? func_02015290 -// EC ??? func_020152a8 -// EC ??? func_020152b0 -// EC ??? func_020152c8 -// EC ??? func_020152d0 -// EC ??? func_020152e8 -// EC ??? func_020152f0 -// EC ??? func_02015308 -// EC ??? func_02015310 -// EC ??? func_02015328 -// EC ??? func_02015340 -// EC ??? func_02015348 -// EC ??? func_02015360 -// EC ??? func_02015368 -// EC ??? func_0201536c -// EC ??? func_020153c4 -// EC ??? func_020153cc -// EC ??? func_020154fc -// EC ??? func_02015500 -// EC ??? func_0201556c -// EC ??? func_020155d0 -// EC ??? func_02015628 -// EC ??? func_020156a4 -// EC ??? func_020156a8 -// EC ??? func_020156ac -// EC ??? func_020156b0 -// EC ??? func_020156b4 -// EC ??? func_020156e4 -// EC ??? func_02015818 -// EC ??? func_0201586c -// EC ??? func_020158b8 -// EC ??? func_02015900 -// EC ??? func_02015940 -// EC ??? func_02015948 -// EC ??? func_02015994 -// EC ??? func_020159e8 -// EC ??? func_02015a34 -// EC ??? func_02015a88 -// EC ??? func_02015a8c +// EC ??? _ZN8MenuItem8vfunc_d4Ev +// EC ??? _ZN8MenuItem8vfunc_d0Ev +// EC ??? _ZN8MenuItem8vfunc_ccEv +// EC ??? _ZN8MenuItem8vfunc_c4Ev +// EC ??? _ZN8MenuItem8vfunc_b0EP4MenuP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_a0Ev +// EC ??? _ZN8MenuItem8vfunc_a4EP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_94Ev +// EC ??? _ZN8MenuItem8vfunc_98EP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_9cEP4MenuP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_88Ev +// EC ??? _ZN8MenuItem8vfunc_8cEP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_90EP4MenuP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_7cEv +// EC ??? _ZN8MenuItem8vfunc_80EP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_84EP4MenuP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_70Ev +// EC ??? _ZN8MenuItem8vfunc_74EP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_78EP4MenuP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_64Ev +// EC ??? _ZN8MenuItem8vfunc_68EP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_6cEP4MenuP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_58Ev +// EC ??? _ZN8MenuItem8vfunc_5cEP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_60EP4MenuP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_4cEv +// EC ??? _ZN8MenuItem8vfunc_50EP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_54EP4MenuP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_40Ev +// EC ??? _ZN8MenuItem8vfunc_44EP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_48EP4MenuP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_34Ev +// EC ??? _ZN8MenuItem8vfunc_38EP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_3cEP4MenuP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_28Ev +// EC ??? _ZN8MenuItem8vfunc_2cEP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_30EP4MenuP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_20EP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_1cEv +// EC ??? _ZN8MenuItem8vfunc_24EP4MenuP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_14Ev +// EC ??? _ZN8MenuItem8vfunc_18El +// EC ??? _ZN8MenuItem8vfunc_08Ev +// EC ??? _ZN8MenuItem8vfunc_0cEP13MenuItemState +// EC ??? _ZN8MenuItem8vfunc_00Ev +// EC ??? _ZN8MenuItem8vfunc_04EP13MenuItemState +// EC ??? _ZN18LinkDialogItemNone8vfunc_1cEv +// EC ??? _ZN18LinkDialogItemNone8vfunc_a8EP4MenuP13MenuItemState +// EC ??? _ZN18LinkDialogItemNone8vfunc_acEP13MenuItemStatellll +// EC ??? _ZN16LinkDialogItemOk8vfunc_1cEv +// EC ??? _ZN16LinkDialogItemOk8vfunc_00Ev +// EC ??? _ZN18LinkDialogItemNext8vfunc_1cEv +// EC ??? _ZN18LinkDialogItemNext8vfunc_00Ev +// EC ??? _ZN12DialogItemNo8vfunc_28Ev +// EC ??? _ZN12DialogItemNo8vfunc_14Ev +// EC ??? _ZN12DialogItemNo8vfunc_00Ev +// EC ??? _ZN17LinkDialogItemNoF8vfunc_1cEv +// EC ??? _ZN16LinkDialogItemNo8vfunc_1cEv +// EC ??? _ZN16LinkDialogItemNo8vfunc_14Ev +// EC ??? _ZN13DialogItemYes8vfunc_28Ev +// EC ??? _ZN13DialogItemYes8vfunc_00Ev +// EC ??? _ZN17LinkDialogItemYes8vfunc_1cEv +// EC ??? _ZN4Menu8vfunc_e4Ev +// EC ??? _ZN4Menu8vfunc_e0Ev +// EC ??? _ZN4Menu8vfunc_b8El +// EC ??? _ZN4Menu8vfunc_acEv +// EC ??? _ZN4Menu8vfunc_a8Ev +// EC ??? _ZN4Menu8vfunc_a4Ev +// EC ??? _ZN4Menu8vfunc_a0Ev +// EC ??? _ZN4Menu8vfunc_9cEv +// EC ??? _ZN4Menu8vfunc_98Ell +// EC ??? _ZN4Menu8vfunc_94Ell +// EC ??? _ZN4Menu8vfunc_60Ev +// EC ??? _ZN4Menu8vfunc_58El +// EC ??? _ZN4Menu8vfunc_5cEP13MenuItemStatel +// EC ??? _ZN4Menu8vfunc_50El +// EC ??? _ZN4Menu8vfunc_54EP13MenuItemStatel +// EC ??? _ZN4Menu8vfunc_48El +// EC ??? _ZN4Menu8vfunc_4cEP13MenuItemStatel +// EC ??? _ZN4Menu8vfunc_40El +// EC ??? _ZN4Menu8vfunc_44EP13MenuItemStatel +// EC ??? _ZN4Menu8vfunc_38El +// EC ??? _ZN4Menu8vfunc_3cEP13MenuItemStatel +// EC ??? _ZN4Menu8vfunc_30El +// EC ??? _ZN4Menu8vfunc_34EP13MenuItemStatel +// EC ??? _ZN4Menu8vfunc_2cEP13MenuItemStatel +// EC ??? _ZN4Menu8vfunc_28El +// EC ??? _ZN4Menu8vfunc_24EP13MenuItemStatel +// EC ??? _ZN4Menu8vfunc_20El +// EC ??? _ZN4Menu8vfunc_04Ev +// EC ??? _ZN17_LinkDialogCommon8vfunc_20El +// EC ??? _ZN17_LinkDialogCommon8vfunc_28El +// EC ??? _ZN17_LinkDialogCommon8vfunc_00Ev +// EC ??? _ZN18_LinkDialogConfirm9vfunc_110Ev +// EC ??? _ZN15_LinkDialogNoneD0Ev +// EC ??? _ZN15_LinkDialogNoneD1Ev +// EC ??? _ZN15_LinkDialogNone9vfunc_11cEv +// EC ??? _ZN15_LinkDialogNone8vfunc_10Ev +// EC ??? _ZN15_LinkDialogNone9vfunc_110Ev +// EC ??? _ZN15_LinkDialogNone9vfunc_108Ev +// EC ??? _ZN15_LinkDialogNone9vfunc_100Ev +// EC ??? _ZN15_LinkDialogNone8vfunc_fcEv +// EC ??? _ZN16_LinkDialogYesNo8vfunc_28El +// EC ??? _ZN16_LinkDialogYesNo8vfunc_00Ev +// EC ??? _ZN17_LinkDialogCommonD0Ev +// EC ??? _ZN17_LinkDialogCommonD1Ev +// EC ??? _ZN15LinkDialogBlinkD0Ev +// EC ??? _ZN15LinkDialogBlinkD1Ev +// EC ??? _ZN12DialogItemNo8vfunc_1cEv +// EC ??? _ZN16_LinkDialogYesNoD1Ev +// EC ??? _ZN16_LinkDialogYesNoD0Ev +// EC ??? _ZN18_LinkDialogConfirmD1Ev +// EC ??? _ZN18_LinkDialogConfirmD0Ev +// EC ??? _ZN15LinkErrorDialogD1Ev +// EC ??? _ZN15LinkErrorDialogD0Ev // EC ??? func_02015aa0 // EC ??? func_02015ae4 // EC ??? func_02015b08 diff --git a/src/link_dialog.cpp b/src/link_dialog.cpp index df4b527..43631d5 100644 --- a/src/link_dialog.cpp +++ b/src/link_dialog.cpp @@ -58,56 +58,54 @@ class LinkDialogBlink : public ProcEx this->unk_38 = func_0202b70c(); } - // func_020158b8 - // func_02015900 virtual ~LinkDialogBlink() { func_01ff9998(this->unk_38, this->unk_3c * 0x20, 0x20); gHeap.Free(this->unk_38); } - virtual void Loop(void); // func_020147d4 + virtual void Loop(void); }; class LinkDialogItemNone : public DialogItem { public: - /* 01C */ virtual s32 vfunc_1c(void); // func_02015130 - /* 0A8 */ virtual void vfunc_a8(Menu *, MenuItemState *); // func_02015138 - /* 0AC */ virtual s32 vfunc_ac(MenuItemState *, s32, s32, s32, s32); // func_0201513c + /* 01C */ virtual s32 vfunc_1c(void); + /* 0A8 */ virtual void vfunc_a8(Menu *, MenuItemState *); + /* 0AC */ virtual s32 vfunc_ac(MenuItemState *, s32, s32, s32, s32); }; class LinkDialogItemOk : public DialogItem { public: - /* 000 */ virtual char * vfunc_00(void); // func_0201514c - /* 01C */ virtual s32 vfunc_1c(void); // func_02015144 + /* 000 */ virtual char * vfunc_00(void); + /* 01C */ virtual s32 vfunc_1c(void); }; class LinkDialogItemNext : public DialogItem { public: - /* 000 */ virtual char * vfunc_00(void); // func_02015160 - /* 01C */ virtual s32 vfunc_1c(void); // func_02015168 + /* 000 */ virtual char * vfunc_00(void); + /* 01C */ virtual s32 vfunc_1c(void); }; class LinkDialogItemNoF : public DialogItemNo { public: - /* 01C */ virtual s32 vfunc_1c(void); // func_020151a0 + /* 01C */ virtual s32 vfunc_1c(void); }; class LinkDialogItemNo : public DialogItemNo { public: - /* 014 */ virtual s32 vfunc_14(void); // func_020151d0 - /* 01C */ virtual s32 vfunc_1c(void); // func_020151b8 + /* 014 */ virtual s32 vfunc_14(void); + /* 01C */ virtual s32 vfunc_1c(void); }; class LinkDialogItemYes : public DialogItemYes { public: - /* 01C */ virtual s32 vfunc_1c(void); // func_020151f4 + /* 01C */ virtual s32 vfunc_1c(void); }; class _LinkDialogCommon : public Dialog @@ -118,12 +116,10 @@ class _LinkDialogCommon : public Dialog data_020efc84.unk_00 = 0; } - /* 000 */ virtual void vfunc_00(void); // func_020153cc - /* 020 */ virtual s32 vfunc_20(s32); // func_0201536c - /* 028 */ virtual s32 vfunc_28(s32); // func_020153c4 + /* 000 */ virtual void vfunc_00(void); + /* 020 */ virtual s32 vfunc_20(s32); + /* 028 */ virtual s32 vfunc_28(s32); - // func_02015818 - // func_0201586c virtual ~_LinkDialogCommon() { data_020efc84.unk_18 = NULL; @@ -133,11 +129,9 @@ class _LinkDialogCommon : public Dialog class _LinkDialogYesNo : public _LinkDialogCommon { public: - /* 000 */ virtual void vfunc_00(void); // func_020156e4 - /* 028 */ virtual s32 vfunc_28(s32); // func_020156b4 + /* 000 */ virtual void vfunc_00(void); + /* 028 */ virtual s32 vfunc_28(s32); - // func_02015948 - // func_02015994 // ~_LinkDialogYesNo(); }; @@ -148,14 +142,12 @@ class _LinkDialogNone : public _LinkDialogCommon s16 unk_5a; /* 010 */ virtual void vfunc_10(void); - /* 0FC */ virtual void vfunc_fc(void); // func_020156b0 - /* 100 */ virtual void vfunc_100(void); // func_020156ac - /* 108 */ virtual void vfunc_108(void); // func_020156a8 - /* 110 */ virtual void vfunc_110(void); // func_020156a4 + /* 0FC */ virtual void vfunc_fc(void); + /* 100 */ virtual void vfunc_100(void); + /* 108 */ virtual void vfunc_108(void); + /* 110 */ virtual void vfunc_110(void); /* 11C */ virtual void vfunc_11c(void); - // func_0201556c - // func_02015500 virtual ~_LinkDialogNone() { Proc_EndEach(data_020caccc); @@ -165,10 +157,8 @@ class _LinkDialogNone : public _LinkDialogCommon class _LinkDialogConfirm : public _LinkDialogCommon { public: - /* 110 */ virtual void vfunc_110(void); // func_020154fc + /* 110 */ virtual void vfunc_110(void); - // func_020159e8 - // func_02015a34 // ~_LinkDialogConfirm(); }; @@ -182,8 +172,6 @@ class LinkErrorDialog : public ProcEx this->unk_38 = str; } - // func_02015a88 - // func_02015a8c virtual ~LinkErrorDialog() { } @@ -197,7 +185,6 @@ EC void func_020147c0(LinkDialogBlink * proc) EC void func_01ff9a8c(u8 *, s32, s32); -// func_020147d4 void LinkDialogBlink::Loop(void) { s32 tmp; @@ -339,551 +326,463 @@ EC void func_02014af4(void) return; } -// func_02014e74 u32 MenuItem::vfunc_d4(void) { return 1; } -// func_02014e7c u32 MenuItem::vfunc_d0(void) { return 0; } -// func_02014e84 u32 MenuItem::vfunc_cc(void) { return 2; } -// func_02014e8c u32 MenuItem::vfunc_c4(void) { return -1; } -// func_02014e94 void MenuItem::vfunc_b0(Menu * menu, MenuItemState * menuItemState) { return; } -// func_02014e98 void MenuItem::vfunc_a0(void) { return; } -// func_02014e9c void MenuItem::vfunc_a4(MenuItemState * menuItemState) { this->vfunc_a0(); return; } -// func_02014eb0 void MenuItem::vfunc_94(void) { return; } -// func_02014eb4 void MenuItem::vfunc_98(MenuItemState * menuItemState) { this->vfunc_94(); return; } -// func_02014ec8 void MenuItem::vfunc_9c(Menu * menu, MenuItemState * menuItemState) { this->vfunc_98(menuItemState); return; } -// func_02014ee0 void MenuItem::vfunc_88(void) { return; } -// func_02014ee4 void MenuItem::vfunc_8c(MenuItemState * menuItemState) { this->vfunc_88(); return; } -// func_02014ef8 void MenuItem::vfunc_90(Menu * menu, MenuItemState * menuItemState) { this->vfunc_8c(menuItemState); return; } -// func_02014f10 void MenuItem::vfunc_7c(void) { return; } -// func_02014f14 void MenuItem::vfunc_80(MenuItemState * menuItemState) { this->vfunc_7c(); return; } -// func_02014f28 void MenuItem::vfunc_84(Menu * menu, MenuItemState * menuItemState) { this->vfunc_80(menuItemState); return; } -// func_02014f40 void MenuItem::vfunc_70(void) { return; } -// func_02014f44 void MenuItem::vfunc_74(MenuItemState * menuItemState) { this->vfunc_70(); return; } -// func_02014f58 void MenuItem::vfunc_78(Menu * menu, MenuItemState * menuItemState) { this->vfunc_74(menuItemState); return; } -// func_02014f70 s32 MenuItem::vfunc_64(void) { return 0; } -// func_02014f78 s32 MenuItem::vfunc_68(MenuItemState * menuItemState) { return this->vfunc_64(); } -// func_02014f8c s32 MenuItem::vfunc_6c(Menu * menu, MenuItemState * menuItemState) { return this->vfunc_68(menuItemState); } -// func_02014fa4 s32 MenuItem::vfunc_58(void) { return 0x400; } -// func_02014fac s32 MenuItem::vfunc_5c(MenuItemState * menuItemState) { return this->vfunc_58(); } -// func_02014fc0 s32 MenuItem::vfunc_60(Menu * menu, MenuItemState * menuItemState) { return this->vfunc_5c(menuItemState); } -// func_02014fd8 s32 MenuItem::vfunc_4c(void) { return 0; } -// func_02014fe0 s32 MenuItem::vfunc_50(MenuItemState * menuItemState) { return this->vfunc_4c(); } -// func_02014ff4 s32 MenuItem::vfunc_54(Menu * menu, MenuItemState * menuItemState) { return this->vfunc_50(menuItemState); } -// func_0201500c s32 MenuItem::vfunc_40(void) { return 0; } -// func_02015014 s32 MenuItem::vfunc_44(MenuItemState * menuItemState) { return this->vfunc_40(); } -// func_02015028 s32 MenuItem::vfunc_48(Menu * menu, MenuItemState * menuItemState) { return this->vfunc_44(menuItemState); } -// func_02015040 s32 MenuItem::vfunc_34(void) { return 0; } -// func_02015048 s32 MenuItem::vfunc_38(MenuItemState * menuItemState) { return this->vfunc_34(); } -// func_0201505c s32 MenuItem::vfunc_3c(Menu * menu, MenuItemState * menuItemState) { return this->vfunc_38(menuItemState); } -// func_02015074 s32 MenuItem::vfunc_28(void) { return 0x81; } -// func_0201507c s32 MenuItem::vfunc_2c(MenuItemState * menuItemState) { return this->vfunc_28(); } -// func_02015090 s32 MenuItem::vfunc_30(Menu * menu, MenuItemState * menuItemState) { return this->vfunc_2c(menuItemState); } -// func_020150bc s32 MenuItem::vfunc_1c(void) { return 0; } -// func_020150a8 s32 MenuItem::vfunc_20(MenuItemState * menuItemState) { return this->vfunc_1c(); } -// func_020150c4 s32 MenuItem::vfunc_24(Menu * menu, MenuItemState * menuItemState) { return this->vfunc_20(menuItemState); } -// func_020150dc s32 MenuItem::vfunc_14(void) { return 0; } -// func_020150e4 s32 MenuItem::vfunc_18(s32 unused) { return this->vfunc_14(); } -// func_020150f8 s32 MenuItem::vfunc_08(void) { return 0; } -// func_02015100 s32 MenuItem::vfunc_0c(MenuItemState * menuItemState) { return this->vfunc_08(); } -// func_02015114 char * MenuItem::vfunc_00(void) { return 0; } -// func_0201511c char * MenuItem::vfunc_04(MenuItemState * menuItemState) { return this->vfunc_00(); } -// func_02015130 s32 LinkDialogItemNone::vfunc_1c(void) { return 0; } -// func_02015138 void LinkDialogItemNone::vfunc_a8(Menu * menu, MenuItemState * menuItemState) { return; } -// func_0201513c s32 LinkDialogItemNone::vfunc_ac(MenuItemState * menuItemState, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { return 0; } -// func_02015144 s32 LinkDialogItemOk::vfunc_1c(void) { return 0x41; } -// func_0201514c char * LinkDialogItemOk::vfunc_00(void) { return func_02039e10("M_OK"); } -// func_02015160 s32 LinkDialogItemNext::vfunc_1c(void) { return 0x41; } -// func_02015168 char * LinkDialogItemNext::vfunc_00(void) { return func_02039e10("M_NEXT"); } -// func_0201517c s32 DialogItemNo::vfunc_28(void) { return 0; } -// func_02015184 s32 DialogItemNo::vfunc_14(void) { return 8; } -// func_0201518c char * DialogItemNo::vfunc_00(void) { return func_02039e10("M_いいえ"); } -// func_020151a0 s32 LinkDialogItemNoF::vfunc_1c(void) { data_020efc84.unk_30 = 0; return 0x81; } -// func_020151b8 s32 LinkDialogItemNo::vfunc_1c(void) { data_020efc84.unk_30 = 0; return 0x81; } -// func_020151d0 + s32 LinkDialogItemNo::vfunc_14(void) { return 0; } -// func_020151d8 s32 DialogItemYes::vfunc_28(void) { return 0; } -// func_020151e0 char * DialogItemYes::vfunc_00(void) { return func_02039e10("M_はい"); } -// func_020151f4 s32 LinkDialogItemYes::vfunc_1c(void) { data_020efc84.unk_30 = 1; return 0x41; } -// func_0201520c void Menu::vfunc_e4(void) { return; } -// func_02015210 void Menu::vfunc_e0(void) { return; } -// func_02015214 void Menu::vfunc_b8(s32 arg0) { return; } -// func_02015218 s32 Menu::vfunc_ac(void) { return 0; } -// func_02015220 BOOL Menu::vfunc_a8(void) { return FALSE; } -// func_02015228 BOOL Menu::vfunc_a4(void) { return FALSE; } -// func_02015230 BOOL Menu::vfunc_a0(void) { return FALSE; } -// func_02015238 s32 Menu::vfunc_9c(void) { return 0; } -// func_02015240 s32 Menu::vfunc_98(s32 arg0, s32 arg1) { return 0; } -// func_02015248 + s32 Menu::vfunc_94(s32 arg0, s32 arg1) { return 0; } -// func_02015250 s32 Menu::vfunc_60(void) { return this->vfunc_7c() | 0x2000; } -// func_02015268 s32 Menu::vfunc_58(s32 arg0) { return arg0; } -// func_02015270 s32 Menu::vfunc_5c(MenuItemState * menuItemState, s32 arg1) { return this->vfunc_58(arg1); } -// func_02015288 s32 Menu::vfunc_50(s32 arg0) { return arg0; } -// func_02015290 s32 Menu::vfunc_54(MenuItemState * menuItemState, s32 arg1) { return this->vfunc_50(arg1); } -// func_020152a8 s32 Menu::vfunc_48(s32 arg0) { return arg0; } -// func_020152b0 s32 Menu::vfunc_4c(MenuItemState * menuItemState, s32 arg1) { return this->vfunc_48(arg1); } -// func_020152c8 s32 Menu::vfunc_40(s32 arg0) { return arg0; } -// func_020152d0 s32 Menu::vfunc_44(MenuItemState * menuItemState, s32 arg1) { return this->vfunc_40(arg1); } -// func_020152e8 s32 Menu::vfunc_38(s32 arg0) { return arg0; } -// func_020152f0 s32 Menu::vfunc_3c(MenuItemState * menuItemState, s32 arg1) { return this->vfunc_38(arg1); } -// func_02015308 s32 Menu::vfunc_30(s32 arg0) { return arg0; } -// func_02015310 s32 Menu::vfunc_34(MenuItemState * menuItemState, s32 arg1) { return this->vfunc_30(arg1); } -// func_02015328 s32 Menu::vfunc_2c(MenuItemState * menuItemState, s32 arg1) { return this->vfunc_28(arg1); } -// func_02015340 s32 Menu::vfunc_28(s32 arg0) { return arg0; } -// func_02015348 s32 Menu::vfunc_24(MenuItemState * menuItemState, s32 arg1) { return this->vfunc_20(arg1); } -// func_02015360 s32 Menu::vfunc_20(s32 arg0) { return arg0; } -// func_02015368 void Menu::vfunc_04(void) { return; @@ -1051,7 +950,6 @@ extern struct UnkStruct_02196f20 * data_02196f20; extern struct TouchState * gTouchSt; -// func_0201536c s32 _LinkDialogCommon::vfunc_20(s32 param_2) { if ((gMapStateManager != NULL) && (gMapStateManager->unk_14->unk_24) == 0) @@ -1062,13 +960,11 @@ s32 _LinkDialogCommon::vfunc_20(s32 param_2) return param_2; } -// func_020153c4 s32 _LinkDialogCommon::vfunc_28(s32 arg0) { return 0; } -// func_020153cc void _LinkDialogCommon::vfunc_00(void) { struct VmMap_Common * iVar1; @@ -1133,13 +1029,11 @@ void _LinkDialogCommon::vfunc_00(void) return; } -// func_020154fc void _LinkDialogConfirm::vfunc_110(void) { return; } -// func_020155d0 void _LinkDialogNone::vfunc_11c(void) { LinkDialogBlink * puVar1; @@ -1165,7 +1059,6 @@ extern struct UnkStruct_021970c4 * data_021970cc; EC s32 func_020290f4(struct UnkStruct_021970c4 *, s32); EC s32 func_02028e7c(struct UnkStruct_021970c4 *, s32, s32); -// func_02015628 void _LinkDialogNone::vfunc_10(void) { u32 iVar1; @@ -1191,31 +1084,26 @@ void _LinkDialogNone::vfunc_10(void) return; } -// func_020156a4 void _LinkDialogNone::vfunc_110(void) { return; } -// func_020156a8 void _LinkDialogNone::vfunc_108(void) { return; } -// func_020156ac void _LinkDialogNone::vfunc_100(void) { return; } -// func_020156b0 void _LinkDialogNone::vfunc_fc(void) { return; } -// func_020156b4 s32 _LinkDialogYesNo::vfunc_28(s32 arg0) { if (arg0 == 0) @@ -1226,7 +1114,6 @@ s32 _LinkDialogYesNo::vfunc_28(s32 arg0) return arg0; } -// func_020156e4 void _LinkDialogYesNo::vfunc_00(void) { struct VmMap_Common * iVar1; @@ -1292,7 +1179,6 @@ void _LinkDialogYesNo::vfunc_00(void) return; } -// func_02015940 s32 DialogItemNo::vfunc_1c(void) { return 0x81; From 6d73d9d520626863088760a2a05f0df5a6078d7a Mon Sep 17 00:00:00 2001 From: Eebit Date: Wed, 4 Feb 2026 20:52:29 -0500 Subject: [PATCH 3/5] (link_dialog) Work on sorting out vtable ordering --- include/link_dialog.hpp | 21 + include/menu.hpp | 512 +++++++++++++++--- src/link_dialog.cpp | 1142 ++++++++++++--------------------------- 3 files changed, 787 insertions(+), 888 deletions(-) create mode 100644 include/link_dialog.hpp diff --git a/include/link_dialog.hpp b/include/link_dialog.hpp new file mode 100644 index 0000000..632c2f7 --- /dev/null +++ b/include/link_dialog.hpp @@ -0,0 +1,21 @@ +#ifndef LINK_DIALOG_HPP +#define LINK_DIALOG_HPP + +#include "proc_ex.hpp" + +class LinkErrorDialog : public ProcEx +{ +public: + char * unk_38; + + LinkErrorDialog(char * str) + { + this->unk_38 = str; + } + + virtual ~LinkErrorDialog() + { + } +}; + +#endif // LINK_DIALOG_HPP \ No newline at end of file diff --git a/include/menu.hpp b/include/menu.hpp index 49b4e14..3680bd1 100644 --- a/include/menu.hpp +++ b/include/menu.hpp @@ -6,6 +6,8 @@ #include "heap.hpp" #include "proc_ex.hpp" +EC char * func_02039e10(char *); + enum { MENU_COLOR_WHITE = 1, @@ -74,30 +76,103 @@ class Menu Menu(); /* 000 */ virtual void vfunc_00(void); // func_0202806c - /* 004 */ virtual void vfunc_04(void); + + /* 004 */ virtual void vfunc_04(void) + { + return; + } + /* 008 */ virtual void vfunc_08(void); /* 00C */ virtual void vfunc_0c(void); /* 010 */ virtual void vfunc_10(void); /* 014 */ virtual void vfunc_14(void); /* 018 */ virtual void vfunc_18(void); /* 01C */ virtual void vfunc_1c(void); - /* 020 */ virtual s32 vfunc_20(s32); - /* 024 */ virtual s32 vfunc_24(MenuItemState *, s32); - /* 028 */ virtual s32 vfunc_28(s32); - /* 02C */ virtual s32 vfunc_2c(MenuItemState *, s32); - /* 030 */ virtual s32 vfunc_30(s32); - /* 034 */ virtual s32 vfunc_34(MenuItemState *, s32); - /* 038 */ virtual s32 vfunc_38(s32); - /* 03C */ virtual s32 vfunc_3c(MenuItemState *, s32); - /* 040 */ virtual s32 vfunc_40(s32); - /* 044 */ virtual s32 vfunc_44(MenuItemState *, s32); - /* 048 */ virtual s32 vfunc_48(s32); - /* 04C */ virtual s32 vfunc_4c(MenuItemState *, s32); - /* 050 */ virtual s32 vfunc_50(s32); - /* 054 */ virtual s32 vfunc_54(MenuItemState *, s32); - /* 058 */ virtual s32 vfunc_58(s32); - /* 05C */ virtual s32 vfunc_5c(MenuItemState *, s32); - /* 060 */ virtual s32 vfunc_60(void); + /* 020 */ virtual s32 vfunc_20(s32 arg0) + { + return arg0; + } + + /* 024 */ virtual s32 vfunc_24(MenuItemState * menuItemState, s32 arg1) + { + return this->vfunc_20(arg1); + } + + /* 028 */ virtual s32 vfunc_28(s32 arg0) + { + return arg0; + } + + /* 02C */ virtual s32 vfunc_2c(MenuItemState * menuItemState, s32 arg1) + { + return this->vfunc_28(arg1); + } + + /* 030 */ virtual s32 vfunc_30(s32 arg0) + { + return arg0; + } + + /* 034 */ virtual s32 vfunc_34(MenuItemState * menuItemState, s32 arg1) + { + return this->vfunc_30(arg1); + } + + /* 038 */ virtual s32 vfunc_38(s32 arg0) + { + return arg0; + } + + /* 03C */ virtual s32 vfunc_3c(MenuItemState * menuItemState, s32 arg1) + { + return this->vfunc_38(arg1); + } + + /* 040 */ virtual s32 vfunc_40(s32 arg0) + { + return arg0; + } + + /* 044 */ virtual s32 vfunc_44(MenuItemState * menuItemState, s32 arg1) + { + return this->vfunc_40(arg1); + } + + /* 048 */ virtual s32 vfunc_48(s32 arg0) + { + return arg0; + } + + /* 04C */ virtual s32 vfunc_4c(MenuItemState * menuItemState, s32 arg1) + { + return this->vfunc_48(arg1); + } + + /* 050 */ virtual s32 vfunc_50(s32 arg0) + { + return arg0; + } + + /* 054 */ virtual s32 vfunc_54(MenuItemState * menuItemState, s32 arg1) + { + return this->vfunc_50(arg1); + } + + /* 058 */ virtual s32 vfunc_58(s32 arg0) + { + return arg0; + } + + /* 05C */ virtual s32 vfunc_5c(MenuItemState * menuItemState, s32 arg1) + { + return this->vfunc_58(arg1); + } + + /* 060 */ virtual s32 vfunc_60(void) + { + return this->vfunc_7c() | 0x2000; + } + /* 064 */ virtual void vfunc_64(void); /* 068 */ virtual void vfunc_68(s32); /* 06C */ virtual void vfunc_6c(s32); @@ -110,16 +185,50 @@ class Menu /* 088 */ virtual s32 vfunc_88(void); /* 08C */ virtual s32 vfunc_8c(void); /* 090 */ virtual s32 vfunc_90(void); - /* 094 */ virtual s32 vfunc_94(s32, s32); - /* 098 */ virtual s32 vfunc_98(s32, s32); - /* 09C */ virtual BOOL vfunc_9c(void); - /* 0A0 */ virtual BOOL vfunc_a0(void); - /* 0A4 */ virtual BOOL vfunc_a4(void); - /* 0A8 */ virtual BOOL vfunc_a8(void); - /* 0AC */ virtual s32 vfunc_ac(void); + + /* 094 */ virtual s32 vfunc_94(s32 arg0, s32 arg1) + { + return 0; + } + + /* 098 */ virtual s32 vfunc_98(s32 arg0, s32 arg1) + { + return 0; + } + + /* 09C */ virtual s32 vfunc_9c(void) + { + return 0; + } + + /* 0A0 */ virtual BOOL vfunc_a0(void) + { + return FALSE; + } + + /* 0A4 */ virtual BOOL vfunc_a4(void) + { + return FALSE; + } + + /* 0A8 */ virtual BOOL vfunc_a8(void) + { + return FALSE; + } + + /* 0AC */ virtual s32 vfunc_ac(void) + { + return 0; + } + /* 0B0 */ virtual BOOL vfunc_b0(MenuItemState *, s32, s32); /* 0B4 */ virtual BOOL vfunc_b4(void); - /* 0B8 */ virtual void vfunc_b8(s32); + + /* 0B8 */ virtual void vfunc_b8(s32 arg0) + { + return; + } + /* 0BC */ virtual void vfunc_bc(void); /* 0C0 */ virtual void vfunc_c0(void); /* 0C4 */ virtual void vfunc_c4(void); @@ -129,8 +238,17 @@ class Menu /* 0D4 */ virtual s32 vfunc_d4(s32); /* 0D8 */ virtual void vfunc_d8(void); /* 0DC */ virtual void vfunc_dc(void); - /* 0E0 */ virtual void vfunc_e0(void); - /* 0E4 */ virtual void vfunc_e4(void); + + /* 0E0 */ virtual void vfunc_e0(void) + { + return; + } + + /* 0E4 */ virtual void vfunc_e4(void) + { + return; + } + /* 0E8 */ virtual void vfunc_e8(void); /* 0EC */ virtual void vfunc_ec(void); /* 0F0 */ virtual void vfunc_f0(s32, s32, s32, s32); @@ -177,60 +295,256 @@ class MenuResult class MenuItem : public MenuState, public MenuResult { public: - virtual char * vfunc_00(void); // GetLabelText? - virtual char * vfunc_04(MenuItemState *); // wraps vfunc_00 - virtual s32 vfunc_08(void); - virtual s32 vfunc_0c(MenuItemState *); // wraps vfunc_08 - virtual s32 vfunc_10(MenuItemState *); // GetLabelColor? (1 = White, 2 = Grey, 3 = Cyan, 4 = Gold, 5 = Green) - virtual s32 vfunc_14(void); // IsEnabled? - virtual s32 vfunc_18(s32); // Wraps vfunc_14 - virtual s32 vfunc_1c(void); // OnConfirm? - virtual s32 vfunc_20(MenuItemState *); // OnConfirm? void * - virtual s32 vfunc_24(Menu *, MenuItemState *); // OnConfirm? Menu *, void * - virtual s32 vfunc_28(void); // OnBPress - virtual s32 vfunc_2c(MenuItemState *); // wraps vfunc_28 - virtual s32 vfunc_30(Menu *, MenuItemState *); // wraps vfunc_2c - virtual s32 vfunc_34(void); // OnXPress - virtual s32 vfunc_38(MenuItemState *); // OnXPress - virtual s32 vfunc_3c(Menu *, MenuItemState *); // OnXPress - virtual s32 vfunc_40(void); - virtual s32 vfunc_44(MenuItemState *); - virtual s32 vfunc_48(Menu *, MenuItemState *); - virtual s32 vfunc_4c(void); // OnLPress - virtual s32 vfunc_50(MenuItemState *); // OnLPress - virtual s32 vfunc_54(Menu *, MenuItemState *); // OnLPress - virtual s32 vfunc_58(void); // OnRPress - virtual s32 vfunc_5c(MenuItemState *); // OnRPress - virtual s32 vfunc_60(Menu *, MenuItemState *); // OnRPress - virtual s32 vfunc_64(void); // maybe onexit - virtual s32 vfunc_68(MenuItemState *); - virtual s32 vfunc_6c(Menu *, MenuItemState *); - virtual void vfunc_70(void); // OnHover? or OnEnter? - virtual void vfunc_74(MenuItemState *); // OnHover? void * - virtual void vfunc_78(Menu *, MenuItemState *); // OnHover? Menu *, void * - virtual void vfunc_7c(void); - virtual void vfunc_80(MenuItemState *); - virtual void vfunc_84(Menu *, MenuItemState *); - virtual void vfunc_88(void); - virtual void vfunc_8c(MenuItemState *); - virtual void vfunc_90(Menu *, MenuItemState *); - virtual void vfunc_94(void); - virtual void vfunc_98(MenuItemState *); - virtual void vfunc_9c(Menu *, MenuItemState *); - virtual void vfunc_a0(void); - virtual void vfunc_a4(MenuItemState *); - virtual void vfunc_a8(Menu *, MenuItemState *); // - virtual s32 vfunc_ac(MenuItemState *, s32, s32, s32, s32); - virtual void vfunc_b0(Menu *, MenuItemState *); - virtual void vfunc_b4(Menu *, MenuItemState *); - virtual void vfunc_b8(Menu *, MenuItemState *); - virtual void vfunc_bc(Menu *, MenuItemState *); - virtual void vfunc_c0(Menu *, MenuItemState *); - virtual u32 vfunc_c4(void); - virtual u32 vfunc_c8(MenuItemState *); - virtual u32 vfunc_cc(void); - virtual u32 vfunc_d0(void); - virtual u32 vfunc_d4(void); + /* 00 */ virtual char * vfunc_00(void) + { + return NULL; + } + + /* 04 */ virtual char * vfunc_04(MenuItemState * menuItemState) + { + return this->vfunc_00(); + } + + /* 08 */ virtual s32 vfunc_08(void) + { + return 0; + } + + /* 0C */ virtual s32 vfunc_0c(MenuItemState * menuItemState) + { + return this->vfunc_08(); + } + + /* 10 */ virtual s32 vfunc_10(MenuItemState *); // GetLabelColor + // (1 = White, 2 = Grey, 3 = Cyan, 4 = Gold, 5 = Green) + + /* 14 */ virtual s32 vfunc_14(void) + { + return 0; + } + + /* 18 */ virtual s32 vfunc_18(s32 unused) + { + return this->vfunc_14(); + } + + /* 1C */ virtual s32 vfunc_1c(void) + { + return 0; + } + + /* 20 */ virtual s32 vfunc_20(MenuItemState * menuItemState) + { + return this->vfunc_1c(); + } + + /* 24 */ virtual s32 vfunc_24(Menu * menu, MenuItemState * menuItemState) + { + return this->vfunc_20(menuItemState); + } + + /* 28 */ virtual s32 vfunc_28(void) + { + return 0x81; + } + + /* 2C */ virtual s32 vfunc_2c(MenuItemState * menuItemState) + { + return this->vfunc_28(); + } + + /* 30 */ virtual s32 vfunc_30(Menu * menu, MenuItemState * menuItemState) + { + return this->vfunc_2c(menuItemState); + } + + /* 34 */ virtual s32 vfunc_34(void) + { + return 0; + } + + /* 38 */ virtual s32 vfunc_38(MenuItemState * menuItemState) + { + return this->vfunc_34(); + } + + /* 3C */ virtual s32 vfunc_3c(Menu * menu, MenuItemState * menuItemState) + { + return this->vfunc_38(menuItemState); + } + + /* 40 */ virtual s32 vfunc_40(void) + { + return 0; + } + + /* 44 */ virtual s32 vfunc_44(MenuItemState * menuItemState) + { + return this->vfunc_40(); + } + + /* 48 */ virtual s32 vfunc_48(Menu * menu, MenuItemState * menuItemState) + { + return this->vfunc_44(menuItemState); + } + + /* 4C */ virtual s32 vfunc_4c(void) + { + return 0; + } + + /* 50 */ virtual s32 vfunc_50(MenuItemState * menuItemState) + { + return this->vfunc_4c(); + } + + /* 54 */ virtual s32 vfunc_54(Menu * menu, MenuItemState * menuItemState) + { + return this->vfunc_50(menuItemState); + } + + /* 58 */ virtual s32 vfunc_58(void) + { + return 0x400; + } + + /* 5C */ virtual s32 vfunc_5c(MenuItemState * menuItemState) + { + return this->vfunc_58(); + } + + /* 60 */ virtual s32 vfunc_60(Menu * menu, MenuItemState * menuItemState) + { + return this->vfunc_5c(menuItemState); + } + + /* 64 */ virtual s32 vfunc_64(void) + { + return 0; + } + + /* 68 */ virtual s32 vfunc_68(MenuItemState * menuItemState) + { + return this->vfunc_64(); + } + + /* 6C */ virtual s32 vfunc_6c(Menu * menu, MenuItemState * menuItemState) + { + return this->vfunc_68(menuItemState); + } + + /* 70 */ virtual void vfunc_70(void) + { + return; + } + + /* 74 */ virtual void vfunc_74(MenuItemState * menuItemState) + { + this->vfunc_70(); + return; + } + + /* 78 */ virtual void vfunc_78(Menu * menu, MenuItemState * menuItemState) + { + this->vfunc_74(menuItemState); + return; + } + + /* 7C */ virtual void vfunc_7c(void) + { + return; + } + + /* 80 */ virtual void vfunc_80(MenuItemState * menuItemState) + { + this->vfunc_7c(); + return; + } + + /* 84 */ virtual void vfunc_84(Menu * menu, MenuItemState * menuItemState) + { + this->vfunc_80(menuItemState); + return; + } + + /* 88 */ virtual void vfunc_88(void) + { + return; + } + + /* 8C */ virtual void vfunc_8c(MenuItemState * menuItemState) + { + this->vfunc_88(); + return; + } + + /* 90 */ virtual void vfunc_90(Menu * menu, MenuItemState * menuItemState) + { + this->vfunc_8c(menuItemState); + return; + } + + /* 94 */ virtual void vfunc_94(void) + { + return; + } + + /* 98 */ virtual void vfunc_98(MenuItemState * menuItemState) + { + this->vfunc_94(); + return; + } + + /* 9C */ virtual void vfunc_9c(Menu * menu, MenuItemState * menuItemState) + { + this->vfunc_98(menuItemState); + return; + } + + /* A0 */ virtual void vfunc_a0(void) + { + return; + } + + /* A4 */ virtual void vfunc_a4(MenuItemState * menuItemState) + { + this->vfunc_a0(); + return; + } + + /* A8 */ virtual void vfunc_a8(Menu *, MenuItemState *); // + /* AC */ virtual s32 vfunc_ac(MenuItemState *, s32, s32, s32, s32); + + /* B0 */ virtual void vfunc_b0(Menu * menu, MenuItemState * menuItemState) + { + return; + } + + /* B4 */ virtual void vfunc_b4(Menu *, MenuItemState *); + /* B8 */ virtual void vfunc_b8(Menu *, MenuItemState *); + /* BC */ virtual void vfunc_bc(Menu *, MenuItemState *); + /* C0 */ virtual void vfunc_c0(Menu *, MenuItemState *); + /* C4 */ virtual u32 vfunc_c4(void) + { + return -1; + } + + /* C8 */ virtual u32 vfunc_c8(MenuItemState *); + + /* CC */ virtual u32 vfunc_cc(void) + { + return 2; + } + + /* D0 */ virtual u32 vfunc_d0(void) + { + return 0; + } + + /* D4 */ virtual u32 vfunc_d4(void) + { + return 1; + } }; class MenuItemState @@ -360,17 +674,39 @@ class DialogItem : public MenuItem class DialogItemYes : public DialogItem { public: - /* 000 */ virtual char * vfunc_00(void); - /* 028 */ virtual s32 vfunc_28(void); + /* 000 */ virtual char * vfunc_00(void) + { + return func_02039e10("M_はい"); + } + + /* 028 */ virtual s32 vfunc_28(void) + { + return 0; + } }; class DialogItemNo : public DialogItem { public: - /* 000 */ virtual char * vfunc_00(void); - /* 014 */ virtual s32 vfunc_14(void); - /* 01C */ virtual s32 vfunc_1c(void); - /* 028 */ virtual s32 vfunc_28(void); + /* 000 */ virtual char * vfunc_00(void) + { + return func_02039e10("M_いいえ"); + } + + /* 014 */ virtual s32 vfunc_14(void) + { + return 8; + } + + /* 01C */ virtual s32 vfunc_1c(void) + { + return 0x81; + } + + /* 028 */ virtual s32 vfunc_28(void) + { + return 0; + } }; #endif // MENU_HPP \ No newline at end of file diff --git a/src/link_dialog.cpp b/src/link_dialog.cpp index 43631d5..c1e2ae8 100644 --- a/src/link_dialog.cpp +++ b/src/link_dialog.cpp @@ -5,11 +5,54 @@ #include "hardware.hpp" #include "hashtable.hpp" #include "heap.hpp" +#include "link_dialog.hpp" #include "map.hpp" #include "menu.hpp" #include "proc_ex.hpp" -EC char * func_02039e10(char *); +struct UnkStruct_021970c4 +{ + void * unk_00; + void * unk_04; + void * unk_08; +}; + +extern struct UnkStruct_021970c4 * data_021970c4; +extern struct UnkStruct_021970c4 * data_021970cc; + +EC s32 func_020290f4(struct UnkStruct_021970c4 *, s32); +EC s32 func_02028e7c(struct UnkStruct_021970c4 *, s32, s32); + +struct VmMap_Common +{ + STRUCT_PAD(0x00, 0x04); + u16 unk_04; + u8 unk_06; + u8 unk_07; + void * unk_08; +}; + +struct UnkStruct_02196f20 +{ + STRUCT_PAD(0x000, 0x180); + /* 180 */ void * flagMgr; + s32 unk_184; + u32 unk_188; + u32 unk_18c; + s32 unk_190; + u32 unk_194; + u8 unk_198; + u8 unk_199; + u8 unk_19a; + u8 unk_19b; + s8 unk_19c; + s8 unk_19d; + STRUCT_PAD(0x19E, 0x1A4); +}; + +extern struct UnkStruct_02196f20 * data_02196f20; + +extern struct TouchState * gTouchSt; struct UnkStruct_020cac80 { @@ -67,113 +110,339 @@ class LinkDialogBlink : public ProcEx virtual void Loop(void); }; -class LinkDialogItemNone : public DialogItem +class _LinkDialogCommon : public Dialog { public: - /* 01C */ virtual s32 vfunc_1c(void); - /* 0A8 */ virtual void vfunc_a8(Menu *, MenuItemState *); - /* 0AC */ virtual s32 vfunc_ac(MenuItemState *, s32, s32, s32, s32); -}; + _LinkDialogCommon() + { + data_020efc84.unk_00 = 0; + } -class LinkDialogItemOk : public DialogItem -{ -public: - /* 000 */ virtual char * vfunc_00(void); - /* 01C */ virtual s32 vfunc_1c(void); + /* 000 */ virtual void vfunc_00(void) + { + struct VmMap_Common * iVar1; + + if ((gMapStateManager != NULL) && (gMapStateManager->unk_14->unk_24 == 0)) + { + iVar1 = static_cast(HashTable::Get2("VmMap_DialogFont")); + this->unk_14 = iVar1->unk_04; + this->unk_18 = iVar1->unk_06; + + iVar1 = static_cast(HashTable::Get2("VmMap_Dialog")); + this->unk_30 = iVar1->unk_07; + this->unk_1c = iVar1->unk_04; + this->unk_20 = iVar1->unk_06; + + iVar1 = static_cast(HashTable::Get2("VmMap_MenuCursor")); + this->unk_24 = iVar1->unk_04; + this->unk_28 = iVar1->unk_06; + } + else + { + this->unk_30 = 0; + + if (data_020cac80.unk_08 != -1) + { + this->unk_30 = data_020cac80.unk_08; + } + + if (data_020cac80.unk_10 != -1) + { + this->unk_14 = data_020cac80.unk_10; + } + + if (data_020cac80.unk_14 != -1) + { + this->unk_18 = data_020cac80.unk_14; + } + + if (data_020cac80.unk_18 != -1) + { + this->unk_1c = data_020cac80.unk_18; + } + + if (data_020cac80.unk_04 != -1) + { + this->unk_20 = data_020cac80.unk_04; + } + + if (data_020cac80.unk_0c != -1) + { + this->unk_24 = data_020cac80.unk_0c; + } + + if (data_020cac80.unk_00 != -1) + { + this->unk_28 = data_020cac80.unk_00; + } + } + + this->unk_40 = 1; + + return; + } + + /* 028 */ virtual s32 vfunc_28(s32 arg0) + { + return 0; + } + + /* 020 */ virtual s32 vfunc_20(s32 param_2) + { + if ((gMapStateManager != NULL) && (gMapStateManager->unk_14->unk_24) == 0) + { + data_02196f20->unk_19a = gTouchSt->unk_15 != 0; + } + + return param_2; + } + + virtual ~_LinkDialogCommon() + { + data_020efc84.unk_18 = NULL; + } }; -class LinkDialogItemNext : public DialogItem +class _LinkDialogYesNo : public _LinkDialogCommon { public: - /* 000 */ virtual char * vfunc_00(void); - /* 01C */ virtual s32 vfunc_1c(void); + /* 000 */ virtual void vfunc_00(void) + { + struct VmMap_Common * iVar1; + + if ((gMapStateManager != NULL) && (gMapStateManager->unk_14->unk_24 == 0)) + { + iVar1 = static_cast(HashTable::Get2("VmMap_DialogFont")); + this->unk_14 = iVar1->unk_04; + this->unk_18 = iVar1->unk_06; + + iVar1 = static_cast(HashTable::Get2("VmMap_Dialog")); + this->unk_30 = iVar1->unk_07; + this->unk_1c = iVar1->unk_04; + this->unk_20 = iVar1->unk_06; + + iVar1 = static_cast(HashTable::Get2("VmMap_MenuCursor")); + this->unk_24 = iVar1->unk_04; + this->unk_28 = iVar1->unk_06; + } + else + { + this->unk_30 = 0; + + if (data_020cac80.unk_08 != -1) + { + this->unk_30 = data_020cac80.unk_08; + } + + if (data_020cac80.unk_10 != -1) + { + this->unk_14 = data_020cac80.unk_10; + } + + if (data_020cac80.unk_14 != -1) + { + this->unk_18 = data_020cac80.unk_14; + } + + if (data_020cac80.unk_18 != -1) + { + this->unk_1c = data_020cac80.unk_18; + } + + if (data_020cac80.unk_04 != -1) + { + this->unk_20 = data_020cac80.unk_04; + } + + if (data_020cac80.unk_0c != -1) + { + this->unk_24 = data_020cac80.unk_0c; + } + + if (data_020cac80.unk_00 != -1) + { + this->unk_28 = data_020cac80.unk_00; + } + } + + this->unk_40 = 1; + this->unk_48 = 1; + + return; + } + + /* 028 */ virtual s32 vfunc_28(s32 arg0) + { + if (arg0 == 0) + { + return this->unk_0c[1].unk_00->vfunc_24(this, &this->unk_0c[1]); + } + + return arg0; + } + + // ~_LinkDialogYesNo(); }; -class LinkDialogItemNoF : public DialogItemNo +class _LinkDialogNone : public _LinkDialogCommon { public: - /* 01C */ virtual s32 vfunc_1c(void); + s16 unk_58; + s16 unk_5a; + + /* 0FC */ virtual void vfunc_fc(void) + { + return; + } + + /* 100 */ virtual void vfunc_100(void) + { + return; + } + + /* 108 */ virtual void vfunc_108(void) + { + return; + } + + /* 110 */ virtual void vfunc_110(void) + { + return; + } + + /* 010 */ virtual void vfunc_10(void) + { + u32 iVar1; + + Menu::vfunc_10(); + + iVar1 = func_020290f4(data_021970c4, this->unk_54); + + this->unk_37 = (iVar1 << 1) + 4; + this->unk_5a = this->unk_36; + + iVar1 = func_02028e7c(data_021970c4, this->unk_54, 0); + iVar1 = (((iVar1 + 7) & ~7) / 8) + 2; + + if (this->unk_5a < iVar1) + { + this->unk_5a = iVar1; + this->unk_36 = this->unk_5a; + } + + this->unk_5a += 2; + + return; + } + + /* 11C */ virtual void vfunc_11c(void) + { + LinkDialogBlink * proc; + + Menu::vfunc_11c(); + + proc = new (func_01ffbf90(data_020caccc, PROC_TREE_3)) LinkDialogBlink(this->unk_20); + func_01ffbfd0(proc); + + return; + } + + virtual ~_LinkDialogNone() + { + Proc_EndEach(data_020caccc); + } }; -class LinkDialogItemNo : public DialogItemNo +class _LinkDialogConfirm : public _LinkDialogCommon { public: - /* 014 */ virtual s32 vfunc_14(void); - /* 01C */ virtual s32 vfunc_1c(void); + /* 110 */ virtual void vfunc_110(void) + { + return; + } + + // ~_LinkDialogConfirm(); }; class LinkDialogItemYes : public DialogItemYes { public: - /* 01C */ virtual s32 vfunc_1c(void); + /* 01C */ virtual s32 vfunc_1c(void) + { + data_020efc84.unk_30 = 1; + return 0x41; + } }; -class _LinkDialogCommon : public Dialog +class LinkDialogItemNo : public DialogItemNo { public: - _LinkDialogCommon() + /* 014 */ virtual s32 vfunc_14(void) { - data_020efc84.unk_00 = 0; + return 0; } - /* 000 */ virtual void vfunc_00(void); - /* 020 */ virtual s32 vfunc_20(s32); - /* 028 */ virtual s32 vfunc_28(s32); - - virtual ~_LinkDialogCommon() + /* 01C */ virtual s32 vfunc_1c(void) { - data_020efc84.unk_18 = NULL; + data_020efc84.unk_30 = 0; + return 0x81; } }; -class _LinkDialogYesNo : public _LinkDialogCommon +class LinkDialogItemNoF : public DialogItemNo { public: - /* 000 */ virtual void vfunc_00(void); - /* 028 */ virtual s32 vfunc_28(s32); - - // ~_LinkDialogYesNo(); + /* 01C */ virtual s32 vfunc_1c(void) + { + data_020efc84.unk_30 = 0; + return 0x81; + } }; -class _LinkDialogNone : public _LinkDialogCommon +class LinkDialogItemNext : public DialogItem { public: - s16 unk_58; - s16 unk_5a; - - /* 010 */ virtual void vfunc_10(void); - /* 0FC */ virtual void vfunc_fc(void); - /* 100 */ virtual void vfunc_100(void); - /* 108 */ virtual void vfunc_108(void); - /* 110 */ virtual void vfunc_110(void); - /* 11C */ virtual void vfunc_11c(void); + /* 000 */ virtual char * vfunc_00(void) + { + return func_02039e10("M_NEXT"); + } - virtual ~_LinkDialogNone() + /* 01C */ virtual s32 vfunc_1c(void) { - Proc_EndEach(data_020caccc); + return 0x41; } }; -class _LinkDialogConfirm : public _LinkDialogCommon +class LinkDialogItemOk : public DialogItem { public: - /* 110 */ virtual void vfunc_110(void); + /* 000 */ virtual char * vfunc_00(void) + { + return func_02039e10("M_OK"); + } - // ~_LinkDialogConfirm(); + /* 01C */ virtual s32 vfunc_1c(void) + { + return 0x41; + } }; -class LinkErrorDialog : public ProcEx +class LinkDialogItemNone : public DialogItem { public: - char * unk_38; + /* 0AC */ virtual s32 vfunc_ac(MenuItemState * menuItemState, s32 arg1, s32 arg2, s32 arg3, s32 arg4) + { + return 0; + } - LinkErrorDialog(char * str) + /* 0A8 */ virtual void vfunc_a8(Menu * menu, MenuItemState * menuItemState) { - this->unk_38 = str; + return; } - virtual ~LinkErrorDialog() + /* 01C */ virtual s32 vfunc_1c(void) { + return 0; } }; @@ -326,492 +595,30 @@ EC void func_02014af4(void) return; } -u32 MenuItem::vfunc_d4(void) -{ - return 1; -} +extern struct ProcCmd ProcScr_020ce750[]; -u32 MenuItem::vfunc_d0(void) -{ - return 0; -} +EC s32 func_020121c0(void); +EC s32 func_02012584(void); -u32 MenuItem::vfunc_cc(void) -{ - return 2; -} +EC s32 func_ov010_02207ab4(void); +EC void func_ov010_0220986c(s32, s32, s32, ProcPtr); +EC s32 func_ov010_02209674(void); -u32 MenuItem::vfunc_c4(void) -{ - return -1; -} +EC s32 func_ov011_022065a4(s32 *, s32 *); +EC s32 func_ov011_022087c8(s32, s32, s32, s32, s32, ProcPtr); +EC void func_ov011_022065b0(void); +EC s32 func_ov011_022082ec(s32, s32, s32); +EC void func_ov011_02206564(s32); -void MenuItem::vfunc_b0(Menu * menu, MenuItemState * menuItemState) +EC s32 func_02014b20(ProcPtr param_1, s32 param_2, s32 param_3, s32 param_4) { - return; -} - -void MenuItem::vfunc_a0(void) -{ - return; -} - -void MenuItem::vfunc_a4(MenuItemState * menuItemState) -{ - this->vfunc_a0(); - return; -} - -void MenuItem::vfunc_94(void) -{ - return; -} - -void MenuItem::vfunc_98(MenuItemState * menuItemState) -{ - this->vfunc_94(); - return; -} - -void MenuItem::vfunc_9c(Menu * menu, MenuItemState * menuItemState) -{ - this->vfunc_98(menuItemState); - return; -} - -void MenuItem::vfunc_88(void) -{ - return; -} - -void MenuItem::vfunc_8c(MenuItemState * menuItemState) -{ - this->vfunc_88(); - return; -} - -void MenuItem::vfunc_90(Menu * menu, MenuItemState * menuItemState) -{ - this->vfunc_8c(menuItemState); - return; -} - -void MenuItem::vfunc_7c(void) -{ - return; -} - -void MenuItem::vfunc_80(MenuItemState * menuItemState) -{ - this->vfunc_7c(); - return; -} - -void MenuItem::vfunc_84(Menu * menu, MenuItemState * menuItemState) -{ - this->vfunc_80(menuItemState); - return; -} - -void MenuItem::vfunc_70(void) -{ - return; -} - -void MenuItem::vfunc_74(MenuItemState * menuItemState) -{ - this->vfunc_70(); - return; -} - -void MenuItem::vfunc_78(Menu * menu, MenuItemState * menuItemState) -{ - this->vfunc_74(menuItemState); - return; -} - -s32 MenuItem::vfunc_64(void) -{ - return 0; -} - -s32 MenuItem::vfunc_68(MenuItemState * menuItemState) -{ - return this->vfunc_64(); -} - -s32 MenuItem::vfunc_6c(Menu * menu, MenuItemState * menuItemState) -{ - return this->vfunc_68(menuItemState); -} - -s32 MenuItem::vfunc_58(void) -{ - return 0x400; -} - -s32 MenuItem::vfunc_5c(MenuItemState * menuItemState) -{ - return this->vfunc_58(); -} - -s32 MenuItem::vfunc_60(Menu * menu, MenuItemState * menuItemState) -{ - return this->vfunc_5c(menuItemState); -} - -s32 MenuItem::vfunc_4c(void) -{ - return 0; -} - -s32 MenuItem::vfunc_50(MenuItemState * menuItemState) -{ - return this->vfunc_4c(); -} - -s32 MenuItem::vfunc_54(Menu * menu, MenuItemState * menuItemState) -{ - return this->vfunc_50(menuItemState); -} - -s32 MenuItem::vfunc_40(void) -{ - return 0; -} - -s32 MenuItem::vfunc_44(MenuItemState * menuItemState) -{ - return this->vfunc_40(); -} - -s32 MenuItem::vfunc_48(Menu * menu, MenuItemState * menuItemState) -{ - return this->vfunc_44(menuItemState); -} - -s32 MenuItem::vfunc_34(void) -{ - return 0; -} - -s32 MenuItem::vfunc_38(MenuItemState * menuItemState) -{ - return this->vfunc_34(); -} - -s32 MenuItem::vfunc_3c(Menu * menu, MenuItemState * menuItemState) -{ - return this->vfunc_38(menuItemState); -} - -s32 MenuItem::vfunc_28(void) -{ - return 0x81; -} - -s32 MenuItem::vfunc_2c(MenuItemState * menuItemState) -{ - return this->vfunc_28(); -} - -s32 MenuItem::vfunc_30(Menu * menu, MenuItemState * menuItemState) -{ - return this->vfunc_2c(menuItemState); -} - -s32 MenuItem::vfunc_1c(void) -{ - return 0; -} - -s32 MenuItem::vfunc_20(MenuItemState * menuItemState) -{ - return this->vfunc_1c(); -} - -s32 MenuItem::vfunc_24(Menu * menu, MenuItemState * menuItemState) -{ - return this->vfunc_20(menuItemState); -} - -s32 MenuItem::vfunc_14(void) -{ - return 0; -} - -s32 MenuItem::vfunc_18(s32 unused) -{ - return this->vfunc_14(); -} - -s32 MenuItem::vfunc_08(void) -{ - return 0; -} - -s32 MenuItem::vfunc_0c(MenuItemState * menuItemState) -{ - return this->vfunc_08(); -} - -char * MenuItem::vfunc_00(void) -{ - return 0; -} - -char * MenuItem::vfunc_04(MenuItemState * menuItemState) -{ - return this->vfunc_00(); -} - -s32 LinkDialogItemNone::vfunc_1c(void) -{ - return 0; -} - -void LinkDialogItemNone::vfunc_a8(Menu * menu, MenuItemState * menuItemState) -{ - return; -} - -s32 LinkDialogItemNone::vfunc_ac(MenuItemState * menuItemState, s32 arg1, s32 arg2, s32 arg3, s32 arg4) -{ - return 0; -} - -s32 LinkDialogItemOk::vfunc_1c(void) -{ - return 0x41; -} - -char * LinkDialogItemOk::vfunc_00(void) -{ - return func_02039e10("M_OK"); -} - -s32 LinkDialogItemNext::vfunc_1c(void) -{ - return 0x41; -} - -char * LinkDialogItemNext::vfunc_00(void) -{ - return func_02039e10("M_NEXT"); -} - -s32 DialogItemNo::vfunc_28(void) -{ - return 0; -} - -s32 DialogItemNo::vfunc_14(void) -{ - return 8; -} - -char * DialogItemNo::vfunc_00(void) -{ - return func_02039e10("M_いいえ"); -} - -s32 LinkDialogItemNoF::vfunc_1c(void) -{ - data_020efc84.unk_30 = 0; - return 0x81; -} - -s32 LinkDialogItemNo::vfunc_1c(void) -{ - data_020efc84.unk_30 = 0; - return 0x81; -} - -s32 LinkDialogItemNo::vfunc_14(void) -{ - return 0; -} - -s32 DialogItemYes::vfunc_28(void) -{ - return 0; -} - -char * DialogItemYes::vfunc_00(void) -{ - return func_02039e10("M_はい"); -} - -s32 LinkDialogItemYes::vfunc_1c(void) -{ - data_020efc84.unk_30 = 1; - return 0x41; -} - -void Menu::vfunc_e4(void) -{ - return; -} - -void Menu::vfunc_e0(void) -{ - return; -} - -void Menu::vfunc_b8(s32 arg0) -{ - return; -} - -s32 Menu::vfunc_ac(void) -{ - return 0; -} - -BOOL Menu::vfunc_a8(void) -{ - return FALSE; -} - -BOOL Menu::vfunc_a4(void) -{ - return FALSE; -} - -BOOL Menu::vfunc_a0(void) -{ - return FALSE; -} - -s32 Menu::vfunc_9c(void) -{ - return 0; -} - -s32 Menu::vfunc_98(s32 arg0, s32 arg1) -{ - return 0; -} - -s32 Menu::vfunc_94(s32 arg0, s32 arg1) -{ - return 0; -} - -s32 Menu::vfunc_60(void) -{ - return this->vfunc_7c() | 0x2000; -} - -s32 Menu::vfunc_58(s32 arg0) -{ - return arg0; -} - -s32 Menu::vfunc_5c(MenuItemState * menuItemState, s32 arg1) -{ - return this->vfunc_58(arg1); -} - -s32 Menu::vfunc_50(s32 arg0) -{ - return arg0; -} - -s32 Menu::vfunc_54(MenuItemState * menuItemState, s32 arg1) -{ - return this->vfunc_50(arg1); -} - -s32 Menu::vfunc_48(s32 arg0) -{ - return arg0; -} - -s32 Menu::vfunc_4c(MenuItemState * menuItemState, s32 arg1) -{ - return this->vfunc_48(arg1); -} - -s32 Menu::vfunc_40(s32 arg0) -{ - return arg0; -} - -s32 Menu::vfunc_44(MenuItemState * menuItemState, s32 arg1) -{ - return this->vfunc_40(arg1); -} - -s32 Menu::vfunc_38(s32 arg0) -{ - return arg0; -} - -s32 Menu::vfunc_3c(MenuItemState * menuItemState, s32 arg1) -{ - return this->vfunc_38(arg1); -} - -s32 Menu::vfunc_30(s32 arg0) -{ - return arg0; -} - -s32 Menu::vfunc_34(MenuItemState * menuItemState, s32 arg1) -{ - return this->vfunc_30(arg1); -} - -s32 Menu::vfunc_2c(MenuItemState * menuItemState, s32 arg1) -{ - return this->vfunc_28(arg1); -} - -s32 Menu::vfunc_28(s32 arg0) -{ - return arg0; -} - -s32 Menu::vfunc_24(MenuItemState * menuItemState, s32 arg1) -{ - return this->vfunc_20(arg1); -} - -s32 Menu::vfunc_20(s32 arg0) -{ - return arg0; -} - -void Menu::vfunc_04(void) -{ - return; -} - -extern struct ProcCmd ProcScr_020ce750[]; - -EC s32 func_020121c0(void); -EC s32 func_02012584(void); - -EC s32 func_ov010_02207ab4(void); -EC void func_ov010_0220986c(s32, s32, s32, ProcPtr); -EC s32 func_ov010_02209674(void); - -EC s32 func_ov011_022065a4(s32 *, s32 *); -EC s32 func_ov011_022087c8(s32, s32, s32, s32, s32, ProcPtr); -EC void func_ov011_022065b0(void); -EC s32 func_ov011_022082ec(s32, s32, s32); -EC void func_ov011_02206564(s32); - -EC s32 func_02014b20(ProcPtr param_1, s32 param_2, s32 param_3, s32 param_4) -{ - s32 iVar1; - u32 uVar2; - u32 puVar10; - s32 iVar11; - s32 local_1c; - s32 local_20; - s32 uStack_18; + s32 iVar1; + u32 uVar2; + u32 puVar10; + s32 iVar11; + s32 local_1c; + s32 local_20; + s32 uStack_18; iVar11 = 0; uStack_18 = param_4; @@ -918,268 +725,3 @@ EC void func_02014e10(LinkErrorDialog * param_1) return; } - -struct VmMap_Common -{ - STRUCT_PAD(0x00, 0x04); - u16 unk_04; - u8 unk_06; - u8 unk_07; - void * unk_08; -}; - -struct UnkStruct_02196f20 -{ - STRUCT_PAD(0x000, 0x180); - /* 180 */ void * flagMgr; - s32 unk_184; - u32 unk_188; - u32 unk_18c; - s32 unk_190; - u32 unk_194; - u8 unk_198; - u8 unk_199; - u8 unk_19a; - u8 unk_19b; - s8 unk_19c; - s8 unk_19d; - STRUCT_PAD(0x19E, 0x1A4); -}; - -extern struct UnkStruct_02196f20 * data_02196f20; - -extern struct TouchState * gTouchSt; - -s32 _LinkDialogCommon::vfunc_20(s32 param_2) -{ - if ((gMapStateManager != NULL) && (gMapStateManager->unk_14->unk_24) == 0) - { - data_02196f20->unk_19a = gTouchSt->unk_15 != 0; - } - - return param_2; -} - -s32 _LinkDialogCommon::vfunc_28(s32 arg0) -{ - return 0; -} - -void _LinkDialogCommon::vfunc_00(void) -{ - struct VmMap_Common * iVar1; - - if ((gMapStateManager != NULL) && (gMapStateManager->unk_14->unk_24 == 0)) - { - iVar1 = static_cast(HashTable::Get2("VmMap_DialogFont")); - this->unk_14 = iVar1->unk_04; - this->unk_18 = iVar1->unk_06; - - iVar1 = static_cast(HashTable::Get2("VmMap_Dialog")); - this->unk_30 = iVar1->unk_07; - this->unk_1c = iVar1->unk_04; - this->unk_20 = iVar1->unk_06; - - iVar1 = static_cast(HashTable::Get2("VmMap_MenuCursor")); - this->unk_24 = iVar1->unk_04; - this->unk_28 = iVar1->unk_06; - } - else - { - this->unk_30 = 0; - - if (data_020cac80.unk_08 != -1) - { - this->unk_30 = data_020cac80.unk_08; - } - - if (data_020cac80.unk_10 != -1) - { - this->unk_14 = data_020cac80.unk_10; - } - - if (data_020cac80.unk_14 != -1) - { - this->unk_18 = data_020cac80.unk_14; - } - - if (data_020cac80.unk_18 != -1) - { - this->unk_1c = data_020cac80.unk_18; - } - - if (data_020cac80.unk_04 != -1) - { - this->unk_20 = data_020cac80.unk_04; - } - - if (data_020cac80.unk_0c != -1) - { - this->unk_24 = data_020cac80.unk_0c; - } - - if (data_020cac80.unk_00 != -1) - { - this->unk_28 = data_020cac80.unk_00; - } - } - - this->unk_40 = 1; - - return; -} - -void _LinkDialogConfirm::vfunc_110(void) -{ - return; -} - -void _LinkDialogNone::vfunc_11c(void) -{ - LinkDialogBlink * puVar1; - - Menu::vfunc_11c(); - - puVar1 = new (func_01ffbf90(data_020caccc, PROC_TREE_3)) LinkDialogBlink(this->unk_20); - func_01ffbfd0(puVar1); - - return; -} - -struct UnkStruct_021970c4 -{ - void * unk_00; - void * unk_04; - void * unk_08; -}; - -extern struct UnkStruct_021970c4 * data_021970c4; -extern struct UnkStruct_021970c4 * data_021970cc; - -EC s32 func_020290f4(struct UnkStruct_021970c4 *, s32); -EC s32 func_02028e7c(struct UnkStruct_021970c4 *, s32, s32); - -void _LinkDialogNone::vfunc_10(void) -{ - u32 iVar1; - - Menu::vfunc_10(); - - iVar1 = func_020290f4(data_021970c4, this->unk_54); - - this->unk_37 = (iVar1 << 1) + 4; - this->unk_5a = this->unk_36; - - iVar1 = func_02028e7c(data_021970c4, this->unk_54, 0); - iVar1 = (((iVar1 + 7) & ~7) / 8) + 2; - - if (this->unk_5a < iVar1) - { - this->unk_5a = iVar1; - this->unk_36 = this->unk_5a; - } - - this->unk_5a += 2; - - return; -} - -void _LinkDialogNone::vfunc_110(void) -{ - return; -} - -void _LinkDialogNone::vfunc_108(void) -{ - return; -} - -void _LinkDialogNone::vfunc_100(void) -{ - return; -} - -void _LinkDialogNone::vfunc_fc(void) -{ - return; -} - -s32 _LinkDialogYesNo::vfunc_28(s32 arg0) -{ - if (arg0 == 0) - { - return this->unk_0c[1].unk_00->vfunc_24(this, &this->unk_0c[1]); - } - - return arg0; -} - -void _LinkDialogYesNo::vfunc_00(void) -{ - struct VmMap_Common * iVar1; - - if ((gMapStateManager != NULL) && (gMapStateManager->unk_14->unk_24 == 0)) - { - iVar1 = static_cast(HashTable::Get2("VmMap_DialogFont")); - this->unk_14 = iVar1->unk_04; - this->unk_18 = iVar1->unk_06; - - iVar1 = static_cast(HashTable::Get2("VmMap_Dialog")); - this->unk_30 = iVar1->unk_07; - this->unk_1c = iVar1->unk_04; - this->unk_20 = iVar1->unk_06; - - iVar1 = static_cast(HashTable::Get2("VmMap_MenuCursor")); - this->unk_24 = iVar1->unk_04; - this->unk_28 = iVar1->unk_06; - } - else - { - this->unk_30 = 0; - - if (data_020cac80.unk_08 != -1) - { - this->unk_30 = data_020cac80.unk_08; - } - - if (data_020cac80.unk_10 != -1) - { - this->unk_14 = data_020cac80.unk_10; - } - - if (data_020cac80.unk_14 != -1) - { - this->unk_18 = data_020cac80.unk_14; - } - - if (data_020cac80.unk_18 != -1) - { - this->unk_1c = data_020cac80.unk_18; - } - - if (data_020cac80.unk_04 != -1) - { - this->unk_20 = data_020cac80.unk_04; - } - - if (data_020cac80.unk_0c != -1) - { - this->unk_24 = data_020cac80.unk_0c; - } - - if (data_020cac80.unk_00 != -1) - { - this->unk_28 = data_020cac80.unk_00; - } - } - - this->unk_40 = 1; - this->unk_48 = 1; - - return; -} - -s32 DialogItemNo::vfunc_1c(void) -{ - return 0x81; -} \ No newline at end of file From dfd931bef9da79df4be109aadfacbad9122a0af4 Mon Sep 17 00:00:00 2001 From: Eebit Date: Wed, 4 Feb 2026 21:55:20 -0500 Subject: [PATCH 4/5] (link_dialog) Progress towards bss and data --- config/YFEE01/arm9/delinks.txt | 2 + config/YFEE01/arm9/symbols.txt | 2 +- include/unknown_funcs.h | 2 +- src/link_dialog.cpp | 171 +++++++++++++++++---------------- 4 files changed, 93 insertions(+), 84 deletions(-) diff --git a/config/YFEE01/arm9/delinks.txt b/config/YFEE01/arm9/delinks.txt index 9f58c96..986ae01 100644 --- a/config/YFEE01/arm9/delinks.txt +++ b/config/YFEE01/arm9/delinks.txt @@ -20,6 +20,8 @@ src/heap.cpp: src/link_dialog.cpp: .text start:0x020147c0 end:0x02015aa0 + .data start:0x020cac80 end:0x020cbc88 + .bss start:0x020efc84 end:0x020efcc4 src/sound_manager.cpp: .text start:0x02015bd0 end:0x02018c58 diff --git a/config/YFEE01/arm9/symbols.txt b/config/YFEE01/arm9/symbols.txt index e7a473e..68cf9a0 100644 --- a/config/YFEE01/arm9/symbols.txt +++ b/config/YFEE01/arm9/symbols.txt @@ -1657,7 +1657,7 @@ _ZN9SplitMenu9vfunc_100Ellll kind:function(arm,size=0x4) addr:0x020302d0 _ZN9SplitMenu8vfunc_fcEllll kind:function(arm,size=0x4) addr:0x020302d4 _ZN9SplitMenu8vfunc_ecEv kind:function(arm,size=0x4) addr:0x020302d8 _ZN9SplitMenu8vfunc_e8Ev kind:function(arm,size=0x4) addr:0x020302dc -_ZN6DialogC1Ev kind:function(arm,size=0x50) addr:0x020302e0 +_ZN6DialogC2Ev kind:function(arm,size=0x50) addr:0x020302e0 _ZN6Dialog9vfunc_128Ev kind:function(arm,size=0x5c) addr:0x02030330 func_0203038c kind:function(arm,size=0x30) addr:0x0203038c func_020303bc kind:function(arm,size=0x24) addr:0x020303bc diff --git a/include/unknown_funcs.h b/include/unknown_funcs.h index 4722f72..3f91032 100644 --- a/include/unknown_funcs.h +++ b/include/unknown_funcs.h @@ -1678,7 +1678,7 @@ EC void func_0202b688(void *, u32, u32, u32); // EC ??? _ZN9SplitMenu8vfunc_fcEllll // EC ??? _ZN9SplitMenu8vfunc_ecEv // EC ??? _ZN9SplitMenu8vfunc_e8Ev -EC void _ZN6DialogC1Ev(void *); +EC void _ZN6DialogC2Ev(void *); // EC ??? _ZN6Dialog9vfunc_128Ev // EC ??? func_0203038c // EC void func_020303bc(void *, char *, void *, ProcPtr, s32, s32); diff --git a/src/link_dialog.cpp b/src/link_dialog.cpp index c1e2ae8..95aadd6 100644 --- a/src/link_dialog.cpp +++ b/src/link_dialog.cpp @@ -54,19 +54,6 @@ extern struct UnkStruct_02196f20 * data_02196f20; extern struct TouchState * gTouchSt; -struct UnkStruct_020cac80 -{ - s32 unk_00; - s32 unk_04; - s32 unk_08; - s32 unk_0c; - s32 unk_10; - s32 unk_14; - s32 unk_18; -}; - -extern struct UnkStruct_020cac80 data_020cac80; - extern struct ProcCmd data_020caccc[]; struct UnkStruct_020efc84 @@ -78,9 +65,13 @@ struct UnkStruct_020efc84 s32 unk_30; }; -extern struct UnkStruct_020efc84 data_020efc84; +u8 data_020efc84 = 0; + +Dialog * data_020efc9c = 0; -extern MenuItem ** data_020efcb8; +s32 data_020efcb4 = 0; + +MenuItem ** data_020efcb8 = 0; EC void func_01ff9998(void *, s32, s32); EC u8 * func_0202b70c(void); @@ -110,12 +101,25 @@ class LinkDialogBlink : public ProcEx virtual void Loop(void); }; +// Ordering required to match? + +s32 data_020cac88 = -1; +s32 data_020cac84 = -1; +s32 data_020cac80 = -1; +s32 data_020cac90 = -1; +s32 data_020cac94 = -1; +s32 data_020cac8c = -1; +s32 data_020cac98 = -1; + class _LinkDialogCommon : public Dialog { public: + s16 unk_58; + s16 unk_5a; + _LinkDialogCommon() { - data_020efc84.unk_00 = 0; + data_020efc84 = 0; } /* 000 */ virtual void vfunc_00(void) @@ -141,39 +145,39 @@ class _LinkDialogCommon : public Dialog { this->unk_30 = 0; - if (data_020cac80.unk_08 != -1) + if (data_020cac88 != -1) { - this->unk_30 = data_020cac80.unk_08; + this->unk_30 = data_020cac88; } - if (data_020cac80.unk_10 != -1) + if (data_020cac90 != -1) { - this->unk_14 = data_020cac80.unk_10; + this->unk_14 = data_020cac90; } - if (data_020cac80.unk_14 != -1) + if (data_020cac94 != -1) { - this->unk_18 = data_020cac80.unk_14; + this->unk_18 = data_020cac94; } - if (data_020cac80.unk_18 != -1) + if (data_020cac98 != -1) { - this->unk_1c = data_020cac80.unk_18; + this->unk_1c = data_020cac98; } - if (data_020cac80.unk_04 != -1) + if (data_020cac84 != -1) { - this->unk_20 = data_020cac80.unk_04; + this->unk_20 = data_020cac84; } - if (data_020cac80.unk_0c != -1) + if (data_020cac8c != -1) { - this->unk_24 = data_020cac80.unk_0c; + this->unk_24 = data_020cac8c; } - if (data_020cac80.unk_00 != -1) + if (data_020cac80 != -1) { - this->unk_28 = data_020cac80.unk_00; + this->unk_28 = data_020cac80; } } @@ -199,7 +203,7 @@ class _LinkDialogCommon : public Dialog virtual ~_LinkDialogCommon() { - data_020efc84.unk_18 = NULL; + data_020efc9c = NULL; } }; @@ -229,39 +233,39 @@ class _LinkDialogYesNo : public _LinkDialogCommon { this->unk_30 = 0; - if (data_020cac80.unk_08 != -1) + if (data_020cac88 != -1) { - this->unk_30 = data_020cac80.unk_08; + this->unk_30 = data_020cac88; } - if (data_020cac80.unk_10 != -1) + if (data_020cac90 != -1) { - this->unk_14 = data_020cac80.unk_10; + this->unk_14 = data_020cac90; } - if (data_020cac80.unk_14 != -1) + if (data_020cac94 != -1) { - this->unk_18 = data_020cac80.unk_14; + this->unk_18 = data_020cac94; } - if (data_020cac80.unk_18 != -1) + if (data_020cac98 != -1) { - this->unk_1c = data_020cac80.unk_18; + this->unk_1c = data_020cac98; } - if (data_020cac80.unk_04 != -1) + if (data_020cac84 != -1) { - this->unk_20 = data_020cac80.unk_04; + this->unk_20 = data_020cac84; } - if (data_020cac80.unk_0c != -1) + if (data_020cac8c != -1) { - this->unk_24 = data_020cac80.unk_0c; + this->unk_24 = data_020cac8c; } - if (data_020cac80.unk_00 != -1) + if (data_020cac80 != -1) { - this->unk_28 = data_020cac80.unk_00; + this->unk_28 = data_020cac80; } } @@ -287,9 +291,6 @@ class _LinkDialogYesNo : public _LinkDialogCommon class _LinkDialogNone : public _LinkDialogCommon { public: - s16 unk_58; - s16 unk_5a; - /* 0FC */ virtual void vfunc_fc(void) { return; @@ -369,7 +370,7 @@ class LinkDialogItemYes : public DialogItemYes public: /* 01C */ virtual s32 vfunc_1c(void) { - data_020efc84.unk_30 = 1; + data_020efcb4 = 1; return 0x41; } }; @@ -384,7 +385,7 @@ class LinkDialogItemNo : public DialogItemNo /* 01C */ virtual s32 vfunc_1c(void) { - data_020efc84.unk_30 = 0; + data_020efcb4 = 0; return 0x81; } }; @@ -394,7 +395,7 @@ class LinkDialogItemNoF : public DialogItemNo public: /* 01C */ virtual s32 vfunc_1c(void) { - data_020efc84.unk_30 = 0; + data_020efcb4 = 0; return 0x81; } }; @@ -483,7 +484,7 @@ void LinkDialogBlink::Loop(void) EC void func_0202fef8(Menu *); EC void func_020303bc(Dialog *, char *, void *, ProcPtr, s32, s32); -EC Dialog * func_02014834(ProcPtr param_1, char * param_2, s32 param_3, s32 param_4, s32 param_5, s32 param_6) +EC Dialog * func_02014834(ProcPtr param_1, char * param_2, s32 param_3, s32 param_4, u8 param_5, s32 param_6) { static LinkDialogItemYes data_020efcac; static LinkDialogItemNo data_020efca4; @@ -492,28 +493,36 @@ EC Dialog * func_02014834(ProcPtr param_1, char * param_2, s32 param_3, s32 para static LinkDialogItemOk data_020efc8c; static LinkDialogItemNone data_020efcb0; + // clang-format off + static MenuItem * data_020cacac[] = + { + &data_020efcb0, + }; + // clang-format on + // clang-format off static MenuItem * data_020cac9c[] = { &data_020efc8c, }; + // clang-format on + // clang-format off static MenuItem * data_020caca4[] = { &data_020efcc0, }; + // clang-format on - static MenuItem * data_020cacac[] = - { - &data_020efcb0, - }; - + // clang-format off static MenuItem * data_020cacb4[] = { &data_020efcac, &data_020efca0, }; + // clang-format on + // clang-format off static MenuItem * data_020cacc0[] = { &data_020efcac, @@ -521,22 +530,22 @@ EC Dialog * func_02014834(ProcPtr param_1, char * param_2, s32 param_3, s32 para }; // clang-format on - if (data_020efc84.unk_18 != NULL) + if (data_020efc9c != NULL) { - func_0202fef8(data_020efc84.unk_18); + func_0202fef8(data_020efc9c); } if (param_3 == 0) { - data_020efc84.unk_18 = new _LinkDialogYesNo(); + data_020efc9c = new _LinkDialogYesNo(); } else if (param_3 == 3) { - data_020efc84.unk_18 = new _LinkDialogNone(); + data_020efc9c = new _LinkDialogNone(); } else { - data_020efc84.unk_18 = new _LinkDialogConfirm(); + data_020efc9c = new _LinkDialogConfirm(); } if (param_3 == 1) @@ -566,18 +575,18 @@ EC Dialog * func_02014834(ProcPtr param_1, char * param_2, s32 param_3, s32 para param_1 = PROC_TREE_9; } - func_020303bc(data_020efc84.unk_18, param_2, data_020efcb8, param_1, param_4, param_5); + func_020303bc(data_020efc9c, param_2, data_020efcb8, param_1, param_4, param_5); - return data_020efc84.unk_18; + return data_020efc9c; } EC void func_0202fe9c(Menu *, s32); EC void func_02014ad0(void) { - if (data_020efc84.unk_18 != NULL) + if (data_020efc9c != NULL) { - func_0202fe9c(data_020efc84.unk_18, 0); + func_0202fe9c(data_020efc9c, 0); } return; @@ -585,13 +594,13 @@ EC void func_02014ad0(void) EC void func_02014af4(void) { - data_020cac80.unk_08 = -1; - data_020cac80.unk_10 = -1; - data_020cac80.unk_14 = -1; - data_020cac80.unk_18 = -1; - data_020cac80.unk_04 = -1; - data_020cac80.unk_0c = -1; - data_020cac80.unk_00 = -1; + data_020cac88 = -1; + data_020cac90 = -1; + data_020cac94 = -1; + data_020cac98 = -1; + data_020cac84 = -1; + data_020cac8c = -1; + data_020cac80 = -1; return; } @@ -628,7 +637,7 @@ EC s32 func_02014b20(ProcPtr param_1, s32 param_2, s32 param_3, s32 param_4) case 1: func_ov010_0220986c(0, 0, func_ov010_02207ab4(), param_1); func_ov010_02207ab4(); - data_020efc84.unk_00 = func_ov010_02209674(); + data_020efc84 = func_ov010_02209674(); break; case 2: @@ -651,7 +660,7 @@ EC s32 func_02014b20(ProcPtr param_1, s32 param_2, s32 param_3, s32 param_4) case 7: break; } - data_020efc84.unk_00 = func_ov011_022082ec(uVar2, local_1c, local_20); + data_020efc84 = func_ov011_022082ec(uVar2, local_1c, local_20); break; } @@ -677,7 +686,7 @@ EC s32 func_02014b20(ProcPtr param_1, s32 param_2, s32 param_3, s32 param_4) break; case 4: iVar11 = 0; - if (data_020efc84.unk_00 == 0) + if (data_020efc84 == 0) { new (Proc_StartBlocking(ProcScr_020ce750, param_1)) LinkErrorDialog("MLink_StorageLoginFailed"); } @@ -690,21 +699,21 @@ EC s32 func_02014b20(ProcPtr param_1, s32 param_2, s32 param_3, s32 param_4) break; case 6: iVar11 = 0; - if (data_020efc84.unk_00 == 0) + if (data_020efc84 == 0) { new (Proc_StartBlocking(ProcScr_020ce750, param_1)) LinkErrorDialog("MLink_StorageLoadFailed"); } break; case 7: iVar11 = 0; - if (data_020efc84.unk_00 == 0) + if (data_020efc84 == 0) { new (Proc_StartBlocking(ProcScr_020ce750, param_1)) LinkErrorDialog("MLink_CollectFailed"); } break; case 8: iVar11 = 0; - if (data_020efc84.unk_00 == 0) + if (data_020efc84 == 0) { new (Proc_StartBlocking(ProcScr_020ce750, param_1)) LinkErrorDialog("MLink_OnlineShopFailed"); } @@ -713,11 +722,9 @@ EC s32 func_02014b20(ProcPtr param_1, s32 param_2, s32 param_3, s32 param_4) return iVar11; } -EC Dialog * func_02014834(ProcPtr param_1, char * param_2, s32 param_3, s32 param_4, s32 param_5, s32 param_6); - EC void func_02014e10(LinkErrorDialog * param_1) { - if (data_020efc84.unk_00 == 0 && data_020efc84.unk_18 == NULL) + if (data_020efc84 == 0 && data_020efc9c == NULL) { func_02014834(param_1, func_02039e10(param_1->unk_38), 2, 1, 1, 1); Proc_Break(param_1, 0); From 90d6c325277e0b6d6514fa08121900b17b42c18d Mon Sep 17 00:00:00 2001 From: Eebit Date: Wed, 4 Feb 2026 22:22:47 -0500 Subject: [PATCH 5/5] (link_dialog) Data symbol renames --- config/YFEE01/arm9/overlays/ov000/relocs.txt | 24 ++--- config/YFEE01/arm9/overlays/ov003/relocs.txt | 60 +++++------ config/YFEE01/arm9/overlays/ov005/relocs.txt | 24 ++--- config/YFEE01/arm9/overlays/ov006/relocs.txt | 20 ++-- config/YFEE01/arm9/overlays/ov007/relocs.txt | 4 +- config/YFEE01/arm9/relocs.txt | 84 +++++++-------- config/YFEE01/arm9/symbols.txt | 106 +++++++++---------- include/unknown_data.h | 104 +++++++++--------- include/unknown_funcs.h | 2 +- src/link_dialog.cpp | 25 ++++- 10 files changed, 235 insertions(+), 218 deletions(-) diff --git a/config/YFEE01/arm9/overlays/ov000/relocs.txt b/config/YFEE01/arm9/overlays/ov000/relocs.txt index 54bf889..fe34f7a 100644 --- a/config/YFEE01/arm9/overlays/ov000/relocs.txt +++ b/config/YFEE01/arm9/overlays/ov000/relocs.txt @@ -3358,12 +3358,12 @@ from:0x021bea6c kind:load to:0x021dcffc module:overlay(0) from:0x021bea70 kind:load to:0x027e1268 module:dtcm from:0x021bea94 kind:arm_call to:0x01ffbb90 module:itcm from:0x021bea9c kind:arm_call to:0x0202d5e4 module:main -from:0x021beaa8 kind:load to:0x020d40bc module:main +from:0x021beaa8 kind:load to:0x020d40b4 module:main add:8 from:0x021beaac kind:load to:0x027e1b9c module:dtcm from:0x021bead0 kind:arm_call to:0x01ffbb90 module:itcm from:0x021bead8 kind:arm_call to:0x0202d5e4 module:main from:0x021beae0 kind:arm_call to:0x020115a4 module:main -from:0x021beaec kind:load to:0x020d40bc module:main +from:0x021beaec kind:load to:0x020d40b4 module:main add:8 from:0x021beaf0 kind:load to:0x027e1b9c module:dtcm from:0x021beb24 kind:arm_call to:0x02011574 module:main from:0x021beb30 kind:arm_call to:0x020302e0 module:main @@ -3549,30 +3549,30 @@ from:0x021bf888 kind:load to:0x027e1268 module:dtcm from:0x021bf894 kind:arm_call to:0x021be21c module:overlay(0) from:0x021bf8dc kind:arm_call to:0x01ffbb90 module:itcm from:0x021bf8e4 kind:arm_call to:0x0202d5e4 module:main -from:0x021bf8f0 kind:load to:0x020d40bc module:main +from:0x021bf8f0 kind:load to:0x020d40b4 module:main add:8 from:0x021bf8f4 kind:load to:0x027e1b9c module:dtcm from:0x021bf918 kind:arm_call to:0x01ffbb90 module:itcm from:0x021bf920 kind:arm_call to:0x0202d5e4 module:main from:0x021bf928 kind:arm_call to:0x020115a4 module:main -from:0x021bf934 kind:load to:0x020d40bc module:main +from:0x021bf934 kind:load to:0x020d40b4 module:main add:8 from:0x021bf938 kind:load to:0x027e1b9c module:dtcm from:0x021bf95c kind:arm_call to:0x01ffbb90 module:itcm from:0x021bf964 kind:arm_call to:0x0202d5e4 module:main -from:0x021bf970 kind:load to:0x020d40bc module:main +from:0x021bf970 kind:load to:0x020d40b4 module:main add:8 from:0x021bf974 kind:load to:0x027e1b9c module:dtcm from:0x021bf998 kind:arm_call to:0x01ffbb90 module:itcm from:0x021bf9a0 kind:arm_call to:0x0202d5e4 module:main from:0x021bf9a8 kind:arm_call to:0x020115a4 module:main -from:0x021bf9b4 kind:load to:0x020d40bc module:main +from:0x021bf9b4 kind:load to:0x020d40b4 module:main add:8 from:0x021bf9b8 kind:load to:0x027e1b9c module:dtcm from:0x021bf9dc kind:arm_call to:0x01ffbb90 module:itcm from:0x021bf9e4 kind:arm_call to:0x0202d5e4 module:main -from:0x021bf9f0 kind:load to:0x020d40bc module:main +from:0x021bf9f0 kind:load to:0x020d40b4 module:main add:8 from:0x021bf9f4 kind:load to:0x027e1b9c module:dtcm from:0x021bfa18 kind:arm_call to:0x01ffbb90 module:itcm from:0x021bfa20 kind:arm_call to:0x0202d5e4 module:main from:0x021bfa28 kind:arm_call to:0x020115a4 module:main -from:0x021bfa34 kind:load to:0x020d40bc module:main +from:0x021bfa34 kind:load to:0x020d40b4 module:main add:8 from:0x021bfa38 kind:load to:0x027e1b9c module:dtcm from:0x021bfa40 kind:arm_call to:0x021b79f8 module:overlay(0) from:0x021bfa54 kind:arm_call to:0x021bc9e4 module:overlay(0) @@ -4127,14 +4127,14 @@ from:0x021c31e0 kind:arm_call to:0x0202d5e4 module:main from:0x021c31e8 kind:arm_call to:0x020115a4 module:main from:0x021c31f4 kind:load to:0x021e0a44 module:overlay(0) from:0x021c31f8 kind:load to:0x021e3328 module:overlay(0) -from:0x021c31fc kind:load to:0x020d40bc module:main +from:0x021c31fc kind:load to:0x020d40b4 module:main add:8 from:0x021c3200 kind:load to:0x027e1b9c module:dtcm from:0x021c3224 kind:arm_call to:0x021a5774 module:overlay(0) from:0x021c3240 kind:arm_call to:0x01ffbb90 module:itcm from:0x021c3248 kind:arm_call to:0x0202d5e4 module:main from:0x021c3254 kind:load to:0x021e0a44 module:overlay(0) from:0x021c3258 kind:load to:0x021e3328 module:overlay(0) -from:0x021c325c kind:load to:0x020d40bc module:main +from:0x021c325c kind:load to:0x020d40b4 module:main add:8 from:0x021c3260 kind:load to:0x027e1b9c module:dtcm from:0x021c3280 kind:arm_call to:0x021a5774 module:overlay(0) from:0x021c32b4 kind:load to:0x021e3328 module:overlay(0) @@ -4401,12 +4401,12 @@ from:0x021c51b4 kind:load to:0x021dcffc module:overlay(0) from:0x021c51b8 kind:load to:0x027e1268 module:dtcm from:0x021c51dc kind:arm_call to:0x01ffbb90 module:itcm from:0x021c51e4 kind:arm_call to:0x0202d5e4 module:main -from:0x021c51f0 kind:load to:0x020d40bc module:main +from:0x021c51f0 kind:load to:0x020d40b4 module:main add:8 from:0x021c51f4 kind:load to:0x027e1b9c module:dtcm from:0x021c5218 kind:arm_call to:0x01ffbb90 module:itcm from:0x021c5220 kind:arm_call to:0x0202d5e4 module:main from:0x021c5228 kind:arm_call to:0x020115a4 module:main -from:0x021c5234 kind:load to:0x020d40bc module:main +from:0x021c5234 kind:load to:0x020d40b4 module:main add:8 from:0x021c5238 kind:load to:0x027e1b9c module:dtcm from:0x021c524c kind:arm_call to:0x02037800 module:main from:0x021c5294 kind:arm_call to:0x02039854 module:main diff --git a/config/YFEE01/arm9/overlays/ov003/relocs.txt b/config/YFEE01/arm9/overlays/ov003/relocs.txt index d180183..cea11f2 100644 --- a/config/YFEE01/arm9/overlays/ov003/relocs.txt +++ b/config/YFEE01/arm9/overlays/ov003/relocs.txt @@ -1025,7 +1025,7 @@ from:0x021e9c10 kind:arm_call to:0x01ffbb90 module:itcm from:0x021e9c18 kind:arm_call to:0x0202d5e4 module:main from:0x021e9c20 kind:arm_call to:0x020115a4 module:main from:0x021e9c2c kind:load to:0x021fce88 module:overlay(3) -from:0x021e9c30 kind:load to:0x020d40bc module:main +from:0x021e9c30 kind:load to:0x020d40b4 module:main add:8 from:0x021e9c34 kind:load to:0x027e1b9c module:dtcm from:0x021e9c3c kind:arm_call to:0x021e8fc0 module:overlay(3) from:0x021e9c48 kind:arm_call to:0x020353b8 module:main @@ -1037,7 +1037,7 @@ from:0x021e9cfc kind:arm_call to:0x020190a0 module:main from:0x021e9d18 kind:arm_call to:0x01ffbb90 module:itcm from:0x021e9d20 kind:arm_call to:0x0202d5e4 module:main from:0x021e9d2c kind:load to:0x021fce88 module:overlay(3) -from:0x021e9d30 kind:load to:0x020d40bc module:main +from:0x021e9d30 kind:load to:0x020d40b4 module:main add:8 from:0x021e9d34 kind:load to:0x027e1b9c module:dtcm from:0x021e9d60 kind:arm_call to:0x02018cfc module:main from:0x021e9d74 kind:arm_call to:0x020121c0 module:main @@ -1410,7 +1410,7 @@ from:0x021ebdfc kind:arm_call to:0x01ffbb90 module:itcm from:0x021ebe04 kind:arm_call to:0x0202d5e4 module:main from:0x021ebe0c kind:arm_call to:0x020115a4 module:main from:0x021ebe18 kind:load to:0x021fe244 module:overlay(3) -from:0x021ebe1c kind:load to:0x020d40bc module:main +from:0x021ebe1c kind:load to:0x020d40b4 module:main add:8 from:0x021ebe20 kind:load to:0x027e1b9c module:dtcm from:0x021ebe28 kind:arm_call to:0x021eb98c module:overlay(3) from:0x021ebe34 kind:arm_call to:0x020353b8 module:main @@ -1424,7 +1424,7 @@ from:0x021ebf28 kind:arm_call to:0x020190a0 module:main from:0x021ebf44 kind:arm_call to:0x01ffbb90 module:itcm from:0x021ebf4c kind:arm_call to:0x0202d5e4 module:main from:0x021ebf58 kind:load to:0x021fe244 module:overlay(3) -from:0x021ebf5c kind:load to:0x020d40bc module:main +from:0x021ebf5c kind:load to:0x020d40b4 module:main add:8 from:0x021ebf60 kind:load to:0x027e1b9c module:dtcm from:0x021ebf8c kind:arm_call to:0x021ea36c module:overlay(3) from:0x021ebfa4 kind:arm_call to:0x01ffbb90 module:itcm @@ -2005,13 +2005,13 @@ from:0x021f09ec kind:arm_call to:0x01ffbb90 module:itcm from:0x021f09f4 kind:arm_call to:0x0202d5e4 module:main from:0x021f09fc kind:arm_call to:0x020115a4 module:main from:0x021f0a08 kind:load to:0x021ff7a0 module:overlay(3) -from:0x021f0a0c kind:load to:0x020d40bc module:main +from:0x021f0a0c kind:load to:0x020d40b4 module:main add:8 from:0x021f0a10 kind:load to:0x027e1b9c module:dtcm from:0x021f0a30 kind:arm_call to:0x02034930 module:main from:0x021f0a4c kind:arm_call to:0x01ffbb90 module:itcm from:0x021f0a54 kind:arm_call to:0x0202d5e4 module:main from:0x021f0a60 kind:load to:0x021ff7a0 module:overlay(3) -from:0x021f0a64 kind:load to:0x020d40bc module:main +from:0x021f0a64 kind:load to:0x020d40b4 module:main add:8 from:0x021f0a68 kind:load to:0x027e1b9c module:dtcm from:0x021f0a78 kind:arm_call to:0x021ee990 module:overlay(3) from:0x021f0a84 kind:load to:0x021fe9cc module:overlay(3) @@ -2062,21 +2062,21 @@ from:0x021f0e7c kind:arm_call to:0x020310d8 module:main from:0x021f0e84 kind:arm_call to:0x020115a4 module:main from:0x021f0eb0 kind:arm_call to:0x01ffbb90 module:itcm from:0x021f0eb8 kind:arm_call to:0x0202d5e4 module:main -from:0x021f0ec4 kind:load to:0x020d40bc module:main +from:0x021f0ec4 kind:load to:0x020d40b4 module:main add:8 from:0x021f0ec8 kind:load to:0x027e1b9c module:dtcm from:0x021f0eec kind:arm_call to:0x01ffbb90 module:itcm from:0x021f0ef4 kind:arm_call to:0x0202d5e4 module:main from:0x021f0efc kind:arm_call to:0x020115a4 module:main -from:0x021f0f08 kind:load to:0x020d40bc module:main +from:0x021f0f08 kind:load to:0x020d40b4 module:main add:8 from:0x021f0f0c kind:load to:0x027e1b9c module:dtcm from:0x021f0f30 kind:arm_call to:0x01ffbb90 module:itcm from:0x021f0f38 kind:arm_call to:0x0202d5e4 module:main -from:0x021f0f44 kind:load to:0x020d40bc module:main +from:0x021f0f44 kind:load to:0x020d40b4 module:main add:8 from:0x021f0f48 kind:load to:0x027e1b9c module:dtcm from:0x021f0f6c kind:arm_call to:0x01ffbb90 module:itcm from:0x021f0f74 kind:arm_call to:0x0202d5e4 module:main from:0x021f0f7c kind:arm_call to:0x020115a4 module:main -from:0x021f0f88 kind:load to:0x020d40bc module:main +from:0x021f0f88 kind:load to:0x020d40b4 module:main add:8 from:0x021f0f8c kind:load to:0x027e1b9c module:dtcm from:0x021f0fc4 kind:arm_call to:0x02020a2c module:main from:0x021f0fd0 kind:arm_call to:0x01ff9948 module:itcm @@ -2233,21 +2233,21 @@ from:0x021f1b20 kind:load to:0x021ff9d0 module:overlay(3) from:0x021f1b24 kind:load to:0x02204afc module:overlay(3) from:0x021f1b48 kind:arm_call to:0x01ffbb90 module:itcm from:0x021f1b50 kind:arm_call to:0x0202d5e4 module:main -from:0x021f1b5c kind:load to:0x020d40bc module:main +from:0x021f1b5c kind:load to:0x020d40b4 module:main add:8 from:0x021f1b60 kind:load to:0x027e1b9c module:dtcm from:0x021f1b84 kind:arm_call to:0x01ffbb90 module:itcm from:0x021f1b8c kind:arm_call to:0x0202d5e4 module:main from:0x021f1b94 kind:arm_call to:0x020115a4 module:main -from:0x021f1ba0 kind:load to:0x020d40bc module:main +from:0x021f1ba0 kind:load to:0x020d40b4 module:main add:8 from:0x021f1ba4 kind:load to:0x027e1b9c module:dtcm from:0x021f1bc8 kind:arm_call to:0x01ffbb90 module:itcm from:0x021f1bd0 kind:arm_call to:0x0202d5e4 module:main -from:0x021f1bdc kind:load to:0x020d40bc module:main +from:0x021f1bdc kind:load to:0x020d40b4 module:main add:8 from:0x021f1be0 kind:load to:0x027e1b9c module:dtcm from:0x021f1c04 kind:arm_call to:0x01ffbb90 module:itcm from:0x021f1c0c kind:arm_call to:0x0202d5e4 module:main from:0x021f1c14 kind:arm_call to:0x020115a4 module:main -from:0x021f1c20 kind:load to:0x020d40bc module:main +from:0x021f1c20 kind:load to:0x020d40b4 module:main add:8 from:0x021f1c24 kind:load to:0x027e1b9c module:dtcm from:0x021f1c40 kind:arm_call to:0x02020874 module:main from:0x021f1c54 kind:arm_call to:0x02020874 module:main @@ -2652,21 +2652,21 @@ from:0x021f396c kind:load to:0x0220092c module:overlay(3) from:0x021f3970 kind:load to:0x02200810 module:overlay(3) from:0x021f3994 kind:arm_call to:0x01ffbb90 module:itcm from:0x021f399c kind:arm_call to:0x0202d5e4 module:main -from:0x021f39a8 kind:load to:0x020d40bc module:main +from:0x021f39a8 kind:load to:0x020d40b4 module:main add:8 from:0x021f39ac kind:load to:0x027e1b9c module:dtcm from:0x021f39d0 kind:arm_call to:0x01ffbb90 module:itcm from:0x021f39d8 kind:arm_call to:0x0202d5e4 module:main from:0x021f39e0 kind:arm_call to:0x020115a4 module:main -from:0x021f39ec kind:load to:0x020d40bc module:main +from:0x021f39ec kind:load to:0x020d40b4 module:main add:8 from:0x021f39f0 kind:load to:0x027e1b9c module:dtcm from:0x021f3a14 kind:arm_call to:0x01ffbb90 module:itcm from:0x021f3a1c kind:arm_call to:0x0202d5e4 module:main -from:0x021f3a28 kind:load to:0x020d40bc module:main +from:0x021f3a28 kind:load to:0x020d40b4 module:main add:8 from:0x021f3a2c kind:load to:0x027e1b9c module:dtcm from:0x021f3a50 kind:arm_call to:0x01ffbb90 module:itcm from:0x021f3a58 kind:arm_call to:0x0202d5e4 module:main from:0x021f3a60 kind:arm_call to:0x020115a4 module:main -from:0x021f3a6c kind:load to:0x020d40bc module:main +from:0x021f3a6c kind:load to:0x020d40b4 module:main add:8 from:0x021f3a70 kind:load to:0x027e1b9c module:dtcm from:0x021f3a7c kind:arm_call to:0x02002c3c module:main from:0x021f3a90 kind:arm_call to:0x02002c3c module:main @@ -3005,12 +3005,12 @@ from:0x021f57c8 kind:load to:0x02204b40 module:overlay(3) from:0x021f57cc kind:load to:0x022011fc module:overlay(3) from:0x021f57f0 kind:arm_call to:0x01ffbb90 module:itcm from:0x021f57f8 kind:arm_call to:0x0202d5e4 module:main -from:0x021f5804 kind:load to:0x020d40bc module:main +from:0x021f5804 kind:load to:0x020d40b4 module:main add:8 from:0x021f5808 kind:load to:0x027e1b9c module:dtcm from:0x021f582c kind:arm_call to:0x01ffbb90 module:itcm from:0x021f5834 kind:arm_call to:0x0202d5e4 module:main from:0x021f583c kind:arm_call to:0x020115a4 module:main -from:0x021f5848 kind:load to:0x020d40bc module:main +from:0x021f5848 kind:load to:0x020d40b4 module:main add:8 from:0x021f584c kind:load to:0x027e1b9c module:dtcm from:0x021f5858 kind:arm_call to:0x02002c3c module:main from:0x021f586c kind:arm_call to:0x02002c3c module:main @@ -3443,24 +3443,24 @@ from:0x021f7e0c kind:load to:0x02204b68 module:overlay(3) from:0x021f7e10 kind:load to:0x02201ca4 module:overlay(3) from:0x021f7e34 kind:arm_call to:0x01ffbb90 module:itcm from:0x021f7e3c kind:arm_call to:0x0202d5e4 module:main -from:0x021f7e48 kind:load to:0x020d40bc module:main +from:0x021f7e48 kind:load to:0x020d40b4 module:main add:8 from:0x021f7e4c kind:load to:0x027e1b9c module:dtcm from:0x021f7e70 kind:arm_call to:0x01ffbb90 module:itcm from:0x021f7e78 kind:arm_call to:0x0202d5e4 module:main from:0x021f7e80 kind:arm_call to:0x020115a4 module:main -from:0x021f7e8c kind:load to:0x020d40bc module:main +from:0x021f7e8c kind:load to:0x020d40b4 module:main add:8 from:0x021f7e90 kind:load to:0x027e1b9c module:dtcm from:0x021f7e9c kind:arm_call to:0x020310d8 module:main from:0x021f7eb0 kind:arm_call to:0x020310d8 module:main from:0x021f7eb8 kind:arm_call to:0x020115a4 module:main from:0x021f7ee4 kind:arm_call to:0x01ffbb90 module:itcm from:0x021f7eec kind:arm_call to:0x0202d5e4 module:main -from:0x021f7ef8 kind:load to:0x020d40bc module:main +from:0x021f7ef8 kind:load to:0x020d40b4 module:main add:8 from:0x021f7efc kind:load to:0x027e1b9c module:dtcm from:0x021f7f20 kind:arm_call to:0x01ffbb90 module:itcm from:0x021f7f28 kind:arm_call to:0x0202d5e4 module:main from:0x021f7f30 kind:arm_call to:0x020115a4 module:main -from:0x021f7f3c kind:load to:0x020d40bc module:main +from:0x021f7f3c kind:load to:0x020d40b4 module:main add:8 from:0x021f7f40 kind:load to:0x027e1b9c module:dtcm from:0x021f7f4c kind:arm_call to:0x02002c3c module:main from:0x021f7f60 kind:arm_call to:0x02002c3c module:main @@ -3942,24 +3942,24 @@ from:0x021fabb4 kind:arm_call to:0x020115a4 module:main from:0x021fabc0 kind:load to:0x02200308 module:overlay(3) from:0x021fabe4 kind:arm_call to:0x01ffbb90 module:itcm from:0x021fabec kind:arm_call to:0x0202d5e4 module:main -from:0x021fabf8 kind:load to:0x020d40bc module:main +from:0x021fabf8 kind:load to:0x020d40b4 module:main add:8 from:0x021fabfc kind:load to:0x027e1b9c module:dtcm from:0x021fac20 kind:arm_call to:0x01ffbb90 module:itcm from:0x021fac28 kind:arm_call to:0x0202d5e4 module:main from:0x021fac30 kind:arm_call to:0x020115a4 module:main -from:0x021fac3c kind:load to:0x020d40bc module:main +from:0x021fac3c kind:load to:0x020d40b4 module:main add:8 from:0x021fac40 kind:load to:0x027e1b9c module:dtcm from:0x021fac4c kind:arm_call to:0x02002c3c module:main from:0x021fac60 kind:arm_call to:0x02002c3c module:main from:0x021fac68 kind:arm_call to:0x020115a4 module:main from:0x021fac94 kind:arm_call to:0x01ffbb90 module:itcm from:0x021fac9c kind:arm_call to:0x0202d5e4 module:main -from:0x021faca8 kind:load to:0x020d40bc module:main +from:0x021faca8 kind:load to:0x020d40b4 module:main add:8 from:0x021facac kind:load to:0x027e1b9c module:dtcm from:0x021facd0 kind:arm_call to:0x01ffbb90 module:itcm from:0x021facd8 kind:arm_call to:0x0202d5e4 module:main from:0x021face0 kind:arm_call to:0x020115a4 module:main -from:0x021facec kind:load to:0x020d40bc module:main +from:0x021facec kind:load to:0x020d40b4 module:main add:8 from:0x021facf0 kind:load to:0x027e1b9c module:dtcm from:0x021facfc kind:arm_call to:0x02002c3c module:main from:0x021fad10 kind:arm_call to:0x02002c3c module:main @@ -4182,12 +4182,12 @@ from:0x021fbe94 kind:load to:0x02204338 module:overlay(3) from:0x021fbe98 kind:load to:0x0220423c module:overlay(3) from:0x021fbebc kind:arm_call to:0x01ffbb90 module:itcm from:0x021fbec4 kind:arm_call to:0x0202d5e4 module:main -from:0x021fbed0 kind:load to:0x020d40bc module:main +from:0x021fbed0 kind:load to:0x020d40b4 module:main add:8 from:0x021fbed4 kind:load to:0x027e1b9c module:dtcm from:0x021fbef8 kind:arm_call to:0x01ffbb90 module:itcm from:0x021fbf00 kind:arm_call to:0x0202d5e4 module:main from:0x021fbf08 kind:arm_call to:0x020115a4 module:main -from:0x021fbf14 kind:load to:0x020d40bc module:main +from:0x021fbf14 kind:load to:0x020d40b4 module:main add:8 from:0x021fbf18 kind:load to:0x027e1b9c module:dtcm from:0x021fbf24 kind:arm_call to:0x02002c3c module:main from:0x021fbf38 kind:arm_call to:0x02002c3c module:main diff --git a/config/YFEE01/arm9/overlays/ov005/relocs.txt b/config/YFEE01/arm9/overlays/ov005/relocs.txt index f993c0c..4a316cf 100644 --- a/config/YFEE01/arm9/overlays/ov005/relocs.txt +++ b/config/YFEE01/arm9/overlays/ov005/relocs.txt @@ -361,21 +361,21 @@ from:0x022066f8 kind:load to:0x0221344c module:overlay(5) add:8 from:0x022066fc kind:load to:0x02217560 module:overlay(5) from:0x02206720 kind:arm_call to:0x01ffbb90 module:itcm from:0x02206728 kind:arm_call to:0x0202d5e4 module:main -from:0x02206734 kind:load to:0x020d40bc module:main +from:0x02206734 kind:load to:0x020d40b4 module:main add:8 from:0x02206738 kind:load to:0x027e1b9c module:dtcm from:0x0220675c kind:arm_call to:0x01ffbb90 module:itcm from:0x02206764 kind:arm_call to:0x0202d5e4 module:main from:0x0220676c kind:arm_call to:0x020115a4 module:main -from:0x02206778 kind:load to:0x020d40bc module:main +from:0x02206778 kind:load to:0x020d40b4 module:main add:8 from:0x0220677c kind:load to:0x027e1b9c module:dtcm from:0x022067a0 kind:arm_call to:0x01ffbb90 module:itcm from:0x022067a8 kind:arm_call to:0x0202d5e4 module:main -from:0x022067b4 kind:load to:0x020d40bc module:main +from:0x022067b4 kind:load to:0x020d40b4 module:main add:8 from:0x022067b8 kind:load to:0x027e1b9c module:dtcm from:0x022067dc kind:arm_call to:0x01ffbb90 module:itcm from:0x022067e4 kind:arm_call to:0x0202d5e4 module:main from:0x022067ec kind:arm_call to:0x020115a4 module:main -from:0x022067f8 kind:load to:0x020d40bc module:main +from:0x022067f8 kind:load to:0x020d40b4 module:main add:8 from:0x022067fc kind:load to:0x027e1b9c module:dtcm from:0x02206808 kind:arm_call to:0x0202d5e4 module:main from:0x0220681c kind:arm_call to:0x0202d5e4 module:main @@ -777,12 +777,12 @@ from:0x022091d4 kind:arm_call to:0x0202a5a8 module:main from:0x022091e0 kind:load to:0x02214588 module:overlay(5) from:0x02209204 kind:arm_call to:0x01ffbb90 module:itcm from:0x0220920c kind:arm_call to:0x0202d5e4 module:main -from:0x02209218 kind:load to:0x020d40bc module:main +from:0x02209218 kind:load to:0x020d40b4 module:main add:8 from:0x0220921c kind:load to:0x027e1b9c module:dtcm from:0x02209240 kind:arm_call to:0x01ffbb90 module:itcm from:0x02209248 kind:arm_call to:0x0202d5e4 module:main from:0x02209250 kind:arm_call to:0x020115a4 module:main -from:0x0220925c kind:load to:0x020d40bc module:main +from:0x0220925c kind:load to:0x020d40b4 module:main add:8 from:0x02209260 kind:load to:0x027e1b9c module:dtcm from:0x0220926c kind:arm_call to:0x02002c3c module:main from:0x02209280 kind:arm_call to:0x02002c3c module:main @@ -792,12 +792,12 @@ from:0x022092b0 kind:arm_call to:0x0202d5e4 module:main from:0x022092b8 kind:arm_call to:0x020115a4 module:main from:0x022092e4 kind:arm_call to:0x01ffbb90 module:itcm from:0x022092ec kind:arm_call to:0x0202d5e4 module:main -from:0x022092f8 kind:load to:0x020d40bc module:main +from:0x022092f8 kind:load to:0x020d40b4 module:main add:8 from:0x022092fc kind:load to:0x027e1b9c module:dtcm from:0x02209320 kind:arm_call to:0x01ffbb90 module:itcm from:0x02209328 kind:arm_call to:0x0202d5e4 module:main from:0x02209330 kind:arm_call to:0x020115a4 module:main -from:0x0220933c kind:load to:0x020d40bc module:main +from:0x0220933c kind:load to:0x020d40b4 module:main add:8 from:0x02209340 kind:load to:0x027e1b9c module:dtcm from:0x02209350 kind:arm_call to:0x020115a4 module:main from:0x0220938c kind:arm_call to:0x02011574 module:main @@ -1383,12 +1383,12 @@ from:0x0220d198 kind:arm_call to:0x0202d5e4 module:main from:0x0220d1a0 kind:arm_call to:0x020115a4 module:main from:0x0220d1cc kind:arm_call to:0x01ffbb90 module:itcm from:0x0220d1d4 kind:arm_call to:0x0202d5e4 module:main -from:0x0220d1e0 kind:load to:0x020d40bc module:main +from:0x0220d1e0 kind:load to:0x020d40b4 module:main add:8 from:0x0220d1e4 kind:load to:0x027e1b9c module:dtcm from:0x0220d208 kind:arm_call to:0x01ffbb90 module:itcm from:0x0220d210 kind:arm_call to:0x0202d5e4 module:main from:0x0220d218 kind:arm_call to:0x020115a4 module:main -from:0x0220d224 kind:load to:0x020d40bc module:main +from:0x0220d224 kind:load to:0x020d40b4 module:main add:8 from:0x0220d228 kind:load to:0x027e1b9c module:dtcm from:0x0220d258 kind:arm_call to:0x02011574 module:main from:0x0220d264 kind:arm_call to:0x0202d4c4 module:main @@ -1850,12 +1850,12 @@ from:0x0220f9c4 kind:arm_call to:0x0202d5e4 module:main from:0x0220f9cc kind:arm_call to:0x020115a4 module:main from:0x0220f9f8 kind:arm_call to:0x01ffbb90 module:itcm from:0x0220fa00 kind:arm_call to:0x0202d5e4 module:main -from:0x0220fa0c kind:load to:0x020d40bc module:main +from:0x0220fa0c kind:load to:0x020d40b4 module:main add:8 from:0x0220fa10 kind:load to:0x027e1b9c module:dtcm from:0x0220fa34 kind:arm_call to:0x01ffbb90 module:itcm from:0x0220fa3c kind:arm_call to:0x0202d5e4 module:main from:0x0220fa44 kind:arm_call to:0x020115a4 module:main -from:0x0220fa50 kind:load to:0x020d40bc module:main +from:0x0220fa50 kind:load to:0x020d40b4 module:main add:8 from:0x0220fa54 kind:load to:0x027e1b9c module:dtcm from:0x0220fa7c kind:load to:0x02196f0c module:main from:0x0220fa80 kind:load to:0x0201d7c8 module:main diff --git a/config/YFEE01/arm9/overlays/ov006/relocs.txt b/config/YFEE01/arm9/overlays/ov006/relocs.txt index adaee18..2cf821a 100644 --- a/config/YFEE01/arm9/overlays/ov006/relocs.txt +++ b/config/YFEE01/arm9/overlays/ov006/relocs.txt @@ -161,21 +161,21 @@ from:0x02218bb4 kind:arm_call to:0x0202d5e4 module:main from:0x02218bbc kind:arm_call to:0x020115a4 module:main from:0x02218be8 kind:arm_call to:0x01ffbb90 module:itcm from:0x02218bf0 kind:arm_call to:0x0202d5e4 module:main -from:0x02218bfc kind:load to:0x020d40bc module:main +from:0x02218bfc kind:load to:0x020d40b4 module:main add:8 from:0x02218c00 kind:load to:0x027e1b9c module:dtcm from:0x02218c24 kind:arm_call to:0x01ffbb90 module:itcm from:0x02218c2c kind:arm_call to:0x0202d5e4 module:main from:0x02218c34 kind:arm_call to:0x020115a4 module:main -from:0x02218c40 kind:load to:0x020d40bc module:main +from:0x02218c40 kind:load to:0x020d40b4 module:main add:8 from:0x02218c44 kind:load to:0x027e1b9c module:dtcm from:0x02218c68 kind:arm_call to:0x01ffbb90 module:itcm from:0x02218c70 kind:arm_call to:0x0202d5e4 module:main -from:0x02218c7c kind:load to:0x020d40bc module:main +from:0x02218c7c kind:load to:0x020d40b4 module:main add:8 from:0x02218c80 kind:load to:0x027e1b9c module:dtcm from:0x02218ca4 kind:arm_call to:0x01ffbb90 module:itcm from:0x02218cac kind:arm_call to:0x0202d5e4 module:main from:0x02218cb4 kind:arm_call to:0x020115a4 module:main -from:0x02218cc0 kind:load to:0x020d40bc module:main +from:0x02218cc0 kind:load to:0x020d40b4 module:main add:8 from:0x02218cc4 kind:load to:0x027e1b9c module:dtcm from:0x02218cfc kind:arm_call to:0x02010f98 module:main from:0x02218d0c kind:arm_call to:0x02039e10 module:main @@ -555,30 +555,30 @@ from:0x0221afa8 kind:load to:0x02196f24 module:main from:0x0221afb0 kind:arm_call to:0x02219e24 module:overlay(6) from:0x0221afdc kind:arm_call to:0x01ffbb90 module:itcm from:0x0221afe4 kind:arm_call to:0x0202d5e4 module:main -from:0x0221aff0 kind:load to:0x020d40bc module:main +from:0x0221aff0 kind:load to:0x020d40b4 module:main add:8 from:0x0221aff4 kind:load to:0x027e1b9c module:dtcm from:0x0221b018 kind:arm_call to:0x01ffbb90 module:itcm from:0x0221b020 kind:arm_call to:0x0202d5e4 module:main from:0x0221b028 kind:arm_call to:0x020115a4 module:main -from:0x0221b034 kind:load to:0x020d40bc module:main +from:0x0221b034 kind:load to:0x020d40b4 module:main add:8 from:0x0221b038 kind:load to:0x027e1b9c module:dtcm from:0x0221b05c kind:arm_call to:0x01ffbb90 module:itcm from:0x0221b064 kind:arm_call to:0x0202d5e4 module:main -from:0x0221b070 kind:load to:0x020d40bc module:main +from:0x0221b070 kind:load to:0x020d40b4 module:main add:8 from:0x0221b074 kind:load to:0x027e1b9c module:dtcm from:0x0221b098 kind:arm_call to:0x01ffbb90 module:itcm from:0x0221b0a0 kind:arm_call to:0x0202d5e4 module:main from:0x0221b0a8 kind:arm_call to:0x020115a4 module:main -from:0x0221b0b4 kind:load to:0x020d40bc module:main +from:0x0221b0b4 kind:load to:0x020d40b4 module:main add:8 from:0x0221b0b8 kind:load to:0x027e1b9c module:dtcm from:0x0221b0dc kind:arm_call to:0x01ffbb90 module:itcm from:0x0221b0e4 kind:arm_call to:0x0202d5e4 module:main -from:0x0221b0f0 kind:load to:0x020d40bc module:main +from:0x0221b0f0 kind:load to:0x020d40b4 module:main add:8 from:0x0221b0f4 kind:load to:0x027e1b9c module:dtcm from:0x0221b118 kind:arm_call to:0x01ffbb90 module:itcm from:0x0221b120 kind:arm_call to:0x0202d5e4 module:main from:0x0221b128 kind:arm_call to:0x020115a4 module:main -from:0x0221b134 kind:load to:0x020d40bc module:main +from:0x0221b134 kind:load to:0x020d40b4 module:main add:8 from:0x0221b138 kind:load to:0x027e1b9c module:dtcm from:0x0221b144 kind:arm_call to:0x0202d5e4 module:main from:0x0221b158 kind:arm_call to:0x0202d5e4 module:main diff --git a/config/YFEE01/arm9/overlays/ov007/relocs.txt b/config/YFEE01/arm9/overlays/ov007/relocs.txt index 0b137ac..c7e2224 100644 --- a/config/YFEE01/arm9/overlays/ov007/relocs.txt +++ b/config/YFEE01/arm9/overlays/ov007/relocs.txt @@ -331,12 +331,12 @@ from:0x0221933c kind:arm_call to:0x02002c3c module:main from:0x02219344 kind:arm_call to:0x020115a4 module:main from:0x02219370 kind:arm_call to:0x01ffbb90 module:itcm from:0x02219378 kind:arm_call to:0x0202d5e4 module:main -from:0x02219384 kind:load to:0x020d40bc module:main +from:0x02219384 kind:load to:0x020d40b4 module:main add:8 from:0x02219388 kind:load to:0x027e1b9c module:dtcm from:0x022193ac kind:arm_call to:0x01ffbb90 module:itcm from:0x022193b4 kind:arm_call to:0x0202d5e4 module:main from:0x022193bc kind:arm_call to:0x020115a4 module:main -from:0x022193c8 kind:load to:0x020d40bc module:main +from:0x022193c8 kind:load to:0x020d40b4 module:main add:8 from:0x022193cc kind:load to:0x027e1b9c module:dtcm from:0x022193d8 kind:load to:0x021f174c module:overlay(3) from:0x022193e4 kind:load to:0x021f171c module:overlay(3) diff --git a/config/YFEE01/arm9/relocs.txt b/config/YFEE01/arm9/relocs.txt index 1980eda..4c65caf 100644 --- a/config/YFEE01/arm9/relocs.txt +++ b/config/YFEE01/arm9/relocs.txt @@ -2272,16 +2272,16 @@ from:0x020149ac kind:arm_call to:0x02011574 module:main from:0x020149b8 kind:arm_call to:0x020302e0 module:main from:0x02014a7c kind:arm_call to:0x020303bc module:main from:0x02014a90 kind:load to:0x020efc84 module:main -from:0x02014a94 kind:load to:0x020cb5f8 module:main -from:0x02014a98 kind:load to:0x020cb518 module:main -from:0x02014a9c kind:load to:0x020cb358 module:main -from:0x02014aa0 kind:load to:0x020cb278 module:main -from:0x02014aa4 kind:load to:0x020cb0b8 module:main -from:0x02014aa8 kind:load to:0x020cafd8 module:main -from:0x02014aac kind:load to:0x020cba98 module:main -from:0x02014ab0 kind:load to:0x020cb958 module:main -from:0x02014ab4 kind:load to:0x020cb818 module:main -from:0x02014ab8 kind:load to:0x020cb6d8 module:main +from:0x02014a94 kind:load to:0x020cb5f0 module:main add:8 +from:0x02014a98 kind:load to:0x020cb510 module:main add:8 +from:0x02014a9c kind:load to:0x020cb350 module:main add:8 +from:0x02014aa0 kind:load to:0x020cb270 module:main add:8 +from:0x02014aa4 kind:load to:0x020cb0b0 module:main add:8 +from:0x02014aa8 kind:load to:0x020cafd0 module:main add:8 +from:0x02014aac kind:load to:0x020cba90 module:main add:8 +from:0x02014ab0 kind:load to:0x020cb950 module:main add:8 +from:0x02014ab4 kind:load to:0x020cb810 module:main add:8 +from:0x02014ab8 kind:load to:0x020cb6d0 module:main add:8 from:0x02014abc kind:load to:0x020cac9c module:main from:0x02014ac0 kind:load to:0x020caca4 module:main from:0x02014ac4 kind:load to:0x020cacac module:main @@ -2311,7 +2311,7 @@ from:0x02014d80 kind:arm_call to:0x01ffc018 module:itcm from:0x02014dbc kind:arm_call to:0x01ffc018 module:itcm from:0x02014de4 kind:load to:0x020efc84 module:main from:0x02014de8 kind:load to:0x020ce750 module:main -from:0x02014dec kind:load to:0x020caf88 module:main +from:0x02014dec kind:load to:0x020caf80 module:main add:8 from:0x02014df0 kind:load to:0x020cbbd0 module:main from:0x02014df4 kind:load to:0x020cbbe0 module:main from:0x02014df8 kind:load to:0x020cbbf8 module:main @@ -2350,25 +2350,25 @@ from:0x02015514 kind:arm_call to:0x02019020 module:main from:0x0201553c kind:arm_call to:0x01ffbb90 module:itcm from:0x02015544 kind:arm_call to:0x0202d5e4 module:main from:0x0201554c kind:arm_call to:0x020115a4 module:main -from:0x02015558 kind:load to:0x020cb818 module:main +from:0x02015558 kind:load to:0x020cb810 module:main add:8 from:0x0201555c kind:load to:0x020caccc module:main from:0x02015560 kind:load to:0x020efc84 module:main -from:0x02015564 kind:load to:0x020d40bc module:main +from:0x02015564 kind:load to:0x020d40b4 module:main add:8 from:0x02015568 kind:load to:0x027e1b9c module:dtcm from:0x02015580 kind:arm_call to:0x02019020 module:main from:0x020155a8 kind:arm_call to:0x01ffbb90 module:itcm from:0x020155b0 kind:arm_call to:0x0202d5e4 module:main -from:0x020155bc kind:load to:0x020cb818 module:main +from:0x020155bc kind:load to:0x020cb810 module:main add:8 from:0x020155c0 kind:load to:0x020caccc module:main from:0x020155c4 kind:load to:0x020efc84 module:main -from:0x020155c8 kind:load to:0x020d40bc module:main +from:0x020155c8 kind:load to:0x020d40b4 module:main add:8 from:0x020155cc kind:load to:0x027e1b9c module:dtcm from:0x020155d8 kind:arm_call to:0x0202f5b4 module:main from:0x020155e4 kind:arm_call to:0x01ffbf90 module:itcm from:0x0201560c kind:arm_call to:0x0202b70c module:main from:0x02015618 kind:arm_call to:0x01ffbfd0 module:itcm from:0x02015620 kind:load to:0x020caccc module:main -from:0x02015624 kind:load to:0x020cafa0 module:main +from:0x02015624 kind:load to:0x020caf98 module:main add:8 from:0x02015630 kind:arm_call to:0x0202f468 module:main from:0x02015640 kind:arm_call to:0x020290f4 module:main from:0x02015668 kind:arm_call to:0x02028e7c module:main @@ -2385,43 +2385,43 @@ from:0x02015844 kind:arm_call to:0x01ffbb90 module:itcm from:0x0201584c kind:arm_call to:0x0202d5e4 module:main from:0x02015854 kind:arm_call to:0x020115a4 module:main from:0x02015860 kind:load to:0x020efc84 module:main -from:0x02015864 kind:load to:0x020d40bc module:main +from:0x02015864 kind:load to:0x020d40b4 module:main add:8 from:0x02015868 kind:load to:0x027e1b9c module:dtcm from:0x02015898 kind:arm_call to:0x01ffbb90 module:itcm from:0x020158a0 kind:arm_call to:0x0202d5e4 module:main from:0x020158ac kind:load to:0x020efc84 module:main -from:0x020158b0 kind:load to:0x020d40bc module:main +from:0x020158b0 kind:load to:0x020d40b4 module:main add:8 from:0x020158b4 kind:load to:0x027e1b9c module:dtcm from:0x020158d8 kind:arm_call to:0x01ff9998 module:itcm from:0x020158e4 kind:arm_call to:0x01ffbb90 module:itcm from:0x020158ec kind:arm_call to:0x020115a4 module:main -from:0x020158f8 kind:load to:0x020cafa0 module:main +from:0x020158f8 kind:load to:0x020caf98 module:main add:8 from:0x020158fc kind:load to:0x027e1b9c module:dtcm from:0x02015920 kind:arm_call to:0x01ff9998 module:itcm from:0x0201592c kind:arm_call to:0x01ffbb90 module:itcm -from:0x02015938 kind:load to:0x020cafa0 module:main +from:0x02015938 kind:load to:0x020caf98 module:main add:8 from:0x0201593c kind:load to:0x027e1b9c module:dtcm from:0x02015974 kind:arm_call to:0x01ffbb90 module:itcm from:0x0201597c kind:arm_call to:0x0202d5e4 module:main from:0x02015988 kind:load to:0x020efc84 module:main -from:0x0201598c kind:load to:0x020d40bc module:main +from:0x0201598c kind:load to:0x020d40b4 module:main add:8 from:0x02015990 kind:load to:0x027e1b9c module:dtcm from:0x020159c0 kind:arm_call to:0x01ffbb90 module:itcm from:0x020159c8 kind:arm_call to:0x0202d5e4 module:main from:0x020159d0 kind:arm_call to:0x020115a4 module:main from:0x020159dc kind:load to:0x020efc84 module:main -from:0x020159e0 kind:load to:0x020d40bc module:main +from:0x020159e0 kind:load to:0x020d40b4 module:main add:8 from:0x020159e4 kind:load to:0x027e1b9c module:dtcm from:0x02015a14 kind:arm_call to:0x01ffbb90 module:itcm from:0x02015a1c kind:arm_call to:0x0202d5e4 module:main from:0x02015a28 kind:load to:0x020efc84 module:main -from:0x02015a2c kind:load to:0x020d40bc module:main +from:0x02015a2c kind:load to:0x020d40b4 module:main add:8 from:0x02015a30 kind:load to:0x027e1b9c module:dtcm from:0x02015a60 kind:arm_call to:0x01ffbb90 module:itcm from:0x02015a68 kind:arm_call to:0x0202d5e4 module:main from:0x02015a70 kind:arm_call to:0x020115a4 module:main from:0x02015a7c kind:load to:0x020efc84 module:main -from:0x02015a80 kind:load to:0x020d40bc module:main +from:0x02015a80 kind:load to:0x020d40b4 module:main add:8 from:0x02015a84 kind:load to:0x027e1b9c module:dtcm from:0x02015a94 kind:arm_call to:0x020115a4 module:main from:0x02015ae0 kind:load to:0x020cbc88 module:main @@ -4753,12 +4753,12 @@ from:0x020288b0 kind:arm_call to:0x0202d5e4 module:main from:0x020288b8 kind:arm_call to:0x020115a4 module:main from:0x020288e4 kind:arm_call to:0x01ffbb90 module:itcm from:0x020288ec kind:arm_call to:0x0202d5e4 module:main -from:0x020288f8 kind:load to:0x020d40bc module:main +from:0x020288f8 kind:load to:0x020d40b4 module:main add:8 from:0x020288fc kind:load to:0x027e1b9c module:dtcm from:0x02028920 kind:arm_call to:0x01ffbb90 module:itcm from:0x02028928 kind:arm_call to:0x0202d5e4 module:main from:0x02028930 kind:arm_call to:0x020115a4 module:main -from:0x0202893c kind:load to:0x020d40bc module:main +from:0x0202893c kind:load to:0x020d40b4 module:main add:8 from:0x02028940 kind:load to:0x027e1b9c module:dtcm from:0x02028948 kind:arm_call to:0x02026928 module:main from:0x02028978 kind:load to:0x020eea90 module:main @@ -5310,7 +5310,7 @@ from:0x02030260 kind:load to:0x020d3dbc module:main add:8 from:0x02030284 kind:arm_call to:0x0202f7d0 module:main from:0x020302c8 kind:load to:0x020d3dbc module:main add:8 from:0x020302e8 kind:arm_call to:0x0202d4c4 module:main -from:0x02030328 kind:load to:0x020d40bc module:main +from:0x02030328 kind:load to:0x020d40b4 module:main add:8 from:0x0203032c kind:load to:0x020d3f74 module:main add:8 from:0x02030344 kind:arm_call to:0x0202a4dc module:main from:0x02030368 kind:arm_call to:0x0202b688 module:main @@ -5364,20 +5364,20 @@ from:0x02030e00 kind:load to:0x021970c4 module:main from:0x02030e2c kind:arm_call to:0x01ffbb90 module:itcm from:0x02030e34 kind:arm_call to:0x0202d5e4 module:main from:0x02030e3c kind:arm_call to:0x020115a4 module:main -from:0x02030e48 kind:load to:0x020d40bc module:main +from:0x02030e48 kind:load to:0x020d40b4 module:main add:8 from:0x02030e4c kind:load to:0x027e1b9c module:dtcm from:0x02030e70 kind:arm_call to:0x01ffbb90 module:itcm from:0x02030e78 kind:arm_call to:0x0202d5e4 module:main -from:0x02030e84 kind:load to:0x020d40bc module:main +from:0x02030e84 kind:load to:0x020d40b4 module:main add:8 from:0x02030e88 kind:load to:0x027e1b9c module:dtcm from:0x02030eac kind:arm_call to:0x01ffbb90 module:itcm from:0x02030eb4 kind:arm_call to:0x0202d5e4 module:main from:0x02030ebc kind:arm_call to:0x020115a4 module:main -from:0x02030ec8 kind:load to:0x020d40bc module:main +from:0x02030ec8 kind:load to:0x020d40b4 module:main add:8 from:0x02030ecc kind:load to:0x027e1b9c module:dtcm from:0x02030ef0 kind:arm_call to:0x01ffbb90 module:itcm from:0x02030ef8 kind:arm_call to:0x0202d5e4 module:main -from:0x02030f04 kind:load to:0x020d40bc module:main +from:0x02030f04 kind:load to:0x020d40b4 module:main add:8 from:0x02030f08 kind:load to:0x027e1b9c module:dtcm from:0x02030fb0 kind:load to:0x020d4324 module:main from:0x02030fc4 kind:arm_call to:0x02033a38 module:main @@ -9594,7 +9594,7 @@ from:0x02052c38 kind:arm_call to:0x0202fb38 module:main from:0x02052c40 kind:load to:0x02197510 module:main from:0x02052c44 kind:load to:0x020d7604 module:main from:0x02052c48 kind:load to:0x020d7524 module:main -from:0x02052c4c kind:load to:0x020d40bc module:main +from:0x02052c4c kind:load to:0x020d40b4 module:main add:8 from:0x02052c50 kind:load to:0x020d831c module:main from:0x02052c54 kind:load to:0x020d6a54 module:main from:0x02052c84 kind:arm_call to:0x02011574 module:main @@ -10593,13 +10593,13 @@ from:0x020593ec kind:arm_call to:0x01ffbb90 module:itcm from:0x020593f4 kind:arm_call to:0x0202d5e4 module:main from:0x020593fc kind:arm_call to:0x020115a4 module:main from:0x02059408 kind:load to:0x020d831c module:main -from:0x0205940c kind:load to:0x020d40bc module:main +from:0x0205940c kind:load to:0x020d40b4 module:main add:8 from:0x02059410 kind:load to:0x027e1b9c module:dtcm from:0x02059430 kind:arm_call to:0x0202a4dc module:main from:0x0205944c kind:arm_call to:0x01ffbb90 module:itcm from:0x02059454 kind:arm_call to:0x0202d5e4 module:main from:0x02059460 kind:load to:0x020d831c module:main -from:0x02059464 kind:load to:0x020d40bc module:main +from:0x02059464 kind:load to:0x020d40b4 module:main add:8 from:0x02059468 kind:load to:0x027e1b9c module:dtcm from:0x020594a0 kind:arm_call to:0x0202ab44 module:main from:0x020594ac kind:load to:0x027e1268 module:dtcm @@ -12322,7 +12322,7 @@ from:0x02064a04 kind:arm_call to:0x0202d5e4 module:main from:0x02064a0c kind:arm_call to:0x020115a4 module:main from:0x02064a18 kind:load to:0x020d9b54 module:main from:0x02064a1c kind:load to:0x02197600 module:main -from:0x02064a20 kind:load to:0x020d40bc module:main +from:0x02064a20 kind:load to:0x020d40b4 module:main add:8 from:0x02064a24 kind:load to:0x027e1b9c module:dtcm from:0x02064a44 kind:arm_call to:0x02005020 module:main from:0x02064a4c kind:arm_call to:0x0202f800 module:main @@ -12343,7 +12343,7 @@ from:0x02064b98 kind:arm_call to:0x01ffbb90 module:itcm from:0x02064ba0 kind:arm_call to:0x0202d5e4 module:main from:0x02064bac kind:load to:0x020d9b54 module:main from:0x02064bb0 kind:load to:0x02197600 module:main -from:0x02064bb4 kind:load to:0x020d40bc module:main +from:0x02064bb4 kind:load to:0x020d40b4 module:main add:8 from:0x02064bb8 kind:load to:0x027e1b9c module:dtcm from:0x02064bc8 kind:arm_call to:0x020115a4 module:main from:0x02064bdc kind:arm_call to:0x02004fdc module:main @@ -13353,24 +13353,24 @@ from:0x0206bcf0 kind:arm_call to:0x0202d5e4 module:main from:0x0206bcf8 kind:arm_call to:0x020115a4 module:main from:0x0206bd24 kind:arm_call to:0x01ffbb90 module:itcm from:0x0206bd2c kind:arm_call to:0x0202d5e4 module:main -from:0x0206bd38 kind:load to:0x020d40bc module:main +from:0x0206bd38 kind:load to:0x020d40b4 module:main add:8 from:0x0206bd3c kind:load to:0x027e1b9c module:dtcm from:0x0206bd60 kind:arm_call to:0x01ffbb90 module:itcm from:0x0206bd68 kind:arm_call to:0x0202d5e4 module:main from:0x0206bd70 kind:arm_call to:0x020115a4 module:main -from:0x0206bd7c kind:load to:0x020d40bc module:main +from:0x0206bd7c kind:load to:0x020d40b4 module:main add:8 from:0x0206bd80 kind:load to:0x027e1b9c module:dtcm from:0x0206bd8c kind:arm_call to:0x020310d8 module:main from:0x0206bda0 kind:arm_call to:0x020310d8 module:main from:0x0206bda8 kind:arm_call to:0x020115a4 module:main from:0x0206bdd4 kind:arm_call to:0x01ffbb90 module:itcm from:0x0206bddc kind:arm_call to:0x0202d5e4 module:main -from:0x0206bde8 kind:load to:0x020d40bc module:main +from:0x0206bde8 kind:load to:0x020d40b4 module:main add:8 from:0x0206bdec kind:load to:0x027e1b9c module:dtcm from:0x0206be10 kind:arm_call to:0x01ffbb90 module:itcm from:0x0206be18 kind:arm_call to:0x0202d5e4 module:main from:0x0206be20 kind:arm_call to:0x020115a4 module:main -from:0x0206be2c kind:load to:0x020d40bc module:main +from:0x0206be2c kind:load to:0x020d40b4 module:main add:8 from:0x0206be30 kind:load to:0x027e1b9c module:dtcm from:0x0206be78 kind:arm_call to:0x02020a2c module:main from:0x0206bebc kind:arm_call to:0x020110a8 module:main @@ -23419,9 +23419,9 @@ from:0x020c5054 kind:load to:0x020d2048 module:main from:0x020c5058 kind:load to:0x020d2128 module:main from:0x020c505c kind:load to:0x020d1da8 module:main from:0x020c5060 kind:load to:0x020d1b08 module:main -from:0x020c507c kind:load to:0x020cb438 module:main +from:0x020c507c kind:load to:0x020cb430 module:main add:8 from:0x020c5080 kind:load to:0x021970d0 module:main -from:0x020c5084 kind:load to:0x020cb198 module:main +from:0x020c5084 kind:load to:0x020cb190 module:main add:8 from:0x020c50a8 kind:arm_call to:0x020c42a4 module:main from:0x020c50b0 kind:load to:0x02197234 module:main from:0x020c50b4 kind:load to:0x02197240 module:main diff --git a/config/YFEE01/arm9/symbols.txt b/config/YFEE01/arm9/symbols.txt index 68cf9a0..ad50b08 100644 --- a/config/YFEE01/arm9/symbols.txt +++ b/config/YFEE01/arm9/symbols.txt @@ -667,7 +667,7 @@ func_02014728 kind:function(arm,size=0x30) addr:0x02014728 func_02014758 kind:function(arm,size=0x10) addr:0x02014758 func_02014768 kind:function(arm,size=0x30) addr:0x02014768 func_02014798 kind:function(arm,size=0x28) addr:0x02014798 -func_020147c0 kind:function(arm,size=0x14) addr:0x020147c0 +LinkDialogBlink_Loop kind:function(arm,size=0x14) addr:0x020147c0 _ZN15LinkDialogBlink4LoopEv kind:function(arm,size=0x60) addr:0x020147d4 func_02014834 kind:function(arm,size=0x29c) addr:0x02014834 func_02014ad0 kind:function(arm,size=0x24) addr:0x02014ad0 @@ -5843,66 +5843,66 @@ data_020caca4 kind:data(any) addr:0x020caca4 data_020cacac kind:data(any) addr:0x020cacac data_020cacb4 kind:data(any) addr:0x020cacb4 data_020cacc0 kind:data(any) addr:0x020cacc0 -data_020caccc kind:data(any) addr:0x020caccc +ProcScr_LinkDialogBlink kind:data(any) addr:0x020caccc data_020cacf4 kind:data(any) addr:0x020cacf4 _ZTS4Menu kind:data(any) addr:0x020cacfc data_020cad04 kind:data(any) addr:0x020cad04 data_020cad0c kind:data(any) addr:0x020cad0c -__typestr__6Dialog kind:data(any) addr:0x020cad14 +_ZTS6Dialog kind:data(any) addr:0x020cad14 data_020cad1c kind:data(any) addr:0x020cad1c -__typestr__8MenuItem kind:data(any) addr:0x020cad28 -__typeinfo__15LinkDialogBlink kind:data(any) addr:0x020cad34 -__typeinfo__18LinkDialogItemNone kind:data(any) addr:0x020cad40 -__typeinfo__16LinkDialogItemOk kind:data(any) addr:0x020cad4c -__typeinfo__12DialogItemNo kind:data(any) addr:0x020cad58 -__typeinfo__18LinkDialogItemNext kind:data(any) addr:0x020cad64 -__typeinfo__17LinkDialogItemNoF kind:data(any) addr:0x020cad70 -__typeinfo__13DialogItemYes kind:data(any) addr:0x020cad7c -__typeinfo__16LinkDialogItemNo kind:data(any) addr:0x020cad88 -__typeinfo__6Dialog kind:data(any) addr:0x020cad94 -__typeinfo__17LinkDialogItemYes kind:data(any) addr:0x020cada0 -__typeinfo__18_LinkDialogConfirm kind:data(any) addr:0x020cadac -__typeinfo__10DialogBase kind:data(any) addr:0x020cadb8 -__typeinfo__15_LinkDialogNone kind:data(any) addr:0x020cadc4 -__typeinfo__10DialogItem kind:data(any) addr:0x020cadd0 -__typeinfo__16_LinkDialogYesNo kind:data(any) addr:0x020caddc +_ZTS8MenuItem kind:data(any) addr:0x020cad28 +_ZTI15LinkDialogBlink kind:data(any) addr:0x020cad34 +_ZTI18LinkDialogItemNone kind:data(any) addr:0x020cad40 +_ZTI16LinkDialogItemOk kind:data(any) addr:0x020cad4c +_ZTI12DialogItemNo kind:data(any) addr:0x020cad58 +_ZTI18LinkDialogItemNext kind:data(any) addr:0x020cad64 +_ZTI17LinkDialogItemNoF kind:data(any) addr:0x020cad70 +_ZTI13DialogItemYes kind:data(any) addr:0x020cad7c +_ZTI16LinkDialogItemNo kind:data(any) addr:0x020cad88 +_ZTI6Dialog kind:data(any) addr:0x020cad94 +_ZTI17LinkDialogItemYes kind:data(any) addr:0x020cada0 +_ZTI18_LinkDialogConfirm kind:data(any) addr:0x020cadac +_ZTI10DialogBase kind:data(any) addr:0x020cadb8 +_ZTI15_LinkDialogNone kind:data(any) addr:0x020cadc4 +_ZTI10DialogItem kind:data(any) addr:0x020cadd0 +_ZTI16_LinkDialogYesNo kind:data(any) addr:0x020caddc _ZTI4Menu kind:data(any) addr:0x020cade8 -__typeinfo__17_LinkDialogCommon kind:data(any) addr:0x020cadf4 -__typeinfo__15LinkErrorDialog kind:data(any) addr:0x020cae00 -__typestr__10DialogBase kind:data(any) addr:0x020cae0c -__typestr__10DialogItem kind:data(any) addr:0x020cae1c +_ZTI17_LinkDialogCommon kind:data(any) addr:0x020cadf4 +_ZTI15LinkErrorDialog kind:data(any) addr:0x020cae00 +_ZTS10DialogBase kind:data(any) addr:0x020cae0c +_ZTS10DialogItem kind:data(any) addr:0x020cae1c data_020cae2c kind:data(any) addr:0x020cae2c -__typestr__12DialogItemNo kind:data(any) addr:0x020cae3c -__typestr__13DialogItemYes kind:data(any) addr:0x020cae4c +_ZTS12DialogItemNo kind:data(any) addr:0x020cae3c +_ZTS13DialogItemYes kind:data(any) addr:0x020cae4c data_020cae5c kind:data(any) addr:0x020cae5c data_020cae70 kind:data(any) addr:0x020cae70 -__typestr__15_LinkDialogNone kind:data(any) addr:0x020cae84 -__typestr__15LinkErrorDialog kind:data(any) addr:0x020cae98 -__typestr__15LinkDialogBlink kind:data(any) addr:0x020caeac -__typestr__16LinkDialogItemOk kind:data(any) addr:0x020caec0 -__typestr__16LinkDialogItemNo kind:data(any) addr:0x020caed4 -__typestr__16_LinkDialogYesNo kind:data(any) addr:0x020caee8 -__typestr__17LinkDialogItemNoF kind:data(any) addr:0x020caefc -__typestr__17LinkDialogItemYes kind:data(any) addr:0x020caf10 -__typestr__17_LinkDialogCommon kind:data(any) addr:0x020caf24 -__typestr__18LinkDialogItemNone kind:data(any) addr:0x020caf38 -__typestr__18LinkDialogItemNext kind:data(any) addr:0x020caf50 -__typestr__18_LinkDialogConfirm kind:data(any) addr:0x020caf68 -__vt__15LinkErrorDialog kind:data(any) addr:0x020caf88 -__vt__15LinkDialogBlink kind:data(any) addr:0x020cafa0 -__typeinfo__8MenuItem kind:data(any) addr:0x020cafb0 -__vt__18LinkDialogItemNone kind:data(any) addr:0x020cafd8 -__vt__16LinkDialogItemOk kind:data(any) addr:0x020cb0b8 -data_020cb198 kind:data(any) addr:0x020cb198 -__vt__18LinkDialogItemNext kind:data(any) addr:0x020cb278 -__vt__17LinkDialogItemNoF kind:data(any) addr:0x020cb358 -data_020cb438 kind:data(any) addr:0x020cb438 -__vt__16LinkDialogItemNo kind:data(any) addr:0x020cb518 -__vt__17LinkDialogItemYes kind:data(any) addr:0x020cb5f8 -__vt__18_LinkDialogConfirm kind:data(any) addr:0x020cb6d8 -__vt__15_LinkDialogNone kind:data(any) addr:0x020cb818 -__vt__16_LinkDialogYesNo kind:data(any) addr:0x020cb958 -data_020cba98 kind:data(any) addr:0x020cba98 +_ZTS15_LinkDialogNone kind:data(any) addr:0x020cae84 +_ZTS15LinkErrorDialog kind:data(any) addr:0x020cae98 +_ZTS15LinkDialogBlink kind:data(any) addr:0x020caeac +_ZTS16LinkDialogItemOk kind:data(any) addr:0x020caec0 +_ZTS16LinkDialogItemNo kind:data(any) addr:0x020caed4 +_ZTS16_LinkDialogYesNo kind:data(any) addr:0x020caee8 +_ZTS17LinkDialogItemNoF kind:data(any) addr:0x020caefc +_ZTS17LinkDialogItemYes kind:data(any) addr:0x020caf10 +_ZTS17_LinkDialogCommon kind:data(any) addr:0x020caf24 +_ZTS18LinkDialogItemNone kind:data(any) addr:0x020caf38 +_ZTS18LinkDialogItemNext kind:data(any) addr:0x020caf50 +_ZTS18_LinkDialogConfirm kind:data(any) addr:0x020caf68 +_ZTV15LinkErrorDialog kind:data(any) addr:0x020caf80 +_ZTV15LinkDialogBlink kind:data(any) addr:0x020caf98 +_ZTI8MenuItem kind:data(any) addr:0x020cafb0 +_ZTV18LinkDialogItemNone kind:data(any) addr:0x020cafd0 +_ZTV16LinkDialogItemOk kind:data(any) addr:0x020cb0b0 +_ZTV12DialogItemNo kind:data(any) addr:0x020cb190 +_ZTV18LinkDialogItemNext kind:data(any) addr:0x020cb270 +_ZTV17LinkDialogItemNoF kind:data(any) addr:0x020cb350 +_ZTV13DialogItemYes kind:data(any) addr:0x020cb430 +_ZTV16LinkDialogItemNo kind:data(any) addr:0x020cb510 +_ZTV17LinkDialogItemYes kind:data(any) addr:0x020cb5f0 +_ZTV18_LinkDialogConfirm kind:data(any) addr:0x020cb6d0 +_ZTV15_LinkDialogNone kind:data(any) addr:0x020cb810 +_ZTV16_LinkDialogYesNo kind:data(any) addr:0x020cb950 +_ZTV17_LinkDialogCommon kind:data(any) addr:0x020cba90 data_020cbbd0 kind:data(any) addr:0x020cbbd0 data_020cbbe0 kind:data(any) addr:0x020cbbe0 data_020cbbf8 kind:data(any) addr:0x020cbbf8 @@ -6781,7 +6781,7 @@ _ZTV8ProcMenu kind:data(any) addr:0x020d3dbc ProcScr_ProcMenu kind:data(any) addr:0x020d3dd4 _ZTV4Menu kind:data(any) addr:0x020d3e34 _ZTV6Dialog kind:data(any) addr:0x020d3f74 -data_020d40bc kind:data(any) addr:0x020d40bc +_ZTV10DialogBase kind:data(any) addr:0x020d40b4 __typestr__6Button kind:data(any) addr:0x020d41f4 __typeinfo__6Button kind:data(any) addr:0x020d41fc __typeinfo__14ProcScrollMenu kind:data(any) addr:0x020d4208 diff --git a/include/unknown_data.h b/include/unknown_data.h index 6f4e15f..bb8c9c0 100644 --- a/include/unknown_data.h +++ b/include/unknown_data.h @@ -292,66 +292,66 @@ extern struct KeyState * gKeySt; // extern ??? data_020cacac // extern ??? data_020cacb4 // extern ??? data_020cacc0 -// extern ??? data_020caccc +// extern ??? ProcScr_LinkDialogBlink // extern ??? data_020cacf4 // extern ??? _ZTS4Menu // extern ??? data_020cad04 // extern ??? data_020cad0c -// extern ??? __typestr__6Dialog +// extern ??? _ZTS6Dialog // extern ??? data_020cad1c -// extern ??? __typestr__8MenuItem -// extern ??? __typeinfo__15LinkDialogBlink -// extern ??? __typeinfo__18LinkDialogItemNone -// extern ??? __typeinfo__16LinkDialogItemOk -// extern ??? __typeinfo__12DialogItemNo -// extern ??? __typeinfo__18LinkDialogItemNext -// extern ??? __typeinfo__17LinkDialogItemNoF -// extern ??? __typeinfo__13DialogItemYes -// extern ??? __typeinfo__16LinkDialogItemNo -// extern ??? __typeinfo__6Dialog -// extern ??? __typeinfo__17LinkDialogItemYes -// extern ??? __typeinfo__18_LinkDialogConfirm -// extern ??? __typeinfo__10DialogBase -// extern ??? __typeinfo__15_LinkDialogNone -// extern ??? __typeinfo__10DialogItem -// extern ??? __typeinfo__16_LinkDialogYesNo +// extern ??? _ZTS8MenuItem +// extern ??? _ZTI15LinkDialogBlink +// extern ??? _ZTI18LinkDialogItemNone +// extern ??? _ZTI16LinkDialogItemOk +// extern ??? _ZTI12DialogItemNo +// extern ??? _ZTI18LinkDialogItemNext +// extern ??? _ZTI17LinkDialogItemNoF +// extern ??? _ZTI13DialogItemYes +// extern ??? _ZTI16LinkDialogItemNo +// extern ??? _ZTI6Dialog +// extern ??? _ZTI17LinkDialogItemYes +// extern ??? _ZTI18_LinkDialogConfirm +// extern ??? _ZTI10DialogBase +// extern ??? _ZTI15_LinkDialogNone +// extern ??? _ZTI10DialogItem +// extern ??? _ZTI16_LinkDialogYesNo // extern ??? _ZTI4Menu -// extern ??? __typeinfo__17_LinkDialogCommon -// extern ??? __typeinfo__15LinkErrorDialog -// extern ??? __typestr__10DialogBase -// extern ??? __typestr__10DialogItem +// extern ??? _ZTI17_LinkDialogCommon +// extern ??? _ZTI15LinkErrorDialog +// extern ??? _ZTS10DialogBase +// extern ??? _ZTS10DialogItem // extern ??? data_020cae2c -// extern ??? __typestr__12DialogItemNo -// extern ??? __typestr__13DialogItemYes +// extern ??? _ZTS12DialogItemNo +// extern ??? _ZTS13DialogItemYes // extern ??? data_020cae5c // extern ??? data_020cae70 -// extern ??? __typestr__15_LinkDialogNone -// extern ??? __typestr__15LinkErrorDialog -// extern ??? __typestr__15LinkDialogBlink -// extern ??? __typestr__16LinkDialogItemOk -// extern ??? __typestr__16LinkDialogItemNo -// extern ??? __typestr__16_LinkDialogYesNo -// extern ??? __typestr__17LinkDialogItemNoF -// extern ??? __typestr__17LinkDialogItemYes -// extern ??? __typestr__17_LinkDialogCommon -// extern ??? __typestr__18LinkDialogItemNone -// extern ??? __typestr__18LinkDialogItemNext -// extern ??? __typestr__18_LinkDialogConfirm -// extern ??? __vt__15LinkErrorDialog -// extern ??? __vt__15LinkDialogBlink -// extern ??? __typeinfo__8MenuItem -// extern ??? __vt__18LinkDialogItemNone -// extern ??? __vt__16LinkDialogItemOk -// extern ??? data_020cb198 -// extern ??? __vt__18LinkDialogItemNext -// extern ??? __vt__17LinkDialogItemNoF -// extern ??? data_020cb438 -// extern ??? __vt__16LinkDialogItemNo -// extern ??? __vt__17LinkDialogItemYes -// extern ??? __vt__18_LinkDialogConfirm -// extern ??? __vt__15_LinkDialogNone -// extern ??? __vt__16_LinkDialogYesNo -// extern ??? data_020cba98 +// extern ??? _ZTS15_LinkDialogNone +// extern ??? _ZTS15LinkErrorDialog +// extern ??? _ZTS15LinkDialogBlink +// extern ??? _ZTS16LinkDialogItemOk +// extern ??? _ZTS16LinkDialogItemNo +// extern ??? _ZTS16_LinkDialogYesNo +// extern ??? _ZTS17LinkDialogItemNoF +// extern ??? _ZTS17LinkDialogItemYes +// extern ??? _ZTS17_LinkDialogCommon +// extern ??? _ZTS18LinkDialogItemNone +// extern ??? _ZTS18LinkDialogItemNext +// extern ??? _ZTS18_LinkDialogConfirm +// extern ??? _ZTV15LinkErrorDialog +// extern ??? _ZTV15LinkDialogBlink +// extern ??? _ZTI8MenuItem +// extern ??? _ZTV18LinkDialogItemNone +// extern ??? _ZTV16LinkDialogItemOk +// extern ??? _ZTV12DialogItemNo +// extern ??? _ZTV18LinkDialogItemNext +// extern ??? _ZTV17LinkDialogItemNoF +// extern ??? _ZTV13DialogItemYes +// extern ??? _ZTV16LinkDialogItemNo +// extern ??? _ZTV17LinkDialogItemYes +// extern ??? _ZTV18_LinkDialogConfirm +// extern ??? _ZTV15_LinkDialogNone +// extern ??? _ZTV16_LinkDialogYesNo +// extern ??? _ZTV17_LinkDialogCommon // extern ??? data_020cbbd0 // extern ??? data_020cbbe0 // extern ??? data_020cbbf8 @@ -1230,7 +1230,7 @@ extern struct ProcCmd data_020cec14[]; // extern ??? ProcScr_ProcMenu // extern ??? _ZTV4Menu // extern ??? _ZTV6Dialog -// extern ??? data_020d40bc +// extern ??? _ZTV10DialogBase // extern ??? __typestr__6Button // extern ??? __typeinfo__6Button // extern ??? __typeinfo__14ProcScrollMenu diff --git a/include/unknown_funcs.h b/include/unknown_funcs.h index 3f91032..5f8c16e 100644 --- a/include/unknown_funcs.h +++ b/include/unknown_funcs.h @@ -688,7 +688,7 @@ EC void func_020146a0(void); // EC ??? func_02014758 // EC ??? func_02014768 // EC ??? func_02014798 -// EC ??? func_020147c0 +// EC ??? LinkDialogBlink_Loop // EC ??? _ZN15LinkDialogBlink4LoopEv // EC ??? func_02014834 // EC ??? func_02014ad0 diff --git a/src/link_dialog.cpp b/src/link_dialog.cpp index 95aadd6..6046bbf 100644 --- a/src/link_dialog.cpp +++ b/src/link_dialog.cpp @@ -54,7 +54,24 @@ extern struct UnkStruct_02196f20 * data_02196f20; extern struct TouchState * gTouchSt; -extern struct ProcCmd data_020caccc[]; +class LinkDialogBlink; + +EC void LinkDialogBlink_Loop(LinkDialogBlink * proc); + +// clang-format off + +struct ProcCmd ProcScr_LinkDialogBlink[] = +{ + PROC_NAME, + PROC_NAME, + PROC_SLEEP(0), + + PROC_REPEAT(LinkDialogBlink_Loop), + + PROC_END, +}; + +// clang-format on struct UnkStruct_020efc84 { @@ -342,7 +359,7 @@ class _LinkDialogNone : public _LinkDialogCommon Menu::vfunc_11c(); - proc = new (func_01ffbf90(data_020caccc, PROC_TREE_3)) LinkDialogBlink(this->unk_20); + proc = new (func_01ffbf90(ProcScr_LinkDialogBlink, PROC_TREE_3)) LinkDialogBlink(this->unk_20); func_01ffbfd0(proc); return; @@ -350,7 +367,7 @@ class _LinkDialogNone : public _LinkDialogCommon virtual ~_LinkDialogNone() { - Proc_EndEach(data_020caccc); + Proc_EndEach(ProcScr_LinkDialogBlink); } }; @@ -447,7 +464,7 @@ class LinkDialogItemNone : public DialogItem } }; -EC void func_020147c0(LinkDialogBlink * proc) +EC void LinkDialogBlink_Loop(LinkDialogBlink * proc) { proc->Loop(); return;