Matched mstoryDll (US) (#512)

This commit is contained in:
mrshigure 2025-01-08 15:19:36 -08:00 committed by GitHub
parent 2121a31f1d
commit 496c8544e5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 4078 additions and 273 deletions

View file

@ -10,13 +10,13 @@ REL/mstoryDll/main.c:
.text start:0x00000000 end:0x00007090 .text start:0x00000000 end:0x00007090
.rodata start:0x00000000 end:0x00000108 .rodata start:0x00000000 end:0x00000108
.data start:0x00000000 end:0x00000190 .data start:0x00000000 end:0x00000190
.bss start:0x00000000 end:0x00000058 .bss start:0x00000000 end:0x000000A8
REL/mstoryDll/board_clear.c: REL/mstoryDll/board_clear.c:
.text start:0x00007090 end:0x0000A830 .text start:0x00007090 end:0x0000A830
.rodata start:0x00000108 end:0x00000268 .rodata start:0x00000108 end:0x00000268
.data start:0x00000190 end:0x00000388 .data start:0x00000190 end:0x00000388
.bss start:0x00000058 end:0x000002C8 .bss start:0x000000A8 end:0x000002C8
REL/mstoryDll/board_miss.c: REL/mstoryDll/board_miss.c:
.text start:0x0000A830 end:0x0000E710 .text start:0x0000A830 end:0x0000E710

View file

@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x344
_prolog = .text:0x000003E8; // type:function size:0x54 scope:global _prolog = .text:0x000003E8; // type:function size:0x54 scope:global
_epilog = .text:0x0000043C; // type:function size:0x4C scope:global _epilog = .text:0x0000043C; // type:function size:0x4C scope:global
fn_1_488 = .text:0x00000488; // type:function size:0x1D0 fn_1_488 = .text:0x00000488; // type:function size:0x1D0
fn_1_658 = .text:0x00000658; // type:function size:0x1D0 ObjectSetup = .text:0x00000658; // type:function size:0x1D0
fn_1_828 = .text:0x00000828; // type:function size:0x28 fn_1_828 = .text:0x00000828; // type:function size:0x28
fn_1_850 = .text:0x00000850; // type:function size:0x20 fn_1_850 = .text:0x00000850; // type:function size:0x20
fn_1_870 = .text:0x00000870; // type:function size:0xD8 fn_1_870 = .text:0x00000870; // type:function size:0xD8
@ -189,281 +189,281 @@ fn_1_13E2C = .text:0x00013E2C; // type:function size:0x324
fn_1_14150 = .text:0x00014150; // type:function size:0x50 fn_1_14150 = .text:0x00014150; // type:function size:0x50
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte _ctors = .ctors:0x00000000; // type:label scope:global data:4byte
_dtors = .dtors: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_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float
lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 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:0x8 data:double lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double
lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double
lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float
lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double
lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float
lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float
lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float
lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float
lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float
lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float
lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double
lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float
lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 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 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 data:float lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float
lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float
lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float
lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float
lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float
lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float
lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float
lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float
lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double
lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double
lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC data:4byte lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC scope:local data:float
lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC data:4byte lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC scope:local data:float
lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC scope:local data:float
lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float
lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float
lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float
lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float
lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float
lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float
lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float
lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double
lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float
lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float
lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float
lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 data:byte lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:byte
lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float
lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC data:2byte lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xA scope:local data:2byte
lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 data:4byte lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 scope:local data:4byte
lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float
lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float
lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float
lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double
lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float
lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float
lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC data:4byte lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC scope:local data:float
lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float
lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float
lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 data:4byte lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 scope:local data:4byte
lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 scope:local
lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 data:4byte lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 scope:local data:4byte
lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float
lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float
lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC data:4byte lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC scope:local data:float
lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float
lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float
lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float
lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float
lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float
lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:float lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float
lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C data:4byte lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C scope:local data:4byte
lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:byte lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:byte
lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float
lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float
lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float
lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float
lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double
lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 data:4byte lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 scope:local data:4byte
lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 scope:local
lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 data:4byte lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 scope:local data:4byte
lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float
lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float
lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float
lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC data:4byte lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC scope:local data:float
lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float
lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float
lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float
lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC data:4byte lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC scope:local data:float
lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float
lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float
lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC data:4byte lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC scope:local data:float
lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float
lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC data:4byte lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC scope:local data:float
lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float
lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float
lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:byte
lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double
lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 data:4byte lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 scope:local data:4byte
lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float
lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float
lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float
lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float
lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float
lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float
lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float
lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float
lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 data:4byte lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 scope:local data:4byte
lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 scope:local
lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 data:4byte lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 scope:local data:4byte
lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 data:byte lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:byte
lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 data:4byte lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 scope:local data:4byte
lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float
lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float
lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float
lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double
lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float
lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float
lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float
lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float
lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 data:4byte lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 scope:local data:4byte
lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C data:4byte lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C scope:local data:4byte
lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float
lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float
lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float
lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float
lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float
lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float
lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:float lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float
lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 lbl_1_data_0 = .data:0x00000000; // type:object size:0x60
lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 data:string lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 scope:local data:string
lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 data:string lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 scope:local data:string
lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A data:string lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A scope:local data:string
lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 data:string lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 scope:local data:string
lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 lbl_1_data_100 = .data:0x00000100; // type:object size:0x10
lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 data:string lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 scope:local data:string
lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 data:string lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 scope:local data:string
lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 data:string lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 scope:local data:string
lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A data:string lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A scope:local data:string
lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A data:string lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A scope:local data:string
lbl_1_data_17F = .data:0x0000017F; // type:object size:0xE data:string lbl_1_data_17F = .data:0x0000017F; // type:object size:0xE scope:local data:string
lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 lbl_1_data_190 = .data:0x00000190; // type:object size:0x50
lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C
lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 data:string lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 scope:local data:string
lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 data:string lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 scope:local data:string
lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 data:string lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 scope:local data:string
lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 data:string lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 scope:local data:string
lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 data:string lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 scope:local data:string
lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 data:string lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 scope:local data:string
lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 data:string lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 scope:local data:string
lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 data:string lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 scope:local data:string
lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF data:string lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF scope:local data:string
lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C data:string lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C scope:local data:string
lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D data:string lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D scope:local data:string
lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 data:string lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 scope:local data:string
lbl_1_data_329 = .data:0x00000329; // type:object size:0xF data:string lbl_1_data_329 = .data:0x00000329; // type:object size:0xF scope:local data:string
lbl_1_data_338 = .data:0x00000338; // type:object size:0x1A data:string lbl_1_data_338 = .data:0x00000338; // type:object size:0x1A scope:local data:string
lbl_1_data_354 = .data:0x00000354; // type:object size:0x30 lbl_1_data_354 = .data:0x00000354; // type:object size:0x30 data:float
lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 lbl_1_data_388 = .data:0x00000388; // type:object size:0x50
lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C
lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 data:string lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 scope:local data:string
lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 data:string lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 scope:local data:string
lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 data:string lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 scope:local data:string
lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 data:string lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 scope:local data:string
lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 data:string lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 scope:local data:string
lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 data:string lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 scope:local data:string
lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 data:string lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 scope:local data:string
lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 data:string lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 scope:local data:string
lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA data:string lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA scope:local data:string
lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C data:string lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C scope:local data:string
lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D data:string lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D scope:local data:string
lbl_1_data_505 = .data:0x00000505; // type:object size:0xF data:string lbl_1_data_505 = .data:0x00000505; // type:object size:0xF scope:local data:string
lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B data:string lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B scope:local data:string
lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 data:string lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 scope:local data:string
lbl_1_data_537 = .data:0x00000537; // type:object size:0x8 data:string lbl_1_data_537 = .data:0x00000537; // type:object size:0x8 scope:local data:string
lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 data:float
lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0
lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 lbl_1_data_930 = .data:0x00000930; // type:object size:0x50
lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 data:string lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 scope:local data:string
lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 data:string lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 scope:local data:string
lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 data:string lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 scope:local data:string
lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 data:string lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 scope:local data:string
lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 data:string lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 scope:local data:string
lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 data:string lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 scope:local data:string
lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 data:string lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 scope:local data:string
lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 data:string lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 scope:local data:string
lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF data:string lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF scope:local data:string
lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C data:string lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C scope:local data:string
lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D data:string lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D scope:local data:string
lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C data:string lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C scope:local data:string
lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 data:string lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 scope:local data:string
lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF data:string lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF scope:local data:string
lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 data:string lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 scope:local data:string
lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA data:string lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA scope:local data:string
lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 data:string lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 scope:local data:string
lbl_1_data_AED = .data:0x00000AED; // type:object size:0x7 data:string lbl_1_data_AED = .data:0x00000AED; // type:object size:0x7 scope:local data:string
lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C
lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 data:string lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 scope:local data:string
lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 data:string lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 scope:local data:string
lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 data:string lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 scope:local data:string
lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 data:string lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 scope:local data:string
lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 data:string lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 scope:local data:string
lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 data:string lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 scope:local data:string
lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 data:string lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 scope:local data:string
lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 data:string lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 scope:local data:string
lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF data:string lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF scope:local data:string
lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C data:string lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C scope:local data:string
lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D data:string lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D scope:local data:string
lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF data:string lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF scope:local data:string
lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x1A data:string lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x1A scope:local data:string
lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 data:string lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 scope:local data:string
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte
lbl_1_bss_48 = .bss:0x00000048; // type:object size:0xC data:4byte lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte
lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte
lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte
lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte

View file

@ -1398,12 +1398,12 @@ config.libs = [
Rel( Rel(
"mstoryDll", "mstoryDll",
objects={ objects={
Object(NonMatching, "REL/mstoryDll/main.c"), Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/main.c"),
Object(NonMatching, "REL/mstoryDll/board_clear.c"), Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/board_clear.c"),
Object(NonMatching, "REL/mstoryDll/board_miss.c"), Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/board_miss.c"),
Object(NonMatching, "REL/mstoryDll/mg_clear.c"), Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/mg_clear.c"),
Object(NonMatching, "REL/mstoryDll/mg_miss.c"), Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/mg_miss.c"),
Object(NonMatching, "REL/mstoryDll/save.c"), Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/save.c"),
}, },
), ),
Rel( Rel(

96
include/REL/mstoryDll.h Executable file
View file

@ -0,0 +1,96 @@
#ifndef MSTORYDLL_H
#define MSTORYDLL_H
#include "game/object.h"
#include "game/process.h"
#include "dolphin/types.h"
typedef struct {
/* 0x00 */ void (*unk00)(void);
/* 0x04 */ void (*unk04)(void);
/* 0x08 */ Vec unk08;
/* 0x14 */ float unk14;
/* 0x18 */ float unk18;
/* 0x1C */ float unk1C;
/* 0x20 */ Vec unk20;
/* 0x2C */ float unk2C;
/* 0x30 */ float unk30;
/* 0x34 */ float unk34;
/* 0x38 */ float unk38;
/* 0x3C */ float unk3C;
/* 0x40 */ s32 unk40;
} StructBss4; // Size 0x44
typedef struct {
/* 0x00 */ s32 unk00;
/* 0x04 */ s32 unk04;
/* 0x08 */ s32 unk08;
/* 0x0C */ s32 unk0C;
/* 0x10 */ s32 unk10;
/* 0x14 */ s32 unk14;
/* 0x18 */ s32 unk18;
/* 0x1C */ char unk1C[0x18];
} StructFn352C; // Size 0x34
typedef struct {
/* 0x00 */ omObjData* unk00;
/* 0x04 */ void (*unk04)(omObjData*, ...);
/* 0x08 */ s32 unk08;
/* 0x0C */ s32 unk0C;
/* 0x10 */ char unk10[0x18];
} StructBss19C; // Size 0x28
// main.c
float fn_1_828(float arg0, float arg1, float arg2, float arg3);
float fn_1_870(float arg0, float arg1, float arg2, float arg3);
float fn_1_948(float arg0, float arg1, float arg2, float arg3);
float fn_1_ACC(float arg0, float arg1, float arg2, float arg3);
void fn_1_B8C(void);
void fn_1_BAC(s32 arg0);
void fn_1_BF4(void);
s32 fn_1_1834(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
void fn_1_1A64(s32 arg0);
void fn_1_1ACC(s32 arg0, s32 arg1);
BOOL fn_1_1B78(s32 arg0, s32 arg1);
BOOL fn_1_1C34(s32 arg0);
void fn_1_1CE8(s32 arg0, s32 arg1);
void fn_1_1D1C(s32 arg0, s32 arg1, s32 arg2);
void fn_1_1DCC(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
void fn_1_2224(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3);
void fn_1_2710(void (*arg0)(void));
void fn_1_27E8(Process* arg0, void (*arg1)(void));
void fn_1_2908(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5);
void fn_1_2CB0(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5);
void fn_1_352C(StructFn352C* arg0, s32 arg1);
s32 fn_1_3618(s32 arg0);
void fn_1_3704(void);
void fn_1_3804(StructBss4* arg0);
void fn_1_3ABC(StructBss4* arg0, float arg1);
void fn_1_51D0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4);
void fn_1_61E8(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4);
void fn_1_6C1C(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
s32 fn_1_6EB8(s32 arg0, s32 arg1);
void fn_1_7028(s32 arg0);
// board_clear.c
void fn_1_79B8(Process* arg0, s32 arg1, s32 arg2);
// board_miss.c
void fn_1_ACFC(Process* arg0, s32 arg1, s32 arg2);
// mg_clear.c
void fn_1_E710(Process* arg0, s32 arg1, s32 arg2);
// mg_miss.c
void fn_1_11624(Process* arg0, s32 arg1, s32 arg2);
// save.c
void fn_1_14150(Process* arg0);
extern s32 lbl_1_bss_68;
extern s32 lbl_1_bss_58[];
extern StructBss4 lbl_1_bss_4;
extern s32 lbl_1_data_0[][4];
#endif

View file

@ -314,6 +314,11 @@ static inline s32 GWPlayerCurrGet(void)
return GWSystem.player_curr; return GWSystem.player_curr;
} }
static inline s32 GWUnkB1Get(void)
{
return GWSystem.unk0B[1];
}
static inline s32 GWPlayerTeamGet(s32 player) static inline s32 GWPlayerTeamGet(s32 player)
{ {
return GWPlayer[player].team; return GWPlayer[player].team;

622
src/REL/mstoryDll/board_clear.c Executable file
View file

@ -0,0 +1,622 @@
#include "REL/mstoryDll.h"
#include "game/chrman.h"
#include "game/gamework_data.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/printfunc.h"
#include "game/window.h"
#include "game/wipe.h"
typedef struct {
/* 0x00 */ s32 unk00;
/* 0x04 */ s32 unk04;
/* 0x08 */ s32 unk08;
/* 0x0C */ char unk0C[4];
/* 0x10 */ s32 unk10;
/* 0x14 */ s32 unk14;
/* 0x18 */ char unk18[0x1C];
/* 0x34 */ StructFn352C unk34[4];
} StructBss1C4; // Size 0x104
void fn_1_8A44(void);
void fn_1_8DC0(omObjData* arg0, StructBss19C* arg1);
void fn_1_8E6C(omObjData* arg0, StructBss19C* arg1);
void fn_1_8F68(void);
void fn_1_92D4(s32 arg0);
void fn_1_9718(omObjData* arg0, StructBss19C* arg1);
void fn_1_98A4(omObjData* arg0, StructBss19C* arg1);
void fn_1_992C(void);
void fn_1_A008(omObjData* arg0, StructBss19C* arg1);
void fn_1_A0EC(void);
void fn_1_A478(void);
void fn_1_A504(void);
void fn_1_A5F4(void);
StructBss1C4 lbl_1_bss_1C4;
StructBss19C lbl_1_bss_19C;
StructBss19C lbl_1_bss_174;
StructBss19C lbl_1_bss_D4[4];
StructBss19C lbl_1_bss_AC;
Process* lbl_1_bss_A8;
s32 lbl_1_data_190[][4] = {
{ MAKE_MESSID(30, 17), MAKE_MESSID(30, 23), MAKE_MESSID(30, 62), MAKE_MESSID(30, 63) },
{ MAKE_MESSID(30, 18), MAKE_MESSID(30, 24), MAKE_MESSID(30, 64), MAKE_MESSID(30, 65) },
{ MAKE_MESSID(30, 19), MAKE_MESSID(30, 25), MAKE_MESSID(30, 66), MAKE_MESSID(30, 67) },
{ MAKE_MESSID(30, 20), MAKE_MESSID(30, 26), MAKE_MESSID(30, 68), MAKE_MESSID(30, 69) },
{ MAKE_MESSID(30, 21), MAKE_MESSID(30, 27), MAKE_MESSID(30, 70), MAKE_MESSID(30, 71) }
};
s32 lbl_1_data_1E0[][3] = {
{ MAKE_MESSID(30, 101), MAKE_MESSID(30, 102), MAKE_MESSID(30, 103) },
{ MAKE_MESSID(30, 104), MAKE_MESSID(30, 105), MAKE_MESSID(30, 106) },
{ MAKE_MESSID(30, 107), MAKE_MESSID(30, 108), MAKE_MESSID(30, 109) },
{ MAKE_MESSID(30, 110), MAKE_MESSID(30, 111), MAKE_MESSID(30, 112) },
{ MAKE_MESSID(30, 113), MAKE_MESSID(30, 114), MAKE_MESSID(30, 115) }
};
void fn_1_7090(s32 arg0, StructBss19C* arg1) {
fn_1_BAC(10);
fn_1_1DCC(lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk00, 1, 5, 15, 0);
fn_1_BAC(5);
HuAudCharVoicePlay(lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk10, 0x128);
fn_1_BAC(25);
arg1->unk04 = 0;
}
void fn_1_7134(s32 arg0, StructBss19C* arg1) {
float temp_f31;
float temp_f30;
float temp_f29;
s32 i;
temp_f29 = Hu3DData[lbl_1_bss_174.unk00->model[7]].pos.y;
for (i = 0; i <= 30; i++) {
fn_1_B8C();
temp_f31 = fn_1_870(temp_f29, 1000.0f, i, 30.0f);
temp_f30 = fn_1_870(0.0f, 1800.0f, i, 30.0f);
Hu3DModelPosSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f31, 800.0f);
Hu3DModelRotSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f30, 0.0f);
Hu3DModelPosSet(lbl_1_bss_174.unk00->model[8], 0.0f, temp_f31 + 15.0f, 775.0f);
}
arg1->unk04 = 0;
}
void fn_1_731C(s32 arg0) {
float temp_f31;
float temp_f30;
s32 var_r30;
s32 i;
var_r30 = arg0;
Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[5], HU3D_ATTR_DISPOFF);
Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[6], HU3D_ATTR_DISPOFF);
for (i = 0; i < 4; i++) {
if (lbl_1_bss_1C4.unk34[i].unk00 != lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk00) {
Hu3DModelAttrSet(lbl_1_bss_D4[i].unk00->model[1], HU3D_ATTR_DISPOFF);
}
Hu3DModelAttrSet(lbl_1_bss_D4[i].unk00->model[2], HU3D_ATTR_DISPOFF);
}
lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10);
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1);
fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_1E0[var_r30][0]);
fn_1_1ACC(lbl_1_bss_1C4.unk08, -1);
fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4));
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1);
fn_1_1A64(lbl_1_bss_1C4.unk08);
Hu3DModelPosSet(lbl_1_bss_174.unk00->model[7], 0.0f, 1000.0f, 640.0f);
Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[7], HU3D_ATTR_DISPOFF);
Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[8], HU3D_ATTR_DISPOFF);
for (i = 0; i <= 180; i++) {
fn_1_B8C();
temp_f31 = fn_1_948(1000.0f, 150.0f, i, 180.0f);
temp_f30 = fn_1_948(1800.0f, 0.0f, i, 180.0f);
Hu3DModelPosSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f31, 800.0f);
Hu3DModelRotSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f30, 0.0f);
Hu3DModelPosSet(lbl_1_bss_174.unk00->model[8], 0.0f, temp_f31 + 15.0f, 775.0f);
}
lbl_1_bss_174.unk04 = (void*) fn_1_8E6C;
fn_1_1DCC(lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk00, 1, 6, 15, 0);
lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_98A4;
fn_1_BAC(40);
HuAudSeqFadeOut(lbl_1_bss_58[0], 1000);
fn_1_BAC(50);
lbl_1_bss_58[1] = HuAudSeqPlay(0x35);
lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10);
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1);
fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_1E0[var_r30][1]);
fn_1_1ACC(lbl_1_bss_1C4.unk08, -1);
fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4));
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1);
fn_1_1A64(lbl_1_bss_1C4.unk08);
fn_1_BAC(30);
fn_1_1DCC(lbl_1_bss_174.unk00, 2, 3, 0, 0);
lbl_1_bss_174.unk04 = (void*) fn_1_8DC0;
fn_1_BAC(30);
lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_7090;
fn_1_BAC(90);
lbl_1_bss_AC.unk04 = (void*) fn_1_7134;
lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10);
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 5, 15, 1);
fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_1E0[lbl_1_bss_1C4.unk00][2]);
fn_1_1ACC(lbl_1_bss_1C4.unk08, -1);
fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4));
fn_1_1A64(lbl_1_bss_1C4.unk08);
HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1C4.unk00][3]);
}
void fn_1_79B8(Process* arg0, s32 arg1, s32 arg2) {
s32 i;
lbl_1_bss_A8 = arg0;
lbl_1_bss_1C4.unk00 = arg1;
lbl_1_bss_1C4.unk10 = arg2;
fn_1_BF4();
fn_1_3618(0xFF);
fn_1_27E8(lbl_1_bss_A8, fn_1_A478);
fn_1_3704();
fn_1_92D4(arg2);
HuPrcChildCreate(fn_1_8F68, 100, 0x2000, 0, HuPrcCurrentGet());
HuPrcChildCreate(fn_1_A0EC, 100, 0x2000, 0, HuPrcCurrentGet());
for (i = 0; i < 4; i++) {
HuPrcChildCreate(fn_1_992C, 100, 0x2000, 0, HuPrcCurrentGet());
}
HuPrcChildCreate(fn_1_8A44, 100, 0x2000, 0, HuPrcCurrentGet());
}
void fn_1_7AE0(void) {
s32 var_r30 = 16;
s32 var_r29 = 40;
GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 };
s32 i;
while (TRUE) {
fn_1_B8C();
fontcolor = FONT_COLOR_WHITE;
printWin(var_r30, var_r29, 220, 150, &sp10);
if (lbl_1_bss_19C.unk04 == NULL) {
print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE");
} else {
print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE");
}
if (lbl_1_bss_174.unk04 == NULL) {
print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE");
} else {
print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE");
}
for (i = 0; i < 4; i++) {
if (lbl_1_bss_D4[i].unk04 == NULL) {
print8(var_r30, i * 10 + (var_r29 + 20), 1.0f, "PROC_PLAYER%d -> FALSE", i);
} else {
print8(var_r30, i * 10 + (var_r29 + 20), 1.0f, "PROC_PLAYER%d -> TRUE", i);
}
}
if (lbl_1_bss_AC.unk04 == NULL) {
print8(var_r30, var_r29 + 60, 1.0f, "PROC_SUB -> FALSE");
} else {
print8(var_r30, var_r29 + 60, 1.0f, "PROC_SUB -> TRUE");
}
print8(var_r30, var_r29 + 80, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_1C4.unk00, lbl_1_bss_1C4.unk04, lbl_1_bss_1C4.unk10);
print8(var_r30, var_r29 + 100, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR");
for (i = 0; i < 4; i++) {
print8(var_r30, var_r29 + 110 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i,
lbl_1_bss_1C4.unk34[i].unk00, lbl_1_bss_1C4.unk34[i].unk04, lbl_1_bss_1C4.unk34[i].unk08,
lbl_1_bss_1C4.unk34[i].unk0C, lbl_1_bss_1C4.unk34[i].unk14, lbl_1_bss_1C4.unk34[i].unk10);
}
}
}
void fn_1_7E70(void) {
lbl_1_bss_58[0] = HuAudSeqPlay(0x33);
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
do {
fn_1_B8C();
} while (WipeStatGet() != 0);
fn_1_BAC(60);
}
void fn_1_7ECC(void) {
s32 spC = 0;
s32 sp8 = 0;
lbl_1_bss_1C4.unk08 = fn_1_1834(0, 0, 21, 2, lbl_1_bss_1C4.unk10);
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1);
fn_1_1D1C(lbl_1_bss_1C4.unk08, lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk10, 0);
fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_190[lbl_1_bss_1C4.unk00][0]);
fn_1_1ACC(lbl_1_bss_1C4.unk08, -1);
fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4));
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1);
fn_1_1A64(lbl_1_bss_1C4.unk08);
lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_9718;
fn_1_3804(&lbl_1_bss_4);
fn_1_2710(fn_1_A504);
do {
fn_1_B8C();
} while (lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 != NULL);
do {
fn_1_B8C();
} while (lbl_1_bss_AC.unk04 != NULL);
}
void fn_1_8090(void) {
lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10);
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1);
fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_190[lbl_1_bss_1C4.unk00][2]);
fn_1_1ACC(lbl_1_bss_1C4.unk08, -1);
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1);
fn_1_1A64(lbl_1_bss_1C4.unk08);
fn_1_1DCC(lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk00, 1, 6, 15, 0);
lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_98A4;
Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[5], HU3D_ATTR_DISPOFF);
Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[6], HU3D_ATTR_DISPOFF);
fn_1_BAC(180);
HuAudSeqFadeOut(lbl_1_bss_58[0], 1000);
fn_1_1DCC(lbl_1_bss_174.unk00, 2, 3, 0, 0);
fn_1_BAC(75);
lbl_1_bss_58[1] = HuAudSeqPlay(0x35);
lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10);
fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 4, 15, 1);
fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_190[lbl_1_bss_1C4.unk00][3]);
lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = NULL;
lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_7090;
fn_1_1ACC(lbl_1_bss_1C4.unk08, -1);
fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4));
HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1C4.unk00][3]);
fn_1_1A64(lbl_1_bss_1C4.unk08);
do {
fn_1_B8C();
} while (lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 != NULL);
}
void fn_1_83B0(void) {
fn_1_BAC(60);
HuAudSeqFadeOut(lbl_1_bss_58[1], 3000);
fn_1_3804(&lbl_1_bss_4);
fn_1_2710(fn_1_A5F4);
fn_1_BAC(150);
}
void fn_1_8408(void) {
omOvlHisData* var_r30;
u16 sp8[] = { 53, 56, 55, 54, 57 };
s32 sp14[] = { 9, 14, 10, 11, 12 };
s32 var_r29;
s32 var_r28;
s32 i;
WipeColorSet(0xFF, 0xFF, 0xFF);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
do {
fn_1_B8C();
} while (WipeStatGet() != 0);
CharModelKill(-1);
MGSeqKillAll();
var_r29 = lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk10;
var_r28 = lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk14;
GWPlayerCfg[lbl_1_bss_1C4.unk04].character = GWPlayerCfg->character;
GWPlayerCfg[lbl_1_bss_1C4.unk04].pad_idx = GWPlayerCfg->pad_idx;
GWPlayerCfg[lbl_1_bss_1C4.unk04].group = GWPlayerCfg->group;
GWPlayerCfg[lbl_1_bss_1C4.unk04].iscom = GWPlayerCfg->iscom;
GWPlayerCfg->character = var_r29;
GWPlayerCfg->pad_idx = var_r28;
GWPlayerCfg->group = 0;
GWPlayerCfg->iscom = 0;
for (i = 0; i < 4; i++) {
GWPlayer[i].character = GWPlayerCfg[i].character;
GWPlayer[i].port = GWPlayerCfg[i].pad_idx;
GWPlayer[i].com = GWPlayerCfg[i].iscom;
GWPlayer[i].team = GWPlayerCfg[i].group;
}
GWPlayerCfg[1].character = sp14[GWSystem.board];
for (i = 1; i < 4; i++) {
GWPlayerCfg[i].iscom = GWPlayerCfg[i].group = 1;
}
var_r30 = omOvlHisGet(0);
omOvlHisChg(0, OVL_MSTORY, 2, var_r30->stat);
OSReport("########## dllno - %d\n", sp8[GWSystem.board], GWSystem.board);
HuAudSeqAllFadeOut(1000);
HuAudSStreamAllFadeOut(1000);
omOvlCallEx(sp8[GWSystem.board], 1, 0, 0);
while (TRUE) {
fn_1_B8C();
}
}
void fn_1_87DC(s32 arg0, StructBss19C* arg1) {
fn_1_7E70();
fn_1_7ECC();
fn_1_731C(lbl_1_bss_1C4.unk00);
fn_1_83B0();
fn_1_8408();
arg1->unk04 = NULL;
}
void fn_1_8A44(void) {
omObjData* var_r31;
var_r31 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL);
lbl_1_bss_19C.unk00 = var_r31;
lbl_1_bss_19C.unk04 = (void*) fn_1_87DC;
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_19C.unk04 != NULL) {
lbl_1_bss_19C.unk04(var_r31, &lbl_1_bss_19C);
}
}
}
void fn_1_8AE0(omObjData* arg0) {
arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56));
arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]);
fn_1_1DCC(arg0, 1, 0, 0, 2);
Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base");
arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59));
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60));
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61));
fn_1_1DCC(arg0, 2, 2, 0, 2);
arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57));
arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 76 + lbl_1_bss_1C4.unk00));
arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]);
Hu3DModelPosSet(arg0->model[5], 0.0f, 80.0f, 460.0f);
Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF);
Hu3DModelShadowSet(arg0->model[5]);
fn_1_1DCC(arg0, 5, 5, 0, 2);
arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 75));
arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]);
Hu3DModelHookSet(arg0->model[5], "stargbox_fix-effect_fook1", arg0->model[6]);
Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF);
fn_1_1DCC(arg0, 6, 6, 0, 2);
arg0->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 81));
Hu3DModelAttrSet(arg0->model[7], HU3D_ATTR_DISPOFF);
arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 96));
arg0->motion[8] = Hu3DMotionIDGet(arg0->model[8]);
Hu3DModelAttrSet(arg0->model[8], HU3D_ATTR_DISPOFF);
fn_1_1DCC(arg0, 8, 8, 0, 1);
}
void fn_1_8DC0(omObjData* arg0, StructBss19C* arg1) {
Hu3DData[arg0->model[5]].pos.y = fn_1_ACC(80.0f, 90.0f, arg0->work[0]++, 360.0f);
if (arg0->work[0] >= 360) {
arg0->work[0] = 0;
}
}
void fn_1_8E6C(omObjData* arg0, StructBss19C* arg1) {
Hu3DData[arg0->model[7]].pos.y += fn_1_ACC(0.0f, 0.25f, arg0->work[0]++, 360.0f);
Hu3DData[arg0->model[8]].pos.y = Hu3DData[arg0->model[7]].pos.y + 15.0f;
if (arg0->work[0] >= 360) {
arg0->work[0] = 0;
}
}
void fn_1_8F68(void) {
omObjData* temp_r31;
temp_r31 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL);
lbl_1_bss_174.unk00 = temp_r31;
lbl_1_bss_174.unk04 = (void*) fn_1_8DC0;
lbl_1_bss_174.unk00->data = &lbl_1_bss_174;
fn_1_8AE0(temp_r31);
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_174.unk04 != NULL) {
lbl_1_bss_174.unk04(temp_r31, &lbl_1_bss_174);
}
}
}
void fn_1_92D4(s32 arg0) {
s32 spC[4];
s32 i;
spC[0] = 0;
for (i = 1; i < 4; i++) {
spC[i] = spC[i - 1] + 1;
if (spC[i] >= 4) {
spC[i] = 0;
}
if (arg0 == spC[i]) {
lbl_1_bss_1C4.unk04 = i;
}
}
for (i = 0; i < 4; i++) {
fn_1_352C(&lbl_1_bss_1C4.unk34[i], spC[i]);
}
for (i = 0; i < 4; i++) {
lbl_1_bss_1C4.unk34[i].unk18 = GWPlayer[spC[i]].rank + 1;
}
}
Vec lbl_1_data_354[] = {
{ -300.0f, 0.0f, 460.0f },
{ -100.0f, -30.0f, 460.0f },
{ 100.0f, -60.0f, 460.0f },
{ 300.0f, -90.0f, 460.0f }
};
void fn_1_9408(omObjData* arg0, s32 arg1) {
s32 var_r30;
s32 temp_r29;
var_r30 = arg1;
temp_r29 = lbl_1_bss_1C4.unk34[var_r30].unk10;
arg0->model[1] = CharModelCreate(temp_r29, 4);
arg0->motion[1] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0));
arg0->motion[2] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 3));
arg0->motion[3] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 5));
arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 48 + temp_r29));
arg0->motion[5] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 109));
arg0->motion[6] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 40 + temp_r29));
CharModelMotionDataClose(temp_r29);
Hu3DModelPosSet(arg0->model[1], lbl_1_data_354[var_r30].x, lbl_1_data_354[lbl_1_bss_1C4.unk34[var_r30].unk18 - 1].y + 90.0f, lbl_1_data_354[var_r30].z - 15.0f);
Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f);
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
Hu3DModelShadowSet(arg0->model[1]);
fn_1_1DCC(arg0, 1, 1, 0, 1);
arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 62));
Hu3DModelPosSet(arg0->model[2], lbl_1_data_354[var_r30].x, lbl_1_data_354[lbl_1_bss_1C4.unk34[var_r30].unk18 - 1].y, lbl_1_data_354[var_r30].z);
if (lbl_1_bss_1C4.unk34[var_r30].unk18 == 4) {
Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF);
}
Hu3DModelShadowMapSet(arg0->model[2]);
Hu3DModelScaleSet(arg0->model[2], 1.5f, 1.0f, 1.5f);
}
void fn_1_9718(omObjData* arg0, StructBss19C* arg1) {
Vec sp20 = { 120.0f, 0.0f, 670.0f };
fn_1_2908(arg0, 1, sp20, -1.0f, 30.0f, 10.0f);
lbl_1_bss_AC.unk04 = (void*) fn_1_A008;
fn_1_1DCC(lbl_1_bss_174.unk00, 2, 2, 0, 0);
fn_1_1DCC(arg0, 1, 2, 15, 1);
fn_1_2CB0(arg0, 1, sp20, -45.0f, 30.0f, 10.0f);
fn_1_1DCC(arg0, 1, 1, 15, 1);
fn_1_2224(lbl_1_bss_174.unk00, 2, 2, 0);
arg1->unk04 = 0;
}
void fn_1_98A4(omObjData* arg0, StructBss19C* arg1) {
if (arg0->motion[6] == Hu3DMotionIDGet(arg0->model[1]) && Hu3DMotionEndCheck(arg0->model[1])) {
fn_1_1DCC(arg0, 1, 4, 15, 1);
arg1->unk04 = 0;
}
}
void fn_1_992C(void) {
omObjData* temp_r3;
s32 temp_r30;
temp_r30 = lbl_1_bss_1C4.unk14++;
temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL);
lbl_1_bss_D4[temp_r30].unk00 = temp_r3;
lbl_1_bss_D4[temp_r30].unk04 = NULL;
lbl_1_bss_D4[temp_r30].unk00->data = &lbl_1_bss_D4[temp_r30];
fn_1_9408(temp_r3, temp_r30);
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_D4[temp_r30].unk04 != NULL) {
lbl_1_bss_D4[temp_r30].unk04(temp_r3, &lbl_1_bss_D4[temp_r30]);
}
}
}
void fn_1_9D08(omObjData* arg0, s32 arg1) {
s32 sp1C[] = {
DATA_MAKE_NUM(DATADIR_MSTORY, 97),
DATA_MAKE_NUM(DATADIR_MSTORY, 108),
DATA_MAKE_NUM(DATADIR_MSTORY, 116),
DATA_MAKE_NUM(DATADIR_MSTORY, 124),
DATA_MAKE_NUM(DATADIR_MSTORY, 131)
};
s32 sp30[][5] = {
{ DATA_MAKE_NUM(DATADIR_MSTORY, 98), DATA_MAKE_NUM(DATADIR_MSTORY, 100), DATA_MAKE_NUM(DATADIR_MSTORY, 101), DATA_MAKE_NUM(DATADIR_MSTORY, 103), DATA_MAKE_NUM(DATADIR_MSTORY, 104) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 109), DATA_MAKE_NUM(DATADIR_MSTORY, 111), DATA_MAKE_NUM(DATADIR_MSTORY, 112), DATA_MAKE_NUM(DATADIR_MSTORY, 114), DATA_MAKE_NUM(DATADIR_MSTORY, 115) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 117), DATA_MAKE_NUM(DATADIR_MSTORY, 119), DATA_MAKE_NUM(DATADIR_MSTORY, 120), DATA_MAKE_NUM(DATADIR_MSTORY, 122), DATA_MAKE_NUM(DATADIR_MSTORY, 123) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 125), DATA_MAKE_NUM(DATADIR_MSTORY, 126), DATA_MAKE_NUM(DATADIR_MSTORY, 127), DATA_MAKE_NUM(DATADIR_MSTORY, 129), DATA_MAKE_NUM(DATADIR_MSTORY, 130) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 132), DATA_MAKE_NUM(DATADIR_MSTORY, 134), DATA_MAKE_NUM(DATADIR_MSTORY, 135), DATA_MAKE_NUM(DATADIR_MSTORY, 137), DATA_MAKE_NUM(DATADIR_MSTORY, 138) }
};
arg0->model[1] = Hu3DModelCreateFile(sp1C[arg1]);
arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][0]);
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][1]);
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][2]);
arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][3]);
arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][4]);
Hu3DModelPosSet(arg0->model[1], -300.0f, 0.0f, 890.0f);
Hu3DModelRotSet(arg0->model[1], 0.0f, 30.0f, 0.0f);
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
if (arg1 == 3) {
Hu3DData[arg0->model[1]].pos.y = 50.0f;
}
Hu3DModelShadowSet(arg0->model[1]);
fn_1_1DCC(arg0, 1, 5, 0, 1);
{
s32 sp8[] = { 9, 14, 10, 11, 12 };
if (arg1 != 3) {
CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]);
}
}
}
void fn_1_A008(omObjData* arg0, StructBss19C* arg1) {
Vec sp14 = { -120.0f, 0.0f, 670.0f };
fn_1_1DCC(arg0, 1, 2, 15, 1);
fn_1_2CB0(arg0, 1, sp14, 45.0f, 60.0f, 10.0f);
fn_1_1DCC(arg0, 1, 1, 15, 1);
arg1->unk04 = 0;
}
void fn_1_A0EC(void) {
omObjData* temp_r3;
s32 temp_r30;
temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL);
lbl_1_bss_AC.unk00 = temp_r3;
lbl_1_bss_AC.unk04 = NULL;
lbl_1_bss_AC.unk00->data = &lbl_1_bss_AC;
temp_r30 = lbl_1_bss_1C4.unk00;
fn_1_9D08(temp_r3, temp_r30);
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_AC.unk04 != NULL) {
lbl_1_bss_AC.unk04(temp_r3, &lbl_1_bss_AC);
}
}
}
void fn_1_A478(void) {
StructBss4* var_r31;
var_r31 = &lbl_1_bss_4;
var_r31->unk08.x = 0.0f;
var_r31->unk08.y = 170.0f;
var_r31->unk08.z = 0.0f;
var_r31->unk20.x = -5.0f;
var_r31->unk20.y = 0.0f;
var_r31->unk20.z = 0.0f;
var_r31->unk38 = 1700.0f;
}
void fn_1_A504(void) {
StructBss4* var_r31;
StructBss4 sp8;
var_r31 = &lbl_1_bss_4;
sp8.unk08.x = 0.0f;
sp8.unk08.y = 125.0f;
sp8.unk08.z = 0.0f;
sp8.unk20.x = -5.0f;
sp8.unk20.y = 0.0f;
sp8.unk20.z = 0.0f;
sp8.unk38 = 1750.0f;
fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f);
}
void fn_1_A5F4(void) {
StructBss4* var_r31;
StructBss4 sp8;
var_r31 = &lbl_1_bss_4;
if (var_r31->unk40 == 50) {
fn_1_1DCC(lbl_1_bss_174.unk00, 5, 5, 0, 0);
fn_1_1DCC(lbl_1_bss_174.unk00, 6, 6, 0, 0);
HuAudFXPlay(0xA1);
}
sp8.unk08.x = 0.0f;
sp8.unk08.y = 130.0f;
sp8.unk08.z = 460.0f;
sp8.unk20.x = 0.0f;
sp8.unk20.y = 0.0f;
sp8.unk20.z = 0.0f;
sp8.unk38 = 150.0f;
fn_1_51D0(var_r31, &sp8, var_r31->unk40, 180.0f, 10.0f);
if (var_r31->unk40++ >= 90) {
if (var_r31->unk40 == 91) {
lbl_1_bss_68 = HuAudFXPlay(0x21);
}
var_r31->unk20.x = fn_1_828(var_r31->unk20.x, -45.0f, var_r31->unk40 - 90, 90.0f);
Hu3DData[lbl_1_bss_174.unk00->model[5]].rot.x = fn_1_828(0.0f, 45.0f, var_r31->unk40 - 90, 90.0f);
}
}

