diff --git a/config/GMPE01_00/rels/messDll/symbols.txt b/config/GMPE01_00/rels/messDll/symbols.txt index 4ff0390b..5a124210 100644 --- a/config/GMPE01_00/rels/messDll/symbols.txt +++ b/config/GMPE01_00/rels/messDll/symbols.txt @@ -1,105 +1,105 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global ModuleProlog = .text:0x000000A0; // type:function size:0x21C -fn_1_2BC = .text:0x000002BC; // type:function size:0x44 -fn_1_300 = .text:0x00000300; // type:function size:0xB88 -fn_1_E88 = .text:0x00000E88; // type:function size:0x328 -fn_1_11B0 = .text:0x000011B0; // type:function size:0x2F0 +fn_1_2BC = .text:0x000002BC; // type:function size:0x44 scope:local +fn_1_300 = .text:0x00000300; // type:function size:0xB88 scope:local +fn_1_E88 = .text:0x00000E88; // type:function size:0x328 scope:local +fn_1_11B0 = .text:0x000011B0; // type:function size:0x2F0 scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 data:string -lbl_1_data_22 = .data:0x00000022; // type:object size:0x16 data:string -lbl_1_data_38 = .data:0x00000038; // type:object size:0x11 data:string -lbl_1_data_49 = .data:0x00000049; // type:object size:0xD data:string -lbl_1_data_56 = .data:0x00000056; // type:object size:0xD data:string -lbl_1_data_63 = .data:0x00000063; // type:object size:0xB data:string -lbl_1_data_6E = .data:0x0000006E; // type:object size:0xF data:string -lbl_1_data_7D = .data:0x0000007D; // type:object size:0xE data:string -lbl_1_data_8B = .data:0x0000008B; // type:object size:0xE data:string -lbl_1_data_99 = .data:0x00000099; // type:object size:0xD data:string -lbl_1_data_A6 = .data:0x000000A6; // type:object size:0x9 data:string -lbl_1_data_AF = .data:0x000000AF; // type:object size:0xE data:string -lbl_1_data_BD = .data:0x000000BD; // type:object size:0xF data:string -lbl_1_data_CC = .data:0x000000CC; // type:object size:0xB data:string -lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x12 data:string -lbl_1_data_E9 = .data:0x000000E9; // type:object size:0xA data:string -lbl_1_data_F3 = .data:0x000000F3; // type:object size:0xD data:string -lbl_1_data_100 = .data:0x00000100; // type:object size:0xB data:string -lbl_1_data_10B = .data:0x0000010B; // type:object size:0xF data:string -lbl_1_data_11A = .data:0x0000011A; // type:object size:0x9 data:string -lbl_1_data_123 = .data:0x00000123; // type:object size:0xF data:string -lbl_1_data_132 = .data:0x00000132; // type:object size:0x13 data:string -lbl_1_data_145 = .data:0x00000145; // type:object size:0xF data:string -lbl_1_data_154 = .data:0x00000154; // type:object size:0xF data:string -lbl_1_data_163 = .data:0x00000163; // type:object size:0x12 data:string -lbl_1_data_175 = .data:0x00000175; // type:object size:0xB data:string -lbl_1_data_180 = .data:0x00000180; // type:object size:0xD data:string -lbl_1_data_18D = .data:0x0000018D; // type:object size:0xF data:string -lbl_1_data_19C = .data:0x0000019C; // type:object size:0xA data:string -lbl_1_data_1A6 = .data:0x000001A6; // type:object size:0xC data:string -lbl_1_data_1B2 = .data:0x000001B2; // type:object size:0xD data:string -lbl_1_data_1BF = .data:0x000001BF; // type:object size:0xF data:string -lbl_1_data_1CE = .data:0x000001CE; // type:object size:0x11 data:string -lbl_1_data_1DF = .data:0x000001DF; // type:object size:0xF data:string -lbl_1_data_1EE = .data:0x000001EE; // type:object size:0xC data:string -lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xC data:string -lbl_1_data_206 = .data:0x00000206; // type:object size:0x8 data:string -lbl_1_data_20E = .data:0x0000020E; // type:object size:0x11 data:string -lbl_1_data_21F = .data:0x0000021F; // type:object size:0x11 data:string -lbl_1_data_230 = .data:0x00000230; // type:object size:0x12 data:string -lbl_1_data_242 = .data:0x00000242; // type:object size:0xF data:string -lbl_1_data_251 = .data:0x00000251; // type:object size:0xC data:string -lbl_1_data_25D = .data:0x0000025D; // type:object size:0xB data:string -lbl_1_data_268 = .data:0x00000268; // type:object size:0xB data:string -lbl_1_data_273 = .data:0x00000273; // type:object size:0xB data:string -lbl_1_data_27E = .data:0x0000027E; // type:object size:0xB data:string -lbl_1_data_289 = .data:0x00000289; // type:object size:0xB data:string -lbl_1_data_294 = .data:0x00000294; // type:object size:0xD data:string -lbl_1_data_2A1 = .data:0x000002A1; // type:object size:0x11 data:string -lbl_1_data_2B2 = .data:0x000002B2; // type:object size:0xF data:string -lbl_1_data_2C1 = .data:0x000002C1; // type:object size:0xC data:string -lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x11 data:string -lbl_1_data_2DE = .data:0x000002DE; // type:object size:0xF data:string -lbl_1_data_2ED = .data:0x000002ED; // type:object size:0xF data:string -lbl_1_data_2FC = .data:0x000002FC; // type:object size:0xF data:string -lbl_1_data_30B = .data:0x0000030B; // type:object size:0x11 data:string -lbl_1_data_31C = .data:0x0000031C; // type:object size:0x10 -lbl_1_data_32C = .data:0x0000032C; // type:object size:0xE4 data:4byte -lbl_1_data_410 = .data:0x00000410; // type:object size:0x2 data:2byte -lbl_1_data_412 = .data:0x00000412; // type:object size:0x6 -lbl_1_data_418 = .data:0x00000418; // type:object size:0x5 data:string -lbl_1_data_41D = .data:0x0000041D; // type:object size:0x4 data:string -lbl_1_data_421 = .data:0x00000421; // type:object size:0x4 data:string -lbl_1_data_425 = .data:0x00000425; // type:object size:0x4 data:string -lbl_1_data_429 = .data:0x00000429; // type:object size:0x4 data:string -lbl_1_data_42D = .data:0x0000042D; // type:object size:0x4 data:string -lbl_1_data_431 = .data:0x00000431; // type:object size:0x4 data:string -lbl_1_data_435 = .data:0x00000435; // type:object size:0x4 data:string -lbl_1_data_439 = .data:0x00000439; // type:object size:0x7 -lbl_1_data_440 = .data:0x00000440; // type:object size:0x20 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte -lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x6 data:2byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x24 data:4byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 scope:local data:string +lbl_1_data_22 = .data:0x00000022; // type:object size:0x16 scope:local data:string +lbl_1_data_38 = .data:0x00000038; // type:object size:0x11 scope:local data:string +lbl_1_data_49 = .data:0x00000049; // type:object size:0xD scope:local data:string +lbl_1_data_56 = .data:0x00000056; // type:object size:0xD scope:local data:string +lbl_1_data_63 = .data:0x00000063; // type:object size:0xB scope:local data:string +lbl_1_data_6E = .data:0x0000006E; // type:object size:0xF scope:local data:string +lbl_1_data_7D = .data:0x0000007D; // type:object size:0xE scope:local data:string +lbl_1_data_8B = .data:0x0000008B; // type:object size:0xE scope:local data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0xD scope:local data:string +lbl_1_data_A6 = .data:0x000000A6; // type:object size:0x9 scope:local data:string +lbl_1_data_AF = .data:0x000000AF; // type:object size:0xE scope:local data:string +lbl_1_data_BD = .data:0x000000BD; // type:object size:0xF scope:local data:string +lbl_1_data_CC = .data:0x000000CC; // type:object size:0xB scope:local data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x12 scope:local data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0xA scope:local data:string +lbl_1_data_F3 = .data:0x000000F3; // type:object size:0xD scope:local data:string +lbl_1_data_100 = .data:0x00000100; // type:object size:0xB scope:local data:string +lbl_1_data_10B = .data:0x0000010B; // type:object size:0xF scope:local data:string +lbl_1_data_11A = .data:0x0000011A; // type:object size:0x9 scope:local data:string +lbl_1_data_123 = .data:0x00000123; // type:object size:0xF scope:local data:string +lbl_1_data_132 = .data:0x00000132; // type:object size:0x13 scope:local data:string +lbl_1_data_145 = .data:0x00000145; // type:object size:0xF scope:local data:string +lbl_1_data_154 = .data:0x00000154; // type:object size:0xF scope:local data:string +lbl_1_data_163 = .data:0x00000163; // type:object size:0x12 scope:local data:string +lbl_1_data_175 = .data:0x00000175; // type:object size:0xB scope:local data:string +lbl_1_data_180 = .data:0x00000180; // type:object size:0xD scope:local data:string +lbl_1_data_18D = .data:0x0000018D; // type:object size:0xF scope:local data:string +lbl_1_data_19C = .data:0x0000019C; // type:object size:0xA scope:local data:string +lbl_1_data_1A6 = .data:0x000001A6; // type:object size:0xC scope:local data:string +lbl_1_data_1B2 = .data:0x000001B2; // type:object size:0xD scope:local data:string +lbl_1_data_1BF = .data:0x000001BF; // type:object size:0xF scope:local data:string +lbl_1_data_1CE = .data:0x000001CE; // type:object size:0x11 scope:local data:string +lbl_1_data_1DF = .data:0x000001DF; // type:object size:0xF scope:local data:string +lbl_1_data_1EE = .data:0x000001EE; // type:object size:0xC scope:local data:string +lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xC scope:local data:string +lbl_1_data_206 = .data:0x00000206; // type:object size:0x8 scope:local data:string +lbl_1_data_20E = .data:0x0000020E; // type:object size:0x11 scope:local data:string +lbl_1_data_21F = .data:0x0000021F; // type:object size:0x11 scope:local data:string +lbl_1_data_230 = .data:0x00000230; // type:object size:0x12 scope:local data:string +lbl_1_data_242 = .data:0x00000242; // type:object size:0xF scope:local data:string +lbl_1_data_251 = .data:0x00000251; // type:object size:0xC scope:local data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0xB scope:local data:string +lbl_1_data_268 = .data:0x00000268; // type:object size:0xB scope:local data:string +lbl_1_data_273 = .data:0x00000273; // type:object size:0xB scope:local data:string +lbl_1_data_27E = .data:0x0000027E; // type:object size:0xB scope:local data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0xB scope:local data:string +lbl_1_data_294 = .data:0x00000294; // type:object size:0xD scope:local data:string +lbl_1_data_2A1 = .data:0x000002A1; // type:object size:0x11 scope:local data:string +lbl_1_data_2B2 = .data:0x000002B2; // type:object size:0xF scope:local data:string +lbl_1_data_2C1 = .data:0x000002C1; // type:object size:0xC scope:local data:string +lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x11 scope:local data:string +lbl_1_data_2DE = .data:0x000002DE; // type:object size:0xF scope:local data:string +lbl_1_data_2ED = .data:0x000002ED; // type:object size:0xF scope:local data:string +lbl_1_data_2FC = .data:0x000002FC; // type:object size:0xF scope:local data:string +lbl_1_data_30B = .data:0x0000030B; // type:object size:0x11 scope:local data:string +lbl_1_data_31C = .data:0x0000031C; // type:object size:0x10 scope:local +lbl_1_data_32C = .data:0x0000032C; // type:object size:0xE4 scope:local data:4byte +lbl_1_data_410 = .data:0x00000410; // type:object size:0x2 scope:local data:2byte +lbl_1_data_412 = .data:0x00000412; // type:object size:0x6 scope:local +lbl_1_data_418 = .data:0x00000418; // type:object size:0x5 scope:local data:string +lbl_1_data_41D = .data:0x0000041D; // type:object size:0x4 scope:local data:string +lbl_1_data_421 = .data:0x00000421; // type:object size:0x4 scope:local data:string +lbl_1_data_425 = .data:0x00000425; // type:object size:0x4 scope:local data:string +lbl_1_data_429 = .data:0x00000429; // type:object size:0x4 scope:local data:string +lbl_1_data_42D = .data:0x0000042D; // type:object size:0x4 scope:local data:string +lbl_1_data_431 = .data:0x00000431; // type:object size:0x4 scope:local data:string +lbl_1_data_435 = .data:0x00000435; // type:object size:0x4 scope:local data:string +lbl_1_data_439 = .data:0x00000439; // type:object size:0x7 scope:local +lbl_1_data_440 = .data:0x00000440; // type:object size:0x20 scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x6 scope:local data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x24 scope:local data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 scope:local data:4byte diff --git a/configure.py b/configure.py index c6aa359f..6dab546c 100644 --- a/configure.py +++ b/configure.py @@ -950,7 +950,7 @@ config.libs = [ Rel('messDll', objects = { Object(Matching, "REL/executor.c"), - Object(NonMatching, "REL/messDll/main.c"), + Object(Matching, "REL/messDll/main.c"), } ), Rel('mgmodedll', diff --git a/include/game/window.h b/include/game/window.h index 7fbc09c8..a2ff8eb1 100644 --- a/include/game/window.h +++ b/include/game/window.h @@ -76,6 +76,7 @@ typedef struct { } WindowData; // Size 0x180 extern WindowData winData[32]; +extern void *messDataPtr; void HuWindowInit(void); void HuWinInit(s32 mess_data_no); @@ -123,7 +124,7 @@ void _HuWinComKeySet(s32 player_1, s32 player_2, s32 player_3, s32 player_4, s16 void HuWinComKeyGet(s16 window, u32 *data); void HuWinComKeyReset(void); void HuWinMesMaxSizeGet(s16 mess_num, float *size, ...); -void HuWinInsertMesSizeGet(s32 mess, s16 index); +void HuWinInsertMesSizeGet(u32 mess, s16 index); void HuWinMesSizeCancelCRSet(s32 cancel_cr); void HuWinMesMaxSizeBetGet(float *size, u32 start, u32 end); s16 HuWinKeyWaitNumGet(u32 mess); diff --git a/src/REL/messDll/main.c b/src/REL/messDll/main.c new file mode 100755 index 00000000..a3381d0c --- /dev/null +++ b/src/REL/messDll/main.c @@ -0,0 +1,331 @@ +#include "REL/executor.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "dolphin.h" +#include "math.h" +#include "rel_sqrt_consts.h" + +extern s32 sprintf(char*, const char*, s32); + +static void fn_1_2BC(omObjData *arg0); +static void fn_1_300(omObjData *arg0); +static void fn_1_E88(void); +static s32 fn_1_11B0(s16 arg0, s16 arg1); + +static Process *lbl_1_bss_34; +static omObjData *lbl_1_bss_30; +static omObjData *lbl_1_bss_2C; +static u8 lbl_1_bss_C_pad[0x20]; +static Process *lbl_1_bss_8; +static u8 lbl_1_bss_4_pad[4]; +static s16 lbl_1_bss_2; +static s16 lbl_1_bss_0; + +void ModuleProlog(void) { + OSReport("******* SAFObjectSetup *********\n"); + lbl_1_bss_34 = omInitObjMan(0x32, 0x2000); + CRot.x = -20.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + Center.x = 0.0f; + Center.y = 120.0f; + Center.z = 0.0f; + CZoom = 500.0f; + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 45.0f, 20.0f, 15000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + lbl_1_bss_30 = omAddObjEx(lbl_1_bss_34, 0, 0x40, 0, -1, fn_1_2BC); + lbl_1_bss_2C = omAddObjEx(lbl_1_bss_34, 0x7FDA, 0, 0, -1, omOutView); + HuWinInit(1); + lbl_1_bss_8 = HuPrcChildCreate(fn_1_E88, 100, 0x3000, 0, lbl_1_bss_34); +} + +static void fn_1_2BC(omObjData *arg0) { + WipeCreate(1, 0, 10); + arg0->func = fn_1_300; +} + +static void fn_1_300(omObjData *arg0) { + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float temp_f31; + s8 temp_r31; + + if (HuPadBtnDown[0] & 0x1000) { + GWSystem.mg_next = 1; + omOvlReturnEx(1, 1); + return; + } + CRot.x += -HuPadSubStkY[0] / 20; + CRot.y += HuPadSubStkX[0] / 20; + CZoom += HuPadTrigL[0] / 2; + CZoom -= HuPadTrigR[0] / 2; + sp2C.x = Center.x + CZoom * (sin(CRot.y * M_PI / 180.0) * cos(CRot.x * M_PI / 180.0)); + sp2C.y = Center.y + CZoom * -sin(CRot.x * M_PI / 180.0); + sp2C.z = Center.z + CZoom * (cos(CRot.y * M_PI / 180.0) * cos(CRot.x * M_PI / 180.0)); + sp20.x = Center.x - sp2C.x; + sp20.y = Center.y - sp2C.y; + sp20.z = Center.z - sp2C.z; + sp14.x = sin(CRot.y * M_PI / 180.0) * sin(CRot.x * M_PI / 180.0); + sp14.y = cos(CRot.x * M_PI / 180.0); + sp14.z = cos(CRot.y * M_PI / 180.0) * sin(CRot.x * M_PI / 180.0); + temp_f31 = CRot.z; + sp8.x = sp14.x * (sp20.x * sp20.x + (1.0f - sp20.x * sp20.x) * cos(temp_f31 * M_PI / 180.0)) + + sp14.y * (sp20.x * sp20.y * (1.0 - cos(temp_f31 * M_PI / 180.0)) - sp20.z * sin(temp_f31 * M_PI / 180.0)) + + sp14.z * (sp20.x * sp20.z * (1.0 - cos(temp_f31 * M_PI / 180.0)) + sp20.y * sin(temp_f31 * M_PI / 180.0)); + sp8.y = sp14.x * (sp20.x * sp20.y * (1.0 - cos(temp_f31 * M_PI / 180.0)) + sp20.z * sin(temp_f31 * M_PI / 180.0)) + + sp14.y * (sp20.y * sp20.y + (1.0f - sp20.y * sp20.y) * cos(temp_f31 * M_PI / 180.0)) + + sp14.z * (sp20.y * sp20.z * (1.0 - cos(temp_f31 * M_PI / 180.0)) - sp20.x * sin(temp_f31 * M_PI / 180.0)); + sp8.z = sp14.x * (sp20.x * sp20.z * (1.0 - cos(temp_f31 * M_PI / 180.0)) - sp20.y * sin(temp_f31 * M_PI / 180.0)) + + sp14.y * (sp20.y * sp20.z * (1.0 - cos(temp_f31 * M_PI / 180.0)) + sp20.x * sin(temp_f31 * M_PI / 180.0)) + + sp14.z * (sp20.z * sp20.z + (1.0f - sp20.z * sp20.z) * cos(temp_f31 * M_PI / 180.0)); + PSVECCrossProduct(&sp14, &sp20, &sp20); + PSVECNormalize(&sp20, &sp20); + temp_r31 = HuPadSubStkX[0] & 0xF8; + if (temp_r31 != 0) { + Center.x += sp20.x * temp_r31 * 0.05f; + Center.y += sp20.y * temp_r31 * 0.05f; + Center.z += sp20.z * temp_r31 * 0.05f; + } + PSVECNormalize(&sp8, &sp20); + temp_r31 = -(HuPadSubStkY[0] & 0xF8); + if (temp_r31 != 0) { + Center.x += sp20.x * temp_r31 * 0.05f; + Center.y += sp20.y * temp_r31 * 0.05f; + Center.z += sp20.z * temp_r31 * 0.05f; + } +} + +static char *lbl_1_data_32C[] = { + "001_Character_Name_ss", + "002_Hidden_Block", + "003_Battle_M", + "004_Bowser_M", + "005_Warp_M", + "006_Mushroom_M", + "007_Lot_house", + "008_Boo_house", + "009_ItemName", + "010_Bord", + "011_RoundItem", + "012_Spaceamida", + "013_Star_M", + "014_RollerCoaster", + "015_Last5", + "016_ItemShop", + "017_System", + "018_ModeSelect", + "019_Item", + "020_Map2_event", + "021_Lucky_Minigame", + "022_Bord_Start", + "023_Map3_event", + "024_Minigame_Name", + "025_mg_446", + "026_debugmes", + "027_Party_Mode", + "028_SETUP", + "029_Miracle", + "030_mg_kuppa", + "031_Story_Mode", + "032_Bowser_Story", + "033_Map4_event", + "034_mg_inst", + "035_E3_only", + "036_saf", + "037_Mg_inst_sys_", + "038_Bord_Results", + "039_Bord_Results2", + "040_Map5_event", + "041_Mg_Mode", + "042_mg_445", + "043_mg_447", + "044_mg_448", + "045_mg_449", + "046_mg_450", + "047_tutorial", + "048_Option_Rooml", + "049_Map6_event", + "050_charley", + "051_Present_Room", + "052_Extra_Room", + "053_Staff_Post", + "054_Staff_Name", + "055_Opening_Demo", + "056_mgex_inst", + NULL +}; + +static s16 lbl_1_data_410 = -1; + +static void fn_1_E88(void) { + s16 sp10[256]; // unknown size + char spC[4]; + char sp8[4]; + s16 temp_r3; + s16 var_r25; + s16 var_r27; + s16 var_r28; + s32 var_r30; + s32 var_r31; + s32 temp_r3_2; + char *var_r29; + + var_r28 = var_r27 = 0; + while (lbl_1_data_32C[var_r28] != 0) { + var_r29 = lbl_1_data_32C[var_r28]; + while (*var_r29 != 0) { + if (*var_r29 == '_') { + *var_r29 = 0x86; + } + var_r29++; + } + sp10[var_r28] = 0; + var_r30 = (var_r28 << 16); + var_r25 = 0; + while (1) { + if ((s32) MessData_MesPtrGet(messDataPtr, var_r30 + var_r25) == 0) { + break; + } + sp10[var_r28]++; + var_r25++; + } + var_r27++; + var_r28++; + } + temp_r3 = HuWinExCreateStyled(-10000.0f, 32.0f, 316, 40, -1, 0); + HuWinExAnimIn(temp_r3); + HuWinAttrSet(temp_r3, 0x800); + HuWinMesSpeedSet(temp_r3, 0); + HuWinMesSet(temp_r3, MAKE_MESSID_PTR(lbl_1_data_32C[0])); + lbl_1_bss_0 = HuWinCreate(460.0f, 32.0f, 100, 40, 0); + HuWinAttrSet(lbl_1_bss_0, 0x800); + HuWinMesSpeedSet(lbl_1_bss_0, 0); + HuWinMesSet(lbl_1_bss_0, MAKE_MESSID_PTR("\x1F\x01_\x1F\x02")); + var_r31 = 0; + var_r30 = 0; + while (1) { + HuWinHomeClear(lbl_1_bss_0); + sprintf(spC, "%03d", var_r30 + 1); + HuWinInsertMesSet(lbl_1_bss_0, MAKE_MESSID_PTR(spC), 0); + sprintf(sp8, "%03d", sp10[var_r31]); + HuWinInsertMesSet(lbl_1_bss_0, MAKE_MESSID_PTR(sp8), 1); + HuWinMesSet(lbl_1_bss_0, MAKE_MESSID_PTR("\x1F\x01_\x1F\x02")); + temp_r3_2 = fn_1_11B0(var_r31, var_r30); + if (temp_r3_2 & 0x20) { + var_r31++; + if (var_r31 >= var_r27) { + var_r31 = 0; + } + var_r30 = 0; + } else if (temp_r3_2 & 0x40) { + var_r31--; + if (var_r31 < 0) { + var_r31 = var_r27 - 1; + } + var_r30 = 0; + } else if (temp_r3_2 & 0x200) { + var_r30--; + if (var_r30 < 0) { + var_r31--; + if (var_r31 < 0) { + var_r31 = var_r27 - 1; + } + var_r30 = sp10[var_r31] - 1; + } + } else { + var_r30++; + if (var_r30 >= sp10[var_r31]) { + var_r31++; + if (var_r31 >= var_r27) { + var_r31 = 0; + } + var_r30 = 0; + } + } + HuPrcVSleep(); + } +} + +static char *lbl_1_data_440[] = { + "]1^", + "]2^", + "]3^", + "]4^", + "]5^", + "]6^", + "]7^", + "]8^" +}; + +static s32 fn_1_11B0(s16 arg0, s16 arg1) { + WindowData *temp_r30; + float sp10; + float spC; + s32 temp_r28; + s32 var_r27; + s32 var_r26; + u8 *var_r29; + s16 i; + + var_r27 = 0; + var_r26 = 0; + HuWinHomeClear(lbl_1_bss_2); + HuWinMesSet(lbl_1_bss_2, MAKE_MESSID_PTR(lbl_1_data_32C[arg0])); + HuPrcVSleep(); + if (lbl_1_data_410 != -1) { + HuWinKill(lbl_1_data_410); + } + temp_r28 = MAKE_MESSID(arg0, arg1); + for (i = 0; i < 8; i++) { + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(lbl_1_data_440[i]), (s16) i); + } + HuWinMesMaxSizeGet(1, &spC, temp_r28); + if (spC <= 16.0f) { + spC = 32.0f; + } + lbl_1_data_410 = HuWinCreate(-10000.0f, -10000.0f, spC, sp10, 0); + for (i = 0; i < 8; i++) { + HuWinInsertMesSet(lbl_1_data_410, MAKE_MESSID_PTR(lbl_1_data_440[i]), (s16) i); + } + temp_r30 = &winData[lbl_1_data_410]; + temp_r30->push_key |= 0x360; + temp_r30->key_auto = 0x60; + HuWinMesSet(lbl_1_data_410, temp_r28); + var_r29 = MessData_MesPtrGet(messDataPtr, temp_r28); + while (*var_r29 != 0) { + if (*var_r29 == 0xF) { + var_r27 = 1; + } + if (*var_r29 == 0) { + var_r26 = 1; + } + var_r29++; + } + if (var_r27 != 0) { + HuWinMesWait(lbl_1_data_410); + HuWinChoiceGet(lbl_1_data_410, 0); + return temp_r30->key_down; + } + if (var_r26 == 0) { + while (!(HuPadBtnRep[0] & 0x360)) { + HuPrcVSleep(); + } + return HuPadBtnRep[0]; + } + while (temp_r30->stat != 0) { + if (HuPadBtnRep[0] & 0x60) { + return HuPadBtnDown[0]; + } + HuPrcVSleep(); + } + return temp_r30->key_down; +} diff --git a/src/REL/option/guide.c b/src/REL/option/guide.c index 4a8d1639..c48edf1f 100755 --- a/src/REL/option/guide.c +++ b/src/REL/option/guide.c @@ -67,7 +67,7 @@ omObjData *fn_1_21F8(void) { temp_r30->unk2C = 0.0f; temp_r30->unk34 = 0.0f; temp_r30->unk30 = 0.0f; - var_r31->model[0] = Hu3DModelCreateFile(0x69000C); + var_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 12)); Hu3DModelLayerSet(var_r31->model[0], 1); for (i = 0; i < 3; i++) { var_r31->motion[i] = Hu3DJointMotion(var_r31->model[0], HuDataSelHeapReadNum(lbl_1_rodata_E0[i], MEMORY_DEFAULT_NUM, HEAP_DATA)); diff --git a/src/REL/option/record.c b/src/REL/option/record.c index ed576f6a..27c98655 100755 --- a/src/REL/option/record.c +++ b/src/REL/option/record.c @@ -279,7 +279,7 @@ static omObjData *fn_1_8A88(void) { omObjData *temp_r31; temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - temp_r31->model[0] = Hu3DModelCreateFile(0x690001); + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 1)); Hu3DModelAttrSet(temp_r31->model[0], 0x40000002); Hu3DModelLayerSet(temp_r31->model[0], 0); Hu3DMotionStartEndSet(temp_r31->model[0], 0.0f, 6.0f); @@ -315,7 +315,7 @@ static omObjData *fn_1_8C84(void) { omObjData *temp_r31; temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - temp_r31->model[0] = Hu3DModelCreateFile(0x69000E); + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 14)); Hu3DModelLayerSet(temp_r31->model[0], 2); Hu3DModelAttrSet(temp_r31->model[0], 0x40000001); omSetRot(temp_r31, 30.0f, 190.0f, 0.0f); diff --git a/src/REL/option/room.c b/src/REL/option/room.c index df159da8..a697e0e4 100755 --- a/src/REL/option/room.c +++ b/src/REL/option/room.c @@ -222,7 +222,7 @@ static omObjData *fn_1_2088(void) { omObjData *temp_r31; temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - temp_r31->model[0] = Hu3DModelCreateFile(0x690000); + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 0)); Hu3DModelLayerSet(temp_r31->model[0], 0); Hu3DModelShadowMapSet(temp_r31->model[0]); return temp_r31; @@ -237,7 +237,7 @@ static omObjData *fn_1_2144(void) { temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); Hu3DModelLayerSet(temp_r31->model[0], 0); - temp_r31->model[0] = Hu3DModelCreateFile(0x690006); + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 6)); return temp_r31; } diff --git a/src/REL/option/rumble.c b/src/REL/option/rumble.c index 7261e288..72a3169b 100755 --- a/src/REL/option/rumble.c +++ b/src/REL/option/rumble.c @@ -180,7 +180,7 @@ static omObjData *fn_1_37AC(void) { omObjData *temp_r31; temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - temp_r31->model[0] = Hu3DModelCreateFile(0x69000F); + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 15)); Hu3DModelLayerSet(temp_r31->model[0], 3); omSetRot(temp_r31, 0.0f, 180.0f, 0.0f); Hu3DModelAttrSet(temp_r31->model[0], 1); @@ -199,7 +199,7 @@ static omObjData *fn_1_38BC(void) { omObjData *temp_r31; temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - temp_r31->model[0] = Hu3DModelCreateFile(0x690002); + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 2)); Hu3DModelAttrSet(temp_r31->model[0], 0x40000002); if (GWGameStat.rumble != 0) { Hu3DMotionTimeSet(temp_r31->model[0], 60.0f); @@ -243,7 +243,7 @@ static omObjData *fn_1_3B08(void) { omObjData *temp_r31; temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - temp_r31->model[0] = Hu3DModelCreateFile(0x690009); + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 9)); Hu3DModelAttrSet(temp_r31->model[0], 0x40000001); return temp_r31; } @@ -270,7 +270,7 @@ static omObjData *fn_1_3C6C(void) { omObjData *temp_r31; temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - temp_r31->model[0] = Hu3DModelCreateFile(0x69000A); + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 10)); Hu3DModelAttrSet(temp_r31->model[0], 0x40000002); Hu3DModelLayerSet(temp_r31->model[0], 2); return temp_r31; @@ -318,7 +318,7 @@ static omObjData *fn_1_3F28(void) { omObjData *temp_r31; temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - temp_r31->model[0] = Hu3DModelCreateFile(0x69000B); + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 11)); if (GWGameStat.rumble != 0) { Hu3DModelAttrReset(temp_r31->model[0], 1); } else { diff --git a/src/REL/option/sound.c b/src/REL/option/sound.c index 75fbe8f4..b9f9e628 100755 --- a/src/REL/option/sound.c +++ b/src/REL/option/sound.c @@ -1156,7 +1156,7 @@ static omObjData *fn_1_61A0(void) { omObjData *temp_r31; temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - temp_r31->model[0] = Hu3DModelCreateFile(0x69000D); + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 13)); Hu3DModelLayerSet(temp_r31->model[0], 2); Hu3DModelAttrSet(temp_r31->model[0], 0x40000001); omSetRot(temp_r31, -80.0f, 45.0f, 0.0f); @@ -1177,7 +1177,7 @@ static omObjData *fn_1_62F0(void) { omObjData *temp_r31; temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - temp_r31->model[0] = Hu3DModelCreateFile(0x69000E); + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 14)); Hu3DModelLayerSet(temp_r31->model[0], 2); Hu3DModelAttrSet(temp_r31->model[0], 0x40000001); omSetRot(temp_r31, 0.0f, -90.0f, 0.0f); @@ -1198,7 +1198,7 @@ static omObjData *fn_1_6440(void) { omObjData *temp_r31; temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); - temp_r31->model[0] = Hu3DModelCreateFile(0x690003); + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 3)); Hu3DModelAttrSet(temp_r31->model[0], 0x40000001); Hu3DModelLayerSet(temp_r31->model[0], 0); return temp_r31; @@ -1223,9 +1223,9 @@ static omObjData *fn_1_6528(s32 arg0, s32 arg1) { temp_r31 = omAddObjEx(lbl_1_bss_8, 1003, 1, 0, 1, NULL); if (arg1 != 0) { - temp_r31->model[0] = Hu3DModelCreateFile(0x690005); + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 5)); } else { - temp_r31->model[0] = Hu3DModelCreateFile(0x690004); + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 4)); } Hu3DModelAttrSet(temp_r31->model[0], 0x40000001); Hu3DModelLayerSet(temp_r31->model[0], 0); diff --git a/src/game/board/lottery.c b/src/game/board/lottery.c index d8ae7e4b..188ebce5 100755 --- a/src/game/board/lottery.c +++ b/src/game/board/lottery.c @@ -98,7 +98,6 @@ static s8 comLotteryType; static s8 comLotteryWinType; static u8 comInputPos; static s32 handUpdateF; -// ... static omObjData *lotteryTicketPickObj; static s8 (*comInputDrawP)[2]; static Process *lotteryProc; @@ -242,35 +241,88 @@ void BoardLotteryInit(void) { if (GWBoardGet() != 8) { BoardModelVisibilitySet(BoardLotteryHostGet(), 0); BoardSpaceLinkTransformGet(0x10000000, &sp14, &sp8, NULL); - lotteryMdl[0] = BoardModelCreate(0x50000, NULL, 0); + lotteryMdl[0] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKUJIYA, 0), NULL, 0); BoardModelMotionStart(lotteryMdl[0], 0, 0); BoardModelMotionSpeedSet(lotteryMdl[0], 0.0f); BoardModelPosSetV(lotteryMdl[0], &sp14); BoardModelRotSetV(lotteryMdl[0], &sp8); - HuDataDirClose(0x50000); + HuDataDirClose(DATA_MAKE_NUM(DATADIR_BKUJIYA, 0)); } } static void CreateModel(void) { s32 i; - s32 sp10[4] = { 0x00050005, 0x00050006, 0x00050007, 0x00050008 }; - s32 sp8[2] = { 0x00050003, 0x00050004 }; + s32 sp10[4] = { + DATA_MAKE_NUM(DATADIR_BKUJIYA, 5), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 6), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 7), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 8) + }; + s32 sp8[2] = { + DATA_MAKE_NUM(DATADIR_BKUJIYA, 3), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 4) + }; s32 sp20[9][4] = { - { 0x00020001, 0x00020002, 0x00020003, 0x00020004 }, - { 0x00020009, 0x0002000A, 0x0002000B, 0x0002000C }, - { 0x0002000E, 0x0002000F, 0x00020010, 0x00020011 }, - { 0x00020018, 0x00020019, 0x0002001A, 0x0002001B }, - { 0x0002001D, 0x0002001E, 0x0002001F, 0x00020020 }, - { 0x00020022, 0x00020023, 0x00020024, 0x00020025 }, - { 0x0002000E, 0x0002000F, 0x00020010, 0x00020011 }, - { 0x0002002A, 0x0002002B, 0x0002002C, 0x0002002D }, - { 0x0002002A, 0x0002002B, 0x0002002C, 0x0002002D } + { + DATA_MAKE_NUM(DATADIR_BGUEST, 1), + DATA_MAKE_NUM(DATADIR_BGUEST, 2), + DATA_MAKE_NUM(DATADIR_BGUEST, 3), + DATA_MAKE_NUM(DATADIR_BGUEST, 4) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 9), + DATA_MAKE_NUM(DATADIR_BGUEST, 10), + DATA_MAKE_NUM(DATADIR_BGUEST, 11), + DATA_MAKE_NUM(DATADIR_BGUEST, 12) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 14), + DATA_MAKE_NUM(DATADIR_BGUEST, 15), + DATA_MAKE_NUM(DATADIR_BGUEST, 16), + DATA_MAKE_NUM(DATADIR_BGUEST, 17) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 24), + DATA_MAKE_NUM(DATADIR_BGUEST, 25), + DATA_MAKE_NUM(DATADIR_BGUEST, 26), + DATA_MAKE_NUM(DATADIR_BGUEST, 27) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 29), + DATA_MAKE_NUM(DATADIR_BGUEST, 30), + DATA_MAKE_NUM(DATADIR_BGUEST, 31), + DATA_MAKE_NUM(DATADIR_BGUEST, 32) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 34), + DATA_MAKE_NUM(DATADIR_BGUEST, 35), + DATA_MAKE_NUM(DATADIR_BGUEST, 36), + DATA_MAKE_NUM(DATADIR_BGUEST, 37) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 14), + DATA_MAKE_NUM(DATADIR_BGUEST, 15), + DATA_MAKE_NUM(DATADIR_BGUEST, 16), + DATA_MAKE_NUM(DATADIR_BGUEST, 17) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 42), + DATA_MAKE_NUM(DATADIR_BGUEST, 43), + DATA_MAKE_NUM(DATADIR_BGUEST, 44), + DATA_MAKE_NUM(DATADIR_BGUEST, 45) + }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 42), + DATA_MAKE_NUM(DATADIR_BGUEST, 43), + DATA_MAKE_NUM(DATADIR_BGUEST, 44), + DATA_MAKE_NUM(DATADIR_BGUEST, 45) + } }; - lotteryMdl[1] = BoardModelCreate(0x50001, NULL, 0); + lotteryMdl[1] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKUJIYA, 1), NULL, 0); fn_8006DDE8(lotteryMdl[1], -1.0f); BoardModelMotionSpeedSet(lotteryMdl[1], 0.0f); - lotteryMdl[2] = BoardModelCreate(0x50002, NULL, 0); + lotteryMdl[2] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKUJIYA, 2), NULL, 0); BoardModelVisibilitySet(lotteryMdl[2], 0); fn_8006DDE8(lotteryMdl[2], -1.0f); BoardModelMotionStart(lotteryMdl[2], 0, 0); @@ -286,7 +338,7 @@ static void CreateModel(void) { fn_8006DDE8(gripMdl[i], -1.0f); BoardModelMotionSpeedSet(gripMdl[i], 0.0f); } - lotteryMdl[3] = BoardModelCreate(0x50011, NULL, 0); + lotteryMdl[3] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKUJIYA, 17), NULL, 0); BoardModelVisibilitySet(lotteryMdl[3], 0); fn_8006DDE8(lotteryMdl[3], -1.0f); BoardModelPosSet(BoardLotteryHostGet(), 0.0f, 0.0f, 0.0f); @@ -368,7 +420,7 @@ static void DestroyLottery(void) { BoardWinKill(); KillScratch(); KillCoin(); - HuDataDirClose(0x50000); + HuDataDirClose(DATA_MAKE_NUM(DATADIR_BKUJIYA, 0)); lotteryProc = NULL; } @@ -388,38 +440,38 @@ static void ExecLottery(void) { switch (GWBoardGet()) { case 0: - lotteryMessBase = 0x60002; + lotteryMessBase = MAKE_MESSID(6, 2); break; case 1: - lotteryMessBase = 0x6000F; + lotteryMessBase = MAKE_MESSID(6, 15); break; case 2: - lotteryMessBase = 0x6001C; + lotteryMessBase = MAKE_MESSID(6, 28); break; case 3: - lotteryMessBase = 0x60029; + lotteryMessBase = MAKE_MESSID(6, 41); break; case 4: - lotteryMessBase = 0x60036; + lotteryMessBase = MAKE_MESSID(6, 54); break; case 5: - lotteryMessBase = 0x60043; + lotteryMessBase = MAKE_MESSID(6, 67); break; case 6: - lotteryMessBase = 0x60002; + lotteryMessBase = MAKE_MESSID(6, 2); break; case 7: - lotteryMessBase = 0x60052; + lotteryMessBase = MAKE_MESSID(6, 82); break; case 8: - lotteryMessBase = 0x60052; + lotteryMessBase = MAKE_MESSID(6, 82); break; } - temp_r29 = BoardDataDirReadAsync(0x50000); + temp_r29 = BoardDataDirReadAsync(DATADIR_BKUJIYA); temp_r31 = GWSystem.player_curr; temp_r28 = GWPlayer[temp_r31].space_curr; BoardPlayerIdleSet(temp_r31); - BoardWinCreateChoice(0, 0x60000, -1, 0); + BoardWinCreateChoice(0, MAKE_MESSID(6, 0), -1, 0); if (GWPlayer[temp_r31].com) { if (BoardPlayerCoinsGet(temp_r31) >= 5) { BoardComKeySetLeft(); @@ -435,7 +487,7 @@ static void ExecLottery(void) { HuPrcEnd(); } if (BoardPlayerCoinsGet(temp_r31) < 5) { - BoardWinCreate(0, 0x60001, -1); + BoardWinCreate(0, MAKE_MESSID(6, 1), -1); BoardWinWait(); BoardWinKill(); if (temp_r29 != -1) { @@ -477,7 +529,7 @@ static void ExecLottery(void) { if (BoardPlayerSizeGet(temp_r31) == 1) { BoardModelVisibilitySet(lotteryMdl[3], 1); } - omVibrate(temp_r31, 0xC, 6, 6); + omVibrate(temp_r31, 12, 6, 6); HuAudFXPlay(0x331); HuAudFXPlay(0x344); BoardModelMotionStart(lotteryMdl[0], 0, 0); @@ -641,7 +693,7 @@ static void PayEnterFee(s32 arg0) { BoardStatusShowSetForce(temp_r31); BoardStatusShowSet(temp_r31, 1); if (arg0 != 0) { - var_r29 = lotteryMessBase + 0xC; + var_r29 = lotteryMessBase + 12; } else { var_r29 = lotteryMessBase; } @@ -672,14 +724,14 @@ static void ShowTicket(void) { s32 i; u8 *var_r28; s32 sp14[] = { - 0x00050015, - 0x00050016, - 0x00050017, - 0x00050018, - 0x00050019, - 0x0005001A, - 0x0005001B, - 0x0005001C + DATA_MAKE_NUM(DATADIR_BKUJIYA, 21), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 22), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 23), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 24), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 25), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 26), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 27), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 28) }; if (GWBoardGet() == 7 || GWBoardGet() == 8) { @@ -688,25 +740,25 @@ static void ShowTicket(void) { sp8 = GWPlayer[GWSystem.player_curr].field00_bitA; var_r28 = (u8*) &sp8; temp_r31 = HuSprGrpCreate(4); - BoardSpriteCreate(0x50014, 0x7531, 0, &spA); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BKUJIYA, 20), 30001, 0, &spA); HuSprGrpMemberSet(temp_r31, 0, spA); HuSprAttrSet(temp_r31, 0, 9); HuSprPosSet(temp_r31, 0, 288.0f, 240.0f); HuSprTPLvlSet(temp_r31, 0, 0.0f); var_r29 = GWPlayer[(*var_r28 >> 4) & 3].character; - BoardSpriteCreate(sp14[var_r29], 0x7530, 0, &spC); + BoardSpriteCreate(sp14[var_r29], 30000, 0, &spC); HuSprGrpMemberSet(temp_r31, 1, spC); HuSprAttrSet(temp_r31, 1, 9); HuSprPosSet(temp_r31, 1, 200.0f, 237.0f); HuSprTPLvlSet(temp_r31, 1, 0.0f); var_r29 = GWPlayer[(*var_r28 >> 2) & 3].character; - BoardSpriteCreate(sp14[var_r29], 0x7530, 0, &spE); + BoardSpriteCreate(sp14[var_r29], 30000, 0, &spE); HuSprGrpMemberSet(temp_r31, 2, spE); HuSprAttrSet(temp_r31, 2, 9); HuSprPosSet(temp_r31, 2, 294.0f, 237.0f); HuSprTPLvlSet(temp_r31, 2, 0.0f); var_r29 = GWPlayer[*var_r28 & 3].character; - BoardSpriteCreate(sp14[var_r29], 0x7530, 0, &sp10); + BoardSpriteCreate(sp14[var_r29], 30000, 0, &sp10); HuSprGrpMemberSet(temp_r31, 3, sp10); HuSprAttrSet(temp_r31, 3, 9); HuSprPosSet(temp_r31, 3, 388.0f, 237.0f); @@ -752,7 +804,7 @@ static void SetupTicket(s32 arg0) { } } for (var_r28 = 0; var_r28 < 1000; var_r28++) { - var_r29 = BoardRandMod(0x40) & 0x3F; + var_r29 = BoardRandMod(64) & 0x3F; for (var_r31 = 0; var_r30 != 0 && var_r31 < var_r30; var_r31++) { if (sp8[var_r31] == var_r29) { var_r29 = 0x80; @@ -768,9 +820,12 @@ static void SetupTicket(s32 arg0) { } static void LotteryInlineFunc00(s32 arg0, s32 arg1) { - s32 sp20[2] = { 0x00050012, 0x00050013 }; - s16 sp10[2] = { 0x0098, 0x0078 }; - s16 sp14[2] = { 0x0078, 0x0078 }; + s32 sp20[2] = { + DATA_MAKE_NUM(DATADIR_BKUJIYA, 18), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 19) + }; + s16 sp10[2] = { 152, 120 }; + s16 sp14[2] = { 120, 120 }; Vec sp34; float temp_f30; s16 var_r30; @@ -780,7 +835,7 @@ static void LotteryInlineFunc00(s32 arg0, s32 arg1) { sp34.y = -sp10[arg0] / 2; temp_f30 = 4.0f; if (lotterySpr == -1) { - lotterySpr = espEntry(sp20[arg0], 0x7531, 0); + lotterySpr = espEntry(sp20[arg0], 30001, 0); espAttrSet(lotterySpr, 1); } } else { @@ -820,14 +875,14 @@ static void ExecBallGame(void) { s8 sp9; s8 *temp_r23; s32 sp58[] = { - 0x005F001D, - 0x001A001D, - 0x006D001D, - 0x008A001D, - 0x0085001D, - 0x0011001D, - 0x000D001D, - 0x0081001D + DATA_MAKE_NUM(DATADIR_MARIOMOT, 29), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 29), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 29), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 29), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 29), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 29), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 29), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 29), }; temp_r27 = GWSystem.player_curr; @@ -858,7 +913,7 @@ static void ExecBallGame(void) { var_r20 = 0; spB = spA = sp9 = var_r17 = 0; var_r26 = var_f28 = var_f27 = var_f25 = var_f23 = var_r21 = 0; - HuPrcSleep(0x18); + HuPrcSleep(24); var_r24 = var_r22 = 0; while (1) { HuPrcVSleep(); @@ -1033,32 +1088,32 @@ static void ExecBallPrize(void) { } static const s32 pickSpr[] = { - 0x0007001E, - 0x0007001F, - 0x00070020, - 0x00070021, - 0x00070022, - 0x00070023, - 0x00070024, - 0x00070025 + DATA_MAKE_NUM(DATADIR_BOARD, 30), + DATA_MAKE_NUM(DATADIR_BOARD, 31), + DATA_MAKE_NUM(DATADIR_BOARD, 32), + DATA_MAKE_NUM(DATADIR_BOARD, 33), + DATA_MAKE_NUM(DATADIR_BOARD, 34), + DATA_MAKE_NUM(DATADIR_BOARD, 35), + DATA_MAKE_NUM(DATADIR_BOARD, 36), + DATA_MAKE_NUM(DATADIR_BOARD, 37) }; static const s32 handMdl[] = { - 0x00050009, - 0x0005000A, - 0x0005000B, - 0x0005000C, - 0x0005000D, - 0x0005000E, - 0x0005000F, - 0x00050010 + DATA_MAKE_NUM(DATADIR_BKUJIYA, 9), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 10), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 11), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 12), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 13), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 14), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 15), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 16) }; static const s32 ticketSpr[] = { - 0x0005001D, - 0x0005001E, - 0x0005001F, - 0x00050020 + DATA_MAKE_NUM(DATADIR_BKUJIYA, 29), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 30), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 31), + DATA_MAKE_NUM(DATADIR_BKUJIYA, 32) }; static omObjData *ticketObj[12] = { NULL }; @@ -1077,14 +1132,14 @@ static s32 loseSoundTbl[] = { }; static s32 loseMotTbl[] = { - 0x005F0033, - 0x001A0033, - 0x006D0033, - 0x008A0033, - 0x00850033, - 0x00110033, - 0x000D0033, - 0x00810033 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 51), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 51), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 51), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 51), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 51), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 51), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 51), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 51) }; static void ExecScratchTicket(s32 arg0) { @@ -1172,7 +1227,7 @@ static void ExecScratch(void) { s32 temp_r31; currPrize = -1; - BoardFilterFadeInit(0x1E, 0xA0); + BoardFilterFadeInit(30, 0xA0); InitTicketPrizes(); InitScratchSpr(); temp_curr = GWSystem.player_curr; @@ -1281,7 +1336,7 @@ static void InitScratchSpr(void) { BoardPlayerRotGet(temp_curr, &sp18); memset(ticketObj, 0, sizeof(ticketObj)); BoardCameraRotGet(&spC); - temp_r28 = HuSprGrpCreate(0x18); + temp_r28 = HuSprGrpCreate(24); ticketSprGrp = temp_r28; for (i = 0; i < 12; i++) { temp_r31 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, ExecScratchSpr); @@ -1295,12 +1350,12 @@ static void InitScratchSpr(void) { temp_r31->trans.y = 98.0f + 110.0f * (i / 4); temp_r31->rot.x = -56.0f; temp_r31->rot.y = temp_r31->trans.y; - BoardSpriteCreate(ticketSpr[ticketPrize[i]], 0x157C, NULL, &sp8); + BoardSpriteCreate(ticketSpr[ticketPrize[i]], 5500, NULL, &sp8); HuSprGrpMemberSet(temp_r28, i, sp8); HuSprPosSet(temp_r28, i, temp_r31->rot.x, temp_r31->rot.y); HuSprAttrSet(temp_r28, i, 8); temp_r29->unk02 = sp8; - BoardSpriteCreate(0x50021, 0x1388, &temp_r29->unk08, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BKUJIYA, 33), 5000, &temp_r29->unk08, &sp8); HuSprGrpMemberSet(temp_r28, i + 12, sp8); HuSprPosSet(temp_r28, i + 12, temp_r31->rot.x, temp_r31->rot.y); HuSprAttrSet(temp_r28, i + 12, 8); @@ -1417,7 +1472,7 @@ static void InitScratchPick(void) { var_r31->unk00_field0 = 0; var_r31->unk01 = GWPlayer[GWSystem.player_curr].character; var_r31->unk08 = HuSprGrpCreate(1); - BoardSpriteCreate(pickSpr[var_r31->unk01], 0x1388, 0, &var_r31->unk06); + BoardSpriteCreate(pickSpr[var_r31->unk01], 5000, 0, &var_r31->unk06); HuSprGrpMemberSet(var_r31->unk08, 0, var_r31->unk06); HuSprAttrSet(var_r31->unk08, 0, 8); HuSprPosSet(var_r31->unk08, 0, temp_f31, temp_f30); @@ -1457,7 +1512,7 @@ static void ExecTicketFocus(s32 arg0) { } temp_r29 = OM_GET_WORK_PTR(ticketObj[arg0], TicketWork); for (var_f31 = 0.0f; var_f31 < 90.0f; var_f31 += 2.0f) { - temp_f30 = 1.0 + 1.2999999523162842 * sin(var_f31 * M_PI / 180.0); + temp_f30 = 1.0 + 1.3f * sin(var_f31 * M_PI / 180.0); HuSprScaleSet(ticketSprGrp, temp_r29->unk00_field2, temp_f30, temp_f30); HuSprScaleSet(ticketSprGrp, temp_r29->unk00_field2 + 12, temp_f30, temp_f30); HuPrcVSleep(); @@ -1630,10 +1685,10 @@ static void ExecCoinPrize(void) { BoardPlayerPosGet(temp_r27, &sp8); var_f31 = 150.0f + sp8.y; if (BoardPlayerSizeGet(temp_r27) == 1) { - var_f31 = 110.0f + (52.5308f + (0.3f * var_f31)); + var_f31 = 52.5308f + 0.3f * var_f31 + 110.0f; } for (i = 0; i < 10; i++) { - coinMdl[i] = BoardModelCreate(0x7000A, NULL, 0); + coinMdl[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 0); BoardModelVisibilitySet(coinMdl[i], 0); } while (1) { @@ -1672,7 +1727,7 @@ static void ExecCoinPrize(void) { coinF[i] = 0; BoardPlayerCoinsAdd(temp_r27, 1); HuAudFXPlay(7); - omVibrate(temp_r27, 0xC, 6, 6); + omVibrate(temp_r27, 12, 6, 6); } else { BoardModelPosSetV(coinMdl[i], &sp64[i]); BoardModelRotSet(coinMdl[i], 0.0f, sp3C[i], 0.0f); @@ -1697,12 +1752,10 @@ static void ExecItemPrize(void) { s16 *var_r31; s16 i; s32 spC[2] = { - 0x0007006F, - 0x00070070 - }; - s8 sp8[2] = { - 0x02, 0x03 + DATA_MAKE_NUM(DATADIR_BOARD, 111), + DATA_MAKE_NUM(DATADIR_BOARD, 112) }; + s8 sp8[2] = { 2, 3 }; temp_r29 = GWSystem.player_curr; var_r28 = (BoardRandFloat() < 0.5f) ? 1 : 0; @@ -1752,7 +1805,7 @@ static void ExecItemPrize(void) { BoardModelKill(*var_r31); *var_r31 = -1; BoardPlayerItemAdd(GWSystem.player_curr, sp8[var_r28]); - omVibrate(GWSystem.player_curr, 0xC, 6, 6); + omVibrate(GWSystem.player_curr, 12, 6, 6); } static void KillCoin(void) { @@ -1783,7 +1836,7 @@ static void ExecPrize(void) { sp14.x = 0.0f; sp14.y = 200.0f; sp14.z = 0.0f; - BoardCameraMotionStartEx(lotteryMdl[0], 0, &sp14, 1300.0f, -1.0f, 0x15); + BoardCameraMotionStartEx(lotteryMdl[0], 0, &sp14, 1300.0f, -1.0f, 21); temp_r30 = GWSystem.player_curr; BoardStatusShowSetForce(temp_r30); BoardStatusShowSet(temp_r30, 1); @@ -1803,18 +1856,18 @@ static void ExecPrize(void) { case 0: var_r28 = lotteryMessBase + 2; var_r29 = 7; - var_r26 = 0x64; + var_r26 = 100; break; case 1: var_r28 = lotteryMessBase + 4; var_r29 = 7; - var_r26 = 0x50; + var_r26 = 80; break; case 2: var_r28 = lotteryMessBase + 5; if (var_r24 < 3) { var_r29 = 7; - var_r26 = 0x50; + var_r26 = 80; } else { var_r29 = 8; } @@ -1933,14 +1986,14 @@ static void CreateLotteryWin(s32 arg0) { temp_f30 = -10000.0f; if (arg0 == 0) { - var_r31 = 0x60050; + var_r31 = MAKE_MESSID(6, 80); var_f31 = 352.0f; } else if (arg0 == 1) { var_f31 = 352.0f; - var_r31 = 0x60051; + var_r31 = MAKE_MESSID(6, 81); } else { var_f31 = 364.0f; - var_r31 = 0x200016; + var_r31 = MAKE_MESSID(32, 22); } HuWinMesMaxSizeGet(1, sp8, var_r31); lotteryInstWin = HuWinCreate(temp_f30, var_f31, sp8[0], sp8[1], 0); @@ -1967,7 +2020,7 @@ void BoardLotteryTutorialExec(void) { s16 temp_r31; s32 temp_r30; - temp_r30 = BoardDataDirReadAsync(0x50000); + temp_r30 = BoardDataDirReadAsync(DATADIR_BKUJIYA); temp_r31 = BoardSpaceFlagSearch(0, 0x10000000); if (temp_r30 != -1) { BoardDataAsyncWait(temp_r30); diff --git a/src/game/window.c b/src/game/window.c index d141969a..fbe521c0 100644 --- a/src/game/window.c +++ b/src/game/window.c @@ -1537,7 +1537,7 @@ void HuWinMesMaxSizeGet(s16 mess_num, float *size, ...) { va_end(list); } -void HuWinInsertMesSizeGet(s32 mess, s16 index) { +void HuWinInsertMesSizeGet(u32 mess, s16 index) { winInsertF = 1; winMaxWidth = winMaxHeight = 0; GetMesMaxSizeSub(mess);