817
src/REL/mstoryDll/board_miss.c Executable file
View file

@ -0,0 +1,817 @@
#include "REL/mstoryDll.h"
#include "game/armem.h"
#include "game/audio.h"
#include "game/board/main.h"
#include "game/chrman.h"
#include "game/data.h"
#include "game/gamework_data.h"
#include "game/hsfanim.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/minigame_seq.h"
#include "game/printfunc.h"
#include "game/sprite.h"
#include "game/window.h"
#include "game/wipe.h"
typedef struct {
/* 0x000 */ s32 unk00;
/* 0x004 */ s32 unk04;
/* 0x008 */ s32 unk08;
/* 0x00C */ s32 unk0C;
/* 0x010 */ s32 unk10;
/* 0x014 */ s32 unk14;
/* 0x018 */ char unk18[0x1C];
/* 0x034 */ StructFn352C unk34[4];
/* 0x104 */ float unk104;
} StructBss450; // Size 0x108
typedef struct {
/* 0x00 */ s32 unk00;
/* 0x04 */ s32 unk04;
/* 0x08 */ s32 unk08;
/* 0x0C */ char unk0C[4];
/* 0x10 */ s32 unk10;
/* 0x14 */ s32 unk14;
} StructBss2D0; // Size 0x18
void fn_1_C360(void);
void fn_1_C7C4(void);
void fn_1_CE48(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
void fn_1_CEF4(omObjData* arg0, StructBss19C* arg1);
void fn_1_D180(void);
void fn_1_D57C(s32 arg0);
void fn_1_DAA4(omObjData* arg0, StructBss19C* arg1);
void fn_1_DC08(omObjData* arg0, StructBss19C* arg1);
void fn_1_DD20(omObjData* arg0, StructBss19C* arg1);
void fn_1_DE04(void);
void fn_1_E228(void);
void fn_1_E2B4(void);
void fn_1_E3E4(void);
void fn_1_E620(void);
StructBss450 lbl_1_bss_450;
StructBss19C lbl_1_bss_428;
StructBss19C lbl_1_bss_400;
StructBss19C lbl_1_bss_3D8;
StructBss19C lbl_1_bss_338[4];
AnimData* lbl_1_bss_330[2];
StructBss2D0 lbl_1_bss_2D0[4];
s32 lbl_1_bss_2CC;
Process* lbl_1_bss_2C8;
s32 lbl_1_data_388[][4] = {
{ MAKE_MESSID(30, 28), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) },
{ MAKE_MESSID(30, 29), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) },
{ MAKE_MESSID(30, 30), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) },
{ MAKE_MESSID(30, 31), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) },
{ MAKE_MESSID(30, 32), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) }
};
s32 lbl_1_data_3D8[] = {
DATADIR_W01,
DATADIR_W02,
DATADIR_W03,
DATADIR_W04,
DATADIR_W05,
DATADIR_W06,
DATADIR_W10,
DATADIR_MARIOMDL1,
DATADIR_LUIGIMDL1,
DATADIR_PEACHMDL1,
DATADIR_YOSHIMDL1,
DATADIR_WARIOMDL1,
DATADIR_DONKEYMDL1,
DATADIR_DAISYMDL1,
DATADIR_WALUIGIMDL1
};
void fn_1_A830(void) {
s32 temp_r3;
temp_r3 = HuDataDirReadAsync(DATADIR_BOARD);
if (temp_r3 != -1) {
while (HuDataGetAsyncStat(temp_r3) == 0) {
HuPrcVSleep();
}
}
HuAR_MRAMtoARAM(DATADIR_BOARD);
while (HuARDMACheck()) {
HuPrcVSleep();
}
HuDataDirClose(DATADIR_BOARD);
temp_r3 = HuDataDirReadAsync(lbl_1_data_3D8[GWSystem.board]);
if (temp_r3 != -1) {
while (HuDataGetAsyncStat(temp_r3) == 0) {
HuPrcVSleep();
}
}
lbl_1_bss_2CC = 1;
HuPrcEnd();
while (TRUE) {
HuPrcVSleep();
}
}
void fn_1_A8F8(void) {
s32 i;
s32 j;
lbl_1_bss_2D0[0].unk00 = 0;
lbl_1_bss_2D0[0].unk04 = 0;
lbl_1_bss_2D0[0].unk10 = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk10;
lbl_1_bss_2D0[0].unk14 = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk14;
lbl_1_bss_2D0[0].unk08 = 0;
for (i = 1; i < 4; i++) {
lbl_1_bss_2D0[i].unk10 = -1;
lbl_1_bss_2D0[i].unk14 = i;
lbl_1_bss_2D0[i].unk08 = 1;
}
for (i = 1; i < 4; i++) {
do {
lbl_1_bss_2D0[i].unk10 = rand8() % 8;
for (j = 0; j < 4; j++) {
if (i != j && lbl_1_bss_2D0[j].unk10 != -1 && lbl_1_bss_2D0[i].unk10 == lbl_1_bss_2D0[j].unk10) {
break;
}
}
} while (j != 4);
}
for (i = 0; i < 4; i++) {
GWPlayerCfg[i].character = lbl_1_bss_2D0[i].unk10;
GWPlayerCfg[i].pad_idx = lbl_1_bss_2D0[i].unk14;
GWPlayerCfg[i].group = 0;
GWPlayerCfg[i].iscom = lbl_1_bss_2D0[i].unk08;
}
BoardSaveInit(GWSystem.board);
CharKill(-1);
HuDataDirClose(DATADIR_MSTORY);
HuPrcChildCreate(fn_1_A830, 100, 0x3000, 0, lbl_1_bss_2C8);
}
void fn_1_ABAC(void) {
omOvlHisData* var_r30;
s32 sp8[] = { OVL_W01, OVL_W02, OVL_W03, OVL_W04, OVL_W05, OVL_W06, OVL_W10 };
WipeColorSet(0xFF, 0xFF, 0xFF);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
while (WipeStatGet() != 0) {
fn_1_B8C();
}
CharModelKill(-1);
MGSeqKillAll();
var_r30 = omOvlHisGet(0);
omOvlHisChg(0, OVL_MSTORY3, 0, var_r30->stat);
do {
fn_1_B8C();
} while (lbl_1_bss_2CC != 1);
CharARAMOpen(GWPlayerCfg[0].character);
CharARAMOpen(GWPlayerCfg[1].character);
CharARAMOpen(GWPlayerCfg[2].character);
CharARAMOpen(GWPlayerCfg[3].character);
HuAudSeqAllFadeOut(1000);
HuAudSStreamAllFadeOut(1000);
omOvlCallEx(sp8[GWSystem.board], 1, 0, 0);
while (TRUE) {
fn_1_B8C();
}
}
void fn_1_ACFC(Process* arg0, s32 arg1, s32 arg2) {
s32 i;
lbl_1_bss_2C8 = arg0;
lbl_1_bss_450.unk04 = arg2;
lbl_1_bss_450.unk10 = arg2;
lbl_1_bss_450.unk00 = arg1;
fn_1_BF4();
fn_1_3618(0xFF);
fn_1_27E8(lbl_1_bss_2C8, fn_1_E228);
fn_1_3704();
fn_1_D57C(arg2);
HuPrcChildCreate(fn_1_C7C4, 100, 0x2000, 0, HuPrcCurrentGet());
HuPrcChildCreate(fn_1_D180, 100, 0x2000, 0, HuPrcCurrentGet());
for (i = 0; i < 4; i++) {
HuPrcChildCreate(fn_1_DE04, 100, 0x2000, 0, HuPrcCurrentGet());
}
HuPrcChildCreate(fn_1_C360, 100, 0x2000, 0, HuPrcCurrentGet());
}
void fn_1_AE30(omObjData* arg0) {
if (arg0->work[2] != 0) {
arg0->work[2]--;
return;
}
if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[1])) {
fn_1_1DCC(arg0, 1, arg0->work[1], 15, 1);
arg0->work[0] = arg0->work[1] = arg0->work[2] = 0;
}
}
void fn_1_AEBC(void) {
s32 var_r30 = 16;
s32 var_r29 = 40;
GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 };
s32 i;
while (TRUE) {
fn_1_B8C();
printWin(var_r30, var_r29, 220, 160, &sp10);
if (lbl_1_bss_428.unk04 == NULL) {
print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE");
} else {
print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE");
}
if (lbl_1_bss_400.unk04 == NULL) {
print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE");
} else {
print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE");
}
if (lbl_1_bss_3D8.unk04 == NULL) {
print8(var_r30, var_r29 + 30, 1.0f, "PROC_MKOOPA -> FALSE");
} else {
print8(var_r30, var_r29 + 30, 1.0f, "PROC_MKOOPA -> TRUE");
}
for (i = 0; i < 4; i++) {
if (lbl_1_bss_338[i].unk04 == NULL) {
print8(var_r30, i * 10 + (var_r29 + 40), 1.0f, "PROC_PLAYER%d -> FALSE", i);
} else {
print8(var_r30, i * 10 + (var_r29 + 40), 1.0f, "PROC_PLAYER%d -> TRUE", i);
}
}
print8(var_r30, var_r29 + 90, 1.0f, "P:%d W:%d", lbl_1_bss_450.unk04, lbl_1_bss_450.unk10);
print8(var_r30, var_r29 + 110, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR");
for (i = 0; i < 4; i++) {
print8(var_r30, var_r29 + 120 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i,
lbl_1_bss_450.unk34[i].unk00, lbl_1_bss_450.unk34[i].unk04, lbl_1_bss_450.unk34[i].unk08,
lbl_1_bss_450.unk34[i].unk0C, lbl_1_bss_450.unk34[i].unk14, lbl_1_bss_450.unk34[i].unk10);
}
}
}
void fn_1_B230(void) {
lbl_1_bss_58[0] = HuAudSeqPlay(0x34);
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
do {
fn_1_B8C();
} while (WipeStatGet() != 0);
fn_1_BAC(60);
}
void fn_1_B28C(void) {
s32 i;
HuAudFXPlay(lbl_1_data_0[lbl_1_bss_450.unk00][1]);
lbl_1_bss_450.unk08 = fn_1_1834(0, 0, 21, 2, lbl_1_bss_450.unk10);
fn_1_CE48(3, -1, 15, 1, 0);
fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][0]);
fn_1_1ACC(lbl_1_bss_450.unk08, -1);
fn_1_1CE8(lbl_1_bss_450.unk08, MAKE_MESSID(37, 4));
fn_1_CE48(1, -1, 15, 1, 0);
fn_1_1A64(lbl_1_bss_450.unk08);
for (i = 0; i < 4; i++) {
lbl_1_bss_338[i].unk04 = (void*) fn_1_DAA4;
}
do {
fn_1_B8C();
for (i = 0; i < 4; i++) {
if (lbl_1_bss_338[i].unk04 != NULL) {
break;
}
}
} while (i != 4);
lbl_1_bss_338[lbl_1_bss_450.unk04].unk04 = (void*) fn_1_DC08;
fn_1_3804(&lbl_1_bss_4);
fn_1_2710(fn_1_E2B4);
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_338[lbl_1_bss_450.unk04].unk04 == NULL) {
break;
}
}
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_3D8.unk04 == NULL) {
break;
}
}
fn_1_BAC(30);
}
BOOL fn_1_B4A0(void) {
BOOL temp_r31 = FALSE;
fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][1]);
fn_1_1ACC(lbl_1_bss_450.unk08, 5);
lbl_1_bss_450.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_450.unk10);
fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(30, 53));
temp_r31 = fn_1_1C34(lbl_1_bss_450.unk0C);
fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(37, 4));
fn_1_7028(lbl_1_bss_450.unk0C);
return temp_r31;
}
BOOL fn_1_B588(void) {
BOOL temp_r31 = FALSE;
fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][2]);
fn_1_1ACC(lbl_1_bss_450.unk08, 5);
lbl_1_bss_450.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_450.unk10);
fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(30, 53));
temp_r31 = fn_1_1C34(lbl_1_bss_450.unk0C);
fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(37, 4));
fn_1_7028(lbl_1_bss_450.unk0C);
return temp_r31;
}
BOOL fn_1_B670(void) {
BOOL temp_r31 = FALSE;
fn_1_CE48(3, -1, 15, 1, 0);
fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][3]);
fn_1_1ACC(lbl_1_bss_450.unk08, 5);
fn_1_CE48(1, -1, 15, 1, 0);
lbl_1_bss_450.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_450.unk10);
fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(30, 53));
temp_r31 = fn_1_1B78(lbl_1_bss_450.unk0C, 1);
fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(37, 4));
fn_1_7028(lbl_1_bss_450.unk0C);
return temp_r31;
}
void fn_1_B78C(void) {
fn_1_BAC(60);
fn_1_A8F8();
Hu3DModelAttrReset(lbl_1_bss_400.unk00->model[5], HU3D_ATTR_DISPOFF);
Hu3DModelAttrReset(lbl_1_bss_400.unk00->model[6], HU3D_ATTR_DISPOFF);
fn_1_1DCC(lbl_1_bss_400.unk00, 2, 3, 0, 0);
fn_1_BAC(30);
fn_1_1DCC(lbl_1_bss_3D8.unk00, 1, 4, 15, 0);
fn_1_BAC(30);
fn_1_1DCC(lbl_1_bss_338[lbl_1_bss_450.unk04].unk00, 1, 3, 15, 0);
fn_1_2224(lbl_1_bss_400.unk00, 2, 3, 0);
fn_1_BAC(60);
HuAudSeqFadeOut(lbl_1_bss_58[0], 3000);
fn_1_3804(&lbl_1_bss_4);
fn_1_2710(fn_1_E3E4);
fn_1_BAC(150);
}
void fn_1_B8C8(void) {
}
void fn_1_B8CC(void) {
fn_1_1DCC(lbl_1_bss_400.unk00, 2, 3, 0, 0);
fn_1_2224(lbl_1_bss_400.unk00, 2, 3, 0);
fn_1_3804(&lbl_1_bss_4);
fn_1_2710(fn_1_E620);
lbl_1_bss_3D8.unk04 = (void*) fn_1_CEF4;
lbl_1_bss_338[lbl_1_bss_450.unk04].unk04 = (void*) fn_1_DD20;
do {
fn_1_B8C();
} while (lbl_1_bss_3D8.unk04 != NULL);
fn_1_1DCC(lbl_1_bss_400.unk00, 2, 2, 0, 0);
fn_1_2224(lbl_1_bss_400.unk00, 2, 2, 0);
}
void fn_1_B9D0(s32 arg0) {
s32 i;
fn_1_BAC(60);
HuAudSeqFadeOut(lbl_1_bss_58[0], 1000);
WipeColorSet(0xFF, 0xFF, 0xFF);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
while (TRUE) {
fn_1_B8C();
if (WipeStatGet() == 0) {
break;
}
}
CharModelKill(-1);
HuAudFadeOut(1);
if (arg0 == 1) {
omOvlReturnEx(1, 1);
} else {
GWPlayerCfg->group = 0;
GWPlayerCfg->character = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk10;
GWPlayerCfg->pad_idx = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk14;
GWPlayerCfg->iscom = 0;
for (i = 0; i < 4; i++) {
GWPlayer[i].character = GWPlayerCfg[i].character;
GWPlayer[i].port = GWPlayerCfg[i].pad_idx;
GWPlayer[i].com = GWPlayerCfg[i].iscom;
GWPlayer[i].team = GWPlayerCfg[i].group;
}
omOvlGotoEx(OVL_MENT, 1, 10, 0);
}
while (TRUE) {
fn_1_B8C();
}
}
void fn_1_BBD8(s32 arg0, StructBss19C* arg1) {
s32 i;
s32 var_r30 = 0;
fn_1_B230();
fn_1_B28C();
lbl_1_bss_450.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_450.unk10);
while (TRUE) {
fn_1_B8C();
if (fn_1_B4A0()) {
var_r30 = 0;
break;
}
if (fn_1_B588()) {
var_r30 = 2;
break;
}
if (fn_1_B670()) {
var_r30 = 1;
break;
}
}
fn_1_1A64(lbl_1_bss_450.unk08);
for (i = 0; i < 4; i++) {
if (lbl_1_bss_450.unk34[i].unk00 != lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk00) {
Hu3DModelAttrSet(lbl_1_bss_338[i].unk00->model[1], HU3D_ATTR_DISPOFF);
}
Hu3DModelAttrSet(lbl_1_bss_338[i].unk00->model[2], HU3D_ATTR_DISPOFF);
}
switch (var_r30) {
case 1:
fn_1_B8C8();
break;
case 0:
fn_1_B78C();
break;
case 2:
fn_1_B8CC();
break;
}
switch (var_r30) {
case 0:
fn_1_ABAC();
break;
case 1:
case 2:
fn_1_B9D0(var_r30);
/* fallthrough */
default:
arg1->unk04 = 0;
break;
}
}
void fn_1_C360(void) {
omObjData* temp_r3;
temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL);
lbl_1_bss_428.unk00 = temp_r3;
lbl_1_bss_428.unk04 = (void*) fn_1_BBD8;
lbl_1_bss_428.unk00->data = &lbl_1_bss_428;
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_428.unk04 != NULL) {
lbl_1_bss_428.unk04(temp_r3, &lbl_1_bss_428);
}
}
}
void fn_1_C414(omObjData* arg0, s32 arg1) {
arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56));
arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]);
fn_1_1DCC(arg0, 1, 0, 0, 2);
Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base");
arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59));
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60));
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61));
fn_1_1DCC(arg0, 2, 2, 0, 2);
arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57));
arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 63));
arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]);
Hu3DModelPosSet(arg0->model[5], 0.0f, 80.0f, 460.0f);
Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF);
Hu3DModelShadowSet(arg0->model[5]);
fn_1_1DCC(arg0, 5, 5, 0, 2);
arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 64));
arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]);
Hu3DModelHookSet(arg0->model[5], "partybox_fix2-effect_fook1", arg0->model[6]);
Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF);
fn_1_1DCC(arg0, 6, 6, 0, 2);
lbl_1_bss_330[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 65 + arg1 * 2), MEMORY_DEFAULT_NUM));
lbl_1_bss_330[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 66 + arg1 * 2), MEMORY_DEFAULT_NUM));
Hu3DAnimCreate(lbl_1_bss_330[0], lbl_1_bss_400.unk00->model[5], "ys26_p0");
Hu3DAnimCreate(lbl_1_bss_330[1], lbl_1_bss_400.unk00->model[5], "ys26_p1");
}
void fn_1_C708(omObjData* arg0, StructBss19C* arg1) {
Hu3DData[arg0->model[5]].pos.y = fn_1_ACC(80.0f, 90.0f, arg1->unk08++, 360.0f);
if (arg1->unk08 >= 360) {
arg1->unk08 = 0;
}
}
void fn_1_C7C4(void) {
omObjData* temp_r3;
temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL);
lbl_1_bss_400.unk00 = temp_r3;
lbl_1_bss_400.unk04 = (void*) fn_1_C708;
lbl_1_bss_400.unk00->data = &lbl_1_bss_400;
fn_1_C414(temp_r3, lbl_1_bss_450.unk00);
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_400.unk04 != NULL) {
lbl_1_bss_400.unk04(temp_r3, &lbl_1_bss_400);
}
}
}
void fn_1_CB48(omObjData* arg0, s32 arg1) {
s32 sp1C[] = {
DATA_MAKE_NUM(DATADIR_MSTORY, 0x61),
DATA_MAKE_NUM(DATADIR_MSTORY, 0x6C),
DATA_MAKE_NUM(DATADIR_MSTORY, 0x74),
DATA_MAKE_NUM(DATADIR_MSTORY, 0x7C),
DATA_MAKE_NUM(DATADIR_MSTORY, 0x83)
};
s32 sp30[][5] = {
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x62), DATA_MAKE_NUM(DATADIR_MSTORY, 0x64), DATA_MAKE_NUM(DATADIR_MSTORY, 0x65), DATA_MAKE_NUM(DATADIR_MSTORY, 0x67), DATA_MAKE_NUM(DATADIR_MSTORY, 0x68) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x6D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x6F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x70), DATA_MAKE_NUM(DATADIR_MSTORY, 0x72), DATA_MAKE_NUM(DATADIR_MSTORY, 0x73) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x75), DATA_MAKE_NUM(DATADIR_MSTORY, 0x77), DATA_MAKE_NUM(DATADIR_MSTORY, 0x78), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7A), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7B) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x7D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7E), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x81), DATA_MAKE_NUM(DATADIR_MSTORY, 0x82) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x84), DATA_MAKE_NUM(DATADIR_MSTORY, 0x86), DATA_MAKE_NUM(DATADIR_MSTORY, 0x87), DATA_MAKE_NUM(DATADIR_MSTORY, 0x89), DATA_MAKE_NUM(DATADIR_MSTORY, 0x8A) }
};
arg0->model[1] = Hu3DModelCreateFile(sp1C[arg1]);
arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][0]);
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][1]);
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][2]);
arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][3]);
arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][4]);
Hu3DModelPosSet(arg0->model[1], -300.0f, 0.0f, 890.0f);
Hu3DModelRotSet(arg0->model[1], 0.0f, 30.0f, 0.0f);
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
if (arg1 == 3) {
Hu3DData[arg0->model[1]].pos.y = 50.0f;
}
Hu3DModelShadowSet(arg0->model[1]);
fn_1_1DCC(arg0, 1, 1, 0, 1);
{
s32 sp8[] = { 9, 14, 10, 11, 12 };
if (arg1 != 3) {
CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]);
}
}
}
void fn_1_CE48(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
fn_1_1DCC(lbl_1_bss_3D8.unk00, 1, arg0, arg2, arg3);
if (arg3 == 1) {
arg4 = 0;
}
lbl_1_bss_3D8.unk00->work[0] = arg4;
lbl_1_bss_3D8.unk00->work[1] = arg1;
lbl_1_bss_3D8.unk00->work[2] = arg2 + 1;
}
void fn_1_CEF4(omObjData* arg0, StructBss19C* arg1) {
Vec sp14 = { 0.0f, 0.0f, 460.0f };
fn_1_1DCC(arg0, 1, 2, 15, 1);
fn_1_2CB0(arg0, 1, sp14, 0.0f, 60.0f, 10.0f);
fn_1_1DCC(arg0, 1, 1, 15, 1);
arg1->unk04 = 0;
}
void fn_1_CFD8(omObjData* arg0, StructBss19C* arg1) {
s32 i;
for (i = 0; i < 15; i++) {
fn_1_B8C();
Hu3DData[arg0->model[1]].rot.y = fn_1_828(0.0f, 135.0f, i, 15.0f);
}
arg1->unk04 = 0;
}
void fn_1_D09C(omObjData* arg0, StructBss19C* arg1) {
Vec sp14 = { -120.0f, 0.0f, 670.0f };
fn_1_1DCC(arg0, 1, 2, 15, 1);
fn_1_2CB0(arg0, 1, sp14, 45.0f, 60.0f, 10.0f);
fn_1_1DCC(arg0, 1, 1, 15, 1);
arg1->unk04 = 0;
}
void fn_1_D180(void) {
omObjData* temp_r3;
temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL);
lbl_1_bss_3D8.unk00 = temp_r3;
lbl_1_bss_3D8.unk04 = NULL;
lbl_1_bss_3D8.unk00->data = &lbl_1_bss_3D8;
fn_1_CB48(temp_r3, lbl_1_bss_450.unk00);
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_3D8.unk04 != NULL) {
lbl_1_bss_3D8.unk04(temp_r3, &lbl_1_bss_3D8);
}
if (temp_r3->work[0] != 0) {
fn_1_AE30(temp_r3);
}
}
}
void fn_1_D57C(s32 arg0) {
s32 spC[4];
s32 i;
spC[0] = 0;
for (i = 1; i < 4; i++) {
spC[i] = spC[i - 1] + 1;
if (spC[i] >= 4) {
spC[i] = 0;
}
if (arg0 == spC[i]) {
lbl_1_bss_450.unk04 = i;
}
}
for (i = 0; i < 4; i++) {
fn_1_352C(&lbl_1_bss_450.unk34[i], spC[i]);
}
for (i = 0; i < 4; i++) {
lbl_1_bss_450.unk34[i].unk18 = GWPlayer[spC[i]].rank + 1;
}
}
Vec lbl_1_data_540[] = {
{ -300.0f, 0.0f, 460.0f },
{ -100.0f, -30.0f, 460.0f },
{ 100.0f, -60.0f, 460.0f },
{ 300.0f, -90.0f, 460.0f }
};
void fn_1_D6B0(omObjData* arg0, s32 arg1) {
s32 var_r30;
s32 temp_r28;
var_r30 = arg1;
temp_r28 = lbl_1_bss_450.unk34[var_r30].unk10;
arg0->model[1] = CharModelCreate(lbl_1_bss_450.unk34[arg1].unk10, 4);
arg0->motion[1] = CharModelMotionCreate(lbl_1_bss_450.unk34[arg1].unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0));
arg0->motion[2] = CharModelMotionCreate(lbl_1_bss_450.unk34[arg1].unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 3));
arg0->motion[3] = CharModelMotionCreate(lbl_1_bss_450.unk34[arg1].unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 109));
CharModelMotionDataClose(temp_r28);
Hu3DModelPosSet(arg0->model[1], lbl_1_data_540[var_r30].x, 90.0f + lbl_1_data_540[lbl_1_bss_450.unk34[var_r30].unk18 - 1].y, lbl_1_data_540[var_r30].z - 15.0f);
Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f);
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
Hu3DModelShadowSet(arg0->model[1]);
fn_1_1DCC(arg0, 1, 1, 0, 1);
arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 62));
Hu3DModelPosSet(arg0->model[2], lbl_1_data_540[var_r30].x, lbl_1_data_540[lbl_1_bss_450.unk34[var_r30].unk18 - 1].y, lbl_1_data_540[var_r30].z);
if (lbl_1_bss_450.unk34[var_r30].unk18 == 4) {
Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF);
}
Hu3DModelScaleSet(arg0->model[2], 1.5f, 1.0f, 1.5f);
Hu3DModelShadowMapSet(arg0->model[2]);
}
void fn_1_D9A8(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
fn_1_1DCC(lbl_1_bss_338[lbl_1_bss_450.unk04].unk00, 1, arg0, arg2, arg3);
if (arg3 == 1) {
arg4 = 0;
}
lbl_1_bss_338[lbl_1_bss_450.unk04].unk00->work[0] = arg4;
lbl_1_bss_338[lbl_1_bss_450.unk04].unk00->work[1] = arg1;
lbl_1_bss_338[lbl_1_bss_450.unk04].unk00->work[2] = arg2 + 1;
}
void fn_1_DAA4(omObjData* arg0, StructBss19C* arg1) {
float temp_f31;
s32 i;
temp_f31 = Hu3DData[arg0->model[1]].pos.y;
for (i = 0; i < 60; i++) {
fn_1_B8C();
Hu3DData[arg0->model[1]].pos.y = fn_1_948(temp_f31, 0.0f, i, 60.0f);
Hu3DData[arg0->model[2]].pos.y = fn_1_948(temp_f31 - 90.0f, -90.0f, i, 60.0f);
}
Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF);
arg1->unk04 = 0;
}
void fn_1_DC08(omObjData* arg0, StructBss19C* arg1) {
Vec sp14 = { 120.0f, 0.0f, 670.0f };
lbl_1_bss_3D8.unk04 = (void*) fn_1_D09C;
fn_1_1DCC(lbl_1_bss_400.unk00, 2, 2, 0, 0);
fn_1_1DCC(arg0, 1, 2, 15, 1);
fn_1_2CB0(arg0, 1, sp14, -45.0f, 30.0f, 10.0f);
fn_1_1DCC(arg0, 1, 1, 15, 1);
arg1->unk04 = 0;
}
void fn_1_DD20(omObjData* arg0, StructBss19C* arg1) {
Vec sp14 = { 600.0f, 0.0f, 700.0f };
fn_1_1DCC(arg0, 1, 2, 15, 1);
fn_1_2CB0(arg0, 1, sp14, -45.0f, 30.0f, 10.0f);
fn_1_1DCC(arg0, 1, 1, 15, 1);
arg1->unk04 = 0;
}
void fn_1_DE04(void) {
omObjData* temp_r3;
s32 temp_r30;
temp_r30 = lbl_1_bss_450.unk14++;
temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL);
lbl_1_bss_338[temp_r30].unk00 = temp_r3;
lbl_1_bss_338[temp_r30].unk04 = NULL;
lbl_1_bss_338[temp_r30].unk00->data = lbl_1_bss_338;
fn_1_D6B0(temp_r3, temp_r30);
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_338[temp_r30].unk04 != NULL) {
lbl_1_bss_338[temp_r30].unk04(temp_r3, &lbl_1_bss_338[temp_r30]);
}
if (temp_r3->work[0] != 0) {
fn_1_AE30(temp_r3);
}
}
}
void fn_1_E228(void) {
StructBss4* var_r31;
var_r31 = &lbl_1_bss_4;
var_r31->unk08.x = 0.0f;
var_r31->unk08.y = 170.0f;
var_r31->unk08.z = 0.0f;
var_r31->unk20.x = -5.0f;
var_r31->unk20.y = 0.0f;
var_r31->unk20.z = 0.0f;
var_r31->unk38 = 1700.0f;
}
void fn_1_E2B4(void) {
StructBss4* var_r31;
StructBss4 sp8;
var_r31 = &lbl_1_bss_4;
sp8.unk08.x = 0.0f;
sp8.unk08.y = 125.0f;
sp8.unk08.z = 0.0f;
sp8.unk20.x = -5.0f;
sp8.unk20.y = 0.0f;
sp8.unk20.z = 0.0f;
sp8.unk38 = 1750.0f;
fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f);
if (lbl_1_bss_450.unk104 != 0.0f) {
var_r31->unk08.y = 125.0f + lbl_1_bss_450.unk104;
}
}
void fn_1_E3E4(void) {
StructBss4* var_r31;
StructBss4 sp8;
var_r31 = &lbl_1_bss_4;
if (var_r31->unk40 == 50) {
fn_1_1DCC(lbl_1_bss_400.unk00, 5, 5, 0, 0);
fn_1_1DCC(lbl_1_bss_400.unk00, 6, 6, 0, 0);
HuAudFXPlay(0xA1);
}
sp8.unk08.x = 0.0f;
sp8.unk08.y = 100.0f;
sp8.unk08.z = 460.0f;
sp8.unk20.x = 0.0f;
sp8.unk20.y = 0.0f;
sp8.unk20.z = 0.0f;
sp8.unk38 = 125.0f;
fn_1_51D0(var_r31, &sp8, var_r31->unk40, 180.0f, 10.0f);
if (var_r31->unk40++ >= 90) {
if (var_r31->unk40 == 91) {
lbl_1_bss_68 = HuAudFXPlay(0x21);
}
var_r31->unk20.x = fn_1_828(var_r31->unk20.x, -45.0f, var_r31->unk40 - 90, 90.0f);
Hu3DData[lbl_1_bss_400.unk00->model[5]].rot.x = fn_1_828(0.0f, 45.0f, var_r31->unk40 - 90, 90.0f);
}
}
void fn_1_E620(void) {
StructBss4* var_r31;
StructBss4 sp8;
var_r31 = &lbl_1_bss_4;
sp8.unk08.x = 0.0f;
sp8.unk08.y = 220.0f;
sp8.unk08.z = 0.0f;
sp8.unk20.x = 0.0f;
sp8.unk20.y = 0.0f;
sp8.unk20.z = 0.0f;
sp8.unk38 = 1600.0f;
fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f);
}

1012
src/REL/mstoryDll/main.c Executable file

File diff suppressed because it is too large Load diff

691
src/REL/mstoryDll/mg_clear.c Executable file
View file

@ -0,0 +1,691 @@
#include "REL/mstoryDll.h"
#include "game/chrman.h"
#include "game/data.h"
#include "game/flag.h"
#include "game/gamework.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/objsub.h"
#include "game/printfunc.h"
#include "game/saveload.h"
#include "game/sprite.h"
#include "game/window.h"
#include "game/wipe.h"
typedef struct {
/* 0x000 */ s32 unk00;
/* 0x004 */ s32 unk04;
/* 0x008 */ s32 unk08;
/* 0x00C */ char unk0C[4];
/* 0x010 */ s32 unk10;
/* 0x014 */ char unk14[0x20];
/* 0x034 */ StructFn352C unk34[4];
/* 0x104 */ s32 unk104;
} StructBss608; // Size 0x108
typedef struct {
/* 0x00 */ s32 unk00;
/* 0x04 */ s32 unk04;
/* 0x08 */ s32 unk08;
/* 0x0C */ s32 unk0C;
/* 0x10 */ s32 unk10;
} StructData570; // Size 0x14
void fn_1_FD1C(void);
void fn_1_10298(omObjData* arg0, StructBss19C* arg1);
void fn_1_10384(omObjData* arg0, StructBss19C* arg1);
void fn_1_10450(omObjData* arg0, StructBss19C* arg1);
void fn_1_1054C(void);
void fn_1_108F8(void);
void fn_1_10C6C(s32 arg0);
void fn_1_10FD0(void);
void fn_1_112A0(void);
void fn_1_1132C(void);
void fn_1_1141C(void);
void fn_1_11534(void);
StructBss608 lbl_1_bss_608;
StructBss19C lbl_1_bss_5E0;
StructBss19C lbl_1_bss_5B8;
StructBss19C lbl_1_bss_590;
StructBss19C lbl_1_bss_568;
AnimData* lbl_1_bss_560[2];
s32 lbl_1_bss_55C;
Process* lbl_1_bss_558;
StructData570 lbl_1_data_570[] = {
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x00), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x01), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x02), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x03), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x04), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x05), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x06), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x07), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x08), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x09), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0A), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0B), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0C), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0D), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0E), 1, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0F), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x10), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x11), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x12), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x13), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x14), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x15), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x16), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x17), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x18), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x19), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1A), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1B), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1C), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1D), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1E), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1F), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x20), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x21), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x22), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x23), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x24), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x25), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x26), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x27), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x28), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x29), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2A), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2B), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2C), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2D), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2E), 0, 0, 0, 1 },
{ DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2F), 0, 0, 0, 1 }
};
s32 lbl_1_data_930[][4] = {
{ MAKE_MESSID(30, 72), MAKE_MESSID(30, 73) },
{ MAKE_MESSID(30, 74), MAKE_MESSID(30, 75) },
{ MAKE_MESSID(30, 76), MAKE_MESSID(30, 77) },
{ MAKE_MESSID(30, 78), MAKE_MESSID(30, 79) },
{ MAKE_MESSID(30, 80), MAKE_MESSID(30, 81) }
};
void fn_1_E710(Process* arg0, s32 arg1, s32 arg2) {
lbl_1_bss_558 = arg0;
lbl_1_bss_608.unk00 = arg1;
lbl_1_bss_608.unk10 = arg2;
fn_1_BF4();
lbl_1_bss_608.unk104 = fn_1_3618(0xFF);
fn_1_27E8(lbl_1_bss_558, fn_1_112A0);
fn_1_3704();
fn_1_10C6C(arg2);
HuPrcChildCreate(fn_1_1054C, 100, 0x2000, 0, HuPrcCurrentGet());
HuPrcChildCreate(fn_1_108F8, 100, 0x2000, 0, HuPrcCurrentGet());
HuPrcChildCreate(fn_1_10FD0, 100, 0x2000, 0, HuPrcCurrentGet());
HuPrcChildCreate(fn_1_FD1C, 100, 0x2000, 0, HuPrcCurrentGet());
}
void fn_1_E828(omObjData* arg0) {
if (arg0->work[2] != 0) {
arg0->work[2]--;
return;
}
if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[1])) {
fn_1_1DCC(arg0, 1, arg0->work[1], 15, 1);
arg0->work[0] = arg0->work[1] = arg0->work[2] = 0;
}
}
void fn_1_E8B4(void) {
s32 var_r30 = 16;
s32 var_r29 = 40;
GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 };
s32 i;
while (TRUE) {
fn_1_B8C();
printWin(var_r30, var_r29, 220, 130, &sp10);
if (lbl_1_bss_5E0.unk04 == NULL) {
print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE");
} else {
print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE");
}
if (lbl_1_bss_5B8.unk04 == NULL) {
print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE");
} else {
print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE");
}
if (lbl_1_bss_590.unk04 == NULL) {
print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> FALSE");
} else {
print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> TRUE");
}
if (lbl_1_bss_568.unk04 == NULL) {
print8(var_r30, var_r29 + 30, 1.0f, "PROC_PLAYER -> FALSE");
} else {
print8(var_r30, var_r29 + 30, 1.0f, "PROC_PLAYER -> TRUE");
}
print8(var_r30, var_r29 + 60, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_608.unk00, lbl_1_bss_608.unk04, lbl_1_bss_608.unk10);
print8(var_r30, var_r29 + 80, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR");
for (i = 0; i < 4; i++) {
print8(var_r30, var_r29 + 90 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i,
lbl_1_bss_608.unk34[i].unk00, lbl_1_bss_608.unk34[i].unk04, lbl_1_bss_608.unk34[i].unk08,
lbl_1_bss_608.unk34[i].unk0C, lbl_1_bss_608.unk34[i].unk14, lbl_1_bss_608.unk34[i].unk10);
}
}
}
void fn_1_EC00(void) {
lbl_1_bss_58[0] = HuAudSeqPlay(0x36);
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
do {
fn_1_B8C();
} while (WipeStatGet() != 0);
fn_1_BAC(60);
}
void fn_1_EC5C(void) {
lbl_1_bss_608.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_608.unk10);
fn_1_1D1C(lbl_1_bss_608.unk08, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, 0);
fn_1_1CE8(lbl_1_bss_608.unk08, lbl_1_data_930[lbl_1_bss_608.unk00][0]);
fn_1_1ACC(lbl_1_bss_608.unk08, -1);
fn_1_1DCC(lbl_1_bss_590.unk00, 1, 1, 15, 1);
fn_1_1A64(lbl_1_bss_608.unk08);
fn_1_1DCC(lbl_1_bss_5B8.unk00, 2, 2, 0, 0);
fn_1_BAC(90);
fn_1_1DCC(lbl_1_bss_590.unk00, 1, 4, 15, 0);
fn_1_BAC(30);
fn_1_1DCC(lbl_1_bss_568.unk00, 1, 4, 15, 0);
fn_1_2224(lbl_1_bss_5B8.unk00, 2, 2, 0);
fn_1_BAC(60);
fn_1_1DCC(lbl_1_bss_568.unk00, 1, 1, 84, 1);
fn_1_1DCC(lbl_1_bss_590.unk00, 1, 1, 84, 1);
fn_1_3804(&lbl_1_bss_4);
fn_1_2710(fn_1_1132C);
lbl_1_bss_5B8.unk04 = (void*) fn_1_10450;
do {
fn_1_B8C();
} while (lbl_1_bss_5B8.unk04 != NULL);
fn_1_BAC(10);
lbl_1_bss_608.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_608.unk10);
fn_1_1DCC(lbl_1_bss_590.unk00, 1, 3, 15, 1);
if (lbl_1_bss_608.unk00 == 0) {
HuAudFXPlay(lbl_1_data_0[lbl_1_bss_608.unk00][2]);
} else {
HuAudFXPlay(lbl_1_data_0[lbl_1_bss_608.unk00][0]);
}
fn_1_1D1C(lbl_1_bss_608.unk08, MAKE_MESSID(50, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + 5) + lbl_1_bss_608.unk00, 2);
fn_1_1CE8(lbl_1_bss_608.unk08, lbl_1_data_930[lbl_1_bss_608.unk00][1]);
fn_1_1ACC(lbl_1_bss_608.unk08, -1);
fn_1_1DCC(lbl_1_bss_590.unk00, 1, 1, 15, 1);
fn_1_1A64(lbl_1_bss_608.unk08);
}
void fn_1_EFE0(s32 arg0, StructBss19C* arg1) {
s32 temp_r31;
temp_r31 = HuAudSStreamPlay(7);
do {
fn_1_B8C();
} while (HuAudSStreamStatGet(temp_r31) != 0);
HuAudSeqPause(lbl_1_bss_58[0], 0, 1000);
arg1->unk04 = 0;
}
void fn_1_F050(omObjData* arg0, StructBss19C* arg1) {
s32 temp_r31;
temp_r31 = lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00;
fn_1_BAC(150);
OSReport("########## PRESENT_SE : %d\n", temp_r31);
HuAudFXPlay(0x8D4 + temp_r31);
if (lbl_1_data_570[lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00].unk04 == 1) {
fn_1_1DCC(lbl_1_bss_5B8.unk00, 7, 7, 0, 0);
fn_1_BAC(60);
fn_1_1DCC(lbl_1_bss_5B8.unk00, 7, 12, 0, 1);
} else {
fn_1_1DCC(lbl_1_bss_5B8.unk00, 7, 7, 1, 0);
}
arg1->unk04 = 0;
}
void fn_1_F19C(void) {
s32 i;
fn_1_1DCC(lbl_1_bss_568.unk00, 1, 2, 15, 1);
for (i = 0; i < 30; i++) {
fn_1_B8C();
if (lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 != 5) {
Hu3DData[lbl_1_bss_568.unk00->model[1]].pos.x = fn_1_828(120.0f, 80.0f, i, 30.0f);
}
Hu3DData[lbl_1_bss_568.unk00->model[1]].rot.y = fn_1_828(-60.0f, -90.0f, i, 30.0f);
}
fn_1_1DCC(lbl_1_bss_568.unk00, 1, 5, 5, 0);
while (TRUE) {
fn_1_B8C();
if (Hu3DMotionTimeGet(lbl_1_bss_568.unk00->model[1]) >= 35.0f) {
break;
}
}
Hu3DModelPosSet(lbl_1_bss_5B8.unk00->model[5], 0.0f, 0.0f, 0.0f);
Hu3DModelHookReset(lbl_1_bss_5B8.unk00->model[9]);
Hu3DModelHookSet(lbl_1_bss_568.unk00->model[1], CharModelHookNameGet(lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, 1, 1), lbl_1_bss_5B8.unk00->model[5]);
fn_1_BAC(60);
lbl_1_bss_5B8.unk04 = (void*) fn_1_10298;
HuAudFXPlay(0xA3);
HuAudCharVoicePlay(lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, 0x128);
fn_1_1DCC(lbl_1_bss_5B8.unk00, 6, 6, 0, 0);
Hu3DModelAttrReset(lbl_1_bss_5B8.unk00->model[6], HU3D_ATTR_DISPOFF);
Hu3DModelAttrSet(lbl_1_bss_5B8.unk00->model[5], HU3D_ATTR_DISPOFF);
fn_1_1DCC(lbl_1_bss_568.unk00, 1, 6, 5, 0);
HuAudSeqPause(lbl_1_bss_58[0], 1, 1000);
WipeColorSet(0xFF, 0xFF, 0xFF);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
do {
fn_1_B8C();
} while (WipeStatGet() != 0);
Hu3DMotionSpeedSet(lbl_1_bss_568.unk00->model[1], 0.0f);
Hu3DMotionTimeSet(lbl_1_bss_568.unk00->model[1], 50.0f);
Hu3DModelAttrReset(lbl_1_bss_5B8.unk00->model[7], HU3D_ATTR_DISPOFF);
Hu3DModelAttrReset(lbl_1_bss_5B8.unk00->model[8], HU3D_ATTR_DISPOFF);
fn_1_1DCC(lbl_1_bss_5B8.unk00, 8, 8, 0, 1);
fn_1_BAC(30);
HuAudFXPlay(0xA9);
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
do {
fn_1_B8C();
} while (WipeStatGet() != 0);
fn_1_3804(&lbl_1_bss_4);
fn_1_2710(fn_1_11534);
fn_1_BAC(60);
lbl_1_bss_568.unk04 = (void*) fn_1_F050;
lbl_1_bss_608.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_608.unk10);
lbl_1_bss_590.unk04 = (void*) fn_1_EFE0;
fn_1_1D1C(lbl_1_bss_608.unk08, MAKE_MESSID(50, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + 6) + lbl_1_bss_608.unk00, 0);
fn_1_6C1C(lbl_1_bss_608.unk08, MAKE_MESSID(50, 134), 0, 300);
fn_1_1CE8(lbl_1_bss_608.unk08, MAKE_MESSID(37, 4));
fn_1_1A64(lbl_1_bss_608.unk08);
fn_1_3804(&lbl_1_bss_4);
fn_1_2710(fn_1_1141C);
lbl_1_bss_5B8.unk04 = (void*) fn_1_10384;
fn_1_BAC(30);
Hu3DMotionSpeedSet(lbl_1_bss_568.unk00->model[1], 0.1f);
fn_1_BAC(180);
WipeColorSet(0, 0, 0);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
}
s32 fn_1_F780(s32 arg0) {
if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2))) {
return 1;
}
if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3))) {
return 1;
}
if (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4))) {
return 1;
}
if (arg0 == 3 && _CheckFlag(FLAG_ID_MAKE(0, 5))) {
return 1;
}
if (arg0 == 4 && _CheckFlag(FLAG_ID_MAKE(0, 6))) {
return 1;
}
if (arg0 == 5 && _CheckFlag(FLAG_ID_MAKE(0, 7))) {
return 1;
}
return 0;
}
void fn_1_F86C(void) {
Hu3DAllKill();
HuSprClose();
HuSprInit();
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10);
while (WipeStatGet() != 0) {
HuPrcVSleep();
}
fn_1_BAC(60);
SLCommonSet();
SLSaveBoardStory();
if (SLSaveFlagGet() == 1) {
SLSave();
}
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10);
while (WipeStatGet() != 0) {
HuPrcVSleep();
}
lbl_1_bss_55C = 1;
HuPrcEnd();
while (TRUE) {
HuPrcVSleep();
}
}
void fn_1_F910(void) {
omOvlHisData* var_r31;
msmSeStopAll(FALSE, 1000);
do {
fn_1_B8C();
} while (WipeStatGet() != 0);
fn_1_BAC(60);
CharModelKill(-1);
HuAudFXAllStop();
HuAudSStreamAllStop();
{
s32 sp8[] = { 53, 56, 55, 54, 57 };
GWMGAvailSet(omMgIndexGet(sp8[lbl_1_bss_608.unk00]) + 0x191);
}
GWGameStat.present[lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00] = 1;
OSReport("########## PRESENTFLG CHR:%d, MAP:%d, PRESENT:%d\n", lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, lbl_1_bss_608.unk00, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00);
var_r31 = omOvlHisGet(0);
omOvlHisChg(0, OVL_MSTORY, 20, var_r31->stat);
omOvlCallEx(OVL_PRESENT, 1, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00 + 1, 0);
}
void fn_1_FAE4(omObjData* arg0, StructBss19C* arg1) {
s32 sp8 = 0;
lbl_1_bss_58[0] = HuAudSeqPlay(0x36);
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
do {
fn_1_B8C();
} while (WipeStatGet() != 0);
fn_1_BAC(60);
fn_1_EC5C();
fn_1_F19C();
fn_1_F910();
arg1->unk04 = 0;
}
void fn_1_FD1C(void) {
omObjData* temp_r3;
temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL);
lbl_1_bss_5E0.unk00 = temp_r3;
lbl_1_bss_5E0.unk04 = (void*) fn_1_FAE4;
lbl_1_bss_5E0.unk00->data = &lbl_1_bss_5E0;
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_5E0.unk04 != NULL) {
lbl_1_bss_5E0.unk04(temp_r3, &lbl_1_bss_5E0);
}
}
}
void fn_1_FDD0(omObjData* arg0, s32 arg1) {
s32 temp_r29;
temp_r29 = lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10;
arg0->model[7] = Hu3DModelCreateFile(lbl_1_data_570[temp_r29 * 6 + arg1].unk00);
arg0->motion[7] = Hu3DMotionIDGet(arg0->model[7]);
if (lbl_1_data_570[temp_r29 * 6 + arg1].unk04 == 1) {
arg0->motion[12] = Hu3DJointMotionFile(arg0->model[7], DATA_MAKE_NUM(DATADIR_MSTORY4, 48));
}
Hu3DModelPosSet(arg0->model[7], 0.0f, 180.0f, 825.0f);
Hu3DModelAttrSet(arg0->model[7], HU3D_ATTR_DISPOFF);
Hu3DModelShadowSet(arg0->model[7]);
fn_1_1DCC(arg0, 7, 7, 0, 2);
HuDataDirClose(DATADIR_MSTORY4);
arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56));
arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]);
fn_1_1DCC(arg0, 1, 0, 0, 2);
Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base");
arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59));
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60));
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61));
fn_1_1DCC(arg0, 2, 2, 0, 2);
arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57));
arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 81));
Hu3DModelShadowSet(arg0->model[5]);
arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 83));
arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]);
Hu3DModelPosSet(arg0->model[6], 25.0f, 125.0f, 900.0f);
Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF);
fn_1_1DCC(arg0, 6, 6, 0, 2);
arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 96));
arg0->motion[8] = Hu3DMotionIDGet(arg0->model[8]);
Hu3DModelAttrSet(arg0->model[8], HU3D_ATTR_DISPOFF);
fn_1_1DCC(arg0, 8, 8, 0, 2);
arg0->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 84));
arg0->motion[9] = Hu3DMotionIDGet(arg0->model[9]);
Hu3DModelPosSet(arg0->model[9], 0.0f, 0.0f, 460.0f);
Hu3DModelShadowSet(arg0->model[9]);
fn_1_1DCC(arg0, 9, 9, 0, 2);
Hu3DModelHookSet(arg0->model[9], "carrier2-target0", arg0->model[5]);
lbl_1_bss_560[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 85 + arg1 * 2), MEMORY_DEFAULT_NUM));
lbl_1_bss_560[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 86 + arg1 * 2), MEMORY_DEFAULT_NUM));
Hu3DAnimCreate(lbl_1_bss_560[0], lbl_1_bss_5B8.unk00->model[5], "cylinder3");
Hu3DAnimCreate(lbl_1_bss_560[1], lbl_1_bss_5B8.unk00->model[5], "wakuwaku");
}
void fn_1_10298(omObjData* arg0, StructBss19C* arg1) {
Mtx sp8;
Hu3DData[arg0->model[7]].pos.y = fn_1_ACC(180.0f, 185.0f, arg1->unk08++, 360.0f);
Hu3DModelObjMtxGet(arg0->model[7], "effect", sp8);
Hu3DModelPosSet(arg0->model[8], sp8[0][3], sp8[1][3], sp8[2][3]);
if (arg1->unk08 >= 360) {
arg1->unk08 = 0;
}
}
void fn_1_10384(omObjData* arg0, StructBss19C* arg1) {
Mtx sp8;
Hu3DData[arg0->model[7]].pos.y += arg1->unk0C / 100.0f;
Hu3DModelObjMtxGet(arg0->model[7], "effect", sp8);
Hu3DModelPosSet(arg0->model[8], sp8[0][3], sp8[1][3], sp8[2][3]);
arg1->unk0C += 2;
}
void fn_1_10450(omObjData* arg0, StructBss19C* arg1) {
fn_1_1DCC(arg0, 9, 9, 0, 1);
while (TRUE) {
fn_1_B8C();
Hu3DData[arg0->model[9]].pos.z += 2.5f;
if (Hu3DData[arg0->model[9]].pos.z >= 670.0f) {
break;
}
}
Hu3DData[arg0->model[9]].pos.z = 670.0f;
Hu3DMotionSpeedSet(arg0->model[9], 0.0f);
arg1->unk04 = 0;
}
void fn_1_1054C(void) {
omObjData* temp_r3;
temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL);
lbl_1_bss_5B8.unk00 = temp_r3;
lbl_1_bss_5B8.unk04 = NULL;
fn_1_FDD0(temp_r3, lbl_1_bss_608.unk00);
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_5B8.unk04 != NULL) {
lbl_1_bss_5B8.unk04(temp_r3, &lbl_1_bss_5B8);
}
}
}
void fn_1_105F8(omObjData* arg0, s32 arg1) {
s32 sp1C[] = {
DATA_MAKE_NUM(DATADIR_MSTORY, 0x0061),
DATA_MAKE_NUM(DATADIR_MSTORY, 0x006C),
DATA_MAKE_NUM(DATADIR_MSTORY, 0x0074),
DATA_MAKE_NUM(DATADIR_MSTORY, 0x007C),
DATA_MAKE_NUM(DATADIR_MSTORY, 0x0083)
};
s32 sp30[][5] = {
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x0062), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0064), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0065), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0067), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0068) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x006D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x006F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0070), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0072), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0073) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x0075), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0077), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0078), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007A), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007B) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x007D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007E), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0081), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0082) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x0084), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0086), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0087), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0089), DATA_MAKE_NUM(DATADIR_MSTORY, 0x008A) }
};
arg0->model[1] = Hu3DModelCreateFile(sp1C[arg1]);
arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][0]);
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][1]);
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][2]);
arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][3]);
arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][4]);
Hu3DModelPosSet(arg0->model[1], -120.0f, 0.0f, 670.0f);
Hu3DModelRotSet(arg0->model[1], 0.0f, 30.0f, 0.0f);
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
if (arg1 == 3) {
Hu3DData[arg0->model[1]].pos.y = 50.0f;
}
Hu3DModelShadowSet(arg0->model[1]);
fn_1_1DCC(arg0, 1, 5, 0, 1);
{
s32 sp8[] = { 9, 14, 10, 11, 12 };
if (arg1 != 3) {
CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]);
}
}
}
void fn_1_108F8(void) {
omObjData* temp_r3;
temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL);
lbl_1_bss_590.unk00 = temp_r3;
lbl_1_bss_590.unk04 = NULL;
fn_1_105F8(temp_r3, lbl_1_bss_608.unk00);
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_590.unk04 != NULL) {
lbl_1_bss_590.unk04(temp_r3, &lbl_1_bss_590);
}
}
}
void fn_1_10C6C(s32 arg0) {
s32 spC[4];
s32 i;
spC[0] = 0;
for (i = 1; i < 4; i++) {
spC[i] = spC[i - 1] + 1;
if (spC[i] >= 4) {
spC[i] = 0;
}
if (arg0 == spC[i]) {
lbl_1_bss_608.unk04 = i;
}
}
for (i = 0; i < 4; i++) {
fn_1_352C(&lbl_1_bss_608.unk34[i], spC[i]);
}
}
void fn_1_10D50(omObjData* arg0, s32 arg1) {
s32 temp_r30;
temp_r30 = lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10;
arg0->model[1] = CharModelCreate(temp_r30, 1);
arg0->motion[1] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0));
arg0->motion[2] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 2));
arg0->motion[3] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 53));
arg0->motion[4] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 109));
arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 24 + temp_r30));
arg0->motion[6] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 32 + temp_r30));
CharModelMotionDataClose(temp_r30);
Hu3DModelPosSet(arg0->model[1], 120.0f, 0.0f, 670.0f);
Hu3DModelRotSet(arg0->model[1], 0.0f, -60.0f, 0.0f);
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
Hu3DModelShadowSet(arg0->model[1]);
fn_1_1DCC(arg0, 1, 1, 0, 1);
}
void fn_1_10F24(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
fn_1_1DCC(lbl_1_bss_568.unk00, 1, arg0, arg2, arg3);
if (arg3 == 1) {
arg4 = 0;
}
lbl_1_bss_568.unk00->work[0] = arg4;
lbl_1_bss_568.unk00->work[1] = arg1;
lbl_1_bss_568.unk00->work[2] = arg2 + 1;
}
void fn_1_10FD0(void) {
omObjData* temp_r3;
temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL);
lbl_1_bss_568.unk00 = temp_r3;
lbl_1_bss_568.unk04 = NULL;
lbl_1_bss_568.unk00->data = &lbl_1_bss_568;
fn_1_10D50(temp_r3, lbl_1_bss_608.unk04); // Second argument required to match.
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_568.unk04 != NULL) {
lbl_1_bss_568.unk04(temp_r3, &lbl_1_bss_568);
}
if (temp_r3->work[0] != 0) {
fn_1_E828(temp_r3);
}
}
}
void fn_1_112A0(void) {
StructBss4* var_r31;
var_r31 = &lbl_1_bss_4;
var_r31->unk08.x = 0.0f;
var_r31->unk08.y = 125.0f;
var_r31->unk08.z = 0.0f;
var_r31->unk20.x = -5.0f;
var_r31->unk20.y = 0.0f;
var_r31->unk20.z = 0.0f;
var_r31->unk38 = 1750.0f;
}
void fn_1_1132C(void) {
StructBss4* var_r31;
StructBss4 sp8;
var_r31 = &lbl_1_bss_4;
sp8.unk08.x = 0.0f;
sp8.unk08.y = 100.0f;
sp8.unk08.z = 0.0f;
sp8.unk20.x = 0.0f;
sp8.unk20.y = 0.0f;
sp8.unk20.z = 0.0f;
sp8.unk38 = 1400.0f;
fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 120.0f, 10.0f);
}
void fn_1_1141C(void) {
StructBss4* var_r31;
var_r31 = &lbl_1_bss_4;
var_r31->unk14 = 0.0f;
var_r31->unk18 = Hu3DData[lbl_1_bss_5B8.unk00->model[7]].pos.y;
var_r31->unk1C = 0.0f;
var_r31->unk2C = 0.0f;
var_r31->unk30 = 0.0f;
var_r31->unk34 = 0.0f;
var_r31->unk3C = fn_1_828(1100.0f, 1400.0f, var_r31->unk40++, 240.0f);
fn_1_3ABC(var_r31, 30.0f);
}
void fn_1_11534(void) {
StructBss4* var_r31;
StructBss4 sp8;
var_r31 = &lbl_1_bss_4;
sp8.unk08.x = 0.0f;
sp8.unk08.y = 160.0f;
sp8.unk08.z = 0.0f;
sp8.unk20.x = 0.0f;
sp8.unk20.y = 0.0f;
sp8.unk20.z = 0.0f;
sp8.unk38 = 1100.0f;
fn_1_61E8(var_r31, &sp8, var_r31->unk40++, 10.0f, 5.0f);
}

446
src/REL/mstoryDll/mg_miss.c Executable file
View file

@ -0,0 +1,446 @@
#include "REL/mstoryDll.h"
#include "game/chrman.h"
#include "game/gamework_data.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/printfunc.h"
#include "game/window.h"
#include "game/wipe.h"
typedef struct {
/* 0x00 */ s32 unk00;
/* 0x04 */ s32 unk04;
/* 0x08 */ s32 unk08;
/* 0x0C */ s32 unk0C;
/* 0x10 */ s32 unk10;
/* 0x14 */ char unk14[0x20];
/* 0x34 */ StructFn352C unk34[4];
} StructBss7B4; // Size 0x104
void fn_1_12630(void);
void fn_1_129D4(void);
void fn_1_12C94(s32 arg0);
void fn_1_12F20(omObjData* arg0, StructBss19C* arg1);
void fn_1_12FA8(omObjData*, StructBss19C* arg1);
void fn_1_130C0(void);
void fn_1_13570(void);
void fn_1_13880(void);
void fn_1_1390C(void);
StructBss7B4 lbl_1_bss_7B4;
StructBss19C lbl_1_bss_78C;
StructBss19C lbl_1_bss_764;
StructBss19C lbl_1_bss_73C;
StructBss19C lbl_1_bss_714;
Process* lbl_1_bss_710;
s32 lbl_1_data_AF8[][3] = {
{ MAKE_MESSID(30, 40), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) },
{ MAKE_MESSID(30, 41), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) },
{ MAKE_MESSID(30, 42), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) },
{ MAKE_MESSID(30, 43), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) },
{ MAKE_MESSID(30, 44), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) }
};
void fn_1_11624(Process* arg0, s32 arg1, s32 arg2) {
lbl_1_bss_710 = arg0;
lbl_1_bss_7B4.unk00 = arg1;
lbl_1_bss_7B4.unk10 = arg2;
fn_1_BF4();
fn_1_3618(0xFF);
fn_1_27E8(lbl_1_bss_710, fn_1_13880);
fn_1_3704();
fn_1_12C94(arg2);
HuPrcChildCreate(fn_1_129D4, 100, 0x2000, 0, HuPrcCurrentGet());
HuPrcChildCreate(fn_1_130C0, 100, 0x2000, 0, HuPrcCurrentGet());
HuPrcChildCreate(fn_1_13570, 100, 0x2000, 0, HuPrcCurrentGet());
HuPrcChildCreate(fn_1_12630, 100, 0x2000, 0, HuPrcCurrentGet());
}
void fn_1_11730(void) {
s32 var_r31 = 16;
s32 var_r30 = 40;
GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 };
s32 i;
while (TRUE) {
fn_1_B8C();
fontcolor = FONT_COLOR_WHITE;
printWin(var_r31, var_r30, 220, 120, &sp10);
if (lbl_1_bss_78C.unk04 == NULL) {
print8(var_r31, var_r30, 1.0f, "PROC_MAIN -> FALSE");
} else {
print8(var_r31, var_r30, 1.0f, "PROC_MAIN -> TRUE");
}
if (lbl_1_bss_764.unk04 == NULL) {
print8(var_r31, var_r30 + 10, 1.0f, "PROC_MAP -> FALSE");
} else {
print8(var_r31, var_r30 + 10, 1.0f, "PROC_MAP -> TRUE");
}
if (lbl_1_bss_73C.unk04 == NULL) {
print8(var_r31, var_r30 + 20, 1.0f, "PROC_PLAYER -> FALSE");
} else {
print8(var_r31, var_r30 + 20, 1.0f, "PROC_PLAYER -> TRUE");
}
if (lbl_1_bss_714.unk04 == NULL) {
print8(var_r31, var_r30 + 30, 1.0f, "PROC_SUB -> FALSE");
} else {
print8(var_r31, var_r30 + 30, 1.0f, "PROC_SUB -> TRUE");
}
print8(var_r31, var_r30 + 50, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_7B4.unk00, lbl_1_bss_7B4.unk04, lbl_1_bss_7B4.unk10);
print8(var_r31, var_r30 + 70, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR");
for (i = 0; i < 4; i++) {
print8(var_r31, var_r30 + 80 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i,
lbl_1_bss_7B4.unk34[i].unk00, lbl_1_bss_7B4.unk34[i].unk04, lbl_1_bss_7B4.unk34[i].unk08,
lbl_1_bss_7B4.unk34[i].unk0C, lbl_1_bss_7B4.unk34[i].unk14, lbl_1_bss_7B4.unk34[i].unk10);
}
}
}
void fn_1_11A8C(void) {
lbl_1_bss_58[0] = HuAudSeqPlay(0x34);
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1);
do {
fn_1_B8C();
} while (WipeStatGet() != 0);
fn_1_BAC(60);
}
void fn_1_11AE8(void) {
s32 spC = 0;
s32 sp8 = 0;
fn_1_1DCC(lbl_1_bss_73C.unk00, 1, 2, 15, 0);
lbl_1_bss_73C.unk04 = (void*) fn_1_12F20;
HuAudFXPlay(lbl_1_data_0[lbl_1_bss_7B4.unk00][1]);
HuAudCharVoicePlay(lbl_1_bss_7B4.unk34[lbl_1_bss_7B4.unk04].unk10, 0x12E);
lbl_1_bss_7B4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_7B4.unk10);
fn_1_1DCC(lbl_1_bss_714.unk00, 1, 2, 15, 1);
fn_1_1CE8(lbl_1_bss_7B4.unk08, lbl_1_data_AF8[lbl_1_bss_7B4.unk00][0]);
fn_1_1ACC(lbl_1_bss_7B4.unk08, -1);
fn_1_1CE8(lbl_1_bss_7B4.unk08, MAKE_MESSID(37, 4));
fn_1_1DCC(lbl_1_bss_714.unk00, 1, 1, 15, 1);
fn_1_1A64(lbl_1_bss_7B4.unk08);
}
BOOL fn_1_11C6C(void) {
BOOL temp_r31 = FALSE;
HuWinInsertMesSet(lbl_1_bss_7B4.unk08, MAKE_MESSID(30, 54) + lbl_1_bss_7B4.unk00, 3);
fn_1_1CE8(lbl_1_bss_7B4.unk08, lbl_1_data_AF8[lbl_1_bss_7B4.unk00][1]);
fn_1_1ACC(lbl_1_bss_7B4.unk08, 5);
lbl_1_bss_7B4.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_7B4.unk10);
fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(30, 53));
temp_r31 = fn_1_1C34(lbl_1_bss_7B4.unk0C);
fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(37, 4));
fn_1_7028(lbl_1_bss_7B4.unk0C);
if (temp_r31) {
fn_1_1DCC(lbl_1_bss_73C.unk00, 1, 4, 15, 0);
lbl_1_bss_73C.unk04 = NULL;
fn_1_1DCC(lbl_1_bss_714.unk00, 1, 3, 15, 1);
}
return temp_r31;
}
BOOL fn_1_11DD8(void) {
s32 temp_r31 = FALSE;
fn_1_1CE8(lbl_1_bss_7B4.unk08, lbl_1_data_AF8[lbl_1_bss_7B4.unk00][2]);
fn_1_1ACC(lbl_1_bss_7B4.unk08, 5);
lbl_1_bss_7B4.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_7B4.unk10);
fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(30, 53));
temp_r31 = fn_1_1B78(lbl_1_bss_7B4.unk0C, 1);
fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(37, 4));
fn_1_7028(lbl_1_bss_7B4.unk0C);
return temp_r31;
}
void fn_1_11EC4(void) {
lbl_1_bss_73C.unk04 = (void*) fn_1_12FA8;
HuAudSeqFadeOut(lbl_1_bss_58[0], 3000);
fn_1_3804(&lbl_1_bss_4);
fn_1_2710(fn_1_1390C);
fn_1_BAC(150);
}
void fn_1_11F28(void) {
}
void fn_1_11F2C(s32 arg0) {
omOvlHisData* var_r30;
OverlayID sp8[] = { OVL_M445, OVL_M448, OVL_M447, OVL_M446, OVL_M449 };
if (arg0 != 0) {
fn_1_BAC(60);
HuAudSeqFadeOut(lbl_1_bss_58[0], 1000);
}
WipeColorSet(0xFF, 0xFF, 0xFF);
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1);
do {
fn_1_B8C();
} while (WipeStatGet() != 0);
fn_1_BAC(60);
CharModelKill(-1);
var_r30 = omOvlHisGet(0);
omOvlHisChg(0, OVL_MSTORY, 2, var_r30->stat);
if (arg0 == 0) {
HuAudSeqAllFadeOut(1000);
HuAudSStreamAllFadeOut(1000);
omOvlCallEx(sp8[GWSystem.board], 1, 0, 0);
} else {
HuAudFadeOut(1);
omOvlReturnEx(1, 1);
}
}
void fn_1_12070(omObjData* arg0, StructBss19C* arg1) {
s32 var_r31;
fn_1_11A8C();
fn_1_11AE8();
lbl_1_bss_7B4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_7B4.unk10);
while (TRUE) {
fn_1_B8C();
if (fn_1_11C6C()) {
var_r31 = 0;
break;
}
if (fn_1_11DD8()) {
var_r31 = 1;
break;
}
}
fn_1_1A64(lbl_1_bss_7B4.unk08);
fn_1_BAC(60);
switch (var_r31) {
case 0:
fn_1_11EC4();
break;
case 1:
fn_1_11F28();
break;
}
fn_1_11F2C(var_r31);
arg1->unk04 = NULL;
}
void fn_1_12630(void) {
omObjData* temp_r3;
temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL);
lbl_1_bss_78C.unk00 = temp_r3;
lbl_1_bss_78C.unk04 = (void*) fn_1_12070;
lbl_1_bss_78C.unk00->data = &lbl_1_bss_78C;
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_78C.unk04 != NULL) {
lbl_1_bss_78C.unk04(temp_r3, &lbl_1_bss_78C);
}
}
}
void fn_1_126E4(omObjData* arg0) {
arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56));
arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]);
fn_1_1DCC(arg0, 1, 0, 0, 2);
Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base");
arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59));
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60));
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61));
fn_1_1DCC(arg0, 2, 2, 0, 2);
arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57));
arg0->model[5] = Hu3DModelCreateFile(lbl_1_bss_7B4.unk00 + DATA_MAKE_NUM(DATADIR_MSTORY, 76));
arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]);
Hu3DModelPosSet(arg0->model[5], 0.0f, 80.0f, 460.0f);
Hu3DModelShadowSet(arg0->model[5]);
fn_1_1DCC(arg0, 5, 5, 0, 2);
arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 75));
arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]);
Hu3DModelHookSet(arg0->model[5], "stargbox_fix-effect_fook1", arg0->model[6]);
fn_1_1DCC(arg0, 6, 6, 0, 2);
}
void fn_1_12918(omObjData* arg0, StructBss19C* arg1) {
Hu3DData[arg0->model[5]].pos.y = fn_1_ACC(80.0f, 90.0f, arg1->unk08++, 360.0f);
if (arg1->unk08 >= 360) {
arg1->unk08 = 0;
}
}
void fn_1_129D4(void) {
omObjData* temp_r3;
temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL);
lbl_1_bss_764.unk00 = temp_r3;
lbl_1_bss_764.unk04 = (void*) fn_1_12918;
lbl_1_bss_764.unk00->data = &lbl_1_bss_764;
fn_1_126E4(temp_r3);
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_764.unk04 != NULL) {
lbl_1_bss_764.unk04(temp_r3, &lbl_1_bss_764);
}
}
}
void fn_1_12C94(s32 arg0) {
s32 spC[4];
s32 i;
spC[0] = 0;
for (i = 1; i < 4; i++) {
spC[i] = spC[i - 1] + 1;
if (spC[i] >= 4) {
spC[i] = 0;
}
if (arg0 == spC[i]) {
lbl_1_bss_7B4.unk04 = i;
}
}
for (i = 0; i < 4; i++) {
fn_1_352C(&lbl_1_bss_7B4.unk34[i], spC[i]);
}
}
void fn_1_12D78(omObjData* arg0) {
s32 temp_r30;
temp_r30 = lbl_1_bss_7B4.unk34[lbl_1_bss_7B4.unk04].unk10;
arg0->model[1] = CharModelCreate(temp_r30, 1);
arg0->motion[1] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0));
arg0->motion[2] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 24));
arg0->motion[3] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 52));
arg0->motion[4] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 72));
arg0->motion[5] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 53));
CharModelVoiceEnableSet(temp_r30, arg0->motion[2], 0);
CharModelMotionDataClose(temp_r30);
Hu3DModelPosSet(arg0->model[1], 120.0f, 0.0f, 670.0f);
Hu3DModelRotSet(arg0->model[1], 0.0f, -45.0f, 0.0f);
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
Hu3DModelShadowSet(arg0->model[1]);
fn_1_1DCC(arg0, 1, 1, 0, 1);
}
void fn_1_12F20(omObjData* arg0, StructBss19C* arg1) {
if (arg0->motion[2] == Hu3DMotionIDGet(arg0->model[1]) && Hu3DMotionEndCheck(arg0->model[1])) {
fn_1_1DCC(arg0, 1, 3, 15, 1);
arg1->unk04 = 0;
}
}
void fn_1_12FA8(omObjData* arg0, StructBss19C* arg1) {
s32 i;
fn_1_BAC(10);
fn_1_1DCC(arg0, 1, 5, 15, 0);
fn_1_B8C();
Hu3DMotionTimeSet(arg0->model[1], 60.0f);
for (i = 0; i < 50; i++) {
fn_1_B8C();
Hu3DData[arg0->model[1]].rot.y = fn_1_828(-60.0f, -120.0f, i, 60.0f);
}
fn_1_1DCC(arg0, 1, 1, 15, 1);
arg1->unk04 = 0;
}
void fn_1_130C0(void) {
omObjData* temp_r3;
temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL);
lbl_1_bss_73C.unk00 = temp_r3;
lbl_1_bss_73C.unk04 = NULL;
lbl_1_bss_73C.unk00->data = &lbl_1_bss_73C;
fn_1_12D78(temp_r3);
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_73C.unk04 != NULL) {
lbl_1_bss_73C.unk04(temp_r3, &lbl_1_bss_73C);
}
}
}
void fn_1_132EC(omObjData* arg0, s32 arg1) {
s32 sp8[] = {
DATA_MAKE_NUM(DATADIR_MSTORY, 97),
DATA_MAKE_NUM(DATADIR_MSTORY, 108),
DATA_MAKE_NUM(DATADIR_MSTORY, 116),
DATA_MAKE_NUM(DATADIR_MSTORY, 124),
DATA_MAKE_NUM(DATADIR_MSTORY, 131)
};
s32 sp1C[][3] = {
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x62), DATA_MAKE_NUM(DATADIR_MSTORY, 0x65), DATA_MAKE_NUM(DATADIR_MSTORY, 0x67) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x6D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x70), DATA_MAKE_NUM(DATADIR_MSTORY, 0x72) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x75), DATA_MAKE_NUM(DATADIR_MSTORY, 0x78), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7A) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x7D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x81) },
{ DATA_MAKE_NUM(DATADIR_MSTORY, 0x84), DATA_MAKE_NUM(DATADIR_MSTORY, 0x87), DATA_MAKE_NUM(DATADIR_MSTORY, 0x89) }
};
arg0->model[1] = Hu3DModelCreateFile(sp8[arg1]);
arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp1C[arg1][0]);
arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp1C[arg1][1]);
arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp1C[arg1][2]);
Hu3DModelPosSet(arg0->model[1], -120.0f, 0.0f, 670.0f);
Hu3DModelRotSet(arg0->model[1], 0.0f, 45.0f, 0.0f);
Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
if (arg1 == 3) {
Hu3DData[arg0->model[1]].pos.y = 50.0f;
}
Hu3DModelShadowSet(arg0->model[1]);
fn_1_1DCC(arg0, 1, 1, 0, 1);
}
void fn_1_13570(void) {
omObjData* temp_r3;
temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL);
lbl_1_bss_714.unk00 = temp_r3;
lbl_1_bss_714.unk04 = NULL;
lbl_1_bss_714.unk00->data = &lbl_1_bss_714;
fn_1_132EC(temp_r3, lbl_1_bss_7B4.unk00);
while (TRUE) {
fn_1_B8C();
if (lbl_1_bss_714.unk04 != NULL) {
lbl_1_bss_714.unk04(temp_r3, &lbl_1_bss_714);
}
}
}
void fn_1_13880(void) {
StructBss4* var_r31;
var_r31 = &lbl_1_bss_4;
var_r31->unk08.x = 0.0f;
var_r31->unk08.y = 125.0f;
var_r31->unk08.z = 0.0f;
var_r31->unk20.x = -5.0f;
var_r31->unk20.y = 0.0f;
var_r31->unk20.z = 0.0f;
var_r31->unk38 = 1750.0f;
}
void fn_1_1390C(void) {
StructBss4* var_r31;
StructBss4 sp8;
var_r31 = &lbl_1_bss_4;
if (var_r31->unk40 == 50) {
fn_1_1DCC(lbl_1_bss_764.unk00, 5, 5, 0, 0);
fn_1_1DCC(lbl_1_bss_764.unk00, 6, 6, 0, 0);
HuAudFXPlay(0xA1);
}
sp8.unk08.x = 0.0f;
sp8.unk08.y = 130.0f;
sp8.unk08.z = 460.0f;
sp8.unk20.x = 0.0f;
sp8.unk20.y = 0.0f;
sp8.unk20.z = 0.0f;
sp8.unk38 = 150.0f;
fn_1_51D0(var_r31, &sp8, var_r31->unk40, 180.0f, 10.0f);
if (var_r31->unk40++ >= 90) {
if (var_r31->unk40 == 91) {
lbl_1_bss_68 = HuAudFXPlay(0x21);
}
var_r31->unk20.x = fn_1_828(var_r31->unk20.x, -45.0f, var_r31->unk40 - 90, 90.0f);
Hu3DData[lbl_1_bss_764.unk00->model[5]].rot.x = fn_1_828(0.0f, 45.0f, var_r31->unk40 - 90, 90.0f);
}
}

116
src/REL/mstoryDll/save.c Executable file
View file

@ -0,0 +1,116 @@
#include "REL/mstoryDll.h"
#include "game/data.h"
#include "game/esprite.h"
#include "game/flag.h"
#include "game/hsfman.h"
#include "game/saveload.h"
#include "game/sprite.h"
#include "game/window.h"
#include "game/wipe.h"
s32 lbl_1_bss_8BC;
Process* lbl_1_bss_8B8;
s32 fn_1_13B48(s32 arg0) {
if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2))) {
return 1;
}
if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3))) {
return 1;
}
if (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4))) {
return 1;
}
if (arg0 == 3 && _CheckFlag(FLAG_ID_MAKE(0, 5))) {
return 1;
}
if (arg0 == 4 && _CheckFlag(FLAG_ID_MAKE(0, 6))) {
return 1;
}
if (arg0 == 5 && _CheckFlag(FLAG_ID_MAKE(0, 7))) {
return 1;
}
return 0;
}
void fn_1_13C34(void) {
float sp8[2];
s32 temp_r30;
s32 var_r29;
s32 var_r31;
temp_r30 = 1;
Hu3DAllKill();
HuSprClose();
HuSprInit();
if (SLSaveFlagGet() == 0) {
lbl_1_bss_8BC = 1;
HuPrcEnd();
while (TRUE) {
HuPrcVSleep();
}
}
espInit();
HuPrcVSleep();
var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 32), 5000, 0);
espPosSet(var_r29, 288.0f, 240.0f);
espAttrReset(var_r29, 4);
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20);
while (WipeStatGet() != 0) {
HuPrcVSleep();
}
if (SLSaveFlagGet() == 1) {
HuWinInit(1);
HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(30, 22));
var_r31 = HuWinExCreateStyled(-10000.0f, 150.0f, sp8[0], sp8[1], -1, 2);
winData[var_r31].active_pad = 1;
HuWinAttrSet(var_r31, 0x10);
HuWinExAnimIn(var_r31);
HuWinMesSet(var_r31, MAKE_MESSID(30, 22));
temp_r30 = HuWinChoiceGet(var_r31, 0);
HuWinExAnimOut(var_r31);
HuWinExCleanup(var_r31);
if (SLSaveFlagGet() == 1 && temp_r30 == 0) {
SLCommonSet();
SLSaveBoardStory();
SLSave();
}
}
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20);
while (WipeStatGet() != 0) {
HuPrcVSleep();
}
lbl_1_bss_8BC = 1;
HuPrcEnd();
while (TRUE) {
HuPrcVSleep();
}
}
void fn_1_13E2C(void) {
_SetFlag(9);
if (_CheckFlag(FLAG_ID_MAKE(0, 2)) && _CheckFlag(FLAG_ID_MAKE(0, 3)) && _CheckFlag(FLAG_ID_MAKE(0, 4)) && _CheckFlag(FLAG_ID_MAKE(0, 5)) && _CheckFlag(FLAG_ID_MAKE(0, 6))) {
OSReport("########## Next to MapSelect Event 11 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_13B48(GWSystem.board), _CheckFlag(9));
HuPrcChildCreate(fn_1_13C34, 100, 0x2000, 0, HuPrcCurrentGet());
do {
fn_1_B8C();
} while (lbl_1_bss_8BC != 1);
omOvlGotoEx(OVL_MSTORY2, 1, 0, 0);
} else {
OSReport("########## Next to MapSelect Event 11 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_13B48(GWSystem.board), _CheckFlag(9));
HuPrcChildCreate(fn_1_13C34, 100, 0x2000, 0, HuPrcCurrentGet());
do {
fn_1_B8C();
} while (lbl_1_bss_8BC != 1);
omOvlGotoEx(OVL_MENT, 1, 10, 0);
}
HuPrcEnd();
while (TRUE) {
HuPrcVSleep();
}
}
void fn_1_14150(Process* arg0) {
lbl_1_bss_8B8 = arg0;
HuPrcChildCreate(fn_1_13E2C, 100, 0x2000, 0, HuPrcCurrentGet());
}