diff --git a/README.example.md b/README.md similarity index 94% rename from README.example.md rename to README.md index af8f9a17..60577b3f 100644 --- a/README.example.md +++ b/README.md @@ -1,4 +1,4 @@ -Some Game +Mario Party 4 [![Build Status]][actions] ![Progress] ![DOL Progress] ![RELs Progress] [![Discord Badge]][discord] ============= @@ -29,9 +29,9 @@ URL encoded then appended to: https://img.shields.io/endpoint?label=RELs&url= Replace with your Discord server's ID and invite URL. --> [Discord Badge]: https://img.shields.io/discord/727908905392275526?color=%237289DA&logo=discord&logoColor=%23FFFFFF -[discord]: https://discord.gg/hKx3FJJgrV +[discord]: https://discord.gg/T4faGveujK -A work-in-progress decompilation of Some Game. +A work-in-progress decompilation of Mario Party 4. This repository does **not** contain any game assets or assembly whatsoever. An existing copy of the game is required. @@ -80,9 +80,9 @@ Building - Clone the repository: ``` - git clone https://github.com/my/repo.git + git clone https://github.com/Rainchus/mp4-dtk.git ``` -- Using [Dolphin Emulator](https://dolphin-emu.org/), extract your game to `orig/GAMEID`. +- Using [Dolphin Emulator](https://dolphin-emu.org/), extract your game to `orig/GMPE01`. ![](assets/dolphin-extract.png) - To save space, the only necessary files are the following. Any others can be deleted. - `sys/main.dol` @@ -91,7 +91,7 @@ Building ``` python configure.py ``` - To use a version other than `GAMEID` (USA), specify it with `--version`. + To use a version other than `GMPE01` (USA), specify it with `--version`. - Build: ``` ninja diff --git a/config/GMPE01_00/config.yml b/config/GMPE01_00/config.yml index 2c8e44d5..8e687a60 100644 --- a/config/GMPE01_00/config.yml +++ b/config/GMPE01_00/config.yml @@ -4,7 +4,7 @@ symbols: config/GMPE01_00/symbols.txt splits: config/GMPE01_00/splits.txt quick_analysis: true # Faster re-runs after initial analysis mw_comment_version: 10 # GC 2.6 linker -force_active: [__register_global_object, lbl_801D40D0] +force_active: [__register_global_object, lbl_801D40D0, _kerent] modules: - object: orig/GMPE01_00/files/dll/_minigameDll.rel diff --git a/config/GMPE01_00/rels/m407dll/symbols.txt b/config/GMPE01_00/rels/m407dll/symbols.txt index f89ae85a..edfc4c98 100644 --- a/config/GMPE01_00/rels/m407dll/symbols.txt +++ b/config/GMPE01_00/rels/m407dll/symbols.txt @@ -111,92 +111,92 @@ fn_1_6218 = .text:0x00006218; // type:function size:0x88 fn_1_62A0 = .text:0x000062A0; // type:function size:0x164 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x20 -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:4byte -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC data:4byte -lbl_1_rodata_1E8 = .rodata:0x000001E8; // 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 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local 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 scope:local 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 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x20 scope:local +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local 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 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local 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 scope:local 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 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local 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 scope:local 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:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local 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 scope:local 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 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local 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 scope:local 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:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float @@ -214,7 +214,7 @@ lbl_1_data_120 = .data:0x00000120; // type:object size:0x19 data:string lbl_1_data_13C = .data:0x0000013C; // type:object size:0x20 lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 lbl_1_data_184 = .data:0x00000184; // type:object size:0x8 -lbl_1_data_18C = .data:0x0000018C; // type:object size:0xB data:string +lbl_1_data_18C = .data:0x0000018C; // type:object size:0xB scope:local data:string lbl_1_data_198 = .data:0x00000198; // type:object size:0x34 data:4byte lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x30 lbl_1_data_1FC = .data:0x000001FC; // type:object size:0xC data:float diff --git a/config/GMPE01_00/rels/modeseldll/splits.txt b/config/GMPE01_00/rels/modeseldll/splits.txt index 36609413..ca14d3ce 100644 --- a/config/GMPE01_00/rels/modeseldll/splits.txt +++ b/config/GMPE01_00/rels/modeseldll/splits.txt @@ -25,9 +25,10 @@ REL/modeseldll/filesel.c: .text start:0x000037DC end:0x0000BED8 .rodata start:0x000001B0 end:0x00000318 .data start:0x00000100 end:0x00000428 - .bss start:0x00000088 end:0x000001CA + .bss start:0x00000088 end:0x00000150 REL/modeseldll/datalist.c: .text start:0x0000BED8 end:0x0000C334 .rodata start:0x00000318 end:0x00000328 .data start:0x00000428 end:0x00000A2C + .bss start:0x00000150 end:0x000001CA diff --git a/config/GMPE01_00/rels/modeseldll/symbols.txt b/config/GMPE01_00/rels/modeseldll/symbols.txt index 31d88edd..bc128524 100644 --- a/config/GMPE01_00/rels/modeseldll/symbols.txt +++ b/config/GMPE01_00/rels/modeseldll/symbols.txt @@ -263,7 +263,8 @@ lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x6 lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x6 lbl_1_bss_146 = .bss:0x00000146; // type:object size:0x2 data:2byte lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x2 data:2byte -lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x6 +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:4byte +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x2 lbl_1_bss_152 = .bss:0x00000152; // type:object size:0x18 data:2byte lbl_1_bss_16A = .bss:0x0000016A; // type:object size:0x30 data:2byte lbl_1_bss_19A = .bss:0x0000019A; // type:object size:0x30 data:2byte diff --git a/config/GMPE01_00/rels/resultDll/splits.txt b/config/GMPE01_00/rels/resultDll/splits.txt index e3323be0..a2f15b2b 100644 --- a/config/GMPE01_00/rels/resultDll/splits.txt +++ b/config/GMPE01_00/rels/resultDll/splits.txt @@ -18,10 +18,10 @@ REL/resultDll/main.c: REL/resultDll/battle.c: .text start:0x00006490 end:0x00008FF8 .rodata start:0x00000160 end:0x00000220 - .data start:0x000004E8 end:0x000008B8 - .bss start:0x00000190 end:0x00001ADC + .data start:0x000004E8 end:0x00000918 + .bss start:0x00000190 end:0x00001A18 REL/resultDll/datalist.c: .text start:0x00008FF8 end:0x0000942C .rodata start:0x00000220 end:0x00000230 - .data start:0x000008B8 end:0x00000918 + .bss start:0x00001A18 end:0x00001ADC diff --git a/config/GMPE01_00/rels/resultDll/symbols.txt b/config/GMPE01_00/rels/resultDll/symbols.txt index 28077d73..85f1fdb6 100644 --- a/config/GMPE01_00/rels/resultDll/symbols.txt +++ b/config/GMPE01_00/rels/resultDll/symbols.txt @@ -198,7 +198,9 @@ lbl_1_bss_19B0 = .bss:0x000019B0; // type:object size:0x8 lbl_1_bss_19B8 = .bss:0x000019B8; // type:object size:0x28 lbl_1_bss_19E0 = .bss:0x000019E0; // type:object size:0x8 lbl_1_bss_19E8 = .bss:0x000019E8; // type:object size:0x8 -lbl_1_bss_19F0 = .bss:0x000019F0; // type:object size:0x2A +lbl_1_bss_19F0 = .bss:0x000019F0; // type:object size:0x8 +lbl_1_bss_19F8 = .bss:0x000019F8; // type:object size:0x20 +lbl_1_bss_1A18 = .bss:0x00001A18; // type:object size:0x2 lbl_1_bss_1A1A = .bss:0x00001A1A; // type:object size:0x42 data:2byte lbl_1_bss_1A5C = .bss:0x00001A5C; // type:object size:0x40 data:2byte lbl_1_bss_1A9C = .bss:0x00001A9C; // type:object size:0x40 data:2byte diff --git a/config/GMPE01_00/rels/w01Dll/symbols.txt b/config/GMPE01_00/rels/w01Dll/symbols.txt index 4ba3173b..83c6fcbc 100644 --- a/config/GMPE01_00/rels/w01Dll/symbols.txt +++ b/config/GMPE01_00/rels/w01Dll/symbols.txt @@ -3,467 +3,467 @@ _prolog = .text:0x00000030; // type:function size:0x64 scope:global _epilog = .text:0x00000094; // type:function size:0x4C scope:global BoardCreate = .text:0x000000E0; // type:function size:0x4BC BoardDestroy = .text:0x0000059C; // type:function size:0x194 -fn_1_730 = .text:0x00000730; // type:function size:0x44 -fn_1_774 = .text:0x00000774; // type:function size:0x4 -fn_1_778 = .text:0x00000778; // type:function size:0x9C -fn_1_814 = .text:0x00000814; // type:function size:0x1D4 -fn_1_9E8 = .text:0x000009E8; // type:function size:0x318 -fn_1_D00 = .text:0x00000D00; // type:function size:0x4 -fn_1_D04 = .text:0x00000D04; // type:function size:0x550 -fn_1_1254 = .text:0x00001254; // type:function size:0x38 -fn_1_128C = .text:0x0000128C; // type:function size:0x80 -fn_1_130C = .text:0x0000130C; // type:function size:0x270 -fn_1_157C = .text:0x0000157C; // type:function size:0xF4 -fn_1_1670 = .text:0x00001670; // type:function size:0x90 -fn_1_1700 = .text:0x00001700; // type:function size:0x290 -fn_1_1990 = .text:0x00001990; // type:function size:0x148 -fn_1_1AD8 = .text:0x00001AD8; // type:function size:0x64 -fn_1_1B3C = .text:0x00001B3C; // type:function size:0x3A8 -fn_1_1EE4 = .text:0x00001EE4; // type:function size:0x48 -fn_1_1F2C = .text:0x00001F2C; // type:function size:0x78 -fn_1_1FA4 = .text:0x00001FA4; // type:function size:0x580 -fn_1_2524 = .text:0x00002524; // type:function size:0x248 -fn_1_276C = .text:0x0000276C; // type:function size:0x7AC -fn_1_2F18 = .text:0x00002F18; // type:function size:0x438 -fn_1_3350 = .text:0x00003350; // type:function size:0x1C4 -fn_1_3514 = .text:0x00003514; // type:function size:0xA0 -fn_1_35B4 = .text:0x000035B4; // type:function size:0x70 -fn_1_3624 = .text:0x00003624; // type:function size:0xFD0 -fn_1_45F4 = .text:0x000045F4; // type:function size:0x180 -fn_1_4774 = .text:0x00004774; // type:function size:0xF0 -fn_1_4864 = .text:0x00004864; // type:function size:0x50 -fn_1_48B4 = .text:0x000048B4; // type:function size:0x560 -fn_1_4E14 = .text:0x00004E14; // type:function size:0x194 -fn_1_4FA8 = .text:0x00004FA8; // type:function size:0x30 -fn_1_4FD8 = .text:0x00004FD8; // type:function size:0xFC -fn_1_50D4 = .text:0x000050D4; // type:function size:0x2E4 -fn_1_53B8 = .text:0x000053B8; // type:function size:0x84 -fn_1_543C = .text:0x0000543C; // type:function size:0x258 -fn_1_5694 = .text:0x00005694; // type:function size:0x1D8 -fn_1_586C = .text:0x0000586C; // type:function size:0xC0 -fn_1_592C = .text:0x0000592C; // type:function size:0x200 -fn_1_5B2C = .text:0x00005B2C; // type:function size:0x14 -fn_1_5B40 = .text:0x00005B40; // type:function size:0x190 -fn_1_5CD0 = .text:0x00005CD0; // type:function size:0x38 -fn_1_5D08 = .text:0x00005D08; // type:function size:0x390 -fn_1_6098 = .text:0x00006098; // type:function size:0xFC -fn_1_6194 = .text:0x00006194; // type:function size:0x25C -fn_1_63F0 = .text:0x000063F0; // type:function size:0x624 -fn_1_6A14 = .text:0x00006A14; // type:function size:0x1AC -fn_1_6BC0 = .text:0x00006BC0; // type:function size:0x3F4 -fn_1_6FB4 = .text:0x00006FB4; // type:function size:0x574 -fn_1_7528 = .text:0x00007528; // type:function size:0x2C4 -fn_1_77EC = .text:0x000077EC; // type:function size:0xA8 -fn_1_7894 = .text:0x00007894; // type:function size:0x1D0 -fn_1_7A64 = .text:0x00007A64; // type:function size:0xAC8 -fn_1_852C = .text:0x0000852C; // type:function size:0x280 -fn_1_87AC = .text:0x000087AC; // type:function size:0x34 -fn_1_87E0 = .text:0x000087E0; // type:function size:0x1A8 -fn_1_8988 = .text:0x00008988; // type:function size:0xC8 -fn_1_8A50 = .text:0x00008A50; // type:function size:0x11C -fn_1_8B6C = .text:0x00008B6C; // type:function size:0x270 -fn_1_8DDC = .text:0x00008DDC; // type:function size:0x3B0 -fn_1_918C = .text:0x0000918C; // type:function size:0xF0 -fn_1_927C = .text:0x0000927C; // type:function size:0xB0 -fn_1_932C = .text:0x0000932C; // type:function size:0x17C -fn_1_94A8 = .text:0x000094A8; // type:function size:0x14C -fn_1_95F4 = .text:0x000095F4; // type:function size:0x200 -fn_1_97F4 = .text:0x000097F4; // type:function size:0xF8 -fn_1_98EC = .text:0x000098EC; // type:function size:0x34 -fn_1_9920 = .text:0x00009920; // type:function size:0x104 -fn_1_9A24 = .text:0x00009A24; // type:function size:0x198 -fn_1_9BBC = .text:0x00009BBC; // type:function size:0x144 +fn_1_730 = .text:0x00000730; // type:function size:0x44 scope:local +fn_1_774 = .text:0x00000774; // type:function size:0x4 scope:local +fn_1_778 = .text:0x00000778; // type:function size:0x9C scope:local +fn_1_814 = .text:0x00000814; // type:function size:0x1D4 scope:local +fn_1_9E8 = .text:0x000009E8; // type:function size:0x318 scope:local +fn_1_D00 = .text:0x00000D00; // type:function size:0x4 scope:local +fn_1_D04 = .text:0x00000D04; // type:function size:0x550 scope:local +fn_1_1254 = .text:0x00001254; // type:function size:0x38 scope:local +fn_1_128C = .text:0x0000128C; // type:function size:0x80 scope:local +fn_1_130C = .text:0x0000130C; // type:function size:0x270 scope:local +fn_1_157C = .text:0x0000157C; // type:function size:0xF4 scope:local +fn_1_1670 = .text:0x00001670; // type:function size:0x90 scope:local +fn_1_1700 = .text:0x00001700; // type:function size:0x290 scope:local +fn_1_1990 = .text:0x00001990; // type:function size:0x148 scope:local +fn_1_1AD8 = .text:0x00001AD8; // type:function size:0x64 scope:local +fn_1_1B3C = .text:0x00001B3C; // type:function size:0x3A8 scope:local +fn_1_1EE4 = .text:0x00001EE4; // type:function size:0x48 scope:local +fn_1_1F2C = .text:0x00001F2C; // type:function size:0x78 scope:local +fn_1_1FA4 = .text:0x00001FA4; // type:function size:0x580 scope:local +fn_1_2524 = .text:0x00002524; // type:function size:0x248 scope:local +fn_1_276C = .text:0x0000276C; // type:function size:0x7AC scope:local +fn_1_2F18 = .text:0x00002F18; // type:function size:0x438 scope:local +fn_1_3350 = .text:0x00003350; // type:function size:0x1C4 scope:local +fn_1_3514 = .text:0x00003514; // type:function size:0xA0 scope:local +fn_1_35B4 = .text:0x000035B4; // type:function size:0x70 scope:local +fn_1_3624 = .text:0x00003624; // type:function size:0xFD0 scope:local +fn_1_45F4 = .text:0x000045F4; // type:function size:0x180 scope:local +fn_1_4774 = .text:0x00004774; // type:function size:0xF0 scope:local +fn_1_4864 = .text:0x00004864; // type:function size:0x50 scope:local +fn_1_48B4 = .text:0x000048B4; // type:function size:0x560 scope:local +fn_1_4E14 = .text:0x00004E14; // type:function size:0x194 scope:local +fn_1_4FA8 = .text:0x00004FA8; // type:function size:0x30 scope:local +fn_1_4FD8 = .text:0x00004FD8; // type:function size:0xFC scope:local +fn_1_50D4 = .text:0x000050D4; // type:function size:0x2E4 scope:local +fn_1_53B8 = .text:0x000053B8; // type:function size:0x84 scope:local +fn_1_543C = .text:0x0000543C; // type:function size:0x258 scope:local +fn_1_5694 = .text:0x00005694; // type:function size:0x1D8 scope:local +fn_1_586C = .text:0x0000586C; // type:function size:0xC0 scope:local +fn_1_592C = .text:0x0000592C; // type:function size:0x200 scope:local +fn_1_5B2C = .text:0x00005B2C; // type:function size:0x14 scope:local +fn_1_5B40 = .text:0x00005B40; // type:function size:0x190 scope:local +fn_1_5CD0 = .text:0x00005CD0; // type:function size:0x38 scope:local +fn_1_5D08 = .text:0x00005D08; // type:function size:0x390 scope:local +fn_1_6098 = .text:0x00006098; // type:function size:0xFC scope:local +fn_1_6194 = .text:0x00006194; // type:function size:0x25C scope:local +fn_1_63F0 = .text:0x000063F0; // type:function size:0x624 scope:local +fn_1_6A14 = .text:0x00006A14; // type:function size:0x1AC scope:local +fn_1_6BC0 = .text:0x00006BC0; // type:function size:0x3F4 scope:local +fn_1_6FB4 = .text:0x00006FB4; // type:function size:0x574 scope:local +fn_1_7528 = .text:0x00007528; // type:function size:0x2C4 scope:local +fn_1_77EC = .text:0x000077EC; // type:function size:0xA8 scope:local +fn_1_7894 = .text:0x00007894; // type:function size:0x1D0 scope:local +fn_1_7A64 = .text:0x00007A64; // type:function size:0xAC8 scope:local +fn_1_852C = .text:0x0000852C; // type:function size:0x280 scope:local +fn_1_87AC = .text:0x000087AC; // type:function size:0x34 scope:local +fn_1_87E0 = .text:0x000087E0; // type:function size:0x1A8 scope:local +fn_1_8988 = .text:0x00008988; // type:function size:0xC8 scope:local +fn_1_8A50 = .text:0x00008A50; // type:function size:0x11C scope:local +fn_1_8B6C = .text:0x00008B6C; // type:function size:0x270 scope:local +fn_1_8DDC = .text:0x00008DDC; // type:function size:0x3B0 scope:local +fn_1_918C = .text:0x0000918C; // type:function size:0xF0 scope:local +fn_1_927C = .text:0x0000927C; // type:function size:0xB0 scope:local +fn_1_932C = .text:0x0000932C; // type:function size:0x17C scope:local +fn_1_94A8 = .text:0x000094A8; // type:function size:0x14C scope:local +fn_1_95F4 = .text:0x000095F4; // type:function size:0x200 scope:local +fn_1_97F4 = .text:0x000097F4; // type:function size:0xF8 scope:local +fn_1_98EC = .text:0x000098EC; // type:function size:0x34 scope:local +fn_1_9920 = .text:0x00009920; // type:function size:0x104 scope:local +fn_1_9A24 = .text:0x00009A24; // type:function size:0x198 scope:local +fn_1_9BBC = .text:0x00009BBC; // type:function size:0x144 scope:local fn_1_9D00 = .text:0x00009D00; // type:function size:0xD8 fn_1_9DD8 = .text:0x00009DD8; // type:function size:0x6E0 -fn_1_A4B8 = .text:0x0000A4B8; // type:function size:0x9C -fn_1_A554 = .text:0x0000A554; // type:function size:0xA8 -fn_1_A5FC = .text:0x0000A5FC; // type:function size:0xE4 -fn_1_A6E0 = .text:0x0000A6E0; // type:function size:0x938 -fn_1_B018 = .text:0x0000B018; // type:function size:0x70 -fn_1_B088 = .text:0x0000B088; // type:function size:0x144 -fn_1_B1CC = .text:0x0000B1CC; // type:function size:0x1EC -fn_1_B3B8 = .text:0x0000B3B8; // type:function size:0xC0 -fn_1_B478 = .text:0x0000B478; // type:function size:0x680 -fn_1_BAF8 = .text:0x0000BAF8; // type:function size:0x1E4 -fn_1_BCDC = .text:0x0000BCDC; // type:function size:0x224 -fn_1_BF00 = .text:0x0000BF00; // type:function size:0x68 -fn_1_BF68 = .text:0x0000BF68; // type:function size:0x98 -fn_1_C000 = .text:0x0000C000; // type:function size:0xFC -fn_1_C0FC = .text:0x0000C0FC; // type:function size:0x160 -fn_1_C25C = .text:0x0000C25C; // type:function size:0x5E8 -fn_1_C844 = .text:0x0000C844; // type:function size:0x50 -fn_1_C894 = .text:0x0000C894; // type:function size:0xB8 -fn_1_C94C = .text:0x0000C94C; // type:function size:0x4C -fn_1_C998 = .text:0x0000C998; // type:function size:0x1AC -fn_1_CB44 = .text:0x0000CB44; // type:function size:0x380 -fn_1_CEC4 = .text:0x0000CEC4; // type:function size:0x170 -fn_1_D034 = .text:0x0000D034; // type:function size:0x48 -fn_1_D07C = .text:0x0000D07C; // type:function size:0x98 -fn_1_D114 = .text:0x0000D114; // type:function size:0x62C +fn_1_A4B8 = .text:0x0000A4B8; // type:function size:0x9C scope:local +fn_1_A554 = .text:0x0000A554; // type:function size:0xA8 scope:local +fn_1_A5FC = .text:0x0000A5FC; // type:function size:0xE4 scope:local +fn_1_A6E0 = .text:0x0000A6E0; // type:function size:0x938 scope:local +fn_1_B018 = .text:0x0000B018; // type:function size:0x70 scope:local +fn_1_B088 = .text:0x0000B088; // type:function size:0x144 scope:local +fn_1_B1CC = .text:0x0000B1CC; // type:function size:0x1EC scope:local +fn_1_B3B8 = .text:0x0000B3B8; // type:function size:0xC0 scope:local +fn_1_B478 = .text:0x0000B478; // type:function size:0x680 scope:local +fn_1_BAF8 = .text:0x0000BAF8; // type:function size:0x1E4 scope:local +fn_1_BCDC = .text:0x0000BCDC; // type:function size:0x224 scope:local +fn_1_BF00 = .text:0x0000BF00; // type:function size:0x68 scope:local +fn_1_BF68 = .text:0x0000BF68; // type:function size:0x98 scope:local +fn_1_C000 = .text:0x0000C000; // type:function size:0xFC scope:local +fn_1_C0FC = .text:0x0000C0FC; // type:function size:0x160 scope:local +fn_1_C25C = .text:0x0000C25C; // type:function size:0x5E8 scope:local +fn_1_C844 = .text:0x0000C844; // type:function size:0x50 scope:local +fn_1_C894 = .text:0x0000C894; // type:function size:0xB8 scope:local +fn_1_C94C = .text:0x0000C94C; // type:function size:0x4C scope:local +fn_1_C998 = .text:0x0000C998; // type:function size:0x1AC scope:local +fn_1_CB44 = .text:0x0000CB44; // type:function size:0x380 scope:local +fn_1_CEC4 = .text:0x0000CEC4; // type:function size:0x170 scope:local +fn_1_D034 = .text:0x0000D034; // type:function size:0x48 scope:local +fn_1_D07C = .text:0x0000D07C; // type:function size:0x98 scope:local +fn_1_D114 = .text:0x0000D114; // type:function size:0x62C scope:local fn_1_D740 = .text:0x0000D740; // type:function size:0x644 fn_1_DD84 = .text:0x0000DD84; // type:function size:0x110 fn_1_DE94 = .text:0x0000DE94; // type:function size:0x26C -fn_1_E100 = .text:0x0000E100; // type:function size:0x54 -fn_1_E154 = .text:0x0000E154; // type:function size:0x164 -fn_1_E2B8 = .text:0x0000E2B8; // type:function size:0x194 -fn_1_E44C = .text:0x0000E44C; // type:function size:0x4C8 -fn_1_E914 = .text:0x0000E914; // type:function size:0x3C0 -fn_1_ECD4 = .text:0x0000ECD4; // type:function size:0x1CC -fn_1_EEA0 = .text:0x0000EEA0; // type:function size:0x38 -fn_1_EED8 = .text:0x0000EED8; // type:function size:0x1C4 -fn_1_F09C = .text:0x0000F09C; // type:function size:0x2AC -fn_1_F348 = .text:0x0000F348; // type:function size:0xB0 -fn_1_F3F8 = .text:0x0000F3F8; // type:function size:0x2F0 -fn_1_F6E8 = .text:0x0000F6E8; // type:function size:0x1A8 -fn_1_F890 = .text:0x0000F890; // type:function size:0x18C -fn_1_FA1C = .text:0x0000FA1C; // type:function size:0xA0 -fn_1_FABC = .text:0x0000FABC; // type:function size:0x9C -fn_1_FB58 = .text:0x0000FB58; // type:function size:0xE4 -fn_1_FC3C = .text:0x0000FC3C; // type:function size:0xB0 -fn_1_FCEC = .text:0x0000FCEC; // type:function size:0x50 -fn_1_FD3C = .text:0x0000FD3C; // type:function size:0x108 -fn_1_FE44 = .text:0x0000FE44; // type:function size:0x8C -fn_1_FED0 = .text:0x0000FED0; // type:function size:0x14C -fn_1_1001C = .text:0x0001001C; // type:function size:0x19C -fn_1_101B8 = .text:0x000101B8; // type:function size:0x4AC -fn_1_10664 = .text:0x00010664; // type:function size:0x1BC -fn_1_10820 = .text:0x00010820; // type:function size:0x2C8 -fn_1_10AE8 = .text:0x00010AE8; // type:function size:0xC8 -fn_1_10BB0 = .text:0x00010BB0; // type:function size:0x140 -fn_1_10CF0 = .text:0x00010CF0; // type:function size:0x1C8 -fn_1_10EB8 = .text:0x00010EB8; // type:function size:0x1AC -fn_1_11064 = .text:0x00011064; // type:function size:0x420 -fn_1_11484 = .text:0x00011484; // type:function size:0x56C +fn_1_E100 = .text:0x0000E100; // type:function size:0x54 scope:local +fn_1_E154 = .text:0x0000E154; // type:function size:0x164 scope:local +fn_1_E2B8 = .text:0x0000E2B8; // type:function size:0x194 scope:local +fn_1_E44C = .text:0x0000E44C; // type:function size:0x4C8 scope:local +fn_1_E914 = .text:0x0000E914; // type:function size:0x3C0 scope:local +fn_1_ECD4 = .text:0x0000ECD4; // type:function size:0x1CC scope:local +fn_1_EEA0 = .text:0x0000EEA0; // type:function size:0x38 scope:local +fn_1_EED8 = .text:0x0000EED8; // type:function size:0x1C4 scope:local +fn_1_F09C = .text:0x0000F09C; // type:function size:0x2AC scope:local +fn_1_F348 = .text:0x0000F348; // type:function size:0xB0 scope:local +fn_1_F3F8 = .text:0x0000F3F8; // type:function size:0x2F0 scope:local +fn_1_F6E8 = .text:0x0000F6E8; // type:function size:0x1A8 scope:local +fn_1_F890 = .text:0x0000F890; // type:function size:0x18C scope:local +fn_1_FA1C = .text:0x0000FA1C; // type:function size:0xA0 scope:local +fn_1_FABC = .text:0x0000FABC; // type:function size:0x9C scope:local +fn_1_FB58 = .text:0x0000FB58; // type:function size:0xE4 scope:local +fn_1_FC3C = .text:0x0000FC3C; // type:function size:0xB0 scope:local +fn_1_FCEC = .text:0x0000FCEC; // type:function size:0x50 scope:local +fn_1_FD3C = .text:0x0000FD3C; // type:function size:0x108 scope:local +fn_1_FE44 = .text:0x0000FE44; // type:function size:0x8C scope:local +fn_1_FED0 = .text:0x0000FED0; // type:function size:0x14C scope:local +fn_1_1001C = .text:0x0001001C; // type:function size:0x19C scope:local +fn_1_101B8 = .text:0x000101B8; // type:function size:0x4AC scope:local +fn_1_10664 = .text:0x00010664; // type:function size:0x1BC scope:local +fn_1_10820 = .text:0x00010820; // type:function size:0x2C8 scope:local +fn_1_10AE8 = .text:0x00010AE8; // type:function size:0xC8 scope:local +fn_1_10BB0 = .text:0x00010BB0; // type:function size:0x140 scope:local +fn_1_10CF0 = .text:0x00010CF0; // type:function size:0x1C8 scope:local +fn_1_10EB8 = .text:0x00010EB8; // type:function size:0x1AC scope:local +fn_1_11064 = .text:0x00011064; // type:function size:0x420 scope:local +fn_1_11484 = .text:0x00011484; // type:function size:0x56C scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x10 data:4byte -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x8 data:4byte -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x8 data:4byte -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x2 data:2byte -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x2 data:2byte -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0xC data:2byte -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x528 -lbl_1_data_528 = .data:0x00000528; // type:object size:0x2 data:2byte -lbl_1_data_52A = .data:0x0000052A; // type:object size:0x2 data:2byte -lbl_1_data_52C = .data:0x0000052C; // type:object size:0x2 data:2byte -lbl_1_data_52E = .data:0x0000052E; // type:object size:0x2 data:2byte -lbl_1_data_530 = .data:0x00000530; // type:object size:0x2 data:2byte -lbl_1_data_534 = .data:0x00000534; // type:object size:0x8 -lbl_1_data_53C = .data:0x0000053C; // type:object size:0x8 -lbl_1_data_544 = .data:0x00000544; // type:object size:0x14 data:string -lbl_1_data_558 = .data:0x00000558; // type:object size:0x14 data:string -lbl_1_data_56C = .data:0x0000056C; // type:object size:0x14 -lbl_1_data_580 = .data:0x00000580; // type:object size:0x2 data:2byte -lbl_1_data_582 = .data:0x00000582; // type:object size:0x12 -lbl_1_data_594 = .data:0x00000594; // type:object size:0x40 -lbl_1_data_5D4 = .data:0x000005D4; // type:object size:0x4 data:4byte -lbl_1_data_5D8 = .data:0x000005D8; // type:object size:0x4 data:4byte -lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x10 -lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x7 data:string -lbl_1_data_5F3 = .data:0x000005F3; // type:object size:0x7 data:string -lbl_1_data_5FA = .data:0x000005FA; // type:object size:0xA -lbl_1_data_604 = .data:0x00000604; // type:object size:0xC -lbl_1_data_610 = .data:0x00000610; // type:object size:0x10 -lbl_1_data_620 = .data:0x00000620; // type:object size:0x5 data:string -lbl_1_data_625 = .data:0x00000625; // type:object size:0x5 data:string -lbl_1_data_62A = .data:0x0000062A; // type:object size:0x5 data:string -lbl_1_data_62F = .data:0x0000062F; // type:object size:0x4 data:string -lbl_1_data_633 = .data:0x00000633; // type:object size:0x1 data:byte -lbl_1_data_634 = .data:0x00000634; // type:object size:0x24 -lbl_1_data_658 = .data:0x00000658; // type:object size:0x24 -lbl_1_data_67C = .data:0x0000067C; // type:object size:0x14 -lbl_1_data_690 = .data:0x00000690; // type:object size:0x2D0 -lbl_1_data_960 = .data:0x00000960; // type:object size:0x2D0 -lbl_1_data_C30 = .data:0x00000C30; // type:object size:0x2D0 -lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x8 -lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x38 -lbl_1_data_F40 = .data:0x00000F40; // type:object size:0x20 -lbl_1_data_F60 = .data:0x00000F60; // type:object size:0x20 -lbl_1_data_F80 = .data:0x00000F80; // type:object size:0x7 data:string -lbl_1_data_F87 = .data:0x00000F87; // type:object size:0x5 data:string -lbl_1_data_F8C = .data:0x00000F8C; // type:object size:0x5 data:string -lbl_1_data_F91 = .data:0x00000F91; // type:object size:0x5 data:string -lbl_1_data_F96 = .data:0x00000F96; // type:object size:0x6 -lbl_1_data_F9C = .data:0x00000F9C; // type:object size:0x10 data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local 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 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local 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:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local 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 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local 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 scope:local 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 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local 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 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x2 scope:local data:2byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local 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 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local 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 scope:local 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:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local 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:0x2 scope:local data:2byte +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local 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 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local 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 scope:local 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:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local 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 scope:local 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:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local 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 scope:local 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 scope:local 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 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local 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 scope:local 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 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local 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 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local 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 scope:local 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 scope:local 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 scope:local 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 scope:local 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:0x4 scope:local 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 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x528 scope:local +lbl_1_data_528 = .data:0x00000528; // type:object size:0x2 scope:local data:2byte +lbl_1_data_52A = .data:0x0000052A; // type:object size:0x2 scope:local data:2byte +lbl_1_data_52C = .data:0x0000052C; // type:object size:0x2 scope:local data:2byte +lbl_1_data_52E = .data:0x0000052E; // type:object size:0x2 scope:local data:2byte +lbl_1_data_530 = .data:0x00000530; // type:object size:0x2 scope:local data:2byte +lbl_1_data_534 = .data:0x00000534; // type:object size:0x8 scope:local +lbl_1_data_53C = .data:0x0000053C; // type:object size:0x8 scope:local +lbl_1_data_544 = .data:0x00000544; // type:object size:0x14 scope:local data:string +lbl_1_data_558 = .data:0x00000558; // type:object size:0x14 scope:local data:string +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x13 scope:local data:string +lbl_1_data_580 = .data:0x00000580; // type:object size:0x2 scope:local data:2byte +lbl_1_data_582 = .data:0x00000582; // type:object size:0x12 scope:local +lbl_1_data_594 = .data:0x00000594; // type:object size:0x40 scope:local +lbl_1_data_5D4 = .data:0x000005D4; // type:object size:0x4 scope:local data:4byte +lbl_1_data_5D8 = .data:0x000005D8; // type:object size:0x4 scope:local data:4byte +lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x10 scope:local data:2byte +lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x7 scope:local data:string +lbl_1_data_5F3 = .data:0x000005F3; // type:object size:0x7 scope:local data:string +lbl_1_data_5FA = .data:0x000005FA; // type:object size:0x7 scope:local data:string +lbl_1_data_604 = .data:0x00000604; // type:object size:0xC scope:local +lbl_1_data_610 = .data:0x00000610; // type:object size:0x10 scope:local +lbl_1_data_620 = .data:0x00000620; // type:object size:0x5 scope:local data:string +lbl_1_data_625 = .data:0x00000625; // type:object size:0x5 scope:local data:string +lbl_1_data_62A = .data:0x0000062A; // type:object size:0x5 scope:local data:string +lbl_1_data_62F = .data:0x0000062F; // type:object size:0x4 scope:local data:string +lbl_1_data_633 = .data:0x00000633; // type:object size:0x1 scope:local data:byte +lbl_1_data_634 = .data:0x00000634; // type:object size:0x24 scope:local +lbl_1_data_658 = .data:0x00000658; // type:object size:0x24 scope:local +lbl_1_data_67C = .data:0x0000067C; // type:object size:0x12 scope:local data:2byte +lbl_1_data_690 = .data:0x00000690; // type:object size:0x2D0 scope:local +lbl_1_data_960 = .data:0x00000960; // type:object size:0x2D0 scope:local +lbl_1_data_C30 = .data:0x00000C30; // type:object size:0x2D0 scope:local +lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x3 scope:local data:string +lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x38 scope:local +lbl_1_data_F40 = .data:0x00000F40; // type:object size:0x20 scope:local +lbl_1_data_F60 = .data:0x00000F60; // type:object size:0x20 scope:local +lbl_1_data_F80 = .data:0x00000F80; // type:object size:0x7 scope:local data:string +lbl_1_data_F87 = .data:0x00000F87; // type:object size:0x5 scope:local data:string +lbl_1_data_F8C = .data:0x00000F8C; // type:object size:0x5 scope:local data:string +lbl_1_data_F91 = .data:0x00000F91; // type:object size:0x5 scope:local data:string +lbl_1_data_F96 = .data:0x00000F96; // type:object size:0x5 scope:local data:string +lbl_1_data_F9C = .data:0x00000F9C; // type:object size:0x10 scope:local data:4byte lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 data:byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte -lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 data:2byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x1 data:byte -lbl_1_bss_29 = .bss:0x00000029; // type:object size:0x1 data:byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x5A0 -lbl_1_bss_5CC = .bss:0x000005CC; // type:object size:0x2 data:2byte -lbl_1_bss_5D0 = .bss:0x000005D0; // type:object size:0x30 -lbl_1_bss_600 = .bss:0x00000600; // type:object size:0x18 -lbl_1_bss_618 = .bss:0x00000618; // type:object size:0xC data:4byte -lbl_1_bss_624 = .bss:0x00000624; // type:object size:0xC data:float -lbl_1_bss_630 = .bss:0x00000630; // type:object size:0xC data:4byte -lbl_1_bss_63C = .bss:0x0000063C; // type:object size:0x4 data:float -lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x4 data:float -lbl_1_bss_644 = .bss:0x00000644; // type:object size:0x4 data:float -lbl_1_bss_648 = .bss:0x00000648; // type:object size:0xC data:4byte -lbl_1_bss_654 = .bss:0x00000654; // type:object size:0xC data:float -lbl_1_bss_660 = .bss:0x00000660; // type:object size:0xC data:float -lbl_1_bss_66C = .bss:0x0000066C; // type:object size:0x4 data:float -lbl_1_bss_670 = .bss:0x00000670; // type:object size:0x4 data:float -lbl_1_bss_674 = .bss:0x00000674; // type:object size:0x4 data:float -lbl_1_bss_678 = .bss:0x00000678; // type:object size:0x30 -lbl_1_bss_6A8 = .bss:0x000006A8; // type:object size:0x4 data:float -lbl_1_bss_6AC = .bss:0x000006AC; // type:object size:0x2 data:2byte -lbl_1_bss_6AE = .bss:0x000006AE; // type:object size:0x2 data:2byte -lbl_1_bss_6B0 = .bss:0x000006B0; // type:object size:0x1 data:byte -lbl_1_bss_6B1 = .bss:0x000006B1; // type:object size:0x1 data:byte -lbl_1_bss_6B2 = .bss:0x000006B2; // type:object size:0x1 data:byte -lbl_1_bss_6B3 = .bss:0x000006B3; // type:object size:0x1 data:byte -lbl_1_bss_6B4 = .bss:0x000006B4; // type:object size:0x1 data:byte -lbl_1_bss_6B6 = .bss:0x000006B6; // type:object size:0xA data:2byte -lbl_1_bss_6C0 = .bss:0x000006C0; // type:object size:0x4 data:4byte -lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x44 data:2byte -lbl_1_bss_708 = .bss:0x00000708; // type:object size:0x2 data:2byte -lbl_1_bss_70C = .bss:0x0000070C; // type:object size:0x4 data:4byte -lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 data:4byte -lbl_1_bss_714 = .bss:0x00000714; // type:object size:0xC -lbl_1_bss_720 = .bss:0x00000720; // type:object size:0x4 data:4byte -lbl_1_bss_724 = .bss:0x00000724; // type:object size:0x4 data:4byte -lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x2 data:2byte -lbl_1_bss_72A = .bss:0x0000072A; // type:object size:0x2 data:2byte -lbl_1_bss_72C = .bss:0x0000072C; // type:object size:0x4 data:4byte -lbl_1_bss_730 = .bss:0x00000730; // type:object size:0x4 data:4byte -lbl_1_bss_734 = .bss:0x00000734; // type:object size:0x4 data:4byte -lbl_1_bss_738 = .bss:0x00000738; // type:object size:0xC data:float -lbl_1_bss_744 = .bss:0x00000744; // type:object size:0x2 data:2byte -lbl_1_bss_748 = .bss:0x00000748; // type:object size:0x4 data:4byte -lbl_1_bss_74C = .bss:0x0000074C; // type:object size:0x4 data:4byte -lbl_1_bss_750 = .bss:0x00000750; // type:object size:0x2 data:2byte -lbl_1_bss_754 = .bss:0x00000754; // type:object size:0x4 data:float -lbl_1_bss_758 = .bss:0x00000758; // type:object size:0x4 data:4byte -lbl_1_bss_75C = .bss:0x0000075C; // type:object size:0x4 data:4byte -lbl_1_bss_760 = .bss:0x00000760; // type:object size:0x28 -lbl_1_bss_788 = .bss:0x00000788; // type:object size:0x2 data:2byte -lbl_1_bss_78A = .bss:0x0000078A; // type:object size:0x6 data:2byte -lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x6 data:2byte -lbl_1_bss_796 = .bss:0x00000796; // type:object size:0x2 data:2byte -lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x4 data:4byte -lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x4 data:4byte -lbl_1_bss_7A0 = .bss:0x000007A0; // type:object size:0x4 data:4byte -lbl_1_bss_7A4 = .bss:0x000007A4; // type:object size:0x4 data:4byte -lbl_1_bss_7A8 = .bss:0x000007A8; // type:object size:0x2 data:2byte -lbl_1_bss_7AA = .bss:0x000007AA; // type:object size:0x2 data:2byte -lbl_1_bss_7AC = .bss:0x000007AC; // type:object size:0x8 data:4byte -lbl_1_bss_7B4 = .bss:0x000007B4; // type:object size:0x2 data:2byte -lbl_1_bss_7B8 = .bss:0x000007B8; // type:object size:0x4 data:4byte -lbl_1_bss_7BC = .bss:0x000007BC; // type:object size:0x8 data:4byte -lbl_1_bss_7C4 = .bss:0x000007C4; // type:object size:0xC data:float -lbl_1_bss_7D0 = .bss:0x000007D0; // type:object size:0x2 data:2byte -lbl_1_bss_7D2 = .bss:0x000007D2; // type:object size:0x2 data:2byte -lbl_1_bss_7D4 = .bss:0x000007D4; // type:object size:0x2 data:2byte -lbl_1_bss_7D6 = .bss:0x000007D6; // type:object size:0x2 data:2byte -lbl_1_bss_7D8 = .bss:0x000007D8; // type:object size:0xC data:4byte -lbl_1_bss_7E4 = .bss:0x000007E4; // type:object size:0x4 data:4byte -lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x4 data:float -lbl_1_bss_7EC = .bss:0x000007EC; // type:object size:0x4 data:float -lbl_1_bss_7F0 = .bss:0x000007F0; // type:object size:0x4 data:4byte -lbl_1_bss_7F4 = .bss:0x000007F4; // type:object size:0x4 data:4byte -lbl_1_bss_7F8 = .bss:0x000007F8; // type:object size:0x4 data:4byte -lbl_1_bss_7FC = .bss:0x000007FC; // type:object size:0x10 data:4byte -lbl_1_bss_80C = .bss:0x0000080C; // type:object size:0xC data:float -lbl_1_bss_818 = .bss:0x00000818; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 scope:local data:byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x1 scope:local data:byte +lbl_1_bss_29 = .bss:0x00000029; // type:object size:0x1 scope:local data:byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x5A0 scope:local +lbl_1_bss_5CC = .bss:0x000005CC; // type:object size:0x4 scope:local data:2byte +lbl_1_bss_5D0 = .bss:0x000005D0; // type:object size:0x30 scope:local +lbl_1_bss_600 = .bss:0x00000600; // type:object size:0x18 scope:local +lbl_1_bss_618 = .bss:0x00000618; // type:object size:0xC scope:local data:4byte +lbl_1_bss_624 = .bss:0x00000624; // type:object size:0xC scope:local data:float +lbl_1_bss_630 = .bss:0x00000630; // type:object size:0xC scope:local data:4byte +lbl_1_bss_63C = .bss:0x0000063C; // type:object size:0x4 scope:local data:float +lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x4 scope:local data:float +lbl_1_bss_644 = .bss:0x00000644; // type:object size:0x4 scope:local data:float +lbl_1_bss_648 = .bss:0x00000648; // type:object size:0xC scope:local data:4byte +lbl_1_bss_654 = .bss:0x00000654; // type:object size:0xC scope:local data:float +lbl_1_bss_660 = .bss:0x00000660; // type:object size:0xC scope:local data:float +lbl_1_bss_66C = .bss:0x0000066C; // type:object size:0x4 scope:local data:float +lbl_1_bss_670 = .bss:0x00000670; // type:object size:0x4 scope:local data:float +lbl_1_bss_674 = .bss:0x00000674; // type:object size:0x4 scope:local data:float +lbl_1_bss_678 = .bss:0x00000678; // type:object size:0x30 scope:local +lbl_1_bss_6A8 = .bss:0x000006A8; // type:object size:0x4 scope:local data:float +lbl_1_bss_6AC = .bss:0x000006AC; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_6AE = .bss:0x000006AE; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_6B0 = .bss:0x000006B0; // type:object size:0x1 scope:local data:byte +lbl_1_bss_6B1 = .bss:0x000006B1; // type:object size:0x1 scope:local data:byte +lbl_1_bss_6B2 = .bss:0x000006B2; // type:object size:0x1 scope:local data:byte +lbl_1_bss_6B3 = .bss:0x000006B3; // type:object size:0x1 scope:local data:byte +lbl_1_bss_6B4 = .bss:0x000006B4; // type:object size:0x1 scope:local data:byte +lbl_1_bss_6B6 = .bss:0x000006B6; // type:object size:0xA scope:local data:2byte +lbl_1_bss_6C0 = .bss:0x000006C0; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x42 data:2byte +lbl_1_bss_708 = .bss:0x00000708; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_70C = .bss:0x0000070C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_714 = .bss:0x00000714; // type:object size:0xC scope:local +lbl_1_bss_720 = .bss:0x00000720; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_724 = .bss:0x00000724; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_72A = .bss:0x0000072A; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_72C = .bss:0x0000072C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_730 = .bss:0x00000730; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_734 = .bss:0x00000734; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_738 = .bss:0x00000738; // type:object size:0xC scope:local data:float +lbl_1_bss_744 = .bss:0x00000744; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_748 = .bss:0x00000748; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_74C = .bss:0x0000074C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_750 = .bss:0x00000750; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_754 = .bss:0x00000754; // type:object size:0x4 scope:local data:float +lbl_1_bss_758 = .bss:0x00000758; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_75C = .bss:0x0000075C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_760 = .bss:0x00000760; // type:object size:0x28 scope:local +lbl_1_bss_788 = .bss:0x00000788; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_78A = .bss:0x0000078A; // type:object size:0x6 scope:local data:2byte +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x6 scope:local data:2byte +lbl_1_bss_796 = .bss:0x00000796; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_7A0 = .bss:0x000007A0; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_7A4 = .bss:0x000007A4; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_7A8 = .bss:0x000007A8; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_7AA = .bss:0x000007AA; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_7AC = .bss:0x000007AC; // type:object size:0x8 scope:local data:4byte +lbl_1_bss_7B4 = .bss:0x000007B4; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_7B8 = .bss:0x000007B8; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_7BC = .bss:0x000007BC; // type:object size:0x8 scope:local data:4byte +lbl_1_bss_7C4 = .bss:0x000007C4; // type:object size:0xC scope:local data:float +lbl_1_bss_7D0 = .bss:0x000007D0; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_7D2 = .bss:0x000007D2; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_7D4 = .bss:0x000007D4; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_7D6 = .bss:0x000007D6; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_7D8 = .bss:0x000007D8; // type:object size:0xC scope:local data:4byte +lbl_1_bss_7E4 = .bss:0x000007E4; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x4 scope:local data:float +lbl_1_bss_7EC = .bss:0x000007EC; // type:object size:0x4 scope:local data:float +lbl_1_bss_7F0 = .bss:0x000007F0; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_7F4 = .bss:0x000007F4; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_7F8 = .bss:0x000007F8; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_7FC = .bss:0x000007FC; // type:object size:0x10 scope:local data:4byte +lbl_1_bss_80C = .bss:0x0000080C; // type:object size:0xC scope:local data:float +lbl_1_bss_818 = .bss:0x00000818; // type:object size:0x4 scope:local data:4byte diff --git a/config/GMPE01_00/rels/w02Dll/symbols.txt b/config/GMPE01_00/rels/w02Dll/symbols.txt index da397f39..ad1b1e8c 100644 --- a/config/GMPE01_00/rels/w02Dll/symbols.txt +++ b/config/GMPE01_00/rels/w02Dll/symbols.txt @@ -111,15 +111,15 @@ fn_1_E310 = .text:0x0000E310; // type:function size:0x10C fn_1_E41C = .text:0x0000E41C; // type:function size:0xB8 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 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 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:float lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float @@ -363,7 +363,7 @@ lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x280 +lbl_1_data_0 = .data:0x00000000; // type:object size:0x280 scope:local lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte diff --git a/config/GMPE01_00/rels/w03Dll/symbols.txt b/config/GMPE01_00/rels/w03Dll/symbols.txt index 231a55e5..875a8237 100644 --- a/config/GMPE01_00/rels/w03Dll/symbols.txt +++ b/config/GMPE01_00/rels/w03Dll/symbols.txt @@ -161,67 +161,67 @@ lbl_1_rodata_C2 = .rodata:0x000000C2; // type:object size:0x6 scope:local data:b lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x20 data:4byte -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:4byte -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x10 data:4byte -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local 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 scope:local 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 scope:local 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 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local 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 scope:local 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 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local 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 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local 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 scope:local 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:0x10 scope:local data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:float lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float @@ -355,11 +355,11 @@ lbl_1_data_312 = .data:0x00000312; // type:object size:0x2 data:2byte lbl_1_data_314 = .data:0x00000314; // type:object size:0x2 data:2byte lbl_1_data_316 = .data:0x00000316; // type:object size:0x2 data:2byte lbl_1_data_318 = .data:0x00000318; // type:object size:0x18 -lbl_1_data_330 = .data:0x00000330; // type:object size:0xD data:string -lbl_1_data_33D = .data:0x0000033D; // type:object size:0x6 data:string -lbl_1_data_343 = .data:0x00000343; // type:object size:0x9 +lbl_1_data_330 = .data:0x00000330; // type:object size:0xD scope:local data:string +lbl_1_data_33D = .data:0x0000033D; // type:object size:0x6 scope:local data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0x9 scope:local lbl_1_data_34C = .data:0x0000034C; // type:object size:0x8 -lbl_1_data_354 = .data:0x00000354; // type:object size:0x8 +lbl_1_data_354 = .data:0x00000354; // type:object size:0x8 scope:local lbl_1_data_35C = .data:0x0000035C; // type:object size:0xC lbl_1_data_368 = .data:0x00000368; // type:object size:0x20 lbl_1_data_388 = .data:0x00000388; // type:object size:0x2 data:2byte diff --git a/config/GMPE01_00/rels/w06Dll/symbols.txt b/config/GMPE01_00/rels/w06Dll/symbols.txt index 6cea2169..511bbca8 100644 --- a/config/GMPE01_00/rels/w06Dll/symbols.txt +++ b/config/GMPE01_00/rels/w06Dll/symbols.txt @@ -3,78 +3,78 @@ _prolog = .text:0x00000030; // type:function size:0x64 scope:global _epilog = .text:0x00000094; // type:function size:0x4C scope:global BoardCreate = .text:0x000000E0; // type:function size:0x4C4 BoardDestroy = .text:0x000005A4; // type:function size:0x18C -fn_1_730 = .text:0x00000730; // type:function size:0x6C -fn_1_79C = .text:0x0000079C; // type:function size:0x20 -fn_1_7BC = .text:0x000007BC; // type:function size:0x144 -fn_1_900 = .text:0x00000900; // type:function size:0x84 -fn_1_984 = .text:0x00000984; // type:function size:0x3C -fn_1_9C0 = .text:0x000009C0; // type:function size:0x168 -fn_1_B28 = .text:0x00000B28; // type:function size:0x34 -fn_1_B5C = .text:0x00000B5C; // type:function size:0x214 +fn_1_730 = .text:0x00000730; // type:function size:0x6C scope:local +fn_1_79C = .text:0x0000079C; // type:function size:0x20 scope:local +fn_1_7BC = .text:0x000007BC; // type:function size:0x144 scope:local +fn_1_900 = .text:0x00000900; // type:function size:0x84 scope:local +fn_1_984 = .text:0x00000984; // type:function size:0x3C scope:local +fn_1_9C0 = .text:0x000009C0; // type:function size:0x168 scope:local +fn_1_B28 = .text:0x00000B28; // type:function size:0x34 scope:local +fn_1_B5C = .text:0x00000B5C; // type:function size:0x214 scope:local fn_1_D70 = .text:0x00000D70; // type:function size:0x1FC fn_1_F6C = .text:0x00000F6C; // type:function size:0xE8 fn_1_1054 = .text:0x00001054; // type:function size:0x90 -fn_1_10E4 = .text:0x000010E4; // type:function size:0x64 -fn_1_1148 = .text:0x00001148; // type:function size:0x68 -fn_1_11B0 = .text:0x000011B0; // type:function size:0xF0 -fn_1_12A0 = .text:0x000012A0; // type:function size:0x32C -fn_1_15CC = .text:0x000015CC; // type:function size:0x614 -fn_1_1BE0 = .text:0x00001BE0; // type:function size:0xD0 -fn_1_1CB0 = .text:0x00001CB0; // type:function size:0xAC -fn_1_1D5C = .text:0x00001D5C; // type:function size:0xD4 -fn_1_1E30 = .text:0x00001E30; // type:function size:0xD8 -fn_1_1F08 = .text:0x00001F08; // type:function size:0x140 -fn_1_2048 = .text:0x00002048; // type:function size:0x84 -fn_1_20CC = .text:0x000020CC; // type:function size:0xA8 -fn_1_2174 = .text:0x00002174; // type:function size:0x58 -fn_1_21CC = .text:0x000021CC; // type:function size:0x54 -fn_1_2220 = .text:0x00002220; // type:function size:0x21C -fn_1_243C = .text:0x0000243C; // type:function size:0x5E0 -fn_1_2A1C = .text:0x00002A1C; // type:function size:0x144 -fn_1_2B60 = .text:0x00002B60; // type:function size:0xB8 -fn_1_2C18 = .text:0x00002C18; // type:function size:0x178 -fn_1_2D90 = .text:0x00002D90; // type:function size:0x40 -fn_1_2DD0 = .text:0x00002DD0; // type:function size:0x48 -fn_1_2E18 = .text:0x00002E18; // type:function size:0xDC -fn_1_2EF4 = .text:0x00002EF4; // type:function size:0x57C -fn_1_3470 = .text:0x00003470; // type:function size:0xF0 -fn_1_3560 = .text:0x00003560; // type:function size:0x5C -fn_1_35BC = .text:0x000035BC; // type:function size:0x48 -fn_1_3604 = .text:0x00003604; // type:function size:0x94 -fn_1_3698 = .text:0x00003698; // type:function size:0x2DC -fn_1_3974 = .text:0x00003974; // type:function size:0x6FC -fn_1_4070 = .text:0x00004070; // type:function size:0xB4 -fn_1_4124 = .text:0x00004124; // type:function size:0x70 -fn_1_4194 = .text:0x00004194; // type:function size:0x118 -fn_1_42AC = .text:0x000042AC; // type:function size:0x130 -fn_1_43DC = .text:0x000043DC; // type:function size:0x84 -fn_1_4460 = .text:0x00004460; // type:function size:0x418 +fn_1_10E4 = .text:0x000010E4; // type:function size:0x64 scope:local +fn_1_1148 = .text:0x00001148; // type:function size:0x68 scope:local +fn_1_11B0 = .text:0x000011B0; // type:function size:0xF0 scope:local +fn_1_12A0 = .text:0x000012A0; // type:function size:0x32C scope:local +fn_1_15CC = .text:0x000015CC; // type:function size:0x614 scope:local +fn_1_1BE0 = .text:0x00001BE0; // type:function size:0xD0 scope:local +fn_1_1CB0 = .text:0x00001CB0; // type:function size:0xAC scope:local +fn_1_1D5C = .text:0x00001D5C; // type:function size:0xD4 scope:local +fn_1_1E30 = .text:0x00001E30; // type:function size:0xD8 scope:local +fn_1_1F08 = .text:0x00001F08; // type:function size:0x140 scope:local +fn_1_2048 = .text:0x00002048; // type:function size:0x84 scope:local +fn_1_20CC = .text:0x000020CC; // type:function size:0xA8 scope:local +fn_1_2174 = .text:0x00002174; // type:function size:0x58 scope:local +fn_1_21CC = .text:0x000021CC; // type:function size:0x54 scope:local +fn_1_2220 = .text:0x00002220; // type:function size:0x21C scope:local +fn_1_243C = .text:0x0000243C; // type:function size:0x5E0 scope:local +fn_1_2A1C = .text:0x00002A1C; // type:function size:0x144 scope:local +fn_1_2B60 = .text:0x00002B60; // type:function size:0xB8 scope:local +fn_1_2C18 = .text:0x00002C18; // type:function size:0x178 scope:local +fn_1_2D90 = .text:0x00002D90; // type:function size:0x40 scope:local +fn_1_2DD0 = .text:0x00002DD0; // type:function size:0x48 scope:local +fn_1_2E18 = .text:0x00002E18; // type:function size:0xDC scope:local +fn_1_2EF4 = .text:0x00002EF4; // type:function size:0x57C scope:local +fn_1_3470 = .text:0x00003470; // type:function size:0xF0 scope:local +fn_1_3560 = .text:0x00003560; // type:function size:0x5C scope:local +fn_1_35BC = .text:0x000035BC; // type:function size:0x48 scope:local +fn_1_3604 = .text:0x00003604; // type:function size:0x94 scope:local +fn_1_3698 = .text:0x00003698; // type:function size:0x2DC scope:local +fn_1_3974 = .text:0x00003974; // type:function size:0x6FC scope:local +fn_1_4070 = .text:0x00004070; // type:function size:0xB4 scope:local +fn_1_4124 = .text:0x00004124; // type:function size:0x70 scope:local +fn_1_4194 = .text:0x00004194; // type:function size:0x118 scope:local +fn_1_42AC = .text:0x000042AC; // type:function size:0x130 scope:local +fn_1_43DC = .text:0x000043DC; // type:function size:0x84 scope:local +fn_1_4460 = .text:0x00004460; // type:function size:0x418 scope:local fn_1_4878 = .text:0x00004878; // type:function size:0x198 fn_1_4A10 = .text:0x00004A10; // type:function size:0x50 fn_1_4A60 = .text:0x00004A60; // type:function size:0xA0 -fn_1_4B00 = .text:0x00004B00; // type:function size:0xA0 -fn_1_4BA0 = .text:0x00004BA0; // type:function size:0x58 -fn_1_4BF8 = .text:0x00004BF8; // type:function size:0x3C0 -fn_1_4FB8 = .text:0x00004FB8; // type:function size:0x1E4 -fn_1_519C = .text:0x0000519C; // type:function size:0x204 -fn_1_53A0 = .text:0x000053A0; // type:function size:0xF0 -fn_1_5490 = .text:0x00005490; // type:function size:0x23C -fn_1_56CC = .text:0x000056CC; // type:function size:0x110 -fn_1_57DC = .text:0x000057DC; // type:function size:0xA0 -fn_1_587C = .text:0x0000587C; // type:function size:0x80 -fn_1_58FC = .text:0x000058FC; // type:function size:0x6C -fn_1_5968 = .text:0x00005968; // type:function size:0x68 -fn_1_59D0 = .text:0x000059D0; // type:function size:0x13C -fn_1_5B0C = .text:0x00005B0C; // type:function size:0x48 -fn_1_5B54 = .text:0x00005B54; // type:function size:0x190 -fn_1_5CE4 = .text:0x00005CE4; // type:function size:0x1D8 -fn_1_5EBC = .text:0x00005EBC; // type:function size:0x40 -fn_1_5EFC = .text:0x00005EFC; // type:function size:0x5C -fn_1_5F58 = .text:0x00005F58; // type:function size:0x114 -fn_1_606C = .text:0x0000606C; // type:function size:0x9A0 -fn_1_6A0C = .text:0x00006A0C; // type:function size:0x240 -fn_1_6C4C = .text:0x00006C4C; // type:function size:0x244 -fn_1_6E90 = .text:0x00006E90; // type:function size:0x60 +fn_1_4B00 = .text:0x00004B00; // type:function size:0xA0 scope:local +fn_1_4BA0 = .text:0x00004BA0; // type:function size:0x58 scope:local +fn_1_4BF8 = .text:0x00004BF8; // type:function size:0x3C0 scope:local +fn_1_4FB8 = .text:0x00004FB8; // type:function size:0x1E4 scope:local +fn_1_519C = .text:0x0000519C; // type:function size:0x204 scope:local +fn_1_53A0 = .text:0x000053A0; // type:function size:0xF0 scope:local +fn_1_5490 = .text:0x00005490; // type:function size:0x23C scope:local +fn_1_56CC = .text:0x000056CC; // type:function size:0x110 scope:local +fn_1_57DC = .text:0x000057DC; // type:function size:0xA0 scope:local +fn_1_587C = .text:0x0000587C; // type:function size:0x80 scope:local +fn_1_58FC = .text:0x000058FC; // type:function size:0x6C scope:local +fn_1_5968 = .text:0x00005968; // type:function size:0x68 scope:local +fn_1_59D0 = .text:0x000059D0; // type:function size:0x13C scope:local +fn_1_5B0C = .text:0x00005B0C; // type:function size:0x48 scope:local +fn_1_5B54 = .text:0x00005B54; // type:function size:0x190 scope:local +fn_1_5CE4 = .text:0x00005CE4; // type:function size:0x1D8 scope:local +fn_1_5EBC = .text:0x00005EBC; // type:function size:0x40 scope:local +fn_1_5EFC = .text:0x00005EFC; // type:function size:0x5C scope:local +fn_1_5F58 = .text:0x00005F58; // type:function size:0x114 scope:local +fn_1_606C = .text:0x0000606C; // type:function size:0x9A0 scope:local +fn_1_6A0C = .text:0x00006A0C; // type:function size:0x240 scope:local +fn_1_6C4C = .text:0x00006C4C; // type:function size:0x244 scope:local +fn_1_6E90 = .text:0x00006E90; // type:function size:0x60 scope:local fn_1_6EF0 = .text:0x00006EF0; // type:function size:0x90 fn_1_6F80 = .text:0x00006F80; // type:function size:0x290 fn_1_7210 = .text:0x00007210; // type:function size:0x94 @@ -121,90 +121,90 @@ fn_1_CC90 = .text:0x0000CC90; // type:function size:0x7C fn_1_CD0C = .text:0x0000CD0C; // type:function size:0x398 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:4byte -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:4byte -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x2 data:byte -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x3 data:byte -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x6 data:2byte -lbl_1_rodata_9A = .rodata:0x0000009A; // type:object size:0x3 data:byte -lbl_1_rodata_9E = .rodata:0x0000009E; // type:object size:0x6 data:2byte -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x5 -lbl_1_rodata_F5 = .rodata:0x000000F5; // type:object size:0x7 -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0xC data:4byte -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 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 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local 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 scope:local 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 scope:local 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 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local 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 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x2 scope:local data:byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x3 scope:local data:byte +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x6 scope:local data:2byte +lbl_1_rodata_9A = .rodata:0x0000009A; // type:object size:0x3 scope:local data:byte +lbl_1_rodata_9E = .rodata:0x0000009E; // type:object size:0x6 scope:local data:2byte +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local 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 scope:local 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 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local 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:0x5 scope:local data:byte +lbl_1_rodata_F5 = .rodata:0x000000F5; // type:object size:0x7 scope:local data:byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local 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 scope:local 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 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local 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:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local 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:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local 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:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:float lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float @@ -268,26 +268,26 @@ lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0xF0 -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 data:2byte -lbl_1_data_F2 = .data:0x000000F2; // type:object size:0x2 data:2byte -lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x2 data:2byte -lbl_1_data_F6 = .data:0x000000F6; // type:object size:0x2 data:2byte -lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x8 -lbl_1_data_100 = .data:0x00000100; // type:object size:0x8 -lbl_1_data_108 = .data:0x00000108; // type:object size:0xA0 -lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x2 data:2byte -lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x1 data:byte -lbl_1_data_1AD = .data:0x000001AD; // type:object size:0x3 -lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2 data:2byte -lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0xC -lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x5 data:string -lbl_1_data_1C5 = .data:0x000001C5; // type:object size:0xE -lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x2 data:2byte -lbl_1_data_1DA = .data:0x000001DA; // type:object size:0x2 data:2byte -lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x2 data:2byte -lbl_1_data_1DE = .data:0x000001DE; // type:object size:0x6 -lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x20 +lbl_1_data_0 = .data:0x00000000; // type:object size:0xF0 scope:local +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 scope:local data:2byte +lbl_1_data_F2 = .data:0x000000F2; // type:object size:0x2 scope:local data:2byte +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x2 scope:local data:2byte +lbl_1_data_F6 = .data:0x000000F6; // type:object size:0x2 scope:local data:2byte +lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x8 scope:local +lbl_1_data_100 = .data:0x00000100; // type:object size:0x8 scope:local +lbl_1_data_108 = .data:0x00000108; // type:object size:0xA0 scope:local +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x2 scope:local data:2byte +lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x3 scope:local data:byte +lbl_1_data_1AD = .data:0x000001AD; // type:object size:0x3 scope:local +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2 scope:local data:2byte +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0xC scope:local +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x5 scope:local data:string +lbl_1_data_1C5 = .data:0x000001C5; // type:object size:0xE scope:local data:byte +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x2 scope:local data:2byte +lbl_1_data_1DA = .data:0x000001DA; // type:object size:0x2 scope:local data:2byte +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x2 scope:local data:2byte +lbl_1_data_1DE = .data:0x000001DE; // type:object size:0x3 scope:local data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x20 scope:local lbl_1_data_208 = .data:0x00000208; // type:object size:0x20 lbl_1_data_228 = .data:0x00000228; // type:object size:0x1 data:byte lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 data:2byte @@ -333,29 +333,29 @@ lbl_1_data_510 = .data:0x00000510; // type:object size:0x20 lbl_1_data_530 = .data:0x00000530; // type:object size:0x6 data:string lbl_1_data_536 = .data:0x00000536; // type:object size:0xB data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:2byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 data:byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x1 data:byte -lbl_1_bss_33 = .bss:0x00000033; // type:object size:0x1 data:byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte -lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x6 -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x6 data:2byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x1 data:byte -lbl_1_bss_59 = .bss:0x00000059; // type:object size:0x1 data:byte -lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x1 data:byte -lbl_1_bss_5B = .bss:0x0000005B; // type:object size:0x31 -lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 scope:local data:byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x3 scope:local data:byte +lbl_1_bss_33 = .bss:0x00000033; // type:object size:0x1 scope:local data:byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x6 scope:local +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x6 scope:local data:2byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x1 scope:local data:byte +lbl_1_bss_59 = .bss:0x00000059; // type:object size:0x1 scope:local data:byte +lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x1 scope:local data:byte +lbl_1_bss_5B = .bss:0x0000005B; // type:object size:0x31 scope:local +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 scope:local data:4byte lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x28 data:4byte lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte diff --git a/config/GMPE01_00/rels/w10Dll/symbols.txt b/config/GMPE01_00/rels/w10Dll/symbols.txt index 896a61e1..516c32af 100644 --- a/config/GMPE01_00/rels/w10Dll/symbols.txt +++ b/config/GMPE01_00/rels/w10Dll/symbols.txt @@ -84,14 +84,14 @@ lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:f lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x28 data:float +mapObjTbl = .data:0x00000000; // type:object size:0x28 scope:local data:float bgMdl = .data:0x00000028; // type:object size:0x2 scope:local data:2byte fgMdl = .data:0x0000002A; // type:object size:0x2 scope:local data:2byte boardStarHostMdl = .data:0x0000002C; // type:object size:0x2 data:2byte boardShopHostMdl = .data:0x0000002E; // type:object size:0x2 data:2byte boardLotteryHostMdl = .data:0x00000030; // type:object size:0x2 data:2byte boardBooHouseHostMdl = .data:0x00000032; // type:object size:0x2 data:2byte -lbl_1_data_34 = .data:0x00000034; // type:object size:0x20 data:4byte +charMotDirTbl = .data:0x00000034; // type:object size:0x20 scope:local data:4byte starHostMot = .data:0x00000054; // type:object size:0x8 scope:local shopHostMot = .data:0x0000005C; // type:object size:0x8 scope:local lotteryHostMot = .data:0x00000064; // type:object size:0x8 scope:local @@ -105,10 +105,10 @@ lbl_1_data_258 = .data:0x00000258; // type:object size:0x50 scope:local data:str tutorialSprTbl = .data:0x000002A8; // type:object size:0x2C scope:local boardWork = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +motTbl = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte tutorialDoneF = .bss:0x0000000C; // type:object size:0x2 data:2byte -w10ExitWin = .bss:0x0000000E; // type:object size:0x2 data:2byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:2byte +tutorialExitWin = .bss:0x0000000E; // type:object size:0x2 data:2byte +boardMapObjMdl = .bss:0x00000010; // type:object size:0x2 data:2byte hostProc = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte hostPos = .bss:0x0000001C; // type:object size:0x2 scope:local data:2byte hostMdl = .bss:0x0000001E; // type:object size:0x2 scope:local data:2byte diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index cf031b1b..76969889 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -3580,1023 +3580,7 @@ msmStreamDvdCallback = .text:0x8011C304; // type:function size:0x4A8 scope:local msmStreamDvdCallback2 = .text:0x8011C7AC; // type:function size:0x188 scope:local msmStreamUpdateFunc = .text:0x8011C934; // type:function size:0x17C scope:local msmStreamSlotInit = .text:0x8011CAB0; // type:function size:0x214 scope:local -fn_8011CCC4 = .text:0x8011CCC4; // type:function size:0x4 -fn_8011CCC8 = .text:0x8011CCC8; // type:function size:0x4 -fn_8011CCCC = .text:0x8011CCCC; // type:function size:0x4 -fn_8011CCD0 = .text:0x8011CCD0; // type:function size:0x4 -fn_8011CCD4 = .text:0x8011CCD4; // type:function size:0x4 -fn_8011CCD8 = .text:0x8011CCD8; // type:function size:0x4 -fn_8011CCDC = .text:0x8011CCDC; // type:function size:0x4 -fn_8011CCE0 = .text:0x8011CCE0; // type:function size:0x4 -fn_8011CCE4 = .text:0x8011CCE4; // type:function size:0x4 -fn_8011CCE8 = .text:0x8011CCE8; // type:function size:0x4 -fn_8011CCEC = .text:0x8011CCEC; // type:function size:0x4 -fn_8011CCF0 = .text:0x8011CCF0; // type:function size:0x4 -fn_8011CCF4 = .text:0x8011CCF4; // type:function size:0x4 -fn_8011CCF8 = .text:0x8011CCF8; // type:function size:0x4 -fn_8011CCFC = .text:0x8011CCFC; // type:function size:0x4 -fn_8011CD00 = .text:0x8011CD00; // type:function size:0x4 -fn_8011CD04 = .text:0x8011CD04; // type:function size:0x4 -fn_8011CD08 = .text:0x8011CD08; // type:function size:0x4 -fn_8011CD0C = .text:0x8011CD0C; // type:function size:0x4 -fn_8011CD10 = .text:0x8011CD10; // type:function size:0x4 -fn_8011CD14 = .text:0x8011CD14; // type:function size:0x4 -fn_8011CD18 = .text:0x8011CD18; // type:function size:0x4 -fn_8011CD1C = .text:0x8011CD1C; // type:function size:0x4 -fn_8011CD20 = .text:0x8011CD20; // type:function size:0x4 -fn_8011CD24 = .text:0x8011CD24; // type:function size:0x4 -fn_8011CD28 = .text:0x8011CD28; // type:function size:0x4 -fn_8011CD2C = .text:0x8011CD2C; // type:function size:0x4 -fn_8011CD30 = .text:0x8011CD30; // type:function size:0x4 -fn_8011CD34 = .text:0x8011CD34; // type:function size:0x4 -fn_8011CD38 = .text:0x8011CD38; // type:function size:0x4 -fn_8011CD3C = .text:0x8011CD3C; // type:function size:0x4 -fn_8011CD40 = .text:0x8011CD40; // type:function size:0x4 -fn_8011CD44 = .text:0x8011CD44; // type:function size:0x4 -fn_8011CD48 = .text:0x8011CD48; // type:function size:0x4 -fn_8011CD4C = .text:0x8011CD4C; // type:function size:0x4 -fn_8011CD50 = .text:0x8011CD50; // type:function size:0x4 -fn_8011CD54 = .text:0x8011CD54; // type:function size:0x4 -fn_8011CD58 = .text:0x8011CD58; // type:function size:0x4 -fn_8011CD5C = .text:0x8011CD5C; // type:function size:0x4 -fn_8011CD60 = .text:0x8011CD60; // type:function size:0x4 -fn_8011CD64 = .text:0x8011CD64; // type:function size:0x4 -fn_8011CD68 = .text:0x8011CD68; // type:function size:0x4 -fn_8011CD6C = .text:0x8011CD6C; // type:function size:0x4 -fn_8011CD70 = .text:0x8011CD70; // type:function size:0x4 -fn_8011CD74 = .text:0x8011CD74; // type:function size:0x4 -fn_8011CD78 = .text:0x8011CD78; // type:function size:0x4 -fn_8011CD7C = .text:0x8011CD7C; // type:function size:0x4 -fn_8011CD80 = .text:0x8011CD80; // type:function size:0x4 -fn_8011CD84 = .text:0x8011CD84; // type:function size:0x4 -fn_8011CD88 = .text:0x8011CD88; // type:function size:0x4 -fn_8011CD8C = .text:0x8011CD8C; // type:function size:0x4 -fn_8011CD90 = .text:0x8011CD90; // type:function size:0x4 -fn_8011CD94 = .text:0x8011CD94; // type:function size:0x4 -fn_8011CD98 = .text:0x8011CD98; // type:function size:0x4 -fn_8011CD9C = .text:0x8011CD9C; // type:function size:0x4 -fn_8011CDA0 = .text:0x8011CDA0; // type:function size:0x4 -fn_8011CDA4 = .text:0x8011CDA4; // type:function size:0x4 -fn_8011CDA8 = .text:0x8011CDA8; // type:function size:0x4 -fn_8011CDAC = .text:0x8011CDAC; // type:function size:0x4 -fn_8011CDB0 = .text:0x8011CDB0; // type:function size:0x4 -fn_8011CDB4 = .text:0x8011CDB4; // type:function size:0x4 -fn_8011CDB8 = .text:0x8011CDB8; // type:function size:0x4 -fn_8011CDBC = .text:0x8011CDBC; // type:function size:0x4 -fn_8011CDC0 = .text:0x8011CDC0; // type:function size:0x4 -fn_8011CDC4 = .text:0x8011CDC4; // type:function size:0x4 -fn_8011CDC8 = .text:0x8011CDC8; // type:function size:0x4 -fn_8011CDCC = .text:0x8011CDCC; // type:function size:0x4 -fn_8011CDD0 = .text:0x8011CDD0; // type:function size:0x4 -fn_8011CDD4 = .text:0x8011CDD4; // type:function size:0x4 -fn_8011CDD8 = .text:0x8011CDD8; // type:function size:0x4 -fn_8011CDDC = .text:0x8011CDDC; // type:function size:0x4 -fn_8011CDE0 = .text:0x8011CDE0; // type:function size:0x4 -fn_8011CDE4 = .text:0x8011CDE4; // type:function size:0x4 -fn_8011CDE8 = .text:0x8011CDE8; // type:function size:0x4 -fn_8011CDEC = .text:0x8011CDEC; // type:function size:0x4 -fn_8011CDF0 = .text:0x8011CDF0; // type:function size:0x4 -fn_8011CDF4 = .text:0x8011CDF4; // type:function size:0x4 -fn_8011CDF8 = .text:0x8011CDF8; // type:function size:0x4 -fn_8011CDFC = .text:0x8011CDFC; // type:function size:0x4 -fn_8011CE00 = .text:0x8011CE00; // type:function size:0x4 -fn_8011CE04 = .text:0x8011CE04; // type:function size:0x4 -fn_8011CE08 = .text:0x8011CE08; // type:function size:0x4 -fn_8011CE0C = .text:0x8011CE0C; // type:function size:0x4 -fn_8011CE10 = .text:0x8011CE10; // type:function size:0x4 -fn_8011CE14 = .text:0x8011CE14; // type:function size:0x4 -fn_8011CE18 = .text:0x8011CE18; // type:function size:0x4 -fn_8011CE1C = .text:0x8011CE1C; // type:function size:0x4 -fn_8011CE20 = .text:0x8011CE20; // type:function size:0x4 -fn_8011CE24 = .text:0x8011CE24; // type:function size:0x4 -fn_8011CE28 = .text:0x8011CE28; // type:function size:0x4 -fn_8011CE2C = .text:0x8011CE2C; // type:function size:0x4 -fn_8011CE30 = .text:0x8011CE30; // type:function size:0x4 -fn_8011CE34 = .text:0x8011CE34; // type:function size:0x4 -fn_8011CE38 = .text:0x8011CE38; // type:function size:0x4 -fn_8011CE3C = .text:0x8011CE3C; // type:function size:0x4 -fn_8011CE40 = .text:0x8011CE40; // type:function size:0x4 -fn_8011CE44 = .text:0x8011CE44; // type:function size:0x4 -fn_8011CE48 = .text:0x8011CE48; // type:function size:0x4 -fn_8011CE4C = .text:0x8011CE4C; // type:function size:0x4 -fn_8011CE50 = .text:0x8011CE50; // type:function size:0x4 -fn_8011CE54 = .text:0x8011CE54; // type:function size:0x4 -fn_8011CE58 = .text:0x8011CE58; // type:function size:0x4 -fn_8011CE5C = .text:0x8011CE5C; // type:function size:0x4 -fn_8011CE60 = .text:0x8011CE60; // type:function size:0x4 -fn_8011CE64 = .text:0x8011CE64; // type:function size:0x4 -fn_8011CE68 = .text:0x8011CE68; // type:function size:0x4 -fn_8011CE6C = .text:0x8011CE6C; // type:function size:0x4 -fn_8011CE70 = .text:0x8011CE70; // type:function size:0x4 -fn_8011CE74 = .text:0x8011CE74; // type:function size:0x4 -fn_8011CE78 = .text:0x8011CE78; // type:function size:0x4 -fn_8011CE7C = .text:0x8011CE7C; // type:function size:0x4 -fn_8011CE80 = .text:0x8011CE80; // type:function size:0x4 -fn_8011CE84 = .text:0x8011CE84; // type:function size:0x4 -fn_8011CE88 = .text:0x8011CE88; // type:function size:0x4 -fn_8011CE8C = .text:0x8011CE8C; // type:function size:0x4 -fn_8011CE90 = .text:0x8011CE90; // type:function size:0x4 -fn_8011CE94 = .text:0x8011CE94; // type:function size:0x4 -fn_8011CE98 = .text:0x8011CE98; // type:function size:0x4 -fn_8011CE9C = .text:0x8011CE9C; // type:function size:0x4 -fn_8011CEA0 = .text:0x8011CEA0; // type:function size:0x4 -fn_8011CEA4 = .text:0x8011CEA4; // type:function size:0x4 -fn_8011CEA8 = .text:0x8011CEA8; // type:function size:0x4 -fn_8011CEAC = .text:0x8011CEAC; // type:function size:0x4 -fn_8011CEB0 = .text:0x8011CEB0; // type:function size:0x4 -fn_8011CEB4 = .text:0x8011CEB4; // type:function size:0x4 -fn_8011CEB8 = .text:0x8011CEB8; // type:function size:0x4 -fn_8011CEBC = .text:0x8011CEBC; // type:function size:0x4 -fn_8011CEC0 = .text:0x8011CEC0; // type:function size:0x4 -fn_8011CEC4 = .text:0x8011CEC4; // type:function size:0x4 -fn_8011CEC8 = .text:0x8011CEC8; // type:function size:0x4 -fn_8011CECC = .text:0x8011CECC; // type:function size:0x4 -fn_8011CED0 = .text:0x8011CED0; // type:function size:0x4 -fn_8011CED4 = .text:0x8011CED4; // type:function size:0x4 -fn_8011CED8 = .text:0x8011CED8; // type:function size:0x4 -fn_8011CEDC = .text:0x8011CEDC; // type:function size:0x4 -fn_8011CEE0 = .text:0x8011CEE0; // type:function size:0x4 -fn_8011CEE4 = .text:0x8011CEE4; // type:function size:0x4 -fn_8011CEE8 = .text:0x8011CEE8; // type:function size:0x4 -fn_8011CEEC = .text:0x8011CEEC; // type:function size:0x4 -fn_8011CEF0 = .text:0x8011CEF0; // type:function size:0x4 -fn_8011CEF4 = .text:0x8011CEF4; // type:function size:0x4 -fn_8011CEF8 = .text:0x8011CEF8; // type:function size:0x4 -fn_8011CEFC = .text:0x8011CEFC; // type:function size:0x4 -fn_8011CF00 = .text:0x8011CF00; // type:function size:0x4 -fn_8011CF04 = .text:0x8011CF04; // type:function size:0x4 -fn_8011CF08 = .text:0x8011CF08; // type:function size:0x4 -fn_8011CF0C = .text:0x8011CF0C; // type:function size:0x4 -fn_8011CF10 = .text:0x8011CF10; // type:function size:0x4 -fn_8011CF14 = .text:0x8011CF14; // type:function size:0x4 -fn_8011CF18 = .text:0x8011CF18; // type:function size:0x4 -fn_8011CF1C = .text:0x8011CF1C; // type:function size:0x4 -fn_8011CF20 = .text:0x8011CF20; // type:function size:0x4 -fn_8011CF24 = .text:0x8011CF24; // type:function size:0x4 -fn_8011CF28 = .text:0x8011CF28; // type:function size:0x4 -fn_8011CF2C = .text:0x8011CF2C; // type:function size:0x4 -fn_8011CF30 = .text:0x8011CF30; // type:function size:0x4 -fn_8011CF34 = .text:0x8011CF34; // type:function size:0x4 -fn_8011CF38 = .text:0x8011CF38; // type:function size:0x4 -fn_8011CF3C = .text:0x8011CF3C; // type:function size:0x4 -fn_8011CF40 = .text:0x8011CF40; // type:function size:0x4 -fn_8011CF44 = .text:0x8011CF44; // type:function size:0x4 -fn_8011CF48 = .text:0x8011CF48; // type:function size:0x4 -fn_8011CF4C = .text:0x8011CF4C; // type:function size:0x4 -fn_8011CF50 = .text:0x8011CF50; // type:function size:0x4 -fn_8011CF54 = .text:0x8011CF54; // type:function size:0x4 -fn_8011CF58 = .text:0x8011CF58; // type:function size:0x4 -fn_8011CF5C = .text:0x8011CF5C; // type:function size:0x4 -fn_8011CF60 = .text:0x8011CF60; // type:function size:0x4 -fn_8011CF64 = .text:0x8011CF64; // type:function size:0x4 -fn_8011CF68 = .text:0x8011CF68; // type:function size:0x4 -fn_8011CF6C = .text:0x8011CF6C; // type:function size:0x4 -fn_8011CF70 = .text:0x8011CF70; // type:function size:0x4 -fn_8011CF74 = .text:0x8011CF74; // type:function size:0x4 -fn_8011CF78 = .text:0x8011CF78; // type:function size:0x4 -fn_8011CF7C = .text:0x8011CF7C; // type:function size:0x4 -fn_8011CF80 = .text:0x8011CF80; // type:function size:0x4 -fn_8011CF84 = .text:0x8011CF84; // type:function size:0x4 -fn_8011CF88 = .text:0x8011CF88; // type:function size:0x4 -fn_8011CF8C = .text:0x8011CF8C; // type:function size:0x4 -fn_8011CF90 = .text:0x8011CF90; // type:function size:0x4 -fn_8011CF94 = .text:0x8011CF94; // type:function size:0x4 -fn_8011CF98 = .text:0x8011CF98; // type:function size:0x4 -fn_8011CF9C = .text:0x8011CF9C; // type:function size:0x4 -fn_8011CFA0 = .text:0x8011CFA0; // type:function size:0x4 -fn_8011CFA4 = .text:0x8011CFA4; // type:function size:0x4 -fn_8011CFA8 = .text:0x8011CFA8; // type:function size:0x4 -fn_8011CFAC = .text:0x8011CFAC; // type:function size:0x4 -fn_8011CFB0 = .text:0x8011CFB0; // type:function size:0x4 -fn_8011CFB4 = .text:0x8011CFB4; // type:function size:0x4 -fn_8011CFB8 = .text:0x8011CFB8; // type:function size:0x4 -fn_8011CFBC = .text:0x8011CFBC; // type:function size:0x4 -fn_8011CFC0 = .text:0x8011CFC0; // type:function size:0x4 -fn_8011CFC4 = .text:0x8011CFC4; // type:function size:0x4 -fn_8011CFC8 = .text:0x8011CFC8; // type:function size:0x4 -fn_8011CFCC = .text:0x8011CFCC; // type:function size:0x4 -fn_8011CFD0 = .text:0x8011CFD0; // type:function size:0x4 -fn_8011CFD4 = .text:0x8011CFD4; // type:function size:0x4 -fn_8011CFD8 = .text:0x8011CFD8; // type:function size:0x4 -fn_8011CFDC = .text:0x8011CFDC; // type:function size:0x4 -fn_8011CFE0 = .text:0x8011CFE0; // type:function size:0x4 -fn_8011CFE4 = .text:0x8011CFE4; // type:function size:0x4 -fn_8011CFE8 = .text:0x8011CFE8; // type:function size:0x4 -fn_8011CFEC = .text:0x8011CFEC; // type:function size:0x4 -fn_8011CFF0 = .text:0x8011CFF0; // type:function size:0x4 -fn_8011CFF4 = .text:0x8011CFF4; // type:function size:0x4 -fn_8011CFF8 = .text:0x8011CFF8; // type:function size:0x4 -fn_8011CFFC = .text:0x8011CFFC; // type:function size:0x4 -fn_8011D000 = .text:0x8011D000; // type:function size:0x4 -fn_8011D004 = .text:0x8011D004; // type:function size:0x4 -fn_8011D008 = .text:0x8011D008; // type:function size:0x4 -fn_8011D00C = .text:0x8011D00C; // type:function size:0x4 -fn_8011D010 = .text:0x8011D010; // type:function size:0x4 -fn_8011D014 = .text:0x8011D014; // type:function size:0x4 -fn_8011D018 = .text:0x8011D018; // type:function size:0x4 -fn_8011D01C = .text:0x8011D01C; // type:function size:0x4 -fn_8011D020 = .text:0x8011D020; // type:function size:0x4 -fn_8011D024 = .text:0x8011D024; // type:function size:0x4 -fn_8011D028 = .text:0x8011D028; // type:function size:0x4 -fn_8011D02C = .text:0x8011D02C; // type:function size:0x4 -fn_8011D030 = .text:0x8011D030; // type:function size:0x4 -fn_8011D034 = .text:0x8011D034; // type:function size:0x4 -fn_8011D038 = .text:0x8011D038; // type:function size:0x4 -fn_8011D03C = .text:0x8011D03C; // type:function size:0x4 -fn_8011D040 = .text:0x8011D040; // type:function size:0x4 -fn_8011D044 = .text:0x8011D044; // type:function size:0x4 -fn_8011D048 = .text:0x8011D048; // type:function size:0x4 -fn_8011D04C = .text:0x8011D04C; // type:function size:0x4 -fn_8011D050 = .text:0x8011D050; // type:function size:0x4 -fn_8011D054 = .text:0x8011D054; // type:function size:0x4 -fn_8011D058 = .text:0x8011D058; // type:function size:0x4 -fn_8011D05C = .text:0x8011D05C; // type:function size:0x4 -fn_8011D060 = .text:0x8011D060; // type:function size:0x4 -fn_8011D064 = .text:0x8011D064; // type:function size:0x4 -fn_8011D068 = .text:0x8011D068; // type:function size:0x4 -fn_8011D06C = .text:0x8011D06C; // type:function size:0x4 -fn_8011D070 = .text:0x8011D070; // type:function size:0x4 -fn_8011D074 = .text:0x8011D074; // type:function size:0x4 -fn_8011D078 = .text:0x8011D078; // type:function size:0x4 -fn_8011D07C = .text:0x8011D07C; // type:function size:0x4 -fn_8011D080 = .text:0x8011D080; // type:function size:0x4 -fn_8011D084 = .text:0x8011D084; // type:function size:0x4 -fn_8011D088 = .text:0x8011D088; // type:function size:0x4 -fn_8011D08C = .text:0x8011D08C; // type:function size:0x4 -fn_8011D090 = .text:0x8011D090; // type:function size:0x4 -fn_8011D094 = .text:0x8011D094; // type:function size:0x4 -fn_8011D098 = .text:0x8011D098; // type:function size:0x4 -fn_8011D09C = .text:0x8011D09C; // type:function size:0x4 -fn_8011D0A0 = .text:0x8011D0A0; // type:function size:0x4 -fn_8011D0A4 = .text:0x8011D0A4; // type:function size:0x4 -fn_8011D0A8 = .text:0x8011D0A8; // type:function size:0x4 -fn_8011D0AC = .text:0x8011D0AC; // type:function size:0x4 -fn_8011D0B0 = .text:0x8011D0B0; // type:function size:0x4 -fn_8011D0B4 = .text:0x8011D0B4; // type:function size:0x4 -fn_8011D0B8 = .text:0x8011D0B8; // type:function size:0x4 -fn_8011D0BC = .text:0x8011D0BC; // type:function size:0x4 -fn_8011D0C0 = .text:0x8011D0C0; // type:function size:0x4 -fn_8011D0C4 = .text:0x8011D0C4; // type:function size:0x4 -fn_8011D0C8 = .text:0x8011D0C8; // type:function size:0x4 -fn_8011D0CC = .text:0x8011D0CC; // type:function size:0x4 -fn_8011D0D0 = .text:0x8011D0D0; // type:function size:0x4 -fn_8011D0D4 = .text:0x8011D0D4; // type:function size:0x4 -fn_8011D0D8 = .text:0x8011D0D8; // type:function size:0x4 -fn_8011D0DC = .text:0x8011D0DC; // type:function size:0x4 -fn_8011D0E0 = .text:0x8011D0E0; // type:function size:0x4 -fn_8011D0E4 = .text:0x8011D0E4; // type:function size:0x4 -fn_8011D0E8 = .text:0x8011D0E8; // type:function size:0x4 -fn_8011D0EC = .text:0x8011D0EC; // type:function size:0x4 -fn_8011D0F0 = .text:0x8011D0F0; // type:function size:0x4 -fn_8011D0F4 = .text:0x8011D0F4; // type:function size:0x4 -fn_8011D0F8 = .text:0x8011D0F8; // type:function size:0x4 -fn_8011D0FC = .text:0x8011D0FC; // type:function size:0x4 -fn_8011D100 = .text:0x8011D100; // type:function size:0x4 -fn_8011D104 = .text:0x8011D104; // type:function size:0x4 -fn_8011D108 = .text:0x8011D108; // type:function size:0x4 -fn_8011D10C = .text:0x8011D10C; // type:function size:0x4 -fn_8011D110 = .text:0x8011D110; // type:function size:0x4 -fn_8011D114 = .text:0x8011D114; // type:function size:0x4 -fn_8011D118 = .text:0x8011D118; // type:function size:0x4 -fn_8011D11C = .text:0x8011D11C; // type:function size:0x4 -fn_8011D120 = .text:0x8011D120; // type:function size:0x4 -fn_8011D124 = .text:0x8011D124; // type:function size:0x4 -fn_8011D128 = .text:0x8011D128; // type:function size:0x4 -fn_8011D12C = .text:0x8011D12C; // type:function size:0x4 -fn_8011D130 = .text:0x8011D130; // type:function size:0x4 -fn_8011D134 = .text:0x8011D134; // type:function size:0x4 -fn_8011D138 = .text:0x8011D138; // type:function size:0x4 -fn_8011D13C = .text:0x8011D13C; // type:function size:0x4 -fn_8011D140 = .text:0x8011D140; // type:function size:0x4 -fn_8011D144 = .text:0x8011D144; // type:function size:0x4 -fn_8011D148 = .text:0x8011D148; // type:function size:0x4 -fn_8011D14C = .text:0x8011D14C; // type:function size:0x4 -fn_8011D150 = .text:0x8011D150; // type:function size:0x4 -fn_8011D154 = .text:0x8011D154; // type:function size:0x4 -fn_8011D158 = .text:0x8011D158; // type:function size:0x4 -fn_8011D15C = .text:0x8011D15C; // type:function size:0x4 -fn_8011D160 = .text:0x8011D160; // type:function size:0x4 -fn_8011D164 = .text:0x8011D164; // type:function size:0x4 -fn_8011D168 = .text:0x8011D168; // type:function size:0x4 -fn_8011D16C = .text:0x8011D16C; // type:function size:0x4 -fn_8011D170 = .text:0x8011D170; // type:function size:0x4 -fn_8011D174 = .text:0x8011D174; // type:function size:0x4 -fn_8011D178 = .text:0x8011D178; // type:function size:0x4 -fn_8011D17C = .text:0x8011D17C; // type:function size:0x4 -fn_8011D180 = .text:0x8011D180; // type:function size:0x4 -fn_8011D184 = .text:0x8011D184; // type:function size:0x4 -fn_8011D188 = .text:0x8011D188; // type:function size:0x4 -fn_8011D18C = .text:0x8011D18C; // type:function size:0x4 -fn_8011D190 = .text:0x8011D190; // type:function size:0x4 -fn_8011D194 = .text:0x8011D194; // type:function size:0x4 -fn_8011D198 = .text:0x8011D198; // type:function size:0x4 -fn_8011D19C = .text:0x8011D19C; // type:function size:0x4 -fn_8011D1A0 = .text:0x8011D1A0; // type:function size:0x4 -fn_8011D1A4 = .text:0x8011D1A4; // type:function size:0x4 -fn_8011D1A8 = .text:0x8011D1A8; // type:function size:0x4 -fn_8011D1AC = .text:0x8011D1AC; // type:function size:0x4 -fn_8011D1B0 = .text:0x8011D1B0; // type:function size:0x4 -fn_8011D1B4 = .text:0x8011D1B4; // type:function size:0x4 -fn_8011D1B8 = .text:0x8011D1B8; // type:function size:0x4 -fn_8011D1BC = .text:0x8011D1BC; // type:function size:0x4 -fn_8011D1C0 = .text:0x8011D1C0; // type:function size:0x4 -fn_8011D1C4 = .text:0x8011D1C4; // type:function size:0x4 -fn_8011D1C8 = .text:0x8011D1C8; // type:function size:0x4 -fn_8011D1CC = .text:0x8011D1CC; // type:function size:0x4 -fn_8011D1D0 = .text:0x8011D1D0; // type:function size:0x4 -fn_8011D1D4 = .text:0x8011D1D4; // type:function size:0x4 -fn_8011D1D8 = .text:0x8011D1D8; // type:function size:0x4 -fn_8011D1DC = .text:0x8011D1DC; // type:function size:0x4 -fn_8011D1E0 = .text:0x8011D1E0; // type:function size:0x4 -fn_8011D1E4 = .text:0x8011D1E4; // type:function size:0x4 -fn_8011D1E8 = .text:0x8011D1E8; // type:function size:0x4 -fn_8011D1EC = .text:0x8011D1EC; // type:function size:0x4 -fn_8011D1F0 = .text:0x8011D1F0; // type:function size:0x4 -fn_8011D1F4 = .text:0x8011D1F4; // type:function size:0x4 -fn_8011D1F8 = .text:0x8011D1F8; // type:function size:0x4 -fn_8011D1FC = .text:0x8011D1FC; // type:function size:0x4 -fn_8011D200 = .text:0x8011D200; // type:function size:0x4 -fn_8011D204 = .text:0x8011D204; // type:function size:0x4 -fn_8011D208 = .text:0x8011D208; // type:function size:0x4 -fn_8011D20C = .text:0x8011D20C; // type:function size:0x4 -fn_8011D210 = .text:0x8011D210; // type:function size:0x4 -fn_8011D214 = .text:0x8011D214; // type:function size:0x4 -fn_8011D218 = .text:0x8011D218; // type:function size:0x4 -fn_8011D21C = .text:0x8011D21C; // type:function size:0x4 -fn_8011D220 = .text:0x8011D220; // type:function size:0x4 -fn_8011D224 = .text:0x8011D224; // type:function size:0x4 -fn_8011D228 = .text:0x8011D228; // type:function size:0x4 -fn_8011D22C = .text:0x8011D22C; // type:function size:0x4 -fn_8011D230 = .text:0x8011D230; // type:function size:0x4 -fn_8011D234 = .text:0x8011D234; // type:function size:0x4 -fn_8011D238 = .text:0x8011D238; // type:function size:0x4 -fn_8011D23C = .text:0x8011D23C; // type:function size:0x4 -fn_8011D240 = .text:0x8011D240; // type:function size:0x4 -fn_8011D244 = .text:0x8011D244; // type:function size:0x4 -fn_8011D248 = .text:0x8011D248; // type:function size:0x4 -fn_8011D24C = .text:0x8011D24C; // type:function size:0x4 -fn_8011D250 = .text:0x8011D250; // type:function size:0x4 -fn_8011D254 = .text:0x8011D254; // type:function size:0x4 -fn_8011D258 = .text:0x8011D258; // type:function size:0x4 -fn_8011D25C = .text:0x8011D25C; // type:function size:0x4 -fn_8011D260 = .text:0x8011D260; // type:function size:0x4 -fn_8011D264 = .text:0x8011D264; // type:function size:0x4 -fn_8011D268 = .text:0x8011D268; // type:function size:0x4 -fn_8011D26C = .text:0x8011D26C; // type:function size:0x4 -fn_8011D270 = .text:0x8011D270; // type:function size:0x4 -fn_8011D274 = .text:0x8011D274; // type:function size:0x4 -fn_8011D278 = .text:0x8011D278; // type:function size:0x4 -fn_8011D27C = .text:0x8011D27C; // type:function size:0x4 -fn_8011D280 = .text:0x8011D280; // type:function size:0x4 -fn_8011D284 = .text:0x8011D284; // type:function size:0x4 -fn_8011D288 = .text:0x8011D288; // type:function size:0x4 -fn_8011D28C = .text:0x8011D28C; // type:function size:0x4 -fn_8011D290 = .text:0x8011D290; // type:function size:0x4 -fn_8011D294 = .text:0x8011D294; // type:function size:0x4 -fn_8011D298 = .text:0x8011D298; // type:function size:0x4 -fn_8011D29C = .text:0x8011D29C; // type:function size:0x4 -fn_8011D2A0 = .text:0x8011D2A0; // type:function size:0x4 -fn_8011D2A4 = .text:0x8011D2A4; // type:function size:0x4 -fn_8011D2A8 = .text:0x8011D2A8; // type:function size:0x4 -fn_8011D2AC = .text:0x8011D2AC; // type:function size:0x4 -fn_8011D2B0 = .text:0x8011D2B0; // type:function size:0x4 -fn_8011D2B4 = .text:0x8011D2B4; // type:function size:0x4 -fn_8011D2B8 = .text:0x8011D2B8; // type:function size:0x4 -fn_8011D2BC = .text:0x8011D2BC; // type:function size:0x4 -fn_8011D2C0 = .text:0x8011D2C0; // type:function size:0x4 -fn_8011D2C4 = .text:0x8011D2C4; // type:function size:0x4 -fn_8011D2C8 = .text:0x8011D2C8; // type:function size:0x4 -fn_8011D2CC = .text:0x8011D2CC; // type:function size:0x4 -fn_8011D2D0 = .text:0x8011D2D0; // type:function size:0x4 -fn_8011D2D4 = .text:0x8011D2D4; // type:function size:0x4 -fn_8011D2D8 = .text:0x8011D2D8; // type:function size:0x4 -fn_8011D2DC = .text:0x8011D2DC; // type:function size:0x4 -fn_8011D2E0 = .text:0x8011D2E0; // type:function size:0x4 -fn_8011D2E4 = .text:0x8011D2E4; // type:function size:0x4 -fn_8011D2E8 = .text:0x8011D2E8; // type:function size:0x4 -fn_8011D2EC = .text:0x8011D2EC; // type:function size:0x4 -fn_8011D2F0 = .text:0x8011D2F0; // type:function size:0x4 -fn_8011D2F4 = .text:0x8011D2F4; // type:function size:0x4 -fn_8011D2F8 = .text:0x8011D2F8; // type:function size:0x4 -fn_8011D2FC = .text:0x8011D2FC; // type:function size:0x4 -fn_8011D300 = .text:0x8011D300; // type:function size:0x4 -fn_8011D304 = .text:0x8011D304; // type:function size:0x4 -fn_8011D308 = .text:0x8011D308; // type:function size:0x4 -fn_8011D30C = .text:0x8011D30C; // type:function size:0x4 -fn_8011D310 = .text:0x8011D310; // type:function size:0x4 -fn_8011D314 = .text:0x8011D314; // type:function size:0x4 -fn_8011D318 = .text:0x8011D318; // type:function size:0x4 -fn_8011D31C = .text:0x8011D31C; // type:function size:0x4 -fn_8011D320 = .text:0x8011D320; // type:function size:0x4 -fn_8011D324 = .text:0x8011D324; // type:function size:0x4 -fn_8011D328 = .text:0x8011D328; // type:function size:0x4 -fn_8011D32C = .text:0x8011D32C; // type:function size:0x4 -fn_8011D330 = .text:0x8011D330; // type:function size:0x4 -fn_8011D334 = .text:0x8011D334; // type:function size:0x4 -fn_8011D338 = .text:0x8011D338; // type:function size:0x4 -fn_8011D33C = .text:0x8011D33C; // type:function size:0x4 -fn_8011D340 = .text:0x8011D340; // type:function size:0x4 -fn_8011D344 = .text:0x8011D344; // type:function size:0x4 -fn_8011D348 = .text:0x8011D348; // type:function size:0x4 -fn_8011D34C = .text:0x8011D34C; // type:function size:0x4 -fn_8011D350 = .text:0x8011D350; // type:function size:0x4 -fn_8011D354 = .text:0x8011D354; // type:function size:0x4 -fn_8011D358 = .text:0x8011D358; // type:function size:0x4 -fn_8011D35C = .text:0x8011D35C; // type:function size:0x4 -fn_8011D360 = .text:0x8011D360; // type:function size:0x4 -fn_8011D364 = .text:0x8011D364; // type:function size:0x4 -fn_8011D368 = .text:0x8011D368; // type:function size:0x4 -fn_8011D36C = .text:0x8011D36C; // type:function size:0x4 -fn_8011D370 = .text:0x8011D370; // type:function size:0x4 -fn_8011D374 = .text:0x8011D374; // type:function size:0x4 -fn_8011D378 = .text:0x8011D378; // type:function size:0x4 -fn_8011D37C = .text:0x8011D37C; // type:function size:0x4 -fn_8011D380 = .text:0x8011D380; // type:function size:0x4 -fn_8011D384 = .text:0x8011D384; // type:function size:0x4 -fn_8011D388 = .text:0x8011D388; // type:function size:0x4 -fn_8011D38C = .text:0x8011D38C; // type:function size:0x4 -fn_8011D390 = .text:0x8011D390; // type:function size:0x4 -fn_8011D394 = .text:0x8011D394; // type:function size:0x4 -fn_8011D398 = .text:0x8011D398; // type:function size:0x4 -fn_8011D39C = .text:0x8011D39C; // type:function size:0x4 -fn_8011D3A0 = .text:0x8011D3A0; // type:function size:0x4 -fn_8011D3A4 = .text:0x8011D3A4; // type:function size:0x4 -fn_8011D3A8 = .text:0x8011D3A8; // type:function size:0x4 -fn_8011D3AC = .text:0x8011D3AC; // type:function size:0x4 -fn_8011D3B0 = .text:0x8011D3B0; // type:function size:0x4 -fn_8011D3B4 = .text:0x8011D3B4; // type:function size:0x4 -fn_8011D3B8 = .text:0x8011D3B8; // type:function size:0x4 -fn_8011D3BC = .text:0x8011D3BC; // type:function size:0x4 -fn_8011D3C0 = .text:0x8011D3C0; // type:function size:0x4 -fn_8011D3C4 = .text:0x8011D3C4; // type:function size:0x4 -fn_8011D3C8 = .text:0x8011D3C8; // type:function size:0x4 -fn_8011D3CC = .text:0x8011D3CC; // type:function size:0x4 -fn_8011D3D0 = .text:0x8011D3D0; // type:function size:0x4 -fn_8011D3D4 = .text:0x8011D3D4; // type:function size:0x4 -fn_8011D3D8 = .text:0x8011D3D8; // type:function size:0x4 -fn_8011D3DC = .text:0x8011D3DC; // type:function size:0x4 -fn_8011D3E0 = .text:0x8011D3E0; // type:function size:0x4 -fn_8011D3E4 = .text:0x8011D3E4; // type:function size:0x4 -fn_8011D3E8 = .text:0x8011D3E8; // type:function size:0x4 -fn_8011D3EC = .text:0x8011D3EC; // type:function size:0x4 -fn_8011D3F0 = .text:0x8011D3F0; // type:function size:0x4 -fn_8011D3F4 = .text:0x8011D3F4; // type:function size:0x4 -fn_8011D3F8 = .text:0x8011D3F8; // type:function size:0x4 -fn_8011D3FC = .text:0x8011D3FC; // type:function size:0x4 -fn_8011D400 = .text:0x8011D400; // type:function size:0x4 -fn_8011D404 = .text:0x8011D404; // type:function size:0x4 -fn_8011D408 = .text:0x8011D408; // type:function size:0x4 -fn_8011D40C = .text:0x8011D40C; // type:function size:0x4 -fn_8011D410 = .text:0x8011D410; // type:function size:0x4 -fn_8011D414 = .text:0x8011D414; // type:function size:0x4 -fn_8011D418 = .text:0x8011D418; // type:function size:0x4 -fn_8011D41C = .text:0x8011D41C; // type:function size:0x4 -fn_8011D420 = .text:0x8011D420; // type:function size:0x4 -fn_8011D424 = .text:0x8011D424; // type:function size:0x4 -fn_8011D428 = .text:0x8011D428; // type:function size:0x4 -fn_8011D42C = .text:0x8011D42C; // type:function size:0x4 -fn_8011D430 = .text:0x8011D430; // type:function size:0x4 -fn_8011D434 = .text:0x8011D434; // type:function size:0x4 -fn_8011D438 = .text:0x8011D438; // type:function size:0x4 -fn_8011D43C = .text:0x8011D43C; // type:function size:0x4 -fn_8011D440 = .text:0x8011D440; // type:function size:0x4 -fn_8011D444 = .text:0x8011D444; // type:function size:0x4 -fn_8011D448 = .text:0x8011D448; // type:function size:0x4 -fn_8011D44C = .text:0x8011D44C; // type:function size:0x4 -fn_8011D450 = .text:0x8011D450; // type:function size:0x4 -fn_8011D454 = .text:0x8011D454; // type:function size:0x4 -fn_8011D458 = .text:0x8011D458; // type:function size:0x4 -fn_8011D45C = .text:0x8011D45C; // type:function size:0x4 -fn_8011D460 = .text:0x8011D460; // type:function size:0x4 -fn_8011D464 = .text:0x8011D464; // type:function size:0x4 -fn_8011D468 = .text:0x8011D468; // type:function size:0x4 -fn_8011D46C = .text:0x8011D46C; // type:function size:0x4 -fn_8011D470 = .text:0x8011D470; // type:function size:0x4 -fn_8011D474 = .text:0x8011D474; // type:function size:0x4 -fn_8011D478 = .text:0x8011D478; // type:function size:0x4 -fn_8011D47C = .text:0x8011D47C; // type:function size:0x4 -fn_8011D480 = .text:0x8011D480; // type:function size:0x4 -fn_8011D484 = .text:0x8011D484; // type:function size:0x4 -fn_8011D488 = .text:0x8011D488; // type:function size:0x4 -fn_8011D48C = .text:0x8011D48C; // type:function size:0x4 -fn_8011D490 = .text:0x8011D490; // type:function size:0x4 -fn_8011D494 = .text:0x8011D494; // type:function size:0x4 -fn_8011D498 = .text:0x8011D498; // type:function size:0x4 -fn_8011D49C = .text:0x8011D49C; // type:function size:0x4 -fn_8011D4A0 = .text:0x8011D4A0; // type:function size:0x4 -fn_8011D4A4 = .text:0x8011D4A4; // type:function size:0x4 -fn_8011D4A8 = .text:0x8011D4A8; // type:function size:0x4 -fn_8011D4AC = .text:0x8011D4AC; // type:function size:0x4 -fn_8011D4B0 = .text:0x8011D4B0; // type:function size:0x4 -fn_8011D4B4 = .text:0x8011D4B4; // type:function size:0x4 -fn_8011D4B8 = .text:0x8011D4B8; // type:function size:0x4 -fn_8011D4BC = .text:0x8011D4BC; // type:function size:0x4 -fn_8011D4C0 = .text:0x8011D4C0; // type:function size:0x4 -fn_8011D4C4 = .text:0x8011D4C4; // type:function size:0x4 -fn_8011D4C8 = .text:0x8011D4C8; // type:function size:0x4 -fn_8011D4CC = .text:0x8011D4CC; // type:function size:0x4 -fn_8011D4D0 = .text:0x8011D4D0; // type:function size:0x4 -fn_8011D4D4 = .text:0x8011D4D4; // type:function size:0x4 -fn_8011D4D8 = .text:0x8011D4D8; // type:function size:0x4 -fn_8011D4DC = .text:0x8011D4DC; // type:function size:0x4 -fn_8011D4E0 = .text:0x8011D4E0; // type:function size:0x4 -fn_8011D4E4 = .text:0x8011D4E4; // type:function size:0x4 -fn_8011D4E8 = .text:0x8011D4E8; // type:function size:0x4 -fn_8011D4EC = .text:0x8011D4EC; // type:function size:0x4 -fn_8011D4F0 = .text:0x8011D4F0; // type:function size:0x4 -fn_8011D4F4 = .text:0x8011D4F4; // type:function size:0x4 -fn_8011D4F8 = .text:0x8011D4F8; // type:function size:0x4 -fn_8011D4FC = .text:0x8011D4FC; // type:function size:0x4 -fn_8011D500 = .text:0x8011D500; // type:function size:0x4 -fn_8011D504 = .text:0x8011D504; // type:function size:0x4 -fn_8011D508 = .text:0x8011D508; // type:function size:0x4 -fn_8011D50C = .text:0x8011D50C; // type:function size:0x4 -fn_8011D510 = .text:0x8011D510; // type:function size:0x4 -fn_8011D514 = .text:0x8011D514; // type:function size:0x4 -fn_8011D518 = .text:0x8011D518; // type:function size:0x4 -fn_8011D51C = .text:0x8011D51C; // type:function size:0x4 -fn_8011D520 = .text:0x8011D520; // type:function size:0x4 -fn_8011D524 = .text:0x8011D524; // type:function size:0x4 -fn_8011D528 = .text:0x8011D528; // type:function size:0x4 -fn_8011D52C = .text:0x8011D52C; // type:function size:0x4 -fn_8011D530 = .text:0x8011D530; // type:function size:0x4 -fn_8011D534 = .text:0x8011D534; // type:function size:0x4 -fn_8011D538 = .text:0x8011D538; // type:function size:0x4 -fn_8011D53C = .text:0x8011D53C; // type:function size:0x4 -fn_8011D540 = .text:0x8011D540; // type:function size:0x4 -fn_8011D544 = .text:0x8011D544; // type:function size:0x4 -fn_8011D548 = .text:0x8011D548; // type:function size:0x4 -fn_8011D54C = .text:0x8011D54C; // type:function size:0x4 -fn_8011D550 = .text:0x8011D550; // type:function size:0x4 -fn_8011D554 = .text:0x8011D554; // type:function size:0x4 -fn_8011D558 = .text:0x8011D558; // type:function size:0x4 -fn_8011D55C = .text:0x8011D55C; // type:function size:0x4 -fn_8011D560 = .text:0x8011D560; // type:function size:0x4 -fn_8011D564 = .text:0x8011D564; // type:function size:0x4 -fn_8011D568 = .text:0x8011D568; // type:function size:0x4 -fn_8011D56C = .text:0x8011D56C; // type:function size:0x4 -fn_8011D570 = .text:0x8011D570; // type:function size:0x4 -fn_8011D574 = .text:0x8011D574; // type:function size:0x4 -fn_8011D578 = .text:0x8011D578; // type:function size:0x4 -fn_8011D57C = .text:0x8011D57C; // type:function size:0x4 -fn_8011D580 = .text:0x8011D580; // type:function size:0x4 -fn_8011D584 = .text:0x8011D584; // type:function size:0x4 -fn_8011D588 = .text:0x8011D588; // type:function size:0x4 -fn_8011D58C = .text:0x8011D58C; // type:function size:0x4 -fn_8011D590 = .text:0x8011D590; // type:function size:0x4 -fn_8011D594 = .text:0x8011D594; // type:function size:0x4 -fn_8011D598 = .text:0x8011D598; // type:function size:0x4 -fn_8011D59C = .text:0x8011D59C; // type:function size:0x4 -fn_8011D5A0 = .text:0x8011D5A0; // type:function size:0x4 -fn_8011D5A4 = .text:0x8011D5A4; // type:function size:0x4 -fn_8011D5A8 = .text:0x8011D5A8; // type:function size:0x4 -fn_8011D5AC = .text:0x8011D5AC; // type:function size:0x4 -fn_8011D5B0 = .text:0x8011D5B0; // type:function size:0x4 -fn_8011D5B4 = .text:0x8011D5B4; // type:function size:0x4 -fn_8011D5B8 = .text:0x8011D5B8; // type:function size:0x4 -fn_8011D5BC = .text:0x8011D5BC; // type:function size:0x4 -fn_8011D5C0 = .text:0x8011D5C0; // type:function size:0x4 -fn_8011D5C4 = .text:0x8011D5C4; // type:function size:0x4 -fn_8011D5C8 = .text:0x8011D5C8; // type:function size:0x4 -fn_8011D5CC = .text:0x8011D5CC; // type:function size:0x4 -fn_8011D5D0 = .text:0x8011D5D0; // type:function size:0x4 -fn_8011D5D4 = .text:0x8011D5D4; // type:function size:0x4 -fn_8011D5D8 = .text:0x8011D5D8; // type:function size:0x4 -fn_8011D5DC = .text:0x8011D5DC; // type:function size:0x4 -fn_8011D5E0 = .text:0x8011D5E0; // type:function size:0x4 -fn_8011D5E4 = .text:0x8011D5E4; // type:function size:0x4 -fn_8011D5E8 = .text:0x8011D5E8; // type:function size:0x4 -fn_8011D5EC = .text:0x8011D5EC; // type:function size:0x4 -fn_8011D5F0 = .text:0x8011D5F0; // type:function size:0x4 -fn_8011D5F4 = .text:0x8011D5F4; // type:function size:0x4 -fn_8011D5F8 = .text:0x8011D5F8; // type:function size:0x4 -fn_8011D5FC = .text:0x8011D5FC; // type:function size:0x4 -fn_8011D600 = .text:0x8011D600; // type:function size:0x4 -fn_8011D604 = .text:0x8011D604; // type:function size:0x4 -fn_8011D608 = .text:0x8011D608; // type:function size:0x4 -fn_8011D60C = .text:0x8011D60C; // type:function size:0x4 -fn_8011D610 = .text:0x8011D610; // type:function size:0x4 -fn_8011D614 = .text:0x8011D614; // type:function size:0x4 -fn_8011D618 = .text:0x8011D618; // type:function size:0x4 -fn_8011D61C = .text:0x8011D61C; // type:function size:0x4 -fn_8011D620 = .text:0x8011D620; // type:function size:0x4 -fn_8011D624 = .text:0x8011D624; // type:function size:0x4 -fn_8011D628 = .text:0x8011D628; // type:function size:0x4 -fn_8011D62C = .text:0x8011D62C; // type:function size:0x4 -fn_8011D630 = .text:0x8011D630; // type:function size:0x4 -fn_8011D634 = .text:0x8011D634; // type:function size:0x4 -fn_8011D638 = .text:0x8011D638; // type:function size:0x4 -fn_8011D63C = .text:0x8011D63C; // type:function size:0x4 -fn_8011D640 = .text:0x8011D640; // type:function size:0x4 -fn_8011D644 = .text:0x8011D644; // type:function size:0x4 -fn_8011D648 = .text:0x8011D648; // type:function size:0x4 -fn_8011D64C = .text:0x8011D64C; // type:function size:0x4 -fn_8011D650 = .text:0x8011D650; // type:function size:0x4 -fn_8011D654 = .text:0x8011D654; // type:function size:0x4 -fn_8011D658 = .text:0x8011D658; // type:function size:0x4 -fn_8011D65C = .text:0x8011D65C; // type:function size:0x4 -fn_8011D660 = .text:0x8011D660; // type:function size:0x4 -fn_8011D664 = .text:0x8011D664; // type:function size:0x4 -fn_8011D668 = .text:0x8011D668; // type:function size:0x4 -fn_8011D66C = .text:0x8011D66C; // type:function size:0x4 -fn_8011D670 = .text:0x8011D670; // type:function size:0x4 -fn_8011D674 = .text:0x8011D674; // type:function size:0x4 -fn_8011D678 = .text:0x8011D678; // type:function size:0x4 -fn_8011D67C = .text:0x8011D67C; // type:function size:0x4 -fn_8011D680 = .text:0x8011D680; // type:function size:0x4 -fn_8011D684 = .text:0x8011D684; // type:function size:0x4 -fn_8011D688 = .text:0x8011D688; // type:function size:0x4 -fn_8011D68C = .text:0x8011D68C; // type:function size:0x4 -fn_8011D690 = .text:0x8011D690; // type:function size:0x4 -fn_8011D694 = .text:0x8011D694; // type:function size:0x4 -fn_8011D698 = .text:0x8011D698; // type:function size:0x4 -fn_8011D69C = .text:0x8011D69C; // type:function size:0x4 -fn_8011D6A0 = .text:0x8011D6A0; // type:function size:0x4 -fn_8011D6A4 = .text:0x8011D6A4; // type:function size:0x4 -fn_8011D6A8 = .text:0x8011D6A8; // type:function size:0x4 -fn_8011D6AC = .text:0x8011D6AC; // type:function size:0x4 -fn_8011D6B0 = .text:0x8011D6B0; // type:function size:0x4 -fn_8011D6B4 = .text:0x8011D6B4; // type:function size:0x4 -fn_8011D6B8 = .text:0x8011D6B8; // type:function size:0x4 -fn_8011D6BC = .text:0x8011D6BC; // type:function size:0x4 -fn_8011D6C0 = .text:0x8011D6C0; // type:function size:0x4 -fn_8011D6C4 = .text:0x8011D6C4; // type:function size:0x4 -fn_8011D6C8 = .text:0x8011D6C8; // type:function size:0x4 -fn_8011D6CC = .text:0x8011D6CC; // type:function size:0x4 -fn_8011D6D0 = .text:0x8011D6D0; // type:function size:0x4 -fn_8011D6D4 = .text:0x8011D6D4; // type:function size:0x4 -fn_8011D6D8 = .text:0x8011D6D8; // type:function size:0x4 -fn_8011D6DC = .text:0x8011D6DC; // type:function size:0x4 -fn_8011D6E0 = .text:0x8011D6E0; // type:function size:0x4 -fn_8011D6E4 = .text:0x8011D6E4; // type:function size:0x4 -fn_8011D6E8 = .text:0x8011D6E8; // type:function size:0x4 -fn_8011D6EC = .text:0x8011D6EC; // type:function size:0x4 -fn_8011D6F0 = .text:0x8011D6F0; // type:function size:0x4 -fn_8011D6F4 = .text:0x8011D6F4; // type:function size:0x4 -fn_8011D6F8 = .text:0x8011D6F8; // type:function size:0x4 -fn_8011D6FC = .text:0x8011D6FC; // type:function size:0x4 -fn_8011D700 = .text:0x8011D700; // type:function size:0x4 -fn_8011D704 = .text:0x8011D704; // type:function size:0x4 -fn_8011D708 = .text:0x8011D708; // type:function size:0x4 -fn_8011D70C = .text:0x8011D70C; // type:function size:0x4 -fn_8011D710 = .text:0x8011D710; // type:function size:0x4 -fn_8011D714 = .text:0x8011D714; // type:function size:0x4 -fn_8011D718 = .text:0x8011D718; // type:function size:0x4 -fn_8011D71C = .text:0x8011D71C; // type:function size:0x4 -fn_8011D720 = .text:0x8011D720; // type:function size:0x4 -fn_8011D724 = .text:0x8011D724; // type:function size:0x4 -fn_8011D728 = .text:0x8011D728; // type:function size:0x4 -fn_8011D72C = .text:0x8011D72C; // type:function size:0x4 -fn_8011D730 = .text:0x8011D730; // type:function size:0x4 -fn_8011D734 = .text:0x8011D734; // type:function size:0x4 -fn_8011D738 = .text:0x8011D738; // type:function size:0x4 -fn_8011D73C = .text:0x8011D73C; // type:function size:0x4 -fn_8011D740 = .text:0x8011D740; // type:function size:0x4 -fn_8011D744 = .text:0x8011D744; // type:function size:0x4 -fn_8011D748 = .text:0x8011D748; // type:function size:0x4 -fn_8011D74C = .text:0x8011D74C; // type:function size:0x4 -fn_8011D750 = .text:0x8011D750; // type:function size:0x4 -fn_8011D754 = .text:0x8011D754; // type:function size:0x4 -fn_8011D758 = .text:0x8011D758; // type:function size:0x4 -fn_8011D75C = .text:0x8011D75C; // type:function size:0x4 -fn_8011D760 = .text:0x8011D760; // type:function size:0x4 -fn_8011D764 = .text:0x8011D764; // type:function size:0x4 -fn_8011D768 = .text:0x8011D768; // type:function size:0x4 -fn_8011D76C = .text:0x8011D76C; // type:function size:0x4 -fn_8011D770 = .text:0x8011D770; // type:function size:0x4 -fn_8011D774 = .text:0x8011D774; // type:function size:0x4 -fn_8011D778 = .text:0x8011D778; // type:function size:0x4 -fn_8011D77C = .text:0x8011D77C; // type:function size:0x4 -fn_8011D780 = .text:0x8011D780; // type:function size:0x4 -fn_8011D784 = .text:0x8011D784; // type:function size:0x4 -fn_8011D788 = .text:0x8011D788; // type:function size:0x4 -fn_8011D78C = .text:0x8011D78C; // type:function size:0x4 -fn_8011D790 = .text:0x8011D790; // type:function size:0x4 -fn_8011D794 = .text:0x8011D794; // type:function size:0x4 -fn_8011D798 = .text:0x8011D798; // type:function size:0x4 -fn_8011D79C = .text:0x8011D79C; // type:function size:0x4 -fn_8011D7A0 = .text:0x8011D7A0; // type:function size:0x4 -fn_8011D7A4 = .text:0x8011D7A4; // type:function size:0x4 -fn_8011D7A8 = .text:0x8011D7A8; // type:function size:0x4 -fn_8011D7AC = .text:0x8011D7AC; // type:function size:0x4 -fn_8011D7B0 = .text:0x8011D7B0; // type:function size:0x4 -fn_8011D7B4 = .text:0x8011D7B4; // type:function size:0x4 -fn_8011D7B8 = .text:0x8011D7B8; // type:function size:0x4 -fn_8011D7BC = .text:0x8011D7BC; // type:function size:0x4 -fn_8011D7C0 = .text:0x8011D7C0; // type:function size:0x4 -fn_8011D7C4 = .text:0x8011D7C4; // type:function size:0x4 -fn_8011D7C8 = .text:0x8011D7C8; // type:function size:0x4 -fn_8011D7CC = .text:0x8011D7CC; // type:function size:0x4 -fn_8011D7D0 = .text:0x8011D7D0; // type:function size:0x4 -fn_8011D7D4 = .text:0x8011D7D4; // type:function size:0x4 -fn_8011D7D8 = .text:0x8011D7D8; // type:function size:0x4 -fn_8011D7DC = .text:0x8011D7DC; // type:function size:0x4 -fn_8011D7E0 = .text:0x8011D7E0; // type:function size:0x4 -fn_8011D7E4 = .text:0x8011D7E4; // type:function size:0x4 -fn_8011D7E8 = .text:0x8011D7E8; // type:function size:0x4 -fn_8011D7EC = .text:0x8011D7EC; // type:function size:0x4 -fn_8011D7F0 = .text:0x8011D7F0; // type:function size:0x4 -fn_8011D7F4 = .text:0x8011D7F4; // type:function size:0x4 -fn_8011D7F8 = .text:0x8011D7F8; // type:function size:0x4 -fn_8011D7FC = .text:0x8011D7FC; // type:function size:0x4 -fn_8011D800 = .text:0x8011D800; // type:function size:0x4 -fn_8011D804 = .text:0x8011D804; // type:function size:0x4 -fn_8011D808 = .text:0x8011D808; // type:function size:0x4 -fn_8011D80C = .text:0x8011D80C; // type:function size:0x4 -fn_8011D810 = .text:0x8011D810; // type:function size:0x4 -fn_8011D814 = .text:0x8011D814; // type:function size:0x4 -fn_8011D818 = .text:0x8011D818; // type:function size:0x4 -fn_8011D81C = .text:0x8011D81C; // type:function size:0x4 -fn_8011D820 = .text:0x8011D820; // type:function size:0x4 -fn_8011D824 = .text:0x8011D824; // type:function size:0x4 -fn_8011D828 = .text:0x8011D828; // type:function size:0x4 -fn_8011D82C = .text:0x8011D82C; // type:function size:0x4 -fn_8011D830 = .text:0x8011D830; // type:function size:0x4 -fn_8011D834 = .text:0x8011D834; // type:function size:0x4 -fn_8011D838 = .text:0x8011D838; // type:function size:0x4 -fn_8011D83C = .text:0x8011D83C; // type:function size:0x4 -fn_8011D840 = .text:0x8011D840; // type:function size:0x4 -fn_8011D844 = .text:0x8011D844; // type:function size:0x4 -fn_8011D848 = .text:0x8011D848; // type:function size:0x4 -fn_8011D84C = .text:0x8011D84C; // type:function size:0x4 -fn_8011D850 = .text:0x8011D850; // type:function size:0x4 -fn_8011D854 = .text:0x8011D854; // type:function size:0x4 -fn_8011D858 = .text:0x8011D858; // type:function size:0x4 -fn_8011D85C = .text:0x8011D85C; // type:function size:0x4 -fn_8011D860 = .text:0x8011D860; // type:function size:0x4 -fn_8011D864 = .text:0x8011D864; // type:function size:0x4 -fn_8011D868 = .text:0x8011D868; // type:function size:0x4 -fn_8011D86C = .text:0x8011D86C; // type:function size:0x4 -fn_8011D870 = .text:0x8011D870; // type:function size:0x4 -fn_8011D874 = .text:0x8011D874; // type:function size:0x4 -fn_8011D878 = .text:0x8011D878; // type:function size:0x4 -fn_8011D87C = .text:0x8011D87C; // type:function size:0x4 -fn_8011D880 = .text:0x8011D880; // type:function size:0x4 -fn_8011D884 = .text:0x8011D884; // type:function size:0x4 -fn_8011D888 = .text:0x8011D888; // type:function size:0x4 -fn_8011D88C = .text:0x8011D88C; // type:function size:0x4 -fn_8011D890 = .text:0x8011D890; // type:function size:0x4 -fn_8011D894 = .text:0x8011D894; // type:function size:0x4 -fn_8011D898 = .text:0x8011D898; // type:function size:0x4 -fn_8011D89C = .text:0x8011D89C; // type:function size:0x4 -fn_8011D8A0 = .text:0x8011D8A0; // type:function size:0x4 -fn_8011D8A4 = .text:0x8011D8A4; // type:function size:0x4 -fn_8011D8A8 = .text:0x8011D8A8; // type:function size:0x4 -fn_8011D8AC = .text:0x8011D8AC; // type:function size:0x4 -fn_8011D8B0 = .text:0x8011D8B0; // type:function size:0x4 -fn_8011D8B4 = .text:0x8011D8B4; // type:function size:0x4 -fn_8011D8B8 = .text:0x8011D8B8; // type:function size:0x4 -fn_8011D8BC = .text:0x8011D8BC; // type:function size:0x4 -fn_8011D8C0 = .text:0x8011D8C0; // type:function size:0x4 -fn_8011D8C4 = .text:0x8011D8C4; // type:function size:0x4 -fn_8011D8C8 = .text:0x8011D8C8; // type:function size:0x4 -fn_8011D8CC = .text:0x8011D8CC; // type:function size:0x4 -fn_8011D8D0 = .text:0x8011D8D0; // type:function size:0x4 -fn_8011D8D4 = .text:0x8011D8D4; // type:function size:0x4 -fn_8011D8D8 = .text:0x8011D8D8; // type:function size:0x4 -fn_8011D8DC = .text:0x8011D8DC; // type:function size:0x4 -fn_8011D8E0 = .text:0x8011D8E0; // type:function size:0x4 -fn_8011D8E4 = .text:0x8011D8E4; // type:function size:0x4 -fn_8011D8E8 = .text:0x8011D8E8; // type:function size:0x4 -fn_8011D8EC = .text:0x8011D8EC; // type:function size:0x4 -fn_8011D8F0 = .text:0x8011D8F0; // type:function size:0x4 -fn_8011D8F4 = .text:0x8011D8F4; // type:function size:0x4 -fn_8011D8F8 = .text:0x8011D8F8; // type:function size:0x4 -fn_8011D8FC = .text:0x8011D8FC; // type:function size:0x4 -fn_8011D900 = .text:0x8011D900; // type:function size:0x4 -fn_8011D904 = .text:0x8011D904; // type:function size:0x4 -fn_8011D908 = .text:0x8011D908; // type:function size:0x4 -fn_8011D90C = .text:0x8011D90C; // type:function size:0x4 -fn_8011D910 = .text:0x8011D910; // type:function size:0x4 -fn_8011D914 = .text:0x8011D914; // type:function size:0x4 -fn_8011D918 = .text:0x8011D918; // type:function size:0x4 -fn_8011D91C = .text:0x8011D91C; // type:function size:0x4 -fn_8011D920 = .text:0x8011D920; // type:function size:0x4 -fn_8011D924 = .text:0x8011D924; // type:function size:0x4 -fn_8011D928 = .text:0x8011D928; // type:function size:0x4 -fn_8011D92C = .text:0x8011D92C; // type:function size:0x4 -fn_8011D930 = .text:0x8011D930; // type:function size:0x4 -fn_8011D934 = .text:0x8011D934; // type:function size:0x4 -fn_8011D938 = .text:0x8011D938; // type:function size:0x4 -fn_8011D93C = .text:0x8011D93C; // type:function size:0x4 -fn_8011D940 = .text:0x8011D940; // type:function size:0x4 -fn_8011D944 = .text:0x8011D944; // type:function size:0x4 -fn_8011D948 = .text:0x8011D948; // type:function size:0x4 -fn_8011D94C = .text:0x8011D94C; // type:function size:0x4 -fn_8011D950 = .text:0x8011D950; // type:function size:0x4 -fn_8011D954 = .text:0x8011D954; // type:function size:0x4 -fn_8011D958 = .text:0x8011D958; // type:function size:0x4 -fn_8011D95C = .text:0x8011D95C; // type:function size:0x4 -fn_8011D960 = .text:0x8011D960; // type:function size:0x4 -fn_8011D964 = .text:0x8011D964; // type:function size:0x4 -fn_8011D968 = .text:0x8011D968; // type:function size:0x4 -fn_8011D96C = .text:0x8011D96C; // type:function size:0x4 -fn_8011D970 = .text:0x8011D970; // type:function size:0x4 -fn_8011D974 = .text:0x8011D974; // type:function size:0x4 -fn_8011D978 = .text:0x8011D978; // type:function size:0x4 -fn_8011D97C = .text:0x8011D97C; // type:function size:0x4 -fn_8011D980 = .text:0x8011D980; // type:function size:0x4 -fn_8011D984 = .text:0x8011D984; // type:function size:0x4 -fn_8011D988 = .text:0x8011D988; // type:function size:0x4 -fn_8011D98C = .text:0x8011D98C; // type:function size:0x4 -fn_8011D990 = .text:0x8011D990; // type:function size:0x4 -fn_8011D994 = .text:0x8011D994; // type:function size:0x4 -fn_8011D998 = .text:0x8011D998; // type:function size:0x4 -fn_8011D99C = .text:0x8011D99C; // type:function size:0x4 -fn_8011D9A0 = .text:0x8011D9A0; // type:function size:0x4 -fn_8011D9A4 = .text:0x8011D9A4; // type:function size:0x4 -fn_8011D9A8 = .text:0x8011D9A8; // type:function size:0x4 -fn_8011D9AC = .text:0x8011D9AC; // type:function size:0x4 -fn_8011D9B0 = .text:0x8011D9B0; // type:function size:0x4 -fn_8011D9B4 = .text:0x8011D9B4; // type:function size:0x4 -fn_8011D9B8 = .text:0x8011D9B8; // type:function size:0x4 -fn_8011D9BC = .text:0x8011D9BC; // type:function size:0x4 -fn_8011D9C0 = .text:0x8011D9C0; // type:function size:0x4 -fn_8011D9C4 = .text:0x8011D9C4; // type:function size:0x4 -fn_8011D9C8 = .text:0x8011D9C8; // type:function size:0x4 -fn_8011D9CC = .text:0x8011D9CC; // type:function size:0x4 -fn_8011D9D0 = .text:0x8011D9D0; // type:function size:0x4 -fn_8011D9D4 = .text:0x8011D9D4; // type:function size:0x4 -fn_8011D9D8 = .text:0x8011D9D8; // type:function size:0x4 -fn_8011D9DC = .text:0x8011D9DC; // type:function size:0x4 -fn_8011D9E0 = .text:0x8011D9E0; // type:function size:0x4 -fn_8011D9E4 = .text:0x8011D9E4; // type:function size:0x4 -fn_8011D9E8 = .text:0x8011D9E8; // type:function size:0x4 -fn_8011D9EC = .text:0x8011D9EC; // type:function size:0x4 -fn_8011D9F0 = .text:0x8011D9F0; // type:function size:0x4 -fn_8011D9F4 = .text:0x8011D9F4; // type:function size:0x4 -fn_8011D9F8 = .text:0x8011D9F8; // type:function size:0x4 -fn_8011D9FC = .text:0x8011D9FC; // type:function size:0x4 -fn_8011DA00 = .text:0x8011DA00; // type:function size:0x4 -fn_8011DA04 = .text:0x8011DA04; // type:function size:0x4 -fn_8011DA08 = .text:0x8011DA08; // type:function size:0x4 -fn_8011DA0C = .text:0x8011DA0C; // type:function size:0x4 -fn_8011DA10 = .text:0x8011DA10; // type:function size:0x4 -fn_8011DA14 = .text:0x8011DA14; // type:function size:0x4 -fn_8011DA18 = .text:0x8011DA18; // type:function size:0x4 -fn_8011DA1C = .text:0x8011DA1C; // type:function size:0x4 -fn_8011DA20 = .text:0x8011DA20; // type:function size:0x4 -fn_8011DA24 = .text:0x8011DA24; // type:function size:0x4 -fn_8011DA28 = .text:0x8011DA28; // type:function size:0x4 -fn_8011DA2C = .text:0x8011DA2C; // type:function size:0x4 -fn_8011DA30 = .text:0x8011DA30; // type:function size:0x4 -fn_8011DA34 = .text:0x8011DA34; // type:function size:0x4 -fn_8011DA38 = .text:0x8011DA38; // type:function size:0x4 -fn_8011DA3C = .text:0x8011DA3C; // type:function size:0x4 -fn_8011DA40 = .text:0x8011DA40; // type:function size:0x4 -fn_8011DA44 = .text:0x8011DA44; // type:function size:0x4 -fn_8011DA48 = .text:0x8011DA48; // type:function size:0x4 -fn_8011DA4C = .text:0x8011DA4C; // type:function size:0x4 -fn_8011DA50 = .text:0x8011DA50; // type:function size:0x4 -fn_8011DA54 = .text:0x8011DA54; // type:function size:0x4 -fn_8011DA58 = .text:0x8011DA58; // type:function size:0x4 -fn_8011DA5C = .text:0x8011DA5C; // type:function size:0x4 -fn_8011DA60 = .text:0x8011DA60; // type:function size:0x4 -fn_8011DA64 = .text:0x8011DA64; // type:function size:0x4 -fn_8011DA68 = .text:0x8011DA68; // type:function size:0x4 -fn_8011DA6C = .text:0x8011DA6C; // type:function size:0x4 -fn_8011DA70 = .text:0x8011DA70; // type:function size:0x4 -fn_8011DA74 = .text:0x8011DA74; // type:function size:0x4 -fn_8011DA78 = .text:0x8011DA78; // type:function size:0x4 -fn_8011DA7C = .text:0x8011DA7C; // type:function size:0x4 -fn_8011DA80 = .text:0x8011DA80; // type:function size:0x4 -fn_8011DA84 = .text:0x8011DA84; // type:function size:0x4 -fn_8011DA88 = .text:0x8011DA88; // type:function size:0x4 -fn_8011DA8C = .text:0x8011DA8C; // type:function size:0x4 -fn_8011DA90 = .text:0x8011DA90; // type:function size:0x4 -fn_8011DA94 = .text:0x8011DA94; // type:function size:0x4 -fn_8011DA98 = .text:0x8011DA98; // type:function size:0x4 -fn_8011DA9C = .text:0x8011DA9C; // type:function size:0x4 -fn_8011DAA0 = .text:0x8011DAA0; // type:function size:0x4 -fn_8011DAA4 = .text:0x8011DAA4; // type:function size:0x4 -fn_8011DAA8 = .text:0x8011DAA8; // type:function size:0x4 -fn_8011DAAC = .text:0x8011DAAC; // type:function size:0x4 -fn_8011DAB0 = .text:0x8011DAB0; // type:function size:0x4 -fn_8011DAB4 = .text:0x8011DAB4; // type:function size:0x4 -fn_8011DAB8 = .text:0x8011DAB8; // type:function size:0x4 -fn_8011DABC = .text:0x8011DABC; // type:function size:0x4 -fn_8011DAC0 = .text:0x8011DAC0; // type:function size:0x4 -fn_8011DAC4 = .text:0x8011DAC4; // type:function size:0x4 -fn_8011DAC8 = .text:0x8011DAC8; // type:function size:0x4 -fn_8011DACC = .text:0x8011DACC; // type:function size:0x4 -fn_8011DAD0 = .text:0x8011DAD0; // type:function size:0x4 -fn_8011DAD4 = .text:0x8011DAD4; // type:function size:0x4 -fn_8011DAD8 = .text:0x8011DAD8; // type:function size:0x4 -fn_8011DADC = .text:0x8011DADC; // type:function size:0x4 -fn_8011DAE0 = .text:0x8011DAE0; // type:function size:0x4 -fn_8011DAE4 = .text:0x8011DAE4; // type:function size:0x4 -fn_8011DAE8 = .text:0x8011DAE8; // type:function size:0x4 -fn_8011DAEC = .text:0x8011DAEC; // type:function size:0x4 -fn_8011DAF0 = .text:0x8011DAF0; // type:function size:0x4 -fn_8011DAF4 = .text:0x8011DAF4; // type:function size:0x4 -fn_8011DAF8 = .text:0x8011DAF8; // type:function size:0x4 -fn_8011DAFC = .text:0x8011DAFC; // type:function size:0x4 -fn_8011DB00 = .text:0x8011DB00; // type:function size:0x4 -fn_8011DB04 = .text:0x8011DB04; // type:function size:0x4 -fn_8011DB08 = .text:0x8011DB08; // type:function size:0x4 -fn_8011DB0C = .text:0x8011DB0C; // type:function size:0x4 -fn_8011DB10 = .text:0x8011DB10; // type:function size:0x4 -fn_8011DB14 = .text:0x8011DB14; // type:function size:0x4 -fn_8011DB18 = .text:0x8011DB18; // type:function size:0x4 -fn_8011DB1C = .text:0x8011DB1C; // type:function size:0x4 -fn_8011DB20 = .text:0x8011DB20; // type:function size:0x4 -fn_8011DB24 = .text:0x8011DB24; // type:function size:0x4 -fn_8011DB28 = .text:0x8011DB28; // type:function size:0x4 -fn_8011DB2C = .text:0x8011DB2C; // type:function size:0x4 -fn_8011DB30 = .text:0x8011DB30; // type:function size:0x4 -fn_8011DB34 = .text:0x8011DB34; // type:function size:0x4 -fn_8011DB38 = .text:0x8011DB38; // type:function size:0x4 -fn_8011DB3C = .text:0x8011DB3C; // type:function size:0x4 -fn_8011DB40 = .text:0x8011DB40; // type:function size:0x4 -fn_8011DB44 = .text:0x8011DB44; // type:function size:0x4 -fn_8011DB48 = .text:0x8011DB48; // type:function size:0x4 -fn_8011DB4C = .text:0x8011DB4C; // type:function size:0x4 -fn_8011DB50 = .text:0x8011DB50; // type:function size:0x4 -fn_8011DB54 = .text:0x8011DB54; // type:function size:0x4 -fn_8011DB58 = .text:0x8011DB58; // type:function size:0x4 -fn_8011DB5C = .text:0x8011DB5C; // type:function size:0x4 -fn_8011DB60 = .text:0x8011DB60; // type:function size:0x4 -fn_8011DB64 = .text:0x8011DB64; // type:function size:0x4 -fn_8011DB68 = .text:0x8011DB68; // type:function size:0x4 -fn_8011DB6C = .text:0x8011DB6C; // type:function size:0x4 -fn_8011DB70 = .text:0x8011DB70; // type:function size:0x4 -fn_8011DB74 = .text:0x8011DB74; // type:function size:0x4 -fn_8011DB78 = .text:0x8011DB78; // type:function size:0x4 -fn_8011DB7C = .text:0x8011DB7C; // type:function size:0x4 -fn_8011DB80 = .text:0x8011DB80; // type:function size:0x4 -fn_8011DB84 = .text:0x8011DB84; // type:function size:0x4 -fn_8011DB88 = .text:0x8011DB88; // type:function size:0x4 -fn_8011DB8C = .text:0x8011DB8C; // type:function size:0x4 -fn_8011DB90 = .text:0x8011DB90; // type:function size:0x4 -fn_8011DB94 = .text:0x8011DB94; // type:function size:0x4 -fn_8011DB98 = .text:0x8011DB98; // type:function size:0x4 -fn_8011DB9C = .text:0x8011DB9C; // type:function size:0x4 -fn_8011DBA0 = .text:0x8011DBA0; // type:function size:0x4 -fn_8011DBA4 = .text:0x8011DBA4; // type:function size:0x4 -fn_8011DBA8 = .text:0x8011DBA8; // type:function size:0x4 -fn_8011DBAC = .text:0x8011DBAC; // type:function size:0x4 -fn_8011DBB0 = .text:0x8011DBB0; // type:function size:0x4 -fn_8011DBB4 = .text:0x8011DBB4; // type:function size:0x4 -fn_8011DBB8 = .text:0x8011DBB8; // type:function size:0x4 -fn_8011DBBC = .text:0x8011DBBC; // type:function size:0x4 -fn_8011DBC0 = .text:0x8011DBC0; // type:function size:0x4 -fn_8011DBC4 = .text:0x8011DBC4; // type:function size:0x4 -fn_8011DBC8 = .text:0x8011DBC8; // type:function size:0x4 -fn_8011DBCC = .text:0x8011DBCC; // type:function size:0x4 -fn_8011DBD0 = .text:0x8011DBD0; // type:function size:0x4 -fn_8011DBD4 = .text:0x8011DBD4; // type:function size:0x4 -fn_8011DBD8 = .text:0x8011DBD8; // type:function size:0x4 -fn_8011DBDC = .text:0x8011DBDC; // type:function size:0x4 -fn_8011DBE0 = .text:0x8011DBE0; // type:function size:0x4 -fn_8011DBE4 = .text:0x8011DBE4; // type:function size:0x4 -fn_8011DBE8 = .text:0x8011DBE8; // type:function size:0x4 -fn_8011DBEC = .text:0x8011DBEC; // type:function size:0x4 -fn_8011DBF0 = .text:0x8011DBF0; // type:function size:0x4 -fn_8011DBF4 = .text:0x8011DBF4; // type:function size:0x4 -fn_8011DBF8 = .text:0x8011DBF8; // type:function size:0x4 -fn_8011DBFC = .text:0x8011DBFC; // type:function size:0x4 -fn_8011DC00 = .text:0x8011DC00; // type:function size:0x4 -fn_8011DC04 = .text:0x8011DC04; // type:function size:0x4 -fn_8011DC08 = .text:0x8011DC08; // type:function size:0x4 -fn_8011DC0C = .text:0x8011DC0C; // type:function size:0x4 -fn_8011DC10 = .text:0x8011DC10; // type:function size:0x4 -fn_8011DC14 = .text:0x8011DC14; // type:function size:0x4 -fn_8011DC18 = .text:0x8011DC18; // type:function size:0x4 -fn_8011DC1C = .text:0x8011DC1C; // type:function size:0x4 -fn_8011DC20 = .text:0x8011DC20; // type:function size:0x4 -fn_8011DC24 = .text:0x8011DC24; // type:function size:0x4 -fn_8011DC28 = .text:0x8011DC28; // type:function size:0x4 -fn_8011DC2C = .text:0x8011DC2C; // type:function size:0x4 -fn_8011DC30 = .text:0x8011DC30; // type:function size:0x4 -fn_8011DC34 = .text:0x8011DC34; // type:function size:0x4 -fn_8011DC38 = .text:0x8011DC38; // type:function size:0x4 -fn_8011DC3C = .text:0x8011DC3C; // type:function size:0x4 -fn_8011DC40 = .text:0x8011DC40; // type:function size:0x4 -fn_8011DC44 = .text:0x8011DC44; // type:function size:0x4 -fn_8011DC48 = .text:0x8011DC48; // type:function size:0x4 -fn_8011DC4C = .text:0x8011DC4C; // type:function size:0x4 -fn_8011DC50 = .text:0x8011DC50; // type:function size:0x4 -fn_8011DC54 = .text:0x8011DC54; // type:function size:0x4 -fn_8011DC58 = .text:0x8011DC58; // type:function size:0x4 -fn_8011DC5C = .text:0x8011DC5C; // type:function size:0x4 -fn_8011DC60 = .text:0x8011DC60; // type:function size:0x4 -fn_8011DC64 = .text:0x8011DC64; // type:function size:0x4 -fn_8011DC68 = .text:0x8011DC68; // type:function size:0x4 -fn_8011DC6C = .text:0x8011DC6C; // type:function size:0x4 -fn_8011DC70 = .text:0x8011DC70; // type:function size:0x4 -fn_8011DC74 = .text:0x8011DC74; // type:function size:0x4 -fn_8011DC78 = .text:0x8011DC78; // type:function size:0x4 -fn_8011DC7C = .text:0x8011DC7C; // type:function size:0x4 -fn_8011DC80 = .text:0x8011DC80; // type:function size:0x4 -fn_8011DC84 = .text:0x8011DC84; // type:function size:0x4 -fn_8011DC88 = .text:0x8011DC88; // type:function size:0x4 -fn_8011DC8C = .text:0x8011DC8C; // type:function size:0x4 -fn_8011DC90 = .text:0x8011DC90; // type:function size:0x4 -fn_8011DC94 = .text:0x8011DC94; // type:function size:0x4 -fn_8011DC98 = .text:0x8011DC98; // type:function size:0x4 -fn_8011DC9C = .text:0x8011DC9C; // type:function size:0x4 -fn_8011DCA0 = .text:0x8011DCA0; // type:function size:0x4 -fn_8011DCA4 = .text:0x8011DCA4; // type:function size:0x4 +_kerent = .text:0x8011CCC4; // type:function size:0xFE4 scope:global _ctors = .ctors:0x8011DCC0; // type:label scope:global data:4byte __init_cpp_exceptions_reference = .ctors:0x8011DCC0; // type:object size:0x4 scope:global _dtors = .dtors:0x8011DCE0; // type:label scope:global data:4byte diff --git a/configure.py b/configure.py index 12daf4ad..dc33a548 100644 --- a/configure.py +++ b/configure.py @@ -350,7 +350,7 @@ config.libs = [ Object(Matching, "game/minigame_seq.c"), Object(Matching, "game/ovllist.c"), Object(Matching, "game/esprite.c"), - Object(NonMatching, "game/code_8003FF68.c"), + Object(Matching, "game/code_8003FF68.c"), Object(Matching, "game/ClusterExec.c"), Object(Matching, "game/ShapeExec.c"), Object(Matching, "game/wipe.c"), @@ -380,7 +380,7 @@ config.libs = [ Object(Matching, "game/board/basic_space.c"), Object(Matching, "game/board/warp.c"), Object(Matching, "game/board/char_wheel.c"), - Object(NonMatching, "game/board/mushroom.c"), + Object(Matching, "game/board/mushroom.c"), Object(Matching, "game/board/star.c"), Object(Matching, "game/board/roll.c"), Object(Matching, "game/board/ui.c"), @@ -397,7 +397,7 @@ config.libs = [ Object(Matching, "game/board/pause.c"), Object(Matching, "game/board/com_path.c"), Object(Matching, "game/board/tutorial.c"), - Object(NonMatching, "game/kerent.c"), + Object(Matching, "game/kerent.c"), ], }, DolphinLib( @@ -834,13 +834,13 @@ config.libs = [ Rel('m407dll', objects = { Object(Matching, "REL/executor.c"), - Object(NonMatching, "REL/m407dll/player.c"), - Object(NonMatching, "REL/m407dll/map.c"), - Object(NonMatching, "REL/m407dll/camera.c"), + Object(Matching, "REL/m407dll/player.c"), + Object(Matching, "REL/m407dll/map.c"), + Object(Matching, "REL/m407dll/camera.c"), Object(NonMatching, "REL/m407dll/whomp.c"), - Object(NonMatching, "REL/m407dll/whomp_score.c"), - Object(NonMatching, "REL/m407dll/effect.c"), - Object(NonMatching, "REL/m407dll/main.c"), + Object(Matching, "REL/m407dll/whomp_score.c"), + Object(Matching, "REL/m407dll/effect.c"), + Object(Matching, "REL/m407dll/main.c"), Object(NonMatching, "REL/m407dll/score.c"), } ), @@ -1084,15 +1084,15 @@ config.libs = [ Rel('w01Dll', objects = { Object(Matching, "REL/board_executor.c"), - Object(NonMatching, "REL/w01Dll/main.c"), - Object(NonMatching, "REL/w01Dll/mg_coin.c"), - Object(NonMatching, "REL/w01Dll/mg_item.c"), + Object(Matching, "REL/w01Dll/main.c"), + Object(Matching, "REL/w01Dll/mg_coin.c"), + Object(Matching, "REL/w01Dll/mg_item.c"), } ), Rel('w02Dll', objects = { Object(Matching, "REL/board_executor.c"), - Object(NonMatching, "REL/w02Dll/main.c"), + Object(Matching, "REL/w02Dll/main.c"), Object(NonMatching, "REL/w02Dll/dice.c"), Object(NonMatching, "REL/w02Dll/gamble.c"), Object(NonMatching, "REL/w02Dll/mg_coin.c"), @@ -1106,7 +1106,7 @@ config.libs = [ Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w03Dll/main.c"), Object(Matching, "REL/w03Dll/statue.c"), - Object(NonMatching, "REL/w03Dll/condor.c"), + Object(Matching, "REL/w03Dll/condor.c"), Object(Matching, "REL/w03Dll/river.c"), Object(Matching, "REL/w03Dll/smoke.c"), Object(Matching, "REL/w03Dll/mg_coin.c"), @@ -1135,12 +1135,12 @@ config.libs = [ Object(NonMatching, "REL/w05Dll/mg_coin.c"), } ), - Rel('w05Dll', + Rel('w06Dll', objects = { Object(Matching, "REL/board_executor.c"), - Object(NonMatching, "REL/w06Dll/main.c"), - Object(NonMatching, "REL/w06Dll/mg_item.c"), - Object(NonMatching, "REL/w06Dll/mg_coin.c"), + Object(Matching, "REL/w06Dll/main.c"), + Object(Matching, "REL/w06Dll/mg_item.c"), + Object(Matching, "REL/w06Dll/mg_coin.c"), Object(NonMatching, "REL/w06Dll/fire.c"), Object(NonMatching, "REL/w06Dll/bridge.c"), Object(NonMatching, "REL/w06Dll/bowser.c"), diff --git a/get_rel_function_names.py b/get_rel_function_names.py deleted file mode 100644 index 910afaa0..00000000 --- a/get_rel_function_names.py +++ /dev/null @@ -1,25 +0,0 @@ -import os -import sys - -if len(sys.argv) != 2: - print("Usage: python script.py ") - sys.exit(1) - -file_path = sys.argv[1] -lines_starting_with_fn = "" - -with open(file_path, 'r') as file: - for line in file: - # Remove leading and trailing whitespaces - line = line.strip() - - if line.startswith(".fn fn_"): - # Remove ".fn " from the beginning of the line - line = line[len(".fn "):] - - # Remove ", global" from the end of the line - line = line.rstrip(', global') - - lines_starting_with_fn += "// " + line + '\n\n' - -print(lines_starting_with_fn) diff --git a/include/REL/option.h b/include/REL/option.h index e8ff30b5..8334ff77 100755 --- a/include/REL/option.h +++ b/include/REL/option.h @@ -1,3 +1,6 @@ +#ifndef REL_OPTION_H +#define REL_OPTION_H + #include "game/object.h" #include "dolphin/types.h" @@ -78,3 +81,5 @@ extern omObjData *lbl_1_bss_28; extern omObjData *lbl_1_bss_30; extern omObjData *lbl_1_bss_38; extern omObjData *lbl_1_bss_40; + +#endif diff --git a/include/REL/w01Dll.h b/include/REL/w01Dll.h new file mode 100755 index 00000000..f3e1e5d6 --- /dev/null +++ b/include/REL/w01Dll.h @@ -0,0 +1,27 @@ +#ifndef REL_W01_H +#define REL_W01_H + +#include "dolphin/types.h" + +enum { + MAPOBJ_MAX = 33 +}; + +typedef struct { + /* 0x00 */ struct { + u8 unk00_field0 : 1; + }; + /* 0x01 */ s8 unk01[2]; +} UnkBoardDataStruct; // Size unknown + +extern void fn_1_9D00(s32 arg0); +extern void fn_1_9DD8(void); + +extern void fn_1_D740(s16 *arg0); +extern void fn_1_DD84(void); +extern void fn_1_DE94(void); + +extern s16 lbl_1_bss_6C4[MAPOBJ_MAX]; +extern UnkBoardDataStruct *lbl_1_bss_0; + +#endif diff --git a/include/REL/w02Dll.h b/include/REL/w02Dll.h new file mode 100644 index 00000000..bf99e873 --- /dev/null +++ b/include/REL/w02Dll.h @@ -0,0 +1,47 @@ +#ifndef W02DLL +#define W02DLL + +#include "math.h" +#include "dolphin.h" +#include "game/process.h" +#include "game/gamework_data.h" +#include "game/board/model.h" +#include "game/board/space.h" +#include "game/board/main.h" +#include "game/board/player.h" +#include "game/board/window.h" +#include "game/board/map_object.h" + +extern s16 lbl_1_bss_30[0x10]; // Model List + +// main.c +extern void fn_1_770(); +extern void fn_1_72C(); +extern s32 fn_1_774(); +extern s32 fn_1_800(); +extern void fn_1_92C(); +extern s32 fn_1_1128(); +extern void fn_1_121C(u32); + +// roulette.c +extern void fn_1_D3AC(); +extern s32 fn_1_D8C4(); +extern void fn_1_DF48(); +// unorganized +extern void fn_1_394C(s32); +extern void fn_1_3BF4(); +extern void fn_1_39F4(); +extern void fn_1_5CF8(); +extern void fn_1_5D28(); +extern void fn_1_5F90(); +extern void fn_1_79BC(s16* itemList); +extern void fn_1_8244(s32); +extern void fn_1_9250(); +extern void fn_1_93C8(s32 spaceFlag); +extern void fn_1_BC1C(); +extern s32 fn_1_BE88(); +extern s32 fn_1_C108(s32); +extern void fn_1_CD04(s32); +extern void fn_1_E41C(); + +#endif //W02DLL \ No newline at end of file diff --git a/include/REL/w03Dll.h b/include/REL/w03Dll.h index ce63d4d8..bce4bba4 100644 --- a/include/REL/w03Dll.h +++ b/include/REL/w03Dll.h @@ -7,12 +7,9 @@ #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) -typedef struct w03StructUnk0 { -/* 0x00 */ Vec unk_00; -/* 0x0C */ Vec unk_0C; -/* 0x18 */ Vec unk_18; -/* 0x24 */ s32 datanum; -} w03StructUnk0; +enum { + MAPOBJ_MAX = 12 +}; typedef struct w03UnkStruct2{ u8 unk0 : 1; @@ -26,4 +23,7 @@ typedef struct w03State { u16 unk4; u16 unk6; s16 unk8; -} w03State; \ No newline at end of file +} w03State; + +extern w03State* lbl_1_bss_0; +extern s16 lbl_1_bss_C[MAPOBJ_MAX]; diff --git a/include/REL/w06Dll.h b/include/REL/w06Dll.h new file mode 100755 index 00000000..ed13f799 --- /dev/null +++ b/include/REL/w06Dll.h @@ -0,0 +1,36 @@ +#ifndef REL_W06_H +#define REL_W06_H + +#include "dolphin/types.h" + +enum { + MAPOBJ_MAX = 6 +}; + +extern void fn_1_D70(void); +extern void fn_1_F6C(void); +extern void fn_1_1054(void); // return s32? + +extern void fn_1_4878(void); +extern void fn_1_4A10(void); +extern void fn_1_4A60(void); // return s32? + +extern void fn_1_6EF0(void); // return s32? + +extern void fn_1_7BB0(void); +extern void fn_1_7F3C(void); +extern void fn_1_8264(s32 arg0, s16 arg1); + +extern void fn_1_8F20(void); +extern void fn_1_91D8(void); +extern void fn_1_9294(s32 arg0, s32 arg1); +extern s32 fn_1_92D8(s32 arg0, s32 arg1); +extern void fn_1_C108(s32 arg0); +extern void fn_1_C2B4(void); +extern void fn_1_CC90(void); +extern void fn_1_CD0C(void); + +extern s16 lbl_1_bss_C[MAPOBJ_MAX]; +extern void *lbl_1_bss_0; + +#endif diff --git a/include/REL/w10Dll.h b/include/REL/w10Dll.h index b0c81b94..c2730003 100644 --- a/include/REL/w10Dll.h +++ b/include/REL/w10Dll.h @@ -4,7 +4,10 @@ #include "game/process.h" #include "game/window.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) +enum { + MAPOBJ_MELON = 0, + MAPOBJ_MAX, +}; typedef struct w10_board_work { /* 0x00 */ s32 scene; @@ -13,13 +16,6 @@ typedef struct w10_board_work { /* 0x08 */ s16 focus_mdl; } W10BoardWork; -typedef struct unkw10Dll { - Vec unk0; - Vec unk0C; - Vec unk18; - s32 unk24; -} unkw10Dll; //sizeof 0x28 - typedef void (*TutorialSceneFunc)(void); typedef struct tutorial_scene { @@ -83,11 +79,9 @@ void TutorialLotteryExec(void); void TutorialBooHouseExec(void); extern W10BoardWork *boardWork; -extern s16 lbl_1_bss_10[1]; -extern void* lbl_1_bss_8; //unknown type +extern s16 boardMapObjMdl[MAPOBJ_MAX]; extern s16 tutorialDoneF; -extern s16 w10ExitWin; -extern unkw10Dll lbl_1_data_0[1]; +extern s16 tutorialExitWin; extern s16 boardStarHostMdl; extern s16 boardShopHostMdl; diff --git a/include/game/board/main.h b/include/game/board/main.h index 80c2595f..ce7bdef5 100644 --- a/include/game/board/main.h +++ b/include/game/board/main.h @@ -106,7 +106,6 @@ void BoardCameraOffsetSet(float x, float y, float z); void BoardCameraTargetPlayerSet(s32 player); void BoardCameraTargetModelSet(s16 model); void BoardCameraTargetSpaceSet(s32 space); -void BoardCameraPosCalcFuncSet(BoardCameraPosCalcFunc func); void BoardCameraQuakeSet(s32 duration, float strength); void BoardCameraQuakeReset(); void BoardCameraTargetSet(float x, float y, float z); diff --git a/include/game/board/map_object.h b/include/game/board/map_object.h new file mode 100644 index 00000000..11930878 --- /dev/null +++ b/include/game/board/map_object.h @@ -0,0 +1,13 @@ +#ifndef _BOARD_MAPOBJECT_H +#define _BOARD_MAPOBJECT_H + +#include "dolphin.h" + +typedef struct board_map_object { + Vec pos; + Vec rot; + Vec scale; + s32 data_num; +} BoardMapObject; + +#endif \ No newline at end of file diff --git a/include/game/board/player.h b/include/game/board/player.h index 779c5668..69aafebc 100644 --- a/include/game/board/player.h +++ b/include/game/board/player.h @@ -137,16 +137,17 @@ void BoardPlayerMotBlendExec(omObjData*); s32 BoardPlayerAutoSizeGet(s32); void BoardPlayerAutoSizeSet(s32, s32); void BoardPlayerCopyMat(s32); +void BoardBowserSuitInit(s32); void BoardBowserSuitKill(s32); void BoardDiceDigit2DInit(s32, s32); void BoardDiceDigit2DUpdateEnable(s32); void BoardPlayerResizeAnimExec(s32 player, s32 size); s32 BoardPlayerAnimBlendCheck(s32); +s16 BoardBowserSuitPlayerModelGet(void); void BoardBowserSuitMotionSetWait(void); void BoardBowserSuitPlayerModelKill(void); void BoardDiceDigit2DShowSet(s32); s32 BoardPlayerMotBlendCheck(s32); -void BoardPlayerMoveAwayStartCurr(s32, s32); void BoardBowserSuitMotionSetWalk(void); s16 BoardBowserSuitModelGet(void); diff --git a/include/game/board/space.h b/include/game/board/space.h index d361da39..8c7aa9d5 100644 --- a/include/game/board/space.h +++ b/include/game/board/space.h @@ -48,7 +48,9 @@ s32 BoardSpaceStarGet(s32 index); s32 BoardSpaceStarGetCurr(void); s32 BoardSpaceStarCheck(s32 index); void BoardSpaceLandExec(s32 player, s32 space); +void BoardSpaceCameraSet(u16 mask); void BoardSpaceBlockPosSet(void); +void BoardSpaceInit(s32 data_num); extern s16 boardSpaceStarTbl[8]; diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index 902c7af8..fa11d647 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -2,6 +2,7 @@ #define _GAMEWORK_DATA_H #include "dolphin.h" +#include "game/flag.h" typedef struct player_config { s16 character; @@ -43,7 +44,7 @@ typedef struct system_state { u8 bowser_loss : 4; u8 bowser_event : 4; }; -/* 0x32 */ s8 unk_32; +/* 0x32 */ s8 lucky_value; /* 0x34 */ u16 mg_next; /* 0x36 */ s16 mg_type; /* 0x38 */ u16 unk_38; @@ -57,12 +58,12 @@ typedef struct player_state { u16 com : 1; u16 character : 4; u16 auto_size : 2; - u16 field00_bit9 : 1; - u16 field00_bitA : 6; + u16 draw_ticket : 1; + u16 ticket_player : 6; }; /* 0x02 */ struct { u8 team : 1; - u8 field02_bit1 : 1; + u8 spark : 1; u8 player_idx : 2; }; /* 0x03 */ s8 handicap; @@ -71,13 +72,13 @@ typedef struct player_state { /* 0x08 */ struct { u16 color : 2; u16 moving : 1; - u16 field08_bit3 : 1; + u16 jump : 1; u16 show_next : 1; u16 size : 2; - u16 field08_bit7 : 2; + u16 num_dice : 2; u16 rank : 2; u16 bowser_suit : 1; - u16 field08_bit11 : 1; + u16 team_backup : 1; }; /* 0x0A */ s8 roll; /* 0x0C */ s16 space_curr; @@ -97,13 +98,21 @@ typedef struct player_state { /* 0x20 */ s16 coins_total; /* 0x22 */ s16 coins_max; /* 0x24 */ s16 coins_battle; -/* 0x26 */ s16 unk_26; -/* 0x28 */ s16 coin_gain; +/* 0x26 */ s16 coin_collect; +/* 0x28 */ s16 coin_win; /* 0x2A */ s16 stars; /* 0x2C */ s16 stars_max; /* 0x2E */ char unk_2E[2]; } PlayerState; //size of 0x30 +typedef struct pause_backup_config { + u8 explain_mg : 1; + u8 show_com_mg : 1; + u8 mg_list : 2; + u8 mess_speed : 2; + u8 save_mode : 2; +} PauseBackupConfig; + typedef struct game_stat { /* 0x0 */ s16 unk_00; /* 0x2 */ u8 language; @@ -127,20 +136,8 @@ typedef struct game_stat { u8 field10E_bit5 : 1; u8 field10E_bit6 : 1; }; -/* 0x10F */ struct { - u8 field10F_bit0 : 1; - u8 field10F_bit1 : 1; - u8 field10F_bit2 : 2; - u8 field10F_bit4 : 2; - u8 field10F_bit6 : 2; - }; -/* 0x110 */ struct { - u8 field110_bit0 : 1; - u8 field110_bit1 : 1; - u8 field110_bit2 : 2; - u8 field110_bit4 : 2; - u8 field110_bit6 : 2; - }; +/* 0x10F */ PauseBackupConfig story_pause; +/* 0x110 */ PauseBackupConfig party_pause; } GameStat; extern PlayerConfig GWPlayerCfg[4]; @@ -227,9 +224,36 @@ static inline s32 GWPlayerTeamGet(s32 player) return GWPlayer[player].team; } -static inline s32 GWPlayerSpaceCurrGet(s32 player) +static inline s32 GWLuckyValueGet(void) { - return GWPlayer[player].space_curr; + return GWSystem.lucky_value; +} + +static inline void GWLuckyValueSet(s32 value) +{ + GWSystem.lucky_value = value; +} + +static inline s16 GWPlayerCoinCollectGet(s32 player) +{ + return GWPlayer[player].coin_collect; +} + +static inline void GWPlayerCoinCollectSet(s32 player, s16 value) +{ + GWPlayer[player].coin_collect = value; +} + +static inline s16 GWPlayerCoinWinGet(s32 player) +{ + return GWPlayer[player].coin_win; +} + +static inline void GWPlayerCoinWinSet(s32 player, s16 value) +{ + if (_CheckFlag(0x1000C) == 0) { + GWPlayer[player].coin_win = value; + } } #endif diff --git a/include/game/hsfanim.h b/include/game/hsfanim.h index 63015b06..edfe1862 100644 --- a/include/game/hsfanim.h +++ b/include/game/hsfanim.h @@ -103,7 +103,7 @@ void Hu3DAnimAttrSet(s16 arg0, u16 arg1); void Hu3DAnimAttrReset(s16 arg0, s32 arg1); void Hu3DAnimSpeedSet(s16 arg0, float arg1); void Hu3DAnimBankSet(s16 arg0, s32 arg1); -void Hu3DAnmNoSet(s16 arg0, s32 arg1); +void Hu3DAnmNoSet(s16 arg0, u16 arg1); s32 Hu3DAnimSet(ModelData *arg0, HsfAttribute *arg1, s16 arg2); void Hu3DAnimExec(void); s16 Hu3DTexScrollCreate(s16 arg0, char *arg1); diff --git a/include/game/object.h b/include/game/object.h index 99934e45..a78e5b07 100644 --- a/include/game/object.h +++ b/include/game/object.h @@ -26,6 +26,7 @@ typedef enum { #define OM_GET_WORK_PTR(object, type) ((type *)(&((object)->work[0]))) +#define OM_GET_DATA_PTR(object, type) ((type *)(((object)->data))) typedef void (*omObjFunc)(struct om_obj_data *); diff --git a/include/game/sprite.h b/include/game/sprite.h index c08cf105..d944cc74 100644 --- a/include/game/sprite.h +++ b/include/game/sprite.h @@ -113,6 +113,9 @@ void HuSprGrpCenterSet(s16 group, float x, float y); void HuSprGrpZRotSet(s16 group, float z_rot); void HuSprGrpScaleSet(s16 group, float x, float y); void HuSprGrpTPLvlSet(s16 group, float tp_lvl); +#ifndef HUSPR_USE_OLD_DEFS +void HuSprGrpDrawNoSet(s16 group, s32 draw_no); +#endif void HuSprDrawNoSet(s16 group, s16 member, s32 draw_no); void HuSprPriSet(s16 group, s16 member, s16 prio); void HuSprGrpScissorSet(s16 group, s16 x, s16 y, s16 w, s16 h); diff --git a/src/REL/instDll/main.c b/src/REL/instDll/main.c index 4ba2b989..7c9ea6d0 100644 --- a/src/REL/instDll/main.c +++ b/src/REL/instDll/main.c @@ -21,8 +21,6 @@ #include "rel_sqrt_consts.h" -void HuSprGrpDrawNoSet(s16 group, s32 draw_no); - static s16 lbl_1_data_0 = 1; static omObjData *lbl_1_bss_60; diff --git a/src/REL/m407dll/camera.c b/src/REL/m407dll/camera.c new file mode 100644 index 00000000..a19431d2 --- /dev/null +++ b/src/REL/m407dll/camera.c @@ -0,0 +1,186 @@ +#include "game/process.h" +#include "game/object.h" +#include "game/hsfdraw.h" + +#define M_PI 3.141592653589793 + +void fn_1_1CAC(f32, f32, f32); +void fn_1_1D08(f32, f32, f32); +void fn_1_1D64(f32); +void fn_1_2024(omObjData*); +double cos(double x); +double sin(double x); + +Process* lbl_1_bss_34; +omObjData* lbl_1_bss_30; + +typedef struct unkDominationData2 { + s32 unk_00; + s32 unk_04; + Point3d unk_08; + Point3d unk_14; + f32 unk_20; + Point3d unk_24; + Point3d unk_30; + f32 unk_3C; + s32 unk_40; + f32 unk_44; + f32 unk_48; +} unkDominationData2; + +void fn_1_1B1C(Process* arg0) { + unkDominationData2* unkData; + + lbl_1_bss_34 = arg0; + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 45.0f, 10.0f, 40000.0f, 1.2f); + lbl_1_bss_30 = omAddObjEx(lbl_1_bss_34, 0x80, 0U, 0U, -1, fn_1_2024); + lbl_1_bss_30->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x4C, 0x10000000U); + unkData = OM_GET_DATA_PTR(lbl_1_bss_30, unkDominationData2); + unkData->unk_04 = 0; + fn_1_1CAC(0.0f, 0.0f, 0.0f); + fn_1_1D08(0.0f, 0.0f, 0.0f); + fn_1_1D64(0.0f); +} + +void fn_1_1CA8(void) { + +} + +void fn_1_1CAC(f32 arg8, f32 arg9, f32 argA) { + Center.x = arg8; + Center.y = arg9; + Center.z = argA; +} + +void fn_1_1CD4(f32* arg0, f32* arg1, f32* arg2) { + *arg0 = Center.x; + *arg1 = Center.y; + *arg2 = Center.z; +} + +void fn_1_1D08(f32 arg8, f32 arg9, f32 argA) { + CRot.x = arg8; + CRot.y = arg9; + CRot.z = argA; +} + +void fn_1_1D30(f32* arg0, f32* arg1, f32* arg2) { + *arg0 = CRot.x; + *arg1 = CRot.y; + *arg2 = CRot.z; +} + +void fn_1_1D64(f32 arg8) { + CZoom = arg8; +} + +void fn_1_1D74(f32* arg0) { + *arg0 = CZoom; +} + +s32 fn_1_1D88(void) { + unkDominationData2* unkData = OM_GET_DATA_PTR(lbl_1_bss_30, unkDominationData2); + return unkData->unk_04; +} + +void fn_1_1DB0(Point3d* arg0, Point3d* arg1, f32* arg2, s32 arg3, s32 arg4) { + Point3d* var_r30; + Point3d* var_r29; + f32 var_f31; + unkDominationData2* temp_r31; + + temp_r31 = OM_GET_DATA_PTR(lbl_1_bss_30, unkDominationData2); + temp_r31->unk_00 = arg4; + + if (arg0) { + var_r30 = arg0; + } else { + var_r30 = &Center; + } + temp_r31->unk_08 = *var_r30; + if (arg1) { + var_r29 = arg1; + } else { + var_r29 = &CRot; + } + + temp_r31->unk_14 = *var_r29; + + if (arg2) { + var_f31 = *arg2; + } else { + var_f31 = CZoom; + } + + temp_r31->unk_20 = var_f31; + temp_r31->unk_24 = Center; + temp_r31->unk_30 = CRot; + temp_r31->unk_3C = CZoom; + temp_r31->unk_40 = arg3; + temp_r31->unk_44 = 0.0f; + temp_r31->unk_48 = 1.0f / arg3; + temp_r31->unk_04 = 1; +} + +f32 fn_1_1F1C(f32 arg8, f32 arg9) { + if (((arg8 > 0.0f) && (arg9 > 0.0f)) || ((arg8 < 0.0f) && (arg9 < 0.0f))) { + return abs(arg8 - arg9); + } + + return abs(arg8) + abs(arg9); +} + +void fn_1_2024(omObjData* arg0) { + Vec sp14; + Vec sp8; + f32 var_f31; + f32 cZoomTemp; + unkDominationData2* temp_r31; + + temp_r31 = OM_GET_DATA_PTR(arg0, unkDominationData2); + if (temp_r31->unk_04 != 0) { + switch (temp_r31->unk_00) { + case 0: + var_f31 = temp_r31->unk_44; + break; + case 1: + var_f31 = temp_r31->unk_44; + if (temp_r31->unk_48 > 0.5) { + temp_r31->unk_00 = 2; + } + break; + case 2: + var_f31 = (f32) sin((M_PI * (90.0f * temp_r31->unk_44)) / 180.0); + break; + case 3: + var_f31 = (f32) sin((M_PI * (90.0f * temp_r31->unk_44)) / 180.0); + if (temp_r31->unk_48 > 0.5) { + temp_r31->unk_00 = 4; + } + break; + case 4: + var_f31 = sin((M_PI * (90.0f * temp_r31->unk_44)) / 180.0); + var_f31 *= var_f31; + break; + } + sp14.x = temp_r31->unk_24.x + (var_f31 * (temp_r31->unk_08.x - temp_r31->unk_24.x)); + sp14.y = temp_r31->unk_24.y + (var_f31 * (temp_r31->unk_08.y - temp_r31->unk_24.y)); + sp14.z = temp_r31->unk_24.z + (var_f31 * (temp_r31->unk_08.z - temp_r31->unk_24.z)); + sp8.x = temp_r31->unk_30.x + (var_f31 * (temp_r31->unk_14.x - temp_r31->unk_30.x)); + sp8.y = temp_r31->unk_30.y + (var_f31 * (temp_r31->unk_14.y - temp_r31->unk_30.y)); + sp8.z = temp_r31->unk_30.z + (var_f31 * (temp_r31->unk_14.z - temp_r31->unk_30.z)); + cZoomTemp = temp_r31->unk_3C + (var_f31 * (temp_r31->unk_20 - temp_r31->unk_3C)); + temp_r31->unk_44 += temp_r31->unk_48; + Center = sp14; + CRot = sp8; + CZoom = cZoomTemp; + if (--temp_r31->unk_40 <= 0) { + Center = temp_r31->unk_08; + CRot = temp_r31->unk_14; + CZoom = temp_r31->unk_20; + temp_r31->unk_04 = 0; + } + } + omOutView(arg0); +} diff --git a/src/REL/m407dll/effect.c b/src/REL/m407dll/effect.c new file mode 100644 index 00000000..e68ed0bd --- /dev/null +++ b/src/REL/m407dll/effect.c @@ -0,0 +1,209 @@ +#include "src/REL/m407dll/m407dll.h" +#include "game/process.h" +#include "game/object.h" +#include "game/hsfmotion.h" +#include "game/hsfdraw.h" +//bss +s32 bssPad3; +Process* lbl_1_bss_3970; +omObjData* lbl_1_bss_37E0[100]; + +//data +s32 lbl_1_data_288[] = { + 0x00260015, + 0x00260016, + 0x00260017, + 0x00260018, + 0x00260019 +}; + +//function signatures +void fn_1_4858(omObjData* arg0); +void fn_1_485C(omObjData* arg0); +void fn_1_46EC(omObjData* arg0); +void fn_1_465C(omObjData* arg0, s32 arg1); +void fn_1_4808(omObjData* arg0); + +ObjFuncs lbl_1_data_29C[] = { + fn_1_4858, + fn_1_485C, +}; + +void fn_1_41CC(Process* arg0) { + Process* sp8; + u32 i; + u32 temp_r30; + + + lbl_1_bss_3970 = arg0; + + temp_r30 = 0; + + for (i = 0; i < 40; i++) { + lbl_1_bss_37E0[i] = omAddObjEx(lbl_1_bss_3970, 0x800, 1U, 0U, 5, fn_1_46EC); + lbl_1_bss_37E0[i]->work[0] = i; + lbl_1_bss_37E0[i]->work[1] = 0; + } + + temp_r30 += i; + + for (i = 0; i < 4; i++) { + lbl_1_bss_37E0[temp_r30 + i] = omAddObjEx(lbl_1_bss_3970, 0x800, 1U, 0U, 5, fn_1_46EC); + lbl_1_bss_37E0[temp_r30 + i]->work[0] = temp_r30 + i; + lbl_1_bss_37E0[temp_r30 + i]->work[1] = 1; + } + + temp_r30 += i; + + for (i = 0; i < 30; i++) { + lbl_1_bss_37E0[temp_r30 + i] = omAddObjEx(lbl_1_bss_3970, 0x800, 1U, 0U, 5, fn_1_46EC); + lbl_1_bss_37E0[temp_r30 + i]->work[0] = temp_r30 + i; + lbl_1_bss_37E0[temp_r30 + i]->work[1] = 2; + } + + temp_r30 += i; + + for (i = 0; i < 4; i++) { + lbl_1_bss_37E0[temp_r30 + i] = omAddObjEx(lbl_1_bss_3970, 0x800, 1U, 0U, 5, fn_1_46EC); + lbl_1_bss_37E0[temp_r30 + i]->work[0] = temp_r30 + i; + lbl_1_bss_37E0[temp_r30 + i]->work[1] = 3; + } + + temp_r30 += i; + + for (i = 0; i < 22; i++) { + lbl_1_bss_37E0[temp_r30 + i] = omAddObjEx(lbl_1_bss_3970, 0x800, 1U, 0U, 5, fn_1_46EC); + lbl_1_bss_37E0[temp_r30 + i]->work[0] = temp_r30 + i; + lbl_1_bss_37E0[temp_r30 + i]->work[1] = 4; + } +} + +void fn_1_44F4(void) { + u32 i; + + for (i = 0; i < ARRAY_COUNT(lbl_1_bss_37E0); i++) { + fn_1_4808(lbl_1_bss_37E0[i]); + } +} + +typedef struct unkDominationData4 { + u32 unk_00; + u32 unk_04; + s32 unk_08; + s32 unk_0C; + f32 unk_10; + f32 unk_14; + f32 unk_18; + s32 unk_1C; +} unkDominationData4; + +void fn_1_4544(s32 arg0, s32 arg1, f32 arg2, f32 arg3, f32 arg4) { + f32 sp14; + f32 sp10; + s32 spC; + s32 sp8; + omObjData* temp_r29; + u32 var_r30; + unkDominationData4* temp_r31; + u32 i; + + if ((arg4 < (Center.z - 2000.0f)) || (arg4 > (2000.0f + Center.z))) { + return; + } + + for (i = 0; i < ARRAY_COUNT(lbl_1_bss_37E0); i++) { + temp_r29 = lbl_1_bss_37E0[i]; + temp_r31 = temp_r29->data; + if ((temp_r31->unk_08 == arg0) && (temp_r31->unk_0C == 0)) { + temp_r31->unk_04 = arg1; + temp_r31->unk_10 = arg2; + temp_r31->unk_14 = arg3; + temp_r31->unk_18 = arg4; + fn_1_465C(temp_r29, 1); + return; + } + } +} + +void fn_1_465C(omObjData* arg0, s32 arg1) { + unkDominationData4* temp_r31; + + temp_r31 = arg0->data; + temp_r31->unk_0C = arg1; + temp_r31->unk_1C = 0; +} + +void fn_1_4680(omObjData* arg0) { + unkDominationData4* temp_r31; + + temp_r31 = arg0->data; + lbl_1_data_29C[temp_r31->unk_0C](arg0); + omSetTra(arg0, temp_r31->unk_10, temp_r31->unk_14, temp_r31->unk_18); +} + +void fn_1_46EC(omObjData* arg0) { + unkDominationData4* temp_r29; + unkDominationData4* temp_r30; + + arg0->func = fn_1_4680; + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x20, 0x10000000); + temp_r30 = arg0->data; + temp_r30->unk_00 = arg0->work[0]; + temp_r30->unk_08 = arg0->work[1]; + temp_r30->unk_1C = 0; + *arg0->model = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_288[temp_r30->unk_08], 0x10000000, HEAP_DATA)); + Hu3DModelAttrSet(*arg0->model, 0x4000U); + Hu3DModelAttrSet(*arg0->model, 0x40000002U); + Hu3DModelAttrSet(*arg0->model, 1U); + temp_r30->unk_10 = (f32) 0.0f; + temp_r30->unk_14 = (f32) 0.0f; + temp_r30->unk_18 = (f32) 0.0f; + temp_r29 = arg0->data; + temp_r29->unk_0C = 0; + temp_r29->unk_1C = 0; +} + +void fn_1_4808(omObjData* arg0) { + unkDominationData4* sp8; + sp8 = arg0->data; + + Hu3DModelKill(arg0->model[0]); + + if (arg0->data) { + HuMemDirectFree(arg0->data); + } +} + +void fn_1_4858(omObjData* arg0) { + +} + +void fn_1_485C(omObjData* arg0) { + unkDominationData4* temp_r29; + unkDominationData4* temp_r30; + + temp_r30 = arg0->data; + if (temp_r30->unk_04 != 0) { + temp_r30->unk_04--; + } + + if (temp_r30->unk_1C == 0) { + Hu3DMotionTimeSet(*arg0->model, 0.0f); + Hu3DModelAttrReset(*arg0->model, 1); + Hu3DModelAttrReset(*arg0->model, 0x40000002); + Hu3DModelAttrSet(*arg0->model, 0x40000001); + temp_r30->unk_1C++; + } else if (temp_r30->unk_1C == 1) { + Hu3DModelAttrReset(arg0->model[0], 0x40000001); + temp_r30->unk_1C++; + } + + if (Hu3DMotionEndCheck(*arg0->model) != 0) { + Hu3DModelAttrSet(*arg0->model, 1U); + temp_r29 = arg0->data; + temp_r29->unk_0C = 0; + temp_r29->unk_1C = 0; + } +} + +f32 pad3[1] = {0.0f}; \ No newline at end of file diff --git a/src/REL/m407dll/m407dll.h b/src/REL/m407dll/m407dll.h new file mode 100644 index 00000000..788ede40 --- /dev/null +++ b/src/REL/m407dll/m407dll.h @@ -0,0 +1,5 @@ +#include "game/object.h" + +#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) + +typedef void (*ObjFuncs)(omObjData*); diff --git a/src/REL/m407dll/main.c b/src/REL/m407dll/main.c new file mode 100644 index 00000000..99f91349 --- /dev/null +++ b/src/REL/m407dll/main.c @@ -0,0 +1,575 @@ +#include "game/object.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" +#include "game/wipe.h" +#include "game/audio.h" +#include "game/hsfman.h" + +s32 bssPad2; +Process* lbl_1_bss_3980; +omObjData* lbl_1_bss_397C; +s16 lbl_1_bss_3978; + +s32 fn_1_4C0(s32 arg0); + +void fn_1_4D0C(void); +void fn_1_4D54(void); +void fn_1_4E8C(void); +void fn_1_4FAC(void); +void fn_1_50E8(void); +void fn_1_51E4(void); +void fn_1_52AC(void); +void fn_1_53B8(void); +void fn_1_5574(void); +void fn_1_5630(void); +s16 fn_1_5804(void); +void fn_1_5A80(void); +void fn_1_5BB0(void); +void fn_1_4B7C(void); +void fn_1_4C6C(omObjData* obj); +void fn_1_4C3C(s32 arg0); +void fn_1_568(s16 arg0, s16 arg1, s16 arg2); +s32 fn_1_508(u8 arg0); +s32 fn_1_53C(u8 arg0); +void fn_1_3C4(u8 arg0); + +typedef void (*ObjFuncs)(void); +//data +ObjFuncs lbl_1_data_2A8[] = { + fn_1_4D0C, + fn_1_4D54, + fn_1_4E8C, + fn_1_4FAC, + fn_1_50E8, + fn_1_51E4, + fn_1_52AC, + fn_1_53B8, + fn_1_5574, + fn_1_5630, + fn_1_5A80, + fn_1_5BB0, + fn_1_4B7C +}; + +typedef struct unkDominationData5 { + u32 unk_00; + s16 unk_04; + s16 unk_06; + s16 unk_08; + char unk_0A[6]; + s16 unk_10; + char unk_12[10]; + s16 unk_1C[4]; + s16 unk_24; + char unk_26[2]; + Vec unk_28; + Vec unk_34; + f32 unk_40; + s32 unk_44; +} unkDominationData5; + +void fn_1_4980(Process* arg0) { + s32 i; + unkDominationData5* temp_r31; + + lbl_1_bss_3980 = arg0; + lbl_1_bss_397C = omAddObjEx(lbl_1_bss_3980, 0x40, 0U, 0U, 0, fn_1_4C6C); + lbl_1_bss_397C->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x48, 0x10000000U); + temp_r31 = lbl_1_bss_397C->data; + Hu3DShadowCreate(45.0f, 10.0f, 10000.0f); + Hu3DShadowTPLvlSet(0.6f); + fn_1_1B1C(lbl_1_bss_3980); + lbl_1_bss_3978 = GWMGRecordGet(1); + + if (lbl_1_bss_3978 == 0) { + lbl_1_bss_3978 = 0x96; + } + + fn_1_14F0(lbl_1_bss_3980, lbl_1_bss_3978); + fn_1_F4(lbl_1_bss_3980); + fn_1_2354(lbl_1_bss_3980); + fn_1_3AC8(lbl_1_bss_3980); + fn_1_41CC(lbl_1_bss_3980); + fn_1_5C5C(lbl_1_bss_3980, lbl_1_bss_3978); + WipeCreate(1, 0, 0x3C); + temp_r31->unk_06 = -1; + temp_r31->unk_08 = -1; + temp_r31->unk_24 = 0; + + for (i = 0; i < 4; i++) { + temp_r31->unk_1C[i] = -1; + } + + fn_1_5F40(0); + fn_1_4C3C(0); +} + +void fn_1_4B7C(void) { + unkDominationData5* temp_r31; + + temp_r31 = lbl_1_bss_397C->data; + if (temp_r31->unk_04 == 0) { + WipeCreate(2, 0, 0x3C); + temp_r31->unk_04++; + } + if (WipeStatGet() == 0) { + HuAudFadeOut(100); + + if (temp_r31->unk_06 != -1) { + MGSeqKill(temp_r31->unk_06); + } + + if (temp_r31->unk_08 != -1) { + MGSeqKill(temp_r31->unk_08); + } + + fn_1_194(); + fn_1_1CA8(); + fn_1_15D8(); + fn_1_3B68(); + fn_1_44F4(); + fn_1_5ECC(); + omOvlReturnEx(1, 1); + } +} + +void fn_1_4C3C(s32 arg0) { + unkDominationData5* temp_r31; + + temp_r31 = lbl_1_bss_397C->data; + temp_r31->unk_00 = arg0; + temp_r31->unk_04 = 0; +} + +void fn_1_4C6C(omObjData* obj) { + unkDominationData5* temp_r30; + unkDominationData5* temp_r31; + + temp_r30 = lbl_1_bss_397C->data; + lbl_1_data_2A8[temp_r30->unk_00](); + + if (omSysExitReq != 0) { + temp_r31 = lbl_1_bss_397C->data; + temp_r31->unk_00 = 0xC; + temp_r31->unk_04 = 0; + omSysExitReq = 0; + } +} + +void fn_1_4D0C(void) { + unkDominationData5* sp8; + unkDominationData5* temp_r31; + + sp8 = lbl_1_bss_397C->data; + temp_r31 = lbl_1_bss_397C->data; + temp_r31->unk_00 = 1; + temp_r31->unk_04 = 0; +} + +f32 lbl_1_data_2DC[4] = {850.0f, 900.0f, 1300.0f, 1500.0f}; +Vec lbl_1_data_2EC = {540.0f, 0.0f, 10000.0f}; +Vec lbl_1_data_2F8 = {-50.0f, -360.0f, 0.0f}; +f32 lbl_1_data_304 = 2670.0f; +Vec lbl_1_data_308 = {437.0f, 0.0f, 5000.0f}; +Vec lbl_1_data_314 = {-50.0f, -360.0f, 0.0f}; +f32 lbl_1_data_320 = 2290.0f; +Vec lbl_1_data_324 = {0.0f, 0.0f, 100.0f}; +Vec lbl_1_data_330 = {-45.0f, -540.0f, 0.0f}; +f32 lbl_1_data_33C = 1910.0f; +Vec lbl_1_data_340 = {0.0f, 0.0f, 100.0f}; +Vec lbl_1_data_34C = {-53.0f, -680.0f, 0.0f}; +f32 lbl_1_data_358 = 1900.0f; + +void fn_1_4D54(void) { + s16 temp_r0; + unkDominationData5* temp_r30; + unkDominationData5* temp_r31; + + temp_r31 = lbl_1_bss_397C->data; + switch (temp_r31->unk_04) { + case 0: + HuAudFXPlay(0x545); + fn_1_1DB0(&lbl_1_data_2EC, &lbl_1_data_2F8, &lbl_1_data_304, 0, 0); + temp_r31->unk_04 = 1; + break; + case 1: + fn_1_1DB0(&lbl_1_data_308, &lbl_1_data_314, &lbl_1_data_320, 0x64, 1); + temp_r31->unk_04 = 2; + break; + case 2: + if (fn_1_1D88() == 0) { + fn_1_1DB0(&lbl_1_data_324, &lbl_1_data_330, &lbl_1_data_33C, 0x6E, 2); + temp_r31->unk_04 = 3; + case 3: + if (fn_1_1D88() == 0) { + temp_r30 = lbl_1_bss_397C->data; + temp_r30->unk_00 = 2; + temp_r30->unk_04 = 0; + return; + } + } + } +} + +void fn_1_4E8C(void) { + s32 i; + unkDominationData5* temp_r29; + unkDominationData5* temp_r31; + + temp_r31 = lbl_1_bss_397C->data; + if (temp_r31->unk_06 == -1) { + temp_r31->unk_06 = MGSeqCreate(3, 0); + temp_r31->unk_44 = HuAudSeqPlay(0x46); + fn_1_2564(); + for (i = 0; i < 4; i++) { + fn_1_568(i, 1, 0x3C); + } + } + if (MGSeqStatGet(temp_r31->unk_06) == 0) { + MGSeqKill(temp_r31->unk_06); + temp_r31->unk_06 = -1; + temp_r31->unk_10 = 0x258; + temp_r31->unk_08 = MGSeqCreate(1, temp_r31->unk_10 / 60, -1, -1); + fn_1_1E4(); + temp_r29 = lbl_1_bss_397C->data; + temp_r29->unk_00 = 3; + temp_r29->unk_04 = 0; + } +} + +void fn_1_4FAC(void) { + s16 temp_r0; + unkDominationData5* temp_r31; + unkDominationData5* temp_r30; + unkDominationData5* temp_r29; + + temp_r31 = lbl_1_bss_397C->data; + if (temp_r31->unk_10 > 0) { + if ((--temp_r31->unk_10 % 60) == 0) { + MGSeqParamSet(temp_r31->unk_08, 1, (temp_r31->unk_10 / 60)); + } + return; + } + + MGSeqParamSet(temp_r31->unk_08, 2, -1); + temp_r31->unk_08 = -1; + HuAudSeqFadeOut(temp_r31->unk_44, 0x64); + fn_1_238(); + fn_1_5804(); + + if (temp_r31->unk_24 > 0) { + temp_r30 = lbl_1_bss_397C->data; + temp_r30->unk_00 = 4; + temp_r30->unk_04 = 0; + return; + } + + temp_r29 = lbl_1_bss_397C->data; + temp_r29->unk_00 = 6; + temp_r29->unk_04 = 0; +} + +void fn_1_50E8(void) { + unkDominationData5* temp_r31; + unkDominationData5* temp_r30; + + temp_r31 = lbl_1_bss_397C->data; + switch (temp_r31->unk_04++) { /* irregular */ + case 0xA: + fn_1_1DB0(&lbl_1_data_340, &lbl_1_data_34C, &lbl_1_data_358, 0xB4, 4); + return; + case 0x32: + fn_1_28C(); + return; + case 0x78: + fn_1_2E0(); + return; + case 0x9A: + fn_1_334(); + return; + case 0xBE: + temp_r31->unk_44 = HuAudSeqPlay(0x3A); + fn_1_25C0(); + temp_r30 = lbl_1_bss_397C->data; + temp_r30->unk_00 = 5; + temp_r30->unk_04 = 0; + return; + } +} + +void fn_1_51E4(void) { + Vec sp8; + unkDominationData5* temp_r30; + unkDominationData5* temp_r31; + + temp_r30 = lbl_1_bss_397C->data; + if ((temp_r30->unk_04++ >= 0xF) || (fn_1_2880() != 0)) { + if (fn_1_2880() == 0) { + fn_1_1CD4(&sp8.z, &sp8.y, &sp8.x); + sp8.x += 33.5f; + fn_1_1CAC(sp8.z, sp8.y, sp8.x); + return; + } + temp_r31 = lbl_1_bss_397C->data; + temp_r31->unk_00 = 6; + temp_r31->unk_04 = 0; + } +} + +void fn_1_52AC(void) { + unkDominationData5* temp_r31; + unkDominationData5* temp_r30; + unkDominationData5* temp_r29; + + temp_r31 = lbl_1_bss_397C->data; + if (temp_r31->unk_04 == 0) { + temp_r31->unk_06 = MGSeqCreate(3, 1); + temp_r31->unk_04++; + HuAudSeqFadeOut(temp_r31->unk_44, 0x64); + } + if (MGSeqStatGet(temp_r31->unk_06) == 0) { + MGSeqKill(temp_r31->unk_06); + temp_r31->unk_06 = -1; + if (temp_r31->unk_08 != 0) { + MGSeqKill(temp_r31->unk_08); + temp_r31->unk_08 = -1; + } + if (temp_r31->unk_24 > 0) { + temp_r30 = lbl_1_bss_397C->data; + temp_r30->unk_00 = 7; + temp_r30->unk_04 = 0; + return; + } + temp_r29 = lbl_1_bss_397C->data; + temp_r29->unk_00 = 0xA; + temp_r29->unk_04 = 0; + } +} + +void fn_1_53B8(void) { + s32 i; + unkDominationData5* temp_r31; + unkDominationData5* temp_r29; + unkDominationData5* temp_r28; + + temp_r31 = lbl_1_bss_397C->data; + if (temp_r31->unk_04 == 0) { + fn_1_1DB0(&temp_r31->unk_28, &temp_r31->unk_34, &temp_r31->unk_40, 0x3C, 4); + temp_r31->unk_04++; + for (i = 0; i < 4; i++) { + if ((fn_1_508(i) == 0) && (fn_1_28B8(i) >= 0x64)) { + GWGameStat.present[0x38] = 1; + } + } + } + if (temp_r31->unk_04 == 0x28) { + fn_1_404(); + for (i = 0; i < temp_r31->unk_24; i++) { + fn_1_2770(temp_r31->unk_1C[i]); + fn_1_568(temp_r31->unk_1C[i], 2, 60); + } + } + if (temp_r31->unk_04 == 0x46) { + for (i = 0; i < temp_r31->unk_24; i++) { + if (!(fn_1_508(temp_r31->unk_1C[i])) && (lbl_1_bss_3978 < fn_1_28D4())) { + temp_r29 = lbl_1_bss_397C->data; + temp_r29->unk_00 = 8; + temp_r29->unk_04 = 0; + return; + } + } + temp_r28 = lbl_1_bss_397C->data; + temp_r28->unk_00 = 9; + temp_r28->unk_04 = 0; + } else { + temp_r31->unk_04++; + } + +} + +void fn_1_5574(void) { + unkDominationData5* temp_r31; + unkDominationData5* temp_r30; + + temp_r31 = lbl_1_bss_397C->data; + if (temp_r31->unk_04 == 0) { + GWMGRecordSet(1, fn_1_28D4()); + temp_r31->unk_06 = MGSeqCreate(0xE, fn_1_28D4()); + fn_1_5F40(1); + temp_r31->unk_04++; + return; + } + if (MGSeqStatGet(temp_r31->unk_06) == 0) { + temp_r30 = lbl_1_bss_397C->data; + temp_r30->unk_00 = 9; + temp_r30->unk_04 = 0; + } +} + +void fn_1_5630(void) { + unkDominationData5* temp_r31; + unkDominationData5* temp_r29; + s32 temp_r28; + s16 temp_r27; + s32 temp_r26; + s32 coins; + s32 coins2; + s32 temp_r23; + s32 temp_r22; + s32 temp_r21; + s32 i; + + temp_r31 = lbl_1_bss_397C->data; + if (temp_r31->unk_04 == 0) { + for (i = 0; i < 4; i++) { + if (fn_1_53C(i) == 0) { + return; + } + } + if (temp_r31->unk_24 == 0) { + temp_r31->unk_06 = MGSeqCreate(3, 2); + HuAudSStreamPlay(4); + } else { + temp_r21 = fn_1_4C0(temp_r31->unk_1C[3]); + temp_r22 = fn_1_4C0(temp_r31->unk_1C[2]); + temp_r23 = fn_1_4C0(temp_r31->unk_1C[1]); + temp_r31->unk_06 = MGSeqCreate(5, 3, fn_1_4C0(temp_r31->unk_1C[0]), temp_r23, temp_r22, temp_r21); + for (i = 0; i < 4; i++) { + if (temp_r31->unk_1C[i] != -1) { + + fn_1_3C4(temp_r31->unk_1C[i]); + temp_r26 = temp_r31->unk_1C[i]; + coins = GWPlayer[temp_r26].coin_win; + coins2 = coins; + temp_r27 = coins2 + 0xA; + temp_r28 = temp_r31->unk_1C[i]; + if (_CheckFlag(0x1000CU) == 0) { + GWPlayer[temp_r28].coin_win = temp_r27; + } + } + } + HuAudSStreamPlay(1); + } + + } + if (temp_r31->unk_04++ >= 0xD2) { + MGSeqKill(temp_r31->unk_06); + temp_r31->unk_06 = -1; + temp_r29 = lbl_1_bss_397C->data; + temp_r29->unk_00 = 0xC; + temp_r29->unk_04 = 0; + } +} + +s16 fn_1_5804(void) { + f32 var_f31; + f32 var_f30; + s16 temp_r28; + s16 temp_r3; + s16 var_r29; + s32 i; + s32 var_r27; + s32 var_r26; + + s32 var_r30; + unkDominationData5* temp_r31; + + var_r27 = 0; + var_r26 = 0; + temp_r31 = lbl_1_bss_397C->data; + var_r29 = 0; + + for (i = 0; i < 4; i++) { + temp_r28 = fn_1_28B8(i); + if (temp_r28 > var_r29) { + var_r29 = temp_r28; + } + } + + for (i = 0; i < 4; i++) { + temp_r28 = fn_1_28B8(i); + if (var_r29 == temp_r28) { + if (var_r29 > 0) { + temp_r31->unk_1C[temp_r31->unk_24++] = i; + fn_1_388((u8) i, 1); + } + if (var_r27 == 0) { + var_r27 = 1; + var_f31 = 400.0f * i; + } else { + var_r26 = 1; + var_f30 = 400.0f * i; + } + } else { + fn_1_388((u8) i, 2); + } + } + if (var_r26 == 0) { + var_f30 = var_f31; + } + temp_r31->unk_28.x = (600.0f - (0.5f * (var_f30 + var_f31))); + temp_r31->unk_28.y = 250.0f; + temp_r31->unk_28.z = (200.0f * ((s16) var_r29 + 2)); + temp_r31->unk_34.x = -42.0f; + temp_r31->unk_34.y = -720.0f; + temp_r31->unk_34.z = 0.0f; + temp_r31->unk_40 = lbl_1_data_2DC[(s32) ((var_f30 - var_f31) / 400.0f)]; + return var_r29; +} + +void fn_1_5A80(void) { + s32 sp20; + s32 sp1C; + Vec sp18 = {0.0f, 0.0f, -300.0f}; + Vec spC = {-40.0f, -720.0f, 0.0f}; + f32 sp8; + s16 temp_r0; + s16 temp_r3; + unkDominationData5* temp_r30; + unkDominationData5* temp_r31; + + sp8 = 1420.0f; + temp_r31 = lbl_1_bss_397C->data; + switch (temp_r31->unk_04++) { + case 0x0: + MGSeqKill(temp_r31->unk_08); + temp_r31->unk_08 = -1; + fn_1_1DB0(&sp18, &spC, &sp8, 0x78, 4); + return; + case 0xA: + fn_1_5F40(0); + fn_1_28C(); + return; + case 0x78: + fn_1_404(); + temp_r30 = lbl_1_bss_397C->data; + temp_r30->unk_00 = 9; + temp_r30->unk_04 = 0; + return; + /* fallthrough */ + case 0x3C: + break; + } + +} + +void fn_1_5BB0(void) { + unkDominationData5* temp_r30; + unkDominationData5* temp_r31; + + temp_r31 = lbl_1_bss_397C->data; + if (temp_r31->unk_04 == 0) { + temp_r31->unk_06 = MGSeqCreate(3, 2); + temp_r31->unk_04++; + } + if (MGSeqStatGet(temp_r31->unk_06) == 0) { + MGSeqKill(temp_r31->unk_06); + temp_r31->unk_06 = -1; + temp_r30 = lbl_1_bss_397C->data; + temp_r30->unk_00 = 0xC; + temp_r30->unk_04 = 0; + } +} + +f32 pad4[1] = {0.0f}; +const f32 pad5 = 0.0f; \ No newline at end of file diff --git a/src/REL/m407dll/map.c b/src/REL/m407dll/map.c new file mode 100644 index 00000000..0ef5208c --- /dev/null +++ b/src/REL/m407dll/map.c @@ -0,0 +1,124 @@ +#include "game/process.h" +#include "game/object.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" + +void fn_1_162C(omObjData*); +void fn_1_1A8C(omObjData*); + +Process* lbl_1_bss_2C; +omObjData* lbl_1_bss_28; +s16 lbl_1_bss_24; +s32 lbl_1_bss_20; + +s32 lbl_1_data_198[] = { + 0x00260000, + 0x00260002, + 0x00260003, + 0x00260001, + 0x00260005, + 0x00260006, + 0x00260007, + 0x00260008, + 0x00260009, + 0x0026000A, + 0x0026000B, + 0x0026000C, + 0x00260004, +}; + +Vec lbl_1_data_1CC[] = { + {600.0f, 3.0f, -300.0f}, + {200.0f, 3.0f, -300.0f}, + {-200.0f, 3.0f, -300.0f}, + {-600.0f, 3.0f, -300.0f} +}; + +Point3d lbl_1_data_1FC = {2000.0f, 3000.0f, 2000.0f}; +Point3d lbl_1_data_208 = {-0.5f, -0.5f, -0.5f}; +GXColor lbl_1_data_214 = {255, 255, 255, 255}; +Point3d lbl_1_data_218 = {0.0f, 1.0f, 0.0f}; + +f32 pad[1] = {0.0f}; + +void fn_1_14F0(Process* arg0, s32 arg1) { + LightData* sp10; + + lbl_1_bss_2C = arg0; + lbl_1_bss_20 = arg1; + lbl_1_bss_28 = omAddObjEx(lbl_1_bss_2C, 0x100, 0xDU, 0U, 1, fn_1_162C); + omSetStatBit(lbl_1_bss_28, 0x100U); + Hu3DLighInit(); + lbl_1_bss_24 = Hu3DGLightCreateV(&lbl_1_data_1FC, &lbl_1_data_208, &lbl_1_data_214); + Hu3DGLightInfinitytSet(lbl_1_bss_24); + sp10 = &Hu3DGlobalLight[lbl_1_bss_24]; +} + +void fn_1_15D8(void) { + s32 i; + + for (i = 0; i < 13; i++) { + Hu3DModelKill(lbl_1_bss_28->model[i]); + } +} + +void fn_1_162C(omObjData* arg0) { + s32 var_r30; + s32 var_r30_2; + s32 var_r30_3; + s32 var_r30_4; + s32 i; + + arg0->func = fn_1_1A8C; + arg0->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[2], 0x10000000, HEAP_DATA)); + Hu3DModelShadowMapSet(arg0->model[0]); + Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); + arg0->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[3], 0x10000000, HEAP_DATA)); + Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + Hu3DModelAttrSet(arg0->model[1], 1U); + for (i = 0; i < 4; i++) { + arg0->model[i+2] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[GWPlayerCfg[i].character + 4], 0x10000000, HEAP_DATA)); + Hu3DModelAmbSet(arg0->model[i + 2], 1.0f, 1.0f, 1.0f); + Hu3DModelShadowMapSet(arg0->model[i + 2]); + } + + for (i = 0; i < 5; i++) { + if (i == 0) { + arg0->model[i + 6] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[0], 0x10000000, HEAP_DATA)); + } else { + arg0->model[i + 6] = Hu3DModelLink(arg0->model[6]); + } + Hu3DModelAmbSet(arg0->model[i + 6], 1.0f, 1.0f, 1.0f); + Hu3DModelShadowMapSet(arg0->model[i + 6]); + } + + arg0->model[11] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[12], 0x10000000, HEAP_DATA)); + arg0->model[12] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[1], 0x10000000, HEAP_DATA)); + + for (i = 0; i < 4; i++) { + Hu3DModelPosSetV(arg0->model[i + 2], &lbl_1_data_1CC[i]); + } + + for (i = 0; i < 5; i++) { + Hu3DModelPosSet(arg0->model[i + 6], 0.0f, 0.0f, -2000.0f + (8000.0f * (f32) i)); + } + + Hu3DModelPosSet(arg0->model[11], 0.0f, 0.0f, -3900.0f); + Hu3DModelPosSet(arg0->model[12], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[12], 0x40000001); + + if (lbl_1_bss_20 > 0) { + Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 200.0f * (f32) lbl_1_bss_20); + Hu3DModelAttrReset(arg0->model[1], 1); + } +} + +void fn_1_1A8C(omObjData* arg0) { + Point3d sp8; + + sp8.x = lbl_1_data_1FC.x; + sp8.y = lbl_1_data_1FC.y; + sp8.z = lbl_1_data_1FC.z + Center.z; + Hu3DGLightPosSetV(lbl_1_bss_24, &sp8, &lbl_1_data_208); + Hu3DShadowPosSet(&sp8, &lbl_1_data_218, &Center); +} \ No newline at end of file diff --git a/src/REL/m407dll/player.c b/src/REL/m407dll/player.c new file mode 100644 index 00000000..c907f00d --- /dev/null +++ b/src/REL/m407dll/player.c @@ -0,0 +1,497 @@ +#include "game/process.h" +#include "game/object.h" +#include "game/gamework_data.h" +#include "game/pad.h" +#include "game/objsub.h" +#include "game/chrman.h" +#include "game/hsfman.h" +#include "rel_sqrt_consts.h" + +//structs +typedef struct unkDominationData { + u8 unk_00; + u8 unk_01; + u8 unk_02; + //padding unk_03 + s32 unk_04; + s32 unk_08; + u8 unk_0C; + //padding unk_0D + f32 unk_10; + f32 unk_14; + f32 unk_18; + s32 unk_1C; + s32 unk_20; + f32 unk_24; + f32 unk_28; + f32 unk_2C; + f32 unk_30; + s32 unk_34; + s32 unk_38; +} unkDominationData; + +s32 pad_20; +Process* lbl_1_bss_18; +omObjData* lbl_1_bss_8[4]; +Process* lbl_1_bss_0[2]; + +//data +typedef void (*ObjFuncs)(omObjData*); + +void fn_1_A88(omObjData* arg0); +void fn_1_A8C(omObjData* arg0); +void fn_1_C58(omObjData* arg0); +void fn_1_CF4(omObjData* arg0); +void fn_1_DB4(omObjData* arg0); +void fn_1_F8C(omObjData* arg0); +void fn_1_1074(omObjData* arg0); +void fn_1_11CC(omObjData* arg0); +void fn_1_13E4(omObjData* arg0); +void fn_1_1460(omObjData* arg0); + +//function signatures +void fn_1_628(omObjData*, s32); +void fn_1_64C(omObjData*); +void fn_1_99C(omObjData*); +void fn_1_A1C(omObjData* arg0); +void fn_1_26CC(u8); +void fn_1_4544(s32, s32, f32, f32, f32); +s16 fn_1_28B8(u8); //s32 fn_1_28B8(s32); +s16 fn_1_28E4(u8); +double cos(double x); +double sin(double x); + +inline void SetDominationDataStuff(omObjData* arg0, s32 val0, s32 val1) { + unkDominationData* temp_r29 = arg0->data; + temp_r29->unk_1C = val0; + temp_r29->unk_20 = val1; +} + +void ModuleProlog(void) { + lbl_1_bss_0[0] = omInitObjMan(0x2F8, 0x2000); + omGameSysInit(lbl_1_bss_0[0]); + fn_1_4980(lbl_1_bss_0[0]); +} + +void fn_1_F4(Process* arg0) { + u32 i; + lbl_1_bss_18 = arg0; + + for (i = 0; i < 4; i++) { + lbl_1_bss_8[i] = omAddObjEx(lbl_1_bss_18, 0x100, 2U, 8U, 0, fn_1_64C); + lbl_1_bss_8[i]->work[0] = i; + } +} + +void fn_1_194(void) { + s32 i; + + for (i = 0; i < 4; i++) { + fn_1_99C(lbl_1_bss_8[i]); + } +} + +void fn_1_1E4(void) { + s32 i; + + for (i = 0; i < 4; i++) { + fn_1_628(lbl_1_bss_8[i], 1); + } +} + +void fn_1_238(void) { + s32 i; + + for (i = 0; i < 4; i++) { + fn_1_628(lbl_1_bss_8[i], 2); + } +} + +void fn_1_28C(void) { + s32 i; + + for (i = 0; i < 4; i++) { + fn_1_628(lbl_1_bss_8[i], 3); + } +} + +void fn_1_2E0(void) { + s32 i; + + for (i = 0; i < 4; i++) { + fn_1_628(lbl_1_bss_8[i], 4); + } +} + +void fn_1_334(void) { + s32 i; + + for (i = 0; i < 4; i++) { + fn_1_628(lbl_1_bss_8[i], 5); + } +} + +void fn_1_388(u8 arg0, s32 arg1) { + omObjData* obj = lbl_1_bss_8[arg0]; + unkDominationData* unkData = obj->data; + unkData->unk_38 = arg1; +} + +void fn_1_3C4(u8 arg0) { + fn_1_628(lbl_1_bss_8[arg0], 8); +} + +void fn_1_404(void) { + omObjData* temp_r31; + unkDominationData* unkData; + s32 temp_r0; + u8 i; + + for (i = 0; i < 4; i++) { + temp_r31 = lbl_1_bss_8[i]; + unkData = temp_r31->data; + switch (unkData->unk_38) { + case 0: + fn_1_628(temp_r31, 9); + break; + case 1: + fn_1_628(temp_r31, 6); + break; + case 2: + fn_1_628(temp_r31, 9); + break; + } + } +} + +s32 fn_1_4C0(u8 arg0) { + unkDominationData* unkData; + + if (arg0 >= 4) { + return -1; + } + + unkData = lbl_1_bss_8[arg0]->data; + return unkData->unk_01; +} + +s32 fn_1_508(u8 arg0) { + unkDominationData* unkData = lbl_1_bss_8[arg0]->data; + return unkData->unk_04; +} + +s32 fn_1_53C(u8 arg0) { + return OM_GET_DATA_PTR(lbl_1_bss_8[arg0], unkDominationData)->unk_1C == 0; +} + +void fn_1_568(s16 arg0, s16 arg1, s16 arg2) { + unkDominationData* unkData; + + unkData = OM_GET_DATA_PTR(lbl_1_bss_8[arg0], unkDominationData); + switch (arg1) { + case 0: + omVibrate(unkData->unk_00, arg2, 6, 6); + break; + case 1: + omVibrate(unkData->unk_00, arg2, 4, 2); + break; + case 2: + omVibrate(unkData->unk_00, arg2, 0xC, 0); + break; + } +} + +void fn_1_628(omObjData* arg0, s32 arg1) { + unkDominationData* temp_r31; + + temp_r31 = OM_GET_DATA_PTR(arg0, unkDominationData); + temp_r31->unk_1C = arg1; + temp_r31->unk_20 = 0; +} + +typedef struct m407UnkDataStruct0 { + u32 unk_00[8]; +} m407UnkDataStruct0; + +m407UnkDataStruct0 lbl_1_data_0[] = { + {0x005F0000, 0x005F0024, 0x005F0029, 0x005F0005, 0x005F0006, 0x005F004A, 0x005F004B, 0x005F0018}, + {0x001A0000, 0x001A0024, 0x001A0029, 0x001A0005, 0x001A0006, 0x001A004A, 0x001A004B, 0x001A0018}, + {0x006D0000, 0x006D0024, 0x006D0029, 0x006D0005, 0x006D0006, 0x006D004A, 0x006D004B, 0x006D0018}, + {0x008A0000, 0x008A0024, 0x008A0029, 0x008A0005, 0x008A0006, 0x008A004A, 0x008A004B, 0x008A0018}, + {0x00850000, 0x00850024, 0x00850029, 0x00850005, 0x00850006, 0x0085004A, 0x0085004B, 0x00850018}, + {0x00110000, 0x00110024, 0x00110029, 0x00110005, 0x00110006, 0x0011004A, 0x0011004B, 0x00110018}, + {0x000D0000, 0x000D0024, 0x000D0029, 0x000D0005, 0x000D0006, 0x000D004A, 0x000D004B, 0x000D0018}, + {0x00810000, 0x00810024, 0x00810029, 0x00810005, 0x00810006, 0x0081004A, 0x0081004B, 0x00810018} +}; +s32 lbl_1_data_100[] = {0x0026000D, 0x0026000E, 0x0026000F, 0x00260010, 0x00260011, 0x00260012, 0x00260013, 0x00260014}; + +char lbl_1_data_120[] = "test11_tex_we-itemhook-r"; + +char* lbl_1_data_13C[] = { + lbl_1_data_120, + lbl_1_data_120, + lbl_1_data_120, + lbl_1_data_120, + lbl_1_data_120, + lbl_1_data_120, + lbl_1_data_120, + lbl_1_data_120 +}; + +ObjFuncs lbl_1_data_15C[] = { + fn_1_A88, + fn_1_A8C, + fn_1_C58, + fn_1_CF4, + fn_1_DB4, + fn_1_F8C, + fn_1_1074, + fn_1_11CC, + fn_1_13E4, + fn_1_1460 +}; + +typedef struct m407UnkDataStruct1 { + u8 unk_00; + u8 unk_01; +} m407UnkDataStruct1; + +m407UnkDataStruct1 lbl_1_data_184[] = {{0x3C, 0x0F}, {0x50, 0x0F}, {0x64, 0x14}, {0x78, 0x14}}; //??? + +void fn_1_64C(omObjData* arg0) { + u32 temp_r29; + unkDominationData* temp_r27; + unkDominationData* temp_r31; + u32 i; + + arg0->func = fn_1_A1C; + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x3C, 0x10000000U); + temp_r31 = arg0->data; + temp_r29 = arg0->work[0]; + temp_r31->unk_00 = temp_r29; + temp_r31->unk_01 = GWPlayerCfg[temp_r29].character; + temp_r31->unk_0C = GWPlayerCfg[temp_r29].pad_idx; + temp_r31->unk_04 = GWPlayerCfg[temp_r29].iscom; + temp_r31->unk_02 = GWPlayerCfg[temp_r29].diff; + temp_r31->unk_08 = 0; + temp_r31->unk_34 = 0; + temp_r31->unk_38 = 0; + temp_r31->unk_28 = 0.0f; + //frand implicit declaration? (probably frandf inline?) + temp_r31->unk_30 = (600.0f / (lbl_1_data_184[temp_r31->unk_02].unk_00 - ((frand() & 0x7FFFFFFF) % lbl_1_data_184[temp_r31->unk_02].unk_01))); + temp_r31->unk_2C = temp_r31->unk_30; + arg0->model[0] = CharModelCreate(temp_r31->unk_01, 8); + arg0->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_100[temp_r31->unk_01], 0x10000000, HEAP_DATA)); + Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); + Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + + for (i = 0; i < 8; i++) { + arg0->motion[i] = CharModelMotionCreate(temp_r31->unk_01, lbl_1_data_0[temp_r31->unk_01].unk_00[i]); + } + + Hu3DModelShadowSet(arg0->model[0]); + Hu3DModelShadowSet(arg0->model[1]); + CharModelMotionDataClose(temp_r31->unk_01); + CharModelMotionSet(temp_r31->unk_01, arg0->motion[1]); + Hu3DModelAttrSet(arg0->model[0], 0x40000001); + Hu3DModelHookSet(arg0->model[0], lbl_1_data_13C[temp_r31->unk_01], arg0->model[1]); + temp_r31->unk_10 = (600.0f - (400.0f * temp_r29)); + temp_r31->unk_14 = 0.0f; + temp_r31->unk_18 = -500.0f; + SetDominationDataStuff(arg0, 0, 0); +} + +void fn_1_99C(omObjData* arg0) { + s32 i; + + for (i = 0; i < 8; i++) { + Hu3DMotionKill(arg0->motion[i]); + } + + for (i = 0; i < 2; i++){ + Hu3DModelKill(arg0->model[i]); + } + + HuMemDirectFree(arg0->data); +} + +void fn_1_A1C(omObjData* arg0) { + unkDominationData* temp_r31; + + temp_r31 = arg0->data; + lbl_1_data_15C[temp_r31->unk_1C](arg0); + omSetTra(arg0, temp_r31->unk_10, temp_r31->unk_14, temp_r31->unk_18); +} + +void fn_1_A88(omObjData* arg0) { + +} + +void fn_1_A8C(omObjData* arg0) { + s32 var_r29; + unkDominationData* temp_r31; + + var_r29 = 0; + temp_r31 = OM_GET_DATA_PTR(arg0, unkDominationData); + temp_r31->unk_28 += 1.0f; + + if (temp_r31->unk_04 == 0) { + var_r29 = (HuPadBtnDown[temp_r31->unk_0C] & 0x100) ? 1 : 0; + } else if ((u32) temp_r31->unk_28 >= (u32) temp_r31->unk_2C) { + var_r29 = 1; + temp_r31->unk_2C = (f32) (temp_r31->unk_2C + temp_r31->unk_30); + } + + if (var_r29 != 0) { + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[2], 0.0f, 0.0f, 0); + fn_1_4544(4, 0x10, 600.0f - (400.0f * (f32) temp_r31->unk_00), -20.0f, -450.0f); + fn_1_26CC(temp_r31->unk_00); + temp_r31->unk_34 = 1; + return; + } + + if ((temp_r31->unk_34 != 0) && (Hu3DMotionEndCheck(arg0->model[0]) != 0)) { + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[1], 0.0f, 0.0f, 0x40000001); + temp_r31->unk_34 = 0; + } +} + +void fn_1_C58(omObjData* arg0) { + unkDominationData* temp_r30; + + temp_r30 = arg0->data; + if (Hu3DMotionEndCheck(arg0->model[0]) != 0) { + CharModelMotionShiftSet(temp_r30->unk_01, arg0->motion[1], 0.0f, 10.0f, 0x40000001); + temp_r30->unk_34 = 0; + SetDominationDataStuff(arg0, 0, 0); + } +} + +void fn_1_CF4(omObjData* arg0) { + unkDominationData* temp_r31; + + temp_r31 = arg0->data; + if (temp_r31->unk_20 == 0) { + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[1], 0.0f, 10.0f, 0x40000001U); + CharModelItemHookCreate(temp_r31->unk_01, lbl_1_data_13C[temp_r31->unk_01]); + } + if (temp_r31->unk_20++ >= 30) { + SetDominationDataStuff(arg0, 0, 0); + } +} + +void fn_1_DB4(omObjData* arg0) { + f32 temp_f31; + f32 temp_f30; + unkDominationData* temp_r31; + + temp_r31 = arg0->data; + + if (temp_r31->unk_20 == 0) { + CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[3], 0); + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[3], 0.0f, 10.0f, 0); + temp_r31->unk_24 = 0.0f; + temp_r31->unk_20++; + } + + temp_f31 = (32.0f * sin(1.0471975511965976)) - (9.8f * temp_r31->unk_24); + temp_f30 = 22.0f * cos(1.0471975511965976); + temp_r31->unk_18 = temp_r31->unk_18 + temp_f30; + temp_r31->unk_14 = temp_r31->unk_14 + temp_f31; + temp_r31->unk_24 += 0.3f; + + if (!(temp_f31 < 0.0f) || !(temp_r31->unk_14 <= 30.0f)) { + return; + } + + temp_r31->unk_14 = 30.0f; + CharModelMotionShiftSet((s16) temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, 0U); + SetDominationDataStuff(arg0, 0, 0); +} + +const s32 lbl_1_rodata_70[] = {0x00000122, 0x00000162, 0x000001A2, 0x000001E2, 0x00000222, 0x00000262, 0x000002A2, 0x000002E2}; + +void fn_1_F8C(omObjData* arg0) { + unkDominationData* temp_r31; + + temp_r31 = arg0->data; + + if (temp_r31->unk_20 == 0) { + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[5], 0.0f, 10.0f, 0); + HuAudFXPlay(lbl_1_rodata_70[temp_r31->unk_01]); + } + + if (temp_r31->unk_20++ >= 0x78) { + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[0], 0.0f, 10.0f, 0x40000001); + SetDominationDataStuff(arg0, 0, 0); + } +} + +void fn_1_1074(omObjData* arg0) { + unkDominationData* temp_r31; + + temp_r31 = arg0->data; + + if (temp_r31->unk_20 == 0) { + CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[3], 0); + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[3], 0.0f, 10.0f, 0U); + temp_r31->unk_24 = 0.0f; + temp_r31->unk_20 = 1; + } + + temp_r31->unk_14 = (temp_r31->unk_14 + ((80.0 * sin(1.5707963267948966)) - (9.8 * temp_r31->unk_24))); + temp_r31->unk_24 += 0.3f; + + if (!(temp_r31->unk_14 < 1000.0f)) { + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, 0); + SetDominationDataStuff(arg0, 7, 0); + } +} + +void fn_1_11CC(omObjData* arg0) { + unkDominationData* temp_r31; + s16 temp; + + temp_r31 = arg0->data; + if (temp_r31->unk_20 == 0) { + CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[3], 0); + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[3], 0.0f, 10.0f, 0); + temp_r31->unk_14 = 1000.0f; + temp_r31->unk_18 = 200.0f * (fn_1_28B8(temp_r31->unk_00) + 2); + temp_r31->unk_24 = 0.0f; + temp_r31->unk_20 = 1; + } + + temp_r31->unk_14 = (temp_r31->unk_14 - (2.0f + (9.8f * temp_r31->unk_24))); + temp_r31->unk_24 += 0.3f; + + if (!(temp_r31->unk_14 > 300.0f)) { + temp_r31->unk_14 = 300.0f; + CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[4], 0); + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, 0); + temp = fn_1_28E4(temp_r31->unk_00); + //can remove \0 after matching whole rel likely + Hu3DModelHookSet(temp, "itemhook_c\0", arg0->model[0]); + temp_r31->unk_10 = 0.0f; + temp_r31->unk_14 = 0.0f; + temp_r31->unk_18 = 0.0f; + SetDominationDataStuff(arg0, 0, 0); + } +} + +void fn_1_13E4(omObjData* arg0) { + unkDominationData* temp_r30; + + temp_r30 = arg0->data; + CharModelMotionShiftSet(temp_r30->unk_01, arg0->motion[6], 0.0f, 10.0f, 0); + SetDominationDataStuff(arg0, 0, 0); +} + +void fn_1_1460(omObjData* arg0) { + unkDominationData* temp_r30; + + temp_r30 = arg0->data; + CharModelVoiceEnableSet(temp_r30->unk_01, arg0->motion[7], 0); + CharModelMotionShiftSet(temp_r30->unk_01, arg0->motion[7], 0.0f, 10.0f, 0); + SetDominationDataStuff(arg0, 0, 0); +} \ No newline at end of file diff --git a/src/REL/m407dll/whomp_score.c b/src/REL/m407dll/whomp_score.c new file mode 100644 index 00000000..7b00cf63 --- /dev/null +++ b/src/REL/m407dll/whomp_score.c @@ -0,0 +1,196 @@ +#include "src/REL/m407dll/m407dll.h" +#include "game/process.h" +#include "game/object.h" +#include "game/gamework_data.h" +#include "game/esprite.h" + +void Hu3D3Dto2D(Vec *arg0, s16 arg1, Vec *arg2); +void fn_1_3D28(omObjData* arg0, s32 arg1); +void fn_1_3E34(omObjData*); +void fn_1_3F7C(omObjData* arg0); +void fn_1_3FF0(omObjData*); +void fn_1_3FF4(omObjData* arg0); +void fn_1_40F4(omObjData* arg0); + +s32 bssPad; +Process* lbl_1_bss_37D8; +omObjData* lbl_1_bss_37C8[4]; + +ObjFuncs lbl_1_data_278[] = { + fn_1_3FF0, + fn_1_3FF4, + fn_1_40F4, +}; + +typedef struct unkDominationData3 { + u32 unk_00; + s32 unk_04; + Vec unk_08; + s32 unk_14; + s16 unk_18[4]; + f32 unk_20; +} unkDominationData3; + +void fn_1_3AC8(Process* arg0) { + u32 i; + + lbl_1_bss_37D8 = arg0; + + for (i = 0; i < ARRAY_COUNT(lbl_1_bss_37C8); i++) { + lbl_1_bss_37C8[i] = omAddObjEx(lbl_1_bss_37D8, 0x500, 0U, 0U, 4, fn_1_3E34); + lbl_1_bss_37C8[i]->work[0] = i; + } +} + +void fn_1_3B68(void) { + s32 temp_r4; + u32 i; + + for (i = 0; i < ARRAY_COUNT(lbl_1_bss_37C8); i++) { + fn_1_3F7C(lbl_1_bss_37C8[i]); + } +} + +void fn_1_3BB8(s16 arg0, f32 arg8, f32 arg9) { + omObjData* obj; + Vec sp14; + unkDominationData3* temp_r31; + u32 i; + s16 temp;; + + for (i = 0; i < ARRAY_COUNT(lbl_1_bss_37C8); i++) { + obj = lbl_1_bss_37C8[i]; + temp_r31 = OM_GET_DATA_PTR(obj, unkDominationData3); + if (temp_r31->unk_04 == 0) { + temp = arg0; + espBankSet(temp_r31->unk_18[1], (temp / 100)); + temp = (temp - ((temp / 100) * 100)); + espBankSet(temp_r31->unk_18[2],(temp / 10)); + temp = (temp - ((temp / 10) * 10)); + espBankSet(temp_r31->unk_18[3], temp); + sp14.x = arg8; + sp14.y = 0.0f; + sp14.z = arg9; + Hu3D3Dto2D(&sp14, 1, &temp_r31->unk_08); + fn_1_3D28(obj, 1); + return; + } + } +} + +void fn_1_3D28(omObjData* arg0, s32 arg1) { + unkDominationData3* temp_r31; + + temp_r31 = arg0->data; + temp_r31->unk_04 = arg1; + temp_r31->unk_14 = 0; +} + +void fn_1_3D4C(omObjData* arg0) { + s32 temp_r5; + unkDominationData3* temp_r31; + + temp_r31 = arg0->data; + lbl_1_data_278[temp_r31->unk_04](arg0); + + espPosSet(temp_r31->unk_18[0], temp_r31->unk_08.x, temp_r31->unk_08.y); + espPosSet(temp_r31->unk_18[1], temp_r31->unk_08.x - 18.0f, temp_r31->unk_08.y - 8.0f); + espPosSet(temp_r31->unk_18[2], temp_r31->unk_08.x, temp_r31->unk_08.y - 8.0f); + espPosSet(temp_r31->unk_18[3], 18.0f + temp_r31->unk_08.x, temp_r31->unk_08.y - 8.0f); +} + +void fn_1_3E34(omObjData* arg0) { + unkDominationData3* temp_r29; + unkDominationData3* temp_r31; + + arg0->func = fn_1_3D4C; + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x24, 0x10000000U); + temp_r31 = arg0->data; + temp_r31->unk_00 = arg0->work[0]; + temp_r31->unk_14 = 0; + temp_r31->unk_04 = 0; + temp_r31->unk_18[0] = espEntry(0x260026, 1, 0); + temp_r31->unk_18[1] = espEntry(0x260020, 0, 0); + temp_r31->unk_18[2] = espEntry(0x260020, 0, 0); + temp_r31->unk_18[3] = espEntry(0x260020, 0, 0); + espDispOff(temp_r31->unk_18[0]); + espDispOff(temp_r31->unk_18[1]); + espDispOff(temp_r31->unk_18[2]); + espDispOff(temp_r31->unk_18[3]); + espScaleSet(temp_r31->unk_18[0], 1.8f, 1.8f); + temp_r31->unk_08.x = (f32) 0.0f; + temp_r31->unk_08.y = (f32) 0.0f; + temp_r29 = arg0->data; + temp_r29->unk_04 = 0; + temp_r29->unk_14 = 0; +} + +void fn_1_3F7C(omObjData* arg0) { + s32 i; + unkDominationData3* temp_r29; + + temp_r29 = arg0->data; + + for (i = 0; i < ARRAY_COUNT(temp_r29->unk_18); i++) { + espKill(temp_r29->unk_18[i]); + } + + if (arg0->data) { + HuMemDirectFree(arg0->data); + } +} + +void fn_1_3FF0(omObjData* arg0) { + +} + +void fn_1_3FF4(omObjData* arg0) { + unkDominationData3* temp_r30; + unkDominationData3* temp_r31; + + temp_r31 = arg0->data; + if (temp_r31->unk_14 == 0) { + espDispOn(temp_r31->unk_18[0]); + espDispOn(temp_r31->unk_18[1]); + espDispOn(temp_r31->unk_18[2]); + espDispOn(temp_r31->unk_18[3]); + temp_r31->unk_20 = 0.0f; + } + if (temp_r31->unk_20 < 1.0f) { + espTPLvlSet(temp_r31->unk_18[0], temp_r31->unk_20); + espTPLvlSet(temp_r31->unk_18[1], temp_r31->unk_20); + espTPLvlSet(temp_r31->unk_18[2], temp_r31->unk_20); + espTPLvlSet(temp_r31->unk_18[3], temp_r31->unk_20); + temp_r31->unk_20 += 0.1f; + } + + if (temp_r31->unk_14++ >= 0x3C) { + temp_r30 = arg0->data; + temp_r30->unk_04 = 2; + temp_r30->unk_14 = 0; + } +} + +void fn_1_40F4(omObjData* arg0) { + unkDominationData3* temp_r30; + unkDominationData3* temp_r31; + + temp_r31 = arg0->data; + if (temp_r31->unk_20 > 0.0f) { + espTPLvlSet(temp_r31->unk_18[0], temp_r31->unk_20); + espTPLvlSet(temp_r31->unk_18[1], temp_r31->unk_20); + espTPLvlSet(temp_r31->unk_18[2], temp_r31->unk_20); + espTPLvlSet(temp_r31->unk_18[3], temp_r31->unk_20); + temp_r31->unk_20 -= 0.05; + return; + } + espDispOff(temp_r31->unk_18[0]); + espDispOff(temp_r31->unk_18[1]); + espDispOff(temp_r31->unk_18[2]); + espDispOff(temp_r31->unk_18[3]); + temp_r30 = arg0->data; + temp_r30->unk_04 = 0; + temp_r30->unk_14 = 0; +} + +f32 pad2[1] = {0.0f}; diff --git a/src/REL/modeltestDll/main.c b/src/REL/modeltestDll/main.c index 444cea7a..f72c1fc2 100644 --- a/src/REL/modeltestDll/main.c +++ b/src/REL/modeltestDll/main.c @@ -1,3 +1,4 @@ +#define HUSPR_USE_OLD_DEFS #include "math.h" #include "game/chrman.h" #include "game/object.h" diff --git a/src/REL/w01Dll/main.c b/src/REL/w01Dll/main.c new file mode 100755 index 00000000..96a8cd79 --- /dev/null +++ b/src/REL/w01Dll/main.c @@ -0,0 +1,2558 @@ +#include "REL/w01Dll.h" +#include "REL/board_executor.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/window.h" +#include "game/wipe.h" +#include "game/board/audio.h" +#include "game/board/boo_house.h" +#include "game/board/com.h" +#include "game/board/lottery.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/shop.h" +#include "game/board/space.h" +#include "game/board/star.h" +#include "game/board/ui.h" +#include "game/board/view.h" +#include "game/board/window.h" +#include "game/board/map_object.h" + +#include "dolphin.h" +#include "math.h" + +typedef struct { + struct { + u8 unk00_field0 : 1; + }; +} Bss10Work; + +typedef struct { + struct { + u8 unk00_field0 : 1; + u8 unk00_field1 : 3; + u8 unk00_field2 : 1; + u8 unk00_field3 : 1; + }; + u8 unk01; + u8 unk02; + char unk03[1]; + s16 unk04; + char unk06[2]; + float unk08; +} Bss18Work; + +typedef struct { + /* 0x00 */ s8 unk00; + /* 0x01 */ s8 unk01; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; + /* 0x08 */ float unk08; + /* 0x0C */ char unk0C[4]; + /* 0x10 */ float unk10; + /* 0x14 */ Vec unk14; + /* 0x20 */ Mtx unk20; +} BssCData; // Size 0x50 + +typedef struct { + struct { + u8 unk00_field0 : 1; + }; + s8 unk01; + char unk02[2]; + BssCData *unk04; +} BssCWork; + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ float unk04; + /* 0x08 */ Vec unk08; + /* 0x14 */ Vec unk14; +} Bss20Data; // Size 0x20 + +typedef struct { + struct { + u8 unk00_field0 : 1; + }; + u8 unk01; + char unk02[2]; + Bss20Data *unk04; +} Bss20Work; + +static void fn_1_730(void); +static void fn_1_774(void); +static s32 fn_1_778(void); +static s32 fn_1_814(void); +static void fn_1_9E8(void); +static void fn_1_D00(void); +static void fn_1_D04(void); +static void fn_1_1254(void); +static void fn_1_128C(void); +static void fn_1_130C(void); +static s32 fn_1_157C(void); +static void fn_1_1670(void); +static void fn_1_1700(void); +static void fn_1_1990(void); +static void fn_1_1AD8(BoardCameraData *camera); +static void fn_1_1B3C(void); +static void fn_1_1EE4(void); +static void fn_1_1F2C(omObjData *arg0); +static void fn_1_1FA4(void); +static float fn_1_2524(void); +static void fn_1_276C(void); +static void fn_1_2F18(void); +static void fn_1_3350(void); +static void fn_1_3514(s32 arg0); +static void fn_1_35B4(s32 arg0); +static void fn_1_3624(void); +static void fn_1_45F4(void); +static void fn_1_4774(void); +static void fn_1_4864(void); +static s32 fn_1_48B4(void); +static void fn_1_4E14(void); +static void fn_1_4FA8(void); +static void fn_1_4FD8(void); +static void fn_1_50D4(void); +static void fn_1_53B8(void); +static void fn_1_543C(void); +static void fn_1_5694(s32 arg0); +static void fn_1_586C(s32 arg0, s32 arg1); +static void fn_1_592C(void); +static void fn_1_5B2C(void); +static void fn_1_5B40(void); +static BOOL fn_1_5CD0(void); +static void fn_1_5D08(void); +static void fn_1_6098(omObjData *arg0); +static void fn_1_6194(Bss18Work *arg0, omObjData *arg1); +static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1); +static void fn_1_6A14(Bss18Work *arg0, omObjData *arg1); +static void fn_1_6BC0(Bss18Work *arg0, omObjData *arg1); +static void fn_1_6FB4(Bss18Work *arg0, omObjData *arg1); +static void fn_1_7528(s32 arg0, s32 arg1); +static void fn_1_77EC(s32 arg0, s32 arg1); +static void fn_1_7894(void); +static void fn_1_7A64(void); +static void fn_1_852C(void); +static void fn_1_87AC(void); +static void fn_1_87E0(omObjData *arg0); +static void fn_1_8988(BssCData *arg0, omObjData *arg1); +static void fn_1_8A50(BssCData *arg0, omObjData *arg1); +static void fn_1_8B6C(BssCData *arg0, omObjData *arg1); +static void fn_1_8DDC(BssCData *arg0, omObjData *arg1); +static void fn_1_918C(BssCData *arg0, omObjData *arg1); +static void fn_1_927C(BssCData *arg0, omObjData *arg1); +static void fn_1_932C(BssCData *arg0); +static s32 fn_1_94A8(BssCData *arg0); +static void fn_1_95F4(BssCData *arg0); +static void fn_1_97F4(void); +static void fn_1_98EC(void); +static void fn_1_9920(omObjData *arg0); +static void fn_1_9A24(Bss20Work *arg0); +static void fn_1_9BBC(Bss20Work *arg0); + + +static BoardMapObject lbl_1_data_0[MAPOBJ_MAX] = { + { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 8) }, + { { 0.0f, 700.0f, 300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 9) }, + { { -2025.0f, 100.0f, 1950.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { 1725.0f, 200.0f, -1650.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { 2757.974f, 200.0f, -536.781f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { -2750.0f, 300.0f, -2150.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 12) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 13) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 14) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 15) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 17) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 21) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 22) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 23) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 24) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 25) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 26) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 27) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) } +}; + +s16 lbl_1_bss_6C4[MAPOBJ_MAX]; + +static s32 *lbl_1_bss_6C0; +static s16 lbl_1_bss_6B6[5]; +static s8 lbl_1_bss_6B4; +static s8 lbl_1_bss_6B3; +static s8 lbl_1_bss_6B2; +static s8 lbl_1_bss_6B1; +static s8 lbl_1_bss_6B0; +static s16 lbl_1_bss_6AE; +static s16 lbl_1_bss_6AC; +static float lbl_1_bss_6A8; +static Mtx lbl_1_bss_678; +static float lbl_1_bss_674; +static float lbl_1_bss_670; +static float lbl_1_bss_66C; +static Vec lbl_1_bss_660; +static Vec lbl_1_bss_654; +static Vec lbl_1_bss_648; +static float lbl_1_bss_644; +static float lbl_1_bss_640; +static float lbl_1_bss_63C; +static Vec lbl_1_bss_630; +static Vec lbl_1_bss_624; +static Vec lbl_1_bss_618; +static s8 lbl_1_bss_600[24]; +static s16 lbl_1_bss_5D0[24]; +static s16 lbl_1_bss_5CC[2]; +static s8 lbl_1_bss_2C[1440]; +static s8 lbl_1_bss_2A[2]; // padding +static s8 lbl_1_bss_29; +static s8 lbl_1_bss_28; +static s16 lbl_1_bss_26; +static s16 lbl_1_bss_24; +static omObjData *lbl_1_bss_20; +static s8 lbl_1_bss_1C; +static omObjData *lbl_1_bss_18; +static Process *lbl_1_bss_14; +static omObjData *lbl_1_bss_10; +static omObjData *lbl_1_bss_C; +static Process *lbl_1_bss_8; +static Process *lbl_1_bss_4; +UnkBoardDataStruct *lbl_1_bss_0; + +static s16 lbl_1_data_528 = -1; +static s16 lbl_1_data_52A = -1; +static s16 lbl_1_data_52C = -1; +static s16 lbl_1_data_52E = -1; +static s16 lbl_1_data_530 = -1; + +static s32 lbl_1_data_534[] = { + DATA_MAKE_NUM(DATADIR_W01, 30), + -1 +}; + +static s32 lbl_1_data_53C[] = { + DATA_MAKE_NUM(DATADIR_BGUEST, 1), + -1 +}; + +void BoardCreate(void) { + BoardMapObject *temp_r30; + s32 sp8; + s32 i; + + sp8 = GWBoardGet(); + lbl_1_bss_0 = (UnkBoardDataStruct*) GWSystem.board_data; + BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W01, 0)); + lbl_1_data_528 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 1), NULL, 0); + fn_8006DDE8(lbl_1_data_528, -1.0f); + BoardModelPosSet(lbl_1_data_528, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_528, 0, 0x40000001); + lbl_1_data_52A = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 2), NULL, 0); + fn_8006DDE8(lbl_1_data_52A, -1.0f); + BoardModelPosSet(lbl_1_data_52A, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_52A, 0, 0x40000001); + lbl_1_data_52C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 29), lbl_1_data_534, 0); + BoardModelPosSet(lbl_1_data_52C, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_52C, 1, 0x40000001); + lbl_1_data_52E = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 0), lbl_1_data_53C, 0); + BoardModelPosSet(lbl_1_data_52E, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_52E, 1, 0x40000001); + lbl_1_data_530 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 11), NULL, 0); + BoardModelMotionStart(lbl_1_data_530, 0, 0x40000001); + BoardLightHookSet(fn_1_730, fn_1_774); + for (i = 0; i < MAPOBJ_MAX; i++) { + temp_r30 = &lbl_1_data_0[i]; + if (temp_r30->data_num != -1) { + if (i == 2 || i == 3 || i == 4 || i == 5) { + lbl_1_bss_6C0 = lbl_1_data_53C; + } else { + lbl_1_bss_6C0 = NULL; + } + lbl_1_bss_6C4[i] = BoardModelCreate(temp_r30->data_num, lbl_1_bss_6C0, 0); + BoardModelPosSetV(lbl_1_bss_6C4[i], &temp_r30->pos); + BoardModelRotSetV(lbl_1_bss_6C4[i], &temp_r30->rot); + BoardModelScaleSetV(lbl_1_bss_6C4[i], &temp_r30->scale); + BoardModelVisibilitySet(lbl_1_bss_6C4[i], 1); + } + } + BoardModelMotionStart(lbl_1_bss_6C4[2], 1, 0x40000001); + BoardModelMotionStart(lbl_1_bss_6C4[3], 1, 0x40000001); + BoardModelMotionStart(lbl_1_bss_6C4[4], 1, 0x40000001); + BoardModelMotionStart(lbl_1_bss_6C4[5], 1, 0x40000001); + fn_1_543C(); + fn_1_9E8(); + fn_1_1700(); + BoardSpaceWalkEventFuncSet(fn_1_814); + BoardSpaceWalkMiniEventFuncSet(fn_1_157C); + BoardSpaceLandEventFuncSet(fn_1_778); + BoardStarHostSet(lbl_1_data_52C); + BoardBooHouseHostSet(lbl_1_data_52E); + BoardLotteryHostSet(lbl_1_data_52E); + BoardShopHostSet(lbl_1_data_52E); + BoardJunctionMaskSet(0xC000); + BoardJunctionMaskSet(0x3000); +} + +void BoardDestroy(void) { + s32 i; + + fn_1_4864(); + fn_1_D00(); + for (i = 0; i < 33; i++) { + if (lbl_1_bss_6C4[i] != 0) { + BoardModelKill(lbl_1_bss_6C4[i]); + lbl_1_bss_6C4[i] = 0; + } + } + if (lbl_1_data_530 != -1) { + BoardModelKill(lbl_1_data_530); + lbl_1_data_530 = -1; + } + if (lbl_1_data_52E != -1) { + BoardModelKill(lbl_1_data_52E); + lbl_1_data_52E = -1; + } + if (lbl_1_data_52C != -1) { + BoardModelKill(lbl_1_data_52C); + lbl_1_data_52C = -1; + } + if (lbl_1_data_528 != -1) { + BoardModelKill(lbl_1_data_528); + lbl_1_data_528 = -1; + } + if (lbl_1_data_52A != -1) { + BoardModelKill(lbl_1_data_52A); + lbl_1_data_52A = -1; + } + BoardSpaceDestroy(); +} + +static void fn_1_730(void) { + s16 var_r31; + + var_r31 = BoardModelIDGet(lbl_1_data_528); + Hu3DModelLightInfoSet(var_r31, 1); +} + +static void fn_1_774(void) { +} + +static s32 fn_1_778(void) { + s32 temp_r31; + s32 temp_r30; + u32 temp_r29; + + temp_r31 = GWSystem.player_curr; + temp_r30 = GWPlayer[temp_r31].space_curr; + temp_r29 = BoardSpaceFlagGet(0, temp_r30); + if (temp_r29 & 0x800) { + fn_1_77EC(temp_r31, temp_r30); + } else if (temp_r29 & 0x400) { + fn_1_7528(temp_r31, temp_r30); + } +} + +static s32 fn_1_814(void) { + s32 temp_r27; + s32 var_r30; + s32 var_r29; + s32 var_r26; + BoardSpace *temp_r31; + BoardSpace *temp_r28; + + temp_r27 = GWSystem.player_curr; + temp_r31 = BoardSpaceGet(0, GWPlayer[temp_r27].space_curr); + if (temp_r31->flag & 0x3000) { + if (BoardPlayerSizeGet(temp_r27) == 2 || GWPlayer[temp_r27].bowser_suit) { + return 0; + } + if (temp_r31->flag & 0x2000) { + if (lbl_1_bss_0->unk00_field0 != 0) { + return 0; + } + } else if (temp_r31->flag & 0x1000) { + if (lbl_1_bss_0->unk00_field0 != 1) { + return 0; + } + } + fn_1_4FD8(); + return 1; + } + var_r29 = -1; + for (var_r30 = 0; var_r30 < temp_r31->link_cnt; var_r30++) { + if (temp_r31->link[var_r30] != -1) { + temp_r28 = BoardSpaceGet(0, temp_r31->link[var_r30]); + if (temp_r28->flag & 0x8000) { + var_r29 = 0; + var_r26 = temp_r31->link[var_r30]; + break; + } else if (temp_r28->flag & 0x4000) { + var_r29 = 1; + var_r26 = temp_r31->link[var_r30]; + break; + } + } + } + if (var_r29 != -1) { + fn_1_586C(var_r29, var_r26); + return 1; + } + return 0; +} + +static void fn_1_9E8(void) { + BoardModelVisibilitySet(lbl_1_bss_6C4[6], 1); + BoardModelVisibilitySet(lbl_1_bss_6C4[7], 0); + BoardModelVisibilitySet(lbl_1_bss_6C4[8], 0); + BoardModelVisibilitySet(lbl_1_bss_6C4[9], 0); + BoardModelVisibilitySet(lbl_1_bss_6C4[10], 0); + BoardModelVisibilitySet(lbl_1_bss_6C4[11], 0); + BoardModelVisibilitySet(lbl_1_bss_6C4[12], 0); + BoardModelVisibilitySet(lbl_1_bss_6C4[13], 0); + BoardModelVisibilitySet(lbl_1_bss_6C4[14], 1); + BoardModelVisibilitySet(lbl_1_bss_6C4[15], 1); + BoardModelMotionStart(lbl_1_bss_6C4[6], 0, 0); + BoardModelMotionSpeedSet(lbl_1_bss_6C4[6], 0.0f); + BoardModelMotionStart(lbl_1_bss_6C4[14], 0, 0x40000001); + BoardModelMotionStart(lbl_1_bss_6C4[15], 0, 0x40000001); + BoardModelHookSet(lbl_1_bss_6C4[6], "amida_ban_07-sirenr", lbl_1_bss_6C4[14]); + BoardModelHookSet(lbl_1_bss_6C4[6], "amida_ban_07-sirenl", lbl_1_bss_6C4[15]); + BoardModelVisibilitySet(lbl_1_bss_6C4[16], 1); + BoardModelVisibilitySet(lbl_1_bss_6C4[17], 1); + BoardModelVisibilitySet(lbl_1_bss_6C4[18], 1); + BoardModelVisibilitySet(lbl_1_bss_6C4[19], 0); + BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0); + BoardModelVisibilitySet(lbl_1_bss_6C4[21], 1); + BoardModelVisibilitySet(lbl_1_bss_6C4[22], 1); + BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0); + BoardModelMotionSpeedSet(lbl_1_bss_6C4[21], 0.0f); + BoardModelMotionStart(lbl_1_bss_6C4[18], 0, 0); + BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], 0.0f); + BoardModelExistDupe(lbl_1_bss_6C4[16], 0); + BoardModelMotionStart(lbl_1_bss_6C4[16], 0, 0x40000001); + BoardModelMotionStart(lbl_1_bss_6C4[17], 0, 0x40000001); + BoardModelMotionStart(lbl_1_bss_6C4[22], 0, 0x40000001); + BoardModelHookSet(lbl_1_bss_6C4[21], "m_goraund_01-flag1", lbl_1_bss_6C4[22]); +} + +static void fn_1_D00(void) { +} + +static void fn_1_D04(void) { + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + s8 sp8[4]; + s32 temp_r28; + s32 temp_r3; + s32 var_r26; + s32 var_r25; + s32 temp_r30; + s32 i; + s32 j; + + temp_r30 = GWSystem.player_curr; + var_r26 = 0; + if (BoardPlayerItemCount(temp_r30) == 3) { + BoardWinCreate(0, MAKE_MESSID(10, 9), 0); + BoardWinWait(); + BoardWinKill(); + HuPrcEnd(); + } + lbl_1_bss_6B6[0] = 0; + i = 1; + while (i < 4) { + lbl_1_bss_6B6[i] = frandmod(14); + if (lbl_1_bss_6B6[i] != 10 && lbl_1_bss_6B6[i] != 13) { + for (j = 0; j < i; j++) { + if (lbl_1_bss_6B6[i] == lbl_1_bss_6B6[j]) { + lbl_1_bss_6B6[i] = -1; + } + } + if (lbl_1_bss_6B6[i] != -1) { + i++; + } + } + } + fn_1_D740(lbl_1_bss_6B6); + for (i = 0; i < 4; i++) { + sp8[i] = lbl_1_bss_6B6[i]; + } + if (BoardComPreferItemGet(temp_r30, sp8, 4) != -1) { + var_r26 = 1; + } + HuAudFXPlay(0x40D); + HuAudFXPlay(0x40E); + BoardModelAttrReset(lbl_1_bss_6C4[21], 0x40000004); + BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0); + temp_r28 = GWPlayer[temp_r30].space_curr; + temp_r3 = BoardSpaceLinkFlagSearch(0, temp_r28, 0x02000000); + BoardSpacePosGet(0, temp_r3, &sp3C); + sp30.x = 150.0f; + sp30.y = 0.0f; + sp30.z = 0.0f; + sp24.x = -45.0f; + sp24.y = 0.0f; + sp24.z = 0.0f; + BoardCameraMotionStartEx(lbl_1_bss_6C4[4], &sp24, &sp30, 1880.0f, -1.0f, 21); + BoardCameraMotionWait(); + BoardWinCreateChoice(2, MAKE_MESSID(10, 0), 0, 0); + if (GWPlayer[temp_r30].com) { + if (var_r26 != 0) { + BoardComKeySetLeft(); + } else { + BoardComKeySetRight(); + } + } + BoardWinWait(); + BoardWinKill(); + var_r25 = BoardWinChoiceGet(); + if (var_r25 != 0) { + BoardWinCreate(2, MAKE_MESSID(10, 4), 0); + BoardWinWait(); + BoardWinKill(); + BoardMGExit(); + HuAudFXPlay(0x40F); + BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0x40000004); + while (!BoardModelMotionEndCheck(lbl_1_bss_6C4[21])) { + HuPrcVSleep(); + } + BoardModelMotionSpeedSet(lbl_1_bss_6C4[21], 0.0f); + BoardModelAttrReset(lbl_1_bss_6C4[21], 0x40000004); + while (BoardMGDoneFlagGet() != 1) { + HuPrcVSleep(); + } + BoardMGDoneFlagSet(0); + fn_1_DD84(); + HuPrcEnd(); + } + BoardPlayerMoveBetween(temp_r30, temp_r28, temp_r3); + while (GWPlayer[temp_r30].moving) { + HuPrcVSleep(); + } + BoardPlayerMotionStart(temp_r30, 1, 0x40000001); + sp18.x = 0.0f; + sp18.y = 0.0f; + sp18.z = 0.0f; + spC.x = -45.0f; + spC.y = 0.0f; + spC.z = 0.0f; + BoardCameraMotionStartEx(lbl_1_bss_6C4[21], &spC, &sp18, 1200.0f, -1.0f, 21); + BoardCameraMotionWait(); + fn_1_DE94(); + while (BoardEventFlagGet() != 0) { + HuPrcVSleep(); + } + BoardCameraMotionWait(); + BoardAudSeqPause(0, 0, 1000); + while (GWPlayer[temp_r30].moving) { + HuPrcVSleep(); + } + BoardPlayerMotionStart(temp_r30, 1, 0x40000001); + HuPrcEnd(); +} + +static void fn_1_1254(void) { + BoardWinKill(); + CharModelDataClose(-1); + lbl_1_bss_4 = NULL; +} + +static void fn_1_128C(void) { + lbl_1_bss_4 = HuPrcChildCreate(fn_1_D04, 0x2003, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_4, fn_1_1254); + while (lbl_1_bss_4) { + HuPrcVSleep(); + } +} + +static void fn_1_130C(void) { + Vec sp20; + Vec sp14; + Vec sp8; + s32 temp_r31; + s32 var_r28; + s32 temp_r30; + s32 temp_r3; + + temp_r31 = GWSystem.player_curr; + BoardWinCreateChoice(2, MAKE_MESSID(11, 0), 0, 0); + if (GWPlayer[temp_r31].com) { + BoardComKeySetLeft(); + } + BoardWinWait(); + BoardWinKill(); + var_r28 = BoardWinChoiceGet(); + if (var_r28 != 0) { + BoardWinCreate(2, MAKE_MESSID(11, 4), 0); + BoardWinWait(); + BoardWinKill(); + BoardMGExit(); + return; + } + BoardModelMotionStart(lbl_1_bss_6C4[6], 0, 0); + sp14.x = 0.0f; + sp14.y = 0.0f; + sp14.z = 0.0f; + sp8.x = 0.0f; + sp8.y = 170.0f; + sp8.z = 0.0f; + BoardCameraMotionStartEx(lbl_1_bss_6C4[6], &sp14, &sp8, 1200.0f, 25.0f, 21); + temp_r30 = GWPlayer[temp_r31].space_curr; + temp_r3 = BoardSpaceLinkFlagSearch(0, temp_r30, 0x02000000); + BoardSpacePosGet(0, temp_r3, &sp20); + BoardPlayerMoveBetween(temp_r31, temp_r30, temp_r3); + BoardPlayerMotionStart(temp_r31, 1, 0x40000001); + BoardAudSeqPause(0, 1, 1000); + fn_1_9DD8(); + while (GWPlayer[temp_r31].moving) { + HuPrcVSleep(); + } + while (BoardEventFlagGet() != 0) { + HuPrcVSleep(); + } + BoardAudSeqPause(0, 0, 1000); + while (GWPlayer[temp_r31].moving) { + HuPrcVSleep(); + } + BoardPlayerMotionStart(temp_r31, 1, 0x40000001); +} + +static s32 fn_1_157C(void) { + s32 temp_r31; + s16 temp_curr; + + temp_curr = GWPlayer[GWSystem.player_curr].space_curr; + temp_r31 = BoardSpaceFlagGet(0, temp_curr) & 0x600000; + BoardDiceDigit2DShowSet(0); + if (temp_r31 == 0x200000) { + fn_1_130C(); + } else if (temp_r31 == 0x400000) { + fn_1_128C(); + } + BoardDiceDigit2DShowSet(1); +} + +static void fn_1_1670(void) { + if (lbl_1_bss_0->unk00_field0 == 0) { + BoardModelVisibilitySet(lbl_1_bss_6C4[2], 1); + BoardModelVisibilitySet(lbl_1_bss_6C4[3], 0); + } else { + BoardModelVisibilitySet(lbl_1_bss_6C4[2], 0); + BoardModelVisibilitySet(lbl_1_bss_6C4[3], 1); + } +} + +static void fn_1_1700(void) { + Vec sp8; + Mtx sp14; + + lbl_1_bss_6B1 = 0; + lbl_1_bss_6AE = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 10), NULL, 0); + lbl_1_bss_644 = BoardModelMotionMaxTimeGet(lbl_1_bss_6AE); + BoardModelVisibilitySet(lbl_1_bss_6AE, 0); + memset(lbl_1_bss_2C, 0, sizeof(lbl_1_bss_2C)); + if (BoardSpaceRead(1, DATA_MAKE_NUM(DATADIR_W01, 6)) == 0) { + if (lbl_1_bss_0->unk00_field0 == 0) { + BoardSpaceFlagPosGet(1, 0x2000, &sp8); + BoardModelMotionTimeSet(lbl_1_bss_6AE, lbl_1_bss_644); + lbl_1_bss_63C = -90.0f; + } else { + BoardSpaceFlagPosGet(1, 0x1000, &sp8); + BoardModelMotionTimeSet(lbl_1_bss_6AE, 0.0f); + lbl_1_bss_63C = 90.0f; + } + lbl_1_bss_654 = sp8; + BoardModelPosSetV(lbl_1_bss_6C4[0], &sp8); + BoardModelRotSet(lbl_1_bss_6C4[0], 0.0f, lbl_1_bss_63C, 0.0f); + BoardModelExistDupe(lbl_1_bss_6C4[0], 1); + BoardModelExistDupe(lbl_1_bss_6C4[1], 1); + fn_8006DDE8(lbl_1_bss_6C4[1], 500.0f); + PSMTXIdentity(sp14); + BoardModelMtxSet(lbl_1_bss_6C4[0], &sp14); + fn_1_1670(); + } +} + +static void fn_1_1990(void) { + Vec sp10; + float var_f31; + s32 var_r29; + s32 var_r30; + s16 sp8[3]; + BoardSpace *temp_r31; + BoardSpace *temp_r3; + + var_r29 = lbl_1_bss_6AC; + var_f31 = 0.0f; + while (TRUE) { + temp_r31 = BoardSpaceGet(1, var_r29); + if (lbl_1_bss_0->unk00_field0 == 0) { + var_r30 = temp_r31->link[0]; + } else { + BoardSpaceLinkTargetListGet(1, var_r29, sp8); + var_r30 = sp8[0]; + } + if (var_r30 == 0) { + break; + } + temp_r3 = BoardSpaceGet(1, var_r30); + if (!temp_r3) { + temp_r3 = temp_r31; + break; + } + PSVECSubtract(&temp_r3->pos, &temp_r31->pos, &sp10); + var_f31 += PSVECMag(&sp10); + if (var_f31 >= lbl_1_bss_640) { + break; + } + var_r29 = var_r30; + } + if (temp_r31->flag & 8) { + lbl_1_bss_6B3 = 1; + } else { + lbl_1_bss_6B3 = 0; + } +} + +static void fn_1_1AD8(BoardCameraData *camera) { + camera->pos = lbl_1_bss_630; + camera->up = lbl_1_bss_624; + camera->target = lbl_1_bss_618; +} + +static void fn_1_1B3C(void) { + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + Mtx sp48; + + PSVECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &sp30); + if (lbl_1_bss_6B3 != 0) { + BoardModelPosGet(lbl_1_bss_6C4[1], &sp3C); + PSVECSubtract(&sp3C, &lbl_1_bss_654, &sp18); + PSVECNormalize(&sp18, &sp18); + sp24 = lbl_1_bss_648; + spC = lbl_1_bss_654; + BoardMTXCalcLookAt(sp48, &spC, &sp18, &sp24); + PSMTXTranspose(sp48, lbl_1_bss_678); + PSMTXRotRad(sp48, 'z', MTXDegToRad(lbl_1_bss_660.z)); + PSMTXConcat(lbl_1_bss_678, sp48, lbl_1_bss_678); + } else { + if (sp30.z != 0.0f || sp30.x != 0.0f) { + lbl_1_bss_660.y = 180.0 * (atan2(sp30.x, sp30.z) / M_PI); + lbl_1_bss_660.x = -(180.0 * (atan2(sp30.y, sqrtf(sp30.x * sp30.x + sp30.z * sp30.z)) / M_PI)); + } else { + lbl_1_bss_660.x = lbl_1_bss_660.y = 0.0f; + } + PSMTXRotRad(lbl_1_bss_678, 'z', MTXDegToRad(lbl_1_bss_660.z)); + PSMTXRotRad(sp48, 'x', MTXDegToRad(lbl_1_bss_660.x)); + PSMTXConcat(sp48, lbl_1_bss_678, lbl_1_bss_678); + PSMTXRotRad(sp48, 'y', MTXDegToRad(lbl_1_bss_660.y)); + PSMTXConcat(sp48, lbl_1_bss_678, lbl_1_bss_678); + } +} + +static void fn_1_1EE4(void) { + Bss10Work *temp_r31; + + if (lbl_1_bss_10) { + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_10, Bss10Work); + temp_r31->unk00_field0 = 1; + } +} + +static void fn_1_1F2C(omObjData *arg0) { + Bss10Work *temp_r31 = OM_GET_WORK_PTR(arg0, Bss10Work); + + if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { + omDelObjEx(HuPrcCurrentGet(), arg0); + lbl_1_bss_10 = NULL; + return; + } + fn_1_1FA4(); +} + +static void fn_1_1FA4(void) { + Vec sp18; + Vec spC; + float temp_f28; + float temp_f29; + float var_f27; + + spC.x = lbl_1_bss_648.x; + spC.y = lbl_1_bss_648.y + 200.0f; + spC.z = lbl_1_bss_648.z; + PSVECSubtract(&spC, &lbl_1_bss_618, &spC); + PSVECScale(&spC, &spC, 0.08f); + PSVECAdd(&spC, &lbl_1_bss_618, &lbl_1_bss_618); + PSVECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &spC); + if (spC.x != 0.0f || spC.z != 0.0f) { + temp_f29 = atan2f(spC.y, sqrtf(spC.x * spC.x + spC.z * spC.z)); + temp_f28 = atan2f(-spC.x, -spC.z); + } else { + temp_f29 = temp_f28 = 0.0f; + return; + } + temp_f29 += -0.27925268f; + if (lbl_1_bss_6B3 != 0) { + if (lbl_1_bss_66C < 0.08f) { + lbl_1_bss_66C -= 0.00033333333f; + } + BoardModelPosGet(lbl_1_bss_6C4[1], &sp18); + if (lbl_1_bss_0->unk00_field0 == 0) { + var_f27 = -2500.0f; + } else { + var_f27 = 2500.0f; + } + sp18.x = sp18.x + var_f27 * sin(1.4137166738510132); // 81 * M_PI / 180.0 + sp18.y = sp18.y + -150.0f; + sp18.z = sp18.z + var_f27 * cos(1.4137166738510132); // 81 * M_PI / 180.0 + PSVECSubtract(&sp18, &lbl_1_bss_630, &spC); + PSVECScale(&spC, &spC, lbl_1_bss_66C); + PSVECAdd(&spC, &lbl_1_bss_630, &lbl_1_bss_630); + } else { + if (lbl_1_bss_66C < 0.08f) { + lbl_1_bss_66C += 0.00066666666f; + } + spC.x = 400.0 * (sin(temp_f28) * cos(temp_f29)); + spC.y = 400.0 * -sin(temp_f29); + spC.z = 400.0 * (cos(temp_f28) * cos(temp_f29)); + PSVECAdd(&lbl_1_bss_618, &spC, &spC); + PSVECSubtract(&spC, &lbl_1_bss_630, &spC); + PSVECScale(&spC, &spC, lbl_1_bss_66C); + PSVECAdd(&spC, &lbl_1_bss_630, &lbl_1_bss_630); + } +} + +static float fn_1_2524(void) { + Vec sp24; + Vec sp18; + Vec spC; + float var_f30; + s16 sp8; + s32 var_r29; + s32 i; + + sp24 = lbl_1_bss_654; + if (GWPlayer[lbl_1_bss_6B4].com) { + if (lbl_1_bss_6B3 != 0) { + return 0.0f; + } + for (i = 0; i < 24; i++) { + if (lbl_1_bss_600[i] == 0) { + BoardModelPosGet(lbl_1_bss_5D0[i], &sp18); + PSVECSubtract(&sp18, &sp24, &spC); + if (!(PSVECMag(&spC) > 400.0f)) { + break; + } + } + } + if (i == 24) { + return 0.0f; + } + PSVECSubtract(&sp18, &sp24, &spC); + var_f30 = 180.0 * (atan2(spC.x, spC.z) / M_PI); + if (var_f30 > 0.0f) { + var_f30 = 45.0f; + } else { + var_f30 = -45.0f; + } + } else { + var_r29 = GWPlayer[lbl_1_bss_6B4].port; + sp8 = HuPadStkX[var_r29]; + OSs16tof32(&sp8, &var_f30); + var_f30 = var_f30 * 0.625f; + } + return var_f30; +} + +static void fn_1_276C(void) { + Vec sp58; + Vec sp40; + Vec sp34; + Vec sp28; + Vec sp1C; + float temp_f26; + float var_f27; + Mtx sp70; + + fn_1_1B3C(); + if (lbl_1_bss_6B1 != 0) { + lbl_1_bss_660.z = 0.0f; + return; + } + var_f27 = fn_1_2524(); + BoardDAngleCalcRange(&lbl_1_bss_660.z, var_f27, 5.0f); + temp_f26 = 6.0f + 6.0f * (lbl_1_bss_660.z / 45.0f) - 1.0f; + if (lbl_1_bss_660.z > 22.5f) { + BoardPlayerMotionStart(lbl_1_bss_6B4, lbl_1_bss_5CC[1], 0); + BoardPlayerMotionTimeSet(lbl_1_bss_6B4, temp_f26); + } else if (lbl_1_bss_660.z < -22.5f) { + BoardPlayerMotionStart(lbl_1_bss_6B4, lbl_1_bss_5CC[1], 0); + BoardPlayerMotionTimeSet(lbl_1_bss_6B4, temp_f26); + } else { + BoardPlayerMotionShiftSet(lbl_1_bss_6B4, lbl_1_bss_5CC[0], 0.0f, 10.0f, 0x40000001); + } + fn_1_2F18(); +} + +static void fn_1_2F18(void) { + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + float var_f29; + Mtx spD8; + Mtx spA8; + Mtx sp78; + Mtx sp48; + s32 i; + + if (lbl_1_bss_6B3 == 0) { + var_f29 = lbl_1_bss_660.z; + if (var_f29 > 180.0f) { + var_f29 -= 360.0f; + } + BoardModelPosGet(lbl_1_bss_6C4[0], &spC); + PSVECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &sp18); + if (sp18.z != 0.0f || sp18.x != 0.0f) { + sp24.y = 180.0 * (atan2(sp18.x, sp18.z) / M_PI); + sp24.x = -(180.0 * (atan2(sp18.y, sqrtf(sp18.x * sp18.x + sp18.z * sp18.z)) / M_PI)); + } else { + sp24.x = sp24.y = 0.0f; + } + PSMTXTrans(spD8, 0.0f, 180.0f, 0.0f); + PSMTXRotRad(spA8, 'x', MTXDegToRad(sp24.x)); + PSMTXRotRad(sp78, 'y', MTXDegToRad(sp24.y)); + PSMTXRotRad(sp48, 'z', MTXDegToRad(var_f29)); + PSMTXConcat(spA8, sp48, sp48); + PSMTXConcat(sp78, sp48, sp48); + PSMTXConcat(sp48, spD8, spD8); + sp30.x = spD8[0][3]; + sp30.y = spD8[1][3]; + sp30.z = spD8[2][3]; + PSVECAdd(&sp30, &spC, &sp30); + if (var_f29 < 27.000002f && var_f29 > -27.000002f) { + return; + } + for (i = 0; i < 24; i++) { + if (lbl_1_bss_600[i] == 0) { + BoardModelPosGet(lbl_1_bss_5D0[i], &sp3C); + if (BoardVecMaxDistXZCheck(&sp3C, &sp30, 180.0f)) { + CharModelLayerSetAll(2); + CharModelCoinEffectCreate(1, &sp3C); + BoardModelVisibilitySet(lbl_1_bss_5D0[i], 0); + BoardPlayerCoinsAdd(lbl_1_bss_6B4, 1); + HuAudFXPlay(7); + lbl_1_bss_600[i] = 1; + break; + } + } + } + } +} + +static s16 lbl_1_data_580 = -1; + +static void fn_1_3350(void) { + Vec sp8; + s16 temp_r3; + ModelData *temp_r30; + HsfObject *temp_r31; + + lbl_1_bss_674 += 0.002f; + if (lbl_1_bss_670 > 0.18f) { + lbl_1_bss_670 = 0.18f; + } else if (lbl_1_bss_670 < 0.18f) { + lbl_1_bss_670 += lbl_1_bss_674; + } + temp_r3 = BoardModelIDGet(lbl_1_bss_6AE); + temp_r30 = &Hu3DData[temp_r3]; + Hu3DMotionExec(temp_r3, temp_r30->unk_08, temp_r30->unk_64, 0); + temp_r31 = Hu3DModelObjPtrGet(temp_r3, "looppath-cube1"); + lbl_1_bss_648 = lbl_1_bss_654; + lbl_1_bss_654.x = temp_r31->data.curr.pos.x; + lbl_1_bss_654.y = temp_r31->data.curr.pos.y; + lbl_1_bss_654.z = temp_r31->data.curr.pos.z; + PSVECSubtract(&lbl_1_bss_648, &lbl_1_bss_654, &sp8); + lbl_1_bss_640 += PSVECMag(&sp8); +} + +static s32 lbl_1_data_594[8][2] = { + { DATA_MAKE_NUM(DATADIR_W01, 34), DATA_MAKE_NUM(DATADIR_W01, 42) }, + { DATA_MAKE_NUM(DATADIR_W01, 35), DATA_MAKE_NUM(DATADIR_W01, 43) }, + { DATA_MAKE_NUM(DATADIR_W01, 36), DATA_MAKE_NUM(DATADIR_W01, 44) }, + { DATA_MAKE_NUM(DATADIR_W01, 37), DATA_MAKE_NUM(DATADIR_W01, 45) }, + { DATA_MAKE_NUM(DATADIR_W01, 38), DATA_MAKE_NUM(DATADIR_W01, 46) }, + { DATA_MAKE_NUM(DATADIR_W01, 39), DATA_MAKE_NUM(DATADIR_W01, 47) }, + { DATA_MAKE_NUM(DATADIR_W01, 40), DATA_MAKE_NUM(DATADIR_W01, 48) }, + { DATA_MAKE_NUM(DATADIR_W01, 41), DATA_MAKE_NUM(DATADIR_W01, 49) } +}; + +static void fn_1_3514(s32 arg0) { + s32 temp_r30; + s32 i; + + temp_r30 = GWPlayer[arg0].character; + for (i = 0; i < 2; i++) { + lbl_1_bss_5CC[i] = BoardPlayerMotionCreate(arg0, lbl_1_data_594[temp_r30][i]); + } +} + +static void fn_1_35B4(s32 arg0) { + s32 i; + + for (i = 0; i < 2; i++) { + BoardPlayerMotionKill(arg0, lbl_1_bss_5CC[i]); + lbl_1_bss_5CC[i] = -1; + } +} + +static void fn_1_3624(void) { + Mtx sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + float temp_f28; + float var_f30; + float var_f29; + s32 temp_r19; + Bss10Work *temp_r18; + s16 sp10; + s16 var_r25; + s16 i; + + lbl_1_bss_674 = lbl_1_bss_670 = 0.0f; + lbl_1_bss_640 = 0.0f; + lbl_1_bss_660.x = 0.0f; + lbl_1_bss_660.y = 0.0f; + lbl_1_bss_660.z = 0.0f; + lbl_1_bss_6A8 = 0.0f; + lbl_1_bss_6B3 = 0; + lbl_1_bss_624.x = 0.0f; + lbl_1_bss_624.z = 0.0f; + lbl_1_bss_624.y = 1.0f; + lbl_1_bss_66C = 0.08f; + fn_1_3514(lbl_1_bss_6B4); + BoardPlayerMotionStart(lbl_1_bss_6B4, lbl_1_bss_5CC[0], 0x40000001); + BoardSpaceAttrSet(0, 1); + fn_1_97F4(); + BoardModelMotionStart(lbl_1_bss_6AE, 0, 0); + if (lbl_1_bss_0->unk00_field0 == 0) { + BoardModelMotionTimeSet(lbl_1_bss_6AE, lbl_1_bss_644); + lbl_1_bss_63C = -90.0f; + lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x2000, &sp3C); + var_r25 = BoardSpaceFlagSearch(0, 0x1000); + var_f30 = -1.0f; + } else { + BoardModelMotionTimeSet(lbl_1_bss_6AE, 0.0f); + lbl_1_bss_63C = 90.0f; + lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x1000, &sp3C); + var_r25 = BoardSpaceFlagSearch(0, 0x2000); + var_f30 = 1.0f; + } + lbl_1_bss_654 = sp3C; + lbl_1_bss_648 = lbl_1_bss_654; + BoardModelMotionSpeedSet(lbl_1_bss_6AE, lbl_1_bss_670); + BoardPlayerPosSetV(lbl_1_bss_6B4, &lbl_1_bss_654); + BoardCameraPosCalcFuncSet(fn_1_1AD8); + lbl_1_bss_10 = omAddObjEx(boardObjMan, 0x7E02, 0, 0, -1, fn_1_1F2C); + temp_r18 = OM_GET_WORK_PTR(lbl_1_bss_10, Bss10Work); + temp_r18->unk00_field0 = 0; + sp30.x = -40.0f; + sp30.z = 0.0f; + sp30.y = -lbl_1_bss_63C; + BoardCameraMotionStartEx(lbl_1_bss_6C4[0], &sp30, NULL, 150.0f, -1.0f, 2); + BoardCameraMotionWait(); + BoardModelPosGet(lbl_1_bss_6C4[0], &lbl_1_bss_618); + lbl_1_bss_630.x = lbl_1_bss_618.x + 1000.0 * (sin(sp30.y * M_PI / 180.0) * cos(sp30.x * M_PI / 180.0)); + lbl_1_bss_630.y = lbl_1_bss_618.y + 1000.0 * -sin(sp30.x * M_PI / 180.0); + lbl_1_bss_630.z = lbl_1_bss_618.z + 1000.0 * (cos(sp30.y * M_PI / 180.0) * cos(sp30.x * M_PI / 180.0)); + PSMTXRotRad(lbl_1_bss_678, 'y', MTXDegToRad(lbl_1_bss_63C)); + BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); + BoardPlayerMtxSet(lbl_1_bss_6B4, &lbl_1_bss_678); + BoardModelRotSet(lbl_1_bss_6C4[0], 0.0f, 0.0f, 0.0f); + BoardPlayerRotSet(lbl_1_bss_6B4, 0.0f, 0.0f, 0.0f); + BoardPlayerExistCheck(lbl_1_bss_6B4, 0); + BoardMusStart(1, 0x10, 0x7F, 0); + fn_1_50D4(); + BoardStatusShowSetForce(lbl_1_bss_6B4); + BoardStatusShowSet(lbl_1_bss_6B4, 1); + while (!BoardStatusStopCheck(lbl_1_bss_6B4)) { + HuPrcVSleep(); + } + temp_r19 = HuAudFXPlay(0x40C); + fn_1_4774(); + WipeCreate(1, 0, -1); + lbl_1_bss_6B0 = 1; + HuAudFXPlay(0x413); + while (TRUE) { + fn_1_1990(); + fn_1_3350(); + fn_1_276C(); + BoardModelPosSetV(lbl_1_bss_6C4[0], &lbl_1_bss_654); + BoardPlayerPosSetV(lbl_1_bss_6B4, &lbl_1_bss_654); + if (BoardPlayerSizeGet(lbl_1_bss_6B4) != 1) { + PSMTXTrans(sp48, 0.0f, 30.0f, 0.0f); + } else { + PSMTXTrans(sp48, 0.0f, 400.0f, 250.0f); + } + BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); + PSMTXConcat(lbl_1_bss_678, sp48, sp48); + BoardPlayerMtxSet(lbl_1_bss_6B4, &sp48); + if (lbl_1_bss_0->unk00_field0 == 0) { + var_f29 = -lbl_1_bss_670; + } else { + var_f29 = lbl_1_bss_670; + } + BoardModelMotionSpeedSet(lbl_1_bss_6AE, var_f29); + if (lbl_1_bss_0->unk00_field0 == 0) { + if (BoardModelMotionTimeGet(lbl_1_bss_6AE) <= 0.0f) { + break; + } + } else { + if (BoardModelMotionTimeGet(lbl_1_bss_6AE) >= lbl_1_bss_644) { + break; + } + } + HuPrcVSleep(); + } + PSMTXIdentity(lbl_1_bss_678); + fn_1_4864(); + HuAudFXStop(temp_r19); + fn_1_1EE4(); + fn_1_98EC(); + if (BoardPlayerSizeGet(lbl_1_bss_6B4) == 1) { + PSMTXTrans(sp48, 0.0f, 400.0f, 250.0f); + } else { + PSMTXTrans(sp48, 0.0f, 30.0f, 0.0f); + } + BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); + BoardPlayerMtxSet(lbl_1_bss_6B4, &sp48); + lbl_1_bss_660.x = lbl_1_bss_660.z = 0.0f; + BoardAudSeqFadeOut(1, 1000); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, -1); + HuAudFXPlay(0x401); + temp_f28 = (-lbl_1_bss_63C - lbl_1_bss_660.y) / 30.0f; + for (i = 0; i < 30; i++) { + BoardModelRotSetV(lbl_1_bss_6C4[0], &lbl_1_bss_660); + BoardPlayerRotSetV(lbl_1_bss_6B4, &lbl_1_bss_660); + lbl_1_bss_660.y += temp_f28 * var_f30; + HuPrcVSleep(); + } + lbl_1_bss_660.y = -lbl_1_bss_63C; + BoardModelRotSetV(lbl_1_bss_6C4[0], &lbl_1_bss_660); + BoardPlayerRotSetV(lbl_1_bss_6B4, &lbl_1_bss_660); + BoardStatusShowSet(lbl_1_bss_6B4, 0); + BoardSpaceAttrReset(0, 1); + fn_1_53B8(); + BoardCameraMoveSet(0); + BoardCameraTargetPlayerSet(lbl_1_bss_6B4); + BoardCameraViewSet(1); + BoardCameraMotionWait(); + do { + HuPrcVSleep(); + } while (WipeStatGet() != 0); + BoardPlayerIdleSet(lbl_1_bss_6B4); + BoardPlayerMtxSet(lbl_1_bss_6B4, &lbl_1_bss_678); + BoardCameraPosCalcFuncSet(NULL); + BoardPlayerExistCheck(lbl_1_bss_6B4, 1); + BoardSpacePosGet(0, var_r25, &sp3C); + GWPlayer[lbl_1_bss_6B4].space_curr = var_r25; + BoardPlayerPosSetV(lbl_1_bss_6B4, &sp3C); + fn_1_35B4(lbl_1_bss_6B4); + lbl_1_bss_6B2 = 1; +} + +static void fn_1_45F4(void) { + if (lbl_1_bss_6B2 != 0) { + if (lbl_1_bss_0->unk00_field0 == 0) { + lbl_1_bss_0->unk00_field0 = 1; + } else { + lbl_1_bss_0->unk00_field0 = 0; + } + lbl_1_bss_6B2 = 0; + fn_1_1670(); + } + fn_1_87AC(); + while (lbl_1_bss_C) { + HuPrcVSleep(); + } + BoardAudSeqPause(0, 0, 1000); + BoardCameraMoveSet(1); + BoardCameraMotionWait(); + WipeCreate(1, 0, 21); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + BoardStatusShowSetAll(1); +} + +static void fn_1_4774(void) { + float sp8[2]; + float var_f31; + float var_f30; + + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(13, 5)); + var_f31 = -10000.0f; + var_f30 = 352.0f; + lbl_1_data_580 = HuWinCreate(var_f31, var_f30, sp8[0], sp8[1], 0); + HuWinBGTPLvlSet(lbl_1_data_580, 0.0f); + HuWinMesSpeedSet(lbl_1_data_580, 0); + HuWinMesSet(lbl_1_data_580, MAKE_MESSID(13, 5)); +} + +static void fn_1_4864(void) { + if (lbl_1_data_580 != -1) { + HuWinKill(lbl_1_data_580); + lbl_1_data_580 = -1; + } +} + +static s32 fn_1_48B4(void) { + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + u32 var_r31; + s32 i; + s32 temp_r28; + s32 temp_r30; + + var_r31 = 0; + lbl_1_bss_6B0 = 0; + lbl_1_bss_6B1 = 0; + lbl_1_bss_6B2 = 0; + lbl_1_bss_6B4 = GWSystem.player_curr; + temp_r30 = GWPlayer[lbl_1_bss_6B4].space_curr; + BoardPlayerMotionShiftSet(lbl_1_bss_6B4, 1, 0.0f, 14.0f, 0x40000001); + BoardWinCreateChoice(0, MAKE_MESSID(13, 0), -1, 0); + if (GWPlayer[lbl_1_bss_6B4].com) { + fn_1_9D00(lbl_1_bss_6B4); + } + BoardWinWait(); + if (BoardWinChoiceGet() != 0) { + return 0; + } + BoardWinCreate(2, 0xD0006, 0); + BoardWinWait(); + temp_r28 = BoardSpaceLinkFlagSearch(0, temp_r30, 0x02000000); + BoardSpacePosGet(0, temp_r30, &sp20); + BoardSpacePosGet(0, temp_r28, &sp14); + PSVECSubtract(&sp14, &sp20, &sp8); + PSVECNormalize(&sp8, &sp8); + var_f31 = 180.0 * (atan2(-sp8.x, -sp8.z) / M_PI); + BoardPlayerRotSet(lbl_1_bss_6B4, 0.0f, var_f31, 0.0f); + BoardPlayerMoveBetween(lbl_1_bss_6B4, temp_r30, temp_r28); + while (GWPlayer[lbl_1_bss_6B4].moving) { + HuPrcVSleep(); + } + BoardPlayerIdleSet(lbl_1_bss_6B4); + while (TRUE) { + BoardWinCreateChoice(1, MAKE_MESSID(13, 1), 0, 0); + BoardWinAttrSet(0x10); + if (GWPlayer[lbl_1_bss_6B4].com) { + if (BoardPlayerCoinsGet(lbl_1_bss_6B4) >= 5) { + BoardComKeySetUp(); + } else { + BoardComKeySetDown(); + } + } + BoardWinWait(); + if (BoardWinChoiceGet() == 1) { + var_r31 = MAKE_MESSID(13, 3); + break; + } + if (BoardWinChoiceGet() == 2) { + BoardViewMapExec(lbl_1_bss_6B4); + continue; + } + if (BoardPlayerCoinsGet(lbl_1_bss_6B4) < 5) { + var_r31 = MAKE_MESSID(13, 4); + break; + } + for (i = 0; i < 5; i++) { + BoardPlayerCoinsAdd(lbl_1_bss_6B4, -1); + HuAudFXPlay(0xE); + HuPrcSleep(6); + } + HuAudFXPlay(0xF); + BoardWinCreate(2, MAKE_MESSID(13, 2), 0); + BoardWinWait(); + BoardWinKill(); + BoardAudSeqPause(0, 1, 1000); + HuAudFXPlay(0x402); + BoardStatusShowSetAll(0); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, 21); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_852C(); + return 1; + } + if (var_r31 != 0) { + BoardWinCreate(1, var_r31, 0); + BoardWinWait(); + BoardWinKill(); + } + BoardCameraTargetPlayerSet(lbl_1_bss_6B4); + PSVECSubtract(&sp20, &sp14, &sp8); + PSVECNormalize(&sp8, &sp8); + var_f31 = 180.0 * (atan2(-sp8.x, -sp8.z) / M_PI); + BoardPlayerRotSet(lbl_1_bss_6B4, 0.0f, var_f31, 0.0f); + BoardPlayerMoveBetween(lbl_1_bss_6B4, temp_r28, temp_r30); + while (GWPlayer[lbl_1_bss_6B4].moving) { + HuPrcVSleep(); + } + return 0; +} + +static void fn_1_4E14(void) { + if (fn_1_48B4() != 0) { + fn_1_3624(); + fn_1_45F4(); + } + HuPrcEnd(); +} + +static void fn_1_4FA8(void) { + BoardWinKill(); + lbl_1_bss_8 = NULL; +} + +static void fn_1_4FD8(void) { + lbl_1_bss_6B4 = GWSystem.player_curr; + BoardDiceDigit2DShowSet(0); + if (BoardPlayerSizeGet(lbl_1_bss_6B4) == 2 || GWPlayer[lbl_1_bss_6B4].bowser_suit) { + return; + } + lbl_1_bss_8 = HuPrcChildCreate(fn_1_4E14, 0x2003, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_8, fn_1_4FA8); + while (lbl_1_bss_8) { + HuPrcVSleep(); + } + BoardDiceDigit2DShowSet(1); +} + +static void fn_1_50D4(void) { + Vec sp20; + Vec sp14; + Vec sp8; + float temp_f30; + float var_f31; + BoardSpace *temp_r31; + s32 var_r27; + s32 var_r26; + s32 var_r29; + s32 var_r28; + s32 i; + + for (i = 0; i < 24; i++) { + lbl_1_bss_5D0[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 9), NULL, 0); + BoardModelVisibilitySet(lbl_1_bss_5D0[i], 0); + BoardModelMotionStart(lbl_1_bss_5D0[i], 0, 0x40000001); + lbl_1_bss_600[i] = 0; + } + temp_f30 = 180.0f; + var_r28 = BoardSpaceFlagPosGet(1, 0x2000, &sp20); + var_r27 = BoardRand() & 1; + var_r29 = i = 0; + while (i < 24) { + temp_r31 = BoardSpaceGet(1, var_r28); + var_r28 = temp_r31->link[0]; + if (var_r28 == -1 || temp_r31->link_cnt == 0) { + break; + } + if (!(temp_r31->flag & 0x80)) { + sp14 = temp_r31->pos; + } else { + if (var_r29 >= 3) { + if (BoardRandFloat() < 0.5f) { + var_r26 = 1; + } else { + var_r26 = 0; + } + var_r27 = var_r26; + var_r29 = 0; + } + PSVECSubtract(&sp14, &temp_r31->pos, &sp8); + PSVECNormalize(&sp8, &sp8); + var_f31 = 180.0 * (atan2(sp8.z, sp8.x) / M_PI); + if (var_r27 != 0) { + var_f31 += 180.0f; + } + sp20.x = temp_r31->pos.x + temp_f30 * sin(var_f31 * M_PI / 180.0); + sp20.y = temp_r31->pos.y + 80.0f; + sp20.z = temp_r31->pos.z + temp_f30 * cos(var_f31 * M_PI / 180.0); + BoardModelPosSetV(lbl_1_bss_5D0[i], &sp20); + BoardModelVisibilitySet(lbl_1_bss_5D0[i], 1); + sp14 = temp_r31->pos; + i++; + var_r29++; + } + } +} + +static void fn_1_53B8(void) { + s32 i; + + for (i = 0; i < 24; i++) { + if (lbl_1_bss_5D0[i] != -1) { + BoardModelKill(lbl_1_bss_5D0[i]); + lbl_1_bss_5D0[i] = -1; + } + } +} + +static s32 lbl_1_data_5D4 = -1; +static s32 lbl_1_data_5D8 = -1; + +static s16 lbl_1_data_5DC[2][4] = { + { 24, 25, 26, 27 }, + { 29, 30, 31, 32 } +}; + +static char *lbl_1_data_604[] = { + "chara1", "chara2", "chara3" +}; + +static float lbl_1_data_610[2][2] = { + { 90.0f, 0.0f }, + { 0.0f, 270.0f } +}; + +static void fn_1_543C(void) { + float var_f31; + s16 temp_r28; + s16 temp_r29; + s32 i; + s32 j; + char *sp10[] = { "cup1", "cup2", "cup3", "ya1" }; + s32 sp8[] = { 23, 28 }; + + for (i = 0; i < 2; i++) { + temp_r28 = lbl_1_bss_6C4[sp8[i]]; + BoardModelMotionStart(temp_r28, 0, 0x40000001); + BoardModelExistDupe(temp_r28, 0); + for (j = 0; j < 4; j++) { + temp_r29 = lbl_1_bss_6C4[lbl_1_data_5DC[i][j]]; + BoardModelExistDupe(temp_r29, 1); + BoardModelHookSet(temp_r28, sp10[j], temp_r29); + BoardModelMotionStart(temp_r29, 0, 0x40000001); + BoardModelRotSet(temp_r29, 0.0f, 360.0f * BoardRandFloat(), 0.0f); + } + } + if (lbl_1_bss_0->unk01[0] != 0) { + var_f31 = 0.0f; + } else { + var_f31 = 90.0f; + } + BoardModelRotSet(lbl_1_bss_6C4[27], 0.0f, var_f31, 0.0f); + if (lbl_1_bss_0->unk01[1] != 0) { + var_f31 = -90.0f; + } else { + var_f31 = 0.0f; + } + BoardModelRotSet(lbl_1_bss_6C4[32], 0.0f, var_f31, 0.0f); +} + +static void fn_1_5694(s32 arg0) { + s16 temp_r29; + s16 temp_r30; + s16 i; + s32 spC[] = { 23, 28 }; + + temp_r29 = lbl_1_bss_6C4[spC[lbl_1_bss_29]]; + if (arg0 != 0) { + BoardModelMotionSpeedSet(temp_r29, 1.0f); + BoardModelAttrReset(temp_r29, 0x40000002); + for (i = 0; i < 3; i++) { + temp_r30 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][i]]; + BoardModelMotionSpeedSet(temp_r30, 1.0f); + BoardModelAttrReset(temp_r30, 0x40000002); + } + } else { + BoardModelMotionSpeedSet(temp_r29, 0.0f); + BoardModelAttrSet(temp_r29, 0x40000002); + for (i = 0; i < 3; i++) { + temp_r30 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][i]]; + BoardModelMotionSpeedSet(temp_r30, 0.0f); + BoardModelAttrSet(temp_r30, 0x40000002); + } + } +} + +static void fn_1_586C(s32 arg0, s32 arg1) { + lbl_1_bss_29 = arg0; + lbl_1_bss_26 = arg1; + BoardDiceDigit2DShowSet(0); + lbl_1_bss_14 = HuPrcChildCreate(fn_1_592C, 0x2003, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_14, fn_1_5B2C); + while (lbl_1_bss_14) { + HuPrcVSleep(); + } + BoardDiceDigit2DShowSet(1); +} + +static void fn_1_592C(void) { + s16 temp_r30; + s16 var_r28; + + lbl_1_data_5D4 = -1; + lbl_1_data_5D8 = -1; + BoardPlayerIdleSet(GWSystem.player_curr); + if (lbl_1_bss_29 == 0) { + var_r28 = lbl_1_bss_6C4[23]; + } else { + var_r28 = lbl_1_bss_6C4[28]; + } + BoardCameraTargetModelSet(var_r28); + BoardCameraOffsetSet(0.0f, 0.0f, 0.0f); + fn_1_5D08(); + while (!fn_1_5CD0()) { + HuPrcVSleep(); + } + fn_1_5B40(); + fn_1_5694(1); + BoardCameraTargetPlayerSet(GWSystem.player_curr); + BoardCameraViewSet(1); + BoardCameraMotionWait(); + HuPrcEnd(); +} + +static void fn_1_5B2C(void) { + lbl_1_bss_14 = NULL; +} + +static void fn_1_5B40(void) { + s16 spC[] = { 27, 32 }; + s16 temp_r30; + s32 temp_r31; + float sp8; + float temp_f31; + + temp_r31 = lbl_1_bss_0->unk01[lbl_1_bss_29]; + lbl_1_bss_0->unk01[lbl_1_bss_29] ^= 1; + temp_r30 = lbl_1_bss_6C4[spC[lbl_1_bss_29]]; + sp8 = lbl_1_data_610[lbl_1_bss_29][temp_r31]; + temp_f31 = lbl_1_data_610[lbl_1_bss_29][temp_r31 ^ 1]; + HuAudFXPlay(0x403); + while (TRUE) { + HuPrcVSleep(); + if (BoardDAngleCalcRange(&sp8, temp_f31, 3.0f) != 0) { + break; + } + BoardModelRotSet(temp_r30, 0.0f, sp8, 0.0f); + } +} + +static BOOL fn_1_5CD0(void) { + return lbl_1_bss_18 ? FALSE : TRUE; +} + +static void fn_1_5D08(void) { + Bss18Work *temp_r31; + float var_f30; + float var_f31; + s16 var_r28; + s16 var_r25; + s32 i; + + if (lbl_1_bss_29 == 0) { + var_r28 = lbl_1_bss_6C4[23]; + } else { + var_r28 = lbl_1_bss_6C4[28]; + } + while (TRUE) { + var_f30 = BoardModelMotionTimeGet(var_r28); + if (var_f30 >= 209.0f && var_f30 <= 211.0f) { + break; + } + if (var_f30 >= 129.0f && var_f30 <= 131.0f) { + break; + } + if (var_f30 >= 49.0f && var_f30 <= 51.0f) { + break; + } + HuPrcVSleep(); + } + var_f31 = 1.0f; + while (var_f31 > 0.01f) { + var_f31 *= 0.9f; + if (var_f31 <= 0.01f) { + var_f31 = 0.0f; + } + BoardModelMotionSpeedSet(var_r28, var_f31); + for (i = 0; i < 3; i++) { + var_r25 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][i]]; + BoardModelMotionSpeedSet(var_r25, var_f31); + } + HuPrcVSleep(); + } + fn_1_5694(0); + lbl_1_bss_18 = omAddObjEx(boardObjMan, 0x103, 0, 0, -1, fn_1_6098); + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_18, Bss18Work); + temp_r31->unk00_field0 = 0; + temp_r31->unk01 = 0; + temp_r31->unk02 = 0; + temp_r31->unk00_field2 = 0; + temp_r31->unk04 = var_r28; + if (BoardPlayerSizeGet(GWSystem.player_curr) == 2) { + temp_r31->unk00_field3 = 1; + } else { + temp_r31->unk00_field3 = 0; + } +} + +static void fn_1_6098(omObjData *arg0) { + Bss18Work *temp_r31 = OM_GET_WORK_PTR(arg0, Bss18Work); + s32 temp_r0; + + if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { + lbl_1_bss_18 = NULL; + omDelObjEx(HuPrcCurrentGet(), arg0); + return; + } + if (temp_r31->unk02 != 0) { + temp_r31->unk02--; + return; + } + switch (temp_r31->unk00_field1) { + case 0: + fn_1_6194(temp_r31, arg0); + break; + case 2: + fn_1_63F0(temp_r31, arg0); + break; + case 3: + fn_1_6BC0(temp_r31, arg0); + break; + case 1: + fn_1_6FB4(temp_r31, arg0); + break; + } +} + +static void fn_1_6194(Bss18Work *arg0, omObjData *arg1) { + Mtx sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float temp_f31; + float var_f30; + s32 var_r28; + s32 i; + + BoardPlayerPosGet(GWSystem.player_curr, &sp20); + var_f30 = 1000000.0f; + for (i = 0; i < 3; i++) { + Hu3DModelObjPosGet(BoardModelIDGet(arg0->unk04), lbl_1_data_604[i], &sp8); + temp_f31 = PSVECSquareDistance(&sp8, &sp20); + if (temp_f31 < var_f30) { + var_f30 = temp_f31; + lbl_1_bss_28 = i; + sp2C = sp8; + } + } + Hu3DModelObjMtxGet(BoardModelIDGet(arg0->unk04), lbl_1_data_604[lbl_1_bss_28], sp38); + Hu3DMtxRotGet(&sp38, &sp14); + sp14.y = 180.0f; + PSVECSubtract(&sp2C, &sp20, &sp8); + arg1->trans.x = sp8.x / 25.0f; + arg1->trans.z = sp8.z / 25.0f; + var_r28 = BoardPlayerRotYGet(GWSystem.player_curr); + arg1->trans.y = BoardDAngleCalc(sp14.y - var_r28) / 25.0f; + arg1->scale.x = sp2C.x; + arg1->scale.y = sp2C.y; + arg1->scale.z = sp2C.z; + BoardPlayerMotionShiftSet(GWSystem.player_curr, 4, 15.0f, 5.0f, 0); + arg0->unk00_field1 = 2; + arg0->unk01 = 0; +} + +static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1) { + Vec sp10; + float temp_f29; + float var_f27; + float var_f28; + s16 var_r24; + + if (arg0->unk01 >= 55) { + BoardPlayerRotSet(GWSystem.player_curr, 0.0f, 0.0f, 0.0f); + BoardPlayerIdleSet(GWSystem.player_curr); + if (GWPlayer[GWSystem.player_curr].bowser_suit) { + BoardModelHookSet(arg0->unk04, lbl_1_data_604[lbl_1_bss_28], BoardBowserSuitModelGet()); + } else { + BoardModelHookSet(arg0->unk04, lbl_1_data_604[lbl_1_bss_28], BoardPlayerModelGetCurr()); + } + var_r24 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][lbl_1_bss_28]]; + if (arg0->unk00_field3 != 0) { + BoardModelScaleSet(var_r24, 1.0f, 0.1f, 1.0f); + } + fn_1_5694(1); + lbl_1_data_5D4 = HuAudFXPlay(0x410); + arg0->unk01 = 0; + arg0->unk00_field1 = 1; + return; + } + if (arg0->unk01 == 25) { + BoardPlayerPosSet(GWSystem.player_curr, arg1->scale.x, arg1->scale.y, arg1->scale.z); + BoardPlayerMotionShiftSet(GWSystem.player_curr, 5, 0.0f, 8.0f, 0); + } + if (arg0->unk01 < 25) { + OSu8tof32(&arg0->unk01, &temp_f29); + BoardPlayerPosGet(GWSystem.player_curr, &sp10); + sp10.x += arg1->trans.x; + sp10.z += arg1->trans.z; + sp10.y += 15.0f + -0.08166667f * temp_f29 * temp_f29; + if (sp10.y <= arg1->scale.y) { + sp10.y = arg1->scale.y; + } + var_f27 = arg1->trans.y + BoardPlayerRotYGet(GWSystem.player_curr); + BoardPlayerRotYSet(GWSystem.player_curr, var_f27); + BoardPlayerPosSetV(GWSystem.player_curr, &sp10); + if (arg0->unk01 > 12 && arg0->unk00_field3 != 0) { + if (lbl_1_data_5D8 == -1) { + lbl_1_data_5D8 = HuAudFXPlay(0x411); + } + OSu8tof32(&arg0->unk01, &temp_f29); + temp_f29 -= 12.0f; + temp_f29 = 90.0f * (temp_f29 / 12.5f); + var_f28 = cos(temp_f29 * M_PI / 180.0); + if (var_f28 < 0.1f) { + var_f28 = 0.1f; + } + var_r24 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][lbl_1_bss_28]]; + BoardModelScaleSet(var_r24, 1.0f, var_f28, 1.0f); + } + } + arg0->unk01++; +} + +static void fn_1_6A14(Bss18Work *arg0, omObjData *arg1) { + Vec sp20; + Vec sp14; + Vec sp8; + + BoardModelHookObjReset(arg0->unk04, lbl_1_data_604[lbl_1_bss_28]); + Hu3DModelObjPosGet(BoardModelIDGet(arg0->unk04), lbl_1_data_604[lbl_1_bss_28], &sp14); + BoardPlayerPosSetV(GWSystem.player_curr, &sp14); + BoardSpacePosGet(0, lbl_1_bss_24, &sp20); + PSVECSubtract(&sp20, &sp14, &sp8); + arg1->trans.x = sp8.x / 25.0f; + arg1->trans.z = sp8.z / 25.0f; + arg1->scale.x = sp20.x; + arg1->scale.y = sp20.y; + arg1->scale.z = sp20.z; + BoardPlayerMotionShiftSet(GWSystem.player_curr, 4, 15.0f, 5.0f, 0); + BoardPlayerRotYSet(GWSystem.player_curr, 180.0 * (atan2(sp8.x, sp8.z) / M_PI)); + arg0->unk00_field1 = 3; + arg0->unk01 = 0; +} + +static void fn_1_6BC0(Bss18Work *arg0, omObjData *arg1) { + Vec sp14; + Vec sp8; + float var_f28; + float temp_f29; + s16 var_r27; + + if (arg0->unk01 >= 55) { + BoardSpacePosGet(0, lbl_1_bss_24, &sp8); + GWPlayer[GWSystem.player_curr].space_curr = lbl_1_bss_24; + BoardPlayerPosSetV(GWSystem.player_curr, &sp8); + BoardPlayerIdleSet(GWSystem.player_curr); + var_r27 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][lbl_1_bss_28]]; + if (arg0->unk00_field3 != 0) { + BoardModelScaleSet(var_r27, 1.0f, 1.0f, 1.0f); + } + arg0->unk00_field0 = 1; + } + if (arg0->unk01 == 25) { + BoardPlayerPosSet(GWSystem.player_curr, arg1->scale.x, arg1->scale.y, arg1->scale.z); + BoardPlayerMotionShiftSet(GWSystem.player_curr, 5, 0.0f, 8.0f, 0); + } + if (arg0->unk01 < 25) { + OSu8tof32(&arg0->unk01, &temp_f29); + BoardPlayerPosGet(GWSystem.player_curr, &sp14); + sp14.x += arg1->trans.x; + sp14.z += arg1->trans.z; + sp14.y += 15.0f + -0.08166667f * temp_f29 * temp_f29; + if (sp14.y <= arg1->scale.y) { + sp14.y = arg1->scale.y; + } + BoardPlayerPosSetV(GWSystem.player_curr, &sp14); + if (arg0->unk01 > 12 && arg0->unk00_field3 != 0) { + OSu8tof32(&arg0->unk01, &temp_f29); + temp_f29 -= 12.0f; + temp_f29 = 90.0f * (temp_f29 / 12.5f); + var_f28 = sin(temp_f29 * M_PI / 180.0); + if (var_f28 < 0.1f) { + var_f28 = 0.1f; + } + var_r27 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][lbl_1_bss_28]]; + BoardModelScaleSet(var_r27, 1.0f, var_f28, 1.0f); + } + } + arg0->unk01++; +} + +static void fn_1_6FB4(Bss18Work *arg0, omObjData *arg1) { + Vec sp40; + Vec sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + float var_f31; + BoardSpace *temp_r29; + s16 var_r22; + u32 temp_r3; + s32 var_r24; + s32 i; + + if (arg0->unk00_field2 != 0) { + arg0->unk08 *= 0.9f; + if (arg0->unk08 <= 0.01f) { + arg0->unk08 = 0.0f; + fn_1_5694(0); + if (lbl_1_data_5D4 != -1) { + HuAudFXStop(lbl_1_data_5D4); + lbl_1_data_5D4 = -1; + } + fn_1_6A14(arg0, arg1); + } + BoardModelMotionSpeedSet(arg0->unk04, arg0->unk08); + for (i = 0; i < 3; i++) { + var_r22 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][i]]; + BoardModelMotionSpeedSet(var_r22, arg0->unk08); + } + return; + } + if (lbl_1_bss_29 == 0) { + var_r24 = lbl_1_bss_0->unk01[lbl_1_bss_29] ^ 1; + } else { + var_r24 = lbl_1_bss_0->unk01[lbl_1_bss_29]; + } + temp_r29 = BoardSpaceGet(0, lbl_1_bss_26); + lbl_1_bss_24 = -1; + for (i = 0; i < temp_r29->link_cnt; i++) { + if (temp_r29->link[i] != -1) { + temp_r3 = BoardSpaceFlagGet(0, temp_r29->link[i]); + if ((temp_r3 & 0x200) && var_r24 == 0) { + lbl_1_bss_24 = temp_r29->link[i]; + } + if ((temp_r3 & 0x100) && var_r24 != 0) { + lbl_1_bss_24 = temp_r29->link[i]; + } + } + } + BoardSpacePosGet(0, lbl_1_bss_24, &sp40); + Hu3DModelObjPosGet(BoardModelIDGet(arg0->unk04), lbl_1_data_604[lbl_1_bss_28], &sp34); + var_f31 = BoardVecDistXZCalc(&sp40, &sp34); + if (var_f31 <= 300.0f) { + arg0->unk00_field2 = 1; + arg0->unk08 = 1.0f; + } +} + +static void fn_1_7528(s32 arg0, s32 arg1) { + Vec sp30; + Vec sp24; + Vec sp18; + float temp_f31; + float temp_f30; + s16 sp14[] = { 23, 28 }; + + BoardPlayerIdleSet(GWSystem.player_curr); + BoardSpacePosGet(0, arg1, &sp30); + BoardModelPosGet(lbl_1_bss_6C4[23], &sp24); + BoardModelPosGet(lbl_1_bss_6C4[28], &sp18); + temp_f31 = PSVECDistance(&sp24, &sp30); + temp_f30 = PSVECDistance(&sp18, &sp30); + if (temp_f31 < temp_f30) { + lbl_1_bss_29 = 0; + } else { + lbl_1_bss_29 = 1; + } + BoardCameraTargetModelSet(lbl_1_bss_6C4[sp14[lbl_1_bss_29]]); + BoardCameraMotionWait(); + HuPrcSleep(42); + fn_1_5B40(); + BoardCameraTargetPlayerSet(GWSystem.player_curr); + BoardCameraMotionWait(); + HuPrcSleep(12); +} + +static void fn_1_77EC(s32 arg0, s32 arg1) { + lbl_1_bss_6B4 = arg0; + lbl_1_bss_6B0 = 0; + lbl_1_bss_8 = HuPrcChildCreate(fn_1_7894, 0x2003, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_8, fn_1_4FA8); + while (lbl_1_bss_8) { + HuPrcVSleep(); + } +} + +static void fn_1_7894(void) { + lbl_1_bss_6B1 = 1; + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, 21); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_7A64(); + fn_1_45F4(); + HuPrcEnd(); +} + +static void fn_1_7A64(void) { + Vec sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + float var_f30; + s16 var_r20; + s32 temp_r19; + s32 var_r28; + + var_r28 = 0; + lbl_1_bss_674 = lbl_1_bss_670 = 0.18f; + lbl_1_bss_640 = 0.0f; + lbl_1_bss_660.x = 0.0f; + lbl_1_bss_660.y = 0.0f; + lbl_1_bss_660.z = 0.0f; + lbl_1_bss_6A8 = 0.0f; + lbl_1_bss_6B3 = 0; + lbl_1_bss_624.x = 0.0f; + lbl_1_bss_624.z = 0.0f; + lbl_1_bss_624.y = 1.0f; + lbl_1_bss_66C = 0.04f; + BoardSpaceAttrSet(0, 1); + fn_1_97F4(); + BoardModelMotionStart(lbl_1_bss_6AE, 0, 0); + if (lbl_1_bss_0->unk00_field0 == 0) { + BoardModelMotionTimeSet(lbl_1_bss_6AE, lbl_1_bss_644); + lbl_1_bss_63C = -90.0f; + lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x2000, &sp34); + var_r20 = BoardSpaceFlagSearch(1, 0x1000); + } else { + BoardModelMotionTimeSet(lbl_1_bss_6AE, 0.0f); + lbl_1_bss_63C = 90.0f; + lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x1000, &sp34); + var_r20 = BoardSpaceFlagSearch(1, 0x2000); + } + lbl_1_bss_654 = sp34; + BoardCameraMotionStartEx(lbl_1_bss_6C4[0], NULL, NULL, 2400.0f, -1.0f, 2); + PSMTXRotRad(lbl_1_bss_678, 'y', MTXDegToRad(lbl_1_bss_63C)); + BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); + BoardModelRotSet(lbl_1_bss_6C4[0], 0.0f, 0.0f, 0.0f); + fn_1_3350(); + lbl_1_bss_648 = lbl_1_bss_654; + lbl_1_bss_618 = lbl_1_bss_654; + lbl_1_bss_630 = lbl_1_bss_654; + fn_1_852C(); + BoardModelMotionSpeedSet(lbl_1_bss_6AE, lbl_1_bss_670); + BoardCameraMotionWait(); + WipeCreate(1, 0, -1); + lbl_1_bss_6B0 = 1; + temp_r19 = HuAudFXPlay(0x412); + while (TRUE) { + fn_1_1990(); + fn_1_3350(); + fn_1_276C(); + BoardModelPosSetV(lbl_1_bss_6C4[0], &lbl_1_bss_654); + BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); + if (lbl_1_bss_0->unk00_field0 == 0) { + var_f30 = -lbl_1_bss_670; + } else { + var_f30 = lbl_1_bss_670; + } + BoardModelMotionSpeedSet(lbl_1_bss_6AE, var_f30); + if (lbl_1_bss_0->unk00_field0 == 0) { + if (BoardModelMotionTimeGet(lbl_1_bss_6AE) <= 20.0f && var_r28 == 0) { + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, -1); + var_r28 = 1; + } + } else { + if (BoardModelMotionTimeGet(lbl_1_bss_6AE) >= lbl_1_bss_644 - 20.0f && var_r28 == 0) { + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, -1); + var_r28 = 1; + } + } + if (var_r28 != 0 && WipeStatGet() == 0) { + break; + } + HuPrcVSleep(); + } + HuAudFXStop(temp_r19); + fn_1_98EC(); + fn_1_87AC(); + while (lbl_1_bss_C) { + HuPrcVSleep(); + } + PSMTXIdentity(lbl_1_bss_678); + BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); + lbl_1_bss_660.x = 0.0f; + lbl_1_bss_660.z = 0.0f; + lbl_1_bss_660.y = -lbl_1_bss_63C; + BoardModelRotSetV(lbl_1_bss_6C4[0], &lbl_1_bss_660); + BoardSpacePosGet(1, var_r20, &sp34); + BoardModelPosSetV(lbl_1_bss_6C4[0], &sp34); + BoardSpaceAttrReset(0, 1); + BoardCameraMoveSet(0); + BoardCameraTargetPlayerSet(lbl_1_bss_6B4); + BoardCameraViewSet(1); + BoardCameraMotionWait(); + lbl_1_bss_6B2 = 1; +} + +static s8 lbl_1_data_633 = -1; + +static void fn_1_852C(void) { + BssCWork *temp_r30; + BssCData *temp_r31; + Vec spC; + float temp_f31; + s16 sp8; + s16 var_r28; + s16 i; + u32 var_r27; + + lbl_1_bss_C = omAddObjEx(boardObjMan, 0x103, 0, 0, -1, fn_1_87E0); + temp_r30 = OM_GET_WORK_PTR(lbl_1_bss_C, BssCWork); + temp_r30->unk00_field0 = 0; + temp_r30->unk04 = HuMemDirectMallocNum(HEAP_SYSTEM, 4 * sizeof(BssCData), MEMORY_DEFAULT_NUM); + memset(temp_r30->unk04, 0, 4 * sizeof(BssCData)); + lbl_1_data_633 = -1; + lbl_1_bss_1C = 0; + for (temp_r30->unk01 = i = 0; i < 4; i++) { + temp_r31 = &temp_r30->unk04[temp_r30->unk01]; + var_r28 = GWPlayer[i].space_curr; + sp8 = GWPlayer[i].character; + var_r27 = BoardSpaceFlagGet(0, var_r28); + if (!(var_r27 & 1)) { + temp_r31->unk00 = -1; + continue; + } + temp_r31->unk00 = 0; + temp_r31->unk01 = i; + temp_r31->unk02 = 0; + BoardPlayerPosGet(temp_r31->unk01, &spC); + temp_r31->unk04 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 10), NULL, 0); + temp_f31 = BoardModelMotionMaxTimeGet(temp_r31->unk04); + BoardModelVisibilitySet(temp_r31->unk04, 0); + fn_1_95F4(temp_r31); + BoardModelMotionStart(temp_r31->unk04, 0, 0); + BoardModelMotionSpeedSet(temp_r31->unk04, 0.0f); + if (lbl_1_bss_0->unk00_field0 == 0) { + temp_r31->unk08 = -0.18f; + BoardModelMotionTimeSet(temp_r31->unk04, temp_f31); + } else { + temp_r31->unk08 = 0.18f; + BoardModelMotionTimeSet(temp_r31->unk04, 0.0f); + } + fn_1_932C(temp_r31); + temp_r30->unk01++; + } + BoardCameraMoveSet(1); + BoardCameraTargetModelSet(lbl_1_bss_6C4[0]); +} + +static void fn_1_87AC(void) { + if (lbl_1_bss_C) { + OM_GET_WORK_PTR(lbl_1_bss_C, BssCWork)->unk00_field0 = 1; + } +} + +static void fn_1_87E0(omObjData *arg0) { + BssCWork *temp_r30 = OM_GET_WORK_PTR(arg0, BssCWork); + BssCData *temp_r31; + s32 i; + + if (temp_r30->unk00_field0 != 0 || BoardIsKill()) { + for (i = 0; i < temp_r30->unk01; i++) { + temp_r31 = &temp_r30->unk04[i]; + } + HuMemDirectFree(temp_r30->unk04); + lbl_1_bss_C = NULL; + omDelObjEx(HuPrcCurrentGet(), arg0); + return; + } + if (lbl_1_bss_6B0 == 0) { + return; + } + for (i = 0; i < temp_r30->unk01; i++) { + temp_r31 = &temp_r30->unk04[i]; + if (temp_r31->unk02 != 0) { + temp_r31->unk02--; + } else { + switch (temp_r31->unk00) { + case 0: + fn_1_8988(temp_r31, arg0); + break; + case 1: + fn_1_8A50(temp_r31, arg0); + break; + case 2: + fn_1_8B6C(temp_r31, arg0); + break; + case 3: + fn_1_8DDC(temp_r31, arg0); + break; + case 4: + fn_1_918C(temp_r31, arg0); + break; + case 5: + fn_1_927C(temp_r31, arg0); + break; + } + } + } +} + +static void fn_1_8988(BssCData *arg0, omObjData *arg1) { + Vec sp20; + Vec sp14; + Vec sp8; + + if (arg0->unk10 - lbl_1_bss_640 > 900.0f) { + return; + } + BoardModelPosGet(*lbl_1_bss_6C4, &sp20); + BoardPlayerPosGet(arg0->unk01, &sp14); + PSVECSubtract(&sp20, &sp14, &sp8); + BoardPlayerRotYSet(arg0->unk01, 180.0 * (atan2(sp8.x, sp8.z) / M_PI)); + arg0->unk00 = 1; +} + +static s32 lbl_1_data_634[8] = { + 0x00000123, + 0x00000163, + 0x000001A3, + 0x000001E3, + 0x00000223, + 0x00000263, + 0x000002A3, + 0x000002E3 +}; + +static void fn_1_8A50(BssCData *arg0, omObjData *arg1) { + if (lbl_1_data_633 == -1) { + BoardCameraTargetPlayerSet(arg0->unk01); + lbl_1_data_633 = arg0->unk01; + } + HuAudFXPlay(lbl_1_data_634[GWPlayer[arg0->unk01].character]); + BoardPlayerMotionStart(arg0->unk01, 9, 0); + BoardPlayerMotionSpeedSet(arg0->unk01, 2.0f); + arg0->unk02 = lbl_1_bss_1C * 3 + 9; + arg0->unk00 = 2; + lbl_1_bss_1C++; + omVibrate(arg0->unk01, 12, 4, 2); +} + +static void fn_1_8B6C(BssCData *arg0, omObjData *arg1) { + ModelData *temp_r29; + HsfObject *var_r30; + Vec sp20; + Vec sp14; + Vec sp8; + float temp_f30; + float var_f31; + s16 var_r28; + + BoardPlayerPosGet(arg0->unk01, &arg0->unk14); + BoardModelPosGet(lbl_1_bss_6C4[0], &sp20); + PSVECSubtract(&sp20, &arg0->unk14, &sp14); + BoardPlayerRotYSet(arg0->unk01, -(180.0 * (atan2(sp14.x, sp14.z) / M_PI))); + BoardPlayerMotionStart(arg0->unk01, 3, 0x40000001); + BoardPlayerMotionSpeedSet(arg0->unk01, 2.0f); + temp_f30 = BoardModelMotionTimeGet(lbl_1_bss_6AE); + var_r28 = BoardModelIDGet(lbl_1_bss_6AE); + temp_r29 = &Hu3DData[var_r28]; + Hu3DMotionExec(var_r28, temp_r29->unk_08, temp_r29->unk_64, 0); + var_r30 = Hu3DModelObjPtrGet(var_r28, "looppath-cube1"); + sp8.x = var_r30->data.curr.pos.x; + sp8.y = var_r30->data.curr.pos.y; + sp8.z = var_r30->data.curr.pos.z; + var_f31 = lbl_1_bss_640; + while (TRUE) { + Hu3DMotionExec(var_r28, temp_r29->unk_08, temp_r29->unk_64, 0); + var_r30 = Hu3DModelObjPtrGet(var_r28, "looppath-cube1"); + sp14.x = sp8.x - var_r30->data.curr.pos.x; + sp14.y = sp8.y - var_r30->data.curr.pos.y; + sp14.z = sp8.z - var_r30->data.curr.pos.z; + var_f31 += PSVECMag(&sp14); + if (var_f31 >= arg0->unk10) { + break; + } + sp8.x = var_r30->data.curr.pos.x; + sp8.y = var_r30->data.curr.pos.y; + sp8.z = var_r30->data.curr.pos.z; + temp_r29->unk_64 += arg0->unk08; + } + BoardModelMotionStart(arg0->unk04, 0, 0); + BoardModelMotionTimeSet(arg0->unk04, temp_r29->unk_64); + BoardModelMotionSpeedSet(arg0->unk04, temp_r29->unk_68); + arg0->unk00 = 3; + BoardModelMotionTimeSet(lbl_1_bss_6AE, temp_f30); +} + +static void fn_1_8DDC(BssCData *arg0, omObjData *arg1) { + ModelData *temp_r29; + HsfObject *var_r30; + Vec *var_r27; + Vec *var_r26; + Vec sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + Mtx sp54; + s16 var_r28; + + var_r28 = BoardModelIDGet(arg0->unk04); + temp_r29 = &Hu3DData[var_r28]; + Hu3DMotionExec(var_r28, temp_r29->unk_08, temp_r29->unk_64, 0); + var_r30 = Hu3DModelObjPtrGet(var_r28, "looppath-cube1"); + sp30.x = var_r30->data.curr.pos.x; + sp30.y = var_r30->data.curr.pos.y; + sp30.z = var_r30->data.curr.pos.z; + PSVECSubtract(&sp30, &arg0->unk14, &sp24); + if (fn_1_94A8(arg0) != 0) { + BoardModelPosGet(lbl_1_bss_6C4[1], &sp18); + PSVECSubtract(&sp18, &sp30, &sp48); + PSVECNormalize(&sp48, &sp48); + var_r27 = &arg0->unk14; + var_r26 = &sp30; + BoardMTXCalcLookAt(sp54, var_r26, &sp48, var_r27); + PSMTXTranspose(sp54, arg0->unk20); + } else { + if (sp24.z != 0.0f || sp24.x != 0.0f) { + sp3C.y = 180.0 * (atan2(sp24.x, sp24.z) / M_PI); + sp3C.x = -(180.0 * (atan2(sp24.y, sqrtf(sp24.x * sp24.x + sp24.z * sp24.z)) / M_PI)); + } else { + sp3C.x = sp3C.y = 0.0f; + } + PSMTXRotRad(sp54, 'x', MTXDegToRad(sp3C.x)); + PSMTXRotRad(arg0->unk20, 'y', MTXDegToRad(sp3C.y)); + PSMTXConcat(arg0->unk20, sp54, arg0->unk20); + } + BoardPlayerPosSetV(arg0->unk01, &sp30); + BoardPlayerRotSet(arg0->unk01, 0.0f, 0.0f, 0.0f); + BoardPlayerMtxSet(arg0->unk01, &arg0->unk20); + arg0->unk14 = sp30; + BoardSpacePosGet(0, arg0->unk06, &spC); + if (BoardVecMaxDistXZCheck(&spC, &sp30, 200.0f)) { + arg0->unk00 = 4; + } +} + +static void fn_1_918C(BssCData *arg0, omObjData *arg1) { + Vec sp20; + Vec sp14; + Vec sp8; + s32 var_r30; + + PSMTXIdentity(arg0->unk20); + var_r30 = BoardSpaceLinkFlagSearch(0, arg0->unk06, 0x40); + BoardSpacePosGet(0, var_r30, &sp20); + BoardPlayerPosGet(arg0->unk01, &sp14); + BoardPlayerMtxSet(arg0->unk01, &arg0->unk20); + PSVECSubtract(&sp20, &sp14, &sp8); + BoardPlayerRotYSet(arg0->unk01, 180.0 * (atan2(-sp8.z, -sp8.x) / M_PI)); + BoardPlayerPosLerpStart(arg0->unk01, &sp14, &sp20, 20); + arg0->unk00 = 5; +} + +static void fn_1_927C(BssCData *arg0, omObjData *arg1) { + s32 temp_r3; + + if (!GWPlayer[arg0->unk01].moving) { + BoardPlayerIdleSet(arg0->unk01); + temp_r3 = BoardSpaceLinkFlagSearch(0, arg0->unk06, 0x40); + GWPlayer[arg0->unk01].space_curr = temp_r3; + arg0->unk00 = -1; + BoardPlayerMoveAwayStartCurr(temp_r3, 0); + } +} + +static void fn_1_932C(BssCData *arg0) { + BoardSpace *temp_r30; + BoardSpace *var_r26; + Vec sp20[2]; + Vec sp14; + float spC[2]; + s16 sp8[2]; + s32 var_r29; + s32 var_r28; + s32 i; + + for (var_r28 = i = 0; i < BoardSpaceCountGet(0); i++) { + temp_r30 = BoardSpaceGet(0, i + 1); + for (var_r29 = 0; var_r29 < temp_r30->link_cnt; var_r29++) { + var_r26 = BoardSpaceGet(0, temp_r30->link[var_r29]); + if (var_r26->flag & 0x40) { + sp8[var_r28] = i + 1; + BoardSpacePosGet(0, temp_r30->link[var_r29], &sp20[var_r28]); + var_r28++; + } + } + if (var_r28 >= 2) { + break; + } + } + if (lbl_1_bss_0->unk00_field0 == 0) { + BoardSpaceFlagPosGet(0, 0x1000, &sp14); + } else { + BoardSpaceFlagPosGet(0, 0x2000, &sp14); + } + for (i = 0; i < 2; i++) { + spC[i] = PSVECSquareDistance(&sp14, &sp20[i]); + } + if (spC[0] < spC[1]) { + arg0->unk06 = sp8[0]; + } else { + arg0->unk06 = sp8[1]; + } +} + +static s32 fn_1_94A8(BssCData *arg0) { + Vec sp14; + s16 spC[4]; + float sp8; + s32 var_r30; + s32 var_r29; + s32 var_r26; + BoardSpace *var_r31; + BoardSpace *var_r27; + BoardSpace *var_r28; + + BoardPlayerPosGet(arg0->unk01, &sp14); + var_r28 = NULL; + var_r26 = -1; + var_r30 = lbl_1_bss_6AC; + sp8 = 0.0f; + while (TRUE) { + var_r31 = BoardSpaceGet(1, var_r30); + if (lbl_1_bss_0->unk00_field0 == 0) { + var_r29 = var_r31->link[0]; + } else { + BoardSpaceLinkTargetListGet(1, var_r30, spC); + var_r29 = spC[0]; + } + var_r27 = BoardSpaceGet(1, var_r29); + if (!var_r27) { + var_r27 = var_r31; + break; + } + if (BoardVecMaxDistXZCheck(&var_r31->pos, &sp14, 200.0f)) { + if (BoardVecMaxDistXZCheck(&var_r31->pos, &sp14, 100.0f)) { + break; + } + if (var_r28) { + var_r31 = var_r28; + break; + } else { + var_r28 = var_r31; + } + } + var_r26 = var_r30; + var_r30 = var_r29; + } + if (var_r31->flag & 8) { + return 1; + } else { + return 0; + } +} + +static void fn_1_95F4(BssCData *arg0) { + HsfObject *var_r30; + ModelData *temp_r29; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float temp_f30; + float var_f31; + s16 var_r28; + + temp_f30 = BoardModelMotionMaxTimeGet(arg0->unk04); + if (lbl_1_bss_0->unk00_field0 == 0) { + BoardModelMotionTimeSet(arg0->unk04, temp_f30); + BoardModelMotionSpeedSet(arg0->unk04, -0.18f); + } else { + BoardModelMotionTimeSet(arg0->unk04, 0.0f); + BoardModelMotionSpeedSet(arg0->unk04, 0.18f); + } + BoardPlayerPosGet(arg0->unk01, &sp14); + var_r28 = BoardModelIDGet(arg0->unk04); + temp_r29 = &Hu3DData[var_r28]; + Hu3DMotionExec(var_r28, temp_r29->unk_08, temp_r29->unk_64, 0); + var_r30 = Hu3DModelObjPtrGet(var_r28, "looppath-cube1"); + sp20.x = var_r30->data.curr.pos.x; + sp20.y = var_r30->data.curr.pos.y; + sp20.z = var_r30->data.curr.pos.z; + var_f31 = 0.0f; + while (TRUE) { + Hu3DMotionExec(var_r28, temp_r29->unk_08, temp_r29->unk_64, 0); + var_r30 = Hu3DModelObjPtrGet(var_r28, "looppath-cube1"); + sp2C.x = var_r30->data.curr.pos.x; + sp2C.y = var_r30->data.curr.pos.y; + sp2C.z = var_r30->data.curr.pos.z; + PSVECSubtract(&sp2C, &sp20, &sp8); + var_f31 += PSVECMag(&sp8); + if (BoardVecMinDistCheck(&sp14, &sp2C, 150.0f)) { + break; + } + sp20 = sp2C; + temp_r29->unk_64 += temp_r29->unk_68; + } + arg0->unk10 = var_f31; +} + +static void fn_1_97F4(void) { + Bss20Work *temp_r30; + Bss20Data *var_r31; + s32 i; + + if (lbl_1_bss_20) { + return; + } + lbl_1_bss_20 = omAddObjEx(boardObjMan, 0x101, 1, 0, -1, fn_1_9920); + temp_r30 = OM_GET_WORK_PTR(lbl_1_bss_20, Bss20Work); + temp_r30->unk00_field0 = 0; + temp_r30->unk04 = HuMemDirectMallocNum(HEAP_SYSTEM, 20 * sizeof(Bss20Data), MEMORY_DEFAULT_NUM); + var_r31 = temp_r30->unk04; + for (i = 0; i < 20; var_r31++, i++) { + var_r31->unk00 = -1; + var_r31->unk02 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 7), NULL, 0); + BoardModelVisibilitySet(var_r31->unk02, 0); + } +} + +static void fn_1_98EC(void) { + if (lbl_1_bss_20) { + OM_GET_WORK_PTR(lbl_1_bss_20, Bss20Work)->unk00_field0 = 1; + } +} + +static void fn_1_9920(omObjData *arg0) { + Bss20Work *temp_r31; + s32 i; + + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_20, Bss20Work); + if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { + for (i = 0; i < 20; i++) { + BoardModelKill(temp_r31->unk04[i].unk02); + } + HuMemDirectFree(temp_r31->unk04); + lbl_1_bss_20 = 0; + omDelObjEx(HuPrcCurrentGet(), arg0); + return; + } + if (lbl_1_bss_640 < 10.0f) { + return; + } + if (temp_r31->unk01 != 0) { + temp_r31->unk01--; + } else { + temp_r31->unk01 = 2; + fn_1_9A24(temp_r31); + } + fn_1_9BBC(temp_r31); +} + +static void fn_1_9A24(Bss20Work *arg0) { + Bss20Data *temp_r31; + Mtx sp8; + s32 i; + s32 j; + + if (lbl_1_bss_6B1 != 0) { + PSMTXTrans(sp8, 0.0f, 50.0f, -100.0f); + } else { + PSMTXTrans(sp8, 0.0f, 70.0f, -100.0f); + } + PSMTXConcat(lbl_1_bss_678, sp8, sp8); + for (i = 0; i < 4; i++) { + for (j = 0; j < 20; j++) { + temp_r31 = &arg0->unk04[j]; + if (temp_r31->unk00 == -1) { + temp_r31->unk00 = 10; + Hu3DMtxTransGet(sp8, &temp_r31->unk08); + PSVECAdd(&lbl_1_bss_654, &temp_r31->unk08, &temp_r31->unk08); + temp_r31->unk14.x = 0.0f; + temp_r31->unk14.y = 0.0f; + temp_r31->unk14.z = 0.001f; + temp_r31->unk04 = 1.0f; + BoardModelVisibilitySet(temp_r31->unk02, 1); + BoardModelLayerSet(temp_r31->unk02, 2); + BoardModelPosSetV(temp_r31->unk02, &temp_r31->unk08); + break; + } + } + } +} + +static void fn_1_9BBC(Bss20Work *arg0) { + Bss20Data *temp_r31; + s32 i; + + for (i = 0; i < 20; i++) { + temp_r31 = &arg0->unk04[i]; + if (temp_r31->unk00 == -1) { + continue; + } + temp_r31->unk00--; + if (temp_r31->unk00 == 0) { + temp_r31->unk00 = -1; + BoardModelVisibilitySet(temp_r31->unk02, 0); + } else { + if (temp_r31->unk00 <= 3) { + temp_r31->unk04 = sin(30.0f * temp_r31->unk00 * M_PI / 180.0); + } + PSVECAdd(&temp_r31->unk08, &temp_r31->unk14, &temp_r31->unk08); + BoardModelMtxSet(temp_r31->unk02, &lbl_1_bss_678); + BoardModelPosSetV(temp_r31->unk02, &temp_r31->unk08); + BoardModelScaleSet(temp_r31->unk02, temp_r31->unk04, temp_r31->unk04, temp_r31->unk04); + } + } +} diff --git a/src/REL/w01Dll/mg_coin.c b/src/REL/w01Dll/mg_coin.c new file mode 100755 index 00000000..71f92248 --- /dev/null +++ b/src/REL/w01Dll/mg_coin.c @@ -0,0 +1,1072 @@ +#include "REL/w01Dll.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/board/audio.h" +#include "game/board/com.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/window.h" + +#include "dolphin.h" +#include "math.h" + +typedef struct { + /* 0x00 */ Vec unk00; + /* 0x0C */ float unk0C; +} Data690InnerStruct; // Size 0x10 + +typedef Data690InnerStruct Data690Block[15]; + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ Vec unk04; + /* 0x10 */ Vec unk10; + /* 0x1C */ u16 unk1C; + /* 0x1E */ char unk1E[2]; + /* 0x20 */ float unk20; + /* 0x24 */ u16 unk24; + /* 0x26 */ s16 unk26; + /* 0x28 */ s16 unk28; + /* 0x2A */ char unk2A[2]; +} Bss720Data; // Size 0x2C + +typedef struct { + /* 0x00 */ char unk00[4]; + /* 0x04 */ Data690Block *unk04; + /* 0x08 */ u16 unk08; + /* 0x0A */ char unk0A[2]; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ Vec unk20; + /* 0x2C */ Vec unk2C; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ s16 unk40; + /* 0x42 */ char unk42[2]; +} Bss714Data; // Size 0x44 + +static void fn_1_A4B8(omObjData *arg0); +static void fn_1_A554(void); +static void fn_1_A5FC(void); +static void fn_1_A6E0(omObjData *arg0); +static float fn_1_B018(Data690Block *arg0); +static void fn_1_B088(omObjData *arg0); +static void fn_1_B1CC(omObjData *arg0, u16 *arg1, u16 *arg2); +static void fn_1_B3B8(omObjData *arg0); +static void fn_1_B478(omObjData *arg0); +static void fn_1_BAF8(omObjData *arg0); +static void fn_1_BCDC(omObjData *arg0); +static void fn_1_BF00(omObjData *arg0); +static void fn_1_BF68(omObjData *arg0); +static void fn_1_C000(void); +static void fn_1_C0FC(omObjData *arg0); +static void fn_1_C25C(void); +static void fn_1_C844(void); +static void fn_1_C894(omObjData *arg0); +static void fn_1_C94C(Vec *arg0, Vec *arg1, Vec *arg2); +static float fn_1_C998(Vec *arg0); +static u32 fn_1_CB44(Vec *arg0, float arg1); +static void fn_1_CEC4(void); +static void fn_1_D034(void); +static void fn_1_D07C(omObjData *arg0); +static void fn_1_D114(ModelData *model, ParticleData *particle, Mtx matrix); + +static s32 lbl_1_bss_79C; +static s32 lbl_1_bss_798; +static s16 lbl_1_bss_796; +static s16 lbl_1_bss_790[3]; +static s16 lbl_1_bss_78A[3]; +static s16 lbl_1_bss_788; +static s16 lbl_1_bss_760[20]; +static Process *lbl_1_bss_75C; +static omObjData *lbl_1_bss_758; +static float lbl_1_bss_754; +static s16 lbl_1_bss_750; +static s32 lbl_1_bss_74C; +static s32 lbl_1_bss_748; +static s16 lbl_1_bss_744; +static Vec lbl_1_bss_738; +static s32 lbl_1_bss_734; +static s32 lbl_1_bss_730; +static s32 lbl_1_bss_72C; +static u16 lbl_1_bss_72A; +static u16 lbl_1_bss_728; +static s32 lbl_1_bss_724; +static omObjData *lbl_1_bss_720; +static omObjData *lbl_1_bss_714[3]; +static omObjData *lbl_1_bss_710; +static AnimData *lbl_1_bss_70C; +static s16 lbl_1_bss_708; + +static Vec lbl_1_data_658[3] = { + { -50.0f, 238.0f, 0.0f }, + { 0.0f, 275.5f, 0.0f }, + { 50.0f, 238.0f, 0.0f } +}; + +static u16 lbl_1_data_67C[3][3] = { + { 10, 5, 20 }, + { 10, 5, 20 }, + { 5, 20, 10 } +}; + +static Data690Block lbl_1_data_690[3] = { + { + { { -50.0f, -12.0f, 0.0f }, 75.0f }, + { { -50.0f, 63.0f, 0.0f }, 50.0f }, + { { 0.0f, 63.0f, 0.0f }, 25.0f }, + { { 0.0f, 88.0f, 0.0f }, 50.0f }, + { { 50.0f, 88.0f, 0.0f }, 87.5f }, + { { 50.0f, 175.5f, 0.0f }, 0.0f } + }, + { + { { 0.0f, -12.0f, 0.0f }, 75.0f }, + { { 0.0f, 63.0f, 0.0f }, 50.0f }, + { { -50.0f, 63.0f, 0.0f }, 50.0f }, + { { -50.0f, 113.0f, 0.0f }, 50.0f }, + { { 0.0f, 113.0f, 0.0f }, 50.0f }, + { { 0.0f, 163.0f, 0.0f }, 50.0f }, + { { -50.0f, 163.0f, 0.0f }, 12.5f }, + { { -50.0f, 175.5f, 0.0f }, 0.0f } + }, + { + { { 50.0f, -12.0f, 0.0f }, 100.0f }, + { { 50.0f, 88.0f, 0.0f }, 50.0f }, + { { 0.0f, 88.0f, 0.0f }, 25.0f }, + { { 0.0f, 113.0f, 0.0f }, 50.0f }, + { { -50.0f, 113.0f, 0.0f }, 50.0f }, + { { -50.0f, 163.0f, 0.0f }, 50.0f }, + { { 0.0f, 163.0f, 0.0f }, 50.0f }, + { { 0.0f, 213.0f, 0.0f }, 0.0f } + } +}; + +static Data690Block lbl_1_data_960[3] = { + { + { { -50.0f, -12.0f, 0.0f }, 125.0f }, + { { -50.0f, 113.0f, 0.0f }, 50.0f }, + { { 0.0f, 113.0f, 0.0f }, 25.0f }, + { { 0.0f, 138.0f, 0.0f }, 50.0f }, + { { 50.0f, 138.0f, 0.0f }, 37.5f }, + { { 50.0f, 175.5f, 0.0f }, 0.0f } + }, + { + { { 0.0f, -12.0f, 0.0f }, 75.0f }, + { { 0.0f, 63.0f, 0.0f }, 50.0f }, + { { 50.0f, 63.0f, 0.0f }, 75.0f }, + { { 50.0f, 138.0f, 0.0f }, 50.0f }, + { { 0.0f, 138.0f, 0.0f }, 25.0f }, + { { 0.0f, 163.0f, 0.0f }, 50.0f }, + { { -50.0f, 163.0f, 0.0f }, 12.5f }, + { { -50.0f, 175.5f, 0.0f }, 0.0f } + }, + { + { { 50.0f, -12.0f, 0.0f }, 75.0f }, + { { 50.0f, 63.0f, 0.0f }, 50.0f }, + { { 0.0f, 63.0f, 0.0f }, 50.0f }, + { { 0.0f, 113.0f, 0.0f }, 50.0f }, + { { -50.0f, 113.0f, 0.0f }, 50.0f }, + { { -50.0f, 163.0f, 0.0f }, 50.0f }, + { { 0.0f, 163.0f, 0.0f }, 50.0f }, + { { 0.0f, 213.0f, 0.0f }, 0.0f } + } +}; + +static Data690Block lbl_1_data_C30[3] = { + { + { { -50.0f, -12.0f, 0.0f }, 100.0f }, + { { -50.0f, 88.0f, 0.0f }, 50.0f }, + { { 0.0f, 88.0f, 0.0f }, 50.0f }, + { { 0.0f, 138.0f, 0.0f }, 50.0f }, + { { -50.0f, 138.0f, 0.0f }, 37.5f }, + { { -50.0f, 175.5f, 0.0f }, 0.0f } + }, + { + { { 0.0f, -12.0f, 0.0f }, 75.0f }, + { { 0.0f, 63.0f, 0.0f }, 50.0f }, + { { 50.0f, 63.0f, 0.0f }, 100.0f }, + { { 50.0f, 163.0f, 0.0f }, 50.0f }, + { { 0.0f, 163.0f, 0.0f }, 50.0f }, + { { 0.0f, 213.0f, 0.0f }, 0.0f } + }, + { + { { 50.0f, -12.0f, 0.0f }, 75.0f }, + { { 50.0f, 63.0f, 0.0f }, 50.0f }, + { { 0.0f, 63.0f, 0.0f }, 25.0f }, + { { 0.0f, 88.0f, 0.0f }, 50.0f }, + { { -50.0f, 88.0f, 0.0f }, 50.0f }, + { { -50.0f, 138.0f, 0.0f }, 50.0f }, + { { 0.0f, 138.0f, 0.0f }, 25.0f }, + { { 0.0f, 163.0f, 0.0f }, 50.0f }, + { { 50.0f, 163.0f, 0.0f }, 12.5f }, + { { 50.0f, 175.5f, 0.0f }, 0.0f } + } +}; + +void fn_1_9D00(s32 arg0) { + s32 temp_r31; + s32 var_r30; + + temp_r31 = GWSystem.star_pos; + var_r30 = 0; + if (lbl_1_bss_0->unk00_field0 != 0) { + if (temp_r31 == 0 || temp_r31 == 1 || temp_r31 == 7) { + var_r30 = 0; + } else { + var_r30 = 1; + } + } else if (temp_r31 == 0 || temp_r31 == 1 || temp_r31 == 7) { + var_r30 = 1; + } else { + var_r30 = 0; + } + if (BoardPlayerCoinsGet(arg0) < 5) { + var_r30 = 0; + } + if (var_r30 != 0) { + BoardComKeySetLeft(); + } else { + BoardComKeySetRight(); + } +} + +void fn_1_9DD8(void) { + Vec sp2C[3]; + Vec sp20; + Vec sp14; + Vec sp8; + Bss720Data *temp_r30; + Bss714Data *temp_r29; + s32 i; + + lbl_1_bss_79C = GWPlayer[GWSystem.player_curr].port; + lbl_1_bss_796 = lbl_1_bss_6C4[6]; + lbl_1_bss_790[0] = lbl_1_bss_6C4[7]; + lbl_1_bss_790[1] = lbl_1_bss_6C4[8]; + lbl_1_bss_790[2] = lbl_1_bss_6C4[9]; + lbl_1_bss_78A[0] = lbl_1_bss_6C4[10]; + lbl_1_bss_78A[1] = lbl_1_bss_6C4[11]; + lbl_1_bss_78A[2] = lbl_1_bss_6C4[12]; + BoardModelVisibilitySet(lbl_1_bss_790[0], 0); + BoardModelVisibilitySet(lbl_1_bss_790[1], 0); + BoardModelVisibilitySet(lbl_1_bss_790[2], 0); + lbl_1_bss_734 = rand8() % 3; + BoardModelVisibilitySet(lbl_1_bss_790[lbl_1_bss_734], 1); + BoardModelMotionStart(lbl_1_bss_790[lbl_1_bss_734], 0, 0x40000001); + BoardModelPosGet(lbl_1_bss_796, &sp20); + sp8.x = sp8.y = sp8.z = 1.0f; + for (i = 0; i < 3; i++) { + sp2C[i] = lbl_1_data_690[i][0].unk00; + sp2C[i].y -= -12.0f; + BoardModelPosSet(lbl_1_bss_78A[i], sp20.x + sp2C[i].x, sp20.y + sp2C[i].y, sp20.z + 30.0f); + BoardModelVisibilitySet(lbl_1_bss_78A[i], 1); + BoardModelScaleSetV(lbl_1_bss_78A[i], &sp8); + } + lbl_1_bss_798 = GWSystem.player_curr; + BoardModelPosGet(lbl_1_bss_796, &lbl_1_bss_738); + lbl_1_bss_730 = 1; + BoardModelPosGet(lbl_1_bss_78A[lbl_1_bss_730], &sp14); + BoardPlayerPosGet(lbl_1_bss_798, &sp20); + lbl_1_bss_758 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_A4B8); + lbl_1_bss_720 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_B3B8); + lbl_1_bss_720->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss720Data), MEMORY_DEFAULT_NUM); + temp_r30 = lbl_1_bss_720->data; + temp_r30->unk02 = 0; + temp_r30->unk04 = sp14; + temp_r30->unk28 = 0; + fn_1_CB44(&sp14, 0.0f); + fn_1_B088(lbl_1_bss_720); + lbl_1_bss_750 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_W01, 19)); + Hu3DModelAttrSet(lbl_1_bss_750, 1); + for (i = 0; i < 3; i++) { + lbl_1_bss_714[i] = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_A6E0); + lbl_1_bss_714[i]->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss714Data), MEMORY_DEFAULT_NUM); + lbl_1_bss_714[i]->work[0] = lbl_1_bss_78A[i]; + lbl_1_bss_714[i]->work[1] = 0; + lbl_1_bss_714[i]->work[3] = 0; + temp_r29 = lbl_1_bss_714[i]->data; + if (i == lbl_1_bss_730) { + lbl_1_bss_714[i]->work[2] = 1; + } else { + lbl_1_bss_714[i]->work[2] = 0; + } + temp_r29->unk18 = 1.0f; + temp_r29->unk1C = 0.0f; + } + lbl_1_bss_72C = 0; + lbl_1_bss_74C = 5; + lbl_1_bss_748 = 0x3C; + lbl_1_bss_72A = 0; + fn_1_CEC4(); + lbl_1_bss_788 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 17), NULL, 0); + BoardModelMotionUpdateSet(lbl_1_bss_788, 1); + BoardModelVisibilitySet(lbl_1_bss_788, 0); + for (i = 0; i < 20; i++) { + lbl_1_bss_760[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 1); + BoardModelVisibilitySet(lbl_1_bss_760[i], 0); + } +} + +static void fn_1_A4B8(omObjData *arg0) { + if (lbl_1_bss_72A == 0) { + return; + } + if (BoardMGDoneFlagGet() == 1) { + if (lbl_1_bss_754 <= 0.0f) { + fn_1_A5FC(); + omDelObjEx(HuPrcCurrentGet(), arg0); + } + } + lbl_1_bss_754 -= 1.0f; +} + +static void fn_1_A554(void) { + float temp_f1; + + lbl_1_bss_72A = 1; + BoardMGExit(); + temp_f1 = BoardModelMotionTimeGet(lbl_1_bss_796); + lbl_1_bss_754 = temp_f1; + BoardModelMotionStart(lbl_1_bss_796, 0, 0); + BoardModelMotionTimeSet(lbl_1_bss_796, temp_f1); + BoardModelMotionSpeedSet(lbl_1_bss_796, -1.0f); +} + +static void fn_1_A5FC(void) { + s32 i; + + for (i = 0; i < 3; i++) { + BoardModelVisibilitySet(lbl_1_bss_790[i], 0); + BoardModelVisibilitySet(lbl_1_bss_78A[i], 0); + omDelObjEx(HuPrcCurrentGet(), lbl_1_bss_714[i]); + } + for (i = 0; i < 20; i++) { + BoardModelKill(lbl_1_bss_760[i]); + } + fn_1_D034(); + BoardModelKill(lbl_1_bss_788); + BoardMGDoneFlagSet(0); + Hu3DModelKill(lbl_1_bss_750); +} + +static void fn_1_A6E0(omObjData *arg0) { + Bss714Data *temp_r31; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + + temp_r31 = arg0->data; + BoardModelScaleGet(arg0->work[0], &sp2C); + switch (arg0->work[2]) { + case 1: + if ((sp2C.x += 0.08f) >= 1.5f) { + sp2C.x = 1.5f; + sp2C.y = 1.5f; + if (arg0->work[3] == 1) { + arg0->work[2] = 0; + } else { + arg0->work[2] = 2; + } + } else { + sp2C.y += 0.08f; + } + BoardModelScaleSetV(arg0->work[0], &sp2C); + break; + case 2: + if ((sp2C.x -= 0.08f) <= 1.0f) { + sp2C.x = 1.0f; + sp2C.y = 1.0f; + if (arg0->work[1] == 1) { + arg0->work[2] = 0; + arg0->work[1] = 0; + } else { + arg0->work[2] = 1; + } + } else { + sp2C.y -= 0.08f; + } + BoardModelScaleSetV(arg0->work[0], &sp2C); + break; + case 3: + switch (lbl_1_bss_734) { + case 0: + temp_r31->unk04 = &lbl_1_data_690[lbl_1_bss_730]; + break; + case 1: + temp_r31->unk04 = &lbl_1_data_960[lbl_1_bss_730]; + break; + case 2: + temp_r31->unk04 = &lbl_1_data_C30[lbl_1_bss_730]; + break; + } + BoardModelPosGet(arg0->work[0], &sp14); + sp14.x = lbl_1_bss_738.x + ((*temp_r31->unk04)[0].unk00.x + temp_r31->unk18); + temp_r31->unk18 = -temp_r31->unk18; + BoardModelPosSetV(arg0->work[0], &sp14); + sp14.y += 5.0f; + BoardPlayerPosSetV(lbl_1_bss_798, &sp14); + temp_r31->unk1C += 0.022222223f; + temp_r31->unk38 -= 0.011111111f; + if (temp_r31->unk38 < 0.0f) { + temp_r31->unk38 = 0.0f; + } + Hu3DModelTPLvlSet(lbl_1_bss_750, temp_r31->unk38); + if (temp_r31->unk1C > 1.0f) { + temp_r31->unk1C = 1.0f; + } + PSVECAdd(&temp_r31->unk20, &temp_r31->unk2C, &temp_r31->unk20); + if (temp_r31->unk20.y >= 4.0f) { + temp_r31->unk20.y = 4.0f; + temp_r31->unk2C.y = -0.1f; + } + if (temp_r31->unk20.y < 1.0f) { + temp_r31->unk20.y = 1.0f; + } + Hu3DModelScaleSet(lbl_1_bss_750, temp_r31->unk20.x, temp_r31->unk20.y, temp_r31->unk20.z); + break; + case 4: + Hu3DModelAttrSet(lbl_1_bss_750, 1); + arg0->work[2] = 5; + temp_r31->unk08 = 0; + temp_r31->unk0C = 12.0f; + temp_r31->unk14 = (fn_1_B018(temp_r31->unk04) - temp_r31->unk0C) / 90.0f; + temp_r31->unk10 = temp_r31->unk14 / 20.0f; + HuAudFXPlay(0x406); + HuAudFXPlay(0x407); + HuAudFXStop(lbl_1_bss_724); + break; + case 5: + var_f31 = temp_r31->unk0C + temp_r31->unk10; + temp_r31->unk0C = var_f31; + temp_r31->unk10 *= 1.04f; + if (temp_r31->unk10 > temp_r31->unk14) { + temp_r31->unk10 = temp_r31->unk14; + } + BoardModelPosGet(arg0->work[0], &sp20); + while (var_f31 >= (*temp_r31->unk04)[temp_r31->unk08].unk0C) { + var_f31 -= (*temp_r31->unk04)[temp_r31->unk08].unk0C; + temp_r31->unk08++; + if ((*temp_r31->unk04)[temp_r31->unk08].unk0C == 0.0f) { + omVibrate(lbl_1_bss_798, 12, 6, 6); + var_f31 = 0.0f; + lbl_1_bss_72C = 1; + lbl_1_bss_724 = HuAudFXPlay(0x332); + lbl_1_bss_708 = 0; + arg0->work[2] = 6; + if (sp20.x - lbl_1_bss_738.x < -25.0f) { + temp_r31->unk40 = 0; + lbl_1_bss_728 = 5; + } else if (sp20.x - lbl_1_bss_738.x > 25.0f) { + temp_r31->unk40 = 2; + lbl_1_bss_728 = 10; + } else { + temp_r31->unk40 = 1; + lbl_1_bss_728 = 20; + } + break; + } + } + temp_r31->unk0C = var_f31; + sp14.x = sp14.y = sp14.z = 0.0f; + if (lbl_1_bss_72C == 0) { + fn_1_C94C(&(*temp_r31->unk04)[temp_r31->unk08].unk00, &(*temp_r31->unk04)[temp_r31->unk08 + 1].unk00, &sp8); + sp20.x = lbl_1_bss_738.x + (sp8.x * var_f31 + (*temp_r31->unk04)[temp_r31->unk08].unk00.x); + sp20.y = lbl_1_bss_738.y + (sp8.y * var_f31 + (*temp_r31->unk04)[temp_r31->unk08].unk00.y); + } else { + sp20.x = lbl_1_bss_738.x + (*temp_r31->unk04)[temp_r31->unk08].unk00.x; + sp20.y = lbl_1_bss_738.y + (*temp_r31->unk04)[temp_r31->unk08].unk00.y; + } + BoardModelPosSetV(arg0->work[0], &sp20); + sp20.y += 5.0f; + BoardPlayerPosSetV(lbl_1_bss_798, &sp20); + BoardModelRotSetV(arg0->work[0], &sp14); + BoardPlayerRotSetV(lbl_1_bss_798, &sp14); + break; + case 6: + if (lbl_1_bss_708 == 0 && (HuAudFXStatusGet(lbl_1_bss_724) == 1 || HuAudFXStatusGet(lbl_1_bss_724) == 0)) { + BoardAudSeqPause(0, 0, 1000); + lbl_1_bss_708 = 1; + } + BoardModelVisibilitySet(lbl_1_bss_788, 1); + sp20.x = lbl_1_bss_738.x + lbl_1_data_658[temp_r31->unk40].x; + sp20.y = lbl_1_bss_738.y + lbl_1_data_658[temp_r31->unk40].y; + sp20.z = lbl_1_bss_738.z + lbl_1_data_658[temp_r31->unk40].z; + BoardModelPosSetV(lbl_1_bss_788, &sp20); + temp_r31->unk1C -= 0.05f; + if (temp_r31->unk1C <= 0.0f) { + temp_r31->unk1C = 0.0f; + } + break; + } +} + +static float fn_1_B018(Data690Block *arg0) { + float var_f31; + s32 i; + + var_f31 = 0.0f; + i = 0; + while (TRUE) { + if ((*arg0)[i].unk0C == 0.0f) { + break; + } + var_f31 += (*arg0)[i].unk0C; + i++; + } + return var_f31; +} + +static void fn_1_B088(omObjData *arg0) { + Bss720Data *temp_r31; + u16 sp8[] = { 20, 60, 120, 190 }; + s32 i; + + temp_r31 = arg0->data; + if (rand8() < sp8[GWPlayerCfg[lbl_1_bss_798].diff]) { + for (i = 0; i < 3; i++) { + if (lbl_1_data_67C[lbl_1_bss_734][i] == 20) { + temp_r31->unk26 = i; + } + } + } else { + temp_r31->unk26 = rand8() % 3; + } + temp_r31->unk24 = rand8() % 20 + 20; +} + +static void fn_1_B1CC(omObjData *arg0, u16 *arg1, u16 *arg2) { + Bss720Data *temp_r31; + + temp_r31 = arg0->data; + *arg1 = *arg2 = 0; + if (temp_r31->unk24 != 0) { + temp_r31->unk24--; + return; + } + if (temp_r31->unk28 >= 4 || (rand8() & 1)) { + if (temp_r31->unk26 == lbl_1_bss_730) { + *arg2 |= 0x100; + } else if (temp_r31->unk26 < lbl_1_bss_730) { + *arg1 |= 1; + } else { + *arg1 |= 2; + } + temp_r31->unk24 = rand8() % 10 + 10; + } else { + temp_r31->unk28++; + temp_r31->unk24 = rand8() % 10 + 20; + if (lbl_1_bss_730 == 0) { + *arg1 |= 2; + } else if (lbl_1_bss_730 == 2) { + *arg1 |= 1; + } else if (rand8() & 1) { + *arg1 |= 1; + } else { + *arg1 |= 2; + } + } +} + +static void fn_1_B3B8(omObjData *arg0) { + float temp_f31; + + temp_f31 = BoardModelMotionMaxTimeGet(lbl_1_bss_796); + if (BoardModelMotionTimeGet(lbl_1_bss_796) >= temp_f31) { + lbl_1_bss_744 = MGSeqCreate(1, lbl_1_bss_74C, 0x120, 0x40); + lbl_1_bss_720->func = fn_1_B478; + BoardMusStart(1, 0xF, 0x7F, 0); + lbl_1_bss_724 = HuAudFXPlay(0x408); + } +} + +static void fn_1_B478(omObjData *arg0) { + Bss720Data *temp_r31; + Vec sp18; + Vec spC; + float var_f28; + u16 var_r27; + u16 var_r29; + + temp_r31 = arg0->data; + if ((lbl_1_bss_748 -= 1) == 0) { + if ((lbl_1_bss_74C -= 1) >= 0) { + MGSeqParamSet(lbl_1_bss_744, 1, lbl_1_bss_74C); + } + lbl_1_bss_748 = 60; + } + if (GWPlayerCfg[lbl_1_bss_798].iscom == 1) { + fn_1_B1CC(arg0, &var_r29, &var_r27); + } else { + var_r29 = HuPadDStkRep[lbl_1_bss_79C]; + var_r27 = HuPadBtnDown[lbl_1_bss_79C]; + } + if ((var_r29 & 1) && lbl_1_bss_730 != 0) { + lbl_1_bss_714[lbl_1_bss_730]->work[1] = 1; + lbl_1_bss_714[lbl_1_bss_730]->work[2] = 2; + lbl_1_bss_730--; + lbl_1_bss_714[lbl_1_bss_730]->work[2] = 1; + } + if ((var_r29 & 2) && lbl_1_bss_730 != 2) { + lbl_1_bss_714[lbl_1_bss_730]->work[1] = 1; + lbl_1_bss_714[lbl_1_bss_730]->work[2] = 2; + lbl_1_bss_730++; + lbl_1_bss_714[lbl_1_bss_730]->work[2] = 1; + } + BoardModelPosGet(lbl_1_bss_78A[lbl_1_bss_730], &sp18); + BoardPlayerPosGet(lbl_1_bss_798, &spC); + fn_1_CB44(&sp18, 0.0f); + temp_r31->unk04 = sp18; + if (lbl_1_bss_74C < 0 || (var_r27 & 0x100)) { + MGSeqParamSet(lbl_1_bss_744, 2, -1); + lbl_1_bss_714[lbl_1_bss_730]->work[1] = 1; + BoardPlayerPosGet(lbl_1_bss_798, &spC); + var_f28 = sqrtf((temp_r31->unk04.x - spC.x) * (temp_r31->unk04.x - spC.x) + (temp_r31->unk04.z - spC.z) * (temp_r31->unk04.z - spC.z)); + fn_1_C94C(&spC, &temp_r31->unk04, &temp_r31->unk10); + temp_r31->unk10.y = 0.0f; + temp_r31->unk10.x *= var_f28 / 30.0f; + temp_r31->unk10.z *= var_f28 / 30.0f; + temp_r31->unk00 = 0; + temp_r31->unk20 = 0.0f; + arg0->func = fn_1_BAF8; + } +} + +static void fn_1_BAF8(omObjData *arg0) { + Bss720Data *temp_r31; + Vec sp14; + Vec sp8; + + temp_r31 = arg0->data; + if (lbl_1_bss_714[lbl_1_bss_730]->work[2] != 0) { + return; + } + BoardPlayerMotionStart(lbl_1_bss_798, 4, 0); + BoardPlayerPosGet(lbl_1_bss_798, &sp14); + sp14.x += temp_r31->unk10.x; + sp14.z += temp_r31->unk10.z; + sp14.y = lbl_1_bss_738.y + 80.0 * sin(6.0f * temp_r31->unk20 * M_PI / 180.0); + BoardModelPosGet(lbl_1_bss_714[lbl_1_bss_730]->work[0], &sp8); + if ((temp_r31->unk20 += 1.0f) == 30.0f) { + sp14.y = sp8.y + 5.0f; + BoardPlayerPosSetV(lbl_1_bss_798, &sp14); + BoardPlayerMotionShiftSet(lbl_1_bss_798, 2, 0.0f, 10.0f, 0); + arg0->func = fn_1_BCDC; + } + BoardPlayerPosSetV(lbl_1_bss_798, &sp14); +} + +static void fn_1_BCDC(omObjData *arg0) { + Bss720Data *temp_r29; + Bss714Data *temp_r31; + Vec sp14; + Vec sp8; + + temp_r29 = arg0->data; + BoardPlayerPosGet(lbl_1_bss_798, &sp14); + sp8 = sp14; + sp8.z += 100.0f; + if (fn_1_CB44(&sp8, 10.0f) == 1) { + BoardPlayerMotionShiftSet(lbl_1_bss_798, 1, 0.0f, 10.0f, 0); + temp_r29->unk1C = 90; + lbl_1_bss_710->work[0] = 1; + lbl_1_bss_714[lbl_1_bss_730]->work[2] = 3; + temp_r31 = lbl_1_bss_714[lbl_1_bss_730]->data; + Hu3DModelAttrReset(lbl_1_bss_750, 1); + Hu3DModelPosSet(lbl_1_bss_750, sp14.x, sp14.y, sp14.z); + temp_r31->unk20.x = 1.4f; + temp_r31->unk20.y = 1.4f; + temp_r31->unk20.z = 1.4f; + temp_r31->unk2C.x = 0.055999998f; + temp_r31->unk2C.y = 0.08088889f; + temp_r31->unk2C.z = 0.055999998f; + temp_r31->unk38 = 1.0f; + temp_r31->unk3C = 0.0f; + Hu3DModelScaleSet(lbl_1_bss_750, 1.4f, 1.4f, 1.4f); + arg0->func = fn_1_BF00; + } +} + +static void fn_1_BF00(omObjData *arg0) { + Bss720Data *temp_r31; + + temp_r31 = arg0->data; + if (temp_r31->unk1C == 0) { + lbl_1_bss_714[lbl_1_bss_730]->work[2] = 4; + arg0->func = fn_1_BF68; + } else { + temp_r31->unk1C--; + } +} + +static void fn_1_BF68(omObjData *arg0) { + Bss720Data *sp8; + + sp8 = arg0->data; + if (lbl_1_bss_714[lbl_1_bss_730]->work[2] == 6) { + lbl_1_bss_75C = HuPrcCreate(fn_1_C000, 0x2004, 0x1000, 0); + lbl_1_bss_75C->user_data = arg0; + arg0->func = NULL; + } +} + +static void fn_1_C000(void) { + char sp8[16]; // array size may range between 1 and 16 (inclusive) + omObjData *temp_r30; + Bss720Data *temp_r31; + + BoardAudSeqFadeOut(1, 100); + sprintf(&sp8, "%d", lbl_1_bss_728); + BoardWinCreate(2, MAKE_MESSID(11, 6), 0); + BoardWinInsertMesSet(MAKE_MESSID_PTR(sp8), 0); + BoardWinWait(); + BoardWinKill(); + temp_r30 = HuPrcCurrentGet()->user_data; + temp_r31 = temp_r30->data; + temp_r31->unk10.x = 0.0f; + temp_r31->unk10.y = 10.0f; + temp_r31->unk10.z = 3.0f; + temp_r31->unk20 = 0.0f; + BoardPlayerMotionShiftSet(lbl_1_bss_798, 4, 0.0f, 10.0f, 0); + temp_r30->func = fn_1_C0FC; + HuPrcKill(NULL); + while (TRUE) { + HuPrcVSleep(); + } +} + +static void fn_1_C0FC(omObjData *arg0) { + Bss720Data *temp_r31; + Vec sp8; + + temp_r31 = arg0->data; + BoardPlayerPosGet(lbl_1_bss_798, &sp8); + sp8.x += temp_r31->unk10.x; + sp8.y += temp_r31->unk10.y - 0.029166667f * temp_r31->unk20 * temp_r31->unk20; + sp8.z += temp_r31->unk10.z; + temp_r31->unk20 += 1.0f; + if (sp8.y <= lbl_1_bss_738.y) { + BoardPlayerMotionShiftSet(lbl_1_bss_798, 1, 0.0f, 10.0f, 0x40000001); + sp8.y = lbl_1_bss_738.y; + lbl_1_bss_75C = HuPrcCreate(fn_1_C25C, 0x2004, 0x1000, 0); + lbl_1_bss_75C->user_data = arg0; + arg0->func = NULL; + } + BoardPlayerPosSetV(lbl_1_bss_798, &sp8); +} + +static void fn_1_C25C(void) { + Vec sp11C[20]; + Vec sp2C[20]; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + s16 var_r30; + s16 i; + + var_r30 = 0; + BoardPlayerPosGet(lbl_1_bss_798, &sp20); + sp14.x = sp14.y = sp14.z = 1.0f; + for (i = 0; i < lbl_1_bss_728; i++) { + BoardModelVisibilitySet(lbl_1_bss_760[i], 1); + sp11C[i] = sp20; + sp11C[i].y += 600.0f + i * 120; + sp11C[i].x += -25.0f + 50.0f * (frand() & 0xFF) * 0.003921569f; + sp11C[i].z += -25.0f + 50.0f * (frand() & 0xFF) * 0.003921569f; + sp2C[i].x = sp2C[i].z = 0.0f; + sp2C[i].y = 360.0f * (frand() & 0xFF) * 0.003921569f; + BoardModelPosSetV(lbl_1_bss_760[i], &sp11C[i]); + BoardModelScaleSetV(lbl_1_bss_760[i], &sp14); + BoardModelRotSetV(lbl_1_bss_760[i], &sp2C[i]); + } + var_f31 = -1.0f; + while (TRUE) { + for (i = 0; i < lbl_1_bss_728; i++) { + if (i >= var_r30) { + sp11C[i].y += var_f31; + BoardModelPosSetV(lbl_1_bss_760[i], &sp11C[i]); + sp2C[i].y += 45.0f; + if (sp2C[i].y >= 360.0f) { + sp2C[i].y -= 360.0f; + } + BoardModelRotSetV(lbl_1_bss_760[i], &sp2C[i]); + if (sp11C[i].y <= sp20.y + 80.0f) { + sp8 = sp11C[i]; + CharModelCoinEffectCreate(1, &sp8); + BoardModelVisibilitySet(lbl_1_bss_760[i], 0); + var_r30++; + BoardPlayerCoinsAdd(lbl_1_bss_798, 1); + HuAudFXPlay(7); + omVibrate(lbl_1_bss_798, 0xC, 6, 6); + } + } + } + var_f31 *= 1.05f; + if (var_f31 < -20.0f) { + var_f31 = -20.0f; + } + if (var_r30 == lbl_1_bss_728) { + BoardPlayerMotionShiftSet(lbl_1_bss_798, 7, 0.0f, 10.0f, 0); + break; + } + HuPrcVSleep(); + } + while (!BoardPlayerMotionEndCheck(lbl_1_bss_798)) { + HuPrcVSleep(); + } + lbl_1_bss_75C = HuPrcCreate(fn_1_C844, 0x2004, 0x1000, 0); + lbl_1_bss_75C->user_data = HuPrcCurrentGet()->user_data; + HuPrcKill(NULL); + while (TRUE) { + HuPrcVSleep(); + } +} + +static void fn_1_C844(void) { + omObjData *var_r31; + + BoardWinCreate(2, MAKE_MESSID(11, 7), 0); + BoardWinWait(); + BoardWinKill(); + var_r31 = HuPrcCurrentGet()->user_data; + var_r31->func = fn_1_C894; + HuPrcKill(NULL); + while (TRUE) { + HuPrcVSleep(); + } +} + +static void fn_1_C894(omObjData *arg0) { + float temp_f31; + + lbl_1_bss_72A = 1; + BoardMGExit(); + temp_f31 = BoardModelMotionTimeGet(lbl_1_bss_796); + lbl_1_bss_754 = temp_f31; + BoardModelMotionStart(lbl_1_bss_796, 0, 0); + BoardModelMotionTimeSet(lbl_1_bss_796, temp_f31); + BoardModelMotionSpeedSet(lbl_1_bss_796, -1.0f); + omDelObjEx(HuPrcCurrentGet(), arg0); +} + +static void fn_1_C94C(Vec *arg0, Vec *arg1, Vec *arg2) { + PSVECSubtract(arg1, arg0, arg2); + PSVECNormalize(arg2, arg2); +} + +static float fn_1_C998(Vec *arg0) { + float temp_f31; + + if (arg0->x || arg0->z) { + if (arg0->x == 0.0f) { + if (arg0->z > 0.0f) { + return 0.0f; + } else { + return 180.0f; + } + } + if (arg0->z == 0.0f) { + if (arg0->x > 0.0f) { + return 90.0f; + } else { + return 270.0f; + } + } + temp_f31 = 180.0 * (atan2(arg0->z, arg0->x) / M_PI); + if (arg0->z < 0.0f) { + temp_f31 = 90.0f - temp_f31; + } else { + temp_f31 = 90.0f - temp_f31; + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + } + return temp_f31; + } + return -1.0f; +} + +static u32 fn_1_CB44(Vec *arg0, float arg1) { + Vec sp24; + Vec sp18; + Vec spC; + float var_f28; + float var_f30; + float var_f31; + + BoardPlayerPosGet(lbl_1_bss_798, &sp18); + PSVECSubtract(arg0, &sp18, &sp24); + PSVECNormalize(&sp24, &sp24); + var_f28 = fn_1_C998(&sp24); + BoardPlayerRotGet(lbl_1_bss_798, &spC); + var_f31 = spC.y; + var_f30 = var_f28 - var_f31; + if (arg1 == 0.0f) { + var_f31 = var_f28; + } else if (fabs(var_f30) > arg1) { + if (var_f30 < 0.0f) { + var_f30 += 360.0f; + } + if (var_f30 < 180.0f) { + if (var_f30 > arg1) { + var_f31 += arg1; + } else { + var_f31 += var_f30; + } + } else if (360.0f - var_f30 > arg1) { + var_f31 -= arg1; + } else { + var_f31 -= 360.0f - var_f30; + } + } else { + var_f31 = var_f28; + } + if (var_f31 >= 360.0f) { + var_f31 -= 360.0f; + } + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + BoardPlayerRotYSet(lbl_1_bss_798, var_f31); + if (var_f31 == var_f28) { + return 1; + } else { + return 0; + } +} + +static void fn_1_CEC4(void) { + lbl_1_bss_70C = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_W01, 20)); + lbl_1_bss_710 = omAddObjEx(boardObjMan, 0x101, 1, 0, -1, fn_1_D07C); + lbl_1_bss_710->data = HuMemDirectMallocNum(HEAP_SYSTEM, 12, MEMORY_DEFAULT_NUM); + lbl_1_bss_710->model[0] = Hu3DParticleCreate(lbl_1_bss_70C, 0x320); + Hu3DParticleColSet(lbl_1_bss_710->model[0], 0xFF, 0, 0); + Hu3DParticleScaleSet(lbl_1_bss_710->model[0], 5.0f); + Hu3DParticleHookSet(lbl_1_bss_710->model[0], fn_1_D114); + Hu3DParticleBlendModeSet(lbl_1_bss_710->model[0], 1); + Hu3DModelAttrSet(lbl_1_bss_710->model[0], 1); + lbl_1_bss_710->work[0] = 0; +} + +static void fn_1_D034(void) { + Hu3DModelKill(lbl_1_bss_710->model[0]); + omDelObjEx(HuPrcCurrentGet(), lbl_1_bss_710); +} + +static void fn_1_D07C(omObjData *arg0) { + void *sp8; + + sp8 = arg0->data; + switch (arg0->work[0]) { + case 0: + break; + case 1: + arg0->work[0] = 2; + Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelScaleSet(arg0->model[0], 10.0f, 10.0f, 10.0f); + break; + case 2: + break; + } +} + +static void fn_1_D114(ModelData *model, ParticleData *particle, Mtx matrix) { + Bss714Data *temp_r28; + HsfanimStruct01 *var_r31; + Vec sp8; + float temp_f31; + s32 i; + s32 j; + s32 temp_r26; + + BoardModelPosGet(lbl_1_bss_714[lbl_1_bss_730]->work[0], &sp8); + temp_r28 = lbl_1_bss_714[lbl_1_bss_730]->data; + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + var_r31->unk2C = 0.0f; + } + particle->unk_1C = (void*) 1; + } + if (temp_r28->unk1C > 0.0f) { + for (i = 0; i < 80.0f * temp_r28->unk1C; i++) { + var_r31 = particle->unk_48; + for (j = 0; j < particle->unk_30; j++, var_r31++) { + if (var_r31->unk2C == 0.0f) { + break; + } + } + if (j != particle->unk_30) { + temp_r26 = frand() & 0xFFFF; + temp_f31 = (-15.0f + 30.0f * (temp_r26 / 65536.0f)) * temp_r28->unk1C; + var_r31->unk08.x = sp8.x + temp_f31; + var_r31->unk08.y = sp8.y; + var_r31->unk08.z = sp8.z; + var_r31->unk14.x = 255.0f; + var_r31->unk14.y = 155.0f; + var_r31->unk14.z = 55.0f; + var_r31->unk40.a = 0xFF; + var_r31->unk20 = 0.0f; + var_r31->unk24 = temp_r28->unk1C * (-3.0 + (2.0 * (fabs(temp_f31) / 15.0))); + var_r31->unk28 = 0.0f; + var_r31->unk2C = 7.3f; + } + } + } + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + if (var_r31->unk2C == 0.0f) { + continue; + } + var_r31->unk34.x = var_r31->unk08.x; + var_r31->unk34.y = var_r31->unk08.y; + var_r31->unk34.z = var_r31->unk08.z; + var_r31->unk08.x += var_r31->unk20; + var_r31->unk08.y += var_r31->unk24; + var_r31->unk08.z += var_r31->unk28; + if (var_r31->unk08.y <= lbl_1_bss_738.y) { + var_r31->unk08.y = lbl_1_bss_738.y; + var_r31->unk24 = -var_r31->unk24 - 0.3f; + if (var_r31->unk24 < 0.0f) { + var_r31->unk24 = 0.0f; + } + temp_r26 = 80.0f * (2.0f * ((sp8.x - var_r31->unk08.x) / 15.0f) - rand8() / 255.0f); + var_r31->unk20 = 8.0 * sin(temp_r26 * M_PI / 180.0); + var_r31->unk28 = 8.0 * cos(temp_r26 * M_PI / 180.0); + } + var_r31->unk24 -= 0.35f; + if ((var_r31->unk14.x -= 25.5f) < 0.0f) { + var_r31->unk14.x = 0.0f; + } + if ((var_r31->unk14.y -= 36.42857f) < 0.0f) { + var_r31->unk14.y = 0.0f; + } + if ((var_r31->unk14.z -= 63.75f) < 0.0f) { + var_r31->unk14.z = 0.0f; + } + var_r31->unk40.r = var_r31->unk14.x; + var_r31->unk40.g = var_r31->unk14.y; + var_r31->unk40.b = var_r31->unk14.z; + if (var_r31->unk40.r == 0 && var_r31->unk40.g == 0 && var_r31->unk40.b == 0) { + var_r31->unk2C = 0.0f; + } + } +} diff --git a/src/REL/w01Dll/mg_item.c b/src/REL/w01Dll/mg_item.c new file mode 100755 index 00000000..5a1b133a --- /dev/null +++ b/src/REL/w01Dll/mg_item.c @@ -0,0 +1,947 @@ +#include "REL/w01Dll.h" +#include "game/audio.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/board/audio.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/ui.h" +#include "game/board/window.h" + +#include "dolphin.h" +#include "math.h" + +static void fn_1_E100(void); +static void fn_1_E154(void); +static void fn_1_E2B8(omObjData *arg0); +static void fn_1_E44C(omObjData *arg0); +static void fn_1_E914(omObjData *arg0); +static void fn_1_ECD4(omObjData *arg0); +static void fn_1_EEA0(omObjData *arg0, u16 *arg1); +static void fn_1_EED8(omObjData *arg0); +static void fn_1_F09C(omObjData *arg0); +static void fn_1_F348(omObjData *arg0); +static void fn_1_F3F8(omObjData *arg0); +static void fn_1_F6E8(omObjData *arg0); +static void fn_1_F890(omObjData *arg0); +static void fn_1_FA1C(omObjData *arg0); +static void fn_1_FABC(omObjData *arg0); +static void fn_1_FB58(void); +static void fn_1_FC3C(omObjData *arg0); +static void fn_1_FCEC(void); +static void fn_1_FD3C(omObjData *arg0); +static void fn_1_FE44(omObjData *arg0); +static void fn_1_FED0(omObjData *arg0); +static s16 fn_1_1001C(u32 arg0); +static void fn_1_101B8(s16 arg0); +static void fn_1_10664(omObjData *arg0); +static void fn_1_10820(omObjData *arg0); +static void fn_1_10AE8(omObjData *arg0); +static float fn_1_10BB0(u32 arg0); +static void fn_1_10CF0(u32 arg0); +static float fn_1_10EB8(Vec *arg0); +static void fn_1_11064(ModelData *model, ParticleData *particle, Mtx matrix); +static void fn_1_11484(ModelData *model, ParticleData *particle, Mtx matrix); + +static void *lbl_1_bss_818; +static Vec lbl_1_bss_80C; +static omObjData *lbl_1_bss_7FC[4]; +static omObjData *lbl_1_bss_7F8; +static omObjData *lbl_1_bss_7F4; +static omObjData *lbl_1_bss_7F0; +static float lbl_1_bss_7EC; +static float lbl_1_bss_7E8; +static s32 lbl_1_bss_7E4; +static Vec lbl_1_bss_7D8; +static s16 lbl_1_bss_7D6; +static s16 lbl_1_bss_7D4; +static s16 lbl_1_bss_7D2; +static s16 lbl_1_bss_7D0; +static Vec lbl_1_bss_7C4; +static s32 lbl_1_bss_7C0_pad; +static s32 lbl_1_bss_7BC; +static s32 lbl_1_bss_7B8; +static s16 lbl_1_bss_7B4; +static s32 lbl_1_bss_7B0_pad; +static s32 lbl_1_bss_7AC; +static s16 lbl_1_bss_7AA; +static s16 lbl_1_bss_7A8; +static s32 lbl_1_bss_7A4; +static AnimData *lbl_1_bss_7A0; + +static s32 lbl_1_data_F08[] = { + DATA_MAKE_NUM(DATADIR_BOARD, 109), + DATA_MAKE_NUM(DATADIR_BOARD, 110), + DATA_MAKE_NUM(DATADIR_BOARD, 111), + DATA_MAKE_NUM(DATADIR_BOARD, 112), + DATA_MAKE_NUM(DATADIR_BOARD, 113), + DATA_MAKE_NUM(DATADIR_BOARD, 114), + DATA_MAKE_NUM(DATADIR_BOARD, 115), + DATA_MAKE_NUM(DATADIR_BOARD, 116), + DATA_MAKE_NUM(DATADIR_BOARD, 118), + DATA_MAKE_NUM(DATADIR_BOARD, 119), + DATA_MAKE_NUM(DATADIR_BOARD, 120), + DATA_MAKE_NUM(DATADIR_BOARD, 121), + DATA_MAKE_NUM(DATADIR_BOARD, 122), + DATA_MAKE_NUM(DATADIR_BOARD, 123) +}; + +static s32 lbl_1_data_F40[8] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 23), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 23), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 23), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 23), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 23), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 23) +}; + +static s32 lbl_1_data_F60[8] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 64), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 64), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 64), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 64), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 64), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 64), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 64), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 64) +}; + +void fn_1_D740(s16 *arg0) { + s16 sp10[14]; + s16 sp8[4]; + float temp_f30; + float temp_f29; + float var_f31; + s32 var_r28; + s32 var_r30; + s32 i; + s32 j; + + lbl_1_bss_818 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_W01, 28), MEMORY_DEFAULT_NUM, HEAP_DATA); + BoardModelPosGet(lbl_1_bss_6C4[16], &lbl_1_bss_80C); + sp8[0] = BoardModelIDGet(lbl_1_bss_6C4[19]); + BoardModelVisibilitySet(lbl_1_bss_6C4[19], 1); + for (i = 1; i < 4; i++) { + sp8[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_W01, 24)); + } + var_r30 = 0; + for (i = 0; i < 4; i++) { + lbl_1_bss_7FC[i] = omAddObjEx(boardObjMan, 0x165, 2, 0, -1, NULL); + if (arg0[i] != -1) { + lbl_1_bss_7FC[var_r30++]->work[1] = arg0[i]; + } + } + while (var_r30 != 4) { + var_r28 = 0; + for (i = 0; i < 14; i++) { + for (j = 0; j < var_r30; j++) { + if (i == lbl_1_bss_7FC[j]->work[1]) { + break; + } + } + if (j == var_r30) { + sp10[var_r28++] = i; + } + } + lbl_1_bss_7FC[var_r30++]->work[1] = sp10[rand8() % var_r28]; + } + temp_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[18]); + temp_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]); + for (i = 0; i < 4; i++) { + lbl_1_bss_7FC[i]->model[0] = sp8[i]; + lbl_1_bss_7FC[i]->model[1] = Hu3DModelCreateFile(lbl_1_data_F08[lbl_1_bss_7FC[i]->work[1]]); + if (lbl_1_bss_7FC[i]->work[1] == 5) { + Hu3DData[lbl_1_bss_7FC[i]->model[1]].unk_F0[1][3] = -50.0f; + } + if (lbl_1_bss_7FC[i]->work[1] == 11) { + Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], 0x40000001); + } + if (lbl_1_bss_7FC[i]->work[1] == 4) { + Hu3DMotionSpeedSet(lbl_1_bss_7FC[i]->model[1], 0.0f); + } + Hu3DModelAttrReset(sp8[i], 1); + Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], 1); + Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], 0x40000002); + omSetTra(lbl_1_bss_7FC[i], lbl_1_bss_80C.x, lbl_1_bss_80C.y + 66.0f, lbl_1_bss_80C.z); + var_f31 = 90.0f - 90.0f * i + 360.0f * (temp_f30 / temp_f29); + if (var_f31 >= 360.0f) { + var_f31 -= 360.0f; + } + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + omSetRot(lbl_1_bss_7FC[i], 0.0f, var_f31, 0.0f); + lbl_1_bss_7FC[i]->work[0] = Hu3DAnimCreate(lbl_1_bss_818, lbl_1_bss_7FC[i]->model[0], "item01"); + Hu3DAnimAttrSet(lbl_1_bss_7FC[i]->work[0], 1); + lbl_1_bss_7FC[i]->work[2] = i; + } + for (i = 0; i < 4; i++) { + Hu3DAnmNoSet(lbl_1_bss_7FC[i]->work[0], lbl_1_bss_7FC[i]->work[1]); + } +} + +void fn_1_DD84(void) { + s32 i; + + for (i = 0; i < 4; i++) { + if (i != 0) { + Hu3DModelKill(lbl_1_bss_7FC[i]->model[0]); + } else { + BoardModelVisibilitySet(lbl_1_bss_6C4[19], 0); + Hu3DAnimKill(lbl_1_bss_7FC[i]->work[0]); + } + Hu3DModelKill(lbl_1_bss_7FC[i]->model[1]); + omDelObjEx(boardObjMan, lbl_1_bss_7FC[i]); + } + if (lbl_1_bss_7A0) { + HuSprAnimKill(lbl_1_bss_7A0); + lbl_1_bss_7A0 = NULL; + } +} + +void fn_1_DE94(void) { + s32 i; + + BoardModelPosGet(lbl_1_bss_6C4[16], &lbl_1_bss_80C); + for (i = 0; i < 4; i++) { + lbl_1_bss_7FC[i]->func = fn_1_FED0; + } + lbl_1_bss_7F4 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_E2B8); + lbl_1_bss_7F8 = omAddObjEx(boardObjMan, 0x133, 0, 0, -1, fn_1_E44C); + lbl_1_bss_7F8->work[3] = rand8() % 200 + 10; + lbl_1_bss_7E4 = GWSystem.player_curr; + BoardPlayerPosGet(lbl_1_bss_7E4, &lbl_1_bss_7C4); + lbl_1_bss_7EC = 1.0f; + lbl_1_bss_7E8 = 1.0f; + lbl_1_bss_7AA = 0; + lbl_1_bss_7BC = BoardPlayerMotionCreate(lbl_1_bss_7E4, lbl_1_data_F40[GWPlayer[lbl_1_bss_7E4].character]); + lbl_1_bss_7B8 = BoardPlayerMotionCreate(lbl_1_bss_7E4, lbl_1_data_F60[GWPlayer[lbl_1_bss_7E4].character]); + lbl_1_bss_7A0 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0)); + HuSprAnimLock(lbl_1_bss_7A0); + lbl_1_bss_7B4 = 0; +} + +static void fn_1_E100(void) { + lbl_1_bss_7AA = 1; + BoardMGExit(); + HuAudFXPlay(0x40F); + BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0x40000004); +} + +static void fn_1_E154(void) { + fn_1_DD84(); + BoardPlayerMotionKill(lbl_1_bss_7E4, lbl_1_bss_7BC); + BoardPlayerMotionKill(lbl_1_bss_7E4, lbl_1_bss_7B8); + BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0); + BoardMGDoneFlagSet(0); +} + +static void fn_1_E2B8(omObjData *arg0) { + if (lbl_1_bss_7AA == 1 && BoardMGDoneFlagGet() == 1) { + fn_1_E154(); + omDelObjEx(HuPrcCurrentGet(), arg0); + } +} + +static char *lbl_1_data_F9C[] = { + "uma1", "uma2", "uma3", "uma4" +}; + +static void fn_1_E44C(omObjData *arg0) { + Vec sp18; + Vec spC; + float temp_f27; + float var_f29; + float temp_f28; + float var_f26; + float var_f24; + s32 i; + + temp_f28 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]); + var_f29 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]); + if (var_f29 >= temp_f28) { + var_f29 -= temp_f28; + } + var_f24 = fmod(var_f29, temp_f28 / 4); + if (var_f24 >= temp_f28 / 4 - 30.0f && lbl_1_bss_7B4 == 0) { + lbl_1_bss_7B4 = 1; + lbl_1_bss_7A8 = 90; + } + if (lbl_1_bss_7B4 != 0) { + lbl_1_bss_7EC *= 0.97f; + lbl_1_bss_7A8--; + } + if (lbl_1_bss_7EC != 1.0f && lbl_1_bss_7A8 == 0) { + lbl_1_bss_7EC = 0.0f; + BoardAudSeqPause(0, 1, 1000); + BoardPlayerPosGet(lbl_1_bss_7E4, &sp18); + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[0], &spC); + var_f26 = PSVECSquareDistance(&sp18, &spC); + arg0->work[2] = 0; + for (i = 1; i < 4; i++) { + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[i], &spC); + temp_f27 = PSVECSquareDistance(&sp18, &spC); + if (temp_f27 < var_f26) { + var_f26 = temp_f27; + arg0->work[2] = i; + } + } + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[arg0->work[2]], &lbl_1_bss_7D8); + PSVECSubtract(&lbl_1_bss_7D8, &sp18, &spC); + PSVECNormalize(&spC, &spC); + arg0->trans.x = spC.x; + arg0->trans.y = spC.y; + arg0->trans.z = spC.z; + arg0->rot.x = sqrtf((lbl_1_bss_7D8.x - sp18.x) * (lbl_1_bss_7D8.x - sp18.x) + (lbl_1_bss_7D8.z - sp18.z) * (lbl_1_bss_7D8.z - sp18.z)); + arg0->rot.y = 10.0f; + arg0->rot.z = sp18.y; + arg0->scale.x = 0.0f; + BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 4, 0.0f, 5.0f, 0); + arg0->func = fn_1_E914; + } + BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], lbl_1_bss_7EC); +} + +static void fn_1_E914(omObjData *arg0) { + Vec spC; + s32 i; + + BoardPlayerPosGet(lbl_1_bss_7E4, &spC); + spC.x += arg0->trans.x * arg0->rot.x / 32.760002f; + spC.z += arg0->trans.z * arg0->rot.x / 32.760002f; + spC.y += arg0->rot.y - 0.016666668f * arg0->scale.x * arg0->scale.x; + arg0->scale.x += 1.0f; + if (sqrtf((lbl_1_bss_7D8.x - spC.x) * (lbl_1_bss_7D8.x - spC.x) + (lbl_1_bss_7D8.z - spC.z) * (lbl_1_bss_7D8.z - spC.z)) < 2.0f) { + spC = lbl_1_bss_7D8; + BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, fn_1_10BB0(arg0->work[2]), 0.0f); + lbl_1_bss_7EC = 0.05f; + lbl_1_bss_7E8 = 0.05f; + BoardModelAttrReset(lbl_1_bss_6C4[18], 0x40000002); + BoardModelAttrSet(lbl_1_bss_6C4[18], 0x40000001); + BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], 0.0f); + for (i = 0; i < 4; i++) { + lbl_1_bss_7FC[i]->func = fn_1_FED0; + } + BoardPlayerMotionShiftSet(lbl_1_bss_7E4, lbl_1_bss_7B8, 0.0f, 5.0f, 0x40000001); + lbl_1_bss_7D6 = MGSeqCreate(3, 0); + BoardMusStart(1, 0xE, 0x7F, 0); + arg0->func = fn_1_ECD4; + } + BoardPlayerPosSetV(lbl_1_bss_7E4, &spC); +} + +static void fn_1_ECD4(omObjData *arg0) { + lbl_1_bss_7EC *= 1.05f; + lbl_1_bss_7E8 *= 1.05f; + if (lbl_1_bss_7EC > 2.0f) { + lbl_1_bss_7EC = 2.0f; + } + if (lbl_1_bss_7E8 > 4.0f) { + lbl_1_bss_7E8 = 4.0f; + } + if (MGSeqStatGet(lbl_1_bss_7D6) == 0) { + lbl_1_bss_7EC = 2.0f; + lbl_1_bss_7E8 = 4.0f; + arg0->func = fn_1_EED8; + lbl_1_bss_7D2 = 5; + lbl_1_bss_7D0 = 60; + lbl_1_bss_7D4 = MGSeqCreate(1, lbl_1_bss_7D2, 0x120, 0x40); + } + BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], lbl_1_bss_7EC); + BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], lbl_1_bss_7E8); + fn_1_10CF0(arg0->work[2]); +} + +static void fn_1_EEA0(omObjData *arg0, u16 *arg1) { + *arg1 = 0; + if (arg0->work[3] != 0) { + arg0->work[3]--; + } else { + *arg1 |= 0x100; + } +} + +static void fn_1_EED8(omObjData *arg0) { + s16 temp_r29; + u16 var_r30; + + fn_1_10CF0(arg0->work[2]); + temp_r29 = GWPlayer[lbl_1_bss_7E4].port; + if ((lbl_1_bss_7D0 -= 1) == 0) { + if ((lbl_1_bss_7D2 -= 1) >= 0) { + MGSeqParamSet(lbl_1_bss_7D4, 1, lbl_1_bss_7D2); + } + lbl_1_bss_7D0 = 60; + } + if (GWPlayerCfg[lbl_1_bss_7E4].iscom == 1) { + fn_1_EEA0(arg0, &var_r30); + } else { + var_r30 = HuPadBtnDown[temp_r29]; + } + if (lbl_1_bss_7D2 < 0 || (var_r30 & 0x100)) { + BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], 0.0f); + MGSeqParamSet(lbl_1_bss_7D4, 2, -1); + arg0->scale.y = 0.0f; + arg0->func = fn_1_F09C; + } +} + +static void fn_1_F09C(omObjData *arg0) { + float temp_f31; + float var_f30; + + temp_f31 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]); + arg0->scale.y += lbl_1_bss_7E8; + if (arg0->scale.y >= temp_f31 - 150.0f) { + lbl_1_bss_7E8 *= 0.9745f; + if (lbl_1_bss_7E8 < 0.08f) { + lbl_1_bss_7E8 = 0.08f; + } + } + BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], lbl_1_bss_7E8); + if (arg0->scale.y >= temp_f31) { + BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], 0.0f); + var_f30 = arg0->scale.y - temp_f31 + BoardModelMotionTimeGet(lbl_1_bss_6C4[18]); + if (var_f30 > temp_f31) { + var_f30 -= temp_f31; + } + BoardModelMotionTimeSet(lbl_1_bss_6C4[18], var_f30); + arg0->work[0] = fn_1_1001C(arg0->work[2]); + BoardModelVisibilitySet(lbl_1_bss_6C4[20], 1); + BoardModelPosSet(lbl_1_bss_6C4[20], lbl_1_bss_7FC[arg0->work[0]]->trans.x, lbl_1_bss_7FC[arg0->work[0]]->trans.y + 1.0f, lbl_1_bss_7FC[arg0->work[0]]->trans.z); + BoardModelRotSet(lbl_1_bss_6C4[20], lbl_1_bss_7FC[arg0->work[0]]->rot.x, lbl_1_bss_7FC[arg0->work[0]]->rot.y + 1.0f, lbl_1_bss_7FC[arg0->work[0]]->rot.z); + arg0->work[1] = 60; + BoardAudSeqFadeOut(1, 100); + arg0->func = fn_1_F348; + HuAudFXPlay(0x40A); + } +} + +static void fn_1_F348(omObjData *arg0) { + if ((arg0->work[1] / 4) & 1) { + BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0); + } else { + BoardModelVisibilitySet(lbl_1_bss_6C4[20], 1); + } + if ((arg0->work[1] -= 1) == 0) { + BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0); + fn_1_101B8(arg0->work[0]); + HuAudFXPlay(0x310); + arg0->func = fn_1_F3F8; + } +} + +static void fn_1_F3F8(omObjData *arg0) { + Vec sp18; + Vec spC; + + if (lbl_1_bss_7F0->work[0] != 1) { + return; + } + BoardPlayerPosGet(lbl_1_bss_7E4, &sp18); + PSVECSubtract(&lbl_1_bss_7C4, &sp18, &spC); + PSVECNormalize(&spC, &spC); + arg0->trans.x = spC.x; + arg0->trans.y = spC.y; + arg0->trans.z = spC.z; + arg0->rot.x = sqrtf((lbl_1_bss_7C4.x - sp18.x) * (lbl_1_bss_7C4.x - sp18.x) + (lbl_1_bss_7C4.z - sp18.z) * (lbl_1_bss_7C4.z - sp18.z)); + arg0->scale.y = 20.0f + 40.0f * (arg0->rot.x / 445.0f); + arg0->rot.y = 0.016666668f * (arg0->scale.y / 2) * (arg0->scale.y / 2); + arg0->rot.z = sp18.y; + arg0->scale.x = 0.0f; + BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 4, 0.0f, 5.0f, 0); + PSVECSubtract(&lbl_1_bss_7C4, &sp18, &spC); + PSVECNormalize(&spC, &spC); + BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, fn_1_10EB8(&spC), 0.0f); + arg0->func = fn_1_F6E8; +} + +static void fn_1_F6E8(omObjData *arg0) { + Vec sp8; + + BoardPlayerPosGet(lbl_1_bss_7E4, &sp8); + sp8.x += arg0->trans.x * arg0->rot.x / arg0->scale.y; + sp8.z += arg0->trans.z * arg0->rot.x / arg0->scale.y; + sp8.y += arg0->rot.y - 0.016666668f * arg0->scale.x * arg0->scale.x; + arg0->scale.x += 1.0f; + if (sp8.y < lbl_1_bss_80C.y || arg0->scale.x >= arg0->scale.y) { + sp8.y = lbl_1_bss_80C.y; + BoardCameraMotionStart(BoardPlayerModelGet(lbl_1_bss_7E4), NULL, 700.0f, -1.0f); + BoardPlayerMotionStart(lbl_1_bss_7E4, 2, 0x40000001); + arg0->func = fn_1_F890; + } + BoardPlayerPosSetV(lbl_1_bss_7E4, &sp8); +} + +static void fn_1_F890(omObjData *arg0) { + Vec sp8; + + BoardPlayerRotGet(lbl_1_bss_7E4, &sp8); + if (sp8.y == 0.0f) { + BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 1, 0.0f, 10.0f, 0x40000001); + lbl_1_bss_7F0->work[0] = 0; + lbl_1_bss_7F0->func = fn_1_10820; + arg0->func = fn_1_FA1C; + } else if (sp8.y > 180.0f) { + if (360.0f - sp8.y < 3.0f) { + sp8.y = 0.0f; + } else { + sp8.y += 3.0f; + } + } else { + if (sp8.y < 3.0f) { + sp8.y = 0.0f; + } else { + sp8.y -= 3.0f; + } + } + BoardPlayerRotSetV(lbl_1_bss_7E4, &sp8); +} + +static void fn_1_FA1C(omObjData *arg0) { + if (lbl_1_bss_7F0->work[0] == 1) { + BoardPlayerMotionShiftSet(lbl_1_bss_7E4, lbl_1_bss_7BC, 0.0f, 10.0f, 0); + arg0->work[0] = 30; + lbl_1_bss_7A4 = HuAudSStreamPlay(2); + arg0->func = fn_1_FABC; + } +} + +static void fn_1_FABC(omObjData *arg0) { + Process *var_r30; + + if (arg0->work[0] == 0) { + if (HuAudSStreamStatGet(lbl_1_bss_7A4) == 0) { + var_r30 = HuPrcCreate(fn_1_FB58, 0x2004, 0x1000, 0); + var_r30->user_data = arg0; + BoardAudSeqPause(0, 0, 1000); + arg0->func = NULL; + } + } else { + arg0->work[0]--; + } +} + +static void fn_1_FB58(void) { + omObjData *temp_r31; + + BoardWinCreate(2, MAKE_MESSID(10, 6), 0); + BoardWinInsertMesSet(MAKE_MESSID(8, lbl_1_bss_7F0->work[1]), 0); + BoardWinWait(); + BoardWinKill(); + temp_r31 = HuPrcCurrentGet()->user_data; + BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 1, 0.0f, 10.0f, 0); + lbl_1_bss_7F0->work[0] = 0; + HuAudFXPlay(0x30D); + HuAudFXFadeOut(lbl_1_bss_7AC, 1000); + lbl_1_bss_7F0->func = fn_1_10AE8; + temp_r31->func = fn_1_FC3C; + HuPrcKill(NULL); + while (TRUE) { + HuPrcVSleep(); + } +} + +static void fn_1_FC3C(omObjData *arg0) { + Process *var_r31; + + if (lbl_1_bss_7F0->work[0] == 1) { + BoardPlayerItemAdd(lbl_1_bss_7E4, lbl_1_bss_7F0->work[1]); + omVibrate(lbl_1_bss_7E4, 12, 6, 6); + var_r31 = HuPrcCreate(fn_1_FCEC, 0x2004, 0x1000, 0); + var_r31->user_data = arg0; + arg0->func = NULL; + } +} + +static void fn_1_FCEC(void) { + omObjData *var_r31; + + BoardWinCreate(2, MAKE_MESSID(10, 7), 0); + BoardWinWait(); + BoardWinKill(); + var_r31 = HuPrcCurrentGet()->user_data; + var_r31->func = fn_1_FD3C; + HuPrcKill(NULL); + while (TRUE) { + HuPrcVSleep(); + } +} + +static void fn_1_FD3C(omObjData *arg0) { + BoardStatusShowSetAll(1); + BoardCameraTargetModelSet(lbl_1_bss_6C4[21]); + BoardCameraOffsetSet(0.0f, 0.0f, 0.0f); + BoardCameraXRotZoomSet(1200.0f, -45.0f); + BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], 1.0f); + Hu3DModelKill(lbl_1_bss_7F0->model[0]); + Hu3DModelKill(lbl_1_bss_7F0->model[1]); + Hu3DModelKill(lbl_1_bss_7F0->model[2]); + omDelObjEx(HuPrcCurrentGet(), lbl_1_bss_7F0); + arg0->func = fn_1_FE44; +} + +static void fn_1_FE44(omObjData *arg0) { + if (BoardStatusStopCheck(lbl_1_bss_7E4) && BoardCameraMotionIsDone()) { + lbl_1_bss_7AA = 1; + BoardMGExit(); + HuAudFXPlay(0x40F); + BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0x40000004); + arg0->func = NULL; + } +} + +static void fn_1_FED0(omObjData *arg0) { + float temp_f30; + float var_f31; + float var_f29; + + temp_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[18]); + var_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]); + var_f31 = 90.0f - 90.0f * arg0->work[2] + 360.0f * (temp_f30 / var_f29); + if (var_f31 >= 360.0f) { + var_f31 -= 360.0f; + } + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + omSetRot(arg0, 0.0f, var_f31, 0.0f); +} + +static s16 fn_1_1001C(u32 arg0) { + float var_f29; + float var_f28; + float temp_f27; + float temp_f26; + float var_f31; + float var_f30; + + temp_f26 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]); + temp_f27 = 360.0f - 360.0f * (BoardModelMotionTimeGet(lbl_1_bss_6C4[18]) / temp_f26); + var_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]); + var_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]); + var_f30 = var_f30 - (var_f29 / 4) * arg0; + if (var_f30 < 0.0f) { + var_f30 += var_f29; + } + var_f28 = 360.0f * (var_f30 / var_f29); + var_f31 = var_f28 - temp_f27; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + var_f31 /= 90.0f; + return var_f31; +} + +static void fn_1_101B8(s16 arg0) { + omObjData *var_r31; + float *var_r30; + float var_f27; + float temp_f26; + float temp_f30; + float temp_f29; + float temp_f28; + float var_f31; + + var_r31 = lbl_1_bss_7F0 = omAddObjEx(boardObjMan, 0x165, 3, 0, -1, fn_1_10664); + var_r31->model[0] = lbl_1_bss_7FC[arg0]->model[1]; + Hu3DModelAttrReset(var_r31->model[0], 1); + lbl_1_bss_7F0->work[1] = lbl_1_bss_7FC[arg0]->work[1]; + lbl_1_bss_7F0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 3 * sizeof(float), MEMORY_DEFAULT_NUM); + var_r30 = lbl_1_bss_7F0->data; + omSetRot(var_r31, 0.0f, 0.0f, 0.0f); + omSetSca(var_r31, 0.0f, 0.0f, 0.0f); + temp_f26 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]); + var_f27 = 360.0f - 360.0f * (BoardModelMotionTimeGet(lbl_1_bss_6C4[18]) / temp_f26); + var_f31 = 45.0f + var_f27 + 90.0f * arg0; + if (var_f31 >= 360.0f) { + var_f31 -= 360.0f; + } + temp_f30 = lbl_1_bss_80C.x - 100.0 * cos(var_f31 * M_PI / 180.0); + temp_f28 = lbl_1_bss_80C.z - 100.0 * sin(var_f31 * M_PI / 180.0); + temp_f29 = lbl_1_bss_80C.y + 66.0f + 1.0f; + omSetTra(var_r31, temp_f30, temp_f29, temp_f28); + var_r31->work[0] = 0; + var_r30[0] = 0.1f; + var_r30[2] = 20.0f; + var_r30[1] = 0.0f; + var_r31->model[1] = Hu3DParticleCreate(lbl_1_bss_7A0, 200); + var_r31->model[2] = Hu3DParticleCreate(lbl_1_bss_7A0, 100); + Hu3DParticleHookSet(var_r31->model[1], fn_1_11064); + Hu3DParticleHookSet(var_r31->model[2], fn_1_11484); + Hu3DParticleColSet(var_r31->model[1], 0xFF, 0xFF, 0); + Hu3DParticleColSet(var_r31->model[2], 0xFF, 0xFF, 0); + Hu3DModelPosSet(var_r31->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelPosSet(var_r31->model[2], temp_f30, temp_f29, temp_f28); + Hu3DParticleBlendModeSet(var_r31->model[1], 1); + Hu3DParticleBlendModeSet(var_r31->model[2], 1); + Hu3DModelLayerSet(var_r31->model[1], 3); + Hu3DModelLayerSet(var_r31->model[2], 3); + lbl_1_bss_7AC = HuAudFXPlay(0x35F); +} + +static void fn_1_10664(omObjData *arg0) { + float *temp_r31; + float var_f31; + + temp_r31 = arg0->data; + var_f31 = temp_r31[0]; + if (arg0->work[0] == 0) { + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } else { + temp_r31[0] += 0.025f; + } + arg0->trans.y += temp_r31[2]; + temp_r31[2] -= 1.0f; + if (temp_r31[2] < 0.0f && arg0->trans.y < lbl_1_bss_80C.y + 66.0f + 1.0f + 90.0f) { + arg0->work[0] = 1; + } + omSetSca(arg0, var_f31, var_f31, var_f31); + } else { + arg0->trans.y += sin(temp_r31[1] * M_PI / 180.0); + temp_r31[1] += 4.0f; + if (temp_r31[1] >= 360.0f) { + temp_r31[1] -= 360.0f; + } + } +} + +static void fn_1_10820(omObjData *arg0) { + Vec sp24; + Vec sp18; + Vec spC; + float var_f28; + float *temp_r30; + + temp_r30 = arg0->data; + if (arg0->work[0] == 0) { + BoardPlayerPosGet(lbl_1_bss_7E4, &sp24); + sp18.x = arg0->trans.x; + sp18.y = 0.0f; + sp18.z = arg0->trans.z; + sp24.y = 0.0f; + PSVECSubtract(&sp24, &sp18, &spC); + PSVECNormalize(&spC, &spC); + var_f28 = sqrtf((sp24.x - sp18.x) * (sp24.x - sp18.x) + (sp24.z - sp18.z) * (sp24.z - sp18.z)); + if (var_f28 < 8.0f) { + arg0->trans.x = sp24.x; + arg0->trans.z = sp24.z; + arg0->work[0] = 1; + } else { + arg0->trans.x += 8.0f * spC.x; + arg0->trans.z += 8.0f * spC.z; + } + } + arg0->trans.y += sin(temp_r30[1] * M_PI / 180.0); + temp_r30[1] += 4.0f; + if (temp_r30[1] >= 360.0f) { + temp_r30[1] -= 360.0f; + } +} + +static void fn_1_10AE8(omObjData *arg0) { + float *temp_r31; + + temp_r31 = arg0->data; + if (arg0->work[0] == 0) { + temp_r31[0] -= 0.016666668f; + if (temp_r31[0] <= 0.0f) { + temp_r31[0] = 0.0f; + arg0->work[0] = 1; + HuAudFXStop(lbl_1_bss_7AC); + } + arg0->trans.y -= 2.1666667f; + } + omSetSca(arg0, temp_r31[0], temp_r31[0], temp_r31[0]); +} + +static float fn_1_10BB0(u32 arg0) { + float var_f30; + float temp_f29; + float var_f31; + + var_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]); + temp_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]); + var_f30 = var_f30 - (temp_f29 / 4) * arg0; + if (var_f30 < 0.0f) { + var_f30 += temp_f29; + } + var_f31 = 180.0f + -360.0f * (var_f30 / temp_f29); + if (var_f31 >= 360.0f) { + var_f31 -= 360.0f; + } + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + return var_f31; +} + +static void fn_1_10CF0(u32 arg0) { + float var_f30; + float temp_f29; + float var_f31; + float var_f28; + + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[arg0], &lbl_1_bss_7D8); + BoardPlayerPosSetV(lbl_1_bss_7E4, &lbl_1_bss_7D8); + var_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]); + temp_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]); + var_f30 = var_f30 - (temp_f29 / 4) * arg0; + if (var_f30 < 0.0f) { + var_f30 += temp_f29; + } + var_f31 = 180.0f + -360.0f * (var_f30 / temp_f29); + if (var_f31 >= 360.0f) { + var_f31 -= 360.0f; + } + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + var_f28 = var_f31; + BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, var_f28, 0.0f); +} + +static float fn_1_10EB8(Vec *arg0) { + float var_f31; + + if (arg0->x || arg0->z) { + if (arg0->x == 0.0f) { + if (arg0->z > 0.0f) { + return 0.0f; + } else { + return 180.0f; + } + } + if (arg0->z == 0.0f) { + if (arg0->x > 0.0f) { + return 90.0f; + } else { + return 270.0f; + } + } + var_f31 = 180.0 * (atan2(arg0->z, arg0->x) / M_PI); + if (arg0->z < 0.0f) { + var_f31 = 90.0f - var_f31; + } else { + var_f31 = 90.0f - var_f31; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + } + return var_f31; + } + return -1.0f; +} + +static void fn_1_11064(ModelData *model, ParticleData *particle, Mtx matrix) { + HsfanimStruct01 *var_r31; + float temp_f30; + float temp_f29; + float temp_f31; + s32 var_r28; + s32 i; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + particle->unk_00 = 0; + } + temp_f31 = lbl_1_bss_7F0->scale.x; + for (i = 0; i < 30; i++) { + var_r31 = particle->unk_48; + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + if (var_r31->unk2C == 0.0f) { + break; + } + } + if (var_r28 != particle->unk_30) { + temp_f30 = 0.003921569f * (frand() & 0xFF) * 360.0f; + temp_f29 = 0.003921569f * (frand() & 0xFF) * 70.0f * temp_f31; + var_r31->unk34.x = lbl_1_bss_7F0->trans.x + temp_f29 * sin(temp_f30 * M_PI / 180.0); + var_r31->unk34.z = lbl_1_bss_7F0->trans.z + temp_f29 * cos(temp_f30 * M_PI / 180.0); + var_r31->unk34.y = lbl_1_bss_7F0->trans.y + temp_f31 * (-30.0f + 0.003921569f * (frand() & 0xFF) * 60.0f); + var_r31->unk08.x = 0.5f + 0.003921569f * (frand() & 0xFF) * 3.0f; + var_r31->unk08.y = 0.3f + 0.003921569f * (frand() & 0xFF) * 2.0f; + var_r31->unk40.a = 0xB4; + var_r31->unk2C = 15.0f * temp_f31; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + if (var_r31->unk2C != 0.0f) { + var_r31->unk34.y -= var_r31->unk08.x; + var_r31->unk2C -= var_r31->unk08.y; + if (var_r31->unk2C <= 0.0f) { + var_r31->unk2C = 0.0f; + } + } + } +} + +static void fn_1_11484(ModelData *model, ParticleData *particle, Mtx matrix) { + HsfanimStruct01 *var_r31; + float temp_f29; + float temp_f30; + float temp_f31; + s32 var_r28; + s32 var_r29; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + particle->unk_00 = 0; + } + if (particle->unk_00 == 0) { + var_r31 = particle->unk_48; + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + temp_f30 = 0.003921569f * (frand() & 0xFF) * 360.0f; + temp_f31 = 0.003921569f * (frand() & 0xFF) * 50.0f; + var_r31->unk08.x = temp_f31 * cos(temp_f30 * M_PI / 180.0); + var_r31->unk08.y = 2.0f + 0.003921569f * (frand() & 0xFF) * 4.0f; + var_r31->unk08.z = temp_f31 * sin(temp_f30 * M_PI / 180.0); + temp_f29 = 60.0f + 20.0f * (frand() & 0xFF) * 0.003921569f; + temp_f31 = 4.0f + 5.0f * (frand() & 0xFF) * 0.003921569f; + var_r31->unk14.x = temp_f31 * sin(temp_f30 * M_PI / 180.0) * cos(temp_f29 * M_PI / 180.0); + var_r31->unk14.y = temp_f31 * sin(temp_f29 * M_PI / 180.0); + var_r31->unk14.z = temp_f31 * cos(temp_f30 * M_PI / 180.0) * cos(temp_f29 * M_PI / 180.0); + var_r31->unk20 = 1.0f; + var_r31->unk40.a = 0xB4; + var_r31->unk2C = 9.0f + 0.003921569f * (frand() & 0xFF) * 4.0f; + } + particle->unk_00 = 1; + } + var_r31 = particle->unk_48; + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk2C != 0.0f) { + var_r31->unk34.x = var_r31->unk08.x + var_r31->unk14.x * var_r31->unk20; + var_r31->unk34.z = var_r31->unk08.z + var_r31->unk14.z * var_r31->unk20; + var_r31->unk34.y = var_r31->unk08.y + var_r31->unk14.y * var_r31->unk20 - 0.2f * var_r31->unk20 * var_r31->unk20; + var_r31->unk2C -= 0.25f; + var_r31->unk20 += 1.0f; + if (var_r31->unk2C <= 0.0f) { + var_r31->unk2C = 0.0f; + } + } + } +} diff --git a/src/REL/w02Dll/gamble.c b/src/REL/w02Dll/gamble.c new file mode 100644 index 00000000..dcb77bfa --- /dev/null +++ b/src/REL/w02Dll/gamble.c @@ -0,0 +1,24 @@ +#include "REL/w02Dll.h" + +Process* lbl_1_bss_50; +s32 lbl_1_bss_54; + +void fn_1_2D04(); + + +void fn_1_3938(void) { + lbl_1_bss_50 = NULL; +} + + +void fn_1_394C(s32 arg0) { + s32 currPlayer; + currPlayer = GWSystem.player_curr; + + lbl_1_bss_54 = arg0; + lbl_1_bss_50 = HuPrcChildCreate(fn_1_2D04, 0x2003U, 0x2000U, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_50, fn_1_3938); + while (lbl_1_bss_50) { + HuPrcVSleep(); + } +} \ No newline at end of file diff --git a/src/REL/w02Dll/main.c b/src/REL/w02Dll/main.c new file mode 100644 index 00000000..8531300e --- /dev/null +++ b/src/REL/w02Dll/main.c @@ -0,0 +1,457 @@ +#include "REL/w02Dll.h" + +// Temporary defines +#define BOARD_ITEM_MINI 0x0 +#define BOARD_ITEM_MEGA 0x1 +#define BOARD_ITEM_SUPERMINI 0x2 +#define BOARD_ITEM_SUPERMEGA 0x3 +#define BOARD_ITEM_HAMMER 0x4 +#define BOARD_ITEM_PIPE 0x5 +#define BOARD_ITEM_CARD 0x6 +#define BOARD_ITEM_SPARKY 0x7 +#define BOARD_ITEM_GADDLIGHT 0x8 +#define BOARD_ITEM_CHOMPCALL 0x9 +#define BOARD_ITEM_SUIT 0xA +#define BOARD_ITEM_BOO 0xB +#define BOARD_ITEM_LAMP 0xC +#define BOARD_ITEM_BAG 0xD +#define BOARD_ITEM_MAX 0xE +#define BOARD_ITEM_NONE -1 + +/* BSS */ +s16 lbl_1_bss_30[0x10]; // Model List +s16 lbl_1_bss_2E; +s16 lbl_1_bss_2C; +Point3d lbl_1_bss_20; +Point3d lbl_1_bss_14; +s32* lbl_1_bss_10; +s16 lbl_1_bss_8[4]; // Item List +Process* lbl_1_bss_4; +u8* lbl_1_bss_0; + +/* DATA */ +static BoardMapObject lbl_1_data_0[0x10] = { + {{2550.0f, 0.0f, -450.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000C)}, + {{-3150.0f, 0.0f, -1350.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000D)}, + {{-3150.0f, 0.0f, 1650.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000E)}, + {{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0008)}, + {{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0009)}, + {{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000A)}, + {{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000B)}, + {{1350.0f, 0.0f, -300.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0011)}, + {{1350.0f, 0.0f, -300.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0012)}, + {{1350.0f, 0.0f, -300.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0015)}, + {{-300.0f, 0.0f, -900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0016)}, + {{1175.0f, 0.0f, -125.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)}, + {{-525.0f, 0.0f, -825.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)}, + {{-2225.0f, 0.0f, -2100.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)}, + {{1925.0f, 0.0f, -2100.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)}, + {{150.0f, 0.0f, 1650.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)} +}; + +// Special Models +s16 lbl_1_data_280 = -1; +s16 lbl_1_data_282 = -1; +s16 lbl_1_data_284 = -1; +s16 lbl_1_data_286 = -1; + +s32 lbl_1_data_288[] = { + DATA_MAKE_NUM(DATADIR_W02, 0x0004), + DATA_NUM_LISTEND +}; +s32 lbl_1_data_290[] = { + DATA_MAKE_NUM(DATADIR_BGUEST, 0x0009), + DATA_MAKE_NUM(DATADIR_BGUEST, 0x0006), + DATA_MAKE_NUM(DATADIR_BGUEST, 0x0007), + DATA_MAKE_NUM(DATADIR_BGUEST, 0x0008), + DATA_NUM_LISTEND, + 0x00000000 // Padding +}; + +/* Functions */ +//Actual externs +extern void BoardMusStart(s32, s32, s32, s32); +extern void BoardAudSeqPause(s32, s32, s32); +s8 BoardComPreferItemCheck(s32, s8, s8, s8); +extern void BoardComKeySetLeft(); +extern void BoardComKeySetRight(); +extern void CharModelDataClose(s16); +extern u32 frand(); +extern u32 frandmod(u32); + +// function is probably global. only inlined in rels? +inline s32 get_current_board(void) { + return GWSystem.board; +} + +void BoardCreate(void) { + s32 i, boardData; + BoardMapObject* modelTransform; + + boardData = get_current_board(); + lbl_1_bss_0 = GWSystem.board_data; + BoardSpaceInit(0x760000); + lbl_1_data_280 = BoardModelCreate(0x760001, NULL, 0); + fn_8006DDE8(lbl_1_data_280, -1.0f); + BoardModelPosSet(lbl_1_data_280, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_280, 0, 0x40000001); + BoardModelMotionSpeedSet(lbl_1_data_280, 0.1f); + lbl_1_data_282 = BoardModelCreate(0x760002, NULL, 0); + fn_8006DDE8(lbl_1_data_282, -1.0f); + BoardModelPosSet(lbl_1_data_282, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_282, 0, 0x40000001); + lbl_1_data_284 = BoardModelCreate(0x760003, lbl_1_data_288, 0); + BoardModelPosSet(lbl_1_data_284, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_284, 1, 0x40000001); + lbl_1_data_286 = BoardModelCreate(0x20005, lbl_1_data_290, 0); + BoardModelMotionStart(lbl_1_data_286, 1, 0x40000001); + BoardLightHookSet(fn_1_72C, fn_1_770); + + for(i = 0; i < 0x10; i++) { + modelTransform = &lbl_1_data_0[i]; + if (modelTransform->data_num != -1) { + if ((i == 0xB) || (i == 0xC) || (i == 0xD) || (i == 0xE) || (i == 0xF)) { + lbl_1_bss_10 = lbl_1_data_290; + } else { + lbl_1_bss_10 = NULL; + } + lbl_1_bss_30[i] = BoardModelCreate(modelTransform->data_num, lbl_1_bss_10, 0); + BoardModelPosSetV(lbl_1_bss_30[i], &modelTransform->pos); + BoardModelRotSetV(lbl_1_bss_30[i], &modelTransform->rot); + BoardModelScaleSetV(lbl_1_bss_30[i], &modelTransform->scale); + BoardModelVisibilitySet(lbl_1_bss_30[i], 1); + if (lbl_1_bss_10 != NULL) { + BoardModelMotionStart(lbl_1_bss_30[i], 1, 0x40000001); + } + } + } + + BoardModelAttrSet(lbl_1_bss_30[0], 0x40000002); + BoardModelAttrSet(lbl_1_bss_30[1], 0x40000002); + BoardModelAttrSet(lbl_1_bss_30[2], 0x40000002); + fn_1_BC1C(); + fn_1_92C(); + BoardModelPosGet(lbl_1_bss_30[13], &lbl_1_bss_20); + BoardModelPosGet(lbl_1_bss_30[14], &lbl_1_bss_14); + lbl_1_bss_2E = BoardModelCreate(0x760010, NULL, 1); + lbl_1_bss_2C = BoardModelCreate(0x760010, NULL, 1); + fn_1_9250(); + BoardSpaceWalkEventFuncSet(fn_1_800); + BoardSpaceWalkMiniEventFuncSet(fn_1_1128); + BoardSpaceLandEventFuncSet(fn_1_774); + BoardStarHostSet(lbl_1_data_284); + BoardBooHouseHostSet(lbl_1_data_286); + BoardLotteryHostSet(lbl_1_data_286); + BoardShopHostSet(lbl_1_data_286); + BoardJunctionMaskSet(0xE); + BoardJunctionMaskSet(0x30); +} + +void BoardDestroy(void) { + /* Kill Model List */ + s32 i; + for (i = 0; i < 0x10; i++) { + if (lbl_1_bss_30[i] != 0) { + BoardModelKill(lbl_1_bss_30[i]); + lbl_1_bss_30[i] = 0; + } + } + + /* Kill Special Models */ + if (lbl_1_data_286 != -1) { + BoardModelKill(lbl_1_data_286); + lbl_1_data_286 = -1; + } + if (lbl_1_data_284 != -1) { + BoardModelKill(lbl_1_data_284); + lbl_1_data_284 = -1; + } + if (lbl_1_data_280 != -1) { + BoardModelKill(lbl_1_data_280); + lbl_1_data_280 = -1; + } + if (lbl_1_data_282 != -1) { + BoardModelKill(lbl_1_data_282); + lbl_1_data_282 = -1; + } + BoardSpaceDestroy(); +} + +void fn_1_72C(void) { + s16 var = BoardModelIDGet(lbl_1_data_280); + Hu3DModelLightInfoSet(var, 1); +} + +void fn_1_770(void) { + +} + +/* Decrement current space's [UNKNOWN] flag */ +s32 fn_1_774(void) { + u32 unkFlag; + u32 currPlayer; + u32 currSpace; + u32 spaceFlags; + currPlayer = GWSystem.player_curr; + currSpace = GWPlayer[currPlayer].space_curr; + spaceFlags = BoardSpaceFlagGet(0, currSpace); + //temp_r31 = (temp_r) + unkFlag = (spaceFlags & 0x1C0) >> 6; + if (unkFlag != 0) { + unkFlag--; + fn_1_93C8(unkFlag); + } +} + +/* Check if can iteract with board object? */ +s32 fn_1_800(void) { + BoardSpace* currSpace; + s32 currPlayer; + s32 var_r29; + + currPlayer = GWSystem.player_curr; + currSpace = BoardSpaceGet(0, GWPlayer[currPlayer].space_curr); + if ((currSpace->flag & 0x30) != 0) { + + + // If mega mushroom state return + if (BoardPlayerSizeGet(currPlayer) == 2) { + return 0; + } + // If using the bowser suit return + if (GWPlayer[currPlayer].bowser_suit) { + return 0; + } + + if ((currSpace->flag & 0x20) != 0 && (currSpace->flag & 0x10) != 0) { + var_r29 = 2; + } else if ((currSpace->flag & 0x20) != 0) { + var_r29 = 1; + } else { + var_r29 = 0; + } + fn_1_394C(var_r29); + return 1; + } + if ((currSpace->flag & 1) != 0) { + fn_1_E41C(); + return 1; + } + return 0; +} + +void fn_1_92C(void) { + fn_1_39F4(); + fn_1_5CF8(); +} + +void fn_1_950(void) { + +} + +void fn_1_954(void) { + HuPrcSleep(0x3C); + BoardMusStart(1, 0x12, 0x7F, 0); + HuPrcEnd(); +} + +void fn_1_990(void) { + Vec rotation; + Vec offset; + Vec boardSpacePos; + + s32 textChoice; + s32 currPlayer; + s32 currSpace; + s32 spaceLinkFlag; + + + currPlayer = GWSystem.player_curr; + BoardWinCreateChoice(2, 0x130011U, 4, 0); + if (GWPlayer[currPlayer].com) { + if ((s32) (frand() & 1) != 0) { + BoardComKeySetLeft(); + } else { + BoardComKeySetRight(); + } + } + BoardWinWait(); + BoardWinKill(); + textChoice = BoardWinChoiceGet(); + if ((textChoice == 1) || (textChoice == -1)) { + BoardWinCreate(2, 0x130012U, 4); + BoardWinWait(); + BoardWinKill(); + BoardMGExit(); + while (BoardMGDoneFlagGet() != 1) { + HuPrcVSleep(); + } + BoardMGDoneFlagSet(0); + return; + } + BoardAudSeqPause(0, 1, 0x3E8); + HuPrcChildCreate(fn_1_954, 0x2003U, 0x1000U, 0, boardMainProc); + rotation.x = 0.0f; + rotation.y = rotation.z = 0.0f; + offset.y = 135.0f; + offset.x = offset.z = 0.0f; + BoardCameraMotionStartEx(lbl_1_bss_30[8], &rotation, &offset, 1200.0f, 25.0f, 0x15); + currSpace = GWPlayer[currPlayer].space_curr; + spaceLinkFlag = BoardSpaceLinkFlagSearch(0, currSpace, 0x02000000U); + BoardSpacePosGet(0, spaceLinkFlag, &boardSpacePos); + BoardPlayerMoveBetween(currPlayer, currSpace, spaceLinkFlag); + while (GWPlayer[currPlayer].moving) { + HuPrcVSleep(); + } + BoardPlayerMotionStart(currPlayer, 1, 0x40000001); + fn_1_3BF4(); + + while (GWPlayer[currPlayer].moving) { + HuPrcVSleep(); + } + while (BoardEventFlagGet() != 0) { + HuPrcVSleep(); + } + while (GWPlayer[currPlayer].moving) { + HuPrcVSleep(); + } + BoardPlayerMotionStart(currPlayer, 1, 0x40000001); +} + +void fn_1_C50(void) { + Vec rotation; + Vec offset; + s32 currSpace; + s32 spaceLinkFlags; + s32 textChoice; + s32 currPlayer; + s32 i, j; + + currPlayer = GWSystem.player_curr; + if (BoardPlayerItemCount((s32) currPlayer) == 3) { + BoardWinCreate(2, 0x13001A, 4); + BoardWinWait(); + BoardWinKill(); + HuPrcEnd(); + } + BoardCameraTargetModelSet(lbl_1_bss_30[10]); + BoardCameraMotionWait(); + + /* Generate three random unique items where + the first item is MINI_MUSHROOM and the + other two are not BOWSER_SUIT or ITEM_BAG. + */ + lbl_1_bss_8[0] = BOARD_ITEM_MINI; + for (i = 1; i < 3;) { + lbl_1_bss_8[i] = frandmod(BOARD_ITEM_MAX); + if (lbl_1_bss_8[i] != BOARD_ITEM_SUIT && lbl_1_bss_8[i] != BOARD_ITEM_BAG) { + for (j = 0; j < i; j++) { + if (lbl_1_bss_8[i] == lbl_1_bss_8[j]) { + lbl_1_bss_8[i] = BOARD_ITEM_NONE; + } + } + if (lbl_1_bss_8[i] != BOARD_ITEM_NONE) { + i++; + } + } + } + fn_1_79BC(lbl_1_bss_8); + + HuAudFXPlay(0x43); + BoardWinCreateChoice(2, 0x130016, 4, 0); + if (GWPlayer[currPlayer].com) { + if (BoardComPreferItemCheck(currPlayer, lbl_1_bss_8[0], lbl_1_bss_8[1], lbl_1_bss_8[2]) != -1) { + BoardComKeySetLeft(); + } else { + BoardComKeySetRight(); + } + } + BoardWinWait(); + BoardWinKill(); + textChoice = BoardWinChoiceGet(); + if ((textChoice == 1) || (textChoice == -1)) { + HuAudFXPlay(0x44); + BoardWinCreate(2, 0x130017, 4); + BoardWinWait(); + BoardWinKill(); + BoardMGExit(); + fn_1_8244(1); + while (BoardMGDoneFlagGet() != 1) { + HuPrcVSleep(); + } + BoardMGDoneFlagSet(0); + fn_1_5F90(); + HuPrcEnd(); + } + rotation.x = -30.0f; + rotation.y = rotation.z = 0.0f; + offset.x = 0.0f; + offset.y = 0.0f; + offset.z = -250.0f; + BoardCameraMotionStartEx(lbl_1_bss_30[10], (Point3d* ) &rotation, (Point3d* ) &offset, 1500.0f, 25.0f, 0x15); + currSpace = GWPlayer[currPlayer].space_curr; + spaceLinkFlags = BoardSpaceLinkFlagSearch(0, currSpace, 0x02000000U); + BoardPlayerMoveBetween(currPlayer, currSpace, spaceLinkFlags); + while (GWPlayer[currPlayer].moving) { + HuPrcVSleep(); + } + BoardPlayerMotionStart((s32) currPlayer, 1, 0x40000001); + BoardPlayerMotBlendSet(currPlayer, 0xB4, 0xF); + while (BoardPlayerMotBlendCheck(currPlayer) == 0) { + HuPrcVSleep(); + } + BoardCameraMotionWait(); + fn_1_5D28(); + while (BoardEventFlagGet() != 0) { + HuPrcVSleep(); + } + fn_1_8244(0); + while (GWPlayer[currPlayer].moving) { + HuPrcVSleep(); + } + fn_1_5F90(); + BoardPlayerMotionStart((s32) currPlayer, 1, 0x40000001); + HuPrcEnd(); +} + +void fn_1_1070(void) { + BoardWinKill(); + CharModelDataClose(-1); + lbl_1_bss_4 = 0; +} + +void fn_1_10A8(void) { + lbl_1_bss_4 = HuPrcChildCreate(fn_1_C50, 0x2003U, 0x2000U, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_4, fn_1_1070); + while (lbl_1_bss_4) { + HuPrcVSleep(); + } +} + +s32 fn_1_1128(void) { + u32 spaceFlags; + s16 currSpace; + currSpace = GWPlayer[GWSystem.player_curr].space_curr; + spaceFlags = BoardSpaceFlagGet(0, currSpace) & 0x600000; + BoardDiceDigit2DShowSet(0); + + if (spaceFlags & 0x200000) { + fn_1_990(); + } else if (spaceFlags & 0x400000) { + lbl_1_bss_4 = HuPrcChildCreate(fn_1_C50, 0x2003U, 0x2000U, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_4, fn_1_1070); + while (lbl_1_bss_4) { + HuPrcVSleep(); + } + } + + BoardDiceDigit2DShowSet(1); +} + +void fn_1_121C(u32 mesg) { + BoardWinCreate(2, mesg, 4); + BoardWinWait(); + BoardWinKill(); +} + +f32 const padMain = 0.0f; \ No newline at end of file diff --git a/src/REL/w02Dll/roulette.c b/src/REL/w02Dll/roulette.c new file mode 100644 index 00000000..9105d06e --- /dev/null +++ b/src/REL/w02Dll/roulette.c @@ -0,0 +1,584 @@ +#include "REL/w02Dll.h" +#include "game/audio.h" + +#define ROULETTE_CHOICE_YES 0 +#define ROULETTE_CHOICE_NO 1 +#define ROULETTE_CHOICE_MAP 2 + +#define BRIBE_CHOICE_20 0 +#define BRIBE_CHOICE_10 1 +#define BRIBE_CHOICE_5 2 +#define BRIBE_CHOICE_NVM 3 +#define BRIBE_CHOICE_INVALID -1 + +/* RODATA */ +extern f32 lbl_1_rodata_408; +extern f32 lbl_1_rodata_40C; +extern f32 lbl_1_rodata_410; +extern f32 lbl_1_rodata_414; +extern f32 lbl_1_rodata_418; +extern f32 lbl_1_rodata_41C; +extern f32 lbl_1_rodata_420; +extern f32 lbl_1_rodata_424; +extern f32 lbl_1_rodata_428; +extern f32 lbl_1_rodata_42C; +extern f32 lbl_1_rodata_430; +extern f32 lbl_1_rodata_434; +extern f32 lbl_1_rodata_438; +extern f32 lbl_1_rodata_43C; +extern f32 lbl_1_rodata_440; +extern f32 lbl_1_rodata_444; +extern f32 lbl_1_rodata_448; +extern f64 lbl_1_rodata_450; +extern f64 lbl_1_rodata_458; +extern f32 lbl_1_rodata_460; +extern f32 lbl_1_rodata_464; +extern f32 lbl_1_rodata_468; +extern f32 lbl_1_rodata_46C; +extern f32 lbl_1_rodata_470; +extern f32 lbl_1_rodata_474; +extern f32 lbl_1_rodata_478; +extern f32 lbl_1_rodata_47C; +extern f64 lbl_1_rodata_480; +extern f64 lbl_1_rodata_488; +extern f32 lbl_1_rodata_490; +extern f32 lbl_1_rodata_494; +extern f64 lbl_1_rodata_498; +extern f64 lbl_1_rodata_4A0; +extern f32 lbl_1_rodata_4A8; +extern f32 lbl_1_rodata_4AC; +extern f32 lbl_1_rodata_4B0; +extern f32 lbl_1_rodata_4B8; +extern f32 lbl_1_rodata_4C0; +extern f32 lbl_1_rodata_4C4; +extern f32 lbl_1_rodata_4C8; +extern f32 lbl_1_rodata_4CC; +extern f64 lbl_1_rodata_4D0; +extern f32 lbl_1_rodata_4D8; +extern f32 lbl_1_rodata_4DC; + +/* DATA */ +extern s32 lbl_1_data_4D0[]; + +/* BSS */ +extern s32 lbl_1_bss_38C; +extern s16 lbl_1_bss_388; +extern s32 lbl_1_bss_384; +extern f32 lbl_1_bss_380; + +//Function Externs +extern s16 BoardBowserSuitModelGet(); +extern s16 BoardBowserSuitPlayerModelGet(); +extern void BoardComKeySetDown(); +extern void BoardComKeySetUp(); +extern void omVibrate(s16 player, s16 duration, s16 off, s16 on); +extern u32 frand(); + +//Local Functions +s32 fn_1_E2AC(void); +void fn_1_E310(f32); + +// Unknown Structures +typedef struct UnkPoint { + f32 unk00; + Vec point; +} UnkPoint; + + +/* FUNCTIONS */ +void fn_1_BC1C(void) { + Point3d sp8; + + BoardModelPosGet(lbl_1_bss_30[15], &sp8); + sp8.z -= lbl_1_rodata_408; + sp8.y += lbl_1_rodata_40C; + BoardModelPosSetV(lbl_1_bss_30[6], &sp8); + BoardModelAttrSet(lbl_1_bss_30[5], 0x40000002); + BoardModelMotionTimeSet(lbl_1_bss_30[5], lbl_1_rodata_410); + BoardModelRotGet(lbl_1_bss_30[15], &sp8); + sp8.y = lbl_1_rodata_410; + BoardModelRotSetV(lbl_1_bss_30[15], &sp8); +} + +void fn_1_BCFC(void) { + s32 spaceLinkFlags; + s32 temp_r30; + s32 temp_r29; + + BoardDiceDigit2DShowSet(0); + spaceLinkFlags = BoardSpaceLinkFlagSearch(0, (s32) GWPlayer[lbl_1_bss_388].space_curr, 2U); + BoardPlayerMoveToAsync(lbl_1_bss_388, spaceLinkFlags); + while (GWPlayer[lbl_1_bss_388].moving) { + HuPrcVSleep(); + } + BoardRotateDiceNumbers((s32) lbl_1_bss_388); + BoardCameraViewSet(2); + BoardCameraMotionWait(); + BoardPlayerMotBlendSet((s32) lbl_1_bss_388, 0x5A, 0xF); + while (BoardPlayerMotBlendCheck((s32) lbl_1_bss_388) == 0) { + HuPrcVSleep(); + } + BoardModelRotYSet(lbl_1_bss_30[15], lbl_1_rodata_414); + fn_1_121C(0x130000); + HuAudFXPlay(0x44); + temp_r29 = fn_1_BE88(); + BoardStatusShowSetAll(0); + fn_1_121C(0x130001); + temp_r30 = fn_1_C108(temp_r29); + fn_1_CD04(temp_r30); + BoardCameraViewSet(1); + BoardStatusShowSetAll(1); + BoardCameraMotionWait(); + BoardDiceDigit2DShowSet(1); + HuPrcKill(NULL); + while(TRUE) { + HuPrcVSleep(); + } +} + +s32 fn_1_BE74(void) { + lbl_1_bss_38C = 0; +} + +s32 fn_1_BE88(void) { + s32 coinAmount; + s32 var_r30; + s16 playerCoinRegion; + s32 bribeChoice; + s32 i; + s32 rouletteChoice; + s32 mesg; + + var_r30 = -1; + coinAmount = BoardPlayerCoinsGet((s32) lbl_1_bss_388); + if (coinAmount < 5) { + return var_r30; + } + fn_1_121C(0x130002); + + do { + BoardWinCreateChoice(2, 0x13001DU, 4, 0); + /* COM has 50% to bribe goomba */ + if (GWPlayer[lbl_1_bss_388].com) { + if (frand() & 1) { + BoardComKeySetRight(); + } else { + BoardComKeySetLeft(); + } + } + BoardWinWait(); + BoardWinKill(); + rouletteChoice = BoardWinChoiceGet(); + // If chose to play roulette + if (rouletteChoice == ROULETTE_CHOICE_YES) { + BoardWinCreateChoice(1, 0x130003U, 4, 0); + playerCoinRegion = 3; + if (coinAmount < 0x14) { + BoardWinChoiceDisable(0); + playerCoinRegion--; + } + if (coinAmount < 0xA) { + BoardWinChoiceDisable(1); + playerCoinRegion--; + } + /* COM always bribes max unless it has 20 or + more coins. Then 50% max, 50% 10 coin bribe. */ + if (GWPlayer[lbl_1_bss_388].com) { + if (playerCoinRegion < 2) { + BoardComKeySetUp(); + } else if (frand() & 1) { + BoardComKeySetUp(); + } else { + BoardComKeySetDown(); + } + } + BoardWinWait(); + BoardWinKill(); + bribeChoice = BoardWinChoiceGet(); + if (bribeChoice == BRIBE_CHOICE_INVALID || + bribeChoice == BRIBE_CHOICE_NVM) { + continue; + } + + // Coin amount is now the bribe amount in coins + switch (bribeChoice) { + case BRIBE_CHOICE_20: + mesg = 0x130004; + coinAmount = 0x14; + var_r30 = 0x5A; // 90% + break; + case BRIBE_CHOICE_10: + mesg = 0x130005; + coinAmount = 0xA; + var_r30 = 0x3C; // 60% + break; + case BRIBE_CHOICE_5: + mesg = 0x130006; + coinAmount = 5; + var_r30 = 0x1E; // 30% + break; + } + fn_1_121C(mesg); + + + for (i = 0; i < coinAmount; i++) { + BoardPlayerCoinsAdd(lbl_1_bss_388, -1); + HuAudFXPlay(0xE); + HuPrcSleep(6); + } + HuAudFXPlay(0xF); + // If chose to view map + } else if (rouletteChoice == ROULETTE_CHOICE_MAP) { + BoardViewMapExec(lbl_1_bss_388); + } + } while (rouletteChoice == ROULETTE_CHOICE_MAP); // While viewing map + if (var_r30 == -1) { + fn_1_121C(0x130007); + } + return var_r30; +} + +// https://decomp.me/scratch/rctvo +s32 fn_1_C108(s32 arg0) { + Vec sp34; + Vec sp28; + Vec sp1C; + UnkPoint spC; + + + f32 var_f27; + f32 var_f26; + f32 var_f25; + f32 var_f28; + f32 var_f29; + f64 var_f30; + f32 var_f31; + + s32 var_r26; + s32 var_r27; + s16 var_r28; + s32 var_r30; + s32 var_r29; + s32 i; + + if ((s32) frandmod(0x64U) < arg0) { + s32 temp_r25 = fn_1_E2AC(); + var_r27 = 4; + var_r29 = frandmod(3U); + if ((s32) frandmod(0x64U) < 0x14) { + var_r29 += 1; + } + var_r29 = var_r29 + (3 - temp_r25) * 4; + } else { + var_r29 = frandmod(0x10U); + var_r27 = frandmod(4U); + } + BoardModelPosGet(lbl_1_bss_30[4], &spC.point); + BoardCameraViewSet(1); + BoardCameraMotionWait(); + var_r26 = BoardSpaceFlagSearch(0, 0x800U); + BoardCameraTargetSpaceSet(var_r26); + BoardPlayerMotBlendSet(lbl_1_bss_388, 0xB4, 0xF); + BoardModelRotGet(lbl_1_bss_30[15], &sp34); + + for (i = 0; i < 0xF; i++) { + sp34.y -= lbl_1_rodata_418; + BoardModelRotSetV(lbl_1_bss_30[15], &sp34); + HuPrcVSleep(); + } + + sp34.y = lbl_1_rodata_41C; + BoardModelRotSetV(lbl_1_bss_30[15], &sp34); + BoardCameraMotionWait(); + lbl_1_bss_384 = HuAudFXPlay(0x41D); + var_r28 = -0x1FFF; + var_f29 = lbl_1_rodata_410; + for (i = 0; i < 0x3C; i++) { + var_f29 -= lbl_1_rodata_420; + fn_1_E310(var_f29); + var_r28 = (s16) ((f32) (s16) var_r28 + lbl_1_rodata_424); + HuAudFXPitchSet(lbl_1_bss_384, var_r28); + HuPrcVSleep(); + } + + var_f29 = lbl_1_rodata_428; + HuAudFXPitchSet(lbl_1_bss_384, 0); + BoardModelMotionStart(lbl_1_bss_30[15], 2, 0x40000001); + BoardModelPosGet(lbl_1_bss_30[15], &sp34); + + for (i = 0; i < 0x1E; i++) { + sp34.z += lbl_1_rodata_42C; + BoardModelPosSetV(lbl_1_bss_30[15], &sp34); + fn_1_E310(var_f29); + HuPrcVSleep(); + } + BoardModelMotionStart(lbl_1_bss_30[15], 1, 0x40000001); + while (var_r29) { + fn_1_E310(var_f29); + HuPrcVSleep(); + var_r29 -= 1; + } + BoardModelMotionStart(lbl_1_bss_30[15], 3, 0x40000001); + BoardModelMotionSpeedSet(lbl_1_bss_30[15], lbl_1_rodata_430); + + for (i = 0; i < 0xA; i++) { + sp34.z -= lbl_1_rodata_434; + BoardModelPosSetV(lbl_1_bss_30[15], &sp34); + fn_1_E310(var_f29); + HuPrcVSleep(); + } + BoardModelMotionStart(lbl_1_bss_30[15], 1, 0x40000001); + BoardModelMotionSpeedSet(lbl_1_bss_30[15], lbl_1_rodata_438); + HuAudFXPlay(0x41F); + HuAudFXPlay(0x42D); + omVibrate(lbl_1_bss_388, 0xC, 6, 6); + var_f31 = lbl_1_rodata_410; + var_f27 = lbl_1_rodata_43C; + sp1C.x = lbl_1_rodata_410; + sp1C.z = lbl_1_rodata_440; + + // Roulette motion and ball ? + while(TRUE) { + sp1C.y = var_f27 - (lbl_1_rodata_444 * (lbl_1_rodata_448 * (var_f31 * var_f31))); + var_f31 += lbl_1_rodata_438; + BoardModelPosGet(lbl_1_bss_30[6], &sp28); + PSVECAdd(&sp28, &sp1C, &sp28); + var_f28 = (sp28.x - spC.point.x) * (sp28.x - spC.point.x) + ((sp28.z - spC.point.z) * (sp28.z - spC.point.z)); + if (var_f28 > lbl_1_rodata_410) { + var_f30 = __frsqrte(var_f28); + var_f30 = lbl_1_rodata_450 * var_f30 * (lbl_1_rodata_458 - ((f64) var_f28 * (var_f30 * var_f30))); + var_f30 = lbl_1_rodata_450 * var_f30 * (lbl_1_rodata_458 - ((f64) var_f28 * (var_f30 * var_f30))); + var_f30 = (lbl_1_rodata_450 * var_f30 * (lbl_1_rodata_458 - (var_f28 * (var_f30 * var_f30)))); + spC.unk00 = (var_f28 * var_f30); + var_f26 = spC.unk00; + } else { + var_f26 = var_f28; + } + + var_f25 = var_f26; + if (var_f25 >= lbl_1_rodata_460) { + if (sp28.y <= (lbl_1_rodata_464 + spC.point.y)) { + PSVECSubtract(&sp28, &spC.point, (Vec* ) &sp1C); + PSVECNormalize((Vec* ) &sp1C, (Vec* ) &sp1C); + sp1C.y = lbl_1_rodata_410; + PSVECScale((Vec* ) &sp1C, (Vec* ) &sp1C, lbl_1_rodata_468); + PSVECAdd((Vec* ) &sp1C, &spC.point, (Vec* ) &sp1C); + sp28.x = sp1C.x; + sp28.z = sp1C.z; + sp1C.x = lbl_1_rodata_46C; + sp1C.z = lbl_1_rodata_470; + } + } + + if (sp28.y < spC.point.y) { + sp28.y = spC.point.y; + if (var_r27 >= 3) { + break; + } + //var_f31 = (lbl_1_rodata_474 * (lbl_1_rodata_418 * (s32) (u8) frand())); + var_f27 = lbl_1_rodata_418 + (lbl_1_rodata_474 * (lbl_1_rodata_418 * (s32) (u8) frand())); + var_f31 = lbl_1_rodata_438; + var_r27 += 1; + //var_f31 = (lbl_1_rodata_474 * (lbl_1_rodata_47C * (s32) (u8) frand())); + sp1C.x = lbl_1_rodata_478 + (lbl_1_rodata_474 * (lbl_1_rodata_47C * (s32) (u8) frand())); + sp1C.z = lbl_1_rodata_478 + (lbl_1_rodata_474 * (lbl_1_rodata_47C * (s32) (u8) frand())); + HuAudFXPlay(0x41E); + } + + BoardModelPosSetV(lbl_1_bss_30[6], (Vec* ) &sp28); + fn_1_E310(var_f29); + HuPrcVSleep(); + } + + HuAudFXPlay(0x41E); + PSVECSubtract(&sp28, &spC.point, (Vec* ) &sp1C); + PSVECNormalize((Vec* ) &sp1C, (Vec* ) &sp1C); + var_f31 = (f32) (lbl_1_rodata_480 * (atan2((f64) -sp1C.z, (f64) sp1C.x) / lbl_1_rodata_488)); + BoardModelRotGet(lbl_1_bss_30[4], &sp34); + var_f31 = var_f31 - sp34.y; + if (var_f31 < lbl_1_rodata_410) { + var_f31 += lbl_1_rodata_490; + } + var_r30 = (s32) (var_f31 / lbl_1_rodata_494); + if (fmod(var_f31, lbl_1_rodata_498) > lbl_1_rodata_4A0) { + var_r30 += 1; + } + if (var_r30 >= 0x10) { + var_r30 -= 0x10; + } + sp1C.y = lbl_1_rodata_410; + + while(TRUE) { + fn_1_E310(var_f29); + BoardModelRotGet(lbl_1_bss_30[4], &sp34); + var_f31 = (lbl_1_rodata_494 * var_r30) + sp34.y; // TODO: Update rodata for asm change + sp1C.x= cos((lbl_1_rodata_488 * var_f31) / lbl_1_rodata_480); + sp1C.z = -sin((lbl_1_rodata_488 * var_f31) / lbl_1_rodata_480); + PSVECScale(&sp1C, &sp1C, lbl_1_rodata_468); + PSVECAdd(&sp1C, &spC.point, &sp1C); + sp28.x = sp1C.x; + sp28.z = sp1C.z; + BoardModelPosSetV(lbl_1_bss_30[6], &sp28); + if (sp34.y >= lbl_1_rodata_4A8 && + sp34.y < lbl_1_rodata_4AC) { + break; + } + HuPrcVSleep(); + } + + for (i = 0; i < 0x3C; i++) { + var_f29 += lbl_1_rodata_420; + fn_1_E310(var_f29); + BoardModelRotGet(lbl_1_bss_30[4], &sp34); + var_f31 = (lbl_1_rodata_494 * (f32) var_r30) + sp34.y; // TODO: Update rodata for asm change + sp1C.x = (f32) cos((lbl_1_rodata_488 * (f64) var_f31) / lbl_1_rodata_480); + sp1C.z = (f32) -sin((lbl_1_rodata_488 * (f64) var_f31) / lbl_1_rodata_480); + PSVECScale(&sp1C, &sp1C, lbl_1_rodata_468); + PSVECAdd((Vec* ) &sp1C, &spC.point, (Vec* ) &sp1C); + sp28.x = sp1C.x; + sp28.z = sp1C.z; + BoardModelPosSetV(lbl_1_bss_30[6], (Vec* ) &sp28); + var_r28 = var_r28 + lbl_1_rodata_4B0; // TODO: Weird extra rodata + HuAudFXPitchSet(lbl_1_bss_384, var_r28); + HuPrcVSleep(); + } + BoardModelRotYSet(lbl_1_bss_30[4], lbl_1_rodata_410); + HuAudFXStop(lbl_1_bss_384); + return lbl_1_data_4D0[var_r30]; +} + +// Place player on space post roulette? +void fn_1_CD04(s32 arg0) { + Vec sp24; + Vec sp18; + Vec spC; + + f32 temp_f30; + f32 temp_f29; + f32 var_f31; + + s16 var_r25; + u32 var_r26; + s32 var_r27; + s32 var_r29; + s32 var_r28; + s32 var_r30; + BoardSpace* temp_r31; + + if (arg0 < 0) { + fn_1_D3AC(); + arg0 = fn_1_D8C4(); + } + temp_r31 = BoardSpaceGet(0, BoardSpaceFlagSearch(0, 0x800)); + + for (var_r28 = 0; var_r28 < temp_r31->link_cnt; var_r28++) { + var_r29 = temp_r31->link[var_r28]; + var_r26 = ( (BoardSpaceFlagGet(0, var_r29) & 0xE) >> 1U); + if ( var_r26 == (arg0 + 2)) { + break; + } + } + BoardSpacePosGet(0, var_r29, &sp24); + BoardModelAttrReset(lbl_1_bss_30[5], 0x40000002); + HuAudFXPlay(0x420); + if (BoardPlayerSizeGet(lbl_1_bss_388) == 2) { + while (BoardModelMotionTimeGet(lbl_1_bss_30[5]) < lbl_1_rodata_4C0) { + HuPrcVSleep(); + } + BoardPlayerScaleGet(lbl_1_bss_388, &spC); + + while (BoardModelMotionTimeGet(lbl_1_bss_30[5]) < lbl_1_rodata_4C4) { + spC.x -= lbl_1_rodata_448; + spC.y -= lbl_1_rodata_448; + //temp_f1 = spC.z; + spC.z = spC.z - lbl_1_rodata_448; + BoardPlayerScaleSetV(lbl_1_bss_388, &spC); + HuPrcVSleep(); + } + + spC.x = spC.y = spC.z = lbl_1_rodata_4C8; + BoardPlayerScaleSetV(lbl_1_bss_388, &spC); + } + + while (BoardModelMotionTimeGet(lbl_1_bss_30[5]) < lbl_1_rodata_4C4) { + HuPrcVSleep(); + } + if (GWPlayer[lbl_1_bss_388].bowser_suit) { + BoardModelVisibilitySet(BoardBowserSuitModelGet(), 0); + BoardModelVisibilitySet(BoardBowserSuitPlayerModelGet(), 0); + } else { + BoardModelVisibilitySet(BoardPlayerModelGet(lbl_1_bss_388), 0); + } + HuAudFXPlay(0x421); + omVibrate(lbl_1_bss_388, 0xC, 4, 2); + + while (BoardModelMotionTimeGet(lbl_1_bss_30[5]) < lbl_1_rodata_4CC) { + HuPrcVSleep(); + } + + BoardModelPosGet(lbl_1_bss_30[5], &sp18); + temp_f30 = (f32) ((lbl_1_rodata_480 * (atan2(sp24.x - sp18.x, sp24.z - sp18.z) / lbl_1_rodata_488)) / lbl_1_rodata_4D0); + + while (BoardModelMotionTimeGet(lbl_1_bss_30[5]) < lbl_1_rodata_408) { + BoardModelRotYSet(lbl_1_bss_30[5], temp_f30 + BoardModelRotYGet(lbl_1_bss_30[5])); + HuPrcVSleep(); + } + BoardModelRotYSet(lbl_1_bss_30[5], (f32) (lbl_1_rodata_480 * (atan2(sp24.x - sp18.x, sp24.z - sp18.z) / lbl_1_rodata_488))); + omVibrate(lbl_1_bss_388, 0xC, 4, 2); + if (GWPlayer[lbl_1_bss_388].bowser_suit) { + + BoardModelVisibilitySet(BoardBowserSuitModelGet(),1); + BoardModelVisibilitySet(BoardBowserSuitPlayerModelGet(),1); + } else { + BoardModelVisibilitySet(BoardPlayerModelGet(lbl_1_bss_388), 1); + } + GWPlayer[lbl_1_bss_388].space_curr =(s16) var_r29; + BoardPlayerPosSetV(lbl_1_bss_388, &sp24); + temp_r31 = BoardSpaceGet(0, var_r29); + + for ( var_r30 = 0; var_r30 < (s32) temp_r31->link_cnt; var_r30++) { + if (BoardSpaceTypeGet(0, temp_r31->link[var_r30])) { + break; + } + } + + if (var_r30 != (s32) temp_r31->link_cnt) { + BoardSpacePosGet(0, temp_r31->link[var_r30], &sp18); + BoardPlayerRotYSet(lbl_1_bss_388, (f32) (lbl_1_rodata_480 * (atan2(sp18.x - sp24.x, sp18.z - sp24.z) / lbl_1_rodata_488))); + } + if (BoardPlayerSizeGet(lbl_1_bss_388) == 2) { + var_f31 = spC.x; + + while (var_f31 < lbl_1_rodata_4DC) { + var_f31 += lbl_1_rodata_4D8; + if (var_f31 > lbl_1_rodata_4DC) { + var_f31 = lbl_1_rodata_4DC; + } + spC.z = var_f31; + spC.y = var_f31; + spC.x = var_f31; + BoardPlayerScaleSetV(lbl_1_bss_388, &spC); + HuPrcVSleep(); + } + } + HuAudFXPlay(0x42A); + while (BoardModelMotionTimeGet(lbl_1_bss_30[5]) < BoardModelMotionMaxTimeGet(lbl_1_bss_30[5])) { + HuPrcVSleep(); + } + HuPrcCreate(&fn_1_DF48, 0x2004, 0x1000, 0); +} + +/* Rotate (yaw) of model 4 */ +void fn_1_E310(f32 degrees) { + Point3d spC; + lbl_1_bss_380 += degrees; + if (lbl_1_bss_380 >= lbl_1_rodata_490) { + lbl_1_bss_380 -= lbl_1_rodata_490; + } + if (lbl_1_bss_380 < lbl_1_rodata_410) { + lbl_1_bss_380 += lbl_1_rodata_490; + } + BoardModelRotGet(lbl_1_bss_30[4], &spC); + spC.y = lbl_1_bss_380; + BoardModelRotSetV(lbl_1_bss_30[4], &spC); +} diff --git a/src/REL/w03Dll/condor.c b/src/REL/w03Dll/condor.c index fc823ecd..983d3752 100644 --- a/src/REL/w03Dll/condor.c +++ b/src/REL/w03Dll/condor.c @@ -1,162 +1,195 @@ #include "REL/w03Dll.h" #include "game/data.h" +#include "game/board/main.h" +#include "game/board/space.h" +#include "game/board/player.h" +#include "game/board/model.h" +#include "game/board/window.h" +#include "game/hsfman.h" +#include "game/hsfdraw.h" -//file is full of old names and old signatures...needs updating -//is also missing half the functions in this TU +#include "game/pad.h" +#include "game/wipe.h" +//structs + +typedef struct w03UnkStruct5 { + /* 0x00 */ struct { + u8 unk00_bit0 : 1; + u8 unk00_bit1 : 2; + u8 unk00_bit3 : 1; + u8 unk00_bit4 : 4; + }; + /* 0x01 */ char unk_01[3]; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; +} w03UnkStruct5; + +typedef struct w03UnkStruct4 { + /* 0x00 */ struct { + u8 unk00_bit0 : 1; + }; +} w03UnkStruct4; + +typedef struct w03StructUnk3 { +/* 0x00 */ s16 unk_00; +/* 0x02 */ s16 model; +/* 0x04 */ f32 unk_04; +/* 0x08 */ Vec unk_08; +/* 0x14 */ Vec unk_14; +} w03StructUnk3; + +typedef struct w03StructUnk2 { +/* 0x00 */ struct { + u8 unkbit_00 : 1; + u8 unkbit_01 : 2; + u8 unkbit_03 : 1; + u8 unkbit_04 : 1; + }; + s8 unk_01; + s8 unk_02; + u8 unk_03; + s16 model; + char unk_06[2]; + w03StructUnk3* unk_08; +} w03StructUnk2; + +//function signatures void fn_1_313C(void); void fn_1_3218(void); void fn_1_3304(void); -extern Process* lbl_1_bss_70; -extern s8 lbl_1_bss_7C; -extern s16 lbl_1_data_310; +s32 fn_1_3478(s32); +void fn_1_3814(s32); +void fn_1_3968(s32); +void fn_1_3E88(s32); +void fn_1_3F5C(s32); +void fn_1_4354(s32); +void fn_1_48EC(s32); +void fn_1_4A9C(void); +void fn_1_50D4(omObjData* arg0); +void fn_1_5838(s32); +void fn_1_5AC8(omObjData* arg0); +void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1); +void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1); +f32 fn_1_61A4(omObjData* arg0, w03UnkStruct5* arg1); +void fn_1_629C(s8 arg0); +s32 fn_1_62D0(void); +void fn_1_62FC(void); -// #define MAKE_DATA_NUM(dir, file) (((dir) << 16)+(file)) -// #define MAKE_DIR_NUM(dir) ((dir) << 16) - -// #define DATA_NUM_LISTEND -1 +//bss +float lbl_1_bss_80[20][2]; +s8 lbl_1_bss_7D; +s8 lbl_1_bss_7C; +omObjData *lbl_1_bss_78; +omObjData *lbl_1_bss_74; +Process* lbl_1_bss_70; +//data +s16 lbl_1_data_310 = -1; +s16 lbl_1_data_312 = -1; +s16 lbl_1_data_314 = -1; +s16 lbl_1_data_316 = -1; s32 lbl_1_data_318[] = { - DATA_MAKE_NUM(0x0077, 0x0016), - DATA_MAKE_NUM(0x0077, 0x0017), - DATA_MAKE_NUM(0x0077, 0x0018), - DATA_MAKE_NUM(0x0077, 0x0019), - DATA_MAKE_NUM(0x0077, 0x001A), + DATA_MAKE_NUM(DATADIR_W03, 0x0016), + DATA_MAKE_NUM(DATADIR_W03, 0x0017), + DATA_MAKE_NUM(DATADIR_W03, 0x0018), + DATA_MAKE_NUM(DATADIR_W03, 0x0019), + DATA_MAKE_NUM(DATADIR_W03, 0x001A), DATA_NUM_LISTEND }; void fn_1_3058(void) { - lbl_1_data_310 = fn_8006D9A4(0x770015, &lbl_1_data_318, 0); + lbl_1_data_310 = BoardModelCreate(0x770015, lbl_1_data_318, 0); fn_1_3304(); } s32 fn_1_309C(void) { - fn_800688E8(0); - lbl_1_bss_70 = HuPrcChildCreate(fn_1_313C, 0x2003U, 0x2000U, 0, lbl_801D3ED0); + BoardDiceDigit2DShowSet(0); + lbl_1_bss_70 = HuPrcChildCreate(fn_1_313C, 0x2003U, 0x2000U, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_70, fn_1_3218); while (lbl_1_bss_70) { HuPrcVSleep(); } - fn_800688E8(1); + BoardDiceDigit2DShowSet(1); return lbl_1_bss_7C; } -s32 fn_800747C4(s32, s32, s32); /* extern */ -extern s16 lbl_1_data_310; -extern f64 lbl_1_rodata_100; -extern f32 lbl_1_rodata_108; -extern f32 lbl_1_rodata_E8; -extern f64 lbl_1_rodata_F0; -extern f64 lbl_1_rodata_F8; - -void fn_1_3304(void) { - Point3d sp8; - f32 temp_f31; - s32 var_r31; - - - if (lbl_1_bss_0->unk1 != 0) { - var_r31 = fn_800745F0(0, 0x4000); - } else { - var_r31 = fn_800745F0(0, 0x8000); - } - var_r31 = fn_800747C4(0, var_r31, 0x02000000); - fn_80074210(0, var_r31, &sp8); - temp_f31 = lbl_1_rodata_E8; - sp8.x = sp8.x + (lbl_1_rodata_F0 * sin((lbl_1_rodata_F8 * temp_f31) / lbl_1_rodata_100)); - sp8.z = sp8.z + (lbl_1_rodata_F0 * cos((lbl_1_rodata_F8 * temp_f31) / lbl_1_rodata_100)); - sp8.y = 45.0f + sp8.y; - fn_8006F158(lbl_1_data_310, &sp8); - fn_8006E2B8(lbl_1_data_310, 2, 0x40000001); -} - -s32 fn_1_3478(s32); -void fn_1_3814(s32); -void fn_1_3968(s32); -void fn_1_3E88(s32); -void fn_1_3F5C(s32); -void fn_8005DAC4(f32, f32); -extern s8 lbl_1_bss_7C; -extern f32 lbl_1_rodata_D8; -extern f32 lbl_1_rodata_DC; -extern f32 lbl_1_rodata_E0; -extern f32 lbl_1_rodata_E4; - void fn_1_313C(void) { s32 temp_r31; temp_r31 = GWSystem.player_curr; lbl_1_bss_7C = 0; lbl_1_bss_0->unk3 = 1; + if (fn_1_3478(temp_r31) != 0) { - fn_8005DAC4(lbl_1_rodata_D8, lbl_1_rodata_DC); - fn_800884F4(0); + BoardCameraNearFarSet(500.0f, 20000.0f); + BoardStatusShowSetAll(0); fn_1_3968(temp_r31); fn_1_3E88(temp_r31); fn_1_3F5C(temp_r31); lbl_1_bss_7C = 1; } - fn_8005DAC4(lbl_1_rodata_E0, lbl_1_rodata_E4); + + BoardCameraNearFarSet(100.0f, 13000.0f); fn_1_3814(temp_r31); HuPrcEnd(); } -extern s32 lbl_1_bss_70; -extern s16 lbl_1_data_312; -extern s16 lbl_1_data_314; -extern s16 lbl_1_data_316; void fn_1_3218(void) { if (lbl_1_data_316 != -1) { HuWinKill(lbl_1_data_316); lbl_1_data_316 = -1; } + if (lbl_1_data_314 != -1) { - fn_8006DB90(lbl_1_data_314); + BoardModelKill(lbl_1_data_314); lbl_1_data_314 = -1; } + if (lbl_1_data_312 != -1) { - fn_800637CC(GWSystem.player_curr, lbl_1_data_312); + BoardPlayerMotionKill(GWSystem.player_curr, lbl_1_data_312); lbl_1_data_312 = -1; } + lbl_1_bss_0->unk3 = 0; lbl_1_bss_70 = 0; } -s32 BoardWinChoiceGet(void); -void fn_1_4354(s32); -s32 fn_80061FDC(s32); -s32 fn_80063EC0(s32); -void fn_80063EEC(s32, s32); -void fn_8006E47C(s16, s32, f32, f32, s32); -s32 fn_8006E91C(s16); -void fn_80070390(s32, s32, s32, s32); -void fn_80070770(s32); -void fn_80072DA8(s32); -s32 fn_800747C4(s32, s16, s32); -extern s16 lbl_1_data_310; -extern f64 lbl_1_rodata_100; -extern f32 lbl_1_rodata_10C; -extern f32 lbl_1_rodata_110; -extern f32 lbl_1_rodata_114; -extern f32 lbl_1_rodata_118; -extern f32 lbl_1_rodata_11C; -extern f32 lbl_1_rodata_E8; -extern f64 lbl_1_rodata_F8; + +void fn_1_3304(void) { + Vec sp8; + f32 temp_f31; + s32 var_r31; + + if (lbl_1_bss_0->unk1 != 0) { + var_r31 = BoardSpaceFlagSearch(0, 0x4000); + } else { + var_r31 = BoardSpaceFlagSearch(0, 0x8000); + } + + var_r31 = BoardSpaceLinkFlagSearch(0, var_r31, 0x02000000); + BoardSpacePosGet(0, var_r31, &sp8); + temp_f31 = 0.0f; + sp8.x = sp8.x + (-300.0 * sin((M_PI * temp_f31) / 180.0)); + sp8.z = sp8.z + (-300.0 * cos((M_PI * temp_f31) / 180.0)); + sp8.y = 45.0f + sp8.y; + BoardModelPosSetV(lbl_1_data_310, &sp8); + BoardModelMotionStart(lbl_1_data_310, 2, 0x40000001); +} s32 fn_1_3478(s32 arg0) { - Point3d sp38; - Point3d sp2C; - Point3d sp20; + Vec sp38; + Vec sp2C; + Vec sp20; f32 sp1C; f32 sp18; - Point3d sp14; - Point3d sp8; - - s16 temp_r28; + Vec sp14; + Vec sp8; + s32 temp_r28; s32 temp_r3; s32 var_r29; s32 var_r30; @@ -173,44 +206,45 @@ s32 fn_1_3478(s32 arg0) { sp8.y = 0.0f; sp8.z = 0.0f; - fn_8005DB6C(lbl_1_data_310, &sp8, &sp14, lbl_1_rodata_114, lbl_1_rodata_118, 0x15); + BoardCameraMotionStartEx(lbl_1_data_310, &sp8, &sp14, 1900.0f, -1.0f, 21); temp_r28 = GWPlayer[arg0].space_curr; - fn_8006310C(arg0, &sp2C); - temp = fn_800747C4(0, temp_r28, 0x02000000); - fn_80074210(0, temp, &sp38); + BoardPlayerPosGet(arg0, &sp2C); + temp = BoardSpaceLinkFlagSearch(0, temp_r28, 0x02000000); + BoardSpacePosGet(0, temp, &sp38); PSVECSubtract(&sp38, &sp2C, &sp20); - float_temp = atan2(sp20.x, sp20.z) / 3.141592653589793f * 180.0f; - fn_80067C90(arg0, (float_temp), 0xF); + float_temp = atan2(sp20.x, sp20.z) / M_PI * 180.0f; + BoardPlayerMotBlendSet(arg0, (float_temp), 0xF); - while (fn_8006874C(arg0) == 0) { + while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } - fn_80067B98(arg0); + BoardPlayerIdleSet(arg0); HuAudFXPlay(0x447); - fn_8006E47C(lbl_1_data_310, 4, 0.0f, 5.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_310, 4, 0.0f, 5.0f, 0); HuPrcSleep(6); - while (fn_8006E91C(lbl_1_data_310) == 0) { + while (BoardModelMotionEndCheck(lbl_1_data_310) == 0) { HuPrcVSleep(); } - fn_8006E47C(lbl_1_data_310, 1, 0.0f, 5.0f, 0x40000001); - temp_r26 = fn_80061FDC(arg0); + BoardModelMotionShiftSet(lbl_1_data_310, 1, 0.0f, 5.0f, 0x40000001); + temp_r26 = BoardPlayerGetCharMess(arg0); BoardWinCreate(2, 0x160010, 8); - fn_800706D0(temp_r26, 3); + BoardWinInsertMesSet(temp_r26, 3); BoardWinWait(); - if (fn_80063EC0(arg0) < 5) { + + if (BoardPlayerCoinsGet(arg0) < 5) { BoardWinCreate(2, 0x160013, 8); BoardWinWait(); BoardWinKill(); return 0; } + var_r29 = 0; - goto test; - while (1) { - fn_80070390(2, 0x160011, 8, 0); - fn_80070770(0x10); + while (var_r29 == 0) { + BoardWinCreateChoice(2, 0x160011, 8, 0); + BoardWinAttrSet(0x10); if (GWPlayer[arg0].com != 0) { fn_1_4354(arg0); @@ -223,7 +257,7 @@ s32 fn_1_3478(s32 arg0) { var_r29 = 1; break; case 2: - fn_80072DA8(arg0); + BoardViewMapExec(arg0); break; default: case 1: @@ -232,60 +266,58 @@ s32 fn_1_3478(s32 arg0) { BoardWinKill(); return 0; } - test: - if (var_r29 != 0) { - fn_80071034(0, 1, 1000); - for (j = 0; j < 5; j++) { - fn_80063EEC(arg0, -1); - HuAudFXPlay(14); - HuPrcSleep(6); - } - HuAudFXPlay(15); - BoardWinKill(); - return 1; - } } + + BoardAudSeqPause(0, 1, 1000); + + for (j = 0; j < 5; j++) { + BoardPlayerCoinsAdd(arg0, -1); + HuAudFXPlay(14); + HuPrcSleep(6); + } + + HuAudFXPlay(15); + BoardWinKill(); + return 1; } -extern s8 lbl_1_bss_7C; -extern f32 lbl_1_rodata_120; -extern f32 lbl_1_rodata_124; - void fn_1_3814(s32 arg0) { - Point3d sp14; - Point3d sp8; + Vec sp14; + Vec sp8; f32 temp; - fn_8006E47C(lbl_1_data_310, 2, 0.0f, 10.0f, 0x40000001); - temp = (180.0f + fn_80063448(arg0)); - fn_80067C90(arg0, temp, 0xF); + BoardModelMotionShiftSet(lbl_1_data_310, 2, 0.0f, 10.0f, 0x40000001); + temp = (180.0f + BoardPlayerRotYGet(arg0)); + BoardPlayerMotBlendSet(arg0, temp, 0xF); - while (fn_8006874C(arg0) == 0) { + while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } - fn_8005D284(1); - fn_8005D834(arg0); + BoardCameraViewSet(1); + BoardCameraTargetPlayerSet(arg0); + if (lbl_1_bss_7C != 0) { - fn_80074210(0, GWPlayer[arg0].space_curr, &sp14); - fn_8006310C(arg0, &sp8); - fn_80066F44(arg0, &sp8, &sp14, 0x14); + BoardSpacePosGet(0, GWPlayer[arg0].space_curr, &sp14); + BoardPlayerPosGet(arg0, &sp8); + BoardPlayerPosLerpStart(arg0, &sp8, &sp14, 0x14); while (GWPlayer[arg0].moving) { HuPrcVSleep(); } } - fn_80067B98(arg0); - fn_8005E0C0(); + + BoardPlayerIdleSet(arg0); + BoardCameraMotionWait(); } void fn_1_3968(s32 arg0) { s32 var_r29 = 0; s32 var_r28 = 0; s32 sp48[] = {0x005F0065, 0x001A0065, 0x006D0065, 0x008A0065, 0x00850065, 0x00110065, 0x000D0065, 0x00810065}; - Point3d sp3C; - Point3d sp30; - Point3d sp24; - Point3d sp18; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; s32 sp10[2] = {0x00770013, 0x00770014}; f32 spC; s16 sp8; @@ -297,20 +329,20 @@ void fn_1_3968(s32 arg0) { s16 character; - lbl_1_data_314 = fn_8006D9A4(sp10[lbl_1_bss_0->unk1], NULL, 0); + lbl_1_data_314 = BoardModelCreate(sp10[lbl_1_bss_0->unk1], NULL, 0); character = GWPlayer[arg0].character; - lbl_1_data_312 = fn_8006374C(arg0, sp48[character]); + lbl_1_data_312 = BoardPlayerMotionCreate(arg0, sp48[character]); - Hu3DModelObjPosGet(fn_8006DBD4(lbl_1_data_310), "itemhook_oya", &sp3C); - fn_8006310C(arg0, &sp30); - temp_f30 = fn_8005FBE8(&sp3C, &sp30); + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_310), "itemhook_oya", &sp3C); + BoardPlayerPosGet(arg0, &sp30); + temp_f30 = BoardVecDistXZCalc(&sp3C, &sp30); PSVECSubtract(&sp3C, &sp30, &sp24); PSVECNormalize(&sp24, &sp24); - PSVECScale(&sp24, &sp24, temp_f30 / lbl_1_rodata_108); - fn_80063A1C(arg0, 4, 0.0f, lbl_1_rodata_11C, 0); + PSVECScale(&sp24, &sp24, temp_f30 / 45.0f); + BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 5.0f, 0); HuPrcSleep(5); - spC = fn_80063448(arg0); + spC = BoardPlayerRotYGet(arg0); temp_f27 = 180.0f + spC; var_r29 = 0; sp8 = 0; @@ -318,10 +350,11 @@ void fn_1_3968(s32 arg0) { while (1) { temp_f31 = __OSs16tof32(&sp8); - sp24.y = temp_f28 + (lbl_1_rodata_154 * (lbl_1_rodata_158 * (temp_f31 * temp_f31))); + sp24.y = temp_f28 + (-0.08166667f * (0.75f * (temp_f31 * temp_f31))); PSVECAdd(&sp30, &sp24, &sp30); - temp_f30 = fn_8005FBE8(&sp3C, &sp30); - if (temp_f30 < lbl_1_rodata_11C) { + temp_f30 = BoardVecDistXZCalc(&sp3C, &sp30); + + if (temp_f30 < 5.0f) { sp24.x = sp24.z = 0.0f; sp30.x = sp3C.x; sp30.z = sp3C.z; @@ -332,33 +365,34 @@ void fn_1_3968(s32 arg0) { var_r29 = 1; } } else { - fn_8005FF28(&spC, temp_f27, lbl_1_rodata_15C); - fn_80063374(arg0, spC); + BoardDAngleCalcRange(&spC, temp_f27, 5.142857f); + BoardPlayerRotYSet(arg0, spC); } if (sp30.y <= sp3C.y && var_r29 != 0) { sp30.y = sp3C.y; break; } - fn_80062FA4(arg0, &sp30); + + BoardPlayerPosSetV(arg0, &sp30); HuPrcVSleep(); sp8 += 1; } - fn_80070DEC(1, 0x18, 0x7F, 0); - fn_80063040(arg0, 0.0f, 0.0f, 0.0f); + BoardMusStart(1, 0x18, 0x7F, 0); + BoardPlayerPosSet(arg0, 0.0f, 0.0f, 0.0f); - fn_8006F73C(lbl_1_data_310, "itemhook_oya", GetCurrentPlayerIndex(GetCurrentPlayer(arg0))); - fn_8006394C(arg0, lbl_1_data_312, 0x40000001); + BoardModelHookSet(lbl_1_data_310, "itemhook_oya", BoardPlayerModelGet(arg0)); + BoardPlayerMotionStart(arg0, lbl_1_data_312, 0x40000001); HuAudFXPlay(0x44F); - fn_8006E47C(lbl_1_data_310, 5, 0.0f, lbl_1_rodata_11C, 0); + BoardModelMotionShiftSet(lbl_1_data_310, 5, 0.0f, 5.0f, 0); sp18.x = -15.0f; sp18.y = 180.0f; sp18.z = 0.0f; - fn_8005DB6C(lbl_1_data_310, &sp18, 0, lbl_1_rodata_160, lbl_1_rodata_118, 0x150); + BoardCameraMotionStartEx(lbl_1_data_310, &sp18, NULL, 4000.0f, -1.0f, 336); for (var_r28 = 0, sp8 = 0; ; sp8++) { if (var_r28 == 0) { @@ -374,50 +408,37 @@ void fn_1_3968(s32 arg0) { } } - -void fn_8005D7B4(s32); /* extern */ -void fn_80062FA4(s32, Point3d*); /* extern */ -void fn_8006F800(s16); /* extern */ -extern f32 lbl_1_rodata_108; -extern f32 lbl_1_rodata_124; -extern f64 lbl_1_rodata_F0; - -void fn_1_48EC(s32); /* extern */ -void fn_1_4A9C(void); /* extern */ -void fn_1_5838(s32); /* extern */ -s32 fn_1_62D0(void); /* extern */ -void fn_80088638(s32); /* extern */ -void fn_80088790(s32, s32); /* extern */ -extern s8 lbl_1_bss_7D; - - void fn_1_3E88(s32 arg0) { lbl_1_bss_7D = 0; fn_1_48EC(arg0); fn_1_5838(arg0); lbl_1_bss_7D = 1; - fn_80088638(arg0); - fn_80088790(arg0, 1); + BoardStatusShowSetForce(arg0); + BoardStatusShowSet(arg0, 1); WipeCreate(1, 0, 0x15); + while (WipeStatGet() != 0) { HuPrcVSleep(); } + while (fn_1_62D0() != 3) { HuPrcVSleep(); } + while (WipeStatGet() != 0) { HuPrcVSleep(); } + fn_1_4A9C(); - fn_80071034(0, 0, 0x3E8); + BoardAudSeqPause(0, 0, 0x3E8); } void fn_1_3F5C(s32 arg0) { Mtx sp38; - Point3d sp2C; - Point3d sp20; - Point3d sp14; - Point3d sp8; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; f32 temp_f31; s16 temp_r28; s32 var_r31; @@ -425,62 +446,66 @@ void fn_1_3F5C(s32 arg0) { if (lbl_1_bss_0->unk1 != 0) { lbl_1_bss_0->unk1 = 0; - var_r30 = fn_800745F0(0, 0x8000); + var_r30 = BoardSpaceFlagSearch(0, 0x8000); } else { lbl_1_bss_0->unk1 = 1; - var_r30 = fn_800745F0(0, 0x4000); + var_r30 = BoardSpaceFlagSearch(0, 0x4000); } - temp_r28 = fn_800747C4(0, var_r30, 0x02000000); - fn_8005D7B4(0); - fn_8006F800(lbl_1_data_310); + + temp_r28 = BoardSpaceLinkFlagSearch(0, var_r30, 0x02000000); + BoardCameraMoveSet(0); + BoardModelHookReset(lbl_1_data_310); + if (lbl_1_bss_0->unk1 != 0) { - var_r31 = fn_800745F0(0, 0x4000); + var_r31 = BoardSpaceFlagSearch(0, 0x4000); } else { - var_r31 = fn_800745F0(0, 0x8000); + var_r31 = BoardSpaceFlagSearch(0, 0x8000); } - var_r31 = fn_800747C4(0, var_r31, 0x02000000); - fn_80074210(0, var_r31, &sp8); + + var_r31 = BoardSpaceLinkFlagSearch(0, var_r31, 0x02000000); + BoardSpacePosGet(0, var_r31, &sp8); temp_f31 = 0.0f; - sp8.x = (sp8.x + (lbl_1_rodata_F0 * sin((lbl_1_rodata_F8 * temp_f31) / 180.0f))); - sp8.z = (sp8.z + (lbl_1_rodata_F0 * cos((lbl_1_rodata_F8 * temp_f31) / 180.0f))); + sp8.x = (sp8.x + (-300.0 * sin((M_PI * temp_f31) / 180.0f))); + sp8.z = (sp8.z + (-300.0 * cos((M_PI * temp_f31) / 180.0f))); sp8.y = 45.0f + sp8.y; - fn_8006F158(lbl_1_data_310, &sp8); - fn_8006E2B8(lbl_1_data_310, 2, 0x40000001); - fn_8006E2B8(lbl_1_data_310, 1, 0x40000001); - fn_8006F0D4(lbl_1_data_310, 0.0f); + BoardModelPosSetV(lbl_1_data_310, &sp8); + BoardModelMotionStart(lbl_1_data_310, 2, 0x40000001); + BoardModelMotionStart(lbl_1_data_310, 1, 0x40000001); + BoardModelRotYSet(lbl_1_data_310, 0.0f); PSMTXIdentity(sp38); - fn_8006EFBC(lbl_1_data_310, sp38); + BoardModelMtxSet(lbl_1_data_310, &sp38); + sp20.x = 0.0f; sp20.y = 150.0f; sp20.z = 0.0f; sp14.x = -15.0f; sp14.y = 0.0f; sp14.z = 0.0f; - fn_8005DB6C(lbl_1_data_310, &sp14, &sp20, lbl_1_rodata_114, lbl_1_rodata_118, 1); - fn_80074210(0, temp_r28, &sp2C); - fn_80062FA4(arg0, &sp2C); + + BoardCameraMotionStartEx(lbl_1_data_310, &sp14, &sp20, 1900.0f, -1.0f, 1); + BoardSpacePosGet(0, temp_r28, &sp2C); + BoardPlayerPosSetV(arg0, &sp2C); GWPlayer[arg0].space_curr = var_r30; - fn_80063374(arg0, lbl_1_rodata_124); - fn_80067B98(arg0); + BoardPlayerRotYSet(arg0, 180.0f); + BoardPlayerIdleSet(arg0); HuPrcSleep(2); - fn_8005D7B4(1); - fn_8006E2B8(lbl_1_bss_C[2], 0, 0x40000001); - fn_8006E0B0(lbl_1_bss_C[2], 1, 0x64); - fn_8008853C(0); + BoardCameraMoveSet(1); + BoardModelMotionStart(lbl_1_bss_C[2], 0, 0x40000001); + BoardModelMotionStartEndSet(lbl_1_bss_C[2], 1, 0x64); + BoardStatusItemSet(0); HuPrcSleep(2); - fn_8008853C(1); + BoardStatusItemSet(1); WipeCreate(1, 0, 0x15); + while (WipeStatGet() != 0) { HuPrcVSleep(); } + BoardWinCreate(2, 0x16000F, 8); BoardWinWait(); BoardWinKill(); } -void fn_800712C8(void); /* extern */ -void fn_80071328(void); /* extern */ - void fn_1_4354(s32 arg0) { s32 sp8; s32 starPos; @@ -496,12 +521,628 @@ void fn_1_4354(s32 arg0) { } else if ((starPos == 0) || (starPos == 5) || (starPos == 6) || (starPos == 7)) { var_r30 = 1; } - if (fn_80063EC0(arg0) < 0x14) { + + if (BoardPlayerCoinsGet(arg0) < 0x14) { var_r30 = 1; } + if (var_r30 != 0) { - fn_800712C8(); + BoardComKeySetLeft(); return; } - fn_80071328(); -} \ No newline at end of file + + BoardComKeySetRight(); +} + +char *lbl_1_data_34C[] = { + "jyanA", + "jyanB" +}; + +void fn_1_4424(w03StructUnk2* arg0) { + Mtx sp108; + Mtx spD8; + Mtx spA8; + Mtx sp78; + Vec sp6C; + Vec sp60; + Vec sp54; + Vec sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + s32 sp14; + f32 temp; + s16 spC; + s16 sp8; + f32 temp_f30; + s16 temp_r23; + s16 var_r25; + f32 sp10; + f32 sp10_2; + s16 i; + char* temp_r22; + w03StructUnk3* temp_r27; + ModelData* temp_r28; + + memset(&lbl_1_bss_80, 0, 0xA0); + sp48.x = sp54.x = 0.0f; + sp48.y = sp54.y = 0.0f; + sp48.z = sp54.z = 0.0f; + sp14 = 0; + BoardSpaceFlagPosGet(0, 0x8000U, &sp6C); + BoardSpaceFlagPosGet(0, 0x8000U, &sp60); + + if (lbl_1_bss_0->unk1 != 0) { + PSVECSubtract(&sp6C, &sp60, &sp3C); + } else { + PSVECSubtract(&sp60, &sp6C, &sp3C); + } + + sp10_2 = 180.0f * (atan2(-sp3C.x, -sp3C.z) / M_PI); + BoardModelMotionStart(lbl_1_data_314, 0, 0U); + BoardModelMotionSpeedSet(lbl_1_data_314, 8.0f); + HuPrcSleep(1); + temp_r23 = BoardModelIDGet(lbl_1_data_314); + temp_r28 = &Hu3DData[temp_r23]; + temp_r22 = lbl_1_data_34C[lbl_1_bss_0->unk1]; + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_314), temp_r22, &sp48); + sp24.x = 0.0f; + sp24.y = 1.0f; + sp24.z = 0.0f; + + for (i = var_r25 = 0; i < 20;) { + Hu3DMotionExec(temp_r23, temp_r28->unk_08, temp_r28->unk_64, 0); + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_314), temp_r22, &sp54); + temp_r28->unk_64 = (f32) (temp_r28->unk_64 + temp_r28->unk_68); + + if (temp_r28->unk_64 > 400.0f) { + break; + } + + if (var_r25 % 4 == 0 && ((s16) var_r25 != 0)) { + temp_r27 = &arg0->unk_08[i]; + temp_r27->unk_00 = 1; + temp_f30 = (0.5f - BoardRandFloat()) * 90; + OSf32tos16(&temp_f30, &sp8); + sp8 = (sp8 / 10) * 10; + OSs16tof32(&sp8, &temp_f30); + lbl_1_bss_80[i+1][0] = temp_f30; + lbl_1_bss_80[i+1][1] = temp_r28->unk_64; + sp30 = sp48; + sp18 = sp54; + BoardMTXCalcLookAt(spA8, &sp18, &sp24, &sp30); + PSMTXTranspose(spA8, spA8); + MTXRotDeg(spD8, 'z', temp_f30); + PSMTXTrans(sp108, 0.0f, -350.0f, 0.0f); + PSMTXConcat(spD8, sp108, sp108); + PSMTXConcat(spA8, sp108, sp108); + PSMTXTrans(sp78, sp54.x, sp54.y, sp54.z); + PSMTXConcat(sp78, sp108, sp78); + Hu3DMtxTransGet(sp78, &temp_r27->unk_08); + BoardModelPosSetV(temp_r27->model, &temp_r27->unk_08); + BoardModelVisibilitySet(temp_r27->model, 1); + i++; + } + sp48 = sp54; + var_r25++; + } + + arg0->unk_03 = i; +} + +void fn_1_48EC(s32 arg0) { + Vec spC; + omObjData* obj; + s32 i; + w03StructUnk2* temp_r31; + w03StructUnk3* temp_r30; + + obj = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_50D4); + lbl_1_bss_74 = obj; + temp_r31 = OM_GET_WORK_PTR(obj, w03StructUnk2); + temp_r31->unkbit_00 = 0; + temp_r31->unk_01 = 0; + temp_r31->unkbit_03 = 0; + temp_r31->unkbit_04 = 0; + temp_r31->unk_02 = -1; + temp_r31->unkbit_01 = arg0; + temp_r31->unk_08 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xA00, 0x10000000U); + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[2]), "coin", &spC); + temp_r31->model = BoardModelCreate(0x770007, NULL, 0); + BoardModelVisibilitySet(temp_r31->model, 0); + BoardModelPosSetV(temp_r31->model, &spC); + BoardModelLayerSet(temp_r31->model, 2U); + memset(temp_r31->unk_08, 0, 0xA00U); + + for (i = 0; i < 80; i++) { + temp_r30 = &temp_r31->unk_08[i]; + temp_r30->model = BoardModelCreate(0x70009, 0, 1); + BoardModelVisibilitySet(temp_r30->model, 0); + BoardModelMotionStart(temp_r30->model, 0, 0x40000001U); + } + + fn_1_4424(temp_r31); +} + +void fn_1_4A9C(void) { + OM_GET_WORK_PTR(lbl_1_bss_74, w03UnkStruct4)->unk00_bit0 = 1; +} + +void fn_1_4ABC(w03StructUnk2* arg0) { + Vec sp8; + f32 temp_f31; + w03StructUnk3* temp_r31; + s32 i; + + BoardModelPosGet(lbl_1_data_310, &sp8); + sp8.y += 250.0f; + + for (i = 0; i < arg0->unk_03; i++) { + temp_r31 = &arg0->unk_08[i]; + if (temp_r31->unk_00 == 1) { + if (BoardVecMinDistCheck(&sp8, &temp_r31->unk_08, 200.0f) != 0) { + temp_r31->unk_00 = -1; + BoardModelVisibilitySet(temp_r31->model, 0); + CharModelLayerSetAll(2); + CharModelCoinEffectCreate(1, &temp_r31->unk_08); + BoardPlayerCoinsAdd(arg0->unkbit_01, 1); + HuAudFXPlay(7); + } + BoardModelPosSetV(temp_r31->model, &temp_r31->unk_08); + } + } + + //reg alloc hack + (void)i; + (void)i; + + BoardModelPosGet(lbl_1_data_310, &sp8); + + for (i = arg0->unk_03; i < 80; i++) { + temp_r31 = &arg0->unk_08[i]; + if (temp_r31->unk_00 == 1) { + temp_r31->unk_04 += 1.0f; + temp_f31 = 0.8f * (temp_r31->unk_04 * temp_r31->unk_04); + PSVECAdd(&temp_r31->unk_14, &temp_r31->unk_08, &temp_r31->unk_08); + temp_r31->unk_08.y += -0.0375f * temp_f31; + if (temp_r31->unk_08.y < -300.0f) { + temp_r31->unk_00 = -1; + BoardModelVisibilitySet(temp_r31->model, 0); + } else if (BoardVecMinDistCheck(&sp8, &temp_r31->unk_08, 200.0f) != 0) { + temp_r31->unk_00 = -1; + BoardModelVisibilitySet(temp_r31->model, 0); + BoardPlayerCoinsAdd(arg0->unkbit_01, 1); + CharModelLayerSetAll(2); + CharModelCoinEffectCreate(1, &temp_r31->unk_08); + HuAudFXPlay(7); + } else { + BoardModelPosSetV(temp_r31->model, &temp_r31->unk_08); + } + } + } +} + +s32 fn_1_4D0C(w03StructUnk3** arg0, s16* arg1) { + w03StructUnk2* temp_r31; + + if (!(lbl_1_bss_74)) { + return 0; + } + + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_74, w03StructUnk2); + *arg0 = temp_r31->unk_08; + *arg1 = temp_r31->unk_03; + return 1; +} + +void fn_1_4D60(w03StructUnk2* arg0) { + Vec sp8; + f32 temp_f31; + f32 temp_f30; + s32 i; + s32 j; + w03StructUnk3* temp_r31; + + if (arg0->unk_02 == 1) { + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[2]), "coin", &sp8); + for (i = 0; i < 5; i++) { + for (j = arg0->unk_03; j < 80; j++) { + temp_r31 = &arg0->unk_08[j]; + if (temp_r31->unk_00 == 0) { + temp_r31->unk_00 = 1; + temp_f31 = 360.0f * BoardRandFloat(); + temp_f30 = 5.0f * BoardRandFloat(); + temp_r31->unk_14.x = temp_f30 * sin((M_PI * temp_f31) / 180.0); + temp_r31->unk_14.y = 50.0f + (20.0f * BoardRandFloat()); + temp_r31->unk_14.z = temp_f30 * cos((M_PI * temp_f31) / 180.0); + temp_r31->unk_08.x = sp8.x; + temp_r31->unk_08.y = sp8.y; + temp_r31->unk_08.z = sp8.z; + BoardModelVisibilitySet(temp_r31->model, 1); + BoardModelMotionStart(temp_r31->model, 0, 0x40000001); + break; + } + } + } + } +} + +void fn_1_4F24(w03StructUnk2* arg0) { + s32 var_r30 = 0; + s32 sp8[4] = {5, 10, 30, 40}; + s32 temp_r29; + s32 temp_r28; + + if (arg0->unk_02 == -1) { + if (GWTeamGet()) { + if (GWPlayer[arg0->unkbit_01].rank == 0) { + var_r30 = 5; + } else if (GWPlayer[arg0->unkbit_01].rank == 1) { + var_r30 = 20; + } + } else { + var_r30 = sp8[GWPlayer[arg0->unkbit_01].rank]; + } + + temp_r29 = BoardRandMod(100); + temp_r28 = BoardRandMod(100); + + if (temp_r29 < var_r30) { + if (temp_r28 < 30) { + arg0->unk_02 = 2; + } else { + arg0->unk_02 = 1; + } + } else { + arg0->unk_02 = 0; + } + + if (arg0->unk_02 != 0) { + BoardModelMotionShiftSet(lbl_1_bss_C[2], 0, 101.0f, 10.0f, 0); + } + } +} + +void fn_1_50D4(omObjData* arg0) { + Vec sp50; + Vec sp44; + Vec sp38; + PlayerState* sp18; + PlayerState* sp14; + s16 sp10[2]; + s16 spC[2]; + f32 temp_f31; + f32 temp_f30; + f32 temp_f29; + s32 i, j, k; + s32 temp_r22; + s32 temp_r23; + w03StructUnk3* temp_r30; + w03StructUnk2* temp_r31; + w03StructUnk3* temp; + + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_74, w03StructUnk2); + + if ((temp_r31->unkbit_00 != 0) || (BoardIsKill() != 0)) { + for (i = 0; i < 80; i++) { + temp = &temp_r31->unk_08[i]; + BoardModelKill(temp->model); + } + + for (i = 0; i < 4; i++) { + BoardModelVisibilitySet(BoardPlayerModelGet(i), 1); + } + + BoardModelKill(temp_r31->model); + HuMemDirectFree(temp_r31->unk_08); + lbl_1_bss_74 = 0; + omDelObjEx(HuPrcCurrentGet(), arg0); + return; + } + + if (lbl_1_data_314 != -1) { + temp_f31 = BoardModelMotionTimeGet(lbl_1_data_314); + if (temp_r31->unk_01 == 0) { + if ((lbl_1_bss_0->unk1 != 0) && + ((temp_f31 >= 212.0f)) || + (lbl_1_bss_0->unk1 == 0) && + ((temp_f31 >= 86.0f))) { + + temp_r31->unk_01 = 1; + } + } else { + fn_1_4F24(temp_r31); + } + + if (temp_r31->unk_01 != 0) { + if (BoardModelMotionEndCheck(lbl_1_bss_C[2]) != 0) { + BoardModelMotionStart(lbl_1_bss_C[2], 0, 0x40000001); + BoardModelMotionStartEndSet(lbl_1_bss_C[2], 1, 100); + } + if (BoardModelMotionEndCheck(temp_r31->model) != 0) { + BoardModelVisibilitySet(temp_r31->model, 0); + } + } + + if (BoardModelMotionTimeGet(lbl_1_bss_C[2]) >= 170.0f) { + if (temp_r31->unkbit_04 == 0) { + if (temp_r31->unkbit_03 == 0) { + HuAudFXPlay(0x43C); + } else { + HuAudFXPlay(0x43D); + } + temp_r31->unkbit_04 = 1; + } + if (temp_r31->unk_02 == 1) { + omVibrate(GWSystem.player_curr, 0xC, 4, 2); + fn_1_4D60(temp_r31); + } else if ((temp_r31->unk_02 == 2) && (temp_r31->unkbit_03 == 0)) { + omVibrate(GWSystem.player_curr, 0xC, 0xC, 0); + BoardModelVisibilitySet(temp_r31->model, 1); + BoardModelMotionStart(temp_r31->model, 0, 0); + temp_r31->unkbit_03 = 1; + } + } + + fn_1_4ABC(temp_r31); + + for (i = 0; i < 4; i++) { + if (i != GWSystem.player_curr) { + BoardPlayerPosGet(i, &sp50); + BoardModelPosGet(lbl_1_data_310, &sp44); + PSVECSubtract(&sp50, &sp44, &sp38); + if (PSVECMag(&sp38) >= 2000.0f) { + BoardModelVisibilitySet(BoardPlayerModelGet(i), 0); + } else { + BoardModelVisibilitySet(BoardPlayerModelGet(i), 1); + } + } + } + } +} + +void fn_1_5838(s32 arg0) { + Vec sp18; + Vec spC; + omObjData* obj; + w03UnkStruct5* temp_r31; + + obj = omAddObjEx(boardObjMan, 0x7E01, 0, 0, -1, &fn_1_5AC8); + lbl_1_bss_78 = obj; + temp_r31 = OM_GET_WORK_PTR(obj, w03UnkStruct5); + temp_r31->unk00_bit0 = 0; + temp_r31->unk00_bit1 = arg0; + temp_r31->unk00_bit4 = 1; + temp_r31->unk00_bit3 = 0; + + switch (GWPlayer[temp_r31->unk00_bit1].diff) { + case 0: + temp_r31->unk_08 = (-15.0f + (-30.0f * BoardRandFloat())); + break; + case 1: + temp_r31->unk_08 = (-5.0f + (-10.0f * BoardRandFloat())); + break; + case 2: + temp_r31->unk_08 = (-2.0f + (-5.0f * BoardRandFloat())); + break; + case 3: + temp_r31->unk_08 = 0.0f; + break; + } + + BoardCameraMoveSet(0); + + sp18.x = 0.0f; + sp18.y = -350.0f; + sp18.z = 0.0f; + spC.x = -20.0f; + spC.y = 0.0f; + spC.z = 0.0f; + + BoardCameraMotionStartEx(lbl_1_data_310, &spC, &sp18, 3000.0f, -1.0f, 1); + BoardModelMotionStart(lbl_1_data_310, 3, 0x40000001U); + BoardModelMotionStart(lbl_1_data_314, 0, 0U); + BoardModelMotionSpeedSet(lbl_1_data_314, 0.7f); + fn_1_5C5C(obj, temp_r31); + BoardCameraMotionWait(); + BoardCameraTargetModelSet(-1); +} + +void fn_1_5AC8(omObjData* arg0) { + s32 temp_r0; + w03UnkStruct5* temp_r31; + + temp_r31 = OM_GET_WORK_PTR(arg0, w03UnkStruct5); + + if ((temp_r31->unk00_bit0 != 0) || (BoardIsKill() != 0)) { + lbl_1_bss_78 = NULL; + omDelObjEx(HuPrcCurrentGet(), arg0); + if (lbl_1_data_316 != -1) { + HuWinKill(lbl_1_data_316); + lbl_1_data_316 = -1; + } + return; + } + + if ((10.0f == BoardModelMotionTimeGet(lbl_1_data_310)) || (50.0f == BoardModelMotionTimeGet(lbl_1_data_310))) { + HuAudFXPlay(0x43B); + } + + switch (temp_r31->unk00_bit4) { + case 1: + if (lbl_1_bss_7D != 0) { + fn_1_629C(2); + fn_1_62FC(); + BoardCameraTargetModelSet(lbl_1_data_310); + BoardCameraMoveSet(1); + + } + break; + case 2: + fn_1_5C5C(arg0, (w03UnkStruct5* ) temp_r31); + break; + case 3: + BoardCameraTargetModelSet(-1); + BoardCameraMoveSet(0); + temp_r31->unk00_bit0 = 1; + break; + } +} + +char *lbl_1_data_35C[] = { + "jyanA", + "jyanB" +}; + +void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1) { + Mtx sp110; + Mtx spE0; + Mtx spB0; + Mtx sp80; + Mtx sp50; + Vec sp44; + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + s16 temp_r3; + char* temp_r27; + ModelData* temp_r30; + + if (((WipeStatGet() == 0) && (arg1->unk00_bit3) || (BoardModelMotionEndCheck(lbl_1_data_314) != 0))) { + fn_1_629C(3); + return; + } + + if ((BoardModelMotionTimeGet(lbl_1_data_314) >= 410.0f) && (arg1->unk00_bit3) == 0) { + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, -1); + arg1->unk00_bit3 = 1; + BoardAudSeqFadeOut(1, 0x3E8); + } + + sp38.x = arg0->rot.x; + sp38.y = arg0->rot.y; + sp38.z = arg0->rot.z; + + temp_r3 = BoardModelIDGet(lbl_1_data_314); + temp_r30 = &Hu3DData[temp_r3]; + temp_r27 = lbl_1_data_35C[lbl_1_bss_0->unk1]; + + Hu3DMotionExec(temp_r3, temp_r30->unk_08, temp_r30->unk_64, 0); + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_314), temp_r27, &sp44); + + if (0.0f != temp_r30->unk_64) { + PSVECSubtract(&sp38, &sp44, &sp2C); + } else { + sp2C.x = sp2C.y = sp2C.z = 0.0f; + } + + arg0->rot.x = sp44.x; + arg0->rot.y = sp44.y; + arg0->rot.z = sp44.z; + + fn_1_602C(arg0, arg1); + + sp8 = sp38; + sp14 = sp44; + sp20.x = sp20.z = 0.0f; + sp20.y = 1.0f; + + BoardMTXCalcLookAt(sp110, &sp14, &sp20, &sp8); + PSMTXTranspose(sp110, sp110); + MTXRotDeg(spE0, 'z', -arg1->unk_04); + PSMTXTrans(sp50, 0.0f, -600.0f, 0.0f); + PSMTXConcat(spE0, sp50, sp50); + PSMTXConcat(sp110, sp50, sp50); + PSMTXTrans(sp80, sp44.x, sp44.y, sp44.z); + PSMTXConcat(sp80, sp50, sp80); + Hu3DMtxTransGet(sp80, &sp44); + MTXRotDeg(spB0, 'y', (180.0 * (atan2(-sp2C.x, -sp2C.z) / M_PI))); + PSMTXConcat(spB0, spE0, sp110); + BoardModelMtxSet(lbl_1_data_310, &sp110); + BoardModelPosSetV(lbl_1_data_310, &sp44); + BoardCameraRotSet(-20.0f, (180.0 * (atan2(sp2C.x, sp2C.z) / M_PI))); +} + +void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1) { + f32 temp_f31 = 0.0f; + f32 var_f30; + f32 var_f29; + + if (GWPlayer[arg1->unk00_bit1].com == 0) { + var_f30 = HuPadStkX[GWPlayer[arg1->unk00_bit1].port]; + } else { + var_f30 = fn_1_61A4(arg0, arg1); + } + + temp_f31 = 0.625f * var_f30; + + if (temp_f31 < 0.0f) { + var_f29 = -temp_f31; + } else { + var_f29 = temp_f31; + } + + if (var_f29 < 2.0f) { + arg1->unk_04 *= 0.97f; + return; + } + + BoardDAngleCalcRange(&arg1->unk_04, temp_f31, 1.0f); +} + +f32 fn_1_61A4(omObjData* arg0, w03UnkStruct5* arg1) { + w03StructUnk3* sp8; + f32 temp_f31; + s16 i; + w03StructUnk2* temp_r29; + s16 var_r28; + f32* temp_r31; + + if (lbl_1_bss_74) { + temp_r29 = OM_GET_WORK_PTR(lbl_1_bss_74, w03StructUnk2); + sp8 = temp_r29->unk_08; + var_r28 = temp_r29->unk_03; + } + + temp_f31 = BoardModelMotionTimeGet(lbl_1_data_314); + temp_f31 = temp_f31 + arg1->unk_08; + + for (i = 0; i < var_r28; i++) { + temp_r31 = lbl_1_bss_80[i]; + if ((temp_r31[1] < temp_f31) && (temp_r31[3] > temp_f31)) { + return -1.5f * temp_r31[2]; + } + } + + return 0.0f; +} + +void fn_1_629C(s8 arg0) { + w03UnkStruct5* temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5); + temp_r31->unk00_bit4 = arg0; +} + +s32 fn_1_62D0(void) { + w03UnkStruct5* temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5); + return temp_r31->unk00_bit4; +} + +void fn_1_62FC(void) { + f32 widthHeight[2]; + s32 messageID = 0x000D0005; + f32 x; + f32 y; + + HuWinMesMaxSizeGet(1, widthHeight, messageID); + x = -10000.0f; + y = 392.0f; + lbl_1_data_316 = HuWinCreate(x, y, widthHeight[0], widthHeight[1], 0); + HuWinBGTPLvlSet(lbl_1_data_316, 0.0f); + HuWinMesSpeedSet(lbl_1_data_316, 0); + HuWinMesSet(lbl_1_data_316, messageID); +} diff --git a/src/REL/w03Dll/main.c b/src/REL/w03Dll/main.c index a75163aa..a9141553 100644 --- a/src/REL/w03Dll/main.c +++ b/src/REL/w03Dll/main.c @@ -16,41 +16,45 @@ #include "game/board/star.h" #include "game/object.h" #include "game/board/player.h" +#include "game/board/map_object.h" + #include "math.h" #include "game/hsfman.h" -void fn_1_740(void); +//function signatures void fn_1_E0(void); -s32 fn_1_2930(s32 arg0); void fn_1_884(void); +void fn_1_740(void); void fn_1_8F0(void); s32 fn_1_910(void); s32 fn_1_A74(void); void fn_1_AF8(void); void fn_1_DEC(void); void fn_1_10B0(void); -s32 fn_1_12C8(void); -s32 fn_8006DDE8(s16, f32); void fn_1_10E4(omObjData* arg0); +s32 fn_1_12C8(void); +s32 fn_1_2930(s32 arg0); + typedef void (*VoidFunc)(void); extern const VoidFunc _ctors[]; extern const VoidFunc _dtors[]; +//Map Objects +s16 lbl_1_bss_C[MAPOBJ_MAX]; -//DATA -w03StructUnk0 lbl_1_data_0[] = { -{{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0004)}, -{{145.0988f, 65.6173f, -2004.14f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0005)}, -{{-1548.14f, -1148.76f, -1095.54f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0006)}, -{{1050.0f, 50.0f, -1810.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x000B)}, -{{-1950.0f, 50.0f, 1790.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x000B)}, -{{1050.0f, 0.0f, -1750.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x000A)}, -{{-1950.0f, 0.0f, 1850.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x000A)}, -{{1950.0f, 0.0f, -1800.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0010)}, -{{-3150.0f, 0.0f, -600.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0011)}, -{{-3150.0f, 270.0f, -600.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 0x0012)}, -{{2080.0f, 0.0f, -1635.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x000D)}, -{{-3000.0f, 0.0f, -500.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x000D)}, +BoardMapObject lbl_1_data_0[MAPOBJ_MAX] = { + {{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 4)}, + {{145.0988f, 65.6173f, -2004.14f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 5)}, + {{-1548.14f, -1148.76f, -1095.54f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 6)}, + {{1050.0f, 50.0f, -1810.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 11)}, + {{-1950.0f, 50.0f, 1790.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 11)}, + {{1050.0f, 0.0f, -1750.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 10)}, + {{-1950.0f, 0.0f, 1850.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 0.914f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 10)}, + {{1950.0f, 0.0f, -1800.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 16)}, + {{-3150.0f, 0.0f, -600.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 17)}, + {{-3150.0f, 270.0f, -600.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W03, 18)}, + {{2080.0f, 0.0f, -1635.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 13)}, + {{-3000.0f, 0.0f, -500.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 13)}, }; s16 lbl_1_data_1E0 = -1; @@ -103,10 +107,7 @@ s32 lbl_1_data_26C[] = { 0x0000044C, 0x0000043A, 0x0000043A, 0x0000044E }; -s32 pad_27C[] = {0}; - //BSS -s16 lbl_1_bss_C[14]; s32 lbl_1_bss_8; omObjData* lbl_1_bss_4; w03State* lbl_1_bss_0; @@ -119,55 +120,63 @@ void BoardCreate(void) { f32 var_f31; s32 var_r31; s32 var_r31_2; - w03StructUnk0* temp_r30; + BoardMapObject* temp_r30; s32 i; lbl_1_bss_0 = (w03State*)&GWSystem.board_data; lbl_1_bss_0->unk3 = 0; BoardSpaceInit(0x770000); + lbl_1_data_1E0 = BoardModelCreate(0x770001, NULL, 0); fn_8006DDE8(lbl_1_data_1E0, -1.0f); BoardModelPosSet(lbl_1_data_1E0, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_1E0, 0, 0x40000001); + lbl_1_data_1E8 = BoardModelCreate(0x770003, NULL, 0); fn_8006DDE8(lbl_1_data_1E8, -1.0f); BoardModelPosSet(lbl_1_data_1E8, 0.0f, 0.0f, 0.0f); BoardModelLayerSet(lbl_1_data_1E8, 2); + lbl_1_data_1E2 = BoardModelCreate(0x770002, NULL, 0); fn_8006DDE8(lbl_1_data_1E2, -1.0f); BoardModelPosSet(lbl_1_data_1E2, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_1E2, 0, 0x40000001); + lbl_1_data_1E4 = BoardModelCreate(0x77001B, lbl_1_data_20C, 0); BoardModelPosSet(lbl_1_data_1E4, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_1E4, 1, 0x40000001); + lbl_1_data_1E6 = BoardModelCreate(0x2000D, lbl_1_data_214, 0); BoardModelPosSet(lbl_1_data_1E6, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_1E6, 1, 0x40000001); - for (i = 0; i < 12; i++) { + for (i = 0; i < MAPOBJ_MAX; i++) { temp_r30 = &lbl_1_data_0[i]; - if (temp_r30->datanum != -1) { + if (temp_r30->data_num != -1) { if ((i == 10) || (i == 11)) { var_r29 = lbl_1_data_214; } else { var_r29 = NULL; } - lbl_1_bss_C[i]= BoardModelCreate(temp_r30->datanum, var_r29, 0); - BoardModelPosSetV(lbl_1_bss_C[i], &temp_r30->unk_00); - BoardModelRotSetV(lbl_1_bss_C[i], &temp_r30->unk_0C); - BoardModelScaleSetV(lbl_1_bss_C[i], &temp_r30->unk_18); + lbl_1_bss_C[i]= BoardModelCreate(temp_r30->data_num, var_r29, 0); + BoardModelPosSetV(lbl_1_bss_C[i], &temp_r30->pos); + BoardModelRotSetV(lbl_1_bss_C[i], &temp_r30->rot); + BoardModelScaleSetV(lbl_1_bss_C[i], &temp_r30->scale); BoardModelVisibilitySet(lbl_1_bss_C[i], 1); } } + BoardModelMotionStart(lbl_1_bss_C[10], 1, 0x40000001); BoardModelMotionStart(lbl_1_bss_C[11], 1, 0x40000001); BoardModelMotionStart(lbl_1_bss_C[7], 0, 0x40000002); BoardModelMotionStart(lbl_1_bss_C[9], 0, 0x40000002); BoardModelMotionStart(lbl_1_bss_C[1], 0, 0x40000002); + fn_1_3058(); fn_1_6494(); fn_1_7ABC(); fn_1_9A7C(); + BoardLightHookSet(&fn_1_884, &fn_1_8F0); BoardSpaceWalkEventFuncSet(&fn_1_910); BoardSpaceWalkMiniEventFuncSet((void*)&fn_1_A74); @@ -180,6 +189,7 @@ void BoardCreate(void) { BoardJunctionMaskSet(0x3000); fn_1_CF4(); BoardModelMotionStart(lbl_1_bss_C[0], 0, 0x40000001); + if (lbl_1_bss_0->unk0 != 0) { var_f30 = lbl_1_data_1EC.unk_10; var_f31 = lbl_1_data_1EC.unk_14; @@ -189,10 +199,12 @@ void BoardCreate(void) { var_f31 = lbl_1_data_1EC.unk_04; fn_1_63F4(1); } + BoardModelMotionStartEndSet(lbl_1_bss_C[0], var_f30, var_f31); BoardModelMotionStart(lbl_1_bss_C[2], 0, 0x40000001); - BoardModelMotionStartEndSet(lbl_1_bss_C[2], 1, 0x64); + BoardModelMotionStartEndSet(lbl_1_bss_C[2], 1, 100); fn_1_785C(); + if (lbl_1_bss_0->unk2 != 0) { for (i = 0; i < 4; i++) { if ((lbl_1_bss_0->unk2 & (1 << i)) != 0) { @@ -201,6 +213,7 @@ void BoardCreate(void) { } } } + fn_1_DEC(); } @@ -210,22 +223,27 @@ void BoardDestroy(void) { fn_1_10B0(); fn_1_9A9C(); fn_1_7B58(); + for (i = 0; i < 0x0C; i++) { BoardModelKill(lbl_1_bss_C[i]); lbl_1_bss_C[i] = -1; } + if (lbl_1_data_1E6 != -1) { BoardModelKill(lbl_1_data_1E6); lbl_1_data_1E6 = -1; } + if (lbl_1_data_1E4 != -1) { BoardModelKill(lbl_1_data_1E4); lbl_1_data_1E4 = -1; } + if (lbl_1_data_1E0 != -1) { BoardModelKill(lbl_1_data_1E0); lbl_1_data_1E0 = -1; } + if (lbl_1_data_1E2 != -1) { BoardModelKill(lbl_1_data_1E2); lbl_1_data_1E2 = -1; @@ -250,6 +268,7 @@ s32 fn_1_910(void) { cur_player_index = GWSystem.player_curr; space = GWPlayer[cur_player_index].space_curr; temp_r3 = BoardSpaceFlagGet(0, space); + if (temp_r3 & 0xC000) { if ((BoardPlayerSizeGet(cur_player_index) == 2) || ((u8) (( GWPlayer[cur_player_index].bowser_suit)))) { return 0; @@ -265,18 +284,21 @@ s32 fn_1_910(void) { return fn_1_309C(); } + if (temp_r3 & 0x200) { if ((BoardPlayerSizeGet(cur_player_index) == 2) || ((u8) ((GWPlayer[cur_player_index].bowser_suit)) != 0)) { return 0; } return fn_1_675C(); } + return 0; } s32 fn_1_A74(void) { s16 space = GWPlayer[GWSystem.player_curr].space_curr; u32 var = BoardSpaceFlagGet(0, space) & 0x600000; + if (var + -0x200000 == 0) { fn_1_7BA8(); return; @@ -311,8 +333,10 @@ void fn_1_B5C(s32 arg0) { var_f28 = lbl_1_data_1EC.unk_04; fn_1_63F4(1); } + BoardModelMotionStart(lbl_1_bss_C[0], 0, 0); BoardModelMotionTimeSet(lbl_1_bss_C[0], var_f30); + while (1) { temp = BoardModelMotionTimeGet(lbl_1_bss_C[0]); if (temp >= var_f29) { @@ -320,6 +344,7 @@ void fn_1_B5C(s32 arg0) { } HuPrcVSleep(); } + BoardModelAttrSet(lbl_1_bss_C[0], 0x40000001); BoardModelMotionTimeSet(lbl_1_bss_C[0], var_f31); BoardModelMotionStartEndSet(lbl_1_bss_C[0], var_f31, var_f28); @@ -367,7 +392,8 @@ void fn_1_DEC(void) { BoardCameraPosGet(&sp20); BoardCameraDirGet(&sp14); HuAudFXListnerSetEX(&sp20, &sp14, 4800.0f, 36000.0f, 0.0f, 1200.0f, 1200.0f); - for (i = 0; i < 4; i++) { + + for (i = 0; i < ARRAY_COUNT(lbl_1_data_22C); i++) { sp8.x = lbl_1_data_22C[i].x - 3600.0f; sp8.y = lbl_1_data_22C[i].y; sp8.z = lbl_1_data_22C[i].z - 3600.0f; @@ -410,6 +436,7 @@ void fn_1_10E4(omObjData* arg0) { w03UnkStruct2* temp_r29; temp_r29 = OM_GET_WORK_PTR(arg0, w03UnkStruct2); + if (temp_r29->unk0 != 0 || (BoardIsKill() != 0)) { for (i = 0; i < ARRAY_COUNT(lbl_1_data_21C); i++) { if (lbl_1_data_21C[i] != -1) { @@ -421,6 +448,7 @@ void fn_1_10E4(omObjData* arg0) { omDelObjEx(HuPrcCurrentGet(), arg0); return; } + BoardCameraDirGet(&sp8); BoardCameraTargetGet(&sp14); @@ -433,6 +461,7 @@ void fn_1_10E4(omObjData* arg0) { } sp14.y += 2000.0f; + if (_CheckFlag(0x10010) == 0) { if (lbl_1_bss_8 == 0) { HuAudFXPauseAll(1); @@ -442,5 +471,6 @@ void fn_1_10E4(omObjData* arg0) { HuAudFXPauseAll(0); lbl_1_bss_8 = 0; } + HuAudFXListnerUpdate(&sp14, &sp8); } \ No newline at end of file diff --git a/src/REL/w03Dll/mg_coin.c b/src/REL/w03Dll/mg_coin.c index b06fc7e1..e9238dc7 100644 --- a/src/REL/w03Dll/mg_coin.c +++ b/src/REL/w03Dll/mg_coin.c @@ -6,10 +6,11 @@ #include "game/board/model.h" #include "game/board/player.h" #include "game/board/space.h" +#include "game/minigame_seq.h" +#include "game/hsfdraw.h" +#include "game/pad.h" -extern u16 HuPadBtnDown[4]; -extern s16 lbl_1_bss_C[14]; - +//structs typedef struct someBits3 { //make sure this is defined correctly /* 0x00 */ struct { u8 unk00_bit0 : 1; @@ -63,21 +64,13 @@ void fn_1_9474(s32 arg0); void fn_1_97F8(s32 arg0); void fn_1_9A1C(unkTemp2* arg0); -double sin(double x); -double cos(double x); -double atan2(double y, double x); -extern s16 MGSeqCreate(s32, ...); -u8 MGSeqStatGet(s16); -void Hu3DModelObjPosGet(s16 arg0, char *arg1, Vec *arg2); - -//DATA +//data s32 lbl_1_data_450 = -1; s16 lbl_1_data_454 = -1; s16 lbl_1_data_456 = -1; s16 lbl_1_data_458 = -1; s32 lbl_1_data_45C[] = {0x00770021, 0x00770022, -1}; - //BSS char lbl_1_bss_150[0x30]; s16 lbl_1_bss_14E; @@ -86,7 +79,6 @@ omObjData* lbl_1_bss_148; omObjData* lbl_1_bss_144; Process* lbl_1_bss_140; - void fn_1_7ABC(void) { lbl_1_data_456 = BoardModelCreate(0x770020, lbl_1_data_45C, 0); BoardModelHookSet(lbl_1_bss_C[7], "phei", lbl_1_data_456); @@ -146,25 +138,31 @@ s32 fn_1_7D18(s32 arg0) { f32 arctan; BoardWinCreateChoice(2, 0x160015, 2, 0); + if (GWPlayer[arg0].com != 0) { BoardComKeySetLeft(); } + BoardWinWait(); BoardWinKill(); + if (BoardWinChoiceGet() != 0) { BoardWinCreate(2, 0x160018, 2); BoardWinWait(); BoardWinKill(); return 0; } + BoardAudSeqPause(0, 1, 1000); + sp14.x = 0.0f; sp14.y = 200.0f; sp14.z = 0.0f; sp8.x = -10.0f; sp8.y = 0.0f; sp8.z = 0.0f; - BoardCameraMotionStartEx(lbl_1_bss_C[7], &sp8, &sp14, 1500.0f, -1.0f, 0x15); + + BoardCameraMotionStartEx(lbl_1_bss_C[7], &sp8, &sp14, 1500.0f, -1.0f, 21); space = GWPlayer[arg0].space_curr; temp_r28 = BoardSpaceLinkFlagSearch(0, space, 0x02000000); BoardPlayerPosGet(arg0, &sp2C); @@ -175,15 +173,19 @@ s32 fn_1_7D18(s32 arg0) { HuPrcSleep(0x1E); model = BoardModelIDGet(lbl_1_bss_C[7]); Hu3DModelObjPosGet(model, "phei", &sp38); + if (GWPlayer[arg0].character == 5) { var_f31 = 54.000004f; } else { var_f31 = 39.0f; } + sp38.x = sp38.x + (var_f31 * sin((M_PI * (180.0f + BoardModelRotYGet(lbl_1_data_456))) / 180.0)); sp38.z = sp38.z + (var_f31 * cos((M_PI * (180.0f + BoardModelRotYGet(lbl_1_data_456))) / 180.0)); + BoardPlayerPosGet(arg0, &sp2C); BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 0x14); + while (GWPlayer[arg0].moving != 0) { BoardModelPosGet(lbl_1_bss_C[10], &sp2C); BoardPlayerPosGet(arg0, &sp38); @@ -192,10 +194,13 @@ s32 fn_1_7D18(s32 arg0) { BoardModelRotYSet(lbl_1_bss_C[10], arctan); HuPrcVSleep(); } + BoardPlayerMotBlendSet(arg0, -0x2D, 7); + while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } + return 1; } @@ -205,14 +210,18 @@ void fn_1_8140(s32 arg0) { fn_1_81E0(arg0); BoardMusStart(1, 0x16, 0x7F, 0); temp_r31 = MGSeqCreate(3, 0); + while (MGSeqStatGet(temp_r31)) { HuPrcVSleep(); } + fn_1_9384(); fn_1_84A8(0); + while (lbl_1_bss_144) { HuPrcVSleep(); } + fn_1_91B8(); } @@ -325,10 +334,12 @@ void fn_1_8530(omObjData* arg0) { omDelObjEx(HuPrcCurrentGet(), arg0); return; } + if (temp_r31->unk1 != 0) { temp_r31->unk1--; return; } + switch (temp_r31->unk00_bit1) { case 0: fn_1_8698(arg0, temp_r31); @@ -364,13 +375,15 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { arg1->unk_04 = -1; arg1->unk00_bit1 = 1; temp = BoardModelMotionTimeGet(lbl_1_bss_C[7]); + if (temp == 0.0f) { temp = 1.0f; } + if (lbl_1_bss_14E > 30) { lbl_1_bss_14E = 30; } - //temp2 = + OSu16tof32((u16*)&lbl_1_bss_14E, &arg0->rot.x); //?? BoardModelAttrReset(lbl_1_data_456, 0x40000002); BoardModelAttrReset(lbl_1_bss_C[7], 0x40000002); @@ -387,9 +400,10 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { arg0->rot.y = 16.666666f * arg0->rot.x; arg0->scale.x = BoardModelMotionMaxTimeGet(lbl_1_bss_C[7]); HuWinDispOff(lbl_1_data_454); - BoardCameraMotionStartEx(-1, 0, 0, 1900.0f, -1.0f, 0x15); + BoardCameraMotionStartEx(-1, NULL, NULL, 1900.0f, -1.0f, 21); return; } + MGSeqParamSet(arg1->unk_04, 1, arg1->unk2); arg1->unk3 = 60; } @@ -397,8 +411,10 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { var_r26 = GWPlayer[arg1->unk00_bit5].port; var_r28 = 0; + if ((GWPlayer[arg1->unk00_bit5].com) != 0) { temp_r27 = BoardRandMod(100); + switch (GWPlayer[arg1->unk00_bit5].diff) { case 0: if (temp_r27 < 12) { @@ -422,6 +438,7 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { } else { var_r28 = HuPadBtnDown[var_r26] & 0x100; } + if ((var_r28 & 0x100)) { arg0->trans.y += 0.5f; if (arg0->trans.y > 2.0f) { @@ -444,19 +461,22 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { } } } + if ((lbl_1_data_450 != -1) && (HuAudFXStatusGet(lbl_1_data_450) == 0)) { lbl_1_data_450 = -1; } + arg0->trans.x += arg0->trans.y; + if (arg0->trans.x > 3.0f) { arg0->trans.x = 3.0f; } + BoardPlayerMotionSpeedSet(arg1->unk00_bit5, arg0->trans.x); BoardModelMotionSpeedSet(lbl_1_data_456, arg0->trans.x); } s8 lbl_1_data_4B0 = -1; - s32 lbl_1_data_4B4[] = { 0x00000440, 0x00000441, @@ -465,7 +485,6 @@ s32 lbl_1_data_4B4[] = { 0x00000444 }; - void fn_1_8C08(omObjData* arg0, someBits3* arg1) { Point3d spC; f32 temp_f31; @@ -474,6 +493,7 @@ void fn_1_8C08(omObjData* arg0, someBits3* arg1) { BoardModelPosGet(lbl_1_data_456, &spC); spC.y += 1.6666666f; + if (spC.y >= (arg0->trans.z + arg0->rot.y)) { spC.y = arg0->trans.z + arg0->rot.y; BoardModelMotionSpeedSet(lbl_1_bss_C[10], 0.0f); @@ -484,14 +504,17 @@ void fn_1_8C08(omObjData* arg0, someBits3* arg1) { arg1->unk1 = 0x3C; arg1->unk2 = 0; } + BoardModelPosSetV(lbl_1_data_456, &spC); temp_f30 = arg0->scale.x * ((spC.y - arg0->trans.z) / 500.0f); OSf32tos8(&temp_f30, &temp_r27); temp_r27 = temp_r27 / 30; + if (lbl_1_data_4B0 != temp_r27) { lbl_1_data_4B0 = temp_r27; HuAudFXPlay(lbl_1_data_4B4[temp_r27]); } + BoardModelMotionTimeSet(lbl_1_bss_C[7], temp_f30); BoardModelMotionTimeSet(lbl_1_bss_C[10], 0.2f * temp_f30); BoardPlayerMotionTimeSet(arg1->unk00_bit5, 2.0f * temp_f30); @@ -511,9 +534,12 @@ void fn_1_8E44(omObjData* arg0, someBits3* arg1) { } BoardAudSeqFadeOut(1, 0x3E8); } + OSu8tof32(&arg1->unk2, &temp_f31); BoardModelPosGet(lbl_1_data_456, &sp8); + sp8.y = (sp8.y + (-0.08166666666666668 * temp_f31 * temp_f31)); + if (sp8.y < arg0->trans.z) { sp8.y = arg0->trans.z; arg1->unk00_bit1 = 3; @@ -527,6 +553,7 @@ void fn_1_8E44(omObjData* arg0, someBits3* arg1) { HuAudFXPlay(0x449); BoardAudSeqPause(0, 0, 0x3E8); } + arg1->unk2 += 1; BoardModelPosSetV(lbl_1_data_456, &sp8); } @@ -536,6 +563,7 @@ void fn_1_9044(omObjData* arg0, someBits3* arg1) { BoardModelRotGet(lbl_1_data_456, &sp8); arg0->trans.y = BoardDAngleCalc(arg0->trans.y + arg0->trans.z); + if (arg0->trans.y <= 2.0f) { if (arg0->trans.y >= -2.0) { arg0->trans.x *= 0.5f; @@ -547,6 +575,7 @@ void fn_1_9044(omObjData* arg0, someBits3* arg1) { } } } + sp8.z = arg0->trans.x * sin((M_PI * arg0->trans.y) / 180.0); BoardModelRotSetV(lbl_1_data_456, &sp8); } @@ -559,6 +588,7 @@ void fn_1_91B8(void) { if (lbl_1_bss_14E == 0) { lbl_1_bss_14E = 1; } + temp_r3 = lbl_1_bss_14E / 6; lbl_1_bss_14C = lbl_1_data_4C8[temp_r3]; } @@ -576,6 +606,7 @@ void fn_1_9230(s32 arg0) { BoardCameraTargetPlayerSet(arg0); BoardCameraViewSet(1); BoardPlayerPosLerpStart(arg0, &sp20, &sp14, 0x14); + while (GWPlayer[arg0].moving != 0) { BoardModelPosGet(lbl_1_bss_C[10], &sp20); BoardPlayerPosGet(arg0, &sp14); @@ -584,6 +615,7 @@ void fn_1_9230(s32 arg0) { BoardModelRotYSet(lbl_1_bss_C[10], rotY); HuPrcVSleep(); } + BoardModelRotYSet(lbl_1_bss_C[10], 0.0f); BoardCameraMotionWait(); } @@ -608,18 +640,24 @@ void fn_1_9474(s32 arg0) { BoardWinWait(); BoardWinKill(); BoardPlayerMotBlendSet(arg0, 0, 0xF); + while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } + fn_1_97F8(arg0); + while (lbl_1_bss_148) { HuPrcVSleep(); } + BoardPlayerMotionShiftSet(arg0, 7, 0.0f, 8.0f, 0U); HuPrcSleep(8); + while (BoardPlayerMotionEndCheck(arg0) == 0) { HuPrcVSleep(); } + BoardWinCreate(2, 0x160018U, 2); BoardWinWait(); BoardWinKill(); @@ -638,6 +676,7 @@ void fn_1_95B8(omObjData* arg0) { s32 temp; temp_r29 = OM_GET_WORK_PTR(arg0, unkTemp2); + if ((temp_r29->unk00_bit0 != 0) || (BoardIsKill() != 0)) { fn_1_9A1C(temp_r29); HuMemDirectFree((void*)temp_r29->unk_0C); @@ -645,6 +684,7 @@ void fn_1_95B8(omObjData* arg0) { omDelObjEx(HuPrcCurrentGet(), arg0); return; } + var_r30 = temp_r29->unk_0C; for (var_r27 = i = 0; i < 20; i++, var_r30++) { @@ -657,6 +697,7 @@ void fn_1_95B8(omObjData* arg0) { temp_r29->unk00_bit0 = 1; return; } + var_r25 = 0; for (i = 0; i < 20; i++) { var_r30 = &temp_r29->unk_0C[i]; @@ -704,6 +745,7 @@ void fn_1_97F8(s32 arg0) { BoardPlayerPosGet(arg0, &sp8); temp_r30->unk8 = (80.0f + sp8.y); memset(temp_r30->unk_0C, 0, 0x190); + for (i = 0; i < lbl_1_bss_14C; i++) { if (i == 0) { var_f31 = 0.0f; @@ -730,5 +772,3 @@ void fn_1_9A1C(unkTemp2* arg0) { BoardModelKill(temp->unk_02); } } - -char mg_pad[] = "\0\0\0\0\0\0"; \ No newline at end of file diff --git a/src/REL/w03Dll/mg_item.c b/src/REL/w03Dll/mg_item.c index b48ff37c..ea7c19b3 100644 --- a/src/REL/w03Dll/mg_item.c +++ b/src/REL/w03Dll/mg_item.c @@ -9,14 +9,15 @@ #include "game/board/space.h" #include "game/object.h" #include "game/objsub.h" +#include "game/sprite.h" #include "game/board/player.h" #include "math.h" #include "game/hsfman.h" #include "dolphin/os/OSFastCast.h" - -double sin(double x); -double cos(double x); -double atan2(double y, double x); +#include "game/minigame_seq.h" +#include "game/hsfdraw.h" +#include "game/hsfmotion.h" +#include "game/pad.h" typedef struct someBits { /* 0x00 */ struct { @@ -56,19 +57,11 @@ typedef struct w03UnkMG { } w03UnkMG; //external symbols -extern Process *boardMainProc; -extern s16 lbl_1_bss_C[14]; -extern Process *boardObjMan; + extern u16 HuPadBtnDown[4]; //function signatures s32 BoardVecDAngleCalcRange(float *value, float min, float range); -void BoardCameraQuakeSet(s32 duration, float strength); -s16 MGSeqCreate(s32, ...); -u8 MGSeqStatGet(s16); -s32 BoardVecMinDistCheck(Vec *vec1, Vec *vec2, float min_dist); -void Hu3DModelObjPosGet(s16 arg0, char *arg1, Vec *arg2); -s16 Hu3DMotionShiftIDGet(s16 arg0); s32 frand(void); void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix); @@ -102,7 +95,7 @@ s32 fn_1_9CF4(s32 arg0); void fn_1_9F78(void); void fn_1_9FE4(void); -//DATA +//data s16 lbl_1_data_4D8 = -1; s16 lbl_1_data_4DA = -1; s16 lbl_1_data_4DC = -1; @@ -151,37 +144,46 @@ void fn_1_9AA0(void) { BoardDiceDigit2DShowSet(0); lbl_1_bss_180 = HuPrcChildCreate(fn_1_9C8C, 0x2003, 0x2000, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_180, fn_1_9B30); + while (lbl_1_bss_180 != 0) { HuPrcVSleep(); } + BoardDiceDigit2DShowSet(1); } void fn_1_9B30(void) { fn_1_BDAC(); + if (lbl_1_bss_188) { lbl_1_bss_188; } + if (lbl_1_bss_184) { OM_GET_WORK_PTR(lbl_1_bss_184, someBits2)->unk00_bit0 = 1; } + if (lbl_1_data_4E0 != -1) { HuAudFXStop(lbl_1_data_4E0); lbl_1_data_4E0 = -1; } + if (lbl_1_data_4DC != -1) { BoardModelMotionKill(lbl_1_bss_C[11], lbl_1_data_4DC); lbl_1_data_4DC = -1; } + if (lbl_1_data_4DA != -1) { BoardModelMotionKill(lbl_1_bss_C[11], lbl_1_data_4DA); lbl_1_data_4DA = -1; } + if (lbl_1_data_4D8 != -1) { HuWinKill(lbl_1_data_4D8); lbl_1_data_4D8 = -1; } - lbl_1_bss_180 = 0U; + + lbl_1_bss_180 = 0; } void fn_1_9C8C(void) { @@ -189,10 +191,12 @@ void fn_1_9C8C(void) { temp_r31 = GWSystem.player_curr; lbl_1_data_4E0 = -1; + if (fn_1_9CF4(temp_r31) != 0) { fn_1_A44C(temp_r31); fn_1_A5E0(temp_r31); } + HuPrcEnd(); } @@ -211,36 +215,45 @@ s32 fn_1_9CF4(s32 arg0) { BoardWinKill(); return 0; } + BoardWinCreateChoice(2, 0x16001A, 2, 0); + if (GWPlayer[arg0].com != 0) { BoardComKeySetLeft(); } + BoardWinWait(); + if (BoardWinChoiceGet() != 0) { BoardWinCreate(2, 0x16001B, 2); BoardWinWait(); BoardWinKill(); return 0; } + BoardWinKill(); + sp14.x = 0.0f; sp14.y = 200.0f; sp14.z = 0.0f; sp8.x = -10.0f; sp8.y = 0.0f; sp8.z = 0.0f; - BoardCameraMotionStartEx(lbl_1_bss_C[8], &sp8, &sp14, 1500.0f, -1.0f, 0x15); + + BoardCameraMotionStartEx(lbl_1_bss_C[8], &sp8, &sp14, 1500.0f, -1.0f, 21); spaceCur = GWPlayer[arg0].space_curr; temp_r29 = BoardSpaceLinkFlagSearch(0, spaceCur, 0x02000000); BoardPlayerPosGet(arg0, &sp2C); BoardSpacePosGet(0, temp_r29, &sp38); PSVECSubtract(&sp38, &sp2C, &sp20); PSVECNormalize(&sp20, &sp20); - BoardPlayerRotYSet(arg0, (f32) (180.0 * (atan2(-sp20.x, -sp20.z) / 3.141592653589793))); + BoardPlayerRotYSet(arg0, (f32) (180.0 * (atan2(-sp20.x, -sp20.z) / M_PI))); BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 0x14); + while (GWPlayer[arg0].moving != 0) { HuPrcVSleep(); } + BoardPlayerIdleSet(arg0); HuPrcSleep(0x3C); fn_1_B0A4(arg0); @@ -269,26 +282,31 @@ void fn_1_9FE4(void) { sp18.z = (-907.7000122070313 + 200.0 * cos(0.0)); sp18.y = sp24.y; PSVECSubtract(&sp18, &sp24, &spC); - temp_f30 = (atan2(spC.z, spC.x) / 3.141592653589793 * 180.0); + temp_f30 = (atan2(spC.z, spC.x) / M_PI * 180.0); sp8 = BoardModelRotYGet(lbl_1_bss_C[11]); BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DA, 0.0f, 10.0, 0x40000001); + while (BoardDAngleCalcRange(&sp8, temp_f30, 10.0) == 0) { BoardModelRotYSet(lbl_1_bss_C[11], sp8); HuPrcVSleep(); } + BoardModelRotYSet(lbl_1_bss_C[11], temp_f30); BoardModelMotionSpeedSet(lbl_1_bss_C[11], 2.0f); + spC.x /= 20.0f; spC.z /= 20.0f; spC.y = 0.0f; sp30 = sp24; var_f31 = 0.0f; + while (var_f31 < 20.0f) { PSVECAdd(&sp30, &spC, &sp30); BoardModelPosSetV(lbl_1_bss_C[11], &sp30); HuPrcVSleep(); var_f31 += 1.0f; } + BoardAudSeqPause(0, 1, 0x3E8); HuAudFXPlay(0x450); HuAudFXPlay(0x362); @@ -296,23 +314,28 @@ void fn_1_9FE4(void) { fn_1_B8E8(1); BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DC, 0.0f, 10.0, 0x40000005); PSVECSubtract(&sp24, &sp30, &spC); + spC.x /= 60.0f; spC.z /= 60.0f; spC.y = 0.0f; var_f31 = 0.0f; + while (var_f31 < 60.0f) { PSVECAdd(&sp30, &spC, &sp30); BoardModelPosSetV(lbl_1_bss_C[11], &sp30); HuPrcVSleep(); var_f31 += 1.0f; } + temp_f30 = 0.0f; sp8 = BoardModelRotYGet(lbl_1_bss_C[11]); BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DA, 0.0f, 10.0, 0x40000001); + while (BoardDAngleCalcRange(&sp8, temp_f30, 10.0) == 0) { BoardModelRotYSet(lbl_1_bss_C[11], sp8); HuPrcVSleep(); } + BoardModelMotionShiftSet(lbl_1_bss_C[11], 1, 0.0f, 10.0, 0x40000001); } @@ -323,34 +346,44 @@ void fn_1_A44C(s32 arg0) { BoardMusStart(1, 0x17, 0x7F, 0); temp_r30 = MGSeqCreate(3, 0); + while (MGSeqStatGet(temp_r30) != 0) { HuPrcVSleep(); } + fn_1_A7A0(arg0); fn_1_A6B0(); fn_1_ACD8(1); + while (fn_1_AE20() != 0) { HuPrcVSleep(); } + temp_r29 = fn_1_BBC4() + 0x80000; BoardWinCreate(2, 0x16001C, 2); BoardWinInsertMesSet(temp_r29, 0); BoardWinWait(); fn_1_B8E8(4); + while (fn_1_BB48() != 0) { HuPrcVSleep(); } + omVibrate(arg0, 0xC, 6, 6); BoardPlayerItemAdd(arg0, fn_1_BBC4()); fn_1_ACD8(3); temp_r28 = HuAudSStreamPlay(2); + while (HuAudSStreamStatGet(temp_r28) != 0) { HuPrcVSleep(); } - BoardAudSeqPause(0, 0, 0x3E8); + + BoardAudSeqPause(0, 0, 1000); + while (lbl_1_bss_188) { HuPrcVSleep(); } + HuPrcSleep(0x1E); BoardWinCreate(2, 0x16001D, 2); BoardWinWait(); @@ -367,7 +400,7 @@ void fn_1_A5E0(s32 arg0) { BoardSpacePosGet(0, spaceCur, &sp8); BoardCameraTargetPlayerSet(arg0); BoardCameraViewSet(1); - BoardPlayerPosLerpStart(arg0, &sp14, &sp8, 0x14); + BoardPlayerPosLerpStart(arg0, &sp14, &sp8, 20); while (GWPlayer[arg0].moving != 0) { HuPrcVSleep(); } @@ -385,7 +418,7 @@ void fn_1_A6B0(void) { lbl_1_data_4D8 = HuWinCreate(val1, val2, sp8[0], sp8[1], 0); HuWinBGTPLvlSet(lbl_1_data_4D8, 0.0f); HuWinMesSpeedSet(lbl_1_data_4D8, 0); - HuWinMesSet(lbl_1_data_4D8, 0x16001FU); + HuWinMesSet(lbl_1_data_4D8, 0x16001F); } void fn_1_A7A0(s32 arg0) { @@ -414,12 +447,15 @@ void fn_1_A8AC(s32 arg0) { BoardModelPosGet(lbl_1_bss_C[9], &sp8); BoardPlayerPosGet(arg0, &sp14); sp8.y = sp14.y; - BoardPlayerPosLerpStart(arg0, &sp14, &sp8, 0x14); + BoardPlayerPosLerpStart(arg0, &sp14, &sp8, 20); + while (GWPlayer[arg0].moving != 0) { HuPrcVSleep(); } + playerYRot = BoardPlayerRotYGet(arg0) + 180.0f; - BoardPlayerMotBlendSet(arg0, playerYRot, 0xF); + BoardPlayerMotBlendSet(arg0, playerYRot, 15); + while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } @@ -440,6 +476,7 @@ void fn_1_A994(omObjData* arg0) { omDelObjEx(HuPrcCurrentGet(), arg0); return; } + if (temp_r31->unk00_bit6 == 0) { if (temp_r31->unk2 != 0) { temp_r31->unk2--; @@ -453,6 +490,7 @@ void fn_1_A994(omObjData* arg0) { temp_r31->unk2 = 0x3CU; } } + switch (temp_r31->unk00_bit1) { case 1: fn_1_AB18(arg0, temp_r31); @@ -517,6 +555,7 @@ void fn_1_ACD8(s32 arg0) { temp_r31 = (someBits*)&lbl_1_bss_188->work[0]; temp_r31->unk00_bit1 = arg0; + switch (arg0) { case 0: BoardPlayerIdleSet(temp_r31->unk00_bit4); @@ -553,6 +592,7 @@ s32 fn_1_AE4C(s32 arg0, s8* arg1) { temp_r29 = lbl_1_data_4E6[arg1[0]]; temp_r28 = lbl_1_data_4E6[arg1[1]]; temp_r30 = lbl_1_data_4E6[arg1[2]]; + if (temp_r29 > temp_r28) { if (temp_r29 > temp_r30) { var_r31 = 0; @@ -568,6 +608,7 @@ s32 fn_1_AE4C(s32 arg0, s8* arg1) { } else { var_r31 = 0; } + return var_r31; } @@ -579,6 +620,7 @@ u32 fn_1_AF24(s32 arg0) { s8 temp_r0_2; spC = 0; + switch (GWPlayer[arg0].diff) { case 3: var_r30 = 0; @@ -637,7 +679,7 @@ void fn_1_B0A4(s32 arg0) { temp_r30->unk00_bit1 = 0; temp_r30->unk00_bit4 = arg0; - for (i = 0; i < 3;) { + for (i = 0; i < ARRAY_COUNT(spC);) { spC[i] = BoardRandMod(14); if ((spC[i] != 10) && (spC[i] != 13)) { for (j = 0; j < i; j++) { @@ -656,19 +698,22 @@ void fn_1_B0A4(s32 arg0) { fn_1_BBF8(); - for (i = 0; i < 3; i++) { + for (i = 0; i < ARRAY_COUNT(spC); i++) { temp_r29 = spC[i]; temp_r30->unk3[i] = temp_r29; temp_r30->unk_06[i] = BoardModelCreate(lbl_1_data_514[temp_r29], NULL, 0); BoardModelHookSet(lbl_1_bss_C[9], lbl_1_data_508[i], temp_r30->unk_06[i]); BoardModelMotionSpeedSet(temp_r30->unk_06[i], 0.0f); - if (temp_r29 == 0xB) { + + if (temp_r29 == 11) { BoardModelMotionStart(temp_r30->unk_06[i], 0, 0x40000001); } + if (temp_r29 == 5) { PSMTXTrans(sp18, 0.0f, -50.0f, 0.0f); BoardModelMtxSet(temp_r30->unk_06[i], &sp18); } + if ((temp_r29 == 6) || (temp_r29 == 7)) { PSMTXTrans(sp18, 0.0f, 0.0f, 8.0f); BoardModelMtxSet(temp_r30->unk_06[i], &sp18); @@ -681,6 +726,7 @@ void fn_1_B350(omObjData* arg0) { someBits2* temp_r31; temp_r31 = (someBits2*)&arg0->work[0]; + if ((temp_r31->unk00_bit0 != 0) || (BoardIsKill() != 0)) { BoardModelHookReset(lbl_1_bss_C[9]); for (i = 0; i < 3; i++) { @@ -779,7 +825,7 @@ void fn_1_B748(omObjData* arg0, someBits2* arg1) { BoardModelPosSetV(temp_r29, &sp8); BoardModelRotYSet(temp_r29, 8.0f + BoardModelRotYGet(temp_r29)); BoardModelScaleGet(temp_r29, &sp14); - sp14.x = sp14.y = sp14.z = cos(3.141592653589793 * temp_f0 / 180.0); + sp14.x = sp14.y = sp14.z = cos(M_PI * temp_f0 / 180.0); BoardModelScaleSetV(temp_r29, &sp14); arg1->unk1 += 4; return; @@ -802,6 +848,7 @@ void fn_1_B8E8(s32 arg0) { temp_r31 = (someBits2*)&lbl_1_bss_184->work[0]; temp_r31->unk00_bit1 = arg0; + switch (arg0) { case 1: temp_f31 = 0.31666666f; @@ -840,7 +887,7 @@ void fn_1_BB74(s8* arg0) { someBits2* bits = OM_GET_WORK_PTR(lbl_1_bss_184, someBits2); s32 i; - for (i = 0; i < 3; i++) { + for (i = 0; i < ARRAY_COUNT(bits->unk3); i++) { arg0[i] = bits->unk3[i]; } } @@ -861,7 +908,7 @@ void fn_1_BBF8(void) { void fn_1_BC7C(s16 arg0) { ParticleData* particle; - lbl_1_bss_190 = HuSprAnimRead(HuDataSelHeapReadNum(0x120000, 0x10000000, 2)); + lbl_1_bss_190 = HuSprAnimReadFile(0x120000); HuSprAnimLock(lbl_1_bss_190); lbl_1_data_4E4 = Hu3DParticleCreate(lbl_1_bss_190, 100); Hu3DParticleHookSet(lbl_1_data_4E4, fn_1_BE30); @@ -886,7 +933,6 @@ void fn_1_BDAC(void) { void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) { Point3d sp8; - f32 temp_f30; f32 temp_f29; f32 temp_f31; @@ -916,8 +962,8 @@ void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) { if (j != particle->unk_30) { temp_f30 = 360.0f * (0.003921569f * (frand() & 0xFF)); temp_f29 = temp_f31 * (20.0f + (60.0f * (0.003921569f * (frand() & 0xFF)))); - var_r31->unk34.x = (sp8.x + (temp_f29 * sin((3.141592653589793 * temp_f30) / 180.0))); - var_r31->unk34.z = (sp8.z + (temp_f29 * cos((3.141592653589793 * temp_f30) / 180.0))); + var_r31->unk34.x = (sp8.x + (temp_f29 * sin((M_PI * temp_f30) / 180.0))); + var_r31->unk34.z = (sp8.z + (temp_f29 * cos((M_PI * temp_f30) / 180.0))); var_r31->unk34.y = (sp8.y + (temp_f31 * (-30.0f + (40.0f * (0.003921569f * (frand() & 0xFF)))))); var_r31->unk08.x = (0.5f + (3.0f * (0.003921569f * (frand() & 0xFF)))); var_r31->unk08.y = (0.3f + (2.0f * (0.003921569f * (frand() & 0xFF)))); @@ -925,6 +971,7 @@ void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) { var_r31->unk2C = (15.0f * temp_f31); } } + var_r31 = particle->unk_48; for (i = 0; i < particle->unk_30; i++, var_r31++) { diff --git a/src/REL/w03Dll/river.c b/src/REL/w03Dll/river.c index 515f2ab6..577e1994 100644 --- a/src/REL/w03Dll/river.c +++ b/src/REL/w03Dll/river.c @@ -4,17 +4,9 @@ #include "game/board/main.h" #include "game/board/model.h" #include "game/board/player.h" +#include "game/hsfdraw.h" -double sin(double x); -double cos(double x); -double atan2(double y, double x); -s16 BoardModelIDGet(s16 model); -void Hu3DModelObjPosGet(s16 arg0, char *arg1, Vec *arg2); - - -extern s16 lbl_1_bss_C[14]; -extern s16 boardPlayerMdl[4]; - +//BSS char lbl_1_bss_130[8]; omObjData* lbl_1_bss_12C; s16 lbl_1_bss_128; @@ -40,7 +32,7 @@ typedef struct unkWorkStruct { f32 unk_04; } unkWorkStruct; -//DATA +//data s32 lbl_1_data_368[] = { 0x00000105, 0x00000145, 0x00000185, 0x000001C5, 0x00000205, 0x00000245, @@ -61,13 +53,15 @@ void fn_1_63F4(s32 arg0) { Vec spC; unkWorkStruct* work = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct); -work->unk_04 = 0.0f; + work->unk_04 = 0.0f; + BoardModelPosGet(lbl_1_data_388, &spC); if (arg0 != 0) { spC.y = -185.0f; } else { spC.y = 10.0f; } + BoardModelPosSetV(lbl_1_data_388, &spC); } @@ -82,11 +76,10 @@ void fn_1_6494(void) { BoardModelMotionStart(lbl_1_data_38A, 1, 0x40000001); BoardModelHookSet(lbl_1_data_38A, "itemhook_R", lbl_1_data_38C); BoardModelHookSet(lbl_1_data_388, "hei01", lbl_1_data_38A); - Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[0]), "ikada", &sp14); BoardSpaceFlagPosGet(0, 0x200, &sp8); - sp14.x = sp8.x + (400.0 * sin(-1.5707963267948966)); - sp14.z = sp8.z + (400.0 * cos(-1.5707963267948966)); + sp14.x = sp8.x + (400.0 * sin(-(M_PI / 2))); + sp14.z = sp8.z + (400.0 * cos(-(M_PI / 2))); BoardModelPosSetV(lbl_1_data_388, &sp14); lbl_1_bss_12C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void*)fn_1_767C); temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct); @@ -101,8 +94,8 @@ s32 fn_1_6698(void) { Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[0]), "ikada", &sp14); BoardSpaceFlagPosGet(0, 0x200, &sp8); - sp14.x = sp8.x + (400.0 * sin(-1.5707963267948966)); - sp14.z = sp8.z + (400.0 * cos(-1.5707963267948966)); + sp14.x = sp8.x + (400.0 * sin(-(M_PI / 2))); + sp14.z = sp8.z + (400.0 * cos(-(M_PI / 2))); BoardModelPosSetV(lbl_1_data_388, (Point3d* ) &sp14); return 1; } @@ -111,9 +104,11 @@ s16 fn_1_675C(void) { BoardDiceDigit2DShowSet(0); lbl_1_bss_120 = HuPrcChildCreate(fn_1_67F8, 0x2003, 0x2000, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_120, fn_1_6884); - while ((u32) lbl_1_bss_120 != 0U) { + + while (lbl_1_bss_120 != 0) { HuPrcVSleep(); } + BoardDiceDigit2DShowSet(1); return lbl_1_bss_128; } @@ -123,12 +118,14 @@ void fn_1_67F8(void) { temp_r31 = GWSystem.player_curr; lbl_1_bss_128 = 0; + if (fn_1_6898(temp_r31) != 0) { fn_1_6F9C(temp_r31); fn_1_6B98(temp_r31); fn_1_735C(temp_r31); lbl_1_bss_128 = 1; } + BoardCameraViewSet(1); BoardCameraMotionWait(); HuPrcEnd(); @@ -170,16 +167,19 @@ s32 fn_1_6898(s32 arg0) { Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), "hei01", &sp20); BoardPlayerPosGet(arg0, &sp14); PSVECSubtract(&sp20, &sp14, &sp8); - temp_f31 = 180.0 * (atan2(sp8.x, sp8.z) / 3.141592653589793); + temp_f31 = 180.0 * (atan2(sp8.x, sp8.z) / M_PI); BoardCameraTargetModelSet(lbl_1_data_388); - BoardPlayerMotBlendSet(arg0, temp_f31, 0xF); + BoardPlayerMotBlendSet(arg0, temp_f31, 15); + while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } + BoardCameraTargetModelSet(-1); BoardWinCreate(2, 0x160009, 2); BoardWinWait(); temp_r3 = BoardPlayerCoinsGet(arg0); + if (temp_r3 < 5) { BoardWinCreate(2, 0x16000A, 2); BoardWinWait(); @@ -187,7 +187,7 @@ s32 fn_1_6898(s32 arg0) { return 0; } - for (var_r27 = i = 0; i < 6; i++) { + for (var_r27 = i = 0; i < ARRAY_COUNT(lbl_1_data_3B8); i++) { temp = lbl_1_data_3B8[i].x; temp2 = lbl_1_data_3B8[i].y; if (temp_r3 >= temp) { @@ -197,17 +197,22 @@ s32 fn_1_6898(s32 arg0) { } } } + sprintf(lbl_1_bss_130, "%d", var_r27); + j = 0; while (j == 0) { BoardWinCreateChoice(2, 0x16000B, 2, 0); BoardWinInsertMesSet(lbl_1_bss_130, 2); BoardWinAttrSet(0x10); + if (GWPlayer[arg0].com != 0) { fn_1_77E4(arg0); } + BoardWinWait(); BoardWinKill(); + switch (BoardWinChoiceGet()) { case 0: j = 1; @@ -222,11 +227,13 @@ s32 fn_1_6898(s32 arg0) { BoardViewMapExec(arg0); } } + for (i = 0; i < var_r27; i++) { BoardPlayerCoinsAdd(arg0, -1); HuAudFXPlay(0xE); HuPrcSleep(6); } + HuAudFXPlay(0xF); BoardWinCreate(2, 0x0016000C, 2); BoardWinWait(); @@ -250,17 +257,20 @@ void fn_1_6B98(s32 arg0) { BoardModelMotionShiftSet(lbl_1_data_38A, 2, 0.0f, 10.0f, 0); sp8 = BoardModelRotYGet(lbl_1_data_38A); temp_f31 = sp8 + 180.0f; + while (BoardDAngleCalcRange(&sp8, temp_f31, 3.0f) == 0) { BoardModelRotYSet(lbl_1_data_38A, sp8); HuPrcVSleep(); } + while (BoardModelMotionEndCheck(lbl_1_data_38A) == 0) { HuPrcVSleep(); } + BoardModelPosGet(lbl_1_data_388, &sp24); BoardSpaceFlagPosGet(0, 0x100, &sp30); - sp18.x = sp30.x + (400.0 * sin(1.5707963267948966)); - sp18.z = sp30.z + (400.0 * cos(1.5707963267948966)); + sp18.x = sp30.x + (400.0 * sin(M_PI / 2)); + sp18.z = sp30.z + (400.0 * cos(M_PI / 2)); sp18.y = sp24.y; PSVECSubtract(&sp18, &sp24, &spC); spC.x = spC.x / 120.0f; @@ -269,17 +279,21 @@ void fn_1_6B98(s32 arg0) { BoardCameraTargetModelSet(lbl_1_data_388); BoardModelMotionShiftSet(lbl_1_data_38A, 3, 0.0f, 4.0f, 0x40000001U); HuPrcSleep(4); + var_r31 = 0; for (i = 0; i < 0x78U; i++) { PSVECAdd(&spC, &sp24, &sp24); temp_f1 = BoardModelMotionTimeGet(lbl_1_data_38A); + if ((temp_f1 >= 5.0f) && (temp_f1 < 15.0f) && ((s16) var_r31 == 0)) { HuAudFXPlay(0x451); var_r31 = 1; } + if ((BoardModelMotionTimeGet(lbl_1_data_38A) >= 21.0f) && ((s16) var_r31 != 0)) { var_r31 = 0; } + BoardModelPosSetV(lbl_1_data_388, &sp24); HuPrcVSleep(); } @@ -289,18 +303,21 @@ void fn_1_6B98(s32 arg0) { BoardModelMotionShiftSet(lbl_1_data_38A, 2, 0.0f, 10.0f, 0x40000004U); sp8 = BoardModelRotYGet(lbl_1_data_38A); temp_f31 = 0.0f; + while (BoardDAngleCalcRange(&sp8, temp_f31, 3.0f) == 0) { BoardModelRotYSet(lbl_1_data_38A, sp8); HuPrcVSleep(); } + while (BoardModelMotionEndCheck(lbl_1_data_38A) == 0) { HuPrcVSleep(); } + BoardModelMotionShiftSet(lbl_1_data_38A, 1, 0.0f, 10.0f, 0x40000001U); } extern s32 lbl_1_data_368[]; -extern w03State* lbl_1_bss_0; +// extern w03State* lbl_1_bss_0; void fn_1_6F9C(s32 arg0) { Vec sp20; @@ -316,9 +333,11 @@ void fn_1_6F9C(s32 arg0) { BoardPlayerPosGet(arg0, &sp14); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), "chara01", &sp20); PSVECSubtract(&sp20, &sp14, &sp8); + sp8.x /= 60.0f; sp8.z /= 60.0f; sp8.y = 0.0f; + if (lbl_1_bss_0->unk0 != 0) { var_f30 = 10.0f; var_f29 = 0.21f; @@ -327,16 +346,18 @@ void fn_1_6F9C(s32 arg0) { var_f30 = 0.0f; var_f29 = 0.15f; } + lbl_1_bss_124 = 1; HuAudFXPlay(lbl_1_data_368[GWPlayer[arg0].character]); - BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, 0U); + BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, 0); + for (var_r30 = 0, var_f31 = 0.0f; var_f31 < 60.0f; var_f31 += 1.0f) { PSVECAdd(&sp14, &sp8, &sp14); sp14.y += 10.0f + var_f30 + (var_f29 * (-0.08166667f * var_f31 * var_f31)); if (sp14.y <= sp20.y) { sp14.y = sp20.y; if (var_r30 == 0) { - BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, 0U); + BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, 0); var_r30 = 1; } } @@ -344,14 +365,16 @@ void fn_1_6F9C(s32 arg0) { HuPrcVSleep(); } - BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, 0U); + BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, 0); HuPrcSleep(10); BoardPlayerIdleSet(arg0); + if (GWPlayer[arg0].bowser_suit != 0) { BoardModelHookSet(lbl_1_data_388, "chara01", BoardPlayerModelGet(arg0)); } else { BoardModelHookSet(lbl_1_data_388, "chara01", BoardPlayerModelGet(arg0)); } + BoardPlayerPosSet(arg0, 0.0f, 0.0f, 0.0f); lbl_1_bss_124 = 0; } @@ -378,7 +401,7 @@ void fn_1_735C(s32 arg0) { sp8.y = 0.0f; HuAudFXPlay(lbl_1_data_368[GWPlayer[arg0].character]); - BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, 0U); + BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, 0); if (lbl_1_bss_0->unk0 != 0) { var_f30 = 0.25f; } else { @@ -391,7 +414,7 @@ void fn_1_735C(s32 arg0) { if (sp14.y <= sp20.y && var_f31 > 48.0f) { sp14.y = sp20.y; if (var_r30 == 0) { - BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, 0U); + BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, 0); var_r30 = 1; } } @@ -401,10 +424,12 @@ void fn_1_735C(s32 arg0) { BoardPlayerPosSetV(arg0, &sp20); HuPrcSleep(0xA); - BoardPlayerMotBlendSet(arg0, 0, 0xF); + BoardPlayerMotBlendSet(arg0, 0, 15); + while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } + BoardPlayerIdleSet(arg0); GWPlayer[arg0].space_curr = temp_r29; GWPlayer[arg0].space_prev = -1; @@ -421,18 +446,20 @@ void fn_1_767C(omObjData* arg0) { unkWorkStruct* temp_r31; temp_r31 = OM_GET_WORK_PTR(arg0, unkWorkStruct); + if ( (temp_r31->temp1 != 0) || (BoardIsKill() != 0)) { lbl_1_bss_12C = NULL; omDelObjEx(HuPrcCurrentGet(), arg0); return; } + if ((lbl_1_data_388 != -1) && (lbl_1_bss_124 == 0)) { temp_r31->unk_04 += 3.0f; if (temp_r31->unk_04 >= 360.0f) { temp_r31->unk_04 = (f32) (temp_r31->unk_04 - 360.0f); } BoardModelPosGet(lbl_1_data_388, &sp8); - sp8.y = (f32) ((f64) sp8.y + (0.25 * (2.0 * sin((3.141592653589793 * (f64) temp_r31->unk_04) / 180.0)))); + sp8.y = (f32) ((f64) sp8.y + (0.25 * (2.0 * sin((M_PI * (f64) temp_r31->unk_04) / 180.0)))); BoardModelPosSetV(lbl_1_data_388, &sp8); } } @@ -442,14 +469,15 @@ void fn_1_77E4(s32 arg0) { s32 var_r30 = 0; boardIndex = GWSystem.star_pos; + if ((boardIndex == 1) || (boardIndex == 2) || (boardIndex == 3) || (boardIndex == 4)) { var_r30 = 1; } + if (var_r30 != 0) { BoardComKeySetLeft(); return; } + BoardComKeySetRight(); } - -char padRiver[] = "\0\0\0\0"; diff --git a/src/REL/w03Dll/smoke.c b/src/REL/w03Dll/smoke.c index 530dd8c4..ae32fa76 100644 --- a/src/REL/w03Dll/smoke.c +++ b/src/REL/w03Dll/smoke.c @@ -30,16 +30,20 @@ void fn_1_785C(void) { lbl_1_bss_138[0] = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_79E0); temp_r31 = (w03UnkWorkStruct*)&lbl_1_bss_138[0]->work[0]; - for (i = 0; i < 5; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r31->unk_00); i++) { temp_r31->unk_00[i] = BoardModelCreate(0x770008, NULL, 0); temp_r29 = kemuri_strings[i]; + if (0.0f == temp_r31->unk_0C) { temp_r31->unk_0C = BoardModelMotionMaxTimeGet(temp_r31->unk_00[i]); } + var_f31 = temp_r31->unk_0C * BoardRandFloat(); + if (var_f31 < 1.0f) { var_f31 = 1.0f; } + BoardModelHookSet(lbl_1_data_1E0, temp_r29, temp_r31->unk_00[i]); BoardModelMotionStart(temp_r31->unk_00[i], 0, 0x40000001); BoardModelMotionTimeSet(temp_r31->unk_00[i], var_f31); @@ -63,14 +67,14 @@ void fn_1_79E0(omObjData* arg0) { omDelObjEx(HuPrcCurrentGet(), arg0); return; } + if (lbl_1_bss_0->unk3 != 0) { var_r29 = 0; } else { var_r29 = 1; } - for (i = 0; i < 5; i++) { + + for (i = 0; i < ARRAY_COUNT(temp_r30->unk_00); i++) { BoardModelVisibilitySet(temp_r30->unk_00[i], var_r29); } } - -char pad[4] = "\0\0\0\0"; \ No newline at end of file diff --git a/src/REL/w03Dll/statue.c b/src/REL/w03Dll/statue.c index 019f4844..a26deec9 100644 --- a/src/REL/w03Dll/statue.c +++ b/src/REL/w03Dll/statue.c @@ -28,7 +28,7 @@ void fn_1_2A40(void); void fn_1_2B44(void); double atan2(double y, double x); -//DATA +//data s16 lbl_1_data_280 = -1; s16 lbl_1_data_282 = -1; s16 lbl_1_data_284 = -1; @@ -36,9 +36,7 @@ s16 lbl_1_data_286 = -1; s32 lbl_1_data_288 = -1; //BSS Extern -extern w03State* lbl_1_bss_0; -extern Process *boardMainProc; -extern s16 lbl_1_bss_C[14]; + //BSS s8 lbl_1_bss_6F; @@ -62,6 +60,7 @@ void fn_1_12C8(void) { while (lbl_1_bss_28) { HuPrcVSleep(); } + BoardDiceDigit2DShowSet(1); } @@ -72,6 +71,7 @@ void fn_1_1358(void) { cur_player_index = GWSystem.player_curr; unkC = GWPlayer[cur_player_index].space_curr; lbl_1_bss_2C = 0; + if ((BoardSpaceFlagGet(0, GWPlayer[cur_player_index].space_curr) & 0x2000)) { lbl_1_bss_6E = 0; lbl_1_bss_6C = lbl_1_bss_C[3]; @@ -79,6 +79,7 @@ void fn_1_1358(void) { lbl_1_bss_6E = 1; lbl_1_bss_6C = lbl_1_bss_C[4]; } + if (fn_1_1650(cur_player_index) != 0) { if (fn_1_1D1C() != 0) { fn_1_1ED4(cur_player_index); @@ -98,6 +99,7 @@ void fn_1_1358(void) { fn_1_26E0(cur_player_index); BoardStatusShowSetAll(1); } + BoardPlayerPostTurnHookSet(cur_player_index, &fn_1_15E8); BoardWinKill(); HuPrcEnd(); @@ -105,24 +107,29 @@ void fn_1_1358(void) { void fn_1_152C(void) { BoardConfettiKill(); + if (lbl_1_data_282 != -1) { BoardPlayerMotionKill(GWSystem.player_curr, lbl_1_data_282); lbl_1_data_282 = -1; } + if (lbl_1_data_280 != -1) { BoardPlayerMotionKill(GWSystem.player_curr, lbl_1_data_280); lbl_1_data_280 = -1; } + fn_1_2AC0(); lbl_1_bss_28 = NULL; } s32 fn_1_15E8(void) { BoardModelVisibilitySet(lbl_1_bss_6C, 1); + if (lbl_1_data_284 != -1) { BoardModelKill(lbl_1_data_284); lbl_1_data_284 = -1; } + return 1; } @@ -148,7 +155,7 @@ s32 fn_1_1650(s32 arg0) { BoardSpacePosGet(0, temp2, &sp38); BoardPlayerPosGet(arg0, &sp2C); PSVECSubtract(&sp38, &sp2C, &sp20); - temp = (atan2(-sp20.x, -sp20.z) / 3.141592653589793) * 180.0f; + temp = (atan2(-sp20.x, -sp20.z) / M_PI) * 180.0f; BoardPlayerRotYSet(arg0, temp); sp14.x = 0.0f; sp14.y = 100.0f; @@ -156,7 +163,7 @@ s32 fn_1_1650(s32 arg0) { sp8.x = -20.0f; sp8.y = 0.0f; sp8.z = 0.0f; - BoardCameraMotionStartEx(lbl_1_bss_6C, &sp8, &sp14, 1360.0f, -1.0f, 0x15); + BoardCameraMotionStartEx(lbl_1_bss_6C, &sp8, &sp14, 1360.0f, -1.0f, 21); BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 0x28); while (GWPlayer[arg0].moving) { @@ -175,6 +182,7 @@ s32 fn_1_1650(s32 arg0) { BoardWinWait(); BoardWinCreateChoice(0, 0x160002, -1, 0); BoardWinAttrSet(0x10); + if (GWPlayer[arg0].com) { if (BoardRandMod(0x64) > 0x32U) { BoardComKeySetLeft(); @@ -182,6 +190,7 @@ s32 fn_1_1650(s32 arg0) { BoardComKeySetRight(); } } + BoardWinWait(); lbl_1_bss_6F = BoardWinChoiceGet(); BoardWinKill(); @@ -205,26 +214,26 @@ s32 fn_1_1650(s32 arg0) { return 1; } -s32 lbl_1_data_290[] = { //TODO: make sure this actually uses DATA_MAKE_NUM macro - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x62), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x62), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x62), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x62), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x62), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x62), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x62), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x62), +s32 lbl_1_data_290[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 98), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 98), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 98), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 98), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 98), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 98), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 98), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 98) }; -s32 lbl_1_data_2B0[] = { //TODO: make sure this actually uses DATA_MAKE_NUM macro - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x33), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x33), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x33), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x33), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x33), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x33), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x33), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x33), +s32 lbl_1_data_2B0[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 51), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 51), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 51), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 51), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 51), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 51), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 51), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 51) }; s32 lbl_1_data_2D0[] = { @@ -247,6 +256,7 @@ void fn_1_19DC(s32 arg0, s32 arg1) { f32 temp; temp_r30 = GWPlayer[arg0].character; + if (arg1 != 0) { lbl_1_data_282 = BoardPlayerMotionCreate(arg0, lbl_1_data_2B0[temp_r30]); lbl_1_bss_6A = 8; @@ -257,12 +267,15 @@ void fn_1_19DC(s32 arg0, s32 arg1) { lbl_1_bss_68 = 1; var_r29 = lbl_1_data_2D0[GWPlayer[arg0].character]; } + lbl_1_data_280 = BoardPlayerMotionCreate(arg0, lbl_1_data_290[temp_r30]); temp = (180.0f + BoardPlayerRotYGet(arg0)); - BoardPlayerMotBlendSet(arg0, temp, 0xF); + BoardPlayerMotBlendSet(arg0, temp, 15); + while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } + HuAudFXPlay(var_r29); BoardPlayerVoiceEnableSet(arg0, lbl_1_bss_6A, 0); BoardPlayerMotionShiftSet(arg0, lbl_1_bss_6A, 0.0f, 8.0f, 0); @@ -272,7 +285,8 @@ void fn_1_19DC(s32 arg0, s32 arg1) { HuPrcVSleep(); } - HuPrcSleep(0x3C); + + HuPrcSleep(60); if (arg1 != 0) { BoardPlayerMotionShiftSet(arg0, lbl_1_bss_68, 0.0f, 8.0f, 0); @@ -281,16 +295,20 @@ void fn_1_19DC(s32 arg0, s32 arg1) { HuPrcVSleep(); } } + BoardPlayerIdleSet(arg0); HuPrcSleep(0x14); temp = (180.0f + BoardPlayerRotYGet(arg0)); - BoardPlayerMotBlendSet(arg0, temp, 0xF); + BoardPlayerMotBlendSet(arg0, temp, 15); + while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } - BoardAudSeqPause(0, 1, 0x3E8); + + BoardAudSeqPause(0, 1, 1000); BoardPlayerMotionShiftSet(arg0, lbl_1_data_280, 0.0f, 10.0f, 0); - HuPrcSleep(0xB); + HuPrcSleep(11); + while (BoardPlayerMotionEndCheck(arg0) == 0) { HuPrcVSleep(); } @@ -323,16 +341,20 @@ s32 fn_1_1D1C(void) { BoardWinCreate(2, 0x160003, 2); BoardWinWait(); BoardWinKill(); + prevTurn = GWSystem.turn - 1; maxTurn = GWSystem.max_turn; var_r31 = prevTurn / (maxTurn / 3); + if (var_r31 >= 3) { var_r31 = 2; } + modRand = BoardRandMod(100); if (modRand < sp8[var_r31] ) { return 1; } + modRand2 = BoardRandMod(100 - sp8[var_r31]); if (modRand2 < sp14[var_r31][0]) { lbl_1_bss_2C = 3; @@ -341,6 +363,7 @@ s32 fn_1_1D1C(void) { } else { lbl_1_bss_2C = 1; } + return 0; } @@ -373,11 +396,13 @@ void fn_1_1ED4(s32 arg0) { while (BoardFilterFadePauseCheck() == 0) { HuPrcVSleep(); } + BoardPlayerIdleSet(arg0); while (BoardMusStatusGet(1) != 0) { HuPrcVSleep(); } + BoardAudSeqPause(0, 0, 1000); BoardWinCreate(2, 0x160004, 2); BoardWinWait(); @@ -401,10 +426,12 @@ void fn_1_20E0(s32 arg0) { BoardModelPosSetV(lbl_1_data_284, &spC); BoardFilterFadeOut(0x1E); sp8 = BoardModelRotYGet(lbl_1_bss_6C); + while (BoardDAngleCalcRange(&sp8, 0.0f, 30.0f) == 0) { BoardModelRotYSet(lbl_1_data_284, sp8); HuPrcVSleep(); } + omVibrate(arg0, 0xC, 4, 2); BoardModelRotYSet(lbl_1_data_284, 0.0f); BoardModelRotYSet(lbl_1_bss_6C, 0.0f); @@ -426,26 +453,30 @@ void fn_1_20E0(s32 arg0) { if (lbl_1_bss_30 > 128.0f) { lbl_1_bss_30 = 128.0f; } - HuPrcSleep(0x28); + + HuPrcSleep(40); lbl_1_bss_30 = 128.0f; while (lbl_1_bss_30 > 0.0f) { HuPrcVSleep(); lbl_1_bss_30 -= 12.0f; } + if (lbl_1_bss_30 < 0.0f) { lbl_1_bss_30 = 0.0f; } + fn_1_2AC0(); for (i = 0; i < 3; i++) { - BoardCameraMotionStartEx(-1, NULL, 0, 680.0f, -1.0f, 0xD); + BoardCameraMotionStartEx(-1, NULL, NULL, 680.0f, -1.0f, 13); BoardCameraMotionWait(); - BoardCameraMotionStartEx(-1, NULL, 0, 1360.0f, -1.0f, 0xD); + BoardCameraMotionStartEx(-1, NULL, NULL, 1360.0f, -1.0f, 13); BoardCameraMotionWait(); } BoardPlayerIdleSet(arg0); + while (BoardMusStatusGet(1) != 0) { HuPrcVSleep(); } @@ -465,7 +496,7 @@ void fn_1_20E0(s32 arg0) { sp18.x = -20.0f; sp18.y = 0.0f; sp18.z = 0.0f; - BoardCameraMotionStartEx(lbl_1_bss_C[1], &sp18, &sp24, 3000.0f, -1.0f, 0x3C); + BoardCameraMotionStartEx(lbl_1_bss_C[1], &sp18, &sp24, 3000.0f, -1.0f, 60); BoardCameraMotionWait(); omVibrate(arg0, 0x1E, 6, 6); HuPrcSleep(0x1E); @@ -476,6 +507,7 @@ void fn_1_20E0(s32 arg0) { } BoardCameraQuakeReset(); + if (lbl_1_data_288 != 0) { HuAudFXStop(lbl_1_data_288); lbl_1_data_288 = -1; @@ -492,7 +524,7 @@ void fn_1_20E0(s32 arg0) { sp18.x = -20.0f; sp18.y = 0.0f; sp18.z = 0.0f; - BoardCameraMotionStartEx(lbl_1_bss_6C, &sp18, &sp24, 1360.0f, -1.0f, 0x3C); + BoardCameraMotionStartEx(lbl_1_bss_6C, &sp18, &sp24, 1360.0f, -1.0f, 60); BoardCameraMotionWait(); HuPrcSleep(0x3C); } @@ -507,14 +539,16 @@ void fn_1_26E0(s32 arg0) { BoardPlayerPosGet(arg0, &sp14); PSVECSubtract(&sp20, &sp14, &sp8); PSVECNormalize(&sp8, &sp8); - temp = (180.0f * (atan2(-sp8.x, -sp8.z) / 3.141592653589793)); + temp = (180.0f * (atan2(-sp8.x, -sp8.z) / M_PI)); BoardPlayerRotYSet(arg0, temp); BoardCameraViewSet(1); BoardCameraTargetPlayerSet(arg0); BoardPlayerPosLerpStart(arg0, &sp14, &sp20, 0x28); + while (GWPlayer[arg0].moving != 0) { HuPrcVSleep(); } + BoardCameraMotionWait(); BoardModelMotionStart(lbl_1_bss_C[1], 0, 0); BoardPlayerIdleSet(arg0); @@ -526,8 +560,9 @@ void fn_1_2818(void) { s16 j; s16 sp8[3] = {0x0002, 0x003E, 0x007A}; - temp_r29 = (4 - lbl_1_bss_2C) * 0x3C; + temp_r29 = (4 - lbl_1_bss_2C) * 60; BoardModelMotionStart(lbl_1_bss_C[1], 0, 0); + while (1) { temp_r30 = BoardModelMotionTimeGet(lbl_1_bss_C[1]); if (temp_r29 > temp_r30) { @@ -548,6 +583,7 @@ void fn_1_2818(void) { s32 fn_1_2930(s32 arg0) { lbl_1_bss_0->unk0--; + if (lbl_1_bss_0->unk0 <= 0) { lbl_1_bss_0->unk2 = 0; lbl_1_bss_0->unk0 = 0; @@ -558,6 +594,7 @@ s32 fn_1_2930(s32 arg0) { fn_1_CF4(); return 1; } + sprintf(lbl_1_bss_38, "%d", lbl_1_bss_0->unk0); BoardWinCreate(0, 0x160007, -1); BoardWinInsertMesSet((s32)lbl_1_bss_38, 1); @@ -579,6 +616,7 @@ void fn_1_2AC0(void) { HuMemDirectFree(lbl_1_bss_34); lbl_1_bss_34 = NULL; } + if (lbl_1_data_286 != -1) { Hu3DModelKill(lbl_1_data_286); lbl_1_data_286 = -1; @@ -640,5 +678,3 @@ void fn_1_2B44(void) { GXPosition2f32(0.0f, 1.0f); GXSetChanMatColor(GX_COLOR0A0, sp1C); } - -f32 const padStatue = 0.0f; diff --git a/src/REL/w06Dll/main.c b/src/REL/w06Dll/main.c new file mode 100755 index 00000000..fd5e1d78 --- /dev/null +++ b/src/REL/w06Dll/main.c @@ -0,0 +1,325 @@ +#include "REL/w06Dll.h" +#include "REL/board_executor.h" +#include "game/audio.h" +#include "game/data.h" +#include "game/flag.h" +#include "game/hsfman.h" +#include "game/object.h" +#include "game/process.h" +#include "game/board/boo_house.h" +#include "game/board/lottery.h" +#include "game/board/main.h" +#include "game/board/map_object.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/shop.h" +#include "game/board/space.h" +#include "game/board/star.h" + +#include "dolphin.h" + +typedef struct { + struct { + u8 unk00_field0 : 1; + }; + s8 unk01[10]; +} Bss8Work; + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ Vec unk04; +} Data108Struct; // Size 0x10 + +static void fn_1_730(void); +static void fn_1_79C(void); +static s32 fn_1_7BC(void); +static s32 fn_1_900(void); +static s32 fn_1_984(void); +static void fn_1_9C0(void); +static void fn_1_B28(void); +static void fn_1_B5C(omObjData *arg0); + +s16 lbl_1_bss_C[MAPOBJ_MAX]; + +static BoardMapObject lbl_1_data_0[MAPOBJ_MAX] = { + { { 450.0f, 200.0f, -2950.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W06, 6) }, + { { -1650.0f, 0.0f, 2100.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W06, 8) }, + { { 2700.0f, 100.0f, -1950.0f }, { 0.0f, -89.999985f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W06, 5) }, + { { -3000.0f, 0.0f, 2550.0f }, { 0.0f, 89.999985f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W06, 5) }, + { { -1800.0f, 0.0f, 2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 33) }, + { { 300.0f, 200.0f, -2850.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 33) } +}; + +static omObjData *lbl_1_bss_8; +static s32 lbl_1_bss_4; +void *lbl_1_bss_0; + +static s16 lbl_1_data_F0 = -1; +static s16 lbl_1_data_F2 = -1; +static s16 lbl_1_data_F4 = -1; +static s16 lbl_1_data_F6 = -1; + +static s32 lbl_1_data_F8[] = { + DATA_MAKE_NUM(DATADIR_W06, 18), + -1 +}; + +static s32 lbl_1_data_100[] = { + DATA_MAKE_NUM(DATADIR_BGUEST, 34), + -1 +}; + +static Data108Struct lbl_1_data_108[] = { + 0x00000002, { -3359.9998f, 170.0f, -3559.9998f }, + 0x0000002A, { 3540.0002f, 170.0f, 1320.0f }, + 0x00000052, { -710.0f, 170.0f, -4580.0f }, + 0x0000007A, { -3670.0f, 170.0f, 1020.0f }, + 0x000000A2, { 1970.0001f, 170.0f, -3840.0002f }, + 0x000000CA, { -3160.0f, 170.0f, -3770.0f }, + 0x000000F2, { -3500.0f, 170.0f, -2340.0f }, + 0x0000011A, { -3700.0f, 170.0f, -810.00005f }, + 0x00000142, { 100.0f, 170.0f, -4100.0f }, + 0x0000016A, { 3290.0002f, 170.0f, -340.0f } +}; + +void BoardCreate(void) { + BoardMapObject *temp_r30; + s32 *var_r29; + s32 i; + + lbl_1_bss_0 = GWSystem.board_data; + BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W06, 0)); + lbl_1_data_F0 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W06, 1), NULL, 0); + fn_8006DDE8(lbl_1_data_F0, -1.0f); + BoardModelMotionStart(lbl_1_data_F0, 0, 0x40000001); + lbl_1_data_F2 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W06, 2), NULL, 0); + fn_8006DDE8(lbl_1_data_F2, -1.0f); + BoardModelPosSet(lbl_1_data_F2, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_F2, 0, 0x40000001); + lbl_1_data_F4 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W06, 17), lbl_1_data_F8, 0); + BoardModelPosSet(lbl_1_data_F4, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_F4, 1, 0x40000001); + lbl_1_data_F6 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 33), lbl_1_data_100, 0); + BoardModelPosSet(lbl_1_data_F6, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_F6, 1, 0x40000001); + for (i = 0; i < MAPOBJ_MAX; i++) { + temp_r30 = &lbl_1_data_0[i]; + if (temp_r30->data_num != -1) { + if (i == 4 || i == 5) { + var_r29 = lbl_1_data_100; + } else { + var_r29 = NULL; + } + lbl_1_bss_C[i] = BoardModelCreate(temp_r30->data_num, var_r29, 0); + BoardModelPosSetV(lbl_1_bss_C[i], &temp_r30->pos); + BoardModelRotSetV(lbl_1_bss_C[i], &temp_r30->rot); + BoardModelScaleSetV(lbl_1_bss_C[i], &temp_r30->scale); + BoardModelVisibilitySet(lbl_1_bss_C[i], 1); + } + } + BoardModelMotionStart(lbl_1_bss_C[4], 1, 0x40000001); + BoardModelMotionStart(lbl_1_bss_C[5], 1, 0x40000001); + BoardModelMotionStart(lbl_1_bss_C[2], 0, 0); + BoardModelMotionSpeedSet(lbl_1_bss_C[2], 0.0f); + BoardModelLayerSet(lbl_1_bss_C[2], 1); + BoardModelMotionStart(lbl_1_bss_C[3], 0, 0); + BoardModelMotionSpeedSet(lbl_1_bss_C[3], 0.0f); + BoardModelLayerSet(lbl_1_bss_C[3], 1); + fn_1_D70(); + fn_1_4878(); + fn_1_7BB0(); + fn_1_8F20(); + BoardLightHookSet(fn_1_730, fn_1_79C); + BoardSpaceWalkEventFuncSet(fn_1_7BC); + BoardSpaceWalkMiniEventFuncSet(fn_1_900); + BoardSpaceLandEventFuncSet(fn_1_984); + BoardStarHostSet(lbl_1_data_F4); + BoardBooHouseHostSet(lbl_1_data_F6); + BoardLotteryHostSet(lbl_1_data_F6); + BoardShopHostSet(lbl_1_data_F6); + BoardJunctionMaskSet(0x3000); + boardTurnFunc = fn_1_C2B4; + boardStarShowNextHook = fn_1_CD0C; + boardTurnStartFunc = fn_1_9294; + boardStarGiveHook = fn_1_CC90; + boardBowserHook = fn_1_C108; + fn_1_9C0(); +} + +void BoardDestroy(void) { + s32 i; + + fn_1_B28(); + boardTurnFunc + = (void*) boardStarShowNextHook + = (void*) boardTurnStartFunc + = (void*) boardStarGiveHook + = (void*) boardBowserHook = NULL; + fn_1_91D8(); + fn_1_7F3C(); + fn_1_F6C(); + fn_1_4A10(); + for (i = 0; i < MAPOBJ_MAX; i++) { + BoardModelKill(lbl_1_bss_C[i]); + lbl_1_bss_C[i] = -1; + } + if (lbl_1_data_F6 != -1) { + BoardModelKill(lbl_1_data_F6); + lbl_1_data_F6 = -1; + } + if (lbl_1_data_F4 != -1) { + BoardModelKill(lbl_1_data_F4); + lbl_1_data_F4 = -1; + } + if (lbl_1_data_F0 != -1) { + BoardModelKill(lbl_1_data_F0); + lbl_1_data_F0 = -1; + } + if (lbl_1_data_F2 != -1) { + BoardModelKill(lbl_1_data_F2); + lbl_1_data_F2 = -1; + } +} + +static void fn_1_730(void) { + s16 var_r31; + + var_r31 = BoardModelIDGet(lbl_1_data_F0); + Hu3DModelLightInfoSet(var_r31, 1); + Hu3DFogSet(4200.0f, 30000.0f, 0xF8, 0x30, 0); +} + +static void fn_1_79C(void) { + Hu3DFogClear(); +} + +static s32 fn_1_7BC(void) { + s32 sp10[] = { 0, 1 }; + s32 sp8[] = { 0x300, 0xC0 }; + BoardSpace *temp_r31; + s16 temp_r28; + s32 temp_r27; + s32 i; + s32 j; + + temp_r27 = GWSystem.player_curr; + temp_r28 = GWPlayer[temp_r27].space_curr; + if (fn_1_92D8(temp_r27, temp_r28) != 0) { + return 1; + } + for (i = 0; i < 2; i++) { + if (BoardSpaceLinkFlagSearch(0, temp_r28, sp8[i]) == -1) { + continue; + } + temp_r31 = BoardSpaceGet(0, temp_r28); + for (j = 0; j < temp_r31->link_cnt; j++) { + if ((BoardSpaceFlagGet(0, temp_r31->link[j]) & 0x04000000) == 0) { + fn_1_8264(sp10[i], temp_r31->link[j]); + return 1; + } + } + } + return 0; +} + +static s32 fn_1_900(void) { + s16 var_r30; + s32 temp_r31; + + var_r30 = GWPlayer[GWSystem.player_curr].space_curr; + temp_r31 = BoardSpaceFlagGet(0, var_r30) & 0x600000; + if (temp_r31 == 0x200000) { + fn_1_1054(); // TODO: return? + } else if (temp_r31 == 0x400000) { + fn_1_4A60(); // TODO: return? + } +} + +static s32 fn_1_984(void) { + if (BoardPlayerSizeGet(GWSystem.player_curr) != 2) { + fn_1_6EF0(); // TODO: return? + } +} + +static void fn_1_9C0(void) { + Vec sp14; + Vec sp8; + omObjData *temp_r3; + Bss8Work *temp_r30; + s32 i; + + temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_B5C); + lbl_1_bss_8 = temp_r3; + temp_r30 = OM_GET_WORK_PTR(temp_r3, Bss8Work); + temp_r30->unk00_field0 = 0; + BoardCameraPosGet(&sp14); + BoardCameraDirGet(&sp8); + HuAudFXListnerSetEX(&sp14, &sp8, 6600.0f, 36000.0f, 0.0f, 1650.0f, 1650.0f); + for (i = 0; i < 10; i++) { + temp_r30->unk01[i] = 0; + } + if (!_CheckFlag(FLAG_ID_MAKE(1, 16))) { + if (lbl_1_bss_4 == 0) { + HuAudFXPauseAll(1); + lbl_1_bss_4 = 1; + } + } else if (lbl_1_bss_4 != 0) { + HuAudFXPauseAll(0); + lbl_1_bss_4 = 0; + } +} + +static void fn_1_B28(void) { + if (lbl_1_bss_8) { + OM_GET_WORK_PTR(lbl_1_bss_8, Bss8Work)->unk00_field0 = 1; + } +} + +static void fn_1_B5C(omObjData *arg0) { + Bss8Work *temp_r30; + Vec sp14; + Vec sp8; + s16 temp_r28; + s16 var_r29; + s16 i; + + temp_r30 = OM_GET_WORK_PTR(arg0, Bss8Work); + if (temp_r30->unk00_field0 != 0 || BoardIsKill()) { + HuAudFXListnerKill(); + lbl_1_bss_8 = NULL; + omDelObjEx(HuPrcCurrentGet(), arg0); + return; + } + temp_r28 = BoardModelMotionTimeGet(lbl_1_data_F0); + BoardCameraDirGet(&sp8); + BoardCameraTargetGet(&sp14); + sp14.y += 2000.0f; + if (!_CheckFlag(FLAG_ID_MAKE(1, 16))) { + if (lbl_1_bss_4 == 0) { + HuAudFXPauseAll(1); + lbl_1_bss_4 = 1; + } + } else if (lbl_1_bss_4 != 0) { + HuAudFXPauseAll(0); + lbl_1_bss_4 = 0; + } + if (!_CheckFlag(FLAG_ID_MAKE(1, 28))) { + for (var_r29 = i = 0; i < 10; i++) { + if (temp_r30->unk01[i] != 0) { + var_r29++; + } else if (temp_r28 == lbl_1_data_108[i].unk00) { + HuAudFXEmiterPlay(0x4A1, &lbl_1_data_108[i].unk04); + temp_r30->unk01[i] = 1; + goto block_20; + } + } + if (var_r29 < 10) { + return; + } + for (i = 0; i < 10; i++) { + temp_r30->unk01[i] = 0; + } + } +block_20: + HuAudFXListnerUpdate(&sp14, &sp8); +} diff --git a/src/REL/w06Dll/mg_coin.c b/src/REL/w06Dll/mg_coin.c new file mode 100755 index 00000000..b7d0346f --- /dev/null +++ b/src/REL/w06Dll/mg_coin.c @@ -0,0 +1,757 @@ +#include "REL/w06Dll.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/window.h" +#include "game/board/audio.h" +#include "game/board/com.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/space.h" +#include "game/board/window.h" + +#include "dolphin.h" +#include "math.h" + +typedef struct { + struct { + u8 unk00_field0 : 1; + u8 unk00_field1 : 4; + u8 unk00_field2 : 1; + }; + u8 unk01; + u8 unk02; + char unk03[1]; + s16 unk04; +} Bss4CWork; + +typedef struct { + struct { + u8 unk00_field0 : 1; + u8 unk00_field1 : 2; + u8 unk00_field2 : 4; + }; + u8 unk01; + s16 unk02; + s16 unk04; +} Bss50Work; + +// Seems to be the same struct used in w03Dll/mg_coin (unkTemp) +typedef struct { + /* 0x00 */ s8 unk00; + /* 0x01 */ u8 unk01; + /* 0x02 */ s16 unk02; + /* 0x04 */ float unk04; + /* 0x08 */ Vec unk08; +} Bss54WorkData; // Size 0x14 + +// Seems to be the same struct used in w03Dll/mg_coin (unkTemp2) +typedef struct { + struct { + u8 unk00_field0 : 1; + }; + char unk01[3]; + s8 unk04; + char unk05[3]; + float unk08; + Bss54WorkData *unk0C; +} Bss54Work; + +static void fn_1_4B00(void); +static void fn_1_4BA0(void); +static s32 fn_1_4BF8(s32 arg0); +static void fn_1_4FB8(s32 arg0); +static void fn_1_519C(s32 arg0); +static void fn_1_53A0(void); +static void fn_1_5490(s32 arg0); +static void fn_1_56CC(omObjData *arg0); +static void fn_1_57DC(omObjData *arg0, Bss4CWork *arg1); +static void fn_1_587C(omObjData *arg0, Bss4CWork *arg1); +static void fn_1_58FC(omObjData *arg0, Bss4CWork *arg1); +static void fn_1_5968(Vec *arg0); +static void fn_1_59D0(s32 arg0); +static s32 fn_1_5B0C(void); +static void fn_1_5B54(s32 arg0); +static void fn_1_5CE4(s32 arg0); +static s32 fn_1_5EBC(void); +static void fn_1_5EFC(Vec *arg0); +static void fn_1_5F58(s32 arg0, u32 *arg1); +static void fn_1_606C(omObjData *arg0); +static void fn_1_6A0C(omObjData *arg0); +static void fn_1_6C4C(s32 arg0); +static void fn_1_6E90(Bss54Work *arg0); + +static s32 lbl_1_bss_8C; +static char lbl_1_bss_5B[49]; +static s8 lbl_1_bss_5A; +static s8 lbl_1_bss_59; +static s8 lbl_1_bss_58; +static omObjData *lbl_1_bss_54; +static omObjData *lbl_1_bss_50; +static omObjData *lbl_1_bss_4C; +static Process *lbl_1_bss_48; + +static const u8 lbl_1_rodata_F0[] = { + 20, 15, 10, 5, 1 +}; + +static const u8 lbl_1_rodata_F5[] = { + 10, 7, 5, 3, 0, 0, 0 +}; + +static s16 lbl_1_data_1D8 = -1; +static s16 lbl_1_data_1DA = -1; +static s16 lbl_1_data_1DC = -1; + +void fn_1_4878(void) { + Vec sp8; + float temp_f31; + + lbl_1_data_1DC = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W06, 7), NULL, 0); + temp_f31 = 0.3f; + BoardModelPosGet(lbl_1_bss_C[0], &sp8); + sp8.x += 115.0 * sin(M_PI); + sp8.z += 115.0 * cos(M_PI); + sp8.x -= 225.0f; + BoardModelPosSetV(lbl_1_data_1DC, &sp8); + BoardModelRotYSet(lbl_1_data_1DC, 90.0f); + BoardModelScaleSet(lbl_1_data_1DC, temp_f31, temp_f31, temp_f31); + BoardModelMotionStart(lbl_1_data_1DC, 0, 0); + BoardModelMotionSpeedSet(lbl_1_data_1DC, 0.0f); + BoardModelMotionStart(lbl_1_bss_C[0], 0, 0); + BoardModelMotionSpeedSet(lbl_1_bss_C[0], 0.0f); +} + +void fn_1_4A10(void) { + if (lbl_1_data_1DC != -1) { + BoardModelKill(lbl_1_data_1DC); + lbl_1_data_1DC = -1; + } +} + +void fn_1_4A60(void) { + lbl_1_bss_8C = 0; + BoardDiceDigit2DShowSet(0); + lbl_1_bss_48 = HuPrcChildCreate(fn_1_4BA0, 0x2003, 0x3800, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_48, fn_1_4B00); + while (lbl_1_bss_48) { + HuPrcVSleep(); + } + BoardDiceDigit2DShowSet(1); +} + +static void fn_1_4B00(void) { + if (lbl_1_data_1DA != -1) { + BoardModelMotionKill(lbl_1_bss_C[5], lbl_1_data_1DA); + lbl_1_data_1DA = -1; + } + if (lbl_1_data_1D8 != -1) { + HuWinKill(lbl_1_data_1D8); + lbl_1_data_1D8 = -1; + } + lbl_1_bss_48 = NULL; +} + +static void fn_1_4BA0(void) { + s32 temp_r31; + + temp_r31 = GWSystem.player_curr; + if (fn_1_4BF8(temp_r31) != 0) { + fn_1_4FB8(temp_r31); + } + fn_1_519C(temp_r31); + HuPrcEnd(); +} + +static s32 fn_1_4BF8(s32 arg0) { + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + + BoardWinCreateChoice(2, MAKE_MESSID(48, 26), 6, 0); + if (GWPlayer[arg0].com) { + BoardComKeySetLeft(); + } + BoardWinWait(); + if (BoardWinChoiceGet() != 0) { + BoardWinCreate(2, MAKE_MESSID(48, 27), 6); + BoardWinWait(); + BoardWinKill(); + lbl_1_bss_8C = 1; + return 0; + } + BoardWinKill(); + sp14.x = 0.0f; + sp14.y = 120.0f; + sp14.z = 0.0f; + sp8.x = -32.0f; + sp8.y = 0.0f; + sp8.z = 0.0f; + BoardCameraMotionStartEx(lbl_1_bss_C[0], &sp8, &sp14, 1330.0f, -1.0f, 21); + lbl_1_data_1DA = BoardModelMotionCreate(lbl_1_bss_C[5], DATA_MAKE_NUM(DATADIR_W06, 22)); + BoardCameraMotionWait(); + BoardPlayerPosGet(arg0, &sp2C); + BoardModelPosGet(lbl_1_bss_C[0], &sp38); + sp38.x += 115.0 * sin(M_PI); + sp38.z += 115.0 * cos(M_PI); + PSVECSubtract(&sp38, &sp2C, &sp20); + PSVECNormalize(&sp20, &sp20); + BoardPlayerRotYSet(arg0, 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI)); + BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 40); + BoardModelPosGet(lbl_1_bss_C[5], &sp2C); + BoardModelMotionShiftSet(lbl_1_bss_C[5], lbl_1_data_1DA, 0.0f, 8.0f, 0x40000001); + BoardModelMotionSpeedSet(lbl_1_bss_C[5], 2.0f); + while (GWPlayer[arg0].moving) { + BoardPlayerPosGet(arg0, &sp38); + PSVECSubtract(&sp38, &sp2C, &sp20); + BoardModelRotYSet(lbl_1_bss_C[5], 180.0 * (atan2(sp20.x, sp20.z) / M_PI)); + HuPrcVSleep(); + } + BoardModelMotionShiftSet(lbl_1_bss_C[5], 1, 0.0f, 8.0f, 0x40000001); + BoardPlayerIdleSet(arg0); + BoardPlayerRotYSet(arg0, -90.0f); + BoardAudSeqPause(0, 1, 1000); + HuPrcSleep(60); + return 1; +} + +static void fn_1_4FB8(s32 arg0) { + s16 temp_r30; + + BoardMusStart(1, 0x27, 0x7F, 0); + temp_r30 = MGSeqCreate(3, 0); + while (MGSeqStatGet(temp_r30) != 0) { + HuPrcVSleep(); + } + fn_1_53A0(); + fn_1_5490(arg0); + fn_1_5B54(arg0); + while (TRUE) { + if (fn_1_5EBC() == 4 && fn_1_5B0C() == 4) { + break; + } + HuPrcVSleep(); + } + HuWinDispOff(lbl_1_data_1D8); + BoardAudSeqFadeOut(1, 1000); + HuPrcSleep(30); + lbl_1_bss_58 = lbl_1_rodata_F0[lbl_1_bss_5A - 1]; + sprintf(lbl_1_bss_5B, "%d", lbl_1_bss_58); + BoardAudSeqPause(0, 0, 1000); + BoardWinCreate(2, MAKE_MESSID(48, 28), 6); + BoardWinInsertMesSet(MAKE_MESSID_PTR(lbl_1_bss_5B), 0); + BoardWinWait(); + BoardWinKill(); + fn_1_6C4C(arg0); + while (lbl_1_bss_54) { + HuPrcVSleep(); + } + BoardPlayerMotionShiftSet(arg0, 7, 0.0f, 8.0f, 0); + HuPrcSleep(8); + while (!BoardPlayerMotionEndCheck(arg0)) { + HuPrcVSleep(); + } + BoardWinCreate(2, MAKE_MESSID(48, 29), 6); + BoardWinWait(); + BoardWinKill(); +} + +static void fn_1_519C(s32 arg0) { + Vec sp20; + Vec sp14; + Vec sp8; + s16 temp_r30; + + if (lbl_1_bss_8C == 0) { + temp_r30 = GWPlayer[arg0].space_curr; + BoardPlayerPosGet(arg0, &sp20); + BoardSpacePosGet(0, temp_r30, &sp14); + } + BoardCameraTargetPlayerSet(arg0); + BoardCameraViewSet(1); + if (lbl_1_bss_8C == 0) { + BoardPlayerPosLerpStart(arg0, &sp20, &sp14, 40); + BoardModelPosGet(lbl_1_bss_C[5], &sp20); + BoardModelMotionShiftSet(lbl_1_bss_C[5], lbl_1_data_1DA, 0.0f, 8.0f, 0x40000001); + BoardModelMotionSpeedSet(lbl_1_bss_C[5], 2.0f); + while (GWPlayer[arg0].moving) { + BoardPlayerPosGet(arg0, &sp14); + PSVECSubtract(&sp14, &sp20, &sp8); + BoardModelRotYSet(lbl_1_bss_C[5], 180.0 * (atan2(sp8.x, sp8.z) / M_PI)); + HuPrcVSleep(); + } + BoardModelMotionShiftSet(lbl_1_bss_C[5], 1, 0.0f, 8.0f, 0x40000001); + } + BoardModelRotYSet(lbl_1_bss_C[5], 0.0f); + BoardCameraMotionWait(); + fn_1_59D0(5); + fn_1_5CE4(5); +} + +static void fn_1_53A0(void) { + float sp8[2]; + float var_f31; + float var_f30; + + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(48, 30)); + var_f31 = -10000.0f; + var_f30 = 328.0f; + lbl_1_data_1D8 = HuWinCreate(var_f31, var_f30, sp8[0], sp8[1], 0); + HuWinBGTPLvlSet(lbl_1_data_1D8, 0.0f); + HuWinMesSpeedSet(lbl_1_data_1D8, 0); + HuWinMesSet(lbl_1_data_1D8, MAKE_MESSID(48, 30)); +} + +static void fn_1_5490(s32 arg0) { + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + float temp_f31; + omObjData *temp_r3; + Bss4CWork *temp_r31; + s32 spC[] = { + DATA_MAKE_NUM(DATADIR_W06, 28), + DATA_MAKE_NUM(DATADIR_W06, 29), + -1 + }; + + temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_56CC); + lbl_1_bss_4C = temp_r3; + temp_r31 = OM_GET_WORK_PTR(temp_r3, Bss4CWork); + temp_r31->unk00_field0 = 0; + temp_r31->unk02 = 0; + temp_r31->unk00_field2 = 0; + temp_r31->unk00_field1 = 2; + BoardModelPosGet(lbl_1_data_1DC, &sp3C); + sp3C.x += 50.0f; + BoardPlayerPosGet(arg0, &sp30); + sp30.x -= 10.0f; + PSVECSubtract(&sp30, &sp3C, &sp24); + PSVECNormalize(&sp24, &sp18); + temp_r3->trans.x = sp24.x / 60.0f; + temp_r3->trans.y = sp24.y / 60.0f; + temp_r3->trans.z = sp24.z / 60.0f; + temp_r31->unk04 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W06, 27), spC, 0); + temp_f31 = 0.3f; + BoardModelPosSetV(temp_r31->unk04, &sp3C); + BoardModelScaleSet(temp_r31->unk04, temp_f31, temp_f31, temp_f31); + BoardModelVisibilitySet(temp_r31->unk04, 0); + BoardModelRotYSet(temp_r31->unk04, 180.0 * (atan2(sp18.x, sp18.z) / M_PI)); + BoardModelMotionStart(temp_r31->unk04, 1, 0x40000001); + BoardModelMotionStart(lbl_1_data_1DC, 0, 0); +} + +static void fn_1_56CC(omObjData *arg0) { + Bss4CWork *temp_r31; + + temp_r31 = OM_GET_WORK_PTR(arg0, Bss4CWork); + if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { + BoardModelKill(temp_r31->unk04); + lbl_1_bss_4C = NULL; + omDelObjEx(HuPrcCurrentGet(), arg0); + return; + } + if (temp_r31->unk02 != 0) { + temp_r31->unk02--; + return; + } + switch (temp_r31->unk00_field1) { + case 0: + break; + case 1: + fn_1_57DC(arg0, temp_r31); + break; + case 4: + fn_1_58FC(arg0, temp_r31); + break; + case 2: + fn_1_587C(arg0, temp_r31); + break; + case 5: + temp_r31->unk00_field0 = 1; + break; + } +} + +static void fn_1_57DC(omObjData *arg0, Bss4CWork *arg1) { + Vec sp8; + + if (arg1->unk01 == 0) { + fn_1_59D0(3); + return; + } + BoardModelPosGet(arg1->unk04, &sp8); + sp8.x += arg0->trans.x; + sp8.y += arg0->trans.y; + sp8.z += arg0->trans.z; + BoardModelPosSetV(arg1->unk04, &sp8); + arg1->unk01--; +} + +static void fn_1_587C(omObjData *arg0, Bss4CWork *arg1) { + if (BoardModelMotionTimeGet(lbl_1_data_1DC) < 32.0f) { + return; + } + arg1->unk00_field1 = 1; + arg1->unk01 = 60; + HuAudFXPlayVolPan(0x49E, 0x7F, 0x20); + BoardModelVisibilitySet(arg1->unk04, 1); +} + +static void fn_1_58FC(omObjData *arg0, Bss4CWork *arg1) { + if (arg1->unk00_field2 == 0) { + HuAudFXPlay(0x49F); + arg1->unk00_field2 = 1; + } + if (BoardModelMotionEndCheck(arg1->unk04)) { + fn_1_59D0(0); + } +} + +static void fn_1_5968(Vec *arg0) { + Bss4CWork *temp_r31; + + if (lbl_1_bss_4C && arg0) { + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_4C, Bss4CWork); + BoardModelPosGet(temp_r31->unk04, arg0); + } +} + +static void fn_1_59D0(s32 arg0) { + Bss4CWork *temp_r31; + + if (!lbl_1_bss_4C) { + return; + } + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_4C, Bss4CWork); + temp_r31->unk00_field1 = arg0; + if (arg0 == 1) { + lbl_1_bss_4C->trans.x = 0.96666666f * sin(90 * M_PI / 180.0); + lbl_1_bss_4C->trans.z = 0.96666666f * cos(90 * M_PI / 180.0); + temp_r31->unk01 = 60; + return; + } + if (arg0 == 0) { + BoardPlayerMotionSpeedSet(temp_r31->unk04, 1.0f); + return; + } + if (arg0 == 4) { + BoardModelMotionShiftSet(temp_r31->unk04, 2, 0.0f, 8.0f, 0); + temp_r31->unk02 = 10; + return; + } +} + +static s32 fn_1_5B0C(void) { + Bss4CWork *temp_r31; + + if (lbl_1_bss_4C) { + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_4C, Bss4CWork); + return temp_r31->unk00_field1; + } + return -1; +} + +static s32 lbl_1_data_1E4[8] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 126), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 126), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 126), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 126), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 126), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 126), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 126), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 126) +}; + +static void fn_1_5B54(s32 arg0) { + Vec sp8; + float var_f31; + omObjData *temp_r3; + Bss50Work *temp_r31; + + temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_606C); + lbl_1_bss_50 = temp_r3; + temp_r31 = OM_GET_WORK_PTR(temp_r3, Bss50Work); + temp_r31->unk00_field0 = 0; + temp_r31->unk00_field1 = arg0; + temp_r31->unk01 = 0; + temp_r31->unk00_field2 = 1; + temp_r31->unk04 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W06, 13), NULL, 0); + temp_r31->unk02 = BoardPlayerMotionCreate(arg0, lbl_1_data_1E4[GWPlayer[arg0].character]); + var_f31 = 0.3f; + BoardModelScaleSet(temp_r31->unk04, var_f31, var_f31, var_f31); + BoardPlayerPosGet(temp_r31->unk00_field1, &sp8); + BoardModelPosSetV(temp_r31->unk04, &sp8); + BoardModelVisibilitySet(temp_r31->unk04, 0); + temp_r3->trans.x = sp8.x; + temp_r3->trans.y = sp8.y; + temp_r3->trans.z = sp8.z; + lbl_1_bss_59 = 0; + lbl_1_bss_5A = 0; +} + +static void fn_1_5CE4(s32 arg0) { + Vec sp14; + Vec sp8; + Bss50Work *temp_r31; + + if (!lbl_1_bss_50) { + return; + } + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_50, Bss50Work); + temp_r31->unk00_field2 = arg0; + if (arg0 == 2) { + temp_r31->unk01 = 60; + BoardPlayerPosGet(temp_r31->unk00_field1, &sp8); + if (lbl_1_bss_5A >= 1) { + BoardModelVisibilitySet(temp_r31->unk04, 1); + } + BoardModelMotionStart(temp_r31->unk04, 0, 0x40000001); + BoardPlayerMotionStart(temp_r31->unk00_field1, temp_r31->unk02, 0x40000001); + omVibrate(temp_r31->unk00_field1, 12, 4, 2); + fn_1_5968(&sp14); + sp8.x = sp14.x + 18.0 * sin(90 * M_PI / 180.0); + sp8.z = sp14.z + 18.0 * cos(90 * M_PI / 180.0); + BoardPlayerPosSetV(temp_r31->unk00_field1, &sp8); + BoardModelPosSetV(temp_r31->unk04, &sp8); + return; + } + if (arg0 == 3) { + BoardModelVisibilitySet(temp_r31->unk04, 0); + BoardPlayerMotionStart(temp_r31->unk00_field1, temp_r31->unk02, 0x40000001); + return; + } +} + +static s32 fn_1_5EBC(void) { + Bss50Work *temp_r31; + + if (!lbl_1_bss_50) { + return; + } + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_50, Bss50Work); + return temp_r31->unk00_field2; +} + +static void fn_1_5EFC(Vec *arg0) { + Bss50Work *temp_r31; + + if (lbl_1_bss_50) { + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_50, Bss50Work); + BoardPlayerPosGet(temp_r31->unk00_field1, arg0); + } +} + +static void fn_1_5F58(s32 arg0, u32 *arg1) { + u32 var_r31; + s32 var_r28; + s32 temp_r30; + + var_r31 = 0; + var_r28 = GWPlayer[arg0].port; + if (GWPlayer[arg0].com) { + temp_r30 = BoardRandMod(100); + switch (GWPlayer[arg0].diff) { + case 0: + if (temp_r30 < 12) { + var_r31 = 0x100; + } + break; + case 1: + if (temp_r30 < 22) { + var_r31 = 0x100; + } + break; + case 2: + if (temp_r30 < 50) { + var_r31 = 0x100; + } + break; + case 3: + var_r31 = 0x100; + break; + } + } else { + var_r31 = HuPadBtnDown[var_r28] & 0x100; + } + *arg1 = var_r31; +} + +static void fn_1_606C(omObjData *arg0) { + Vec sp64; + Vec sp58; + u32 var_r18; + Bss50Work *temp_r31; + + var_r18 = 0; + temp_r31 = OM_GET_WORK_PTR(arg0, Bss50Work); + if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { + BoardPlayerMotionKill(temp_r31->unk00_field1, temp_r31->unk02); + BoardModelKill(temp_r31->unk04); + lbl_1_bss_50 = NULL; + omDelObjEx(HuPrcCurrentGet(), arg0); + return; + } + switch (temp_r31->unk00_field2) { + case 0: + break; + case 1: + if (fn_1_5B0C() == 3) { + fn_1_5CE4(2); + } + break; + case 2: + if (temp_r31->unk01 == 0) { + if (lbl_1_bss_5A >= 5) { + fn_1_5CE4(4); + fn_1_59D0(4); + } else { + fn_1_5CE4(3); + fn_1_59D0(1); + lbl_1_bss_59 = 0; + lbl_1_bss_5A++; + } + } else { + fn_1_5F58(temp_r31->unk00_field1, &var_r18); + if (var_r18 == 0x100) { + lbl_1_bss_59++; + if (lbl_1_bss_5A != 0 && lbl_1_bss_59 >= lbl_1_rodata_F5[lbl_1_bss_5A - 1]) { + fn_1_5CE4(4); + fn_1_59D0(4); + } + BoardPlayerMotionStart(temp_r31->unk00_field1, temp_r31->unk02, 0x40000001); + } + temp_r31->unk01--; + } + break; + case 3: + if (fn_1_5B0C() == 3) { + fn_1_5CE4(2); + return; + } + fn_1_5968(&sp64); + BoardPlayerPosGet(temp_r31->unk00_field1, &sp58); + sp58.x = sp64.x + 18.0 * sin(90 * M_PI / 180.0); + sp58.z = sp64.z + 18.0 * cos(90 * M_PI / 180.0); + BoardPlayerPosSetV(temp_r31->unk00_field1, &sp58); + BoardModelPosSetV(temp_r31->unk04, &sp58); + BoardModelRotYSet(temp_r31->unk04, BoardPlayerRotYGet(temp_r31->unk00_field1)); + break; + case 5: + temp_r31->unk00_field0 = 1; + /* fallthrough */ + case 4: + BoardPlayerIdleSet(temp_r31->unk00_field1); + BoardPlayerRotYSet(temp_r31->unk00_field1, 0.0f); + BoardModelVisibilitySet(temp_r31->unk04, 0); + fn_1_5CE4(0); + break; + } +} + +static void fn_1_6A0C(omObjData *arg0) { + float temp_f31; + Bss54Work *temp_r29; + Bss54WorkData *var_r30; + s32 var_r26; + s32 var_r27; + s32 i; + + temp_r29 = OM_GET_WORK_PTR(arg0, Bss54Work); + if (temp_r29->unk00_field0 != 0 || BoardIsKill()) { + fn_1_6E90(temp_r29); + HuMemDirectFree(temp_r29->unk0C); + lbl_1_bss_54 = NULL; + omDelObjEx(HuPrcCurrentGet(), arg0); + return; + } + var_r30 = temp_r29->unk0C; + for (var_r27 = i = 0; i < 20; i++, var_r30++) { + if (var_r30->unk00 == 0) { + var_r27++; + } + } + if (var_r27 == 20) { + temp_r29->unk00_field0 = 1; + return; + } + var_r26 = 0; + for (i = 0; i < 20; i++) { + var_r30 = &temp_r29->unk0C[i]; + if (var_r30->unk00 == 1 && var_r26 == 0) { + var_r30->unk00 = 2; + var_r26 = 1; + } + if (var_r30->unk00 == 2) { + var_r30->unk01++; + OSu8tof32(&var_r30->unk01, &temp_f31); + var_r30->unk04 += 45.0f; + var_r30->unk08.y += -0.08166667f * temp_f31 * temp_f31 * 0.75f; + if (var_r30->unk08.y < temp_r29->unk08) { + var_r30->unk08.y = temp_r29->unk08; + CharModelCoinEffectCreate(1, &var_r30->unk08); + BoardModelVisibilitySet(var_r30->unk02, 0); + HuAudFXPlay(7); + BoardPlayerCoinsAdd(temp_r29->unk04, 1); + omVibrate(temp_r29->unk04, 12, 6, 6); + var_r30->unk00 = 0; + } + BoardModelPosSetV(var_r30->unk02, &var_r30->unk08); + BoardModelRotYSet(var_r30->unk02, var_r30->unk04); + } + } +} + +static void fn_1_6C4C(s32 arg0) { + Vec sp8; + float var_f31; + omObjData *temp_r3; + Bss54Work *temp_r30; + Bss54WorkData *temp_r31; + s32 i; + + temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_6A0C); + lbl_1_bss_54 = temp_r3; + temp_r30 = OM_GET_WORK_PTR(temp_r3, Bss54Work); + temp_r30->unk00_field0 = 0; + temp_r30->unk04 = arg0; + temp_r30->unk0C = HuMemDirectMallocNum(HEAP_SYSTEM, 20 * sizeof(Bss54WorkData), MEMORY_DEFAULT_NUM); + BoardPlayerPosGet(arg0, &sp8); + temp_r30->unk08 = sp8.y + 80.0f; + memset(temp_r30->unk0C, 0, 20 * sizeof(Bss54WorkData)); + for (i = 0; i < lbl_1_bss_58; i++) { + if (i == 0) { + var_f31 = 0.0f; + } else { + var_f31 = BoardRandFloat(); + } + temp_r31 = &temp_r30->unk0C[i]; + temp_r31->unk00 = 1; + temp_r31->unk08.x = sp8.x + 50.0 * sin(360.0f * var_f31 * M_PI / 180.0); + temp_r31->unk08.z = sp8.z + 50.0 * cos(360.0f * var_f31 * M_PI / 180.0); + temp_r31->unk08.y = sp8.y + 600.0f + 500.0f * BoardRandFloat(); + temp_r31->unk01 = 0; + temp_r31->unk04 = 360.0f * BoardRandFloat(); + temp_r31->unk02 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 1); + } +} + +static void fn_1_6E90(Bss54Work *arg0) { + Bss54WorkData *var_r30; + s32 i; + + for (i = 0; i < 20; i++) { + var_r30 = &arg0->unk0C[i]; + BoardModelKill(var_r30->unk02); + } +} diff --git a/src/REL/w06Dll/mg_item.c b/src/REL/w06Dll/mg_item.c new file mode 100755 index 00000000..cf6d9691 --- /dev/null +++ b/src/REL/w06Dll/mg_item.c @@ -0,0 +1,1196 @@ +#include "REL/w06Dll.h" +#include "game/audio.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/board/audio.h" +#include "game/board/com.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/space.h" +#include "game/board/ui.h" +#include "game/board/window.h" + +#include "dolphin.h" +#include "math.h" + +#define ABS(x) ((x) < 0 ? -(x) : (x)) + +typedef struct { + struct { + u8 unk00_field0 : 1; + u8 unk00_field1 : 2; + u8 unk00_field2 : 2; + u8 unk00_field3 : 1; + u8 unk00_field4 : 1; + }; + u8 unk01; + s8 unk02; + s8 unk03; + char unk04[2]; + s16 unk06; + s16 unk08; + char unk0A[2]; + s32 unk0C; +} Data1B4Work; + +typedef struct { + struct { + u8 unk00_field0 : 1; + u8 unk00_field1 : 2; + u8 unk00_field2 : 1; + }; + s8 unk01; + s8 unk02; + s8 unk03; +} Bss24Work; + +typedef struct { + struct { + u8 unk00_field0 : 1; + u8 unk00_field1 : 3; + u8 unk00_field2 : 1; + u8 unk00_field3 : 1; + }; + s8 unk01[2]; + s8 unk03; + u8 unk04; + char unk05[1]; + s16 unk06; + s16 unk08; + s16 unk0A; +} Bss28Work; + +typedef struct { + struct { + u8 unk00_field0 : 1; + }; + u8 unk01; + u8 unk02; + char unk03[1]; + s16 unk04; +} Bss2CWork; + +static void fn_1_10E4(void); +static void fn_1_1148(void); +static void fn_1_11B0(void); +static s32 fn_1_12A0(s32 arg0); +static void fn_1_15CC(s32 arg0); +static void fn_1_1BE0(s32 arg0, s32 arg1); +static void fn_1_1CB0(s32 arg0); +static void fn_1_1D5C(s32 arg0); +static void fn_1_1E30(s32 arg0); +static void fn_1_1F08(s32 arg0); +static void fn_1_2048(s32 arg0, s32 arg1); +static void fn_1_20CC(s32 arg0); +static s32 fn_1_2174(s32 arg0); +static s16 fn_1_21CC(s32 arg0); +static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2); +static void fn_1_243C(omObjData *arg0); +static s32 fn_1_2A1C(s32 arg0); +static void fn_1_2B60(s32 arg0); +static void fn_1_2C18(void); +static void fn_1_2D90(s32 arg0); +static s32 fn_1_2DD0(void); +static u32 fn_1_2E18(Bss24Work *arg0); +static void fn_1_2EF4(omObjData *arg0); +static void fn_1_3470(void); +static void fn_1_3560(s32 arg0); +static s32 fn_1_35BC(void); +static void fn_1_3604(s32 arg0); +static void fn_1_3698(s8 arg0); +static void fn_1_3974(omObjData *arg0); +static void fn_1_4070(void); +static void fn_1_4124(void); +static void fn_1_4194(omObjData *arg0); +static void fn_1_42AC(s16 arg0); +static void fn_1_43DC(void); +static void fn_1_4460(ModelData *model, ParticleData *particle, Mtx matrix); + +static s16 lbl_1_bss_3C[3]; +static s16 lbl_1_bss_36[3]; +static s16 lbl_1_bss_34; +static s8 lbl_1_bss_33; +static s8 lbl_1_bss_30[3]; +static omObjData *lbl_1_bss_2C; +static omObjData *lbl_1_bss_28; +static omObjData *lbl_1_bss_24; +static AnimData *lbl_1_bss_20; +static s8 lbl_1_bss_1C; +static Process *lbl_1_bss_18; + +static s16 lbl_1_data_1A8 = -1; +static s8 lbl_1_data_1AA[3] = { -1, -1, -1 }; +static s8 lbl_1_data_1AD[3] = { 0, 0, 0 }; +static s16 lbl_1_data_1B0 = -1; +static omObjData *lbl_1_data_1B4[3] = { NULL, NULL, NULL }; + +void fn_1_D70(void) { + Vec sp20; + Vec sp14; + Vec sp8; + s32 i; + + BoardModelPosGet(lbl_1_bss_C[1], &sp20); + sp8.x = sp20.x; + sp8.y = sp20.y + 60.0f; + sp8.z = sp20.z + -50.0f; + BoardModelPosSetV(lbl_1_bss_C[4], &sp8); + for (i = 0; i < 3; i++) { + lbl_1_bss_3C[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W06, 9), NULL, 0); + sp14.x = sp20.x + 150.0f * (i - 1.0f); + sp14.y = sp20.y; + sp14.z = sp20.z + 100.0f; + BoardModelPosSetV(lbl_1_bss_3C[i], &sp14); + BoardModelMotionSpeedSet(lbl_1_bss_3C[i], 0.0f); + lbl_1_data_1AD[i] = 0; + lbl_1_bss_36[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W06, 10), NULL, 0); + BoardModelVisibilitySet(lbl_1_bss_36[i], 0); + BoardModelHookSet(lbl_1_bss_3C[i], "batu", lbl_1_bss_36[i]); + } +} + +void fn_1_F6C(void) { + s32 i; + + for (i = 0; i < 3; i++) { + BoardModelHookReset(lbl_1_bss_3C[i]); + if (lbl_1_bss_3C[i] != -1) { + BoardModelKill(lbl_1_bss_3C[i]); + lbl_1_bss_3C[i] = -1; + } + if (lbl_1_bss_36[i] != -1) { + BoardModelKill(lbl_1_bss_36[i]); + lbl_1_bss_36[i] = -1; + } + } +} + +void fn_1_1054(void) { + BoardDiceDigit2DShowSet(0); + lbl_1_bss_18 = HuPrcChildCreate(fn_1_1148, 0x2003, 0x3800, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_18, fn_1_10E4); + while (lbl_1_bss_18) { + HuPrcVSleep(); + } + BoardDiceDigit2DShowSet(1); +} + +static void fn_1_10E4(void) { + fn_1_43DC(); + if (lbl_1_data_1A8 != -1) { + HuWinKill(lbl_1_data_1A8); + lbl_1_data_1A8 = -1; + } + lbl_1_bss_18 = NULL; +} + +static void fn_1_1148(void) { + s32 temp_r3; + s32 temp_r31; + + temp_r31 = GWSystem.player_curr; + temp_r3 = fn_1_12A0(temp_r31); + if (temp_r3 != 0) { + fn_1_15CC(temp_r31); + } + fn_1_1BE0(temp_r31, temp_r3); + HuPrcEnd(); +} + +static void fn_1_11B0(void) { + float sp8[2]; + float var_f31; + float var_f30; + + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(48, 25)); + var_f31 = -10000.0f; + var_f30 = 352.0f; + lbl_1_data_1A8 = HuWinCreate(var_f31, var_f30, sp8[0], sp8[1], 0); + HuWinBGTPLvlSet(lbl_1_data_1A8, 0.0f); + HuWinMesSpeedSet(lbl_1_data_1A8, 0); + HuWinMesSet(lbl_1_data_1A8, MAKE_MESSID(48, 25)); +} + +static s32 fn_1_12A0(s32 arg0) { + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + s16 var_r30; + + if (BoardPlayerItemCount(arg0) == 3) { + BoardWinCreate(2, MAKE_MESSID(48, 17), 6); + BoardWinWait(); + BoardWinKill(); + return 0; + } + HuAudFXPlay(0x362); + fn_1_1D5C(0); + fn_1_1D5C(2); + fn_1_1D5C(1); + fn_1_1CB0(0); + fn_1_1CB0(1); + fn_1_1CB0(2); + lbl_1_bss_30[0] = lbl_1_bss_30[1] = lbl_1_bss_30[2] = 0; + fn_1_1F08(arg0); + BoardWinCreateChoice(2, MAKE_MESSID(48, 18), 6, 0); + if (GWPlayer[arg0].com) { + BoardComKeySetLeft(); + } + BoardWinWait(); + if (BoardWinChoiceGet() != 0) { + BoardWinCreate(2, MAKE_MESSID(48, 19), 6); + BoardWinWait(); + BoardWinKill(); + fn_1_2048(-1, 1); + while (fn_1_2174(0) != 0) { + HuPrcVSleep(); + } + fn_1_1E30(0); + fn_1_1E30(2); + fn_1_1E30(1); + return 0; + } + BoardWinKill(); + BoardAudSeqPause(0, 1, 1000); + sp14.x = 0.0f; + sp14.y = 100.0f; + sp14.z = 0.0f; + sp8.x = -20.0f; + sp8.y = 0.0f; + sp8.z = 0.0f; + BoardCameraMotionStartEx(lbl_1_bss_C[1], &sp8, &sp14, 1600.0f, -1.0f, 21); + var_r30 = GWPlayer[arg0].space_curr; + lbl_1_bss_34 = BoardSpaceLinkFlagSearch(0, var_r30, 0x02000000); + BoardPlayerPosGet(arg0, &sp2C); + BoardSpacePosGet(0, lbl_1_bss_34, &sp38); + PSVECSubtract(&sp38, &sp2C, &sp20); + PSVECNormalize(&sp20, &sp20); + BoardPlayerRotYSet(arg0, 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI)); + BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 20); + while (GWPlayer[arg0].moving) { + HuPrcVSleep(); + } + BoardPlayerIdleSet(arg0); + HuPrcSleep(60); + return 1; +} + +static void fn_1_15CC(s32 arg0) { + s8 sp8[] = { 80, 50 }; + s32 var_r28; + s16 temp_r26; + s32 temp_r25; + s32 var_r30; + s32 var_r31; + + BoardMusStart(1, 0x26, 0x7F, 0); + temp_r26 = MGSeqCreate(3, 0); + while (MGSeqStatGet(temp_r26) != 0) { + HuPrcVSleep(); + } + fn_1_2048(-1, 1); + while (fn_1_2174(0) != 0) { + HuPrcVSleep(); + } + fn_1_1E30(0); + fn_1_1E30(2); + fn_1_1E30(1); + fn_1_1CB0(0); + fn_1_1CB0(1); + fn_1_1CB0(2); + lbl_1_bss_30[0] = lbl_1_bss_30[1] = lbl_1_bss_30[2] = 0; + fn_1_3470(); + fn_1_2B60(arg0); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + fn_1_4070(); + fn_1_11B0(); + fn_1_2D90(2); + fn_1_2C18(); + while (fn_1_2DD0() != 3) { + HuPrcVSleep(); + } + fn_1_4124(); + HuWinDispOff(lbl_1_data_1A8); + fn_1_3560(1); + fn_1_3698(lbl_1_bss_33); + while (fn_1_35BC() != 0) { + HuPrcVSleep(); + } + BoardWinCreate(2, MAKE_MESSID(48, 20), 6); + BoardWinWait(); + var_r28 = (BoardRandMod(100) >= sp8[var_r30]) ? 1 : 0; + HuPrcSleep(60); + if (var_r28 != 0) { + break; + } + BoardWinCreate(2, MAKE_MESSID(48, 21), 6); + BoardWinWait(); + lbl_1_bss_30[lbl_1_bss_33] = 1; + BoardModelVisibilitySet(lbl_1_bss_36[lbl_1_bss_33], 1); + HuAudFXPlay(0xB); + HuPrcSleep(60); + if (var_r30 == 0) { + BoardWinCreate(2, MAKE_MESSID(48, 41), 6); + BoardWinWait(); + BoardWinKill(); + } else { + for (var_r31 = 0; var_r31 < 3; var_r31++) { + if (lbl_1_bss_30[var_r31] == 0) { + lbl_1_bss_33 = var_r31; + break; + } + } + fn_1_3560(1); + fn_1_3698(lbl_1_bss_33); + while (fn_1_35BC() != 0) { + HuPrcVSleep(); + } + break; + } + } + fn_1_2D90(4); + BoardAudSeqFadeOut(1, 1000); + fn_1_1D5C(lbl_1_bss_33); + fn_1_42AC(fn_1_21CC(lbl_1_bss_33)); + fn_1_1CB0(lbl_1_bss_33); + fn_1_20CC(lbl_1_bss_33); + fn_1_2048(lbl_1_bss_33, 2); + BoardWinCreate(2, MAKE_MESSID(48, 23), 6); + BoardWinInsertMesSet(MAKE_MESSID(8, lbl_1_data_1AA[lbl_1_bss_33]), 0); + BoardWinWait(); + BoardWinKill(); + fn_1_3560(1); + fn_1_3698(1); + BoardPlayerMotBlendSet(arg0, 0, 0xF); + while (!BoardPlayerMotBlendCheck(arg0)) { + HuPrcVSleep(); + } + fn_1_2048(lbl_1_bss_33, 3); + temp_r25 = HuAudSStreamPlay(2); + BoardPlayerMotionShiftSet(arg0, 7, 0.0f, 8.0f, 0); + HuPrcSleep(8); + while (!BoardPlayerMotionEndCheck(arg0)) { + HuPrcVSleep(); + } + while (HuAudSStreamStatGet(temp_r25) != 0) { + HuPrcVSleep(); + } + BoardAudSeqPause(0, 0, 1000); + BoardPlayerItemAdd(arg0, lbl_1_data_1AA[lbl_1_bss_33]); + while (fn_1_35BC() != 0) { + HuPrcVSleep(); + } + BoardWinCreate(2, MAKE_MESSID(48, 24), 6); + BoardWinWait(); + BoardWinKill(); + fn_1_1E30(lbl_1_bss_33); + fn_1_1CB0(lbl_1_bss_33); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + BoardModelVisibilitySet(lbl_1_bss_36[var_r31], 0); + } +} + +static void fn_1_1BE0(s32 arg0, s32 arg1) { + Vec sp18; + Vec spC; + s16 temp_r30; + + temp_r30 = GWPlayer[arg0].space_curr; + BoardPlayerPosGet(arg0, &sp18); + BoardSpacePosGet(0, temp_r30, &spC); + BoardCameraTargetPlayerSet(arg0); + BoardCameraViewSet(1); + if (arg1 != 0) { + BoardPlayerPosLerpStart(arg0, &sp18, &spC, 40); + while (GWPlayer[arg0].moving) { + HuPrcVSleep(); + } + } + BoardCameraMotionWait(); + fn_1_2048(-1, 4); +} + +static void fn_1_1CB0(s32 arg0) { + while (!BoardModelMotionEndCheck(lbl_1_bss_3C[arg0])) { + HuPrcVSleep(); + } + if (lbl_1_data_1AD[arg0] == 0) { + BoardModelAttrReset(lbl_1_bss_3C[arg0], 0x40000004); + BoardModelAttrSet(lbl_1_bss_3C[arg0], 0x40000002); + } +} + +static void fn_1_1D5C(s32 arg0) { + s8 spC[] = { 0x20, 0x40, 0x60 }; + s16 sp10[] = { -100, 0, 100 }; + s32 sp8; + + if (lbl_1_data_1AD[arg0] == 0) { + sp8 = HuAudFXPlayVolPan(0x4A4, 0x7F, spC[arg0]); + BoardModelMotionStart(lbl_1_bss_3C[arg0], 0, 0); + lbl_1_data_1AD[arg0] = 1; + } +} + +static void fn_1_1E30(s32 arg0) { + s8 spC[] = { 0x20, 0x40, 0x60 }; + s16 sp10[] = { -100, 0, 100 }; + s32 sp8; + + if (lbl_1_data_1AD[arg0] != 0) { + sp8 = HuAudFXPlayVolPan(0x4A5, 0x7F, spC[arg0]); + BoardModelMotionStart(lbl_1_bss_3C[arg0], 0, 0x40000004); + lbl_1_data_1AD[arg0] = 0; + } +} + +static void fn_1_1F08(s32 arg0) { + s32 i; + s32 j; + + i = 0; + while (i < 3) { + lbl_1_data_1AA[i] = frandmod(14); + if (lbl_1_data_1AA[i] != 10 && lbl_1_data_1AA[i] != 13) { + for (j = 0; j < i; j++) { + if (lbl_1_data_1AA[i] == lbl_1_data_1AA[j]) { + lbl_1_data_1AA[i] = -1; + } + } + if (lbl_1_data_1AA[i] != -1) { + i++; + } + } + } + for (i = 0; i < 3; i++) { + fn_1_2220(arg0, i, lbl_1_data_1AA[i]); + } +} + +static void fn_1_2048(s32 arg0, s32 arg1) { + Data1B4Work *temp_r30; + s32 i; + + for (i = 0; i < 3; i++) { + if ((arg0 == i || arg0 == -1) && lbl_1_data_1B4[i]) { + temp_r30 = OM_GET_WORK_PTR(lbl_1_data_1B4[i], Data1B4Work); + temp_r30->unk02 = arg1; + temp_r30->unk08 = 0; + } + } +} + +static void fn_1_20CC(s32 arg0) { + Data1B4Work *temp_r30; + s32 i; + + for (i = 0; i < 3; i++) { + if ((arg0 == i || arg0 == -1) && lbl_1_data_1B4[i]) { + temp_r30 = OM_GET_WORK_PTR(lbl_1_data_1B4[i], Data1B4Work); + if (temp_r30->unk0C == -1) { + temp_r30->unk0C = HuAudFXPlay(0x35F); + } + } + } +} + +static s32 fn_1_2174(s32 arg0) { + Data1B4Work *temp_r31; + + if (!lbl_1_data_1B4[arg0]) { + return -1; + } + temp_r31 = OM_GET_WORK_PTR(lbl_1_data_1B4[arg0], Data1B4Work); + return temp_r31->unk02; +} + +static s16 fn_1_21CC(s32 arg0) { + Data1B4Work *temp_r31; + + if (!lbl_1_data_1B4[arg0]) { + return -1; + } + temp_r31 = OM_GET_WORK_PTR(lbl_1_data_1B4[arg0], Data1B4Work); + return temp_r31->unk06; +} + +static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) { + Mtx sp18; + Vec spC; + omObjData *temp_r3; + Data1B4Work *temp_r31; + s32 var_r28; + + temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_243C); + lbl_1_data_1B4[arg1] = temp_r3; + temp_r31 = OM_GET_WORK_PTR(temp_r3, Data1B4Work); + temp_r31->unk00_field0 = 0; + temp_r31->unk02 = 2; + temp_r31->unk03 = 0; + temp_r31->unk00_field2 = arg1; + temp_r31->unk08 = 0; + temp_r31->unk01 = 0; + temp_r31->unk00_field4 = 0; + temp_r31->unk00_field3 = 0; + temp_r31->unk00_field1 = arg0; + temp_r31->unk0C = -1; + var_r28 = BoardItemModelGet(arg2); + temp_r31->unk06 = BoardModelCreate(var_r28, NULL, 0); + BoardModelMotionSpeedSet(temp_r31->unk06, 0.0f); + BoardModelPosGet(lbl_1_bss_3C[arg1], &spC); + temp_r3->trans.x = spC.x; + temp_r3->trans.y = spC.y; + temp_r3->trans.z = spC.z; + temp_r3->rot.x = 0.0f; + temp_r3->rot.y = 0.0f; + temp_r3->rot.z = 0.0f; + if (arg2 == 5) { + PSMTXTrans(sp18, 0.0f, -50.0f, 0.0f); + BoardModelMtxSet(temp_r31->unk06, &sp18); + } + BoardModelPosSet(temp_r31->unk06, temp_r3->trans.x, temp_r3->trans.y, temp_r3->trans.z); + BoardModelScaleSet(temp_r31->unk06, 0.1f, 0.1f, 0.1f); + BoardModelLayerSet(temp_r31->unk06, 2); +} + +static void fn_1_243C(omObjData *arg0) { + Vec sp14; + Vec sp8; + Data1B4Work *temp_r31; + + temp_r31 = OM_GET_WORK_PTR(arg0, Data1B4Work); + if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { + if (temp_r31->unk0C != -1) { + HuAudFXStop(temp_r31->unk0C); + temp_r31->unk0C = -1; + } + BoardModelKill(temp_r31->unk06); + lbl_1_data_1B4[temp_r31->unk00_field2] = NULL; + omDelObjEx(HuPrcCurrentGet(), arg0); + return; + } + if (temp_r31->unk01 != 0) { + temp_r31->unk01--; + return; + } + switch (temp_r31->unk02) { + case 2: + if (temp_r31->unk00_field3 == 0) { + BoardModelPosGet(temp_r31->unk06, &sp14); + if (temp_r31->unk08 == 0) { + BoardModelPosGet(lbl_1_bss_3C[temp_r31->unk00_field2], &sp8); + sp8.y += 200.0f; + arg0->trans.y = (sp8.y - sp14.y) / 30.0f; + arg0->rot.z = 0.01f; + } else { + arg0->rot.z += 0.033333335f; + if (arg0->rot.z > 1.0f) { + arg0->rot.z = 1.0f; + } + sp14.y += arg0->trans.y; + } + BoardModelPosSetV(temp_r31->unk06, &sp14); + BoardModelScaleSet(temp_r31->unk06, arg0->rot.z, arg0->rot.z, arg0->rot.z); + temp_r31->unk08++; + if (temp_r31->unk08 >= 31) { + temp_r31->unk00_field3 = 1; + } + return; + } + fn_1_2048(temp_r31->unk00_field2, 0); + break; + case 1: + if (temp_r31->unk00_field3 != 0) { + BoardModelPosGet(temp_r31->unk06, &sp14); + if (temp_r31->unk08 == 0) { + HuAudFXPlay(0x30D); + BoardModelPosGet(lbl_1_bss_3C[temp_r31->unk00_field2], &sp8); + arg0->trans.y = (sp8.y - sp14.y) / 30.0f; + arg0->rot.z = 1.0f; + } else { + arg0->rot.z -= 0.033333335f; + if (arg0->rot.z < 0.001f) { + arg0->rot.z = 0.001f; + } + sp14.y += arg0->trans.y; + } + BoardModelPosSetV(temp_r31->unk06, &sp14); + BoardModelScaleSet(temp_r31->unk06, arg0->rot.z, arg0->rot.z, arg0->rot.z); + temp_r31->unk08++; + if (temp_r31->unk08 >= 31) { + if (temp_r31->unk0C != -1) { + HuAudFXStop(temp_r31->unk0C); + temp_r31->unk0C = -1; + } + temp_r31->unk00_field3 = 0; + } + return; + } + fn_1_2048(temp_r31->unk00_field2, 0); + break; + case 3: + BoardModelPosGet(temp_r31->unk06, &sp14); + if (temp_r31->unk08 == 0) { + BoardPlayerPosGet(temp_r31->unk00_field1, &sp8); + arg0->rot.x = (sp8.x - sp14.x) / 30.0f; + arg0->rot.z = (sp8.z - sp14.z) / 30.0f; + } else if (temp_r31->unk08 < 30) { + sp14.x += arg0->rot.x; + sp14.z += arg0->rot.z; + BoardModelPosSetV(temp_r31->unk06, &sp14); + } else { + BoardPlayerPosGet(temp_r31->unk00_field1, &sp8); + arg0->trans.x = sp8.x; + arg0->trans.y = sp8.y; + arg0->trans.z = sp8.z; + temp_r31->unk01 = 30; + temp_r31->unk08 = 0; + arg0->rot.z = 1.0f; + fn_1_2048(temp_r31->unk00_field2, 1); + break; + } + temp_r31->unk08++; + break; + case 4: + temp_r31->unk00_field0 = 1; + break; + case 0: + break; + } +} + +static s8 lbl_1_data_1C5[14] = { + 1, 1, 3, 3, 2, + 2, 2, 1, 2, 3, + 0, 4, 5, 0 +}; + +static s32 fn_1_2A1C(s32 arg0) { + s32 var_r29; + s32 var_r28; + s32 var_r30; + s32 var_r31; + + var_r29 = lbl_1_data_1C5[lbl_1_data_1AA[0]]; + var_r28 = lbl_1_data_1C5[lbl_1_data_1AA[1]]; + var_r30 = lbl_1_data_1C5[lbl_1_data_1AA[2]]; + if (lbl_1_bss_30[0] != 0) { + var_r29 = 0; + } + if (lbl_1_bss_30[1] != 0) { + var_r28 = 0; + } + if (lbl_1_bss_30[2] != 0) { + var_r30 = 0; + } + if (var_r29 > var_r28) { + if (var_r29 > var_r30) { + var_r31 = 0; + } else if (var_r30 > var_r28) { + var_r31 = 2; + } else { + var_r31 = 1; + } + } else { + if (var_r28 > var_r30) { + var_r31 = 1; + } else if (var_r30 > var_r29) { + var_r31 = 2; + } else { + var_r31 = 0; + } + } + return var_r31; +} + +static void fn_1_2B60(s32 arg0) { + omObjData *temp_r3; + Bss24Work *temp_r31; + + temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_2EF4); + lbl_1_bss_24 = temp_r3; + temp_r31 = OM_GET_WORK_PTR(temp_r3, Bss24Work); + temp_r31->unk00_field0 = 0; + temp_r31->unk00_field2 = 0; + temp_r31->unk00_field1 = arg0; + temp_r31->unk01 = 0; + temp_r31->unk03 = 0; + temp_r31->unk02 = 1; +} + +static void fn_1_2C18(void) { + Bss24Work *var_r27; + + if (lbl_1_bss_24) { + var_r27 = OM_GET_WORK_PTR(lbl_1_bss_24, Bss24Work); + var_r27->unk03 = fn_1_2A1C(var_r27->unk00_field1); + } +} + +static void fn_1_2D90(s32 arg0) { + Bss24Work *var_r31; + + if (lbl_1_bss_24) { + var_r31 = OM_GET_WORK_PTR(lbl_1_bss_24, Bss24Work); + var_r31->unk01 = arg0; + } +} + +static s32 fn_1_2DD0(void) { + Bss24Work *var_r31; + + if (!lbl_1_bss_24) { + return 4; + } + var_r31 = OM_GET_WORK_PTR(lbl_1_bss_24, Bss24Work); + return var_r31->unk01; +} + +static u32 fn_1_2E18(Bss24Work *arg0) { + s32 temp_r31; + s32 var_r30; + + if (GWPlayer[arg0->unk00_field1].com) { + if (arg0->unk02 == arg0->unk03) { + return 0x100; + } + if (arg0->unk02 > arg0->unk03) { + return 1; + } + return 2; + } + temp_r31 = GWPlayer[arg0->unk00_field1].port; + var_r30 = HuPadDStk[temp_r31] | HuPadBtnDown[temp_r31]; + return var_r30; +} + +static void fn_1_2EF4(omObjData *arg0) { + Vec sp14; + Vec sp8; + float var_f30; + s32 var_r28; + s32 temp_r19; + s32 var_r26; + s32 var_r25; + u32 var_r29; + Bss24Work *temp_r30; + + var_r29 = 0; + temp_r30 = OM_GET_WORK_PTR(arg0, Bss24Work); + if (temp_r30->unk00_field0 != 0 || BoardIsKill()) { + lbl_1_bss_24 = NULL; + omDelObjEx(HuPrcCurrentGet(), arg0); + return; + } + if (lbl_1_bss_30[0] != 0) { + var_r25 = 1; + } else { + var_r25 = 0; + } + if (lbl_1_bss_30[2] != 0) { + var_r26 = 1; + } else { + var_r26 = 2; + } + switch (temp_r30->unk01) { + case 2: + var_r29 = fn_1_2E18(temp_r30); + if (var_r29 == 0x100 || lbl_1_bss_1C != 0) { + if (lbl_1_bss_30[temp_r30->unk02] == 0) { + HuAudFXPlay(2); + lbl_1_bss_33 = temp_r30->unk02; + fn_1_2D90(3); + return; + } + if (lbl_1_bss_1C == 0) { + HuAudFXPlay(4); + break; + } + if (temp_r30->unk02 == 1) { + if (lbl_1_bss_30[0] == 0 && lbl_1_bss_30[1] == 0) { + if (BoardRandMod(100) < 50) { + var_r29 = 1; + } else { + var_r29 = 2; + } + } else { + if (lbl_1_bss_30[0] == 0) { + var_r29 = 2; + } else if (lbl_1_bss_30[1] == 0) { + var_r29 = 1; + } + } + } + if (temp_r30->unk02 == 0) { + var_r29 = 2; + } + if (temp_r30->unk02 == 2) { + var_r29 = 1; + } + } + temp_r19 = temp_r30->unk02; + var_r28 = 0; + if (var_r29 & 1) { + var_r28 = -1; + } + if (var_r29 & 2) { + var_r28 = 1; + } + temp_r30->unk02 += var_r28; + if (temp_r30->unk02 == 1 && lbl_1_bss_30[1] != 0) { + temp_r30->unk02 += var_r28; + } + if (temp_r30->unk02 > var_r26) { + temp_r30->unk02 = var_r26; + } + if (temp_r30->unk02 < var_r25) { + temp_r30->unk02 = var_r25; + } + if (temp_r30->unk02 == temp_r19) { + break; + } + fn_1_2D90(1); + BoardSpacePosGet(0, lbl_1_bss_34, &sp8); + BoardPlayerPosGet(temp_r30->unk00_field1, &sp14); + OSs8tof32(&temp_r30->unk02, &var_f30); + sp8.x += 150.0f * (var_f30 - 1.0f); + BoardPlayerPosLerpStart(temp_r30->unk00_field1, &sp14, &sp8, 20); + break; + case 0: + break; + case 1: + if (!GWPlayer[temp_r30->unk00_field1].moving) { + fn_1_2D90(2); + BoardPlayerRotYSet(temp_r30->unk00_field1, 180.0f); + BoardPlayerIdleSet(temp_r30->unk00_field1); + } + break; + case 3: + fn_1_2D90(0); + break; + case 4: + temp_r30->unk00_field0 = 1; + break; + } +} + +static void fn_1_3470(void) { + omObjData *temp_r3; + Bss28Work *temp_r31; + + temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_3974); + lbl_1_bss_28 = temp_r3; + temp_r31 = OM_GET_WORK_PTR(temp_r3, Bss28Work); + temp_r31->unk00_field0 = 0; + temp_r31->unk00_field1 = 0; + temp_r31->unk03 = 0; + temp_r31->unk00_field2 = 0; + temp_r31->unk04 = 0; + temp_r31->unk06 = 0; + temp_r31->unk08 = BoardModelMotionCreate(lbl_1_bss_C[4], DATA_MAKE_NUM(DATADIR_W06, 22)); + temp_r31->unk0A = BoardModelMotionCreate(lbl_1_bss_C[4], DATA_MAKE_NUM(DATADIR_W06, 23)); +} + +static void fn_1_3560(s32 arg0) { + Bss28Work *temp_r31; + + if (!lbl_1_bss_28) { + return; + } + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_28, Bss28Work); + temp_r31->unk00_field1 = arg0; + if (arg0 != 1) { + (void) 0; + } else { + temp_r31->unk06 = 20; + } +} + +static s32 fn_1_35BC(void) { + Bss28Work *temp_r31; + + if (!lbl_1_bss_28) { + return 5; + } + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_28, Bss28Work); + return temp_r31->unk00_field1; +} + +static void fn_1_3604(s32 arg0) { + Bss28Work *temp_r31; + + if (!lbl_1_bss_28) { + return; + } + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_28, Bss28Work); + switch (arg0) { + case 0: + temp_r31->unk01[0] = 1; + temp_r31->unk01[1] = 2; + break; + case 2: + temp_r31->unk01[0] = 1; + temp_r31->unk01[1] = 0; + break; + default: + temp_r31->unk01[0] = 0; + temp_r31->unk01[1] = 2; + break; + } +} + +static void fn_1_3698(s8 arg0) { + Vec sp24; + Vec sp18; + Vec spC; + float temp_f31; + float var_f30; + Bss28Work *temp_r31; + + if (!lbl_1_bss_28) { + return; + } + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_28, Bss28Work); + BoardModelPosGet(lbl_1_bss_C[4], &sp24); + BoardModelPosGet(lbl_1_bss_3C[1], &sp18); + lbl_1_bss_28->trans.x = arg0 - 1; + sp18.x += 150.0f * lbl_1_bss_28->trans.x; + sp18.y = sp24.y; + sp18.z = sp24.z; + temp_f31 = sp18.x - sp24.x; + if (ABS(temp_f31) < 1.0f) { + BoardModelMotionShiftSet(lbl_1_bss_C[4], 1, 0.0f, 8.0f, 0x40000001); + lbl_1_bss_28->trans.y = 0.0f; + return; + } + if (ABS(temp_f31) >= 300.0f) { + var_f30 = 40.0f; + temp_r31->unk06 *= 2; + } else { + var_f30 = 20.0f; + } + PSVECSubtract(&sp18, &sp24, &spC); + lbl_1_bss_28->trans.y = temp_f31 / var_f30; + BoardModelRotYSet(lbl_1_bss_C[4], 180.0 * (atan2(spC.x, spC.z) / M_PI)); + BoardModelMotionShiftSet(lbl_1_bss_C[4], temp_r31->unk08, 0.0f, 8.0f, 0x40000001); + BoardModelMotionSpeedSet(lbl_1_bss_C[4], 2.0f); +} + +static void fn_1_3974(omObjData *arg0) { + Vec sp30; + Vec sp24; + s32 sp8; + Bss28Work *temp_r31; + + sp8 = 0; + temp_r31 = OM_GET_WORK_PTR(arg0, Bss28Work); + if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { + lbl_1_bss_28 = NULL; + omDelObjEx(HuPrcCurrentGet(), arg0); + return; + } + if (temp_r31->unk04 != 0) { + temp_r31->unk04--; + return; + } + switch (temp_r31->unk00_field1) { + case 0: + break; + case 3: + if (temp_r31->unk03 >= 2) { + if (BoardRandMod(100) < 60) { + fn_1_3560(4); + return; + } + } else { + temp_r31->unk03++; + } + fn_1_3560(1); + temp_r31->unk00_field2 ^= 1; + fn_1_3698(temp_r31->unk01[temp_r31->unk00_field2]); + temp_r31->unk00_field3 = 1; + break; + case 1: + if (temp_r31->unk06 != 0) { + BoardModelPosGet(lbl_1_bss_C[4], &sp30); + sp30.x += arg0->trans.y; + BoardModelPosSetV(lbl_1_bss_C[4], &sp30); + temp_r31->unk06--; + break; + } + if (temp_r31->unk00_field3 != 0) { + fn_1_3560(2); + temp_r31->unk06 = 0; + temp_r31->unk04 = 10; + break; + } + fn_1_3560(0); + temp_r31->unk06 = 0; + BoardModelRotYSet(lbl_1_bss_C[4], 0.0f); + BoardModelMotionShiftSet(lbl_1_bss_C[4], 1, 0.0f, 10.0f, 0x40000001); + break; + case 2: + if (temp_r31->unk06++ == 0) { + BoardModelMotionShiftSet(lbl_1_bss_C[4], temp_r31->unk0A, 0.0f, 10.0f, 0x40000001); + break; + } + if (temp_r31->unk06 < 50) { + BoardModelRotYSet(lbl_1_bss_C[4], 0.0f); + break; + } + fn_1_3560(3); + break; + case 4: + temp_r31->unk00_field3 = 0; + lbl_1_bss_33 = temp_r31->unk01[temp_r31->unk00_field2]; + BoardModelMotionShiftSet(lbl_1_bss_C[4], 1, 0.0f, 10.0f, 0x40000001); + fn_1_3560(0); + break; + case 5: + temp_r31->unk00_field0 = 1; + break; + } +} + +static void fn_1_4070(void) { + Bss2CWork *temp_r31; + + lbl_1_bss_1C = 0; + lbl_1_bss_2C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_4194); + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_2C, Bss2CWork); + temp_r31->unk00_field0 = 0; + temp_r31->unk01 = 5; + temp_r31->unk02 = 60; + temp_r31->unk04 = MGSeqCreate(1, temp_r31->unk01, 0x120, 0x40); +} + +static void fn_1_4124(void) { + Bss2CWork *temp_r31; + + if (!lbl_1_bss_2C) { + return; + } + temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_2C, Bss2CWork); + MGSeqParamSet(temp_r31->unk04, 2, -1); + temp_r31->unk04 = -1; + temp_r31->unk00_field0 = 1; +} + +static void fn_1_4194(omObjData *arg0) { + Bss2CWork *temp_r31; + + temp_r31 = OM_GET_WORK_PTR(arg0, Bss2CWork); + if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { + if (temp_r31->unk04 != -1) { + MGSeqParamSet(temp_r31->unk04, 2, -1); + } + lbl_1_bss_2C = NULL; + omDelObjEx(HuPrcCurrentGet(), arg0); + return; + } + if (temp_r31->unk04 == -1) { + return; + } + if (temp_r31->unk02 != 0) { + temp_r31->unk02--; + return; + } + if (temp_r31->unk01 != 0) { + temp_r31->unk01--; + } else { + MGSeqParamSet(temp_r31->unk04, 2, -1); + temp_r31->unk04 = -1; + lbl_1_bss_1C = 1; + return; + } + MGSeqParamSet(temp_r31->unk04, 1, temp_r31->unk01); + temp_r31->unk02 = 60; +} + +static void fn_1_42AC(s16 arg0) { + ParticleData *var_r31; + + lbl_1_bss_20 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0)); + HuSprAnimLock(lbl_1_bss_20); + lbl_1_data_1B0 = Hu3DParticleCreate(lbl_1_bss_20, 100); + Hu3DParticleHookSet(lbl_1_data_1B0, fn_1_4460); + Hu3DParticleColSet(lbl_1_data_1B0, 0xFF, 0xFF, 0); + Hu3DModelPosSet(lbl_1_data_1B0, 0.0f, 0.0f, 0.0f); + Hu3DParticleBlendModeSet(lbl_1_data_1B0, 1); + Hu3DModelLayerSet(lbl_1_data_1B0, 2); + var_r31 = Hu3DData[lbl_1_data_1B0].unk_120; + var_r31->unk_02 = arg0; +} + +static void fn_1_43DC(void) { + if (lbl_1_data_1B0 != -1) { + Hu3DModelKill(lbl_1_data_1B0); + lbl_1_data_1B0 = -1; + } + if (lbl_1_bss_20) { + HuSprAnimKill(lbl_1_bss_20); + lbl_1_bss_20 = NULL; + } +} + +static void fn_1_4460(ModelData *model, ParticleData *particle, Mtx matrix) { + HsfanimStruct01 *var_r31; + Vec sp8; + float var_f31; + float temp_f30; + float temp_f29; + s32 i; + s32 j; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + particle->unk_00 = 0; + } + BoardModelScaleGet(particle->unk_02, &sp8); + var_f31 = sp8.x; + BoardModelPosGet(particle->unk_02, &sp8); + for (i = 0; i < 22; i++) { + var_r31 = particle->unk_48; + for (j = 0; j < particle->unk_30; j++, var_r31++) { + if (var_r31->unk2C == 0.0f) { + break; + } + } + if (j != particle->unk_30) { + temp_f30 = 0.003921569f * (frand() & 0xFF) * 360.0f; + temp_f29 = var_f31 * (20.0f + 0.003921569f * (frand() & 0xFF) * 60.0f); + var_r31->unk34.x = sp8.x + temp_f29 * sin(temp_f30 * M_PI / 180.0); + var_r31->unk34.z = sp8.z + temp_f29 * cos(temp_f30 * M_PI / 180.0); + var_r31->unk34.y = sp8.y + var_f31 * (-30.0f + 0.003921569f * (frand() & 0xFF) * 40.0f); + var_r31->unk08.x = 0.5f + 0.003921569f * (frand() & 0xFF) * 3.0f; + var_r31->unk08.y = 0.3f + 0.003921569f * (frand() & 0xFF) * 2.0f; + var_r31->unk40.a = 0xB4; + var_r31->unk2C = 15.0f * var_f31; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + if (var_r31->unk2C != 0.0f) { + var_r31->unk34.y -= var_r31->unk08.x; + var_r31->unk2C -= var_r31->unk08.y; + if (var_r31->unk2C <= 0.0f) { + var_r31->unk2C = 0.0f; + } + } + } +} diff --git a/src/REL/w10Dll/main.c b/src/REL/w10Dll/main.c index 7ebecc57..a9eaff17 100644 --- a/src/REL/w10Dll/main.c +++ b/src/REL/w10Dll/main.c @@ -9,25 +9,25 @@ #include "game/board/tutorial.h" #include "game/board/main.h" #include "game/board/boo_house.h" +#include "game/board/map_object.h" #include "math.h" -//BSS -s16 lbl_1_bss_10[1]; -s16 w10ExitWin; -s16 tutorialDoneF; -void* lbl_1_bss_8; -s32 lbl_1_bss_4; -W10BoardWork *boardWork; - -//DATA -unkw10Dll lbl_1_data_0[1] = { +//Map Objects +static BoardMapObject mapObjTbl[MAPOBJ_MAX] = { 3300.0f, 100.0f, -900.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, DATA_MAKE_NUM(DATADIR_W10, 3) }; +s16 boardMapObjMdl[MAPOBJ_MAX]; + +s16 tutorialExitWin; +s16 tutorialDoneF; +static s32 *motTbl; +s32 lbl_1_bss_4; +W10BoardWork *boardWork; static s16 bgMdl = -1; static s16 fgMdl = -1; @@ -36,8 +36,7 @@ s16 boardShopHostMdl = -1; s16 boardLotteryHostMdl = -1; s16 boardBooHouseHostMdl = -1; -//unused? -s32 lbl_1_data_34[] = { +static s32 charMotDirTbl[] = { DATADIR_MARIOMOT, DATADIR_LUIGIMOT, DATADIR_PEACHMOT, DATADIR_YOSHIMOT, DATADIR_WARIOMOT, DATADIR_DONKEYMOT, @@ -76,7 +75,7 @@ void BoardCreate(void) float size[2]; s32 i; - unkw10Dll* temp_r30; + BoardMapObject *temp_r30; s32 space; s32 board; @@ -111,21 +110,21 @@ void BoardCreate(void) boardLotteryHostMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 13), booHouseHostMot, 0); BoardModelMotionStart(boardLotteryHostMdl, 1, 0x40000001); BoardLightHookSet(LightSetHook, LightResetHook); - for (i = 0; i < ARRAY_COUNT(lbl_1_data_0); i++) { - temp_r30 = &lbl_1_data_0[i]; - if (temp_r30->unk24 != -1) { - lbl_1_bss_8 = NULL; - lbl_1_bss_10[i] = BoardModelCreate(temp_r30->unk24, lbl_1_bss_8, 0); - BoardModelPosSetV(lbl_1_bss_10[i], &temp_r30->unk0); - BoardModelRotSetV(lbl_1_bss_10[i], &temp_r30->unk0C); - BoardModelScaleSetV(lbl_1_bss_10[i], &temp_r30->unk18); - BoardModelVisibilitySet(lbl_1_bss_10[i], 1); - if (lbl_1_bss_8 != NULL) { - BoardModelMotionStart(lbl_1_bss_10[i], 0, 0x40000001); + for (i = 0; i < MAPOBJ_MAX; i++) { + temp_r30 = &mapObjTbl[i]; + if (temp_r30->data_num != -1) { + motTbl = NULL; + boardMapObjMdl[i] = BoardModelCreate(temp_r30->data_num, motTbl, 0); + BoardModelPosSetV(boardMapObjMdl[i], &temp_r30->pos); + BoardModelRotSetV(boardMapObjMdl[i], &temp_r30->rot); + BoardModelScaleSetV(boardMapObjMdl[i], &temp_r30->scale); + BoardModelVisibilitySet(boardMapObjMdl[i], 1); + if (motTbl != NULL) { + BoardModelMotionStart(boardMapObjMdl[i], 0, 0x40000001); } } } - BoardModelVisibilitySet(lbl_1_bss_10[0], 0); + BoardModelVisibilitySet(boardMapObjMdl[MAPOBJ_MELON], 0); boardWork->focus_mdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 0); BoardModelVisibilitySet(boardWork->focus_mdl, 0); BoardSpaceWalkEventFuncSet(WalkEvent); @@ -136,20 +135,20 @@ void BoardCreate(void) BoardShopHostSet(boardShopHostMdl); BoardLotteryHostSet(boardLotteryHostMdl); HuWinMesMaxSizeGet(1, size, 0x2E003A); - w10ExitWin = HuWinCreate(-10000.0f, 390.0f, size[0], size[1], 1); - HuWinMesSet(w10ExitWin, 0x2E003A); - HuWinMesSpeedSet(w10ExitWin, 0); - HuWinPriSet(w10ExitWin, 1); - HuWinMesPalSet(w10ExitWin, 7, 0, 0, 0); + tutorialExitWin = HuWinCreate(-10000.0f, 390.0f, size[0], size[1], 1); + HuWinMesSet(tutorialExitWin, 0x2E003A); + HuWinMesSpeedSet(tutorialExitWin, 0); + HuWinPriSet(tutorialExitWin, 1); + HuWinMesPalSet(tutorialExitWin, 7, 0, 0, 0); } void BoardDestroy(void) { s32 i; for (i = 0; i < 1; i++) { - if (lbl_1_bss_10[i] != 0) { - BoardModelKill(lbl_1_bss_10[i]); - lbl_1_bss_10[i] = 0; + if (boardMapObjMdl[i] != 0) { + BoardModelKill(boardMapObjMdl[i]); + boardMapObjMdl[i] = 0; } } if (boardBooHouseHostMdl != -1) { @@ -178,7 +177,7 @@ void BoardDestroy(void) } BoardModelKill(boardWork->focus_mdl); TutorialSprKill(); - HuWinKill(w10ExitWin); + HuWinKill(tutorialExitWin); BoardSpaceDestroy(); } diff --git a/src/REL/w10Dll/tutorial.c b/src/REL/w10Dll/tutorial.c index ca6cd09d..d282e3c1 100644 --- a/src/REL/w10Dll/tutorial.c +++ b/src/REL/w10Dll/tutorial.c @@ -8,16 +8,16 @@ static s16 sprList[11]; static s16 sprCurr; -void CloseTutorial(void) { +static void CloseTutorial(void) { s32 port; s32 i; if (tutorialDoneF == 0) { if (WipeStatGet() != 0) { - HuWinDispOff(w10ExitWin); + HuWinDispOff(tutorialExitWin); return; } - HuWinDispOn(w10ExitWin); + HuWinDispOn(tutorialExitWin); if (BoardIsKill() != 0) { return; } diff --git a/src/game/board/battle.c b/src/game/board/battle.c index 94630e3a..73b9d29a 100755 --- a/src/game/board/battle.c +++ b/src/game/board/battle.c @@ -2,6 +2,7 @@ #include "game/audio.h" #include "game/chrman.h" #include "game/data.h" +#include "game/flag.h" #include "game/gamework.h" #include "game/object.h" #include "game/objsub.h" @@ -84,7 +85,7 @@ static omObjData *battleObj; static Process *battleProc; static const s8 battleCoinTbl[] = { - 0x05, 0x0A, 0x14, 0x1E, 0x32 + 5, 10, 20, 30, 50 }; static float battleCursorPosTbl[] = { @@ -133,7 +134,7 @@ void BoardBattleExec(s32 player, s32 space) { } static void DestroyBattle(void) { - HuDataDirClose(0x10000); + HuDataDirClose(DATADIR_BBATTLE); battleProc = NULL; } @@ -201,13 +202,13 @@ static void ExecBattle(void) { HuPrcVSleep(); } _ClearFlag(0x1001C); - HuPrcSleep(0x3C); + HuPrcSleep(60); HuPrcEnd(); } HuAudFXPlay(0x34A); - omVibrate(GWSystem.player_curr, 0xC, 6, 6); - BoardAudSeqPause(0, 1, 0x1F4); - temp_r22 = BoardDataDirReadAsync(0x10000); + omVibrate(GWSystem.player_curr, 12, 6, 6); + BoardAudSeqPause(0, 1, 500); + temp_r22 = BoardDataDirReadAsync(DATADIR_BBATTLE); BoardCameraViewSet(3); BoardCameraMotionWait(); BoardPlayerMotBlendSet(currPlayer, 0, 0xF); @@ -217,7 +218,7 @@ static void ExecBattle(void) { BoardDataAsyncWait(temp_r22); SetBattleCoinValue(); BoardMusStart(1, 4, 0x7F, 0); - omVibrate(GWSystem.player_curr, 0xC, 6, 6); + omVibrate(GWSystem.player_curr, 12, 6, 6); InitExplode(); while (CheckExplode() == 0) { HuPrcVSleep(); @@ -235,13 +236,13 @@ static void ExecBattle(void) { } } if (var_r26 == 0) { - BoardWinCreate(2, 0x20001, 1); + BoardWinCreate(2, MAKE_MESSID(2, 1), 1); BoardWinWait(); BoardWinKill(); var_r27 = 1; } else { HuAudFXPlay(0x4F); - BoardWinCreate(2, 0x20000, 1); + BoardWinCreate(2, MAKE_MESSID(2, 0), 1); BoardWinWait(); BoardWinKill(); SetBattleBombState(3); @@ -260,7 +261,7 @@ static void ExecBattle(void) { var_r23 = 1; } var_r25 = var_r23; - HuPrcSleep(0x3C); + HuPrcSleep(60); } else { var_r25 = -1; } @@ -279,15 +280,15 @@ static void ExecBattle(void) { BoardMusVolPanSet(0, 0, 1); BoardAudSeqPause(0, 0, 1); if (var_r27 == 0) { - HuDataDirClose(0x70000); - HuDataDirClose(0x20000); + HuDataDirClose(DATADIR_BOARD); + HuDataDirClose(DATADIR_BGUEST); HuDataDirClose(sp8[GWBoardGet()]); HuPrcSleep(2); temp_r28 = battleMGList[battleMGIdx[mgChoice]]; GWMGAvailSet(temp_r28); GWSystem.mg_next = temp_r28 - 401; if (_CheckFlag(0xB)) { - var_r24 = 0x140000; + var_r24 = DATADIR_INST; } else { var_r24 = mgInfoTbl[temp_r28 - 401].data_dir; } @@ -375,12 +376,12 @@ static void TakeCoins(void) { HuAudFXPlay(0xF); sprintf(totalCoinStr, "%d", var_r30); if (var_r30 != coinTakeMax * 4) { - var_r24 = 0x20003; + var_r24 = MAKE_MESSID(2, 3); } else { - var_r24 = 0x20002; + var_r24 = MAKE_MESSID(2, 2); } BoardWinCreate(2, var_r24, 1); - BoardWinInsertMesSet((u32) totalCoinStr, 0); + BoardWinInsertMesSet(MAKE_MESSID_PTR(totalCoinStr), 0); BoardWinWait(); BoardWinKill(); } @@ -403,7 +404,7 @@ static void InitExplode(void) { temp_r31->unk00_field0 = 0; temp_r31->unk00_field1 = 0; temp_r31->unk01 = 0x10; - temp_r31->unk02 = BoardModelCreate(0x20026, NULL, 0); + temp_r31->unk02 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 38), NULL, 0); BoardModelLayerSet(temp_r31->unk02, 2); explodeObj->trans.x = sp14.x; explodeObj->trans.y = sp14.y - 100.0f; @@ -411,7 +412,7 @@ static void InitExplode(void) { BoardModelPosSet(temp_r31->unk02, explodeObj->trans.x, explodeObj->trans.y, explodeObj->trans.z); BoardModelMotionStart(temp_r31->unk02, 0, 0x40000001); for (i = 0; i < 4; i++) { - temp_r31->unk04[i] = BoardModelCreate(0x70066, NULL, 0); + temp_r31->unk04[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 102), NULL, 0); sp8.x = sp14.x + sp20[i][0]; sp8.y = sp14.y; sp8.z = sp14.z + sp20[i][1]; @@ -534,7 +535,7 @@ static void CreateBattleMain(void) { } HuSprGrpPosSet(temp_r31->unk08, 288.0f, 240.0f); battleObj->trans.x = -308.0f; - BoardFilterFadeInit(0x1E, 0xA0); + BoardFilterFadeInit(30, 0xA0); } static void UpdateBattleMain(omObjData *arg0) { @@ -614,7 +615,7 @@ static void ShowBattleGame(BattleWork *arg0, omObjData *arg1) { float var_r29; if (arg0->unk01 == 0) { - if (BoardFilterFadePauseCheck() != 0) { + if (BoardFilterFadePauseCheck()) { arg0->unk01 = 1; arg1->trans.z = 0.01f; arg1->trans.y = 0.0f; @@ -711,7 +712,7 @@ static void ShowBattleCoin(BattleWork *arg0, omObjData *arg1) { while (var_f30 > 180.0f) { var_f30 -= 180.0f; } - temp_f29 = 0.8999999761581421 + sin(var_f30 * M_PI / 180.0); + temp_f29 = 0.9f + sin(var_f30 * M_PI / 180.0); HuSprScaleSet(arg0->unk08, 1, temp_f29, temp_f29); } @@ -750,7 +751,7 @@ static void VibratePad(BattleWork *arg0, omObjData *arg1) { s32 i; for (i = 0; i < 4; i++) { - omVibrate(i, 0xC, 0xC, 0); + omVibrate(i, 12, 0xC, 0); } arg0->unk00_field1 = 8; } diff --git a/src/game/board/boo.c b/src/game/board/boo.c index 5299df98..2042ae27 100755 --- a/src/game/board/boo.c +++ b/src/game/board/boo.c @@ -1,16 +1,20 @@ #include "game/board/boo.h" #include "game/audio.h" #include "game/chrman.h" +#include "game/data.h" +#include "game/flag.h" #include "game/gamework.h" #include "game/gamework_data.h" #include "game/hsfman.h" #include "game/objsub.h" #include "game/pad.h" #include "game/process.h" +#include "game/sprite.h" #include "game/window.h" #include "game/board/main.h" #include "game/board/model.h" #include "game/board/player.h" +#include "game/board/space.h" #include "game/board/window.h" #include "math.h" @@ -22,8 +26,7 @@ typedef struct { s8 unk01; s8 unk02; char unk03[1]; - s16 unk04; - s16 unk06; + s16 unk04[2]; } BooEventWork; typedef struct { @@ -92,8 +95,6 @@ typedef struct { float unk04; } BallTakeCoinWork; -void BoardSpaceCameraSet(u16); - static void ComSetupStealPlayer(s32 arg0); static void ComSetStealPlayerInput(s32 arg0, s32 arg1); static void ExecCoinSteal(void); @@ -152,14 +153,14 @@ static omObjData *ballObj; static omObjData *booEventObj; static s32 booPlayerMotTbl[8][6] = { - { 0x0009000B, 0x00090013, 0x0009001B, 0x00090023, 0x0009002B, 0x00090033 }, - { 0x0009000C, 0x00090014, 0x0009001C, 0x00090024, 0x0009002C, 0x00090034 }, - { 0x0009000D, 0x00090015, 0x0009001D, 0x00090025, 0x0009002D, 0x00090035 }, - { 0x0009000E, 0x00090016, 0x0009001E, 0x00090026, 0x0009002E, 0x00090036 }, - { 0x0009000F, 0x00090017, 0x0009001F, 0x00090027, 0x0009002F, 0x00090037 }, - { 0x00090010, 0x00090018, 0x00090020, 0x00090028, 0x00090030, 0x00090038 }, - { 0x00090011, 0x00090019, 0x00090021, 0x00090029, 0x00090031, 0x00090039 }, - { 0x00090012, 0x0009001A, 0x00090022, 0x0009002A, 0x00090032, 0x0009003A } + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 11), DATA_MAKE_NUM(DATADIR_BYOKODORI, 19), DATA_MAKE_NUM(DATADIR_BYOKODORI, 27), DATA_MAKE_NUM(DATADIR_BYOKODORI, 35), DATA_MAKE_NUM(DATADIR_BYOKODORI, 43), DATA_MAKE_NUM(DATADIR_BYOKODORI, 51) }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 12), DATA_MAKE_NUM(DATADIR_BYOKODORI, 20), DATA_MAKE_NUM(DATADIR_BYOKODORI, 28), DATA_MAKE_NUM(DATADIR_BYOKODORI, 36), DATA_MAKE_NUM(DATADIR_BYOKODORI, 44), DATA_MAKE_NUM(DATADIR_BYOKODORI, 52) }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 13), DATA_MAKE_NUM(DATADIR_BYOKODORI, 21), DATA_MAKE_NUM(DATADIR_BYOKODORI, 29), DATA_MAKE_NUM(DATADIR_BYOKODORI, 37), DATA_MAKE_NUM(DATADIR_BYOKODORI, 45), DATA_MAKE_NUM(DATADIR_BYOKODORI, 53) }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 14), DATA_MAKE_NUM(DATADIR_BYOKODORI, 22), DATA_MAKE_NUM(DATADIR_BYOKODORI, 30), DATA_MAKE_NUM(DATADIR_BYOKODORI, 38), DATA_MAKE_NUM(DATADIR_BYOKODORI, 46), DATA_MAKE_NUM(DATADIR_BYOKODORI, 54) }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 15), DATA_MAKE_NUM(DATADIR_BYOKODORI, 23), DATA_MAKE_NUM(DATADIR_BYOKODORI, 31), DATA_MAKE_NUM(DATADIR_BYOKODORI, 39), DATA_MAKE_NUM(DATADIR_BYOKODORI, 47), DATA_MAKE_NUM(DATADIR_BYOKODORI, 55) }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 16), DATA_MAKE_NUM(DATADIR_BYOKODORI, 24), DATA_MAKE_NUM(DATADIR_BYOKODORI, 32), DATA_MAKE_NUM(DATADIR_BYOKODORI, 40), DATA_MAKE_NUM(DATADIR_BYOKODORI, 48), DATA_MAKE_NUM(DATADIR_BYOKODORI, 56) }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 17), DATA_MAKE_NUM(DATADIR_BYOKODORI, 25), DATA_MAKE_NUM(DATADIR_BYOKODORI, 33), DATA_MAKE_NUM(DATADIR_BYOKODORI, 41), DATA_MAKE_NUM(DATADIR_BYOKODORI, 49), DATA_MAKE_NUM(DATADIR_BYOKODORI, 57) }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 18), DATA_MAKE_NUM(DATADIR_BYOKODORI, 26), DATA_MAKE_NUM(DATADIR_BYOKODORI, 34), DATA_MAKE_NUM(DATADIR_BYOKODORI, 42), DATA_MAKE_NUM(DATADIR_BYOKODORI, 50), DATA_MAKE_NUM(DATADIR_BYOKODORI, 58) } }; static s32 booSfxTbl[4][8] = { @@ -182,17 +183,17 @@ static s32 booSfxTbl[4][8] = { }; static s32 hostMess[] = { - 0x0007000E, - 0x00070014, - 0x0007001A, - 0x00070020, - 0x00070026, - 0x0007002C + MAKE_MESSID(7, 14), + MAKE_MESSID(7, 20), + MAKE_MESSID(7, 26), + MAKE_MESSID(7, 32), + MAKE_MESSID(7, 38), + MAKE_MESSID(7, 44) }; static s32 ballMdlTbl[] = { - 0x00090002, - 0x00090006 + DATA_MAKE_NUM(DATADIR_BYOKODORI, 2), + DATA_MAKE_NUM(DATADIR_BYOKODORI, 6) }; s16 BoardBooCreate(s32 arg0, Vec *arg1) { @@ -218,8 +219,8 @@ s16 BoardBooCreate(s32 arg0, Vec *arg1) { booEventObj->trans.x = spC.x; booEventObj->trans.y = spC.y; booEventObj->trans.z = spC.z; - CreateBallMdl(&temp_r31->unk04, &spC); - return temp_r31->unk04; + CreateBallMdl(temp_r31->unk04, &spC); + return temp_r31->unk04[0]; } void BoardBooKill(void) { @@ -256,19 +257,19 @@ s32 BoardBooStealTypeSet(s32 arg0) { stealType = -1; return 0; } - if (_CheckFlag(0x10018)) { + if (_CheckFlag(FLAG_ID_MAKE(1, 24))) { var_r25 = BoardWinPortraitGet(); var_r28 = hostMess[GWBoardGet()]; } else { var_r25 = 3; - var_r28 = 0x120019; + var_r28 = MAKE_MESSID(18, 25); } BoardWinCreateChoice(1, var_r28, var_r25, 0); BoardWinAttrSet(0x10); if (stealType == 0) { - var_r28 = 0x70030; + var_r28 = MAKE_MESSID(7, 48); } else { - var_r28 = 0x70031; + var_r28 = MAKE_MESSID(7, 49); } BoardWinInsertMesSet(var_r28, 0); for (i = 0; i < 3; i++) { @@ -312,10 +313,10 @@ static void ComSetupStealPlayer(s32 arg0) { switch (GWPlayer[arg0].diff) { case 0: - var_r29 = 0x5F; + var_r29 = 95; break; case 1: - var_r29 = 0x32; + var_r29 = 50; break; case 2: var_r29 = 5; @@ -324,7 +325,7 @@ static void ComSetupStealPlayer(s32 arg0) { var_r29 = 0; break; } - var_r22 = BoardRandMod(0x64); + var_r22 = BoardRandMod(100); if (var_r22 >= var_r29) { var_r24 = 1; } else { @@ -400,9 +401,9 @@ s32 BoardBooStealMain(void) { if (var_r31 != -1) { stealType = 2; BoardPlayerItemRemove(stealTarget, var_r31); - var_r30 = 0x70004; + var_r30 = MAKE_MESSID(7, 4); } else { - var_r30 = 0x70003; + var_r30 = MAKE_MESSID(7, 3); } BoardCameraMotionWait(); for (var_r31 = 0; var_r31 < 4; var_r31++) { @@ -411,7 +412,7 @@ s32 BoardBooStealMain(void) { } } CreateBallPlayer(); - omVibrate(stealTarget, 0xC, 4, 2); + omVibrate(stealTarget, 12, 4, 2); SetBallActive(1); while (!CheckBallKill()) { HuPrcVSleep(); @@ -470,7 +471,7 @@ static void ExecCoinSteal(void) { SetBallPlayerState(4); SetBallBooState(3); punchCount = 0; - HuPrcSleep(0x78); + HuPrcSleep(120); while (GetBallBooState() != 0) { HuPrcVSleep(); } @@ -551,7 +552,7 @@ static void CreateBallView(void) { ballObj = omAddObjEx(boardObjMan, 0x1001, 0, 0, -1, BallMain); temp_r31 = OM_GET_WORK_PTR(ballObj, BallWork); temp_r31->unk00_field0 = 0; - temp_r31->unk08 = HuSprAnimMake(0x50, 0x50, 2); + temp_r31->unk08 = HuSprAnimMake(80, 80, 2); temp_r29 = temp_r31->unk08->bmp; temp_r29->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x3200, MEMORY_DEFAULT_NUM); memset(temp_r29->data, 0, 0x3200); @@ -559,7 +560,7 @@ static void CreateBallView(void) { Hu3DModelLayerSet(temp_r31->unk04, 3); Hu3DModelCameraSet(temp_r31->unk04, 1); temp_r31->unk06 = Hu3DProjectionCreate(temp_r31->unk08, 25.0f, 100.0f, 13000.0f); - Hu3DModelProjectionSet(BoardModelIDGet(temp_r28->unk06), temp_r31->unk06); + Hu3DModelProjectionSet(BoardModelIDGet(temp_r28->unk04[1]), temp_r31->unk06); Hu3DProjectionTPLvlSet(temp_r31->unk06, 0.0f); ballCameraObj = omAddObjEx(boardObjMan, 0x7E03, 0, 0, -1, UpdateBallCamera); temp_r30 = OM_GET_WORK_PTR(ballCameraObj, BallCameraWork); @@ -589,7 +590,7 @@ static void SetBallView(s32 arg0) { BoardSpaceCameraSet(var_r31); BoardModelCameraSetAll(var_r31); BoardCameraMaskSet((u16) var_r31); - BoardCameraScissorSet(0, 0, 0x280, 0x1E0); + BoardCameraScissorSet(0, 0, 640, 480); } static void SetBallActive(s32 arg0) { @@ -623,7 +624,7 @@ static void BallMain(omObjData *arg0) { s16 *temp_r29; if (booKillF != 0 || BoardIsKill() != 0) { - temp_r29 = (s16*) &OM_GET_WORK_PTR(booEventObj, BooEventWork)->unk04; + temp_r29 = OM_GET_WORK_PTR(booEventObj, BooEventWork)->unk04; Hu3DModelProjectionReset(BoardModelIDGet(temp_r29[1]), temp_r30->unk06); Hu3DProjectionKill(temp_r30->unk06); Hu3DModelKill(temp_r30->unk04); @@ -642,8 +643,8 @@ static void BallMain(omObjData *arg0) { sp14.z = cos(sp20.y * M_PI / 180.0) * sin(sp20.x * M_PI / 180.0); if (temp_r30->unk01 != 0) { temp_r30->unk02 += temp_r30->unk01; - if (temp_r30->unk02 > 0xFF) { - temp_r30->unk02 = 0xFF; + if (temp_r30->unk02 > 255) { + temp_r30->unk02 = 255; temp_r30->unk01 = 0; } else if (temp_r30->unk02 < 0) { temp_r30->unk02 = 0; @@ -671,15 +672,15 @@ static void BallRenderHook(void) { temp_r31 = OM_GET_WORK_PTR(ballObj, BallWork); sp10.a = sp10.r = sp10.g = sp10.b = 0; GXSetCopyClear(sp10, -1); - GXSetTexCopySrc(0, 0, 0xA0, 0xA0); - GXSetTexCopyDst(0x50, 0x50, GX_TF_RGB5A3, GX_TRUE); + GXSetTexCopySrc(0, 0, 160, 160); + GXSetTexCopyDst(80, 80, GX_TF_RGB5A3, GX_TRUE); GXCopyTex(temp_r31->unk08->bmp->data, GX_TRUE); - DCFlushRange(temp_r31->unk08->bmp->data, 0x3200); + DCFlushRange(temp_r31->unk08->bmp->data, 12800); GXPixModeSync(); C_MTXPerspective(sp68, 25.0f, 1.2f, 100.0f, 13000.0f); GXSetProjection(sp68, GX_PERSPECTIVE); GXSetViewport(0.0f, 0.0f, 160.0f, 160.0f, 0.0f, 1.0f); - GXSetScissor(0, 0, 0xA0, 0xA0); + GXSetScissor(0, 0, 160, 160); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); @@ -710,8 +711,8 @@ static void BallRenderHook(void) { sp20.z = 0.0f; C_MTXLookAt(sp38, &sp2C, &sp20, &sp14); GXLoadPosMtxImm(sp38, GX_PNMTX0); - sp2C.x = sin(5 * M_PI / 72) * 20000.0 * 1.2000000476837158; - sp2C.y = sin(5 * M_PI / 72) * 20000.0 * 0.8333333134651184; + sp2C.x = sin(5 * M_PI / 72) * 20000.0 * 1.2f; + sp2C.y = sin(5 * M_PI / 72) * 20000.0 * 0.8333333f; sp2C.z = -9000.0f; GXBegin(GX_QUADS, GX_VTXFMT0, 4); GXPosition3f32(-sp2C.x, -sp2C.y, sp2C.z); @@ -730,7 +731,7 @@ static void ExecBoo(omObjData *arg0) { if (temp_r30->unk00_field0 != 0 || BoardIsKill()) { for (i = 0; i < 2; i++) { - BoardModelKill(((s16*) ((u8*) temp_r30 + 4))[i]); + BoardModelKill(((s16*) temp_r30->unk04)[i]); } BoardWinKill(); booEventObj = NULL; @@ -801,8 +802,8 @@ static void CreateBallPlayer(void) { temp_r30->unk04[i] = BoardPlayerMotionCreate(stealTarget, var_r26); } if (stealType == 2) { - temp_r30->unk00 = BoardModelCreate(0x70076, 0, 0); - temp_r30->unk02 = BoardModelCreate(0x70082, 0, 0); + temp_r30->unk00 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 118), 0, 0); + temp_r30->unk02 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 130), 0, 0); BoardModelLayerSet(temp_r30->unk00, 0); BoardModelLayerSet(temp_r30->unk02, 0); BoardModelCameraSet(temp_r30->unk00, 1); @@ -911,7 +912,7 @@ static void BallPlayerZoomOut(omObjData *arg0, BallPlayerWork *arg1) { sp8.x = sp14.x + 120.0 * sin(-M_PI / 2); sp8.y = sp14.y; sp8.z = sp14.z + 120.0 * cos(-M_PI / 2); - BoardPlayerPosLerpStart(stealTarget, &sp14, &sp8, 0x14); + BoardPlayerPosLerpStart(stealTarget, &sp14, &sp8, 20); var_r29 = GWPlayer[stealTarget].character; HuAudFXPlay(booSfxTbl[0][var_r29]); SetBallPlayerState(3); @@ -933,7 +934,7 @@ static void BallPlayerScare(omObjData *arg0, BallPlayerWork *arg1) { BoardPlayerMotionShiftSet(stealTarget, temp_r29->unk04[3], 0.0f, 10.0f, 0x40000001); SetBallPlayerState(0); } else { - BoardPlayerMotBlendSet(stealTarget, temp_f31, 0xF); + BoardPlayerMotBlendSet(stealTarget, temp_f31, 15); SetBallPlayerState(2); } } @@ -954,25 +955,25 @@ static void BallPlayerPunch(omObjData *arg0, BallPlayerWork *arg1) { var_r31 = 0; temp_r29 = arg0->data; if (GWPlayer[stealTarget].com) { - temp_r30 = BoardRandMod(0x64); + temp_r30 = BoardRandMod(100); switch (GWPlayer[stealTarget].diff) { case 0: - if (temp_r30 > 0x5A) { + if (temp_r30 > 90) { var_r31 = 0x100; } break; case 1: - if (temp_r30 > 0x53) { + if (temp_r30 > 83) { var_r31 = 0x100; } break; case 2: - if (temp_r30 > 0x4B) { + if (temp_r30 > 75) { var_r31 = 0x100; } break; case 3: - if (temp_r30 > 0x44) { + if (temp_r30 > 68) { var_r31 = 0x100; } break; @@ -980,7 +981,7 @@ static void BallPlayerPunch(omObjData *arg0, BallPlayerWork *arg1) { } else { var_r31 = HuPadBtnDown[GWPlayer[stealTarget].port] & 0x100; } - if ((var_r31 & 0x100) && GetBallBooState() == 3 && battleTimer < 0x78) { + if ((var_r31 & 0x100) && GetBallBooState() == 3 && battleTimer < 120) { punchCount++; } if (arg1->unk00_field1 != 0) { @@ -1029,13 +1030,13 @@ static void BallPlayerCatch(omObjData *arg0, BallPlayerWork *arg1) { if (stealType == 0) { UpdatePlayerCoins(); HuAudFXPlay(booSfxTbl[2][temp_r28]); - omVibrate(stealTarget, 0xC, 4, 2); + omVibrate(stealTarget, 12, 4, 2); TakeBallCoin(); } if (stealType == 1) { BoardPlayerStarsAdd(stealTarget, -1); HuAudFXPlay(booSfxTbl[2][temp_r28]); - omVibrate(stealTarget, 0xC, 4, 2); + omVibrate(stealTarget, 12, 4, 2); TakeBallStar(); } BoardPlayerMotionShiftSet(stealTarget, temp_r27->unk04[0], 0.0f, 10.0f, 0); @@ -1053,11 +1054,11 @@ static void BallPlayerCatch(omObjData *arg0, BallPlayerWork *arg1) { } static s32 ballBooMdl[] = { - 0x00020013, - 0x00020014, - 0x00020015, - 0x00020016, - 0x00020017, + DATA_MAKE_NUM(DATADIR_BGUEST, 19), + DATA_MAKE_NUM(DATADIR_BGUEST, 20), + DATA_MAKE_NUM(DATADIR_BGUEST, 21), + DATA_MAKE_NUM(DATADIR_BGUEST, 22), + DATA_MAKE_NUM(DATADIR_BGUEST, 23), -1 }; @@ -1075,7 +1076,7 @@ static void BallBooCreate(void) { temp_r31->unk00_field2 = 0; temp_r31->unk01 = 0; SetBallBooState(1); - temp_r31->unk04 = BoardModelCreate(0x20012, ballBooMdl, 0); + temp_r31->unk04 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 18), ballBooMdl, 0); BoardModelAlphaSet(temp_r31->unk04, 0xFF); BoardModelLayerSet(temp_r31->unk04, 0); BoardModelCameraSet(temp_r31->unk04, 1); @@ -1098,7 +1099,7 @@ static void BallBooCreate(void) { ballBooObj->rot.x = (sp8.x - ballBooObj->trans.x) / 60.0f; ballBooObj->rot.y = (sp8.y - ballBooObj->trans.y) / 60.0f; ballBooObj->rot.z = (sp8.z - ballBooObj->trans.z) / 60.0f; - temp_r31->unk02 = 0x3C; + temp_r31->unk02 = 60; ballBooObj->scale.x = 1.0f; ballBooObj->scale.z = 1.0f; sp8.x = sp14.x - ballBooObj->trans.x; @@ -1122,7 +1123,7 @@ static void SetBallBooState(s32 arg0) { ballBooObj->rot.x = (sp8.x - ballBooObj->trans.x) / 30.0f; ballBooObj->rot.y = (sp8.y - ballBooObj->trans.y) / 30.0f; ballBooObj->rot.z = (sp8.z - ballBooObj->trans.z) / 30.0f; - temp_r31->unk02 = 0x1E; + temp_r31->unk02 = 30; BoardModelMotionShiftSet(temp_r31->unk04, 1, 0.0f, 10.0f, 0x40000001); } if (arg0 == 5) { @@ -1210,7 +1211,7 @@ static void BallBooBattle(omObjData *arg0, BallBooWork *arg1) { if (attackTimer != 0) { attackTimer--; } - if (battleTimer >= 0x78) { + if (battleTimer >= 120) { SetBallBooState(4); return; } @@ -1221,14 +1222,14 @@ static void BallBooBattle(omObjData *arg0, BallBooWork *arg1) { } return; } - if (BoardRandMod(0x64) <= 0x46) { + if (BoardRandMod(100) <= 70) { BoardModelMotionStart(arg1->unk04, 2, 0); arg1->unk00_field2 = 1; - if (BoardRandMod(0x64) > 0x32 && attackTimer == 0) { + if (BoardRandMod(100) > 50 && attackTimer == 0) { temp_r29 = GWPlayer[stealTarget].character; HuAudFXPlay(booSfxTbl[1][temp_r29]); - omVibrate(stealTarget, 0xC, 6, 6); - attackTimer = 0x30; + omVibrate(stealTarget, 12, 6, 6); + attackTimer = 48; } } } @@ -1236,10 +1237,10 @@ static void BallBooBattle(omObjData *arg0, BallBooWork *arg1) { static void BallBooAttack(omObjData *arg0, BallBooWork *arg1) { float var_f29; - if (arg1->unk02 < 0x5A) { + if (arg1->unk02 < 90) { arg1->unk02 += 6; - if (arg1->unk02 >= 0x5A) { - arg1->unk02 = 0x5A; + if (arg1->unk02 >= 90) { + arg1->unk02 = 90; SetBallBooState(0); SetBallPlayerState(5); } @@ -1263,7 +1264,7 @@ static void BallBooFlash(omObjData *arg0, BallBooWork *arg1) { arg0->rot.x = (sp8.x - arg0->trans.x) / 72.0f; arg0->rot.y = (sp8.y - arg0->trans.y) / 72.0f; arg0->rot.z = (sp8.z - arg0->trans.z) / 72.0f; - arg1->unk02 = 0x48; + arg1->unk02 = 72; } } @@ -1281,7 +1282,7 @@ static void TakeBallCoin(void) { ballTakeCoinObj->trans.z = sp8.z; var_r31 = ballTakeCoinObj->data; for (i = 0; i < 10; i++, var_r31++) { - var_r31->unk00 = BoardModelCreate(0x7000A, NULL, 1); + var_r31->unk00 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 1); BoardModelCameraSet(var_r31->unk00, 1); fn_8006DDE8(var_r31->unk00, -1.0f); BoardModelScaleSet(var_r31->unk00, 0.5f, 0.5f, 0.5f); @@ -1358,7 +1359,7 @@ void TakeBallStar(void) { temp_r31 = OM_GET_WORK_PTR(ballTakeCoinObj, BallTakeCoinWork); temp_r31->unk00_field0 = 0; temp_r31->unk01 = 0; - temp_r31->unk02 = BoardModelCreate(0x7000B, 0, 0); + temp_r31->unk02 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 11), 0, 0); BoardPlayerPosGet(stealTarget, &sp8); ballTakeCoinObj->trans.x = sp8.x; ballTakeCoinObj->trans.y = sp8.y + 150.0f; @@ -1430,27 +1431,27 @@ BOOL BoardBooStealLightCheck(void) { } static s8 stealSuccessTbl[][3] = { - { 0x00, 0x00, 0x00 }, - { 0x01, 0x06, 0x01 }, - { 0x07, 0x07, 0x03 }, - { 0x08, 0x0C, 0x02 }, - { 0x0D, 0x0F, 0x03 }, - { 0x10, 0x12, 0x04 }, - { 0x13, 0x14, 0x06 }, - { 0x15, 0x17, 0x05 }, - { 0x18, 0x1A, 0x06 }, - { 0x1B, 0x1C, 0x07 }, - { 0x1D, 0x1D, 0x08 }, - { 0x1E, 0x63, 0x09 } + { 0, 0, 0 }, + { 1, 6, 1 }, + { 7, 7, 3 }, + { 8, 12, 2 }, + { 13, 15, 3 }, + { 16, 18, 4 }, + { 19, 20, 6 }, + { 21, 23, 5 }, + { 24, 26, 6 }, + { 27, 28, 7 }, + { 29, 29, 8 }, + { 30, 99, 9 } }; static s8 stealTbl[][3] = { - { 0x01, 0x05, 0x0F }, - { 0x06, 0x0F, 0x19 }, - { 0x10, 0x19, 0x1B }, - { 0x1A, 0x23, 0x1E }, - { 0x24, 0x2D, 0x20 }, - { 0x2E, 0x32, 0x23 } + { 1, 5, 15 }, + { 6, 15, 25 }, + { 16, 25, 27 }, + { 26, 35, 30 }, + { 36, 45, 32 }, + { 46, 50, 35 } }; static void UpdatePlayerCoins(void) { @@ -1460,12 +1461,12 @@ static void UpdatePlayerCoins(void) { s32 i; sp8 = punchCount; - if (punchCount > 0x63) { - punchCount = 0x63; + if (punchCount > 99) { + punchCount = 99; } var_r30 = GWSystem.turn; - if (var_r30 > 0x32) { - var_r30 = 0x32; + if (var_r30 > 50) { + var_r30 = 50; } for (stealSuccess = i = 0; i < 12; i++) { if (punchCount >= stealSuccessTbl[i][0] && punchCount <= stealSuccessTbl[i][1]) { diff --git a/src/game/board/bowser.c b/src/game/board/bowser.c index d32ce7d5..b26d3f0f 100644 --- a/src/game/board/bowser.c +++ b/src/game/board/bowser.c @@ -467,8 +467,7 @@ static void DoMGReturnEffect(void) s32 mess; s32 mess_char; for(player=0; player<4; player++) { - s16 gain = GWPlayer[player].coin_gain; - if(gain == 1) { + if(GWPlayerCoinWinGet(player) == 1) { break; } } diff --git a/src/game/board/fortune.c b/src/game/board/fortune.c index 97b3fae0..a7097baa 100644 --- a/src/game/board/fortune.c +++ b/src/game/board/fortune.c @@ -121,10 +121,10 @@ static void FortuneMain(void) HuPrcVSleep(); } for(i=0; i<4; i++) { - if((int)(GWPlayer[i].team) != 0) { - GWPlayer[i].field08_bit11 = 1; + if(GWPlayerTeamGet(i)) { + GWPlayer[i].team_backup = 1; } else { - GWPlayer[i].field08_bit11 = 0; + GWPlayer[i].team_backup = 0; } if(i == currPlayer) { GWPlayerCfg[i].group = 0; @@ -158,7 +158,7 @@ static void FortuneMain(void) if((int)GWSystem.show_com_mg == 0) { HuPrcSleep(60); for(i=0; i<4; i++) { - s32 bit11 = GWPlayer[i].field08_bit11; + s32 bit11 = GWPlayer[i].team_backup; GWPlayer[i].team = bit11; GWPlayerCfg[i].group = bit11; } diff --git a/src/game/board/item.c b/src/game/board/item.c index 914f74de..803794ea 100755 --- a/src/game/board/item.c +++ b/src/game/board/item.c @@ -1,6 +1,7 @@ #include "game/board/item.h" #include "game/audio.h" #include "game/chrman.h" +#include "game/data.h" #include "game/gamework.h" #include "game/gamework_data.h" #include "game/hsfanim.h" @@ -8,6 +9,7 @@ #include "game/objsub.h" #include "game/pad.h" #include "game/process.h" +#include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" #include "game/board/audio.h" @@ -51,8 +53,6 @@ typedef struct { } UnkGenieCameraStruct; // Size 0x1C extern u32 frandmod(u32); -extern void BoardBowserSuitInit(s32); -extern s16 BoardBowserSuitPlayerModelGet(void); static void ItemProcess(void); static void RestoreProcess(void); @@ -111,7 +111,10 @@ static AnimData *genieParticleAnim; static s16 geniePlayerMot[3]; static Process *itemProc; -s32 lbl_801D37A0[2] = { 0x00070075, -1 }; +s32 lbl_801D37A0[2] = { + DATA_MAKE_NUM(DATADIR_BOARD, 117), + -1 +}; static void (*itemFuncTbl[])(void) = { ExecItemMini, @@ -148,20 +151,20 @@ static void (*itemRestoreFuncTbl[])(void) = { }; static s32 itemMdlTbl[] = { - 0x0007006D, - 0x0007006E, - 0x0007006F, - 0x00070070, - 0x00070071, - 0x00070072, - 0x00070073, - 0x00070074, - 0x00070076, - 0x00070077, - 0x00070078, - 0x00070079, - 0x0007007A, - 0x0007007B + DATA_MAKE_NUM(DATADIR_BOARD, 109), + DATA_MAKE_NUM(DATADIR_BOARD, 110), + DATA_MAKE_NUM(DATADIR_BOARD, 111), + DATA_MAKE_NUM(DATADIR_BOARD, 112), + DATA_MAKE_NUM(DATADIR_BOARD, 113), + DATA_MAKE_NUM(DATADIR_BOARD, 114), + DATA_MAKE_NUM(DATADIR_BOARD, 115), + DATA_MAKE_NUM(DATADIR_BOARD, 116), + DATA_MAKE_NUM(DATADIR_BOARD, 118), + DATA_MAKE_NUM(DATADIR_BOARD, 119), + DATA_MAKE_NUM(DATADIR_BOARD, 120), + DATA_MAKE_NUM(DATADIR_BOARD, 121), + DATA_MAKE_NUM(DATADIR_BOARD, 122), + DATA_MAKE_NUM(DATADIR_BOARD, 123) }; static s32 forceMoveSfxTbl[] = { @@ -169,14 +172,14 @@ static s32 forceMoveSfxTbl[] = { }; static s32 callMotTbl[] = { - 0x005F0052, - 0x001A0052, - 0x006D0052, - 0x008A0052, - 0x00850052, - 0x00110052, - 0x000D0052, - 0x00810052 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 82), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 82), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 82), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 82), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 82), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 82), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 82), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 82) }; static char *callHookTbl[] = { @@ -191,32 +194,32 @@ static char *callHookTbl[] = { }; static s32 callAttackMotTbl[] = { - 0x0075001F, - 0x00760005, - 0x0077001D, - 0x00780009, - 0x00790007, - 0x007A0013 + DATA_MAKE_NUM(DATADIR_W01, 31), + DATA_MAKE_NUM(DATADIR_W02, 5), + DATA_MAKE_NUM(DATADIR_W03, 29), + DATA_MAKE_NUM(DATADIR_W04, 9), + DATA_MAKE_NUM(DATADIR_W05, 7), + DATA_MAKE_NUM(DATADIR_W06, 19) }; static s32 callAttackMotTbl2[] = { - 0x00750020, - 0x00760006, - 0x0077001E, - 0x0078000A, - 0x00790008, - 0x007A0014 + DATA_MAKE_NUM(DATADIR_W01, 32), + DATA_MAKE_NUM(DATADIR_W02, 6), + DATA_MAKE_NUM(DATADIR_W03, 30), + DATA_MAKE_NUM(DATADIR_W04, 10), + DATA_MAKE_NUM(DATADIR_W05, 8), + DATA_MAKE_NUM(DATADIR_W06, 20) }; static s32 suitMotTbl[][2] = { - { 0x00040001, 0x00040002 }, - { 0x00040004, 0x00040005 }, - { 0x00040007, 0x00040008 }, - { 0x0004000A, 0x0004000B }, - { 0x0004000D, 0x0004000E }, - { 0x00040010, 0x00040011 }, - { 0x00040013, 0x00040014 }, - { 0x00040016, 0x00040017 } + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 1), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 2) }, + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 4), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 5) }, + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 7), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 8) }, + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 10), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 11) }, + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 13), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 14) }, + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 16), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 17) }, + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 19), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 20) }, + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 22), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 23) } }; void BoardItemStart(s32 arg0, s32 arg1) { @@ -490,7 +493,7 @@ static Process *ItemShowProc(UnkItemShowProcStruct *arg0, Vec *arg1) { sp20.z += 50.0 * cos(sp14.y * M_PI / 180.0); sp20.x += 50.0 * sin(sp14.y * M_PI / 180.0); CharModelEffectCreate(1, &sp20); - HuPrcSleep(0xA); + HuPrcSleep(10); } if (suitMdl >= 0) { BoardModelVisibilitySet(suitMdl, 1); @@ -527,7 +530,7 @@ static s16 ItemGetTarget(void) { var_r28++; } } - HuWinMesMaxSizeGet(1, sp8, 0x12000E); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(18, 14)); temp_r29 = HuWinCreate(-10000.0f, -10000.0f, sp8[0], sp8[1], 0); if (!GWPlayer[currItemRestore].com) { winData[temp_r29].active_pad = (1 << GWPlayer[currItemRestore].port); @@ -535,7 +538,7 @@ static s16 ItemGetTarget(void) { for (var_r31 = 0; var_r31 < var_r27; var_r31++) { HuWinInsertMesSet(temp_r29, GWPlayerCfg[sp20[var_r31]].character, var_r31); } - HuWinMesSet(temp_r29, 0x12000E); + HuWinMesSet(temp_r29, MAKE_MESSID(18, 14)); if (GWPlayer[currItemRestore].com) { var_r26 = 0xF; } else { @@ -623,7 +626,7 @@ static void ExecItemMini(void) { omVibrate(currItemRestore, 90, 6, 6); HuAudFXPlay(0x313); ItemSizeSet(1); - HuPrcSleep(0x3C); + HuPrcSleep(60); HuPrcKill(NULL); while (1) { HuPrcVSleep(); @@ -640,7 +643,7 @@ static void ExecItemMega(void) { omVibrate(currItemRestore, 90, 4, 2); HuAudFXPlay(0x311); ItemSizeSet(2); - HuPrcSleep(0x3C); + HuPrcSleep(60); HuPrcKill(NULL); while (1) { HuPrcVSleep(); @@ -657,7 +660,7 @@ static void ExecItemMiniSuper(void) { omVibrate(currItemRestore, 90, 4, 2); HuAudFXPlay(0x313); ItemSizeSet(1); - HuPrcSleep(0x3C); + HuPrcSleep(60); HuPrcKill(NULL); while (1) { HuPrcVSleep(); @@ -674,7 +677,7 @@ static void ExecItemMegaSuper(void) { omVibrate(currItemRestore, 90, 0xC, 0); HuAudFXPlay(0x311); ItemSizeSet(2); - HuPrcSleep(0x3C); + HuPrcSleep(60); HuPrcKill(NULL); while (1) { HuPrcVSleep(); @@ -707,13 +710,13 @@ static void ExecItemHammer(void) { BoardModelScaleSetV(suitMdl, &sp60); sp6C.x = sp6C.y = sp6C.z = 0.0f; BoardUiInlineFunc01(&sp6C); - HuWinMesMaxSizeGet(1, sp10, 0x120011); + HuWinMesMaxSizeGet(1, sp10, MAKE_MESSID(18, 17)); temp_r28 = HuWinCreate(-10000.0f, 320.0f, sp10[0], sp10[1], 0); - HuWinMesSet(temp_r28, 0x120011); + HuWinMesSet(temp_r28, MAKE_MESSID(18, 17)); HuWinBGTPLvlSet(temp_r28, 0.0f); HuWinMesSpeedSet(temp_r28, 0); if (GWPlayer[currItemRestore].com) { - var_r26 = frandmod(0x78) + 0x1E; + var_r26 = frandmod(120) + 30; } for (i = 1; i <= 0x12C; i++) { if (i % 10 == 0) { @@ -740,7 +743,7 @@ static void ExecItemHammer(void) { BoardModelAttrSet(suitMdl, 0x40000002); HuAudFXPlay(0x316); HuWinKill(temp_r28); - omVibrate(temp_r27, 0xC, 6, 6); + omVibrate(temp_r27, 12, 6, 6); if (var_r30 != 0) { BoardPlayerAutoSizeSet(temp_r27, 2); } else { @@ -806,11 +809,11 @@ static void ExecItemPipe(void) { BoardModelPosSetV(sp30[var_r31], &spE4[var_r31]); } if (sp58[0] == sp58[1]) { - HuWinMesMaxSizeGet(1, sp48, 0x120012); + HuWinMesMaxSizeGet(1, sp48, MAKE_MESSID(18, 18)); temp_r28 = HuWinCreate(-10000.0f, -10000.0f, sp48[0], sp48[1], 0); - HuWinMesSet(temp_r28, 0x120012); + HuWinMesSet(temp_r28, MAKE_MESSID(18, 18)); HuWinMesWait(temp_r28); - HuPrcSleep(0xB4); + HuPrcSleep(180); HuWinKill(temp_r28); } else { BoardUiInlineFunc03(sp2C[1]); @@ -819,7 +822,7 @@ static void ExecItemPipe(void) { BoardModelVisibilitySet(sp30[var_r31], 1); BoardPlayerPosGet(sp2C[var_r31], &spCC[var_r31]); } - for (var_r31 = 0; var_r31 < 0x3C; var_r31++) { + for (var_r31 = 0; var_r31 < 60; var_r31++) { sp9C.y += 0.033333335f; for (var_r30 = 0; var_r30 < 2; var_r30++) { BoardModelScaleSetV(sp30[var_r30], &sp9C); @@ -832,7 +835,7 @@ static void ExecItemPipe(void) { for (var_r31 = 0; var_r31 < 2; var_r31++) { BoardModelScaleSetV(sp30[var_r31], &sp9C); } - HuPrcSleep(0xA); + HuPrcSleep(10); HuAudFXPlay(0x35A); omVibrate(sp2C[0], 0xC, 4, 2); var_f30 = 5.0f; @@ -859,7 +862,7 @@ static void ExecItemPipe(void) { HuPrcVSleep(); } WipeColorSet(0, 0, 0); - WipeCreate(2, 0, 0x1E); + WipeCreate(2, 0, 30); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -885,7 +888,7 @@ static void ExecItemPipe(void) { BoardPlayerVoiceEnableSet(sp2C[var_r31], 4, 0); BoardModelVisibilitySet(BoardPlayerModelGet(sp2C[var_r31]), 0); } - WipeCreate(1, 0, 0x1E); + WipeCreate(1, 0, 30); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -944,7 +947,7 @@ static void ExecItemPipe(void) { BoardModelVoiceEnableSet(BoardPlayerModelGet(sp2C[1]), 6, 0); CharModelLayerSetAll(2); BoardPlayerIdleSet(sp2C[0]); - for (var_r31 = 0; var_r31 < 0x2D; var_r31++) { + for (var_r31 = 0; var_r31 < 45; var_r31++) { sp9C.y -= 0.044444446f; for (var_r30 = 0; var_r30 < 2; var_r30++) { BoardModelScaleSetV(sp30[var_r30], &sp9C); @@ -955,7 +958,7 @@ static void ExecItemPipe(void) { BoardModelVisibilitySet(sp30[var_r31], 0); } BoardUiInlineFunc03(sp2C[0]); - BoardWinCreate(2, 0x12001D, -1); + BoardWinCreate(2, MAKE_MESSID(18, 29), -1); BoardWinInsertMesSet(GWPlayerCfg[sp2C[0]].character, 0); BoardWinInsertMesSet(GWPlayerCfg[sp2C[1]].character, 1); BoardWinWait(); @@ -1105,7 +1108,7 @@ static void ExecItemSwap(void) { PSVECScale(&sp6C, &sp6C, 0.033333335f); PSVECSubtract(&sp78, &sp180[var_r31], &sp60); PSVECScale(&sp60, &sp60, 0.033333335f); - for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + for (var_r30 = 0; var_r30 < 30; var_r30++) { BoardModelPosSetV(sp54[var_r31], &sp1A4[var_r31]); BoardModelPosSetV(sp54[var_r31 + 3], &sp180[var_r31]); PSVECAdd(&sp1A4[var_r31], &sp6C, &sp1A4[var_r31]); @@ -1117,9 +1120,9 @@ static void ExecItemSwap(void) { BoardModelPosSetV(sp54[var_r31], &sp1A4[var_r31]); BoardModelPosSetV(sp54[var_r31 + 3], &sp180[var_r31]); } - omVibrate(currItemRestore, 0xB4, 6, 6); - omVibrate(temp_r24, 0xB4, 6, 6); - for (var_r31 = 0; var_r31 < 0x3C; var_r31++) { + omVibrate(currItemRestore, 180, 6, 6); + omVibrate(temp_r24, 180, 6, 6); + for (var_r31 = 0; var_r31 < 60; var_r31++) { for (var_r30 = 0; var_r30 < var_r28 / 2; var_r30++) { sp6C = sp1A4[var_r30]; sp6C.x += 3.0 * sin((frand() % 360) * M_PI / 180.0); @@ -1154,7 +1157,7 @@ static void ExecItemSwap(void) { PSVECScale(&sp6C, &sp6C, 0.033333335f); PSVECSubtract(&spB4, &sp180[var_r31], &sp60); PSVECScale(&sp60, &sp60, 0.033333335f); - for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + for (var_r30 = 0; var_r30 < 30; var_r30++) { BoardModelPosSetV(sp54[var_r31], &sp1A4[var_r31]); BoardModelPosSetV(sp54[var_r31 + 3], &sp180[var_r31]); PSVECAdd(&sp1A4[var_r31], &sp6C, &sp1A4[var_r31]); @@ -1211,7 +1214,7 @@ static void ExecItemSpark(void) { s32 i; (void)106.0; - temp_r30 = BoardModelCreate(0x70067, NULL, 0); + temp_r30 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 103), NULL, 0); BoardModelLayerSet(temp_r30, 3); BoardModelVisibilitySet(temp_r30, 0); HuAudFXPlay(0x350); @@ -1271,7 +1274,7 @@ static void ExecItemSpark(void) { HuPrcVSleep(); } for (i = 0; i < 4; i++) { - omVibrate(i, 0xC, 4, 2); + omVibrate(i, 12, 4, 2); } HuAudFXPlay(0x31C); BoardModelVisibilitySet(temp_r30, 1); @@ -1280,7 +1283,7 @@ static void ExecItemSpark(void) { HuPrcVSleep(); } var_f31 = 255.0f; - for (i = 0; i < 0x2D; i++) { + for (i = 0; i < 45; i++) { var_f31 -= 5.6666665f; BoardModelAlphaSet(suitMdl, var_f31); HuPrcVSleep(); @@ -1300,8 +1303,8 @@ static void ExecItemLight(void) { HuAudFXPlay(0x350); ItemShowProc(NULL, NULL); - BoardWinCreateChoice(2, 0x12000F, -1, 0); - BoardWinInsertMesSet(0x80008, 3); + BoardWinCreateChoice(2, MAKE_MESSID(18, 15), -1, 0); + BoardWinInsertMesSet(MAKE_MESSID(8, 8), 3); if (GWPlayer[currItemRestore].com) { BoardComKeySetRight(); } @@ -1362,9 +1365,9 @@ static void ExecItemWhistle(void) { var_f31 = 0.003921569f * (frand() & 0xFF) * 360.0f; spA8.x = spA8.y = spA8.z = 0.5f; for (var_r31 = 0; var_r31 < 4; var_r31++) { - sp20[var_r31] = BoardModelCreate(0x20027, NULL, 1); + sp20[var_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 39), NULL, 1); BoardModelLayerSet(sp20[var_r31], 2); - temp_r17 = BoardModelMotionCreate(sp20[var_r31], 0x20028); + temp_r17 = BoardModelMotionCreate(sp20[var_r31], DATA_MAKE_NUM(DATADIR_BGUEST, 40)); BoardModelMotionStart(sp20[var_r31], temp_r17, 0x40000001); sp28[var_r31] = 120.0f; spF0[var_r31].x = spB4.x + 120.0 * sin(var_f31 * M_PI / 180.0); @@ -1397,7 +1400,7 @@ static void ExecItemWhistle(void) { PSVECScale(&sp78, &sp78, 0.03448276f); BoardPlayerMotionStart(currItemRestore, temp_r23, 0); BoardPlayerMotionTimeSet(currItemRestore, 1.0f); - for (var_r31 = 0; var_r31 < 0x1D; var_r31++) { + for (var_r31 = 0; var_r31 < 29; var_r31++) { sp90.y += sp78.y; sp90.z += sp78.z; BoardModelPosSetV(suitMdl, &sp90); @@ -1418,7 +1421,7 @@ static void ExecItemWhistle(void) { HuPrcVSleep(); } WipeColorSet(0, 0, 0); - WipeCreate(2, 0, 0x3C); + WipeCreate(2, 0, 60); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -1433,7 +1436,7 @@ static void ExecItemWhistle(void) { for (var_r31 = 0; var_r31 < 4; var_r31++) { BoardModelVisibilitySet(sp20[var_r31], 1); } - WipeCreate(1, 0, 0x3C); + WipeCreate(1, 0, 60); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -1459,7 +1462,7 @@ static void ExecItemWhistle(void) { if (var_r27 == 0) { var_r27 = 1; for (var_r29 = 0; var_r29 < 4; var_r29++) { - omVibrate(var_r29, 0xC, 6, 6); + omVibrate(var_r29, 12, 6, 6); } HuAudFXPlay(0x321); } @@ -1478,7 +1481,7 @@ static void ExecItemWhistle(void) { } BoardModelMotionShiftSet(temp_r28, temp_r20, 0.0f, 5.0f, 0x40000001); HuAudFXPlay(0x322); - for (var_r29 = 0; var_r29 < 0xB4; var_r29++) { + for (var_r29 = 0; var_r29 < 180; var_r29++) { for (var_r31 = 0; var_r31 < 4; var_r31++) { sp38[var_r31] += 4.0f; if (sp38[var_r31] >= 360.0f) { @@ -1495,14 +1498,14 @@ static void ExecItemWhistle(void) { } HuPrcVSleep(); } - for (var_r29 = 0; var_r29 < 0x14; var_r29++) { + for (var_r29 = 0; var_r29 < 20; var_r29++) { for (var_r31 = 0; var_r31 < 4; var_r31++) { spC0[var_r31].y += 4.5f; BoardModelRotSetV(sp20[var_r31], &spC0[var_r31]); } HuPrcVSleep(); } - HuPrcSleep(0x1E); + HuPrcSleep(30); var_f30 = 35.0f; var_r26 = 0; for (var_r31 = 0; var_r31 < 4; var_r31++) { @@ -1536,8 +1539,8 @@ static void ExecItemWhistle(void) { BoardModelPosSetV(temp_r28, &sp9C); var_f30 *= 0.945f; if (sp9C.y >= 500.0f && var_r26 == 0) { - WipeCreate(2, 0, 0x2D); - BoardAudSeqFadeOut(0, 0x3E8); + WipeCreate(2, 0, 45); + BoardAudSeqFadeOut(0, 1000); var_r26 = 1; } } @@ -1572,15 +1575,15 @@ static void ExecItemBowser(void) { BoardBowserSuitInit(currItemRestore); suitMdl = BoardBowserSuitModelGet(); temp_r31 = BoardBowserSuitPlayerModelGet(); - suitMot[0] = BoardModelMotionCreate(suitMdl, 0x4001C); - suitMot[1] = BoardModelMotionCreate(suitMdl, 0x4001D); + suitMot[0] = BoardModelMotionCreate(suitMdl, DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 28)); + suitMot[1] = BoardModelMotionCreate(suitMdl, DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 29)); suitCommonMot[0] = BoardModelMotionCreate(temp_r31, suitMotTbl[GWPlayer[currItemRestore].character][0]); suitCommonMot[1] = BoardModelMotionCreate(temp_r31, suitMotTbl[GWPlayer[currItemRestore].character][1]); BoardModelVisibilitySet(temp_r31, 0); HuAudFXPlay(0x350); sp20.x = sp20.y = sp20.z = 0.3f; ItemShowProc(NULL, &sp20); - for (i = 0; i < 0x1E; i++) { + for (i = 0; i < 30; i++) { sp20.x += 0.023333333f; sp20.y += 0.023333333f; sp20.z += 0.023333333f; @@ -1624,8 +1627,8 @@ static void ExecItemBowser(void) { BoardModelMotionShiftSet(temp_r31, suitCommonMot[0], 0.0f, 5.0f, 0); HuPrcSleep(0x28); HuAudPlayerVoicePlay(currItemRestore, 0x129); - omVibrate(currItemRestore, 0xC, 4, 2); - HuPrcSleep(0x3C); + omVibrate(currItemRestore, 12, 4, 2); + HuPrcSleep(60); BoardModelMotionShiftSet(suitMdl, 0, 0.0f, 5.0f, 0x40000001); HuPrcKill(NULL); while (1) { @@ -1634,8 +1637,8 @@ static void ExecItemBowser(void) { } static s32 booMotTbl[3] = { - 0x00020018, - 0x00020016, + DATA_MAKE_NUM(DATADIR_BGUEST, 24), + DATA_MAKE_NUM(DATADIR_BGUEST, 22), -1 }; @@ -1719,9 +1722,9 @@ static void ExecItemBooBall(void) { s32 var_r30; s32 var_r31; - BoardAudSeqPause(0, 1, 0x3E8); + BoardAudSeqPause(0, 1, 1000); suitMdl = BoardBooCreate(currItemRestore, &sp74); - booBallMdl = BoardModelCreate(0x20012, booMotTbl, 0); + booBallMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 18), booMotTbl, 0); BoardModelMotionStart(booBallMdl, 1, 0x40000001); BoardModelLayerSet(booBallMdl, 2); BoardModelAttrSet(booBallMdl, 2); @@ -1743,11 +1746,11 @@ static void ExecItemBooBall(void) { sp1C = BoardUiInlineFunc05(&sp80); BoardMusStart(1, 1, 0x7F, 0); HuAudFXPlay(0x4C); - BoardWinCreate(2, 0x120015, 3); + BoardWinCreate(2, MAKE_MESSID(18, 21), 3); BoardWinWait(); BoardWinKill(); if (BoardPlayerCoinsGet(currItemRestore) < 5) { - BoardWinCreate(2, 0x120016, 3); + BoardWinCreate(2, MAKE_MESSID(18, 22), 3); BoardWinWait(); BoardWinKill(); } else { @@ -1764,7 +1767,7 @@ static void ExecItemBooBall(void) { } } do { - BoardWinCreateChoice(4, 0x120018, 3, 0); + BoardWinCreateChoice(4, MAKE_MESSID(18, 24), 3, 0); BoardWinAttrSet(0x10); if (BoardPlayerCoinsGet(currItemRestore) < 50 || var_r28 == 0) { BoardWinChoiceDisable(1); @@ -1797,47 +1800,47 @@ static void ExecItemBooBall(void) { sp68.x = 0.0f; sp68.y = 0.0f; sp68.z = 0.0f; - BoardCameraMotionStartEx(suitMdl, 0, &sp68, 325.0f, -1.0f, 0x15); + BoardCameraMotionStartEx(suitMdl, NULL, &sp68, 325.0f, -1.0f, 21); BoardBooStealMain(); BoardCameraViewSet(2); BoardCameraMotionWait(); ExecItemBooBallInlineFunc02(30); var_r29 = BoardBooStealValueGet(&spC, &spA); if (var_r29 == 0) { - var_r30 = 0x7000B; + var_r30 = MAKE_MESSID(7, 11); } else if (spA == 0) { - var_r30 = 0x70009; + var_r30 = MAKE_MESSID(7, 9); } else if (spA >= 1 && spA <= 3) { - var_r30 = 0x70008; + var_r30 = MAKE_MESSID(7, 8); } else if (spA >= 4 && spA <= 6) { - var_r30 = 0x70007; + var_r30 = MAKE_MESSID(7, 7); } else if (spA >= 7 && spA <= 8) { - var_r30 = 0x70006; + var_r30 = MAKE_MESSID(7, 6); } else { - var_r30 = 0x70005; + var_r30 = MAKE_MESSID(7, 5); } sprintf(booCoinStr, "%d", spC); HuAudFXPlay(0x4C); BoardWinCreate(2, var_r30, 3); - BoardWinInsertMesSet((u32) (booCoinStr), 0); + BoardWinInsertMesSet(MAKE_MESSID_PTR(booCoinStr), 0); BoardWinWait(); BoardWinKill(); BoardStatusShowSetAll(1); if (var_r29 != 0) { BoardPlayerMotionShiftSet(currItemRestore, 7, 0.0f, 8.0f, 0); - HuPrcSleep(0x1E); + HuPrcSleep(30); for (var_r31 = 0; var_r31 < spC; var_r31++) { BoardPlayerCoinsAdd(currItemRestore, 1); HuAudFXPlay(7); HuPrcVSleep(); } BoardPlayerMotionEndWait(currItemRestore); - HuPrcSleep(0xA); + HuPrcSleep(10); BoardPlayerMotionShiftSet(currItemRestore, 1, 0.0f, 8.0f, 0x40000001); } break; case 1: - for (var_r31 = 0; var_r31 < 0x32; var_r31++) { + for (var_r31 = 0; var_r31 < 50; var_r31++) { BoardPlayerCoinsAdd(currItemRestore, -1); HuAudFXPlay(0xE); HuPrcSleep(1); @@ -1849,24 +1852,24 @@ static void ExecItemBooBall(void) { sp68.x = 0.0f; sp68.y = 0.0f; sp68.z = 0.0f; - BoardCameraMotionStartEx(suitMdl, 0, &sp68, 325.0f, -1.0f, 0x15); + BoardCameraMotionStartEx(suitMdl, NULL, &sp68, 325.0f, -1.0f, 21); BoardBooStealMain(); var_r29 = BoardBooStealLightCheck(); BoardCameraViewSet(2); BoardCameraMotionWait(); ExecItemBooBallInlineFunc02(30); if (var_r29 != 0) { - var_r30 = 0x7000A; + var_r30 = MAKE_MESSID(7, 10); } else { - var_r30 = 0x7000B; + var_r30 = MAKE_MESSID(7, 11); } HuAudFXPlay(0x4C); BoardWinCreate(2, var_r30, 3); BoardWinWait(); BoardWinKill(); BoardStatusShowSetAll(1); - BoardAudSeqFadeOut(1, 0x3E8); - HuPrcSleep(0x17); + BoardAudSeqFadeOut(1, 1000); + HuPrcSleep(23); if (var_r29 != 0) { BoardPlayerVoiceEnableSet(currItemRestore, 7, 0); sp18 = HuAudSStreamPlay(6); @@ -1889,28 +1892,28 @@ static void ExecItemBooBall(void) { case 2: case -1: HuAudFXPlay(0x4C); - BoardWinCreate(2, 0x120017, 3); + BoardWinCreate(2, MAKE_MESSID(18, 23), 3); BoardWinWait(); BoardWinKill(); break; } } while (var_r29 == 3); } - BoardAudSeqFadeOut(1, 0x3E8); + BoardAudSeqFadeOut(1, 1000); HuPrcKill(sp1C); BoardModelPosGet(booBallMdl, &booBallPos); HuAudFXPlay(0x34F); ExecItemBooBallInlineFunc01(60); HuPrcKill(temp_r17); - BoardAudSeqPause(0, 0, 0x3E8); + BoardAudSeqPause(0, 0, 1000); CharModelLayerSetAll(3); BoardModelPosGet(suitMdl, &sp74); CharModelEffectCreate(1, &sp74); HuAudFXPlay(0x351); - HuPrcSleep(0xA); + HuPrcSleep(10); BoardModelKill(suitMdl); BoardModelKill(booBallMdl); - HuPrcSleep(0xF); + HuPrcSleep(15); HuPrcKill(NULL); while (1) { HuPrcVSleep(); @@ -2111,36 +2114,36 @@ static void GenieCameraCalc(UnkGenieCameraStruct *arg0, s32 arg1, float arg2, Ve } static s32 armUpMotTbl[] = { - 0x005F005C, - 0x001A005C, - 0x006D005C, - 0x008A005C, - 0x0085005C, - 0x0011005C, - 0x000D005C, - 0x0081005C + DATA_MAKE_NUM(DATADIR_MARIOMOT, 92), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 92), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 92), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 92), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 92), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 92), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 92), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 92) }; static s32 scareMotTbl[] = { - 0x005F001C, - 0x001A001C, - 0x006D001C, - 0x008A001C, - 0x0085001C, - 0x0011001C, - 0x000D001C, - 0x0081001C + DATA_MAKE_NUM(DATADIR_MARIOMOT, 28), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 28), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 28), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 28), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 28), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 28), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 28), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 28) }; static s32 impactMotTbl[] = { - 0x005F005E, - 0x001A005E, - 0x006D005E, - 0x008A005E, - 0x0085005E, - 0x0011005E, - 0x000D005E, - 0x0081005E + DATA_MAKE_NUM(DATADIR_MARIOMOT, 94), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 94), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 94), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 94), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 94), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 94), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 94), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 94) }; static UnkGenieCameraStruct cameraDataTbl[] = { @@ -2158,9 +2161,9 @@ static UnkGenieCameraStruct cameraDataTbl[] = { }; static s32 genieMotTbl[] = { - 0x0007007D, - 0x0007007E, - 0x0007007F, + DATA_MAKE_NUM(DATADIR_BOARD, 125), + DATA_MAKE_NUM(DATADIR_BOARD, 126), + DATA_MAKE_NUM(DATADIR_BOARD, 127), -1 }; @@ -2190,16 +2193,16 @@ static void GenieSceneExec(void) { BoardStatusShowSet(i, 0); } BoardLightResetExec(); - temp_r25 = BoardModelCreate(0x70080, NULL, 0); + temp_r25 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 128), NULL, 0); sp50.x = sp50.y = sp50.z = 0.0f; BoardModelPosSetV(temp_r25, &sp50); BoardModelCameraSet(temp_r25, 2); Hu3DModelAmbSet(BoardModelIDGet(temp_r25), 1.0f, 1.0f, 1.0f); - temp_r24 = BoardModelCreate(0x70081, NULL, 0); + temp_r24 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 129), NULL, 0); BoardModelPosSetV(temp_r24, &sp50); BoardModelCameraSet(temp_r24, 2); Hu3DModelAmbSet(BoardModelIDGet(temp_r24), 1.0f, 1.0f, 1.0f); - temp_r28 = BoardModelCreate(0x7007C, genieMotTbl, 0); + temp_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 124), genieMotTbl, 0); sp50.x = sp50.y = 0.0f; sp50.z = 600.0f; sp44.x = sp44.z = 0.0f; @@ -2244,7 +2247,7 @@ static void GenieSceneExec(void) { Hu3DModelPosSet(temp_r27, booCamPos.x, booCamPos.y, booCamPos.z - 175.0f); temp_r23 = Hu3DData[temp_r27].unk_120; temp_r23->unk_02 = 1; - WipeCreate(1, 0, 0x2D); + WipeCreate(1, 0, 45); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -2252,18 +2255,18 @@ static void GenieSceneExec(void) { while (temp_r23->unk_02 != 0) { HuPrcVSleep(); } - HuPrcSleep(0x2D); + HuPrcSleep(45); HuAudPlayerVoicePlay(currItemRestore, 0x128); BoardPlayerMotionStart(currItemRestore, geniePlayerMot[1], 0); BoardPlayerMotionEndWait(currItemRestore); - HuPrcSleep(0x19); + HuPrcSleep(25); Hu3DModelKill(temp_r27); - for (i = 0; i < 0xA; i++) { + for (i = 0; i < 10; i++) { genieFov += 4.5f; HuPrcVSleep(); } genieFov = 60.0f; - HuPrcSleep(0x5A); + HuPrcSleep(90); var_f31 = 0.0f; var_r26 = 0; while (1) { @@ -2279,7 +2282,7 @@ static void GenieSceneExec(void) { HuPrcVSleep(); } GenieCameraCalc(&cameraDataTbl[0], var_r26, 1.0f, &booCamPos, &booCamUp); - HuPrcSleep(0x96); + HuPrcSleep(150); BoardPlayerIdleSet(currItemRestore); sp2C = booCamPos; sp20 = booCamUp; @@ -2290,7 +2293,7 @@ static void GenieSceneExec(void) { booCamPos.y = booCamUp.y + 950.0f; booCamPos.z = booCamUp.z + cos(-5 * M_PI / 9) * 1100.0; HuAudFXPlay(0x356); - BoardWinCreate(2, 0x12001B, -1); + BoardWinCreate(2, MAKE_MESSID(18, 27), -1); BoardWinWait(); BoardWinKill(); booCamUp = sp20; @@ -2323,7 +2326,7 @@ static void GenieSceneExec(void) { BoardModelPosSetV(temp_r28, &sp50); booCamUp.y = sp38.y + 100.0f; BoardModelMotionStart(temp_r28, 2, 0); - omVibrate(currItemRestore, 0xC, 0xC, 0); + omVibrate(currItemRestore, 12, 0xC, 0); booCamUp.y = 500.0f; HuAudFXPlay(0x35B); HuAudFXPlay((GWPlayer[currItemRestore].character << 6) + 0x123); @@ -2341,8 +2344,8 @@ static void GenieSceneExec(void) { } HuPrcVSleep(); } - WipeCreate(2, 0, 0x2D); - BoardAudSeqFadeOut(1, 0x3E8); + WipeCreate(2, 0, 45); + BoardAudSeqFadeOut(1, 1000); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -2379,7 +2382,7 @@ static void ExecItemGenie(void) { suitMdl = BoardModelCreate(itemMdlTbl[currItem], NULL, 1); BoardModelLayerSet(suitMdl, 2); - genieParticleAnim = HuSprAnimRead(HuDataSelHeapReadNum(0x70069, MEMORY_DEFAULT_NUM, HEAP_DATA)); + genieParticleAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_BOARD, 105)); HuSprAnimLock(genieParticleAnim); geniePlayerMot[0] = BoardPlayerMotionCreate(currItemRestore, armUpMotTbl[GWPlayer[currItemRestore].character]); geniePlayerMot[1] = BoardPlayerMotionCreate(currItemRestore, scareMotTbl[GWPlayer[currItemRestore].character]); @@ -2396,11 +2399,11 @@ static void ExecItemGenie(void) { HuAudFXPlay(0x323); var_r30 = 0; while (1) { - if (var_r30 == 0x69) { + if (var_r30 == 105) { BoardPlayerMotionStart(currItemRestore, geniePlayerMot[0], 0); } BoardModelRotGet(suitMdl, &spC); - if (90.0f - spC.y <= sp24.unk14 && 90.0f - spC.y >= 0.0f && var_r30 >= 0x78) { + if (90.0f - spC.y <= sp24.unk14 && 90.0f - spC.y >= 0.0f && var_r30 >= 120) { break; } HuPrcVSleep(); @@ -2418,13 +2421,13 @@ static void ExecItemGenie(void) { BoardModelPosGet(suitMdl, &spC); Hu3DModelPosSet(temp_r31, spC.x, spC.y, spC.z); sp8 = Hu3DData[temp_r31].unk_120; - omVibrate(currItemRestore, 0xB5, 6, 6); - HuPrcSleep(0x87); - BoardAudSeqPause(0, 1, 0x3E8); + omVibrate(currItemRestore, 181, 6, 6); + HuPrcSleep(135); + BoardAudSeqPause(0, 1, 1000); HuAudFXStop(temp_r25); HuAudFXPauseAll(1); WipeColorSet(0xFF, 0xFF, 0xFF); - WipeCreate(2, 0, 0x2D); + WipeCreate(2, 0, 45); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -2444,8 +2447,8 @@ static void ExecItemGenie(void) { BoardPlayerPosSetV(currItemRestore, &spC); BoardCameraMotionWait(); BoardCameraMoveSet(1); - WipeCreate(1, 0, 0x2D); - HuPrcSleep(0xF); + WipeCreate(1, 0, 45); + HuPrcSleep(15); BoardAudSeqPause(0, 0, 1000); while (WipeStatGet() != 0) { HuPrcVSleep(); @@ -2467,7 +2470,7 @@ static void ExecItemGenie(void) { var_f31 += 1.0f; spC.y += var_f30; if (spC.y <= sp18.y) { - omVibrate(currItemRestore, 0xC, 6, 6); + omVibrate(currItemRestore, 12, 6, 6); spC.y = sp18.y; var_f29 = -var_f30 * 0.2f; if (fabs(var_f29) <= 5.0) { @@ -2626,19 +2629,19 @@ static void ExecItemBag(void) { sp3C.unk1C = 0; HuAudFXPlay(0x350); temp_r24 = ItemShowProc(&sp3C, NULL); - HuWinMesMaxSizeGet(1, sp10, 0x120014); + HuWinMesMaxSizeGet(1, sp10, MAKE_MESSID(18, 20)); temp_r28 = HuWinCreate(-10000.0f, 320.0f, sp10[0], sp10[1], 0); - HuWinMesSet(temp_r28, 0x120014); + HuWinMesSet(temp_r28, MAKE_MESSID(18, 20)); HuWinBGTPLvlSet(temp_r28, 0.0f); HuWinMesSpeedSet(temp_r28, 0); - var_r26 = frandmod(0x28) + 0x1E; + var_r26 = frandmod(40) + 30; var_r30 = 0; sp24.x = sp24.y = sp24.z = 0.0f; while (var_r30 < temp_r27) { if (GWPlayerCfg[currItemRestore].iscom == 1) { if (--var_r26 == 0) { var_r25 = 0x100; - var_r26 = frandmod(0x28) + 0x1E; + var_r26 = frandmod(40) + 30; } } else { var_r25 = HuPadBtnDown[temp_r23]; @@ -2659,13 +2662,13 @@ static void ExecItemBag(void) { temp_r29->user_data = (void*) sp8[var_r30]; temp_r29 = HuPrcChildCreate(ExecItemBagShow, 0x2004, 0x1000, 0, HuPrcCurrentGet()); temp_r29->user_data = temp_r24; - while (GWPlayer[currItemRestore].field08_bit3) { + while (GWPlayer[currItemRestore].jump) { HuPrcVSleep(); } HuPrcChildWatch(); BoardPlayerItemAdd(currItemRestore, itemBagItems[var_r30]); BoardPlayerMotionShiftSet(currItemRestore, 1, 0.0f, 10.0f, 0x40000001); - HuPrcSleep(0xA); + HuPrcSleep(10); var_r30++; } } @@ -2674,13 +2677,13 @@ static void ExecItemBag(void) { CharModelLayerSetAll(3); CharModelEffectCreate(1, &sp30); HuAudFXPlay(0x351); - HuPrcSleep(0xA); + HuPrcSleep(10); HuPrcKill(temp_r24); BoardModelKill(suitMdl); for (i = 0; i < temp_r27; i++) { BoardModelKill(sp8[i]); } - HuPrcSleep(0x1E); + HuPrcSleep(30); HuPrcKill(NULL); while (1) { HuPrcVSleep(); @@ -2738,7 +2741,7 @@ static void RestoreItemBowser(void) { s16 temp_r29; s16 i; - temp_r31 = BoardModelCreate(0x70063, NULL, 0); + temp_r31 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 99), NULL, 0); BoardModelVisibilitySet(temp_r31, 0); BoardModelLayerSet(temp_r31, 3); BoardPlayerPosGet(currItemRestore, &sp14); @@ -2752,12 +2755,12 @@ static void RestoreItemBowser(void) { temp_r29 = BoardBowserSuitPlayerModelGet(); BoardModelMotionShiftSet(suitMdl, suitMot[0], 0.0f, 5.0f, 0); BoardModelMotionShiftSet(temp_r29, suitCommonMot[0], 0.0f, 5.0f, 0); - HuPrcSleep(0x28); + HuPrcSleep(40); HuAudPlayerVoicePlay(currItemRestore, 0x129); - HuPrcSleep(0x14); + HuPrcSleep(20); HuAudFXPlay(0x32B); BoardModelVisibilitySet(temp_r31, 1); - for (i = 0; i < 0x3C; i++) { + for (i = 0; i < 60; i++) { sp20.x += 0.15f; sp20.y += 0.15f; sp20.z += 0.15f; @@ -2766,14 +2769,14 @@ static void RestoreItemBowser(void) { } sp20.x = sp20.y = sp20.z = 9.0f; BoardModelScaleSetV(temp_r31, &sp20); - HuPrcSleep(0x3C); + HuPrcSleep(60); HuAudFXPlay(0x313); BoardModelHookReset(suitMdl); BoardBowserSuitKill(currItemRestore); sp8.x = sp8.y = sp8.z = 1.0f; BoardPlayerScaleSetV(currItemRestore, &sp8); BoardModelVisibilitySet(BoardPlayerModelGet(currItemRestore), 1); - for (i = 0; i < 0x3C; i++) { + for (i = 0; i < 60; i++) { sp20.x -= 0.15f; sp20.y -= 0.15f; sp20.z -= 0.15f; diff --git a/src/game/board/last5.c b/src/game/board/last5.c index ccf070e6..15f25834 100644 --- a/src/game/board/last5.c +++ b/src/game/board/last5.c @@ -690,7 +690,7 @@ static void Last5Main(void) } SetLotteryDrawState(1); SetLast5RouletteState(3); - while(GWPlayer[temp_r30].field08_bit3) { + while(GWPlayer[temp_r30].jump) { HuPrcVSleep(); } while(GetLast5RouletteState() != 0) { @@ -1062,7 +1062,7 @@ static void ExecLotteryDraw(void) Vec player_end; Vec player_start; - if(GWPlayer[0].field00_bit9 || GWPlayer[1].field00_bit9 || GWPlayer[2].field00_bit9 || GWPlayer[3].field00_bit9) { + if(GWPlayer[0].draw_ticket || GWPlayer[1].draw_ticket || GWPlayer[2].draw_ticket || GWPlayer[3].draw_ticket) { BoardWinCreate(2, messBase+1, BoardWinPortraitGetStar()); BoardWinWait(); BoardModelPosGet(hostMdl, &host_end); @@ -1257,13 +1257,13 @@ static void InitLotteryTicket(void) s32 character; s16 sprite; s32 member; - u8 ticket_mask; + u8 ticket_player; omObjData *object; TicketWork *work; currTicket = 0; lotteryTicketObj[0] = lotteryTicketObj[1] = lotteryTicketObj[2] = lotteryTicketObj[3] = NULL; for(numTickets=i=0; i<4; i++) { - if(!GWPlayer[i].field00_bit9) { + if(!GWPlayer[i].draw_ticket) { continue; } object = omAddObjEx(boardObjMan, 257, 0, 0, -1, UpdateLotteryTicket); @@ -1299,20 +1299,20 @@ static void InitLotteryTicket(void) HuSprAttrSet(work->group, 4, HUSPR_ATTR_DISPOFF); HuSprAttrSet(work->group, 4, HUSPR_ATTR_ADDCOL); HuSprScaleSet(work->group, 4, 1.3f, 1.3f); - ticket_mask = GWPlayer[i].field00_bitA; + ticket_player = GWPlayer[i].ticket_player; j=3; while(j>=0) { s32 player_spr; j--; - work->character[j] = GWPlayer[ticket_mask & 0x3].character; + work->character[j] = GWPlayer[ticket_player & 0x3].character; player_spr = playerSprTbl[work->character[j]]; member = j+1; BoardSpriteCreate(player_spr, 1500, NULL, &sprite); HuSprGrpMemberSet(work->group, member, sprite); HuSprAttrSet(work->group, member, HUSPR_ATTR_LINEAR); HuSprPosSet(work->group, member, playerOfsTbl[j][0], playerOfsTbl[j][1]); - ticket_mask >>= 2; + ticket_player >>= 2; } numTickets++; } diff --git a/src/game/board/lottery.c b/src/game/board/lottery.c index 188ebce5..f5689a87 100755 --- a/src/game/board/lottery.c +++ b/src/game/board/lottery.c @@ -23,8 +23,6 @@ #include "math.h" -void HuSprGrpDrawNoSet(s16 group, s32 draw_no); - #define ABS(x) (((x) < 0) ? -(x) : (x)) typedef struct { @@ -525,7 +523,7 @@ static void ExecLottery(void) { sp8.x = 0.0f; sp8.y = 200.0f; sp8.z = 0.0f; - BoardCameraMotionStartEx(lotteryMdl[0], &sp14, &sp8, 1300.0f, -1.0f, 0x1B); + BoardCameraMotionStartEx(lotteryMdl[0], &sp14, &sp8, 1300.0f, -1.0f, 27); if (BoardPlayerSizeGet(temp_r31) == 1) { BoardModelVisibilitySet(lotteryMdl[3], 1); } @@ -560,7 +558,7 @@ static void ExecLottery(void) { HuPrcVSleep(); } BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[0], 0.0f, 10.0f, 0x40000001); - if (GWPlayer[temp_r31].field00_bit9 == 0 && GWSystem.max_turn - GWSystem.turn >= 5) { + if (GWPlayer[temp_r31].draw_ticket == 0 && GWSystem.max_turn - GWSystem.turn >= 5) { SetupTicket(temp_r31); ShowTicket(); var_r27 = 1; @@ -737,7 +735,7 @@ static void ShowTicket(void) { if (GWBoardGet() == 7 || GWBoardGet() == 8) { return; } - sp8 = GWPlayer[GWSystem.player_curr].field00_bitA; + sp8 = GWPlayer[GWSystem.player_curr].ticket_player; var_r28 = (u8*) &sp8; temp_r31 = HuSprGrpCreate(4); BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BKUJIYA, 20), 30001, 0, &spA); @@ -798,8 +796,8 @@ static void SetupTicket(s32 arg0) { s32 var_r31; for (var_r30 = var_r31 = 0; var_r31 < 4; var_r31++) { - if (arg0 != var_r31 && GWPlayer[var_r31].field00_bit9 != 0) { - sp8[var_r30] = GWPlayer[var_r31].field00_bitA; + if (arg0 != var_r31 && GWPlayer[var_r31].draw_ticket != 0) { + sp8[var_r30] = GWPlayer[var_r31].ticket_player; var_r30++; } } @@ -815,8 +813,8 @@ static void SetupTicket(s32 arg0) { break; } } - GWPlayer[arg0].field00_bitA = var_r29; - GWPlayer[arg0].field00_bit9 = 1; + GWPlayer[arg0].ticket_player = var_r29; + GWPlayer[arg0].draw_ticket = 1; } static void LotteryInlineFunc00(s32 arg0, s32 arg1) { @@ -882,7 +880,7 @@ static void ExecBallGame(void) { DATA_MAKE_NUM(DATADIR_WARIOMOT, 29), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 29), DATA_MAKE_NUM(DATADIR_DAISYMOT, 29), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 29), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 29) }; temp_r27 = GWSystem.player_curr; @@ -890,7 +888,7 @@ static void ExecBallGame(void) { sp4C.x = 0.0f; sp4C.y = 210.0f; sp4C.z = 0.0f; - BoardCameraMotionStartEx(lotteryMdl[0], NULL, &sp4C, 980.0f, -1.0f, 0x15); + BoardCameraMotionStartEx(lotteryMdl[0], NULL, &sp4C, 980.0f, -1.0f, 21); LotteryInlineFunc00(0, 0); BoardCameraMotionWait(); BoardWinCreate(2, lotteryMessBase + 1, BoardWinPortraitGet()); @@ -1836,7 +1834,7 @@ static void ExecPrize(void) { sp14.x = 0.0f; sp14.y = 200.0f; sp14.z = 0.0f; - BoardCameraMotionStartEx(lotteryMdl[0], 0, &sp14, 1300.0f, -1.0f, 21); + BoardCameraMotionStartEx(lotteryMdl[0], NULL, &sp14, 1300.0f, -1.0f, 21); temp_r30 = GWSystem.player_curr; BoardStatusShowSetForce(temp_r30); BoardStatusShowSet(temp_r30, 1); @@ -2039,7 +2037,7 @@ void BoardLotteryTutorialExec(void) { sp8.x = 0.0f; sp8.y = 200.0f; sp8.z = 0.0f; - BoardCameraMotionStartEx(lotteryMdl[0], &sp14, &sp8, 1300.0f, -1.0f, 0x15); + BoardCameraMotionStartEx(lotteryMdl[0], &sp14, &sp8, 1300.0f, -1.0f, 21); HuAudFXPlay(0x331); HuAudFXPlay(0x344); BoardModelMotionStart(lotteryMdl[0], 0, 0); diff --git a/src/game/board/main.c b/src/game/board/main.c index 2d1249ff..2ba9bd1e 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -289,7 +289,7 @@ void BoardSaveInit(s32 board) GWSystem.player_curr = -1; GWSystem.bowser_loss = 0; GWSystem.bowser_event = 0; - GWSystem.unk_32 = 1; + GWSystem.lucky_value = 1; GWSystem.mg_next = 0; GWMGTypeSet(0); GWSystem.unk_38 = 0; @@ -298,12 +298,12 @@ void BoardSaveInit(s32 board) for(i=0; i<4; i++) { s32 party_flag; BoardPlayerAutoSizeSet(i, 0); - GWPlayer[i].field00_bit9 = 0; + GWPlayer[i].draw_ticket = 0; GWPlayer[i].color = 0; GWPlayer[i].bowser_suit = 0; - GWPlayer[i].field08_bit3 = 0; + GWPlayer[i].jump = 0; GWPlayer[i].space_shock = 0; - GWPlayer[i].field02_bit1 = 0; + GWPlayer[i].spark = 0; GWPlayer[i].show_next = 1; BoardPlayerCoinsSet(i, 0); if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { @@ -322,8 +322,8 @@ void BoardSaveInit(s32 board) GWPlayer[i].coins_max = 0; GWPlayer[i].stars_max = 0; GWPlayer[i].coins_battle = 0; - GWPlayer[i].unk_26 = 0; - GWPlayer[i].coin_gain = 0; + GWPlayer[i].coin_collect = 0; + GWPlayer[i].coin_win = 0; GWPlayer[i].items[0] = -1; GWPlayer[i].items[1] = -1; GWPlayer[i].items[2] = -1; @@ -661,7 +661,7 @@ static void CreateBoard(void) reset_unk32 = 0; } if(!reset_unk32) { - GWSystem.unk_32 = 1; + GWSystem.lucky_value = 1; } guest_status = BoardDataDirReadAsync(DATADIR_BGUEST); if(guest_status != -1) { @@ -1059,7 +1059,7 @@ void BoardCameraNearFarGet(float *near, float *far) void BoardCameraMotionStart(s16 model_target, Vec *rot_target, float zoom_target, float fov_target) { - BoardCameraMotionStartEx(model_target, rot_target, 0, zoom_target, fov_target, 21); + BoardCameraMotionStartEx(model_target, rot_target, NULL, zoom_target, fov_target, 21); } void BoardCameraMotionStartEx(s16 model_target, Vec *rot_target, Vec *offset_end, float zoom_target, float fov_target, s16 max_time) diff --git a/src/game/board/mg_setup.c b/src/game/board/mg_setup.c index 7a1a8ad8..54555a11 100644 --- a/src/game/board/mg_setup.c +++ b/src/game/board/mg_setup.c @@ -164,7 +164,7 @@ static void ExecMGSetup(void) { luckyF = 0; mgNext = 0; GWSystem.player_curr = -1; - GWSystem.unk_32 = 1; + GWLuckyValueSet(1); for (var_r31 = 0; var_r31 < 4; var_r31++) { activeMG[var_r31].unk_00 = -1; activeMG[var_r31].unk_04 = 0; @@ -175,7 +175,7 @@ static void ExecMGSetup(void) { sp54.x = 0.0f; sp54.y = 150.0f; sp54.z = 0.0f; - BoardCameraMotionStartEx(-1, NULL, &sp54, 1300.0f, -1.0f, 0x15); + BoardCameraMotionStartEx(-1, NULL, &sp54, 1300.0f, -1.0f, 21); BoardCameraMotionWait(); WipeCreate(1, 0, 0x15); @@ -219,7 +219,7 @@ static void ExecMGSetup(void) { while (setupObjGet() != 7) { HuPrcVSleep(); } - switch (GWSystem.unk_32) { + switch (GWLuckyValueGet()) { case 1: var_r30 = luckyMessTbl[GWBoardGet()] + 1; break; @@ -390,11 +390,11 @@ static void SetupStatusLayout(void) { for (var_r28 = var_r31 = 0; var_r31 < 4; var_r31++) { if (GWPlayer[var_r31].color == 2) { var_r27 = var_r31; - GWPlayer[var_r31].field08_bit11 = GWPlayerTeamGet(var_r31); + GWPlayer[var_r31].team_backup = GWPlayerTeamGet(var_r31); GWPlayerCfg[var_r31].group = 0; var_r28++; } else { - GWPlayer[var_r31].field08_bit11 = GWPlayerTeamGet(var_r31); + GWPlayer[var_r31].team_backup = GWPlayerTeamGet(var_r31); GWPlayerCfg[var_r31].group = 1; var_r26 = var_r31; } @@ -415,11 +415,11 @@ static void SetupStatusLayout(void) { for (var_r31 = 0; var_r31 < 4; var_r31++) { if (var_r31 == var_r26) { - GWPlayer[var_r31].field08_bit11 = GWPlayerTeamGet(var_r31); + GWPlayer[var_r31].team_backup = GWPlayerTeamGet(var_r31); GWPlayerCfg[var_r31].group = 0; } else { BoardStatusTargetPosSet(var_r31, &statusLayout1Vs3[var_r29++]); - GWPlayer[var_r31].field08_bit11 = GWPlayerTeamGet(var_r31); + GWPlayer[var_r31].team_backup = GWPlayerTeamGet(var_r31); GWPlayerCfg[var_r31].group = 1; } } @@ -429,11 +429,11 @@ static void SetupStatusLayout(void) { for (var_r29 = var_r31 = 0; var_r31 < 4; var_r31++) { if (GWPlayer[var_r31].color == 2) { BoardStatusTargetPosSet(var_r31, &statusLayout2Vs2[var_r29++]); - GWPlayer[var_r31].field08_bit11 = GWPlayerTeamGet(var_r31); + GWPlayer[var_r31].team_backup = GWPlayerTeamGet(var_r31); GWPlayerCfg[var_r31].group = 0; } else { BoardStatusTargetPosSet(var_r31, &statusLayout2Vs2[var_r30++]); - GWPlayer[var_r31].field08_bit11 = GWPlayerTeamGet(var_r31); + GWPlayer[var_r31].team_backup = GWPlayerTeamGet(var_r31); GWPlayerCfg[var_r31].group = 1; } } @@ -923,10 +923,6 @@ static void HideLuckyValue(void) { HuSprAttrSet(temp_r31->unk_00[0], 9, 4); } -static inline s32 GWMGUnk32Get(void) { - return GWSystem.unk_32; -} - static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) { s32 var_r23; f32 temp_f29; @@ -953,11 +949,11 @@ static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) { arg0->unk_03 = 0; temp_r3 = BoardRandMod(0x64U); if (temp_r3 < 0x55) { - GWSystem.unk_32 = 2; + GWLuckyValueSet(2); return; } if (temp_r3 >= 0x5F) return; - GWSystem.unk_32 = 3; + GWLuckyValueSet(3); return; case 1: if (arg0->unk_03 < 0x5A) { @@ -986,7 +982,7 @@ static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) { } HuSprBankSet(temp_r27->unk_00[0], 9, luckyValue); if (arg0->unk_08 < 0.05f) { - if (luckyValue != GWMGUnk32Get() - 1) { + if (luckyValue != GWLuckyValueGet() - 1) { arg0->unk_08 *= 1.0309278f; return; } diff --git a/src/game/board/mushroom.c b/src/game/board/mushroom.c new file mode 100644 index 00000000..251e720a --- /dev/null +++ b/src/game/board/mushroom.c @@ -0,0 +1,560 @@ +#include "game/process.h" +#include "game/gamework_data.h" +#include "game/board/item.h" +#include "game/object.h" +#include "game/board/main.h" +#include "game/board/player.h" +#include "game/board/ui.h" +#include "game/board/model.h" + +#include "game/objsub.h" + +#include "math.h" + +extern s32 boardTutorialData[4]; + + +static void KillMushroom(); +static void MushroomMain(); +static void KillItemMdl(void); +static void MarkKillBox(void); +static void InitBox(s32 arg0); + +static const float boxOfs[2] = {-150.0f, 150.0f}; +static omObjData *boxObj[2] = {}; +static s16 itemMdl = -1; +static s8 itemResult; +static u8 pickerChoice; +static omObjData* itemGiveObj; +static Process* mushroomProc; + +void BoardMushroomExec(s32 arg0) { + omVibrate(arg0, 0xC, 6, 6); + mushroomProc = HuPrcChildCreate(MushroomMain, 0x2003U, 0x3800U, 0, boardMainProc); + HuPrcDestructorSet2(mushroomProc, KillMushroom); + + while (mushroomProc != NULL) { + HuPrcVSleep(); + } + + GWPlayer[arg0].color = 3; +} + + +typedef struct { + struct { + u8 unk00_field0 : 1; + u8 unk00_field1 : 1; + u8 unk00_field2 : 3; + u8 unk00_field5 : 2; + u8 unk00_field7 : 1; + }; + char unk01[1]; + s16 unk_02; + s16 unk_04; + s16 unk_06; + f32 unk_08; +} boxObjWork; + +static void SetBoxHide(s32 arg0); +static void SetBoxCenter(s32 arg0); +static void SetBoxShow(s32 arg0); +static void WaitBoxOpen(s32 arg0); +static void WaitBoxCenter(s32 arg0); +static s32 CheckBox(void); +static void StartItemGive(s32 arg0); +static void ShowItemMdl(void); +static void WaitItemGive(void); + +static void MushroomMain(void) { + Vec sp14[2]; + Vec sp8; + s32 temp_r0; + s32 temp_r0_2; + s32 var_r30; + s32 curPlayer; + s8 var_r29; + boxObjWork* box; + s32 var_r27; + s32 var_r26; + s32 i; + + var_r29 = -1; + curPlayer = GWSystem.player_curr; + BoardCameraViewSet(3); + HuAudFXPlay(0x34A); + BoardPlayerMotBlendSet(curPlayer, 0, 15); + + while (BoardPlayerMotBlendCheck(curPlayer) == 0) { + HuPrcVSleep(); + } + + BoardCameraMotionWait(); + BoardPlayerIdleSet(curPlayer); + + if (_CheckFlag(0x1000B) != 0) { + BoardTutorialHookExec(13, 0); + boardTutorialData[0] = 0; + } + + if ((GWSystem.max_turn - GWSystem.turn) == 0) { + BoardWinCreate(0, 0x50003U, -1); + BoardWinWait(); + BoardWinKill(); + } else if (BoardPlayerItemCount(curPlayer) == 3) { + BoardWinCreate(0, 0x50000U, -1); + BoardWinWait(); + BoardWinKill(); + } else { + while (1) { + InitBox(curPlayer); + + while (CheckBox() == 0) { + HuPrcVSleep(); + } + + for (i = 0; i < 2; i++) { + box = OM_GET_WORK_PTR(boxObj[i], boxObjWork); + BoardModelPosGet(box->unk_02, &sp8); + Hu3D3Dto2D(&sp8, 1, &sp14[i]); + sp14[i].y += 32.0f; + sp14[i].z = 0.0f; + } + + if (GWPlayer[curPlayer].com != 0) { + BoardRand(); + var_r26 = 0; //inline? + var_r29 = var_r26; + if (_CheckFlag(0x1000BU) != 0) { + var_r29 = 0; + } + } + + BoardPickerCreate(curPlayer, 2, &sp14[0], var_r29); + BoardPickerBackFlagSet(0); + + while (BoardPickerDoneCheck() == 0) { + HuPrcVSleep(); + } + + pickerChoice = BoardPickerChoiceGet(); + SetBoxShow(pickerChoice); + SetBoxHide(pickerChoice ^ 1); + WaitBoxCenter(pickerChoice); + BoardPlayerMotionStart(curPlayer, 11, 0); + + while (BoardPlayerMotionTimeGet(curPlayer) < 27.0f) { + HuPrcVSleep(); + } + + HuAudFXPlay(0x30C); + StartItemGive(curPlayer); + WaitBoxOpen(pickerChoice); + ShowItemMdl(); + SetBoxCenter(pickerChoice); + + while (BoardPlayerMotionEndCheck(curPlayer) == 0) { + HuPrcVSleep(); + } + + WaitItemGive(); + + if (itemResult != 0) { + var_r27 = 0x50001; + } else { + var_r27 = 0x50002; + } + + BoardPlayerMotionShiftSet(curPlayer, 0xC, 0.0f, 4.0f, 0); + HuPrcSleep(4); + BoardWinCreate(0, var_r27, -1); + BoardWinWait(); + BoardWinKill(); + MarkKillBox(); + BoardPlayerMotionEndWait(curPlayer); + BoardPlayerIdleSet(curPlayer); + if (_CheckFlag(0x1000BU) != 0) { + BoardPlayerIdleSet(curPlayer); + BoardTutorialHookExec(14, 0); + if (++boardTutorialData[0] < 2) { + KillItemMdl(); + continue; + } + } + break; + } + } + HuPrcEnd(); +} + +typedef struct { + struct { + u8 unk00_field0 : 1; + u8 unk00_field1 : 1; + u8 unk00_field2 : 3; + u8 unk00_field5 : 2; + u8 unk00_field7 : 1; + }; + char unk01[1]; + s16 unk_02; + s16 unk_04; + s16 unk_06; + f32 unk_08; +} ItemGiveWork2; + +static void KillMushroom(void) { + ItemGiveWork2* temp_r31; + + MarkKillBox(); + + if (itemGiveObj) { + temp_r31 = OM_GET_WORK_PTR(itemGiveObj, ItemGiveWork2); + temp_r31->unk00_field0 = 1; + } + + KillItemMdl(); + mushroomProc = NULL; +} + +typedef struct { + struct { + u8 unk00_field0 : 1; + u8 unk00_field1 : 2; + u8 unk00_field2 : 5; + }; + char unk01[1]; + s16 unk_02; + f32 unk_04; + f32 unk_08; +} itemObjWork; + +static void CenterBox(ItemGiveWork2*, omObjData*); +static void ExitBox(ItemGiveWork2* arg0, omObjData* arg1); +static void HideBox(ItemGiveWork2*, omObjData*); +static void ShowBox(ItemGiveWork2*, omObjData*); + + +static void BoxMain(omObjData* arg0) { + s32 temp_r0; + ItemGiveWork2* temp_r30; + + temp_r30 = OM_GET_WORK_PTR(arg0, ItemGiveWork2); + + if ((temp_r30->unk00_field0) || (BoardIsKill() != 0)) { + BoardModelKill(temp_r30->unk_02); + boxObj[temp_r30->unk00_field1] = NULL; + omDelObjEx(HuPrcCurrentGet(), arg0); + return; + } + switch (temp_r30->unk00_field2) { + case 0: + ShowBox(temp_r30, arg0); + break; + case 2: + CenterBox(temp_r30, arg0); + break; + case 3: + ExitBox(temp_r30, arg0); + break; + case 4: + HideBox(temp_r30, arg0); + break; + } + BoardModelPosSet(temp_r30->unk_02, arg0->trans.x, arg0->trans.y, arg0->trans.z); + BoardModelRotSet(temp_r30->unk_02, arg0->rot.x, arg0->rot.y, arg0->rot.z); +} + +static void ShowBox(ItemGiveWork2* arg0, omObjData* arg1) { + Vec sp8; + + BoardPlayerPosGet(arg0->unk00_field5, &sp8); + sp8.y += 300.0f; + + if (arg0->unk_08 >= 90.0f) { + arg0->unk_08 = 90.0f; + arg0->unk00_field7 = 1; + arg0->unk00_field2 = 1; + } + + OSs16tof32(&arg0->unk_06, &arg1->rot.y); + arg1->trans.y = (sp8.y + (700.0f * cos((M_PI * (f64) arg0->unk_08) / 180.0))); + arg0->unk_08 += 1.5f; + arg0->unk_06 += 30; +} + + +static void ExitBox(ItemGiveWork2* arg0, omObjData* arg1) { + Vec spC; + s16 sp8; + f32 temp; + + sp8 = (arg0->unk_06 % 360); + OSs16tof32(&sp8, &temp); + BoardPlayerPosGet(arg0->unk00_field5, &spC); + spC.y += 300.0f; + + if (arg0->unk_08 <= 0.0f) { + arg0->unk_08 = 0.0f; + arg0->unk00_field2 = 1; + } + + arg1->trans.y = spC.y + (700.0f * cos((M_PI * arg0->unk_08) / 180.0)); + arg1->rot.y = sin((M_PI * temp) / 180.0); + arg0->unk_08 -= 1.5f; + arg0->unk_06 -= 30; +} + +static void HideBox(ItemGiveWork2* arg0, omObjData* arg1) { + arg0->unk_04 -= 4; + + if (arg0->unk_04 < 0) { + arg0->unk00_field2 = 1; + arg0->unk_04 = 0; + } + + BoardModelAlphaSet(arg0->unk_02, arg0->unk_04); +} + +static void CenterBox(ItemGiveWork2* arg0, omObjData* arg1) { + Vec sp20; + Vec sp14; + Vec sp8; + + sp14.x = arg1->trans.x; + sp14.y = arg1->trans.y; + sp14.z = arg1->trans.z; + BoardPlayerPosGet(arg0->unk00_field5, &sp20); + PSVECSubtract(&sp20, &sp14, &sp8); + PSVECScale(&sp8, &sp8, 0.2f); + PSVECAdd(&sp8, &sp14, &sp14); + + if (BoardVecMaxDistXZCheck(&sp20, &sp14, 3.0f) != 0) { + arg1->trans.x = sp20.x; + arg1->trans.z = sp20.z; + arg0->unk00_field2 = 1; + } + + arg1->trans.x = sp14.x; + arg1->trans.z = sp14.z; +} + +static void InitBox(s32 arg0) { + Vec sp10; + s32 sp8[2] = {0x0007006D, 0x0007006E}; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 i; + boxObjWork* temp_r31; + + BoardPlayerPosGet(arg0, &sp10); + + for (i = 0; i < 2; i++) { + boxObj[i] = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, BoxMain); + temp_r31 = OM_GET_WORK_PTR(boxObj[i], boxObjWork); + temp_r31->unk00_field0 = 0; + temp_r31->unk00_field7 = 0; + temp_r31->unk00_field5 = arg0; + temp_r31->unk00_field1 = i; + temp_r31->unk00_field2 = 0; + temp_r31->unk_06 = 0; + temp_r31->unk_08 = 0.0f; + temp_r31->unk_04 = 0xFF; + boxObj[i]->trans.x = sp10.x + boxOfs[i]; + boxObj[i]->trans.y = 700.0f + sp10.y; + boxObj[i]->trans.z = sp10.z; + boxObj[i]->rot.x = 0.0f; + boxObj[i]->rot.y = 180.0f; + boxObj[i]->rot.z = 0.0f; + temp_r31->unk_02 = BoardModelCreate(0x70005, NULL, 0); + BoardModelPosSet(temp_r31->unk_02, boxObj[i]->trans.x, boxObj[i]->trans.y, boxObj[i]->trans.z); + BoardModelMotionSpeedSet(temp_r31->unk_02, 0.0f); + BoardModelLayerSet(temp_r31->unk_02, 2U); + } + + HuAudFXPlay(0x340); + if (BoardRandFloat() < 0.5f) { + var_r28 = 0; + } else { + var_r28 = 1; + } + itemResult = (s8) var_r28; + if (BoardRandFloat() < 0.5f) { + var_r27 = 0; + } else { + var_r27 = 1; + } + var_r29 = var_r27; + if (GWBoardGet() == 8) { + itemResult = 0; + } + if (_CheckFlag(0x1000BU) != 0) { + itemResult = (boardTutorialData[0] ^ 1); + var_r29 = 0; + } + itemMdl = BoardModelCreate(sp8[itemResult], NULL, 0); + BoardModelVisibilitySet(itemMdl, 0); + temp_r31 = OM_GET_WORK_PTR(boxObj[var_r29], boxObjWork); + BoardModelScaleSet(temp_r31->unk_02, 1.5f, 1.5f, 1.5f); +} + +static void MarkKillBox(void) { + s32 i; + boxObjWork* temp_r30; + + for (i = 0; i < 2; i++) { + if (boxObj[i]) { + temp_r30 = OM_GET_WORK_PTR(boxObj[i], boxObjWork); + temp_r30->unk00_field0 = 1; + } + } +} + +static void SetBoxHide(s32 arg0) { + boxObjWork* temp_r31 = OM_GET_WORK_PTR(boxObj[arg0], boxObjWork); + + temp_r31->unk00_field2 = 3; +} + +static void SetBoxCenter(s32 arg0) { + boxObjWork* temp_r31 = OM_GET_WORK_PTR(boxObj[arg0], boxObjWork); + + temp_r31->unk00_field2 = 4; + HuAudFXPlay(0x341); +} + +static void SetBoxShow(s32 arg0) { + boxObjWork* temp_r31 = OM_GET_WORK_PTR(boxObj[arg0], boxObjWork); + + temp_r31->unk00_field2 = 2; +} + +static void WaitBoxOpen(s32 arg0) { + boxObjWork* temp_r31 = OM_GET_WORK_PTR(boxObj[arg0], boxObjWork); + + BoardModelMotionSpeedSet(temp_r31->unk_02, 2.0f); + do { + HuPrcVSleep(); + } while (BoardModelMotionEndCheck(temp_r31->unk_02) == 0); +} + +static void WaitBoxCenter(s32 arg0) { + boxObjWork* temp_r31 = OM_GET_WORK_PTR(boxObj[arg0], boxObjWork); + + while (temp_r31->unk00_field2 != 1) { + HuPrcVSleep(); + } +} + +static s32 CheckBox(void) { + s32 i; + boxObjWork* box; + + for (i = 0; i < 2; i++) { + box = OM_GET_WORK_PTR(boxObj[i], boxObjWork); + if (box->unk00_field7 == 0) { + return 0; + } + } + return 1; +} + +static void DoItemGive(omObjData* arg0) { + Vec sp28; + Vec sp1C; + Vec sp10; + s32 sp8[2] = {0, 1}; + itemObjWork* temp_r31; + + temp_r31 = OM_GET_WORK_PTR(arg0, itemObjWork); + + if ((temp_r31->unk00_field0 != 0) || (BoardIsKill() != 0)) { + KillItemMdl(); + itemGiveObj = NULL; + omDelObjEx(HuPrcCurrentGet(), arg0); + return; + } + + BoardModelPosGet(itemMdl, &sp28); + BoardModelRotGet(itemMdl, &sp1C); + BoardPlayerPosGet(temp_r31->unk00_field1, &sp10); + sp10.y += 180.0f; + + switch (temp_r31->unk00_field2) { + case 2: + if (temp_r31->unk_02 < 12) { + temp_r31->unk_04 += 1.47f; + sp28.y += temp_r31->unk_04; + } else if (temp_r31->unk_02 <= 24) { + BoardModelRotSet(itemMdl, 30.0f * temp_r31->unk_02, 0.0f, 0.0f); + } else if (temp_r31->unk_02 > 36) { + temp_r31->unk00_field2 = 0; + return; + } + temp_r31->unk_02++; + break; + case 0: + temp_r31->unk_04 += -1.47f; + + if (temp_r31->unk_08 > 0.001f) { + temp_r31->unk_08 -= 0.005f; + } + + sp28.y += temp_r31->unk_04; + + if (sp10.y > sp28.y) { + BoardModelVisibilitySet(itemMdl, 0); + HuAudFXPlay(0x30D); + BoardPlayerItemAdd(temp_r31->unk00_field1, sp8[itemResult]); + temp_r31->unk00_field2 = 1; + } + /* fallthrough */ + case 1: + default: + break; + } + + BoardModelPosSetV(itemMdl, &sp28); + BoardModelScaleSet(itemMdl, temp_r31->unk_08, temp_r31->unk_08, temp_r31->unk_08); +} + +static void StartItemGive(s32 arg0) { + Vec spC; + itemObjWork* temp_r31; + boxObjWork* box; + + itemGiveObj = omAddObjEx(boardObjMan, 0x102, 0U, 0U, -1, DoItemGive); + temp_r31 = OM_GET_WORK_PTR(itemGiveObj, itemObjWork); + + temp_r31->unk00_field0 = 0; + temp_r31->unk00_field1 = arg0; + temp_r31->unk00_field2 = 1; + temp_r31->unk_02 = 0; + temp_r31->unk_04 = 0.0f; + temp_r31->unk_08 = 1.0f; + box = OM_GET_WORK_PTR(boxObj[pickerChoice], boxObjWork); + BoardModelPosGet(box->unk_02, &spC); + BoardModelPosSetV(itemMdl, &spC); +} + +static void KillItemMdl(void) { + if (itemMdl != -1) { + BoardModelKill(itemMdl); + itemMdl = -1; + } +} + +static void ShowItemMdl(void) { + itemObjWork* temp_r31 = OM_GET_WORK_PTR(itemGiveObj, itemObjWork); + temp_r31->unk00_field2 = 2; + + BoardModelVisibilitySet(itemMdl, 1); +} + +static void WaitItemGive(void) { + itemObjWork* temp_r31 = OM_GET_WORK_PTR(itemGiveObj, itemObjWork); + + while (temp_r31->unk00_field2 != 1) { + HuPrcVSleep(); + } +} \ No newline at end of file diff --git a/src/game/board/pause.c b/src/game/board/pause.c index ebe23b90..d4718ff5 100755 --- a/src/game/board/pause.c +++ b/src/game/board/pause.c @@ -114,15 +114,15 @@ static float padConfigPosTbl[4][2] = { }; static s32 boardLogoTbl[] = { - 0x00070057, - 0x00070058, - 0x00070059, - 0x0007005A, - 0x0007005B, - 0x0007005C, - 0x00070057, - 0x0007005D, - 0x0007005E + DATA_MAKE_NUM(DATADIR_BOARD, 87), + DATA_MAKE_NUM(DATADIR_BOARD, 88), + DATA_MAKE_NUM(DATADIR_BOARD, 89), + DATA_MAKE_NUM(DATADIR_BOARD, 90), + DATA_MAKE_NUM(DATADIR_BOARD, 91), + DATA_MAKE_NUM(DATADIR_BOARD, 92), + DATA_MAKE_NUM(DATADIR_BOARD, 87), + DATA_MAKE_NUM(DATADIR_BOARD, 93), + DATA_MAKE_NUM(DATADIR_BOARD, 94) }; static float turnDigitPosTbl[] = { @@ -130,14 +130,14 @@ static float turnDigitPosTbl[] = { }; static s32 boxMdlTbl[] = { - 0x00080008, - 0x00080009, - 0x0008000A, - 0x0008000B, - 0x0008000C, - 0x0008000D, - 0x0008000E, - 0x0008000F + DATA_MAKE_NUM(DATADIR_BPAUSE, 8), + DATA_MAKE_NUM(DATADIR_BPAUSE, 9), + DATA_MAKE_NUM(DATADIR_BPAUSE, 10), + DATA_MAKE_NUM(DATADIR_BPAUSE, 11), + DATA_MAKE_NUM(DATADIR_BPAUSE, 12), + DATA_MAKE_NUM(DATADIR_BPAUSE, 13), + DATA_MAKE_NUM(DATADIR_BPAUSE, 14), + DATA_MAKE_NUM(DATADIR_BPAUSE, 15) }; void BoardPauseStart(void) { @@ -168,7 +168,7 @@ static void PauseExit(void) { DeletePauseScreen(); DeletePauseControlWin(); BoardEventFlagReset(); - HuDataDirClose(0x80000); + HuDataDirClose(DATADIR_BPAUSE); pausePad = -1; omSysPauseCtrl(0); if (GWMGExplainGet()) { @@ -177,17 +177,17 @@ static void PauseExit(void) { _ClearFlag(0xB); } if (GWPartyGet() == 0) { - GWGameStat.field10F_bit0 = GWMGExplainGet(); - GWGameStat.field10F_bit1 = GWMGShowComGet(); - GWGameStat.field10F_bit2 = GWMGListGet(); - GWGameStat.field10F_bit4 = GWMessSpeedGet(); - GWGameStat.field10F_bit6 = GWSaveModeGet(); + GWGameStat.story_pause.explain_mg = GWMGExplainGet(); + GWGameStat.story_pause.show_com_mg = GWMGShowComGet(); + GWGameStat.story_pause.mg_list = GWMGListGet(); + GWGameStat.story_pause.mess_speed = GWMessSpeedGet(); + GWGameStat.story_pause.save_mode = GWSaveModeGet(); } else { - GWGameStat.field110_bit0 = GWMGExplainGet(); - GWGameStat.field110_bit1 = GWMGShowComGet(); - GWGameStat.field110_bit2 = GWMGListGet(); - GWGameStat.field110_bit4 = GWMessSpeedGet(); - GWGameStat.field110_bit6 = GWSaveModeGet(); + GWGameStat.party_pause.explain_mg = GWMGExplainGet(); + GWGameStat.party_pause.show_com_mg = GWMGShowComGet(); + GWGameStat.party_pause.mg_list = GWMGListGet(); + GWGameStat.party_pause.mess_speed = GWMessSpeedGet(); + GWGameStat.party_pause.save_mode = GWSaveModeGet(); } mainProcess = NULL; } @@ -197,8 +197,8 @@ static void PauseProcess(void) { pauseQuitF = 0; mainScreenF = 1; - BoardFilterFadeInit(0x1E, 0xA0); - temp_r31 = BoardDataDirReadAsync(0x80000); + BoardFilterFadeInit(30, 0xA0); + temp_r31 = BoardDataDirReadAsync(DATADIR_BPAUSE); BoardRollWinDispSet(0); BoardDiceDigit2DShowSet(0); BoardStatusItemSet(0); @@ -219,12 +219,12 @@ static void PauseProcess(void) { DeletePauseScreen(); DeletePauseControlWin(); if (pauseQuitF != 0) { - HuPrcSleep(0x14); + HuPrcSleep(20); WipeColorSet(0, 0, 0); BoardKill(); } else { - BoardFilterFadeOut(0x1E); - HuPrcSleep(0x1E); + BoardFilterFadeOut(30); + HuPrcSleep(30); } HuPrcEnd(); } @@ -262,28 +262,28 @@ void CreatePauseScreen(void) { temp_r27->trans.y = -32.0f + boxPosTbl[cursorPos][1]; pauseCursorPos = HuSprGrpCreate(2); HuSprGrpPosSet(pauseCursorPos, 0.0f, 0.0f); - BoardSpriteCreate(0x70055, 0x2BC, 0, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BOARD, 85), 700, 0, &sp8); HuSprGrpMemberSet(pauseCursorPos, 0, sp8); HuSprZRotSet(pauseCursorPos, 0, 45.0f); HuSprAttrSet(pauseCursorPos, 0, 4); HuSprAttrSet(pauseCursorPos, 0, 8); HuSprPosSet(pauseCursorPos, 0, temp_r27->trans.x, temp_r27->trans.y); - BoardSpriteCreate(0x80007, 0x2EE, 0, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BPAUSE, 7), 750, 0, &sp8); HuSprGrpMemberSet(pauseCursorPos, 1, sp8); HuSprAttrSet(pauseCursorPos, 1, 4); HuSprAttrSet(pauseCursorPos, 1, 8); pauseSprGrp = HuSprGrpCreate(7); HuSprGrpPosSet(pauseSprGrp, 0.0f, 0.0f); - BoardSpriteCreate(boardLogoTbl[GWBoardGet()], 0x384, 0, &sp8); + BoardSpriteCreate(boardLogoTbl[GWBoardGet()], 900, 0, &sp8); HuSprGrpMemberSet(pauseSprGrp, 0, sp8); HuSprPosSet(pauseSprGrp, 0, 288.0f, 120.0f); HuSprAttrSet(pauseSprGrp, 0, 4); HuSprAttrSet(pauseSprGrp, 0, 8); - BoardSpriteCreate(0x80005, 0x384, 0, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BPAUSE, 5), 900, 0, &sp8); HuSprGrpMemberSet(pauseSprGrp, 1, sp8); HuSprPosSet(pauseSprGrp, 1, 288.0f, 302.0f); HuSprAttrSet(pauseSprGrp, 1, 8); - BoardSpriteCreate(0x80004, 0x320, 0, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BPAUSE, 4), 800, 0, &sp8); HuSprGrpMemberSet(pauseSprGrp, 2, sp8); HuSprZRotSet(pauseSprGrp, 2, -30.0f); HuSprPosSet(pauseSprGrp, 2, 87.0f, 245.0f); @@ -301,32 +301,32 @@ void CreatePauseScreen(void) { HuSprBankSet(pauseSprGrp, 2, 1); } for (i = 0; i < 4; i++) { - BoardSpriteCreate(0x80006, 0x320, 0, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BPAUSE, 6), 800, 0, &sp8); HuSprGrpMemberSet(pauseSprGrp, i + 3, sp8); HuSprPosSet(pauseSprGrp, i + 3, turnDigitPosTbl[i], 301.0f); HuSprAttrSet(pauseSprGrp, i + 3, 8); HuSprAttrSet(pauseSprGrp, i + 3, 1); } - padConfigSprGrp = HuSprGrpCreate(0xD); + padConfigSprGrp = HuSprGrpCreate(13); HuSprGrpPosSet(padConfigSprGrp, 0.0f, 0.0f); for (i = 0; i < 4; i++) { - BoardSpriteCreate(0x80000, 0x38E, 0, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BPAUSE, 0), 910, 0, &sp8); HuSprGrpMemberSet(padConfigSprGrp, i, sp8); HuSprAttrSet(padConfigSprGrp, i, 8); HuSprAttrSet(padConfigSprGrp, i, 1); - BoardSpriteCreate(0x80001, 0x2BC, 0, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BPAUSE, 1), 700, 0, &sp8); HuSprGrpMemberSet(padConfigSprGrp, i + 4, sp8); HuSprAttrSet(padConfigSprGrp, i + 4, 8); HuSprAttrSet(padConfigSprGrp, i + 4, 1); - BoardSpriteCreate(0x80002, 0x320, 0, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BPAUSE, 2), 800, 0, &sp8); HuSprGrpMemberSet(padConfigSprGrp, i + 8, sp8); HuSprAttrSet(padConfigSprGrp, i + 8, 8); HuSprAttrSet(padConfigSprGrp, i + 8, 1); } - BoardSpriteCreate(0x80003, 0x3E8, 0, &sp8); - HuSprGrpMemberSet(padConfigSprGrp, 0xC, sp8); - HuSprAttrSet(padConfigSprGrp, 0xC, 4); - HuSprDrawNoSet(padConfigSprGrp, 0xC, 0x40); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BPAUSE, 3), 1000, 0, &sp8); + HuSprGrpMemberSet(padConfigSprGrp, 12, sp8); + HuSprAttrSet(padConfigSprGrp, 12, 4); + HuSprDrawNoSet(padConfigSprGrp, 12, 0x40); CreatePadConfigSprite(); ShowPadConfigSprite(0); hostOldLayer = BoardModelLayerGet(hostMdl); @@ -551,15 +551,15 @@ static void PauseConfigObjFunc(omObjData *arg0) { switch (boxState[5]) { case 0: GWSystem.mess_speed = 2; - GWSystem.mess_delay = 0x30; + GWSystem.mess_delay = 48; break; case 1: GWSystem.mess_speed = 1; - GWSystem.mess_delay = 0x20; + GWSystem.mess_delay = 32; break; case 2: GWSystem.mess_speed = 0; - GWSystem.mess_delay = 0x10; + GWSystem.mess_delay = 16; break; } } @@ -608,14 +608,14 @@ static void UpdatePauseText(s32 arg0) { switch (arg0) { case 0: - HuWinMesSet(settingsWin, 0x10001C); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 28)); for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { if (i == GWPlayer[j].port) { if (GWPlayer[j].com) { - var_r28 = 0x10001E; + var_r28 = MAKE_MESSID(16, 30); } else { - var_r28 = 0x10001D; + var_r28 = MAKE_MESSID(16, 29); } HuWinInsertMesSet(settingsWin, var_r28, i); break; @@ -625,66 +625,66 @@ static void UpdatePauseText(s32 arg0) { break; case 1: if (boxState[arg0] != 0) { - HuWinMesSet(settingsWin, 0x100021); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 33)); } else { - HuWinMesSet(settingsWin, 0x100022); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 34)); } break; case 2: if (boxState[arg0] != 0) { - HuWinMesSet(settingsWin, 0x100023); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 35)); } else { - HuWinMesSet(settingsWin, 0x100024); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 36)); } break; case 3: switch (boxState[arg0]) { case 0: - HuWinMesSet(settingsWin, 0x100026); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 38)); break; case 1: - HuWinMesSet(settingsWin, 0x100025); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 37)); break; case 2: - HuWinMesSet(settingsWin, 0x100027); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 39)); break; } break; case 4: if (boxState[arg0] != 0) { - HuWinMesSet(settingsWin, 0x100028); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 40)); } else { - HuWinMesSet(settingsWin, 0x100029); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 41)); } break; case 5: switch (boxState[arg0]) { case 0: - HuWinMesSet(settingsWin, 0x10002C); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 44)); break; case 1: - HuWinMesSet(settingsWin, 0x10002B); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 43)); break; case 2: - HuWinMesSet(settingsWin, 0x10002A); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 42)); break; } break; case 6: switch (boxState[arg0]) { case 0: - HuWinMesSet(settingsWin, 0x10002F); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 47)); break; case 1: - HuWinMesSet(settingsWin, 0x10002D); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 45)); break; case 2: - HuWinMesSet(settingsWin, 0x10002E); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 46)); break; } break; case 7: - HuWinMesSet(settingsWin, 0x100030); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 48)); break; } } @@ -699,16 +699,16 @@ static void InitPauseQuit(omObjData *arg0, ConfigWork *arg1) { HuPrcSetStat(quitProcess, 0xC); HuPrcDestructorSet2(quitProcess, DeletePauseQuit); arg1->unk01 = 1; - arg1->unk06 = 0xA; + arg1->unk06 = 10; HuSprAttrSet(pauseCursorPos, 0, 4); HuSprAttrSet(pauseCursorPos, 1, 4); break; case 1: if (quitWin != -1 && HuWinStatGet(quitWin) == 3) { if (HuWinChoiceNowGet(quitWin) != 0) { - HuWinMesSet(settingsWin, 0x100033); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 51)); } else { - HuWinMesSet(settingsWin, 0x100032); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 50)); } } if (!quitProcess) { @@ -741,7 +741,7 @@ static void PauseQuitProcess(void) { float sp10[2]; float sp8[2]; - HuWinMesMaxSizeGet(1, sp8, 0x100031); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(16, 49)); sp10[0] = -10000.0f; sp10[1] = 140.0f; quitWin = HuWinExCreate(sp10[0], sp10[1], sp8[0], sp8[1], -1); @@ -749,10 +749,10 @@ static void PauseQuitProcess(void) { temp_r31->active_pad = (1 << pausePad); HuWinExAnimIn(quitWin); HuWinMesSpeedSet(quitWin, 0); - HuWinMesSet(quitWin, 0x100031); + HuWinMesSet(quitWin, MAKE_MESSID(16, 49)); HuWinMesWait(quitWin); if (HuWinChoiceGet(quitWin, 0) == 1) { - HuPrcSleep(0x3C); + HuPrcSleep(60); pauseQuitF = 1; _SetFlag(0x1001B); } @@ -764,7 +764,7 @@ static void DeletePauseQuit(void) { HuWinExCleanup(quitWin); quitWin = -1; } - HuDataDirClose(0x80000); + HuDataDirClose(DATADIR_BPAUSE); quitProcess = NULL; } @@ -807,7 +807,7 @@ static void CreatePadConfig(omObjData *arg0, ConfigWork *arg1) { arg0->rot.x = 576.0f; arg0->rot.y = 112.0f; arg0->rot.z = (32.0f - arg0->rot.x) / 20.0f; - arg1->unk07 = 0x14; + arg1->unk07 = 20; ShowPadConfigSprite(1); HuSprGrpPosSet(padConfigSprGrp, arg0->rot.x, arg0->rot.y); arg1->unk04 = 0; @@ -864,7 +864,7 @@ static void CursorMovePadConfig(omObjData *arg0, ConfigWork *arg1) { s32 temp_r29; u32 temp_r30; - HuWinMesSet(settingsWin, 0x10001F); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 31)); temp_r30 = HuPadDStkRep[pausePad] | HuPadBtnDown[pausePad]; temp_r29 = CheckPort(arg1->unk04); if (temp_r30 == 0x100) { @@ -910,9 +910,9 @@ static void ChangeDiffPadConfig(omObjData *arg0, ConfigWork *arg1) { u32 var_r30; var_r30 = 0; - if (HuPadStkX[pausePad] < -0x14) { + if (HuPadStkX[pausePad] < -20) { var_r30 |= 1; - } else if (HuPadStkX[pausePad] > 0x14) { + } else if (HuPadStkX[pausePad] > 20) { var_r30 |= 2; } temp_r29 = CheckPort(arg1->unk04); @@ -921,10 +921,10 @@ static void ChangeDiffPadConfig(omObjData *arg0, ConfigWork *arg1) { } else { var_r27 = 3; } - HuWinMesSet(settingsWin, 0x100020); + HuWinMesSet(settingsWin, MAKE_MESSID(16, 32)); if (var_r30 != 0) { if (arg1->unk0C != 0 && arg1->unk0C == var_r30) { - if (arg1->unk09++ < 0xA) { + if (arg1->unk09++ < 10) { return; } } else { @@ -1061,7 +1061,7 @@ static s32 UpdatePauseBox(omObjData *arg0, ConfigWork *arg1, s32 arg2) { } var_f29 = arg0->rot.x; arg0->rot.y = (var_f30 - var_f29) / 30.0f; - arg1->unk07 = 0x1E; + arg1->unk07 = 30; arg1->unk01 = 2; } break; @@ -1161,7 +1161,7 @@ static s32 UpdatePauseBoxExt(omObjData *arg0, ConfigWork *arg1, s32 arg2) { } var_f29 = arg0->rot.x; arg0->rot.y = (var_f30 - var_f29) / 30.0f; - arg1->unk07 = 0x1E; + arg1->unk07 = 30; arg1->unk01 = 2; } break; @@ -1280,7 +1280,7 @@ static void CreatePauseControlWin(void) { float var_f30; u32 var_r31; - var_r31 = 0x100035; + var_r31 = MAKE_MESSID(16, 53); HuWinMesMaxSizeGet(1, sp8, var_r31); var_f31 = 152.0f; var_f30 = 280.0f; @@ -1290,9 +1290,9 @@ static void CreatePauseControlWin(void) { HuWinMesSet(settingsControlWin, var_r31); HuWinDispOff(settingsControlWin); if (GWBoardGet() == 7 || GWBoardGet() == 8) { - var_r31 = 0x100049; + var_r31 = MAKE_MESSID(16, 73); } else { - var_r31 = 0x100034; + var_r31 = MAKE_MESSID(16, 52); } HuWinMesMaxSizeGet(1, sp8, var_r31); var_f31 = -10000.0f; @@ -1418,7 +1418,7 @@ static void CreatePadConfigSprite(void) { break; } } - temp_f31 = i * 0x60 + 0xB2; + temp_f31 = i * 96 + 178; temp_f30 = 64.0f; temp_r28 = GWPlayer[j].character; temp_r27 = GWPlayer[j].diff; @@ -1434,7 +1434,7 @@ static void CreatePadConfigSprite(void) { HuSprPosSet(padConfigSprGrp, i + 4, temp_f31, temp_f30); HuSprPosSet(padConfigSprGrp, i + 8, temp_f31, temp_f30); } - HuSprPosSet(padConfigSprGrp, 0xC, 260.0f, 64.0f); + HuSprPosSet(padConfigSprGrp, 12, 260.0f, 64.0f); HuSprGrpPosSet(padConfigSprGrp, 0.0f, 0.0f); } @@ -1455,9 +1455,9 @@ static void ShowPadConfigSprite(s32 arg0) { } } if (arg0 != 0) { - HuSprAttrReset(padConfigSprGrp, 0xC, 4); + HuSprAttrReset(padConfigSprGrp, 12, 4); } else { - HuSprAttrSet(padConfigSprGrp, 0xC, 4); + HuSprAttrSet(padConfigSprGrp, 12, 4); } } diff --git a/src/game/board/player.c b/src/game/board/player.c index f8f23972..75e8692d 100644 --- a/src/game/board/player.c +++ b/src/game/board/player.c @@ -188,8 +188,8 @@ void BoardPlayerInit(void) { BoardPlayerSizeSet(var_r31, 0); GWPlayer[var_r31].color = 0; GWPlayer[var_r31].bowser_suit = 0; - GWPlayer[var_r31].field00_bit9 = 0; - GWPlayer[var_r31].field08_bit3 = 0; + GWPlayer[var_r31].draw_ticket = 0; + GWPlayer[var_r31].jump = 0; } return; } @@ -212,7 +212,6 @@ void BoardPlayerModelInit(void) { s32 temp_r24; s16 temp_r3; s32 temp_r4; - PlayerState* temp_r22; PlayerState* temp_r27; s32 ro0[8] = { 0x5E0000, 0x190000, 0x6C0000, 0x890000, 0x840000, 0x100000, 0xC0000, 0x800000 }; @@ -222,9 +221,9 @@ void BoardPlayerModelInit(void) { memset(&boardPlayerMdl, 0, 8); suitMdl = -1; suitPlayerMdl = -1; - if ((_CheckFlag(0x10005U) != 0) || ((_CheckFlag(0x10006U) != 0) && (temp_r4 = GWSystem.board, temp_r4 == 5))) { + if ((_CheckFlag(0x10005U) != 0) || (_CheckFlag(0x10006U) && (GWBoardGet() == 5))) { for (var_r31 = 0; var_r31 < 4; var_r31++) { - temp_r25 = GWPlayer[var_r31].field08_bit11; + temp_r25 = GWPlayer[var_r31].team_backup; GWPlayer[var_r31].team = temp_r25; GWPlayerCfg[var_r31].group = temp_r25; } @@ -234,8 +233,7 @@ void BoardPlayerModelInit(void) { postTurnHook[var_r31] = 0; motDoneF[var_r31] = 0; diceJumpObj[var_r31] = 0; - temp_r22 = &GWPlayer[var_r31]; - temp_r27 = temp_r22; + temp_r27 = BoardPlayerGet(var_r31); temp_r29 = GWPlayerCfg[var_r31].character; temp_r27->player_idx = var_r31; GWPlayer[var_r31].character = temp_r29; @@ -725,7 +723,7 @@ void BoardPlayerTurnRollExec(s32 arg0) { s32 temp_r30; GWPlayer[arg0].roll = 0; - GWPlayer[arg0].field08_bit7 = 1; + GWPlayer[arg0].num_dice = 1; BoardPauseDisableSet(0); do { temp_r30 = BoardRollExec(arg0); @@ -1686,7 +1684,7 @@ void BoardPlayerDiceJumpStart(s32 arg0) { temp_r31->field00_bit3 = 0; temp_r31->unk_08 = 0.0f; temp_r31->unk_0C = sp8.y; - GWPlayer[arg0].field08_bit3 = 1; + GWPlayer[arg0].jump = 1; } s32 BoardPlayerDiceJumpCheck(s32 arg0) { @@ -1710,7 +1708,7 @@ static void DiceJumpFunc(omObjData* arg0) { temp_r31 = OM_GET_WORK_PTR(arg0, bitcopy2); if ((temp_r31->field00_bit0 != 0) || (BoardIsKill() != 0)) { - GWPlayer[temp_r31->field00_bit1].field08_bit3 = 0; + GWPlayer[temp_r31->field00_bit1].jump = 0; BoardPlayerIdleSet(temp_r31->field00_bit1); diceJumpObj[temp_r31->field00_bit1] = 0; omDelObjEx(HuPrcCurrentGet(), arg0); @@ -1784,7 +1782,7 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) { temp_r26 = OM_GET_WORK_PTR(temp_r3, bitcopy2); temp_r26->field00_bit0 = 1; - for (var_r19 = 0; var_r19 < 0xB4U; var_r19++) { + for (var_r19 = 0; var_r19 < 180; var_r19++) { if (BoardPlayerMotBlendCheck(arg0) != 0) break; HuPrcVSleep(); @@ -1813,9 +1811,9 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) { temp_r26->field00_bit0 = 1; return; } - if (abs(sp1C) <= 0x5A) { + if (abs(sp1C) <= 90) { var_r20 = boardMotTbl[var_r18]; - } else if (abs(sp1C) <= 0xB4) { + } else if (abs(sp1C) <= 180) { var_r20 = boardMotRevTbl[var_r18]; } else { temp_r26->field00_bit0 = 1; @@ -1824,7 +1822,7 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) { temp_r26->unk_04h = BoardPlayerMotionCreate(arg0, var_r20); OSs16tof32(&arg2, &var_f27); temp_f26 = var_f27 / 59.0f; - if (0.0f != temp_f26) { + if (temp_f26 != 0.0f) { var_f27 = 1.0f / temp_f26; } else { var_f27 = 1.0f; @@ -1832,7 +1830,7 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) { if (GWPlayer[arg0].bowser_suit != 0) { BoardBowserSuitMotionSetWalk(); BoardModelMotionSpeedSet(BoardBowserSuitModelGet(), var_f27 / 2); - } else if (var_f21 = 8.0f * temp_f26, abs(sp1C) > 0x2D) { + } else if (var_f21 = 8.0f * temp_f26, abs(sp1C) > 45) { var_r22 = temp_r26->unk_04h; BoardPlayerMotionShiftSet(arg0, var_r22, var_f24, var_f21, 0); BoardPlayerMotionSpeedSet(arg0, var_f27); @@ -2256,7 +2254,7 @@ void UpdateBowserSuit(omObjData* arg0) { void BoardPlayerSparkSet(s32 arg0) { s16 currSpace = GWPlayer[arg0].space_curr; - GWPlayer[arg0].field02_bit1 = 1; + GWPlayer[arg0].spark = 1; GWPlayer[arg0].space_shock = currSpace; } @@ -2423,11 +2421,11 @@ static s32 DoSparkSpace(s32 player, s32 pause_cam) static void RemoveSparkSpace(s32 player) { - if(GWPlayer[player].field02_bit1) { + if(GWPlayer[player].spark) { BoardWinCreate(0, 0x12001C, -1); BoardWinWait(); BoardWinKill(); - GWPlayer[player].field02_bit1 = 0; + GWPlayer[player].spark = 0; GWPlayer[player].space_shock = 0; } } diff --git a/src/game/board/roll.c b/src/game/board/roll.c index 3fe6d90b..643c4925 100755 --- a/src/game/board/roll.c +++ b/src/game/board/roll.c @@ -154,7 +154,7 @@ s32 BoardRollExec(s32 arg0) { if (GWPlayer[rollPlayer].bowser_suit != 0) { diceSize = 3; } - GWPlayer[arg0].field08_bit7 = numDice; + GWPlayer[arg0].num_dice = numDice; rollProc = HuPrcChildCreate(RollMain, 0x2005, 0x6000, 0, boardMainProc); HuPrcDestructorSet2(rollProc, RollDestroy); while (rollProc != NULL) { @@ -262,7 +262,7 @@ static void RollMain(void) { HuPrcVSleep(); } DiceSetHit(i); - while (GWPlayer[rollPlayer].field08_bit3 != 0) { + while (GWPlayer[rollPlayer].jump != 0) { HuPrcVSleep(); } } diff --git a/src/game/board/shop.c b/src/game/board/shop.c index fb28fcda..71cc0b2f 100755 --- a/src/game/board/shop.c +++ b/src/game/board/shop.c @@ -269,7 +269,7 @@ static void ExecShop(void) { sp8.x = 0.0f; sp8.y = 170.0f; sp8.z = 0.0f; - BoardCameraMotionStartEx(shopMdlPtr[0], &sp14, &sp8, 1360.0f, -1.0f, 0x1B); + BoardCameraMotionStartEx(shopMdlPtr[0], &sp14, &sp8, 1360.0f, -1.0f, 27); HuAudFXPlay(0x330); HuAudFXPlay(0x32D); PopupShop(); @@ -1144,7 +1144,7 @@ void BoardShopTutorialExec(s32 arg0) { sp18.x = 0.0f; sp18.y = 170.0f; sp18.z = 0.0f; - BoardCameraMotionStartEx(shopMdlPtr[0], &sp24, &sp18, 1360.0f, -1.0f, 0x15); + BoardCameraMotionStartEx(shopMdlPtr[0], &sp24, &sp18, 1360.0f, -1.0f, 21); HuAudFXPlay(0x330); HuAudFXPlay(0x32D); PopupShop(); diff --git a/src/game/board/star.c b/src/game/board/star.c index aab8fa90..d2613730 100755 --- a/src/game/board/star.c +++ b/src/game/board/star.c @@ -8,6 +8,7 @@ #include "game/hsfman.h" #include "game/msm.h" #include "game/objsub.h" +#include "game/window.h" #include "game/wipe.h" #include "game/board/audio.h" #include "game/board/com.h" @@ -72,27 +73,27 @@ static s16 starParman = -1; static s16 hostMdl = -1; const s32 lbl_8011E040[9] = { - 0x000C0000, - 0x000C0009, - 0x000C0012, - 0x000C001B, - 0x000C0024, - 0x000C002D, - 0x000C0000, - 0x000C0000, - 0x000C0000 + MAKE_MESSID(12, 0), + MAKE_MESSID(12, 9), + MAKE_MESSID(12, 18), + MAKE_MESSID(12, 27), + MAKE_MESSID(12, 36), + MAKE_MESSID(12, 45), + MAKE_MESSID(12, 0), + MAKE_MESSID(12, 0), + MAKE_MESSID(12, 0) }; const s32 lbl_8011E064[9][2] = { - { 0x00150022, 0x00150028 }, - { 0x00150023, 0x00150029 }, - { 0x00150024, 0x0015002A }, - { 0x00150025, 0x0015002B }, - { 0x00150026, 0x0015002C }, - { 0x00150027, 0x0015002D }, - { 0x00150022, 0x00150028 }, - { 0x00150022, 0x00150028 }, - { 0x00150022, 0x00150028 } + { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }, + { MAKE_MESSID(21, 35), MAKE_MESSID(21, 41) }, + { MAKE_MESSID(21, 36), MAKE_MESSID(21, 42) }, + { MAKE_MESSID(21, 37), MAKE_MESSID(21, 43) }, + { MAKE_MESSID(21, 38), MAKE_MESSID(21, 44) }, + { MAKE_MESSID(21, 39), MAKE_MESSID(21, 45) }, + { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }, + { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }, + { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) } }; s32 boardStarSndTbl[] = { @@ -106,16 +107,13 @@ s32 boardStarSndTbl[] = { 0x000002E0 }; -static s32 hostMotTbl[][2] = { - { 0x00750021, 0x0007009D }, - { 0x00760007, 0x0007009E }, - { 0x0077001F, 0x0007009F }, - { 0x0078000B, 0x000700A0 }, - { 0x00790009, 0x000700A1 }, - { 0x007A0015, 0x000700A2 }, - { 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000 } +static s32 hostMotTbl[9][2] = { + { DATA_MAKE_NUM(DATADIR_W01, 33), DATA_MAKE_NUM(DATADIR_BOARD, 157) }, + { DATA_MAKE_NUM(DATADIR_W02, 7), DATA_MAKE_NUM(DATADIR_BOARD, 158) }, + { DATA_MAKE_NUM(DATADIR_W03, 31), DATA_MAKE_NUM(DATADIR_BOARD, 159) }, + { DATA_MAKE_NUM(DATADIR_W04, 11), DATA_MAKE_NUM(DATADIR_BOARD, 160) }, + { DATA_MAKE_NUM(DATADIR_W05, 9), DATA_MAKE_NUM(DATADIR_BOARD, 161) }, + { DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) } }; static HsfanimStruct00 starEffParam = { @@ -219,9 +217,9 @@ static void ExecStar(void) { var_f28 = BoardDAngleCalc(temp_f30 - temp_f29); } if (var_f28 > 90.0f) { - var_r25 = 0x1E; + var_r25 = 30; } else { - var_r25 = 0xF; + var_r25 = 15; } BoardPlayerMotBlendSet(temp_r31, temp_f30, var_r25); temp_f27 = BoardModelRotYGet(temp_r30); @@ -340,9 +338,9 @@ block_A: } _SetFlag(0x10017); BoardModelMotionShiftSet(temp_r30, hostMot[0], 0.0f, 10.0f, 0); - HuPrcSleep(0x1E); + HuPrcSleep(30); starDoneF = 1; - BoardAudSeqFadeOut(0, 0x3E8); + BoardAudSeqFadeOut(0, 1000); BoardModelPosGet(temp_r30, &sp24); sp24.y += 130.0f; BoardStarGive(temp_r31, &sp24); @@ -438,7 +436,7 @@ static void UpdateStarAngle(GiveStarWork *arg0, omObjData *arg1) { if (arg0->unk02 < 16.0f) { arg0->unk02 += 2.0f; if (arg0->unk02 > 16.0f) { - arg0->unk02 = 0x10; + arg0->unk02 = 16; } } OSs8tof32(&arg0->unk02, &var_f31); @@ -472,7 +470,7 @@ static void MoveGiveStar(GiveStarWork *arg0, omObjData *arg1) { BoardPlayerPosGet(arg0->unk00_field3, &sp8); if (arg0->unk00_field2 == 0) { if (BoardModelMotionTimeGet(arg0->unk0C) >= 50.0f) { - BoardModelMotionStartEndSet(arg0->unk0C, 0x32, 0x96); + BoardModelMotionStartEndSet(arg0->unk0C, 50, 150); arg0->unk00_field2 = 1; } } @@ -520,7 +518,7 @@ static void ShrinkGiveStar(GiveStarWork *arg0, omObjData *arg1) { arg1->scale.y = arg1->scale.x; arg1->scale.z = arg1->scale.x; } else { - omVibrate(arg0->unk00_field3, 0xC, 0xC, 0); + omVibrate(arg0->unk00_field3, 12, 0xC, 0); arg0->unk00_field0 = 1; arg0->unk01 = 4; arg1->scale.x = arg1->scale.y = arg1->scale.z = 0.001f; @@ -542,7 +540,7 @@ static void InitGiveStarEffect(void) { s16 temp_r3; void *var_r30; - var_r30 = HuDataSelHeapReadNum(0x120001, MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 1), MEMORY_DEFAULT_NUM, HEAP_DATA); starEffAnim = HuSprAnimRead(var_r30); starParman = Hu3DParManCreate(starEffAnim, 0x64, &starEffParam); Hu3DParManAttrSet(starParman, 0x64); @@ -550,7 +548,7 @@ static void InitGiveStarEffect(void) { temp_r3 = Hu3DParManModelIDGet(starParman); Hu3DParticleBlendModeSet(temp_r3, 1); Hu3DModelLayerSet(temp_r3, 2); - HuDataDirClose(0x120000); + HuDataDirClose(DATADIR_EFFECT); } static void KillGiveStarEffect(void) { @@ -579,7 +577,7 @@ static inline void StarInlineFunc02(void) { GiveStarWork *temp_r29 = OM_GET_WORK_PTR(giveStarObj, GiveStarWork); temp_r29->unk00_field1 = 1; - temp_r29->unk04 = 0x2D; + temp_r29->unk04 = 45; temp_r29->unk08 = 0; temp_r29->unk01 = 2; } @@ -605,7 +603,7 @@ void BoardStarGive(s32 arg0, Vec *arg1) { temp_r31->unk06 = 0; temp_r31->unk02 = 0; temp_r31->unk08 = 0; - temp_r31->unk0C = BoardModelCreate(0x7000B, NULL, 0); + temp_r31->unk0C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 11), NULL, 0); BoardModelVisibilitySet(temp_r31->unk0C, 0); BoardModelPassSet(temp_r31->unk0C, 0); BoardModelMotionSpeedSet(temp_r31->unk0C, 0.0f); @@ -628,7 +626,7 @@ void BoardStarGive(s32 arg0, Vec *arg1) { HuAudFXPlay(boardStarSndTbl[GWPlayer[arg0].character]); BoardPlayerStarsAdd(arg0, 1); HuAudFXPlay(8); - HuPrcSleep(0xA); + HuPrcSleep(10); if (_CheckFlag(0x1000B)) { BoardPlayerMotionEndWait(arg0); } else { @@ -665,12 +663,12 @@ void BoardStarShowNext(s32 arg0) { var_r26 = &wipeData; if (var_r26->mode == 0) { WipeColorSet(0, 0, 0); - WipeCreate(2, 0, 0x15); + WipeCreate(2, 0, 21); while (WipeStatGet() != 0) { HuPrcVSleep(); } } else { - HuPrcSleep(0x12); + HuPrcSleep(18); } BoardStatusItemSet(0); if (GWBoardGet() == 5 && BoardRollTypeGet() != 9 && boardStarGiveHook) { @@ -729,7 +727,7 @@ void BoardStarShowNext(s32 arg0) { BoardCameraMotionWait(); BoardCameraMoveSet(1); HuPrcSleep(1); - WipeCreate(1, 0, 0x15); + WipeCreate(1, 0, 21); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -744,7 +742,7 @@ void BoardStarShowNext(s32 arg0) { while (!BoardViewMoveCheck()) { HuPrcVSleep(); } - HuPrcSleep(0x1E); + HuPrcSleep(30); BoardWinKill(); HuPrcSleep(3); if (var_r28 == 0) { @@ -758,9 +756,9 @@ void BoardStarShowNext(s32 arg0) { if (GWBoardGet() == 5 && BoardRollTypeGet() != 9 && boardStarShowNextHook) { boardStarShowNextHook(); } - BoardAudSeqFadeOut(1, 0x3E8); + BoardAudSeqFadeOut(1, 1000); WipeColorSet(0, 0, 0); - WipeCreate(2, 0, 0x15); + WipeCreate(2, 0, 21); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -776,7 +774,7 @@ void BoardStarShowNext(s32 arg0) { BoardCameraMotionWait(); BoardCameraMoveSet(1); BoardStatusItemSet(1); - WipeCreate(1, 0, 0x15); + WipeCreate(1, 0, 21); while (WipeStatGet() != 0) { HuPrcVSleep(); } diff --git a/src/game/board/start.c b/src/game/board/start.c index 0487136c..0f0ea6a7 100755 --- a/src/game/board/start.c +++ b/src/game/board/start.c @@ -293,7 +293,7 @@ static void FocusStart(void) { sp8.x = -22.0f; sp8.y = 0.0f; sp8.z = 0.0f; - BoardCameraMotionStartEx(camFocus, &sp8, 0, 1500.0f, -1.0f, 0x15); + BoardCameraMotionStartEx(camFocus, &sp8, NULL, 1500.0f, -1.0f, 21); } static void CreatePlayerStart(void) { diff --git a/src/game/board/view.c b/src/game/board/view.c index ddc738a8..edbe9ccb 100755 --- a/src/game/board/view.c +++ b/src/game/board/view.c @@ -364,7 +364,7 @@ static void SetTargetView(void) { sp8.x = -45.0f; sp8.y = 0.0f; sp8.z = 0.0f; - BoardCameraMotionStartEx(focusMdl, &sp8, NULL, 3000.0f, -1.0f, 0x15); + BoardCameraMotionStartEx(focusMdl, &sp8, NULL, 3000.0f, -1.0f, 21); BoardCameraMotionWait(); } else { BoardModelPosSet(focusMdl, 0.0f, 0.0f, 0.0f); diff --git a/src/game/code_8003FF68.c b/src/game/code_8003FF68.c new file mode 100644 index 00000000..e9abbb62 --- /dev/null +++ b/src/game/code_8003FF68.c @@ -0,0 +1,206 @@ +#include "game/data.h" +#include "game/hsfman.h" +#include "game/process.h" +#include "game/hsfmotion.h" +#include "game/esprite.h" + +#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) + +typedef struct unkArg0 { +/* 0x00 */ u32 unk_00; +/* 0x04 */ s16 unk_04; +/* 0x06 */ s16 unk_06; +/* 0x08 */ s16 unk_08; +/* 0x0A */ s16 unk_0A; +/* 0x0C */ Vec pos; +/* 0x18 */ Vec rot; +/* 0x24 */ Vec scale; +} unkArg0; + +typedef struct unkCode_8003FF68 { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} unkCode_8003FF68; + +//func signatures +void fn_8004040C(); + +//bss +s16 lbl_80192060[0x80]; +s16 lbl_80192160[0x80]; +s16 lbl_80192260[0x80]; + +//sbss +char lbl_801D3DA0[8]; + +//data +s16 lbl_801D35C0[] = { + 0x000D, 0x0026, + 0x0008, 0x0017 +}; + +s16 lbl_801D35C8[] = { + 0x0005, 0x001E, + 0x0001, 0x000F +}; + +s16 lbl_801D35D0[] = { + 0x000D, 0x0019, + 0x000B, 0x001A +}; + +s16 lbl_801D35D8[] = { + 0x000C, 0x0022, + 0x000A, 0x001B +}; + +s16* lbl_80130100[] = { + lbl_801D35C0, + lbl_801D35C8, + lbl_801D35D0, + lbl_801D35C0, + lbl_801D35D8, + lbl_801D35C0, + lbl_801D35C0, + lbl_801D35C0 +}; + +void fn_8003FF68(unkArg0* arg0) { + ModelData* temp_r27; + s16 model; + s16 j, i; + unkArg0* var_r31; + void* temp; + + var_r31 = arg0; + for (i = 0; i < ARRAY_COUNT(lbl_80192060); i++) { + lbl_80192060[i] = lbl_80192160[i] = -1; + } + + for (j = 0; var_r31->unk_00 != -1U; var_r31++, j++) { + if (var_r31->unk_06 == 0) { + temp = HuDataSelHeapReadNum(var_r31->unk_00, 0x10000000, HEAP_DATA); + model = Hu3DModelCreate(temp); + lbl_80192060[j] = model; + Hu3DModelAttrSet(model, var_r31->unk_04); + Hu3DModelPosSetV(model, &var_r31->pos); + Hu3DModelRotSetV(model, &var_r31->rot); + Hu3DModelScaleSetV(model, &var_r31->scale); + temp_r27 = &Hu3DData[model]; + if (temp_r27->unk_08 != -1) { + lbl_80192160[j] = temp_r27->unk_08; + } + } else if (var_r31->unk_06 == 1) { + temp = HuDataSelHeapReadNum(var_r31->unk_00, 0x10000000, HEAP_DATA); + lbl_80192160[j] = Hu3DMotionCreate(temp); + } + } + + var_r31 = arg0; + + for (j = 0; var_r31->unk_00 != 0; var_r31++, j++) { + if (var_r31->unk_06 == 2) { + model = Hu3DModelLink(lbl_80192060[var_r31->unk_08]); + lbl_80192060[j] = model; + Hu3DModelAttrSet(model, var_r31->unk_04); + Hu3DModelPosSetV(model, &var_r31->pos); + Hu3DModelRotSetV(model, &var_r31->rot); + Hu3DModelScaleSetV(model, &var_r31->scale); + } + if (var_r31->unk_0A != -1) { + Hu3DMotionSet(lbl_80192060[j], lbl_80192160[var_r31->unk_0A]); + } + } + //reg alloc hack + (void)j; + (void)j; + (void)j; +} + +typedef struct unkArg0_2 { + u32 unk0; + s16 unk4; + s16 unk6; + f32 unk8; + f32 unkC; + u8 unk10; + u8 unk11; + u8 unk12; + u8 unk13; +} unkArg0_2; + +void fn_800401D0(unkArg0_2* arg0) { + s16 spr; + s16 j; + s16 i; + unkArg0_2* var_r31; + + var_r31 = arg0; + + for (i = 0; i < ARRAY_COUNT(lbl_80192260); i++) { + lbl_80192260[i] = -1; + } + + for (j = 0; var_r31->unk0 != 0; j++, var_r31++) { + spr = espEntry(var_r31->unk0, 100, 0); + lbl_80192260[j] = spr; + espPosSet(spr, var_r31->unk8, var_r31->unkC); + espColorSet(spr, var_r31->unk10, var_r31->unk11, var_r31->unk12); + espTPLvlSet(spr, var_r31->unk13 / 255.0f); + espPriSet(spr, var_r31->unk6); + espAttrSet(spr, var_r31->unk4); + } +} + +void fn_800402FC(void) { + s16 i; + + for (i = 0; i < ARRAY_COUNT(lbl_80192260); i++) { + if (lbl_80192260[i] != -1) { + espKill(lbl_80192260[i]); + } + } +} + +void fn_80040374(s16 arg0, s16 arg1, s16 arg2, s16 arg3) { + Process* process; + unkCode_8003FF68* temp_r3; + + process = HuPrcChildCreate(fn_8004040C, 1, 0x1000, 0, HuPrcCurrentGet()); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkCode_8003FF68), 0x10000000); + process->user_data = temp_r3; + temp_r3->unk0 = arg0; + temp_r3->unk2 = arg1; + temp_r3->unk4 = arg2; + temp_r3->unk6 = arg3; +} + +typedef struct UnkUserData { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; +} UnkUserData; + +void fn_8004040C(void) { + ModelData* temp_r30; + s16* temp_r29; + UnkUserData* temp_r31; + Process* process; + + process = HuPrcCurrentGet(); + temp_r31 = (UnkUserData*)process->user_data; + temp_r30 = &Hu3DData[temp_r31->unk4]; + temp_r29 = lbl_80130100[temp_r31->unk0]; + + while (1) { + if (temp_r30->unk_08 == temp_r31->unk6 && + (temp_r30->unk_64 == (temp_r29[temp_r31->unk2 * 2] & 0xFFE) || + temp_r30->unk_64 == (temp_r29[temp_r31->unk2 * 2 + 1] & 0xFFE))) { + HuAudFXPlay(0); + } + HuPrcVSleep(); + } +} \ No newline at end of file diff --git a/src/game/flag.c b/src/game/flag.c index f5168ef5..26cdb6c8 100644 --- a/src/game/flag.c +++ b/src/game/flag.c @@ -15,7 +15,7 @@ static u8 *GetFlagPtr(u32 flag) return ret; } -u32 _CheckFlag(u32 flag) +s32 _CheckFlag(u32 flag) { u8 *flag_ptr = GetFlagPtr(flag); u16 index = flag; diff --git a/src/game/gamework.c b/src/game/gamework.c index dedd6670..552ca588 100644 --- a/src/game/gamework.c +++ b/src/game/gamework.c @@ -105,11 +105,15 @@ static inline void ResetFlag(GameStat *game_stat) game_stat->field10E_bit4 = 0; game_stat->field10E_bit5 = 0; game_stat->field10E_bit6 = 0; - game_stat->field10F_bit0 = game_stat->field110_bit0 = 1; - game_stat->field10F_bit1 = game_stat->field110_bit1 = 1; - game_stat->field10F_bit2 = game_stat->field110_bit2 = 0; - game_stat->field10F_bit4 = game_stat->field110_bit4 = 1; - game_stat->field10F_bit6 = game_stat->field110_bit6 = 0; +} + +static inline void ResetPauseConfig(GameStat *game_stat) +{ + game_stat->story_pause.explain_mg = game_stat->party_pause.explain_mg = 1; + game_stat->story_pause.show_com_mg = game_stat->party_pause.show_com_mg = 1; + game_stat->story_pause.mg_list = game_stat->party_pause.mg_list = 0; + game_stat->story_pause.mess_speed = game_stat->party_pause.mess_speed = 1; + game_stat->story_pause.save_mode = game_stat->party_pause.save_mode = 0; } void GWGameStatReset(void) @@ -130,6 +134,7 @@ void GWGameStatReset(void) ResetBoardRecord(game_stat); ResetPresent(game_stat); ResetFlag(game_stat); + ResetPauseConfig(game_stat); memcpy(&GWGameStat, &GWGameStatDefault, sizeof(GameStat)); ResetBoardSettings(); } diff --git a/src/game/hsfanim.c b/src/game/hsfanim.c index 0c45106f..a04903fb 100755 --- a/src/game/hsfanim.c +++ b/src/game/hsfanim.c @@ -74,7 +74,7 @@ s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2) { var_r29 = temp_r27->attribute; for (i = var_r25 = 0; i < temp_r27->attributeCnt; i++, var_r29++) { if (strcmp(arg2, var_r29->bitmap->name) == 0) { - if (var_r29->unk04 == 0) { + if (!var_r29->unk04) { var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfanimStruct01), (u32) Hu3DData[arg1].unk_48); var_r29->unk04 = var_r30; var_r30->unk00 = 0; @@ -92,7 +92,7 @@ s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2) { OSReport("Error: Not Found TexAnim Name\n"); return -1; } - if (arg0 == 0) { + if (!arg0) { var_r31->unk10 = NULL; } else { var_r31->unk10 = HuSprAnimRead(arg0); @@ -131,7 +131,7 @@ s16 Hu3DAnimLink(s16 arg0, s16 arg1, char *arg2) { var_r29 = temp_r27->attribute; for (i = var_r25 = 0; i < temp_r27->attributeCnt; i++, var_r29++) { if (strcmp(arg2, var_r29->bitmap->name) == 0) { - if (var_r29->unk04 == 0) { + if (!var_r29->unk04) { var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfanimStruct01), (u32) Hu3DData[arg1].unk_48); var_r29->unk04 = var_r30; } else { @@ -234,7 +234,7 @@ void Hu3DAnimBankSet(s16 arg0, s32 arg1) { temp_r31->unk04 = temp_r31->unk08 = 0.0f; } -void Hu3DAnmNoSet(s16 arg0, s32 arg1) { +void Hu3DAnmNoSet(s16 arg0, u16 arg1) { Hu3DTexAnimDataStruct *temp_r31 = &Hu3DTexAnimData[arg0]; temp_r31->unk04 = arg1; @@ -378,7 +378,7 @@ s16 Hu3DTexScrollCreate(s16 arg0, char *arg1) { var_r29 = temp_r27->attribute; for (i = var_r25 = 0; i < temp_r27->attributeCnt; i++, var_r29++) { if (strcmp(arg1, var_r29->bitmap->name) == 0) { - if (var_r29->unk04 == 0) { + if (!var_r29->unk04) { var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfanimStruct01), (u32) Hu3DData[arg0].unk_48); var_r29->unk04 = var_r30; var_r30->unk00 = 0; @@ -865,7 +865,7 @@ s16 Hu3DParManCreate(AnimData *arg0, s16 arg1, HsfanimStruct00 *arg2) { s16 var_r30; for (var_r30 = 0; var_r30 < 64; var_r30++) { - if (parManProc[var_r30] == 0) { + if (!parManProc[var_r30]) { break; } } @@ -907,7 +907,7 @@ s16 Hu3DParManLink(s16 arg0, HsfanimStruct00 *arg1) { s16 var_r30; for (var_r30 = 0; var_r30 < 64; var_r30++) { - if (parManProc[var_r30] == 0) { + if (!parManProc[var_r30]) { break; } } diff --git a/src/game/hsfex.c b/src/game/hsfex.c index 33562538..7f72507c 100644 --- a/src/game/hsfex.c +++ b/src/game/hsfex.c @@ -457,7 +457,7 @@ void Hu3D3Dto2D(Vec *arg0, s16 arg1, Vec *arg2) { temp_r31 = &Hu3DCamera[i]; C_MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); PSMTXMultVec(sp1C, arg0, &sp10); - temp_f31 = (sin((temp_r31->fov / 2) * M_PI / 180.0) / cos((temp_r31->fov / 2) * M_PI / 180.0)) * sp10.z * 1.2000000476837158; + temp_f31 = (sin((temp_r31->fov / 2) * M_PI / 180.0) / cos((temp_r31->fov / 2) * M_PI / 180.0)) * sp10.z * 1.2f; temp_f30 = (sin((temp_r31->fov / 2) * M_PI / 180.0) / cos((temp_r31->fov / 2) * M_PI / 180.0)) * sp10.z; arg2->x = 288.0f + sp10.x * (288.0f / -temp_f31); arg2->y = 240.0f + sp10.y * (240.0f / temp_f30); diff --git a/src/game/kerent.c b/src/game/kerent.c new file mode 100644 index 00000000..fb99d976 --- /dev/null +++ b/src/game/kerent.c @@ -0,0 +1,4075 @@ +//fake function signatures +void OSDumpStopwatch(void); +void PSVECDotProduct(void); +void PSVECDistance(void); +void PSVECSquareDistance(void); +void VIGetDTVStatus(void); +void OSGetProgressiveMode(void); +void OSSetProgressiveMode(void); +void PSVECSubtract(void); +void PSMTXTranspose(void); +void C_VECReflect(void); +void PSMTXInvXpose(void); +void PSMTXRotRad(void); +void PSMTXRotAxisRad(void); +void PSVECMag(void); +void PSVECScale(void); +void PSMTXMultVecSR(void); +void C_QUATRotAxisRad(void); +void C_QUATMtx(void); +void C_QUATAdd(void); +void C_QUATSlerp(void); +void PSQUATAdd(void); +void PSMTXQuat(void); +void PSQUATMultiply(void); +void PSQUATInverse(void); +void PSQUATNormalize(void); +void OSTicksToCalendarTime(void); +void GXWaitDrawDone(void); +void GXProject(void); +void GXSetProjectionv(void); +void GXGetViewportv(void); +void GXPixModeSync(void); +void GXSetIndTexOrder(void); +void GXSetIndTexMtx(void); +void GXSetTevIndWarp(void); +void GXSetTexCoordScaleManually(void); +void GXSetTevIndTile(void); +void GXNtsc480Prog(void); +void omSetStatBit(void); +void MGSeqDoneCheck(void); +void WipeStatGet(void); +void omMakeGroupEx(void); +void omGetGroupMemberListEx(void); +void MGSeqParamSet(void); +void MGSeqKill(void); +void ClusterAdjustObject(void); +void printWin(void); +void print8(void); +void HuSysVWaitSet(void); +void fn_800401D0(void); +void fn_800402FC(void); +void MGSeqInit(void); +void MGSeqCreate(void); +void omDelObjEx(void); +void MGSeqPosSet(void); +void atan2(void); +void atan2f(void); +void cos(void); +void MGSeqStatGet(void); +void Center(void); +void CRotM(void); +void CenterM(void); +void CZoomM(void); +void omOutViewMulti(void); +void omOutView(void); +void omAddObjEx(void); +void omInitObjMan(void); +void frandmod(void); +void fn_80040374(void); +void SetDefLight(void); +void HuSetVecF(void); +void HuSubVecF(void); +void frandf(void); +void MGSeqSprKill(void); +void mtxRotCat(void); +void Hu3DLayerHookSet(void); +void Hu3DNoSyncSet(void); +void Hu3DModelCreate(void); +void Hu3DModelLink(void); +void Hu3DHookFuncCreate(void); +void Hu3DModelPosSet(void); +void Hu3DModelPosSetV(void); +void Hu3DModelRotSet(void); +void Hu3DModelRotSetV(void); +void Hu3DModelScaleSet(void); +void Hu3DModelScaleSetV(void); +void Hu3DModelKill(void); +void Hu3DModelAllKill(void); +void Hu3DModelAttrSet(void); +void Hu3DModelAttrReset(void); +void Hu3DModelAttrGet(void); +void Hu3DModelMotionAttrGet(void); +void Hu3DBGColorSet(void); +void Hu3DModelCameraSet(void); +void Hu3DModelLayerSet(void); +void Hu3DModelTPLvlSet(void); +void Hu3DModelHookSet(void); +void Hu3DModelHookReset(void); +void Hu3DModelHookObjReset(void); +void Hu3DModelAmbSet(void); +void Hu3DModelShadowDispOn(void); +void Hu3DModelShadowDispOff(void); +void Hu3DModelProjectionSet(void); +void Hu3DModelProjectionReset(void); +void Hu3DModelObjPosGet(void); +void Hu3DModelObjMtxGet(void); +void Hu3DModelHiliteTypeSet(void); +void Hu3DModelReflectTypeSet(void); +void Hu3DModelHiliteMapSet(void); +void HuPadInit(void); +void HuPadRead(void); +void HuPadRumbleSet(void); +void HuPadRumbleStop(void); +void HuPadRumbleAllStop(void); +void HuPadStatGet(void); +void HuPadRumbleGet(void); +void Hu3DCameraCreate(void); +void Hu3DCameraPerspectiveSet(void); +void Hu3DCameraViewportSet(void); +void Hu3DCameraScissorSet(void); +void Hu3DCameraPosSet(void); +void Hu3DCameraKill(void); +void Hu3DCameraPosSetV(void); +void Hu3DCameraAllKill(void); +void Hu3DCameraSet(void); +void Hu3DCameraMotionOn(void); +void Hu3DCameraMotionStart(void); +void Hu3DCameraMotionOff(void); +void Hu3DModelCameraCreate(void); +void Hu3DModelCameraInfoSet(void); +void Hu3DLighInit(void); +void Hu3DGLightCreate(void); +void Hu3DGLightCreateV(void); +void Hu3DGLightKill(void); +void Hu3DLightAllKill(void); +void Hu3DLightSet(void); +void Hu3DGLightSpotSet(void); +void Hu3DGLightInfinitytSet(void); +void Hu3DGLightPointSet(void); +void Hu3DGLightColorSet(void); +void Hu3DGLightPosSetV(void); +void Hu3DGLightPosSet(void); +void Hu3DGLightPosAimSetV(void); +void Hu3DGLightPosAimSet(void); +void Hu3DGLightStaticSet(void); +void Hu3DModelLightInfoSet(void); +void Hu3DReflectMapSet(void); +void Hu3DReflectNoSet(void); +void Hu3DFogSet(void); +void Hu3DFogClear(void); +void Hu3DModelObjPtrGet(void); +void Hu3DModelShadowSet(void); +void Hu3DModelShadowReset(void); +void Hu3DShadowCreate(void); +void Hu3DShadowPosSet(void); +void Hu3DShadowTPLvlSet(void); +void Hu3DModelShadowMapSet(void); +void Hu3DModelShadowMapObjSet(void); +void Hu3DShadowSizeSet(void); +void Hu3DMipMapSet(void); +void Hu3DModelClusterAttrSet(void); +void Hu3DModelClusterAttrReset(void); +void Hu3DLLightCreate(void); +void Hu3DLLightCreateV(void); +void Hu3DLLightSpotSet(void); +void Hu3DLLightInfinitytSet(void); +void Hu3DLLightPointSet(void); +void Hu3DLLightKill(void); +void Hu3DLLightColorSet(void); +void Hu3DLLightPosSetV(void); +void Hu3DLLightPosSet(void); +void Hu3DLLightPosAimSetV(void); +void Hu3DLLightPosAimSet(void); +void Hu3DLLightStaticSet(void); +void Hu3DAnimInit(void); +void Hu3DAnimCreate(void); +void Hu3DAnimLink(void); +void Hu3DAnimKill(void); +void Hu3DAnimAllKill(void); +void Hu3DAnimSet(void); +void Hu3DAnimExec(void); +void Hu3DAnimAttrSet(void); +void Hu3DAnimAttrReset(void); +void Hu3DAnimSpeedSet(void); +void Hu3DAnimBankSet(void); +void Hu3DAnmNoSet(void); +void Hu3DTexScrollCreate(void); +void Hu3DTexScrollPosSet(void); +void Hu3DTexScrollPosMoveSet(void); +void Hu3DTexScrollRotSet(void); +void Hu3DTexScrollRotMoveSet(void); +void Hu3DTexScrollKill(void); +void Hu3DTexScrollAllKill(void); +void Hu3DTexScrollPauseDisableSet(void); +void Hu3DParticleCreate(void); +void Hu3DParticleScaleSet(void); +void Hu3DParticleZRotSet(void); +void Hu3DParticleColSet(void); +void Hu3DParticleTPLvlSet(void); +void Hu3DParticleBlendModeSet(void); +void Hu3DParticleHookSet(void); +void Hu3DParticleCntSet(void); +void Hu3DParticleAttrSet(void); +void Hu3DParticleAttrReset(void); +void Hu3DParticleAnimModeSet(void); +void Hu3DParManInit(void); +void Hu3DParManCreate(void); +void Hu3DParManKill(void); +void Hu3DParManAllKill(void); +void Hu3DParManPtrGet(void); +void Hu3DParManAttrSet(void); +void Hu3DParManAttrReset(void); +void Hu3DParManPosSet(void); +void Hu3DParManVecSet(void); +void Hu3DParManRotSet(void); +void Hu3DParManModelIDGet(void); +void Hu3DParManLink(void); +void Hu3DParManTimeLimitSet(void); +void Hu3DParManColorSet(void); +void Hu3DMotionCreate(void); +void Hu3DMotionInit(void); +void Hu3DMotionModelCreate(void); +void Hu3DMotionKill(void); +void Hu3DMotionAllKill(void); +void Hu3DMotionSet(void); +void Hu3DMotionExec(void); +void Hu3DSubMotionExec(void); +void Hu3DMotionNext(void); +void Hu3DMotionTimeSet(void); +void Hu3DMotionTimeGet(void); +void Hu3DMotionMaxTimeGet(void); +void Hu3DMotionStartEndSet(void); +void Hu3DMotionMotionMaxTimeGet(void); +void Hu3DMotionEndCheck(void); +void Hu3DMotionShiftSet(void); +void Hu3DMotionIDGet(void); +void Hu3DMotionShiftIDGet(void); +void Hu3DMotionShiftTimeGet(void); +void Hu3DMotionShiftMaxTimeGet(void); +void Hu3DMotionShiftStartEndSet(void); +void Hu3DMotionShiftSpeedSet(void); +void Hu3DMotionSpeedSet(void); +void Hu3DMotionShapeSpeedSet(void); +void Hu3DMotionShapeTimeSet(void); +void Hu3DMotionNoMotSet(void); +void Hu3DMotionNoMotReset(void); +void Hu3DMotionForceSet(void); +void Hu3DMotionShapeSet(void); +void Hu3DMotionShapeIDGet(void); +void Hu3DMotionShapeMaxTimeGet(void); +void Hu3DMotionClusterSet(void); +void Hu3DMotionClusterNoSet(void); +void Hu3DMotionShapeReset(void); +void Hu3DMotionClusterReset(void); +void Hu3DJointMotion(void); +void Hu3DMotionOverlaySet(void); +void Hu3DMotionOverlayReset(void); +void Hu3DMotionOverlayTimeGet(void); +void Hu3DMotionOverlayTimeSet(void); +void Hu3DMotionOverlaySpeedSet(void); +void Hu3DModelObjDrawInit(void); +void Hu3DModelObjDraw(void); +void Hu3DMotionCalc(void); +void Hu3DMotionShapeStartEndSet(void); +void CamMotionEx(void); +void CamMotionEx2(void); +void Hu3D2Dto3D(void); +void Hu3D3Dto2D(void); +void Hu3DMtxRotGet(void); +void Hu3DMtxTransGet(void); +void Hu3DMtxScaleGet(void); +void Hu3DProjectionCreate(void); +void Hu3DProjectionPosSet(void); +void Hu3DProjectionTPLvlSet(void); +void Hu3DProjectionKill(void); +void HuAudInit(void); +void HuAudStreamPlay(void); +void HuAudAllStop(void); +void HuAudFadeOut(void); +void HuAudStreamPauseOn(void); +void HuAudStreamPauseOff(void); +void HuAudStreamFadeOut(void); +void HuAudStreamVolSet(void); +void HuAudFXPlay(void); +void HuAudFXPlayVol(void); +void HuAudFXPlayVolPan(void); +void HuAudFXStop(void); +void HuAudFXFadeOut(void); +void HuAudFXPanning(void); +void HuAudSeqPlay(void); +void HuAudSeqStop(void); +void HuAudSeqFadeOut(void); +void HuAudSeqMidiCtrlGet(void); +void HuAudFXListnerSet(void); +void HuAudFXListnerUpdate(void); +void HuAudFXEmiterPlay(void); +void HuAudFXEmiterUpDate(void); +void HuAudFXListnerKill(void); +void HuAudFXStatusGet(void); +void HuAudFXPitchSet(void); +void HuAudFXVolSet(void); +void HuAudDllSndGrpSet(void); +void HuAudSndGrpSetSet(void); +void HuAudSndGrpSet(void); +void HuAudSndCommonGrpSet(void); +void HuAudSStreamPlay(void); +void HuAudSStreamStop(void); +void HuAudSStreamFadeOut(void); +void HuAudSStreamAllFadeOut(void); +void HuAudSStreamAllStop(void); +void HuAudSStreamStatGet(void); +void HuAudPlayerVoicePlay(void); +void HuAudCharVoicePlay(void); +void HuAudPlayerVoicePlayPos(void); +void HuAudCharVoicePlayPos(void); +void HuAudPlayerVoicePlayEntry(void); +void HuAudCharVoicePlayEntry(void); +void HuAudAUXSet(void); +void msmMusPlay(void); +void espInit(void); +void espEntry(void); +void espKill(void); +void espGrpIDGet(void); +void espDispOn(void); +void espDispOff(void); +void espAttrSet(void); +void espAttrReset(void); +void espPosSet(void); +void espScaleSet(void); +void espZRotSet(void); +void espTPLvlSet(void); +void espColorSet(void); +void espSpeedSet(void); +void espBankSet(void); +void espDrawNoSet(void); +void espPriSet(void); +void lbl_80192060(void); +void lbl_80192160(void); +void lbl_80192260(void); +void lbl_801D3DA0(void); +void fn_8003FF68(void); +void HuPrcInit(void); +void HuPrcCall(void); +void HuPrcCreate(void); +void HuPrcKill(void); +void HuPrcEnd(void); +void HuPrcWakeup(void); +void HuPrcSleep(void); +void HuPrcVSleep(void); +void HuPrcCurrentGet(void); +void HuPrcDestructorSet(void); +void HuPrcDestructorSet2(void); +void HuPrcChildCreate(void); +void HuPrcChildLink(void); +void HuPrcChildUnlink(void); +void HuPrcChildKill(void); +void HuPrcMemAlloc(void); +void HuPrcMemFree(void); +void Hu3DParManVacumeSet(void); +void HuDataInit(void); +void HuDataDirRead(void); +void HuDataRead(void); +void HuDataReadNum(void); +void HuDataReadMulti(void); +void HuDataDirReadAsync(void); +void HuDataDirReadNumAsync(void); +void HuDataSelHeapRead(void); +void HuDataSelHeapReadNum(void); +void HuDataGetSize(void); +void HuDataDirClose(void); +void HuDataDirCloseNum(void); +void HuDataClose(void); +void HuDataCloseMulti(void); +void HuDataReadNumHeapShortForce(void); +void ARRegisterDMACallback(void); +void ARGetDMAStatus(void); +void ARStartDMA(void); +void ARInit(void); +void ARAlloc(void); +void ARFree(void); +void ARGetSize(void); +void ARSetSize(void); +void HuSprBegin(void); +void HuSprCall(void); +void HuSprFinish(void); +void HuSprAnimRead(void); +void HuSprCreate(void); +void HuSprGrpCreate(void); +void HuSprGrpMemberSet(void); +void HuSprGrpMemberKill(void); +void HuSprGrpKill(void); +void HuSprKill(void); +void HuSprAnimKill(void); +void HuSprAttrSet(void); +void HuSprAttrReset(void); +void HuSprPosSet(void); +void HuSprScaleSet(void); +void HuSprZRotSet(void); +void HuSprGrpPosSet(void); +void HuSprGrpZRotSet(void); +void HuSprGrpScaleSet(void); +void HuSprTPLvlSet(void); +void HuSprColorSet(void); +void HuSprSpeedSet(void); +void HuSprBankSet(void); +void HuSprGrpDrawNoSet(void); +void HuSprDrawNoSet(void); +void HuSprPriSet(void); +void HuSprFuncCreate(void); +void HuSprAnimMake(void); +void HuSprGrpCenterSet(void); +void HuSprAnimLock(void); +void AnimDebug(void); +void HuSprExecLayerSet(void); +void HuSprSprBGSet(void); +void HuSprBGSet(void); +void HuSprGrpScissorSet(void); +void HuSprScissorSet(void); +void HuSprGrpTPLvlSet(void); +void HuARMalloc(void); +void HuARFree(void); +void HuAR_DVDtoARAM(void); +void HuAR_MRAMtoARAM(void); +void HuAR_MRAMtoARAM2(void); +void HuAR_ARAMtoMRAM(void); +void HuAR_ARAMtoMRAMNum(void); +void HuARDMACheck(void); +void HuARDirCheck(void); +void HuARDirFree(void); +void HuAR_ARAMtoMRAMFileRead(void); +void HuAudFXListnerSetEX(void); +void HuWindowInit(void); +void HuWinInit(void); +void HuWinCreate(void); +void HuWinKill(void); +void HuWinAllKill(void); +void HuWinMesSet(void); +void HuWinInsertMesSet(void); +void HuWinChoiceGet(void); +void HuWinChoiceNumGet(void); +void HuWinMesWait(void); +void HuWinSprKill(void); +void HuWinMesRead(void); +void HuWinAnimSet(void); +void HuWinSprSet(void); +void HuWinSprPosSet(void); +void HuWinSprIDGet(void); +void HuWinMesMaxSizeGet(void); +void HuWinInsertMesSizeGet(void); +void HuWinMesMaxSizeBetGet(void); +void HuWinExCreate(void); +void HuWinDispOn(void); +void HuWinDispOff(void); +void HuWinExAnimIn(void); +void HuWinExAnimOut(void); +void HuWinExCleanup(void); +void HuWinExAnimPopIn(void); +void HuWinComKeyWait(void); +void HuWinComKeySet(void); +void HuWinComKeyReset(void); +void HuWinDrawNoSet(void); +void HuWinAttrSet(void); +void HuWinAttrReset(void); +void HuWinBGTPLvlSet(void); +void HuWinMesSpeedSet(void); +void HuWinBGColSet(void); +void HuWinChoiceDisable(void); +void HuWinKeyWaitEntry(void); +void HuWinCenterPosSet(void); +void HuWinPosSet(void); +void HuWinZRotSet(void); +void HuWinScaleSet(void); +void HuWinChoiceNowGet(void); +void HuWinStatGet(void); +void HuWinMesColSet(void); +void HuWinScissorSet(void); +void HuWinExCreateStyled(void); +void HuWinPriSet(void); +void HuWinSprPriSet(void); +void HuWinKeyWaitNumGet(void); +void HuWinMesSizeCancelCRSet(void); +void HuWinMesPalSet(void); +void HuWinHomeClear(void); +void HuWinPushKeySet(void); +void HuWinDisablePlayerSet(void); +void HuWinDisablePlayerReset(void); +void CharManInit(void); +void CharARAMOpen(void); +void CharKill(void); +void CharModelKill(void); +void CharKillAll(void); +void CharModelCreate(void); +void CharModelMotionCreate(void); +void CharModelMotionIndexSet(void); +void CharModelMotionKill(void); +void CharModelMotionDataClose(void); +void CharModelDataClose(void); +void CharAMemPtrGet(void); +void CharModelMotionSet(void); +void CharModelMotionTimeSet(void); +void CharModelMotionTimeGet(void); +void CharModelMotionMaxTimeGet(void); +void CharModelMotionEndCheck(void); +void CharModelMotionShiftIDGet(void); +void CharModelMotionShiftSet(void); +void CharModelMotionShiftTimeGet(void); +void CharModelMotionSpeedSet(void); +void CharModelLayerSetAll(void); +void CharModelItemHookCreate(void); +void CharModelEffectCreate(void); +void CharModelCoinEffectCreate(void); +void fn_8004EC74(void); +void fn_8004EDA4(void); +void fn_8004F13C(void); +void fn_8004F058(void); +void GWCharColorGet(void); +void CharModelLayerSetAll2(void); +void charTexNameTbl(void); +void CharModelTexNameGet(void); +void CharModelVoiceEnableSet(void); +void CharModelEffectNpcInitSilent(void); +void CharModelStepTypeSet(void); +void fn_8004F52C(void); +void CharModelEffectEnableSet(void); +void CharModelEffectNpcInit(void); +void HuPrcSetStat(void); +void HuPrcResetStat(void); +void omGameSysInit(void); +void omResetStatBit(void); +void omCurrentOvlGet(void); +void omPauseChk(void); +void omOvlHisChg(void); +void omOvlHisGet(void); +void omovlevtno(void); +void omovlstat(void); +void AddX(void); +void AddZ(void); +void MapObject(void); +void CharObject(void); +void nMap(void); +void nChar(void); +void MapWall(void); +void MapPos(void); +void HitFaceVec(void); +void HitFace(void); +void HitFaceCount(void); +void GWPlayer(void); +void GWSystem(void); +void HuTHPSprCreateVol(void); +void HuTHPSprCreate(void); +void HuTHP3DCreateVol(void); +void HuTHP3DCreate(void); +void HuTHPStop(void); +void HuTHPClose(void); +void HuTHPRestart(void); +void HuTHPEndCheck(void); +void HuTHPFrameGet(void); +void HuTHPTotalFrameGet(void); +void HuTHPSetVolume(void); +void HuCardCheck(void); +void HuCardMount(void); +void HuCardFormat(void); +void HuCardOpen(void); +void HuCardRead(void); +void HuCardCreate(void); +void HuCardClose(void); +void HuCardWrite(void); +void HuCardDelete(void); +void HuCardSectorSizeGet(void); +void HuCardFreeSpaceGet(void); +void HuCardSlotCheck(void); +void SLFileOpen(void); +void SLFileCreate(void); +void SLFileWrite(void); +void SLFileClose(void); +void SLFileRead(void); +void SLCurSlotNoSet(void); +void SLSaveDataMake(void); +void SLCommonSet(void); +void SLSaveBoard(void); +void SLSaveBoardBackup(void); +void SLSave(void); +void SLLoadGameStat(void); +void SLLoadBoard(void); +void SLLoadBoardBackup(void); +void SLLoad(void); +void SLCurBoxNoSet(void); +void SLSaveFlagSet(void); +void SLSaveFlagGet(void); +void SLCheckSumCheck(void); +void SLSerialNoGet(void); +void SLSerialNoCheck(void); +void saveExecF(void); +void _CheckFlag(void); +void _SetFlag(void); +void _ClearFlag(void); +void mgInfoTbl(void); +void mgTypeCurr(void); +void mgBattleStar(void); +void lbl_801D3E94(void); +void mgTicTacToeGrid(void); +void mgIndexList(void); +void lbl_801D3E94(void); +void mgGameStatBackup(void); +void mgRecordExtra(void); +void mgQuitExtraF(void); +void mgPracticeEnableF(void); +void mgBoardHostEnableF(void); +void omMgIndexGet(void); +void mgInstExitEnableF(void); +void GWMGRecordSet(void); +void GWMGRecordGet(void); +void GWBoardPlayCountAdd(void); +void GWBoardPlayCountSet(void); +void GWBoardPlayCountGet(void); +void GWBoardWinCountInc(void); +void GWBoardWinCountGet(void); +void GWBoardWinCountSet(void); +void GWBoardMaxStarsSet(void); +void GWBoardMaxStarsGet(void); +void GWBoardMaxCoinsSet(void); +void GWBoardMaxCoinsGet(void); +void GWTotalStarsSet(void); +void GWTotalStarsAdd(void); +void GWTotalStarsGet(void); +void GWStarsAdd(void); +void GWStarsGet(void); +void GWStarsSet(void); +void GWCoinsAdd(void); +void GWCoinsSet(void); +void GWCoinsGet(void); +void GWMGCustomReset(void); +void GWMGCustomSet(void); +void GWMGCustomGet(void); +void GWMGAvailGet(void); +void fmod(void); +void _savegpr_15(void); +void _restgpr_15(void); +void _savegpr_16(void); +void _restgpr_16(void); +void __save_gpr(void); +void __restore_gpr(void); +void omDBGMenuButton(void); +void msmSeSetListener(void); +void msmSeUpdataListener(void); +void msmSeGetIndexPtr(void); +void msmMusSetMasterVolume(void); +void msmSysGetOutputMode(void); +void BoardRollExec(void); +void BoardRollKill(void); +void BoardDiceValueSet(void); +void BoardDiceStop(void); +void BoardDicePauseAll(void); +void BoardDiceDoneCheck(void); +void BoardCommonInit(void); +void BoardStoryConfigSet(void); +void BoardPartyConfigSet(void); +void BoardSaveInit(void); +void BoardMGExit(void); +void BoardDAngleCalcVec(void); +void BoardDAngleCalc(void); +void BoardVecMaxDistXZCheck(void); +void BoardIsKill(void); +void BoardKill(void); +void BoardCameraScissorSet(void); +void BoardCameraViewSet(void); +void BoardCameraDirGet(void); +void BoardCameraPointDirGet(void); +void BoardCameraMoveSet(void); +void BoardCameraQuakeSet(void); +void BoardCameraQuakeReset(void); +void BoardCameraTargetSet(void); +void BoardCameraPosGet(void); +void BoardCameraTargetGet(void); +void BoardCameraRotGet(void); +void BoardCameraZoomGet(void); +void BoardCameraPosSet(void); +void BoardCameraXRotZoomSet(void); +void BoardCameraZoomSet(void); +void BoardCameraRotSet(void); +void BoardCameraFovSet(void); +void BoardCameraOffsetSet(void); +void BoardCameraTargetPlayerSet(void); +void BoardCameraTargetModelSet(void); +void BoardCameraTargetSpaceSet(void); +void BoardCameraCullCheck(void); +void BoardCameraMotionIsDone(void); +void BoardCameraMotionStartEx(void); +void BoardCameraMotionStart(void); +void BoardCameraMotionWait(void); +void BoardCameraNearFarSet(void); +void BoardCameraNearFarGet(void); +void BoardEventFlagSet(void); +void BoardEventFlagReset(void); +void BoardEventFlagGet(void); +void BoardMGCreate(void); +void BoardDAngleCalcRange(void); +void BoardVecDistXZCalc(void); +void BoardVecMinDistCheck(void); +void BoardArcSin(void); +void BoardArcCos(void); +void BoardMTXCalcLookAt(void); +void BoardLightSetExec(void); +void BoardLightResetExec(void); +void BoardLightHookSet(void); +void BoardMGDoneFlagSet(void); +void BoardMGDoneFlagGet(void); +void BoardMGSetupExec(void); +void BoardFilterFadeOut(void); +void BoardFilterFadeInit(void); +void BoardFilterFadePauseCheck(void); +void BoardFilterFadeCheck(void); +void BoardConfettiCreate(void); +void BoardConfettiKill(void); +void BoardConfettiStop(void); +void BoardRand(void); +void BoardRandMod(void); +void BoardRandFloat(void); +void boardRandSeed(void); +void BoardViewMoveCheck(void); +void BoardViewMoveEnd(void); +void BoardViewFocusGetPos(void); +void BoardViewMoveStart(void); +void BoardViewFocusSet(void); +void boardTurnFunc(void); +void boardStarShowNextHook(void); +void boardBowserHook(void); +void boardTurnStartFunc(void); +void boardStarGiveHook(void); +void boardMainProc(void); +void boardObjMan(void); +void BoardItemStart(void); +void BoardCharWheelInit(void); +void BoardCharWheelCheck(void); +void BoardCharWheelWait(void); +void BoardCharWheelResultGet(void); +void BoardCharWheelSpeedSet(void); +void BoardSpaceInit(void); +void BoardSpaceDestroy(void); +void BoardSpaceLandExec(void); +void BoardSpaceWalkEventFuncSet(void); +void BoardSpaceWalkMiniEventFuncSet(void); +void BoardSpaceLandEventFuncSet(void); +void BoardSpaceWalkEventExec(void); +void BoardSpaceWalkMiniEventExec(void); +void BoardSpaceBlockExec(void); +void BoardSpaceWalkExec(void); +void BoardSpaceCameraSet(void); +void BoardSpaceCornerPosGet(void); +void BoardSpaceStarGetRandom(void); +void BoardSpaceCountGet(void); +void BoardSpaceGet(void); +void BoardSpaceFlagPosGet(void); +void BoardSpaceFlagGet(void); +void BoardSpaceLinkTypeSearch(void); +void BoardSpacePosGet(void); +void BoardSpaceRotGet(void); +void BoardSpaceRead(void); +void BoardSpaceAttrReset(void); +void BoardSpaceAttrSet(void); +void BoardSpaceLinkTargetListGet(void); +void BoardSpaceFlagSearch(void); +void BoardSpaceTypeGet(void); +void BoardSpaceTypeSet(void); +void BoardSpaceLinkFlagSearch(void); +void BoardSpaceLinkTypeListGet(void); +void BoardSpaceLinkTransformGet(void); +void BoardSpaceHide(void); +void BoardSpaceStarCheck(void); +void BoardSpaceStarMove(void); +void BoardSpaceStarSetIndex(void); +void BoardSpaceStarGetCurr(void); +void BoardSpaceStarGet(void); +void BoardStarHostSet(void); +void BoardStarHostMdlGet(void); +void BoardBooHouseHostSet(void); +void BoardBooHouseHostGet(void); +void BoardLotteryHostSet(void); +void BoardLotteryHostGet(void); +void BoardShopHostSet(void); +void BoardShopHostGet(void); +void BoardPauseActiveCheck(void); +void BoardLotteryInit(void); +void BoardLotteryKill(void); +void BoardLotteryExec(void); +void BoardBooHouseCreate(void); +void BoardBooHouseKill(void); +void BoardBooHouseExec(void); +void BoardLandBlueExec(void); +void BoardLandRedExec(void); +void BoardWarpExec(void); +void BoardMushroomExec(void); +void BoardStarExec(void); +void BoardStarGive(void); +void BoardBattleExec(void); +void BoardShopInit(void); +void BoardShopKill(void); +void BoardShopExec(void); +void BoardModelInit(void); +void BoardModelKillAll(void); +void BoardModelDummyUpdate(void); +void BoardModelVisibilityUpdate(void); +void BoardModelKill(void); +void BoardModelExistCheck(void); +void BoardModelExistDupe(void); +void BoardModelIDGet(void); +void BoardModelAlphaSet(void); +void BoardModelMotionStart(void); +void BoardModelMotionShiftSet(void); +void BoardModelAttrSet(void); +void BoardModelAttrReset(void); +void BoardModelMotionTimeSet(void); +void BoardModelMotionSpeedSet(void); +void BoardModelMotionSpeedGet(void); +void BoardModelMotionStartEndSet(void); +void BoardModelMotionUpdateSet(void); +void BoardModelMotionShapeSet(void); +void BoardModelMotionShapeTimeGet(void); +void BoardModelMotionShapeMaxTimeGet(void); +void BoardModelMotionShapeSpeedSet(void); +void BoardModelMotionShapeSpeedGet(void); +void BoardModelMotionShapeEndCheck(void); +void BoardModelMotionShapeStartEndSet(void); +void BoardModelMtxSet(void); +void BoardModelMtxGet(void); +void BoardModelPosSetV(void); +void BoardModelRotSetV(void); +void BoardModelScaleSetV(void); +void BoardModelPosSet(void); +void BoardModelRotSet(void); +void BoardModelScaleSet(void); +void BoardModelPosGet(void); +void BoardModelRotGet(void); +void BoardModelScaleGet(void); +void fn_8006DDE8(void); +void BoardModelVisibilitySet(void); +void BoardModelVisibilityGet(void); +void BoardModelLayerSet(void); +void BoardModelCameraSet(void); +void BoardModelPassSet(void); +void fn_8006DC1C(void); +void BoardModelHookSet(void); +void BoardModelHookReset(void); +void BoardModelHookObjReset(void); +void BoardModelMotionEndCheck(void); +void BoardModelMotionTimeGet(void); +void BoardModelMotionMaxTimeGet(void); +void BoardModelMotionCreate(void); +void BoardModelMotionKill(void); +void BoardModelCreate(void); +void BoardModelCreateCharacter(void); +void BoardModelCreateParam(void); +void BoardModelLayerSetAll(void); +void BoardModelCameraSetAll(void); +void BoardModelHideSetAll(void); +void BoardModelAmbSet(void); +void BoardModelAmbSetAll(void); +void BoardModelRotYSet(void); +void BoardModelRotYGet(void); +void BoardModelVoiceEnableSet(void); +void BoardPlayerModelInit(void); +void BoardPlayerModelKill(void); +void BoardPlayerInit(void); +void BoardPlayerGetCharMess(void); +void BoardPlayerGetCharName(void); +void BoardPlayerLayerSet(void); +void BoardPlayerCameraSet(void); +void fn_80062A40(void); +void BoardPlayerExistCheck(void); +void BoardPlayerMtxSet(void); +void BoardPlayerPosSet(void); +void BoardPlayerPosSetV(void); +void BoardPlayerPosGet(void); +void BoardPlayerRotSet(void); +void BoardPlayerRotSetV(void); +void BoardPlayerRotGet(void); +void BoardPlayerRotYSet(void); +void BoardPlayerRotYGet(void); +void BoardPlayerScaleSet(void); +void BoardPlayerScaleSetV(void); +void BoardPlayerScaleGet(void); +void BoardPlayerCornerPosSet(void); +void BoardPlayerCornerPosGet(void); +void BoardPlayerSizeGet(void); +void BoardPlayerSizeSet(void); +void BoardPlayerCurrMotionGet(void); +void BoardPlayerMotionEndCheck(void); +void BoardPlayerMotionEndWait(void); +void BoardPlayerMotionMaxTimeGet(void); +void BoardPlayerMotionTimeGet(void); +void BoardPlayerVoiceEnableSet(void); +void BoardPlayerMotionStart(void); +void BoardPlayerMotionShiftSet(void); +void BoardPlayerMotionCreate(void); +void BoardPlayerMotionKill(void); +void BoardPlayerMotionSpeedSet(void); +void BoardPlayerMotionTimeSet(void); +void BoardPlayerMotionStartEndSet(void); +void BoardPlayerModelAttrSet(void); +void BoardPlayerModelAttrReset(void); +void BoardPlayerAmbSet(void); +void BoardPlayerIdleSet(void); +void BoardPlayerMotBlendSet(void); +void BoardPlayerMotBlendCheck(void); +void BoardPlayerRankCalc(void); +void BoardRollTypeGet(void); +void BoardRollTypeSet(void); +void BoardPlayerItemRemove(void); +void BoardPlayerItemFind(void); +void BoardPlayerItemAdd(void); +void BoardPlayerItemCount(void); +void BoardPlayerCoinsAdd(void); +void BoardPlayerCoinsGet(void); +void BoardPlayerCoinsSet(void); +void BoardPlayerStarsAdd(void); +void BoardPlayerSameTeamFind(void); +void BoardPlayerPosLerpStart(void); +void BoardPlayerMoveToAsync(void); +void BoardPlayerDiceJumpStart(void); +void BoardPlayerDiceJumpCheck(void); +void BoardDiceDigit2DInit(void); +void BoardDiceDigit2DUpdateEnable(void); +void BoardDiceDigit2DShowSet(void); +void BoardPlayerBtnDownWait(void); +void BoardPlayerAutoSizeSet(void); +void BoardPlayerAutoSizeGet(void); +void BoardPlayerMoveAwayIsDone(void); +void BoardPlayerMoveAwayStartCurr(void); +void BoardPlayerMoveAwayStart(void); +void BoardPlayerPreTurnHookSet(void); +void BoardPlayerPostTurnHookSet(void); +void BoardPlayerCopyEyeMat(void); +void BoardBowserSuitInit(void); +void BoardBowserSuitKill(void); +void BoardBowserSuitModelGet(void); +void BoardBowserSuitPlayerModelGet(void); +void BoardBowserSuitPlayerModelKill(void); +void BoardBowserSuitMotionSetWait(void); +void BoardBowserSuitMotionSetWalk(void); +void BoardBowserSuitMotionSetWin(void); +void BoardBowserSuitMotionSetJump(void); +void BoardJunctionMaskSet(void); +void BoardJunctionMaskReset(void); +void BoardJunctionMaskZero(void); +void BoardPlayerResizeAnimExec(void); +void BoardWinCreate(void); +void BoardWinCreateChoice(void); +void BoardWinChoiceGet(void); +void BoardWinWait(void); +void BoardWinKill(void); +void BoardWinInit(void); +void BoardWinKillAll(void); +void BoardWinUnusedArraySet(void); +void BoardWinPause(void); +void BoardWinInsertMesSet(void); +void BoardWinAttrSet(void); +void BoardWinAttrReset(void); +void BoardWinChoiceDisable(void); +void BoardWinKeyWait(void); +void BoardWinSpeedGet(void); +void BoardWinSpeedSet(void); +void BoardWinPriSet(void); +void BoardWinChoiceNowGet(void); +void BoardWinChoiceNowGet2(void); +void BoardStatusCreate(void); +void BoardStatusKill(void); +void BoardStatusVisibleGet(void); +void BoardStatusShowSet(void); +void BoardStatusShowSetForce(void); +void BoardStatusGraySet(void); +void BoardStatusShowSetAll(void); +void BoardStatusStopCheck(void); +void BoardSpriteCreate(void); +void BoardStatusTargetPosSet(void); +void BoardStatusPosSet(void); +void BoardStatusPosGet(void); +void BoardStatusItemHideSet(void); +void BoardStatusHammerCreate(void); +void BoardStatusHammerKill(void); +void BoardStatusHammerShowSet(void); +void BoardPickerCreate(void); +void BoardPickerDoneCheck(void); +void BoardPickerChoiceGet(void); +void BoardPickerPosGet(void); +void BoardPickerBackFlagSet(void); +void BoardItemGetDestPos(void); +void BoardItemUseExec(void); +void BoardItemStatusKill(void); +void BoardYourTurnExec(void); +void BoardMusStart(void); +void BoardAudSeqFadeOutFast(void); +void BoardAudSeqFadeOut(void); +void BoardMusLoudSet(void); +void BoardMusVolPanSet(void); +void BoardAudSeqPause(void); +void BoardMusStatusGet(void); +void BoardAudSeqFadeOutAll(void); +void BoardAudFXPlay(void); +void BoardAudFXStop(void); +void BoardComKeySetLeft(void); +void BoardComKeySetUp(void); +void BoardComKeySetRight(void); +void BoardComKeySetDown(void); +void BoardComPreferItemCheck(void); +void BoardComPreferItemGet(void); +void BoardComFarPlayerFind(void); +void boardTutorialData(void); +void BoardTutorialHookSet(void); +void BoardRollTutorialSet(void); +void BoardTutorialDirInputSet(void); +void BoardCharWheelTargetSet(void); +void BoardTutorialBlockSetPos(void); +void BoardTutorialItemSet(void); +void BoardTutorialHostSet(void); +void BoardMGSetupTutorialExec(void); +void BoardShopTutorialExec(void); +void BoardLotteryTutorialExec(void); +void BoardBooHouseTutorialExec(void); +extern void _kerjmp_OSDumpStopwatch(void); +extern void _kerjmp_PSVECDotProduct(void); +extern void _kerjmp_PSVECDistance(void); +extern void _kerjmp_PSVECSquareDistance(void); +extern void _kerjmp_VIGetDTVStatus(void); +extern void _kerjmp_OSGetProgressiveMode(void); +extern void _kerjmp_OSSetProgressiveMode(void); +extern void _kerjmp_PSVECSubtract(void); +extern void _kerjmp_PSMTXTranspose(void); +extern void _kerjmp_C_VECReflect(void); +extern void _kerjmp_PSMTXInvXpose(void); +extern void _kerjmp_PSMTXRotRad(void); +extern void _kerjmp_PSMTXRotAxisRad(void); +extern void _kerjmp_PSVECMag(void); +extern void _kerjmp_PSVECScale(void); +extern void _kerjmp_PSMTXMultVecSR(void); +extern void _kerjmp_C_QUATRotAxisRad(void); +extern void _kerjmp_C_QUATMtx(void); +extern void _kerjmp_C_QUATAdd(void); +extern void _kerjmp_C_QUATSlerp(void); +extern void _kerjmp_PSQUATAdd(void); +extern void _kerjmp_PSMTXQuat(void); +extern void _kerjmp_PSQUATMultiply(void); +extern void _kerjmp_PSQUATInverse(void); +extern void _kerjmp_PSQUATNormalize(void); +extern void _kerjmp_OSTicksToCalendarTime(void); +extern void _kerjmp_GXWaitDrawDone(void); +extern void _kerjmp_GXProject(void); +extern void _kerjmp_GXSetProjectionv(void); +extern void _kerjmp_GXGetViewportv(void); +extern void _kerjmp_GXPixModeSync(void); +extern void _kerjmp_GXSetIndTexOrder(void); +extern void _kerjmp_GXSetIndTexMtx(void); +extern void _kerjmp_GXSetTevIndWarp(void); +extern void _kerjmp_GXSetTexCoordScaleManually(void); +extern void _kerjmp_GXSetTevIndTile(void); +extern void _kerjmp_GXNtsc480Prog(void); +extern void _kerjmp_omSetStatBit(void); +extern void _kerjmp_MGSeqDoneCheck(void); +extern void _kerjmp_WipeStatGet(void); +extern void _kerjmp_omMakeGroupEx(void); +extern void _kerjmp_omGetGroupMemberListEx(void); +extern void _kerjmp_MGSeqParamSet(void); +extern void _kerjmp_MGSeqKill(void); +extern void _kerjmp_ClusterAdjustObject(void); +extern void _kerjmp_printWin(void); +extern void _kerjmp_print8(void); +extern void _kerjmp_HuSysVWaitSet(void); +extern void _kerjmp_fn_800401D0(void); +extern void _kerjmp_fn_800402FC(void); +extern void _kerjmp_MGSeqInit(void); +extern void _kerjmp_MGSeqCreate(void); +extern void _kerjmp_omDelObjEx(void); +extern void _kerjmp_MGSeqPosSet(void); +extern void _kerjmp_atan2(void); +extern void _kerjmp_atan2f(void); +extern void _kerjmp_cos(void); +extern void _kerjmp_MGSeqStatGet(void); +extern void _kerjmp_Center(void); +extern void _kerjmp_CRotM(void); +extern void _kerjmp_CenterM(void); +extern void _kerjmp_CZoomM(void); +extern void _kerjmp_omOutViewMulti(void); +extern void _kerjmp_omOutView(void); +extern void _kerjmp_omAddObjEx(void); +extern void _kerjmp_omInitObjMan(void); +extern void _kerjmp_frandmod(void); +extern void _kerjmp_fn_80040374(void); +extern void _kerjmp_SetDefLight(void); +extern void _kerjmp_HuSetVecF(void); +extern void _kerjmp_HuSubVecF(void); +extern void _kerjmp_frandf(void); +extern void _kerjmp_MGSeqSprKill(void); +extern void _kerjmp_mtxRotCat(void); +extern void _kerjmp_Hu3DLayerHookSet(void); +extern void _kerjmp_Hu3DNoSyncSet(void); +extern void _kerjmp_Hu3DModelCreate(void); +extern void _kerjmp_Hu3DModelLink(void); +extern void _kerjmp_Hu3DHookFuncCreate(void); +extern void _kerjmp_Hu3DModelPosSet(void); +extern void _kerjmp_Hu3DModelPosSetV(void); +extern void _kerjmp_Hu3DModelRotSet(void); +extern void _kerjmp_Hu3DModelRotSetV(void); +extern void _kerjmp_Hu3DModelScaleSet(void); +extern void _kerjmp_Hu3DModelScaleSetV(void); +extern void _kerjmp_Hu3DModelKill(void); +extern void _kerjmp_Hu3DModelAllKill(void); +extern void _kerjmp_Hu3DModelAttrSet(void); +extern void _kerjmp_Hu3DModelAttrReset(void); +extern void _kerjmp_Hu3DModelAttrGet(void); +extern void _kerjmp_Hu3DModelMotionAttrGet(void); +extern void _kerjmp_Hu3DBGColorSet(void); +extern void _kerjmp_Hu3DModelCameraSet(void); +extern void _kerjmp_Hu3DModelLayerSet(void); +extern void _kerjmp_Hu3DModelTPLvlSet(void); +extern void _kerjmp_Hu3DModelHookSet(void); +extern void _kerjmp_Hu3DModelHookReset(void); +extern void _kerjmp_Hu3DModelHookObjReset(void); +extern void _kerjmp_Hu3DModelAmbSet(void); +extern void _kerjmp_Hu3DModelShadowDispOn(void); +extern void _kerjmp_Hu3DModelShadowDispOff(void); +extern void _kerjmp_Hu3DModelProjectionSet(void); +extern void _kerjmp_Hu3DModelProjectionReset(void); +extern void _kerjmp_Hu3DModelObjPosGet(void); +extern void _kerjmp_Hu3DModelObjMtxGet(void); +extern void _kerjmp_Hu3DModelHiliteTypeSet(void); +extern void _kerjmp_Hu3DModelReflectTypeSet(void); +extern void _kerjmp_Hu3DModelHiliteMapSet(void); +extern void _kerjmp_HuPadInit(void); +extern void _kerjmp_HuPadRead(void); +extern void _kerjmp_HuPadRumbleSet(void); +extern void _kerjmp_HuPadRumbleStop(void); +extern void _kerjmp_HuPadRumbleAllStop(void); +extern void _kerjmp_HuPadStatGet(void); +extern void _kerjmp_HuPadRumbleGet(void); +extern void _kerjmp_Hu3DCameraCreate(void); +extern void _kerjmp_Hu3DCameraPerspectiveSet(void); +extern void _kerjmp_Hu3DCameraViewportSet(void); +extern void _kerjmp_Hu3DCameraScissorSet(void); +extern void _kerjmp_Hu3DCameraPosSet(void); +extern void _kerjmp_Hu3DCameraKill(void); +extern void _kerjmp_Hu3DCameraPosSetV(void); +extern void _kerjmp_Hu3DCameraAllKill(void); +extern void _kerjmp_Hu3DCameraSet(void); +extern void _kerjmp_Hu3DCameraMotionOn(void); +extern void _kerjmp_Hu3DCameraMotionStart(void); +extern void _kerjmp_Hu3DCameraMotionOff(void); +extern void _kerjmp_Hu3DModelCameraCreate(void); +extern void _kerjmp_Hu3DModelCameraInfoSet(void); +extern void _kerjmp_Hu3DLighInit(void); +extern void _kerjmp_Hu3DGLightCreate(void); +extern void _kerjmp_Hu3DGLightCreateV(void); +extern void _kerjmp_Hu3DGLightKill(void); +extern void _kerjmp_Hu3DLightAllKill(void); +extern void _kerjmp_Hu3DLightSet(void); +extern void _kerjmp_Hu3DGLightSpotSet(void); +extern void _kerjmp_Hu3DGLightInfinitytSet(void); +extern void _kerjmp_Hu3DGLightPointSet(void); +extern void _kerjmp_Hu3DGLightColorSet(void); +extern void _kerjmp_Hu3DGLightPosSetV(void); +extern void _kerjmp_Hu3DGLightPosSet(void); +extern void _kerjmp_Hu3DGLightPosAimSetV(void); +extern void _kerjmp_Hu3DGLightPosAimSet(void); +extern void _kerjmp_Hu3DGLightStaticSet(void); +extern void _kerjmp_Hu3DModelLightInfoSet(void); +extern void _kerjmp_Hu3DReflectMapSet(void); +extern void _kerjmp_Hu3DReflectNoSet(void); +extern void _kerjmp_Hu3DFogSet(void); +extern void _kerjmp_Hu3DFogClear(void); +extern void _kerjmp_Hu3DModelObjPtrGet(void); +extern void _kerjmp_Hu3DModelShadowSet(void); +extern void _kerjmp_Hu3DModelShadowReset(void); +extern void _kerjmp_Hu3DShadowCreate(void); +extern void _kerjmp_Hu3DShadowPosSet(void); +extern void _kerjmp_Hu3DShadowTPLvlSet(void); +extern void _kerjmp_Hu3DModelShadowMapSet(void); +extern void _kerjmp_Hu3DModelShadowMapObjSet(void); +extern void _kerjmp_Hu3DShadowSizeSet(void); +extern void _kerjmp_Hu3DMipMapSet(void); +extern void _kerjmp_Hu3DModelClusterAttrSet(void); +extern void _kerjmp_Hu3DModelClusterAttrReset(void); +extern void _kerjmp_Hu3DLLightCreate(void); +extern void _kerjmp_Hu3DLLightCreateV(void); +extern void _kerjmp_Hu3DLLightSpotSet(void); +extern void _kerjmp_Hu3DLLightInfinitytSet(void); +extern void _kerjmp_Hu3DLLightPointSet(void); +extern void _kerjmp_Hu3DLLightKill(void); +extern void _kerjmp_Hu3DLLightColorSet(void); +extern void _kerjmp_Hu3DLLightPosSetV(void); +extern void _kerjmp_Hu3DLLightPosSet(void); +extern void _kerjmp_Hu3DLLightPosAimSetV(void); +extern void _kerjmp_Hu3DLLightPosAimSet(void); +extern void _kerjmp_Hu3DLLightStaticSet(void); +extern void _kerjmp_Hu3DAnimInit(void); +extern void _kerjmp_Hu3DAnimCreate(void); +extern void _kerjmp_Hu3DAnimLink(void); +extern void _kerjmp_Hu3DAnimKill(void); +extern void _kerjmp_Hu3DAnimAllKill(void); +extern void _kerjmp_Hu3DAnimSet(void); +extern void _kerjmp_Hu3DAnimExec(void); +extern void _kerjmp_Hu3DAnimAttrSet(void); +extern void _kerjmp_Hu3DAnimAttrReset(void); +extern void _kerjmp_Hu3DAnimSpeedSet(void); +extern void _kerjmp_Hu3DAnimBankSet(void); +extern void _kerjmp_Hu3DAnmNoSet(void); +extern void _kerjmp_Hu3DTexScrollCreate(void); +extern void _kerjmp_Hu3DTexScrollPosSet(void); +extern void _kerjmp_Hu3DTexScrollPosMoveSet(void); +extern void _kerjmp_Hu3DTexScrollRotSet(void); +extern void _kerjmp_Hu3DTexScrollRotMoveSet(void); +extern void _kerjmp_Hu3DTexScrollKill(void); +extern void _kerjmp_Hu3DTexScrollAllKill(void); +extern void _kerjmp_Hu3DTexScrollPauseDisableSet(void); +extern void _kerjmp_Hu3DParticleCreate(void); +extern void _kerjmp_Hu3DParticleScaleSet(void); +extern void _kerjmp_Hu3DParticleZRotSet(void); +extern void _kerjmp_Hu3DParticleColSet(void); +extern void _kerjmp_Hu3DParticleTPLvlSet(void); +extern void _kerjmp_Hu3DParticleBlendModeSet(void); +extern void _kerjmp_Hu3DParticleHookSet(void); +extern void _kerjmp_Hu3DParticleCntSet(void); +extern void _kerjmp_Hu3DParticleAttrSet(void); +extern void _kerjmp_Hu3DParticleAttrReset(void); +extern void _kerjmp_Hu3DParticleAnimModeSet(void); +extern void _kerjmp_Hu3DParManInit(void); +extern void _kerjmp_Hu3DParManCreate(void); +extern void _kerjmp_Hu3DParManKill(void); +extern void _kerjmp_Hu3DParManAllKill(void); +extern void _kerjmp_Hu3DParManPtrGet(void); +extern void _kerjmp_Hu3DParManAttrSet(void); +extern void _kerjmp_Hu3DParManAttrReset(void); +extern void _kerjmp_Hu3DParManPosSet(void); +extern void _kerjmp_Hu3DParManVecSet(void); +extern void _kerjmp_Hu3DParManRotSet(void); +extern void _kerjmp_Hu3DParManModelIDGet(void); +extern void _kerjmp_Hu3DParManLink(void); +extern void _kerjmp_Hu3DParManTimeLimitSet(void); +extern void _kerjmp_Hu3DParManColorSet(void); +extern void _kerjmp_Hu3DMotionCreate(void); +extern void _kerjmp_Hu3DMotionInit(void); +extern void _kerjmp_Hu3DMotionModelCreate(void); +extern void _kerjmp_Hu3DMotionKill(void); +extern void _kerjmp_Hu3DMotionAllKill(void); +extern void _kerjmp_Hu3DMotionSet(void); +extern void _kerjmp_Hu3DMotionExec(void); +extern void _kerjmp_Hu3DSubMotionExec(void); +extern void _kerjmp_Hu3DMotionNext(void); +extern void _kerjmp_Hu3DMotionTimeSet(void); +extern void _kerjmp_Hu3DMotionTimeGet(void); +extern void _kerjmp_Hu3DMotionMaxTimeGet(void); +extern void _kerjmp_Hu3DMotionStartEndSet(void); +extern void _kerjmp_Hu3DMotionMotionMaxTimeGet(void); +extern void _kerjmp_Hu3DMotionEndCheck(void); +extern void _kerjmp_Hu3DMotionShiftSet(void); +extern void _kerjmp_Hu3DMotionIDGet(void); +extern void _kerjmp_Hu3DMotionShiftIDGet(void); +extern void _kerjmp_Hu3DMotionShiftTimeGet(void); +extern void _kerjmp_Hu3DMotionShiftMaxTimeGet(void); +extern void _kerjmp_Hu3DMotionShiftStartEndSet(void); +extern void _kerjmp_Hu3DMotionShiftSpeedSet(void); +extern void _kerjmp_Hu3DMotionSpeedSet(void); +extern void _kerjmp_Hu3DMotionShapeSpeedSet(void); +extern void _kerjmp_Hu3DMotionShapeTimeSet(void); +extern void _kerjmp_Hu3DMotionNoMotSet(void); +extern void _kerjmp_Hu3DMotionNoMotReset(void); +extern void _kerjmp_Hu3DMotionForceSet(void); +extern void _kerjmp_Hu3DMotionShapeSet(void); +extern void _kerjmp_Hu3DMotionShapeIDGet(void); +extern void _kerjmp_Hu3DMotionShapeMaxTimeGet(void); +extern void _kerjmp_Hu3DMotionClusterSet(void); +extern void _kerjmp_Hu3DMotionClusterNoSet(void); +extern void _kerjmp_Hu3DMotionShapeReset(void); +extern void _kerjmp_Hu3DMotionClusterReset(void); +extern void _kerjmp_Hu3DJointMotion(void); +extern void _kerjmp_Hu3DMotionOverlaySet(void); +extern void _kerjmp_Hu3DMotionOverlayReset(void); +extern void _kerjmp_Hu3DMotionOverlayTimeGet(void); +extern void _kerjmp_Hu3DMotionOverlayTimeSet(void); +extern void _kerjmp_Hu3DMotionOverlaySpeedSet(void); +extern void _kerjmp_Hu3DModelObjDrawInit(void); +extern void _kerjmp_Hu3DModelObjDraw(void); +extern void _kerjmp_Hu3DMotionCalc(void); +extern void _kerjmp_Hu3DMotionShapeStartEndSet(void); +extern void _kerjmp_CamMotionEx(void); +extern void _kerjmp_CamMotionEx2(void); +extern void _kerjmp_Hu3D2Dto3D(void); +extern void _kerjmp_Hu3D3Dto2D(void); +extern void _kerjmp_Hu3DMtxRotGet(void); +extern void _kerjmp_Hu3DMtxTransGet(void); +extern void _kerjmp_Hu3DMtxScaleGet(void); +extern void _kerjmp_Hu3DProjectionCreate(void); +extern void _kerjmp_Hu3DProjectionPosSet(void); +extern void _kerjmp_Hu3DProjectionTPLvlSet(void); +extern void _kerjmp_Hu3DProjectionKill(void); +extern void _kerjmp_HuAudInit(void); +extern void _kerjmp_HuAudStreamPlay(void); +extern void _kerjmp_HuAudAllStop(void); +extern void _kerjmp_HuAudFadeOut(void); +extern void _kerjmp_HuAudStreamPauseOn(void); +extern void _kerjmp_HuAudStreamPauseOff(void); +extern void _kerjmp_HuAudStreamFadeOut(void); +extern void _kerjmp_HuAudStreamVolSet(void); +extern void _kerjmp_HuAudFXPlay(void); +extern void _kerjmp_HuAudFXPlayVol(void); +extern void _kerjmp_HuAudFXPlayVolPan(void); +extern void _kerjmp_HuAudFXStop(void); +extern void _kerjmp_HuAudFXFadeOut(void); +extern void _kerjmp_HuAudFXPanning(void); +extern void _kerjmp_HuAudSeqPlay(void); +extern void _kerjmp_HuAudSeqStop(void); +extern void _kerjmp_HuAudSeqFadeOut(void); +extern void _kerjmp_HuAudSeqMidiCtrlGet(void); +extern void _kerjmp_HuAudFXListnerSet(void); +extern void _kerjmp_HuAudFXListnerUpdate(void); +extern void _kerjmp_HuAudFXEmiterPlay(void); +extern void _kerjmp_HuAudFXEmiterUpDate(void); +extern void _kerjmp_HuAudFXListnerKill(void); +extern void _kerjmp_HuAudFXStatusGet(void); +extern void _kerjmp_HuAudFXPitchSet(void); +extern void _kerjmp_HuAudFXVolSet(void); +extern void _kerjmp_HuAudDllSndGrpSet(void); +extern void _kerjmp_HuAudSndGrpSetSet(void); +extern void _kerjmp_HuAudSndGrpSet(void); +extern void _kerjmp_HuAudSndCommonGrpSet(void); +extern void _kerjmp_HuAudSStreamPlay(void); +extern void _kerjmp_HuAudSStreamStop(void); +extern void _kerjmp_HuAudSStreamFadeOut(void); +extern void _kerjmp_HuAudSStreamAllFadeOut(void); +extern void _kerjmp_HuAudSStreamAllStop(void); +extern void _kerjmp_HuAudSStreamStatGet(void); +extern void _kerjmp_HuAudPlayerVoicePlay(void); +extern void _kerjmp_HuAudCharVoicePlay(void); +extern void _kerjmp_HuAudPlayerVoicePlayPos(void); +extern void _kerjmp_HuAudCharVoicePlayPos(void); +extern void _kerjmp_HuAudPlayerVoicePlayEntry(void); +extern void _kerjmp_HuAudCharVoicePlayEntry(void); +extern void _kerjmp_HuAudAUXSet(void); +extern void _kerjmp_msmMusPlay(void); +extern void _kerjmp_espInit(void); +extern void _kerjmp_espEntry(void); +extern void _kerjmp_espKill(void); +extern void _kerjmp_espGrpIDGet(void); +extern void _kerjmp_espDispOn(void); +extern void _kerjmp_espDispOff(void); +extern void _kerjmp_espAttrSet(void); +extern void _kerjmp_espAttrReset(void); +extern void _kerjmp_espPosSet(void); +extern void _kerjmp_espScaleSet(void); +extern void _kerjmp_espZRotSet(void); +extern void _kerjmp_espTPLvlSet(void); +extern void _kerjmp_espColorSet(void); +extern void _kerjmp_espSpeedSet(void); +extern void _kerjmp_espBankSet(void); +extern void _kerjmp_espDrawNoSet(void); +extern void _kerjmp_espPriSet(void); +extern void _kerjmp_lbl_80192060(void); +extern void _kerjmp_lbl_80192160(void); +extern void _kerjmp_lbl_80192260(void); +extern void _kerjmp_lbl_801D3DA0(void); +extern void _kerjmp_fn_8003FF68(void); +extern void _kerjmp_HuPrcInit(void); +extern void _kerjmp_HuPrcCall(void); +extern void _kerjmp_HuPrcCreate(void); +extern void _kerjmp_HuPrcKill(void); +extern void _kerjmp_HuPrcEnd(void); +extern void _kerjmp_HuPrcWakeup(void); +extern void _kerjmp_HuPrcSleep(void); +extern void _kerjmp_HuPrcVSleep(void); +extern void _kerjmp_HuPrcCurrentGet(void); +extern void _kerjmp_HuPrcDestructorSet(void); +extern void _kerjmp_HuPrcDestructorSet2(void); +extern void _kerjmp_HuPrcChildCreate(void); +extern void _kerjmp_HuPrcChildLink(void); +extern void _kerjmp_HuPrcChildUnlink(void); +extern void _kerjmp_HuPrcChildKill(void); +extern void _kerjmp_HuPrcMemAlloc(void); +extern void _kerjmp_HuPrcMemFree(void); +extern void _kerjmp_Hu3DParManVacumeSet(void); +extern void _kerjmp_HuDataInit(void); +extern void _kerjmp_HuDataDirRead(void); +extern void _kerjmp_HuDataRead(void); +extern void _kerjmp_HuDataReadNum(void); +extern void _kerjmp_HuDataReadMulti(void); +extern void _kerjmp_HuDataDirReadAsync(void); +extern void _kerjmp_HuDataDirReadNumAsync(void); +extern void _kerjmp_HuDataSelHeapRead(void); +extern void _kerjmp_HuDataSelHeapReadNum(void); +extern void _kerjmp_HuDataGetSize(void); +extern void _kerjmp_HuDataDirClose(void); +extern void _kerjmp_HuDataDirCloseNum(void); +extern void _kerjmp_HuDataClose(void); +extern void _kerjmp_HuDataCloseMulti(void); +extern void _kerjmp_HuDataReadNumHeapShortForce(void); +extern void _kerjmp_ARRegisterDMACallback(void); +extern void _kerjmp_ARGetDMAStatus(void); +extern void _kerjmp_ARStartDMA(void); +extern void _kerjmp_ARInit(void); +extern void _kerjmp_ARAlloc(void); +extern void _kerjmp_ARFree(void); +extern void _kerjmp_ARGetSize(void); +extern void _kerjmp_ARSetSize(void); +extern void _kerjmp_HuSprBegin(void); +extern void _kerjmp_HuSprCall(void); +extern void _kerjmp_HuSprFinish(void); +extern void _kerjmp_HuSprAnimRead(void); +extern void _kerjmp_HuSprCreate(void); +extern void _kerjmp_HuSprGrpCreate(void); +extern void _kerjmp_HuSprGrpMemberSet(void); +extern void _kerjmp_HuSprGrpMemberKill(void); +extern void _kerjmp_HuSprGrpKill(void); +extern void _kerjmp_HuSprKill(void); +extern void _kerjmp_HuSprAnimKill(void); +extern void _kerjmp_HuSprAttrSet(void); +extern void _kerjmp_HuSprAttrReset(void); +extern void _kerjmp_HuSprPosSet(void); +extern void _kerjmp_HuSprScaleSet(void); +extern void _kerjmp_HuSprZRotSet(void); +extern void _kerjmp_HuSprGrpPosSet(void); +extern void _kerjmp_HuSprGrpZRotSet(void); +extern void _kerjmp_HuSprGrpScaleSet(void); +extern void _kerjmp_HuSprTPLvlSet(void); +extern void _kerjmp_HuSprColorSet(void); +extern void _kerjmp_HuSprSpeedSet(void); +extern void _kerjmp_HuSprBankSet(void); +extern void _kerjmp_HuSprGrpDrawNoSet(void); +extern void _kerjmp_HuSprDrawNoSet(void); +extern void _kerjmp_HuSprPriSet(void); +extern void _kerjmp_HuSprFuncCreate(void); +extern void _kerjmp_HuSprAnimMake(void); +extern void _kerjmp_HuSprGrpCenterSet(void); +extern void _kerjmp_HuSprAnimLock(void); +extern void _kerjmp_AnimDebug(void); +extern void _kerjmp_HuSprExecLayerSet(void); +extern void _kerjmp_HuSprSprBGSet(void); +extern void _kerjmp_HuSprBGSet(void); +extern void _kerjmp_HuSprGrpScissorSet(void); +extern void _kerjmp_HuSprScissorSet(void); +extern void _kerjmp_HuSprGrpTPLvlSet(void); +extern void _kerjmp_HuARMalloc(void); +extern void _kerjmp_HuARFree(void); +extern void _kerjmp_HuAR_DVDtoARAM(void); +extern void _kerjmp_HuAR_MRAMtoARAM(void); +extern void _kerjmp_HuAR_MRAMtoARAM2(void); +extern void _kerjmp_HuAR_ARAMtoMRAM(void); +extern void _kerjmp_HuAR_ARAMtoMRAMNum(void); +extern void _kerjmp_HuARDMACheck(void); +extern void _kerjmp_HuARDirCheck(void); +extern void _kerjmp_HuARDirFree(void); +extern void _kerjmp_HuAR_ARAMtoMRAMFileRead(void); +extern void _kerjmp_HuAudFXListnerSetEX(void); +extern void _kerjmp_HuWindowInit(void); +extern void _kerjmp_HuWinInit(void); +extern void _kerjmp_HuWinCreate(void); +extern void _kerjmp_HuWinKill(void); +extern void _kerjmp_HuWinAllKill(void); +extern void _kerjmp_HuWinMesSet(void); +extern void _kerjmp_HuWinInsertMesSet(void); +extern void _kerjmp_HuWinChoiceGet(void); +extern void _kerjmp_HuWinChoiceNumGet(void); +extern void _kerjmp_HuWinMesWait(void); +extern void _kerjmp_HuWinSprKill(void); +extern void _kerjmp_HuWinMesRead(void); +extern void _kerjmp_HuWinAnimSet(void); +extern void _kerjmp_HuWinSprSet(void); +extern void _kerjmp_HuWinSprPosSet(void); +extern void _kerjmp_HuWinSprIDGet(void); +extern void _kerjmp_HuWinMesMaxSizeGet(void); +extern void _kerjmp_HuWinInsertMesSizeGet(void); +extern void _kerjmp_HuWinMesMaxSizeBetGet(void); +extern void _kerjmp_HuWinExCreate(void); +extern void _kerjmp_HuWinDispOn(void); +extern void _kerjmp_HuWinDispOff(void); +extern void _kerjmp_HuWinExAnimIn(void); +extern void _kerjmp_HuWinExAnimOut(void); +extern void _kerjmp_HuWinExCleanup(void); +extern void _kerjmp_HuWinExAnimPopIn(void); +extern void _kerjmp_HuWinComKeyWait(void); +extern void _kerjmp_HuWinComKeySet(void); +extern void _kerjmp_HuWinComKeyReset(void); +extern void _kerjmp_HuWinDrawNoSet(void); +extern void _kerjmp_HuWinAttrSet(void); +extern void _kerjmp_HuWinAttrReset(void); +extern void _kerjmp_HuWinBGTPLvlSet(void); +extern void _kerjmp_HuWinMesSpeedSet(void); +extern void _kerjmp_HuWinBGColSet(void); +extern void _kerjmp_HuWinChoiceDisable(void); +extern void _kerjmp_HuWinKeyWaitEntry(void); +extern void _kerjmp_HuWinCenterPosSet(void); +extern void _kerjmp_HuWinPosSet(void); +extern void _kerjmp_HuWinZRotSet(void); +extern void _kerjmp_HuWinScaleSet(void); +extern void _kerjmp_HuWinChoiceNowGet(void); +extern void _kerjmp_HuWinStatGet(void); +extern void _kerjmp_HuWinMesColSet(void); +extern void _kerjmp_HuWinScissorSet(void); +extern void _kerjmp_HuWinExCreateStyled(void); +extern void _kerjmp_HuWinPriSet(void); +extern void _kerjmp_HuWinSprPriSet(void); +extern void _kerjmp_HuWinKeyWaitNumGet(void); +extern void _kerjmp_HuWinMesSizeCancelCRSet(void); +extern void _kerjmp_HuWinMesPalSet(void); +extern void _kerjmp_HuWinHomeClear(void); +extern void _kerjmp_HuWinPushKeySet(void); +extern void _kerjmp_HuWinDisablePlayerSet(void); +extern void _kerjmp_HuWinDisablePlayerReset(void); +extern void _kerjmp_CharManInit(void); +extern void _kerjmp_CharARAMOpen(void); +extern void _kerjmp_CharKill(void); +extern void _kerjmp_CharModelKill(void); +extern void _kerjmp_CharKillAll(void); +extern void _kerjmp_CharModelCreate(void); +extern void _kerjmp_CharModelMotionCreate(void); +extern void _kerjmp_CharModelMotionIndexSet(void); +extern void _kerjmp_CharModelMotionKill(void); +extern void _kerjmp_CharModelMotionDataClose(void); +extern void _kerjmp_CharModelDataClose(void); +extern void _kerjmp_CharAMemPtrGet(void); +extern void _kerjmp_CharModelMotionSet(void); +extern void _kerjmp_CharModelMotionTimeSet(void); +extern void _kerjmp_CharModelMotionTimeGet(void); +extern void _kerjmp_CharModelMotionMaxTimeGet(void); +extern void _kerjmp_CharModelMotionEndCheck(void); +extern void _kerjmp_CharModelMotionShiftIDGet(void); +extern void _kerjmp_CharModelMotionShiftSet(void); +extern void _kerjmp_CharModelMotionShiftTimeGet(void); +extern void _kerjmp_CharModelMotionSpeedSet(void); +extern void _kerjmp_CharModelLayerSetAll(void); +extern void _kerjmp_CharModelItemHookCreate(void); +extern void _kerjmp_CharModelEffectCreate(void); +extern void _kerjmp_CharModelCoinEffectCreate(void); +extern void _kerjmp_fn_8004EC74(void); +extern void _kerjmp_fn_8004EDA4(void); +extern void _kerjmp_fn_8004F13C(void); +extern void _kerjmp_fn_8004F058(void); +extern void _kerjmp_GWCharColorGet(void); +extern void _kerjmp_CharModelLayerSetAll2(void); +extern void _kerjmp_charTexNameTbl(void); +extern void _kerjmp_CharModelTexNameGet(void); +extern void _kerjmp_CharModelVoiceEnableSet(void); +extern void _kerjmp_CharModelEffectNpcInitSilent(void); +extern void _kerjmp_CharModelStepTypeSet(void); +extern void _kerjmp_fn_8004F52C(void); +extern void _kerjmp_CharModelEffectEnableSet(void); +extern void _kerjmp_CharModelEffectNpcInit(void); +extern void _kerjmp_HuPrcSetStat(void); +extern void _kerjmp_HuPrcResetStat(void); +extern void _kerjmp_omGameSysInit(void); +extern void _kerjmp_omResetStatBit(void); +extern void _kerjmp_omCurrentOvlGet(void); +extern void _kerjmp_omPauseChk(void); +extern void _kerjmp_omOvlHisChg(void); +extern void _kerjmp_omOvlHisGet(void); +extern void _kerjmp_omovlevtno(void); +extern void _kerjmp_omovlstat(void); +extern void _kerjmp_AddX(void); +extern void _kerjmp_AddZ(void); +extern void _kerjmp_MapObject(void); +extern void _kerjmp_CharObject(void); +extern void _kerjmp_nMap(void); +extern void _kerjmp_nChar(void); +extern void _kerjmp_MapWall(void); +extern void _kerjmp_MapPos(void); +extern void _kerjmp_HitFaceVec(void); +extern void _kerjmp_HitFace(void); +extern void _kerjmp_HitFaceCount(void); +extern void _kerjmp_GWPlayer(void); +extern void _kerjmp_GWSystem(void); +extern void _kerjmp_HuTHPSprCreateVol(void); +extern void _kerjmp_HuTHPSprCreate(void); +extern void _kerjmp_HuTHP3DCreateVol(void); +extern void _kerjmp_HuTHP3DCreate(void); +extern void _kerjmp_HuTHPStop(void); +extern void _kerjmp_HuTHPClose(void); +extern void _kerjmp_HuTHPRestart(void); +extern void _kerjmp_HuTHPEndCheck(void); +extern void _kerjmp_HuTHPFrameGet(void); +extern void _kerjmp_HuTHPTotalFrameGet(void); +extern void _kerjmp_HuTHPSetVolume(void); +extern void _kerjmp_HuCardCheck(void); +extern void _kerjmp_HuCardMount(void); +extern void _kerjmp_HuCardFormat(void); +extern void _kerjmp_HuCardOpen(void); +extern void _kerjmp_HuCardRead(void); +extern void _kerjmp_HuCardCreate(void); +extern void _kerjmp_HuCardClose(void); +extern void _kerjmp_HuCardWrite(void); +extern void _kerjmp_HuCardDelete(void); +extern void _kerjmp_HuCardSectorSizeGet(void); +extern void _kerjmp_HuCardFreeSpaceGet(void); +extern void _kerjmp_HuCardSlotCheck(void); +extern void _kerjmp_SLFileOpen(void); +extern void _kerjmp_SLFileCreate(void); +extern void _kerjmp_SLFileWrite(void); +extern void _kerjmp_SLFileClose(void); +extern void _kerjmp_SLFileRead(void); +extern void _kerjmp_SLCurSlotNoSet(void); +extern void _kerjmp_SLSaveDataMake(void); +extern void _kerjmp_SLCommonSet(void); +extern void _kerjmp_SLSaveBoard(void); +extern void _kerjmp_SLSaveBoardBackup(void); +extern void _kerjmp_SLSave(void); +extern void _kerjmp_SLLoadGameStat(void); +extern void _kerjmp_SLLoadBoard(void); +extern void _kerjmp_SLLoadBoardBackup(void); +extern void _kerjmp_SLLoad(void); +extern void _kerjmp_SLCurBoxNoSet(void); +extern void _kerjmp_SLSaveFlagSet(void); +extern void _kerjmp_SLSaveFlagGet(void); +extern void _kerjmp_SLCheckSumCheck(void); +extern void _kerjmp_SLSerialNoGet(void); +extern void _kerjmp_SLSerialNoCheck(void); +extern void _kerjmp_saveExecF(void); +extern void _kerjmp__CheckFlag(void); +extern void _kerjmp__SetFlag(void); +extern void _kerjmp__ClearFlag(void); +extern void _kerjmp_mgInfoTbl(void); +extern void _kerjmp_mgTypeCurr(void); +extern void _kerjmp_mgBattleStar(void); +extern void _kerjmp_lbl_801D3E94_0(void); +extern void _kerjmp_mgTicTacToeGrid(void); +extern void _kerjmp_mgIndexList(void); +extern void _kerjmp_lbl_801D3E94_1(void); +extern void _kerjmp_mgGameStatBackup(void); +extern void _kerjmp_mgRecordExtra(void); +extern void _kerjmp_mgQuitExtraF(void); +extern void _kerjmp_mgPracticeEnableF(void); +extern void _kerjmp_mgBoardHostEnableF(void); +extern void _kerjmp_omMgIndexGet(void); +extern void _kerjmp_mgInstExitEnableF(void); +extern void _kerjmp_GWMGRecordSet(void); +extern void _kerjmp_GWMGRecordGet(void); +extern void _kerjmp_GWBoardPlayCountAdd(void); +extern void _kerjmp_GWBoardPlayCountSet(void); +extern void _kerjmp_GWBoardPlayCountGet(void); +extern void _kerjmp_GWBoardWinCountInc(void); +extern void _kerjmp_GWBoardWinCountGet(void); +extern void _kerjmp_GWBoardWinCountSet(void); +extern void _kerjmp_GWBoardMaxStarsSet(void); +extern void _kerjmp_GWBoardMaxStarsGet(void); +extern void _kerjmp_GWBoardMaxCoinsSet(void); +extern void _kerjmp_GWBoardMaxCoinsGet(void); +extern void _kerjmp_GWTotalStarsSet(void); +extern void _kerjmp_GWTotalStarsAdd(void); +extern void _kerjmp_GWTotalStarsGet(void); +extern void _kerjmp_GWStarsAdd(void); +extern void _kerjmp_GWStarsGet(void); +extern void _kerjmp_GWStarsSet(void); +extern void _kerjmp_GWCoinsAdd(void); +extern void _kerjmp_GWCoinsSet(void); +extern void _kerjmp_GWCoinsGet(void); +extern void _kerjmp_GWMGCustomReset(void); +extern void _kerjmp_GWMGCustomSet(void); +extern void _kerjmp_GWMGCustomGet(void); +extern void _kerjmp_GWMGAvailGet(void); +extern void _kerjmp_fmod(void); +extern void _kerjmp__savegpr_15(void); +extern void _kerjmp__restgpr_15(void); +extern void _kerjmp__savegpr_16(void); +extern void _kerjmp__restgpr_16(void); +extern void _kerjmp___save_gpr(void); +extern void _kerjmp___restore_gpr(void); +extern void _kerjmp_omDBGMenuButton(void); +extern void _kerjmp_msmSeSetListener(void); +extern void _kerjmp_msmSeUpdataListener(void); +extern void _kerjmp_msmSeGetIndexPtr(void); +extern void _kerjmp_msmMusSetMasterVolume(void); +extern void _kerjmp_msmSysGetOutputMode(void); +extern void _kerjmp_BoardRollExec(void); +extern void _kerjmp_BoardRollKill(void); +extern void _kerjmp_BoardDiceValueSet(void); +extern void _kerjmp_BoardDiceStop(void); +extern void _kerjmp_BoardDicePauseAll(void); +extern void _kerjmp_BoardDiceDoneCheck(void); +extern void _kerjmp_BoardCommonInit(void); +extern void _kerjmp_BoardStoryConfigSet(void); +extern void _kerjmp_BoardPartyConfigSet(void); +extern void _kerjmp_BoardSaveInit(void); +extern void _kerjmp_BoardMGExit(void); +extern void _kerjmp_BoardDAngleCalcVec(void); +extern void _kerjmp_BoardDAngleCalc(void); +extern void _kerjmp_BoardVecMaxDistXZCheck(void); +extern void _kerjmp_BoardIsKill(void); +extern void _kerjmp_BoardKill(void); +extern void _kerjmp_BoardCameraScissorSet(void); +extern void _kerjmp_BoardCameraViewSet(void); +extern void _kerjmp_BoardCameraDirGet(void); +extern void _kerjmp_BoardCameraPointDirGet(void); +extern void _kerjmp_BoardCameraMoveSet(void); +extern void _kerjmp_BoardCameraQuakeSet(void); +extern void _kerjmp_BoardCameraQuakeReset(void); +extern void _kerjmp_BoardCameraTargetSet(void); +extern void _kerjmp_BoardCameraPosGet(void); +extern void _kerjmp_BoardCameraTargetGet(void); +extern void _kerjmp_BoardCameraRotGet(void); +extern void _kerjmp_BoardCameraZoomGet(void); +extern void _kerjmp_BoardCameraPosSet(void); +extern void _kerjmp_BoardCameraXRotZoomSet(void); +extern void _kerjmp_BoardCameraZoomSet(void); +extern void _kerjmp_BoardCameraRotSet(void); +extern void _kerjmp_BoardCameraFovSet(void); +extern void _kerjmp_BoardCameraOffsetSet(void); +extern void _kerjmp_BoardCameraTargetPlayerSet(void); +extern void _kerjmp_BoardCameraTargetModelSet(void); +extern void _kerjmp_BoardCameraTargetSpaceSet(void); +extern void _kerjmp_BoardCameraCullCheck(void); +extern void _kerjmp_BoardCameraMotionIsDone(void); +extern void _kerjmp_BoardCameraMotionStartEx(void); +extern void _kerjmp_BoardCameraMotionStart(void); +extern void _kerjmp_BoardCameraMotionWait(void); +extern void _kerjmp_BoardCameraNearFarSet(void); +extern void _kerjmp_BoardCameraNearFarGet(void); +extern void _kerjmp_BoardEventFlagSet(void); +extern void _kerjmp_BoardEventFlagReset(void); +extern void _kerjmp_BoardEventFlagGet(void); +extern void _kerjmp_BoardMGCreate(void); +extern void _kerjmp_BoardDAngleCalcRange(void); +extern void _kerjmp_BoardVecDistXZCalc(void); +extern void _kerjmp_BoardVecMinDistCheck(void); +extern void _kerjmp_BoardArcSin(void); +extern void _kerjmp_BoardArcCos(void); +extern void _kerjmp_BoardMTXCalcLookAt(void); +extern void _kerjmp_BoardLightSetExec(void); +extern void _kerjmp_BoardLightResetExec(void); +extern void _kerjmp_BoardLightHookSet(void); +extern void _kerjmp_BoardMGDoneFlagSet(void); +extern void _kerjmp_BoardMGDoneFlagGet(void); +extern void _kerjmp_BoardMGSetupExec(void); +extern void _kerjmp_BoardFilterFadeOut(void); +extern void _kerjmp_BoardFilterFadeInit(void); +extern void _kerjmp_BoardFilterFadePauseCheck(void); +extern void _kerjmp_BoardFilterFadeCheck(void); +extern void _kerjmp_BoardConfettiCreate(void); +extern void _kerjmp_BoardConfettiKill(void); +extern void _kerjmp_BoardConfettiStop(void); +extern void _kerjmp_BoardRand(void); +extern void _kerjmp_BoardRandMod(void); +extern void _kerjmp_BoardRandFloat(void); +extern void _kerjmp_boardRandSeed(void); +extern void _kerjmp_BoardViewMoveCheck(void); +extern void _kerjmp_BoardViewMoveEnd(void); +extern void _kerjmp_BoardViewFocusGetPos(void); +extern void _kerjmp_BoardViewMoveStart(void); +extern void _kerjmp_BoardViewFocusSet(void); +extern void _kerjmp_boardTurnFunc(void); +extern void _kerjmp_boardStarShowNextHook(void); +extern void _kerjmp_boardBowserHook(void); +extern void _kerjmp_boardTurnStartFunc(void); +extern void _kerjmp_boardStarGiveHook(void); +extern void _kerjmp_boardMainProc(void); +extern void _kerjmp_boardObjMan(void); +extern void _kerjmp_BoardItemStart(void); +extern void _kerjmp_BoardCharWheelInit(void); +extern void _kerjmp_BoardCharWheelCheck(void); +extern void _kerjmp_BoardCharWheelWait(void); +extern void _kerjmp_BoardCharWheelResultGet(void); +extern void _kerjmp_BoardCharWheelSpeedSet(void); +extern void _kerjmp_BoardSpaceInit(void); +extern void _kerjmp_BoardSpaceDestroy(void); +extern void _kerjmp_BoardSpaceLandExec(void); +extern void _kerjmp_BoardSpaceWalkEventFuncSet(void); +extern void _kerjmp_BoardSpaceWalkMiniEventFuncSet(void); +extern void _kerjmp_BoardSpaceLandEventFuncSet(void); +extern void _kerjmp_BoardSpaceWalkEventExec(void); +extern void _kerjmp_BoardSpaceWalkMiniEventExec(void); +extern void _kerjmp_BoardSpaceBlockExec(void); +extern void _kerjmp_BoardSpaceWalkExec(void); +extern void _kerjmp_BoardSpaceCameraSet(void); +extern void _kerjmp_BoardSpaceCornerPosGet(void); +extern void _kerjmp_BoardSpaceStarGetRandom(void); +extern void _kerjmp_BoardSpaceCountGet(void); +extern void _kerjmp_BoardSpaceGet(void); +extern void _kerjmp_BoardSpaceFlagPosGet(void); +extern void _kerjmp_BoardSpaceFlagGet(void); +extern void _kerjmp_BoardSpaceLinkTypeSearch(void); +extern void _kerjmp_BoardSpacePosGet(void); +extern void _kerjmp_BoardSpaceRotGet(void); +extern void _kerjmp_BoardSpaceRead(void); +extern void _kerjmp_BoardSpaceAttrReset(void); +extern void _kerjmp_BoardSpaceAttrSet(void); +extern void _kerjmp_BoardSpaceLinkTargetListGet(void); +extern void _kerjmp_BoardSpaceFlagSearch(void); +extern void _kerjmp_BoardSpaceTypeGet(void); +extern void _kerjmp_BoardSpaceTypeSet(void); +extern void _kerjmp_BoardSpaceLinkFlagSearch(void); +extern void _kerjmp_BoardSpaceLinkTypeListGet(void); +extern void _kerjmp_BoardSpaceLinkTransformGet(void); +extern void _kerjmp_BoardSpaceHide(void); +extern void _kerjmp_BoardSpaceStarCheck(void); +extern void _kerjmp_BoardSpaceStarMove(void); +extern void _kerjmp_BoardSpaceStarSetIndex(void); +extern void _kerjmp_BoardSpaceStarGetCurr(void); +extern void _kerjmp_BoardSpaceStarGet(void); +extern void _kerjmp_BoardStarHostSet(void); +extern void _kerjmp_BoardStarHostMdlGet(void); +extern void _kerjmp_BoardBooHouseHostSet(void); +extern void _kerjmp_BoardBooHouseHostGet(void); +extern void _kerjmp_BoardLotteryHostSet(void); +extern void _kerjmp_BoardLotteryHostGet(void); +extern void _kerjmp_BoardShopHostSet(void); +extern void _kerjmp_BoardShopHostGet(void); +extern void _kerjmp_BoardPauseActiveCheck(void); +extern void _kerjmp_BoardLotteryInit(void); +extern void _kerjmp_BoardLotteryKill(void); +extern void _kerjmp_BoardLotteryExec(void); +extern void _kerjmp_BoardBooHouseCreate(void); +extern void _kerjmp_BoardBooHouseKill(void); +extern void _kerjmp_BoardBooHouseExec(void); +extern void _kerjmp_BoardLandBlueExec(void); +extern void _kerjmp_BoardLandRedExec(void); +extern void _kerjmp_BoardWarpExec(void); +extern void _kerjmp_BoardMushroomExec(void); +extern void _kerjmp_BoardStarExec(void); +extern void _kerjmp_BoardStarGive(void); +extern void _kerjmp_BoardBattleExec(void); +extern void _kerjmp_BoardShopInit(void); +extern void _kerjmp_BoardShopKill(void); +extern void _kerjmp_BoardShopExec(void); +extern void _kerjmp_BoardModelInit(void); +extern void _kerjmp_BoardModelKillAll(void); +extern void _kerjmp_BoardModelDummyUpdate(void); +extern void _kerjmp_BoardModelVisibilityUpdate(void); +extern void _kerjmp_BoardModelKill(void); +extern void _kerjmp_BoardModelExistCheck(void); +extern void _kerjmp_BoardModelExistDupe(void); +extern void _kerjmp_BoardModelIDGet(void); +extern void _kerjmp_BoardModelAlphaSet(void); +extern void _kerjmp_BoardModelMotionStart(void); +extern void _kerjmp_BoardModelMotionShiftSet(void); +extern void _kerjmp_BoardModelAttrSet(void); +extern void _kerjmp_BoardModelAttrReset(void); +extern void _kerjmp_BoardModelMotionTimeSet(void); +extern void _kerjmp_BoardModelMotionSpeedSet(void); +extern void _kerjmp_BoardModelMotionSpeedGet(void); +extern void _kerjmp_BoardModelMotionStartEndSet(void); +extern void _kerjmp_BoardModelMotionUpdateSet(void); +extern void _kerjmp_BoardModelMotionShapeSet(void); +extern void _kerjmp_BoardModelMotionShapeTimeGet(void); +extern void _kerjmp_BoardModelMotionShapeMaxTimeGet(void); +extern void _kerjmp_BoardModelMotionShapeSpeedSet(void); +extern void _kerjmp_BoardModelMotionShapeSpeedGet(void); +extern void _kerjmp_BoardModelMotionShapeEndCheck(void); +extern void _kerjmp_BoardModelMotionShapeStartEndSet(void); +extern void _kerjmp_BoardModelMtxSet(void); +extern void _kerjmp_BoardModelMtxGet(void); +extern void _kerjmp_BoardModelPosSetV(void); +extern void _kerjmp_BoardModelRotSetV(void); +extern void _kerjmp_BoardModelScaleSetV(void); +extern void _kerjmp_BoardModelPosSet(void); +extern void _kerjmp_BoardModelRotSet(void); +extern void _kerjmp_BoardModelScaleSet(void); +extern void _kerjmp_BoardModelPosGet(void); +extern void _kerjmp_BoardModelRotGet(void); +extern void _kerjmp_BoardModelScaleGet(void); +extern void _kerjmp_fn_8006DDE8(void); +extern void _kerjmp_BoardModelVisibilitySet(void); +extern void _kerjmp_BoardModelVisibilityGet(void); +extern void _kerjmp_BoardModelLayerSet(void); +extern void _kerjmp_BoardModelCameraSet(void); +extern void _kerjmp_BoardModelPassSet(void); +extern void _kerjmp_fn_8006DC1C(void); +extern void _kerjmp_BoardModelHookSet(void); +extern void _kerjmp_BoardModelHookReset(void); +extern void _kerjmp_BoardModelHookObjReset(void); +extern void _kerjmp_BoardModelMotionEndCheck(void); +extern void _kerjmp_BoardModelMotionTimeGet(void); +extern void _kerjmp_BoardModelMotionMaxTimeGet(void); +extern void _kerjmp_BoardModelMotionCreate(void); +extern void _kerjmp_BoardModelMotionKill(void); +extern void _kerjmp_BoardModelCreate(void); +extern void _kerjmp_BoardModelCreateCharacter(void); +extern void _kerjmp_BoardModelCreateParam(void); +extern void _kerjmp_BoardModelLayerSetAll(void); +extern void _kerjmp_BoardModelCameraSetAll(void); +extern void _kerjmp_BoardModelHideSetAll(void); +extern void _kerjmp_BoardModelAmbSet(void); +extern void _kerjmp_BoardModelAmbSetAll(void); +extern void _kerjmp_BoardModelRotYSet(void); +extern void _kerjmp_BoardModelRotYGet(void); +extern void _kerjmp_BoardModelVoiceEnableSet(void); +extern void _kerjmp_BoardPlayerModelInit(void); +extern void _kerjmp_BoardPlayerModelKill(void); +extern void _kerjmp_BoardPlayerInit(void); +extern void _kerjmp_BoardPlayerGetCharMess(void); +extern void _kerjmp_BoardPlayerGetCharName(void); +extern void _kerjmp_BoardPlayerLayerSet(void); +extern void _kerjmp_BoardPlayerCameraSet(void); +extern void _kerjmp_fn_80062A40(void); +extern void _kerjmp_BoardPlayerExistCheck(void); +extern void _kerjmp_BoardPlayerMtxSet(void); +extern void _kerjmp_BoardPlayerPosSet(void); +extern void _kerjmp_BoardPlayerPosSetV(void); +extern void _kerjmp_BoardPlayerPosGet(void); +extern void _kerjmp_BoardPlayerRotSet(void); +extern void _kerjmp_BoardPlayerRotSetV(void); +extern void _kerjmp_BoardPlayerRotGet(void); +extern void _kerjmp_BoardPlayerRotYSet(void); +extern void _kerjmp_BoardPlayerRotYGet(void); +extern void _kerjmp_BoardPlayerScaleSet(void); +extern void _kerjmp_BoardPlayerScaleSetV(void); +extern void _kerjmp_BoardPlayerScaleGet(void); +extern void _kerjmp_BoardPlayerCornerPosSet(void); +extern void _kerjmp_BoardPlayerCornerPosGet(void); +extern void _kerjmp_BoardPlayerSizeGet(void); +extern void _kerjmp_BoardPlayerSizeSet(void); +extern void _kerjmp_BoardPlayerCurrMotionGet(void); +extern void _kerjmp_BoardPlayerMotionEndCheck(void); +extern void _kerjmp_BoardPlayerMotionEndWait(void); +extern void _kerjmp_BoardPlayerMotionMaxTimeGet(void); +extern void _kerjmp_BoardPlayerMotionTimeGet(void); +extern void _kerjmp_BoardPlayerVoiceEnableSet(void); +extern void _kerjmp_BoardPlayerMotionStart(void); +extern void _kerjmp_BoardPlayerMotionShiftSet(void); +extern void _kerjmp_BoardPlayerMotionCreate(void); +extern void _kerjmp_BoardPlayerMotionKill(void); +extern void _kerjmp_BoardPlayerMotionSpeedSet(void); +extern void _kerjmp_BoardPlayerMotionTimeSet(void); +extern void _kerjmp_BoardPlayerMotionStartEndSet(void); +extern void _kerjmp_BoardPlayerModelAttrSet(void); +extern void _kerjmp_BoardPlayerModelAttrReset(void); +extern void _kerjmp_BoardPlayerAmbSet(void); +extern void _kerjmp_BoardPlayerIdleSet(void); +extern void _kerjmp_BoardPlayerMotBlendSet(void); +extern void _kerjmp_BoardPlayerMotBlendCheck(void); +extern void _kerjmp_BoardPlayerRankCalc(void); +extern void _kerjmp_BoardRollTypeGet(void); +extern void _kerjmp_BoardRollTypeSet(void); +extern void _kerjmp_BoardPlayerItemRemove(void); +extern void _kerjmp_BoardPlayerItemFind(void); +extern void _kerjmp_BoardPlayerItemAdd(void); +extern void _kerjmp_BoardPlayerItemCount(void); +extern void _kerjmp_BoardPlayerCoinsAdd(void); +extern void _kerjmp_BoardPlayerCoinsGet(void); +extern void _kerjmp_BoardPlayerCoinsSet(void); +extern void _kerjmp_BoardPlayerStarsAdd(void); +extern void _kerjmp_BoardPlayerSameTeamFind(void); +extern void _kerjmp_BoardPlayerPosLerpStart(void); +extern void _kerjmp_BoardPlayerMoveToAsync(void); +extern void _kerjmp_BoardPlayerDiceJumpStart(void); +extern void _kerjmp_BoardPlayerDiceJumpCheck(void); +extern void _kerjmp_BoardDiceDigit2DInit(void); +extern void _kerjmp_BoardDiceDigit2DUpdateEnable(void); +extern void _kerjmp_BoardDiceDigit2DShowSet(void); +extern void _kerjmp_BoardPlayerBtnDownWait(void); +extern void _kerjmp_BoardPlayerAutoSizeSet(void); +extern void _kerjmp_BoardPlayerAutoSizeGet(void); +extern void _kerjmp_BoardPlayerMoveAwayIsDone(void); +extern void _kerjmp_BoardPlayerMoveAwayStartCurr(void); +extern void _kerjmp_BoardPlayerMoveAwayStart(void); +extern void _kerjmp_BoardPlayerPreTurnHookSet(void); +extern void _kerjmp_BoardPlayerPostTurnHookSet(void); +extern void _kerjmp_BoardPlayerCopyEyeMat(void); +extern void _kerjmp_BoardBowserSuitInit(void); +extern void _kerjmp_BoardBowserSuitKill(void); +extern void _kerjmp_BoardBowserSuitModelGet(void); +extern void _kerjmp_BoardBowserSuitPlayerModelGet(void); +extern void _kerjmp_BoardBowserSuitPlayerModelKill(void); +extern void _kerjmp_BoardBowserSuitMotionSetWait(void); +extern void _kerjmp_BoardBowserSuitMotionSetWalk(void); +extern void _kerjmp_BoardBowserSuitMotionSetWin(void); +extern void _kerjmp_BoardBowserSuitMotionSetJump(void); +extern void _kerjmp_BoardJunctionMaskSet(void); +extern void _kerjmp_BoardJunctionMaskReset(void); +extern void _kerjmp_BoardJunctionMaskZero(void); +extern void _kerjmp_BoardPlayerResizeAnimExec(void); +extern void _kerjmp_BoardWinCreate(void); +extern void _kerjmp_BoardWinCreateChoice(void); +extern void _kerjmp_BoardWinChoiceGet(void); +extern void _kerjmp_BoardWinWait(void); +extern void _kerjmp_BoardWinKill(void); +extern void _kerjmp_BoardWinInit(void); +extern void _kerjmp_BoardWinKillAll(void); +extern void _kerjmp_BoardWinUnusedArraySet(void); +extern void _kerjmp_BoardWinPause(void); +extern void _kerjmp_BoardWinInsertMesSet(void); +extern void _kerjmp_BoardWinAttrSet(void); +extern void _kerjmp_BoardWinAttrReset(void); +extern void _kerjmp_BoardWinChoiceDisable(void); +extern void _kerjmp_BoardWinKeyWait(void); +extern void _kerjmp_BoardWinSpeedGet(void); +extern void _kerjmp_BoardWinSpeedSet(void); +extern void _kerjmp_BoardWinPriSet(void); +extern void _kerjmp_BoardWinChoiceNowGet(void); +extern void _kerjmp_BoardWinChoiceNowGet2(void); +extern void _kerjmp_BoardStatusCreate(void); +extern void _kerjmp_BoardStatusKill(void); +extern void _kerjmp_BoardStatusVisibleGet(void); +extern void _kerjmp_BoardStatusShowSet(void); +extern void _kerjmp_BoardStatusShowSetForce(void); +extern void _kerjmp_BoardStatusGraySet(void); +extern void _kerjmp_BoardStatusShowSetAll(void); +extern void _kerjmp_BoardStatusStopCheck(void); +extern void _kerjmp_BoardSpriteCreate(void); +extern void _kerjmp_BoardStatusTargetPosSet(void); +extern void _kerjmp_BoardStatusPosSet(void); +extern void _kerjmp_BoardStatusPosGet(void); +extern void _kerjmp_BoardStatusItemHideSet(void); +extern void _kerjmp_BoardStatusHammerCreate(void); +extern void _kerjmp_BoardStatusHammerKill(void); +extern void _kerjmp_BoardStatusHammerShowSet(void); +extern void _kerjmp_BoardPickerCreate(void); +extern void _kerjmp_BoardPickerDoneCheck(void); +extern void _kerjmp_BoardPickerChoiceGet(void); +extern void _kerjmp_BoardPickerPosGet(void); +extern void _kerjmp_BoardPickerBackFlagSet(void); +extern void _kerjmp_BoardItemGetDestPos(void); +extern void _kerjmp_BoardItemUseExec(void); +extern void _kerjmp_BoardItemStatusKill(void); +extern void _kerjmp_BoardYourTurnExec(void); +extern void _kerjmp_BoardMusStart(void); +extern void _kerjmp_BoardAudSeqFadeOutFast(void); +extern void _kerjmp_BoardAudSeqFadeOut(void); +extern void _kerjmp_BoardMusLoudSet(void); +extern void _kerjmp_BoardMusVolPanSet(void); +extern void _kerjmp_BoardAudSeqPause(void); +extern void _kerjmp_BoardMusStatusGet(void); +extern void _kerjmp_BoardAudSeqFadeOutAll(void); +extern void _kerjmp_BoardAudFXPlay(void); +extern void _kerjmp_BoardAudFXStop(void); +extern void _kerjmp_BoardComKeySetLeft(void); +extern void _kerjmp_BoardComKeySetUp(void); +extern void _kerjmp_BoardComKeySetRight(void); +extern void _kerjmp_BoardComKeySetDown(void); +extern void _kerjmp_BoardComPreferItemCheck(void); +extern void _kerjmp_BoardComPreferItemGet(void); +extern void _kerjmp_BoardComFarPlayerFind(void); +extern void _kerjmp_boardTutorialData(void); +extern void _kerjmp_BoardTutorialHookSet(void); +extern void _kerjmp_BoardRollTutorialSet(void); +extern void _kerjmp_BoardTutorialDirInputSet(void); +extern void _kerjmp_BoardCharWheelTargetSet(void); +extern void _kerjmp_BoardTutorialBlockSetPos(void); +extern void _kerjmp_BoardTutorialItemSet(void); +extern void _kerjmp_BoardTutorialHostSet(void); +extern void _kerjmp_BoardMGSetupTutorialExec(void); +extern void _kerjmp_BoardShopTutorialExec(void); +extern void _kerjmp_BoardLotteryTutorialExec(void); +extern void _kerjmp_BoardBooHouseTutorialExec(void); + +asm void _kerent(void) { + #ifdef __MWERKS__ // clang-format off + nofralloc + entry _kerjmp_OSDumpStopwatch + b OSDumpStopwatch + entry _kerjmp_PSVECDotProduct + b PSVECDotProduct + entry _kerjmp_PSVECDistance + b PSVECDistance + entry _kerjmp_PSVECSquareDistance + b PSVECSquareDistance + entry _kerjmp_VIGetDTVStatus + b VIGetDTVStatus + entry _kerjmp_OSGetProgressiveMode + b OSGetProgressiveMode + entry _kerjmp_OSSetProgressiveMode + b OSSetProgressiveMode + entry _kerjmp_PSVECSubtract + b PSVECSubtract + entry _kerjmp_PSMTXTranspose + b PSMTXTranspose + entry _kerjmp_C_VECReflect + b C_VECReflect + entry _kerjmp_PSMTXInvXpose + b PSMTXInvXpose + entry _kerjmp_PSMTXRotRad + b PSMTXRotRad + entry _kerjmp_PSMTXRotAxisRad + b PSMTXRotAxisRad + entry _kerjmp_PSVECMag + b PSVECMag + entry _kerjmp_PSVECScale + b PSVECScale + entry _kerjmp_PSMTXMultVecSR + b PSMTXMultVecSR + entry _kerjmp_C_QUATRotAxisRad + b C_QUATRotAxisRad + entry _kerjmp_C_QUATMtx + b C_QUATMtx + entry _kerjmp_C_QUATAdd + b C_QUATAdd + entry _kerjmp_C_QUATSlerp + b C_QUATSlerp + entry _kerjmp_PSQUATAdd + b PSQUATAdd + entry _kerjmp_PSMTXQuat + b PSMTXQuat + entry _kerjmp_PSQUATMultiply + b PSQUATMultiply + entry _kerjmp_PSQUATInverse + b PSQUATInverse + entry _kerjmp_PSQUATNormalize + b PSQUATNormalize + entry _kerjmp_OSTicksToCalendarTime + b OSTicksToCalendarTime + entry _kerjmp_GXWaitDrawDone + b GXWaitDrawDone + entry _kerjmp_GXProject + b GXProject + entry _kerjmp_GXSetProjectionv + b GXSetProjectionv + entry _kerjmp_GXGetViewportv + b GXGetViewportv + entry _kerjmp_GXPixModeSync + b GXPixModeSync + entry _kerjmp_GXSetIndTexOrder + b GXSetIndTexOrder + entry _kerjmp_GXSetIndTexMtx + b GXSetIndTexMtx + entry _kerjmp_GXSetTevIndWarp + b GXSetTevIndWarp + entry _kerjmp_GXSetTexCoordScaleManually + b GXSetTexCoordScaleManually + entry _kerjmp_GXSetTevIndTile + b GXSetTevIndTile + entry _kerjmp_GXNtsc480Prog + b GXNtsc480Prog + entry _kerjmp_omSetStatBit + b omSetStatBit + entry _kerjmp_MGSeqDoneCheck + b MGSeqDoneCheck + entry _kerjmp_WipeStatGet + b WipeStatGet + entry _kerjmp_omMakeGroupEx + b omMakeGroupEx + entry _kerjmp_omGetGroupMemberListEx + b omGetGroupMemberListEx + entry _kerjmp_MGSeqParamSet + b MGSeqParamSet + entry _kerjmp_MGSeqKill + b MGSeqKill + entry _kerjmp_ClusterAdjustObject + b ClusterAdjustObject + entry _kerjmp_printWin + b printWin + entry _kerjmp_print8 + b print8 + entry _kerjmp_HuSysVWaitSet + b HuSysVWaitSet + entry _kerjmp_fn_800401D0 + b fn_800401D0 + entry _kerjmp_fn_800402FC + b fn_800402FC + entry _kerjmp_MGSeqInit + b MGSeqInit + entry _kerjmp_MGSeqCreate + b MGSeqCreate + entry _kerjmp_omDelObjEx + b omDelObjEx + entry _kerjmp_MGSeqPosSet + b MGSeqPosSet + entry _kerjmp_atan2 + b atan2 + entry _kerjmp_atan2f + b atan2f + entry _kerjmp_cos + b cos + entry _kerjmp_MGSeqStatGet + b MGSeqStatGet + entry _kerjmp_Center + b Center + entry _kerjmp_CRotM + b CRotM + entry _kerjmp_CenterM + b CenterM + entry _kerjmp_CZoomM + b CZoomM + entry _kerjmp_omOutViewMulti + b omOutViewMulti + entry _kerjmp_omOutView + b omOutView + entry _kerjmp_omAddObjEx + b omAddObjEx + entry _kerjmp_omInitObjMan + b omInitObjMan + entry _kerjmp_frandmod + b frandmod + entry _kerjmp_fn_80040374 + b fn_80040374 + entry _kerjmp_SetDefLight + b SetDefLight + entry _kerjmp_HuSetVecF + b HuSetVecF + entry _kerjmp_HuSubVecF + b HuSubVecF + entry _kerjmp_frandf + b frandf + entry _kerjmp_MGSeqSprKill + b MGSeqSprKill + entry _kerjmp_mtxRotCat + b mtxRotCat + entry _kerjmp_Hu3DLayerHookSet + b Hu3DLayerHookSet + entry _kerjmp_Hu3DNoSyncSet + b Hu3DNoSyncSet + entry _kerjmp_Hu3DModelCreate + b Hu3DModelCreate + entry _kerjmp_Hu3DModelLink + b Hu3DModelLink + entry _kerjmp_Hu3DHookFuncCreate + b Hu3DHookFuncCreate + entry _kerjmp_Hu3DModelPosSet + b Hu3DModelPosSet + entry _kerjmp_Hu3DModelPosSetV + b Hu3DModelPosSetV + entry _kerjmp_Hu3DModelRotSet + b Hu3DModelRotSet + entry _kerjmp_Hu3DModelRotSetV + b Hu3DModelRotSetV + entry _kerjmp_Hu3DModelScaleSet + b Hu3DModelScaleSet + entry _kerjmp_Hu3DModelScaleSetV + b Hu3DModelScaleSetV + entry _kerjmp_Hu3DModelKill + b Hu3DModelKill + entry _kerjmp_Hu3DModelAllKill + b Hu3DModelAllKill + entry _kerjmp_Hu3DModelAttrSet + b Hu3DModelAttrSet + entry _kerjmp_Hu3DModelAttrReset + b Hu3DModelAttrReset + entry _kerjmp_Hu3DModelAttrGet + b Hu3DModelAttrGet + entry _kerjmp_Hu3DModelMotionAttrGet + b Hu3DModelMotionAttrGet + entry _kerjmp_Hu3DBGColorSet + b Hu3DBGColorSet + entry _kerjmp_Hu3DModelCameraSet + b Hu3DModelCameraSet + entry _kerjmp_Hu3DModelLayerSet + b Hu3DModelLayerSet + entry _kerjmp_Hu3DModelTPLvlSet + b Hu3DModelTPLvlSet + entry _kerjmp_Hu3DModelHookSet + b Hu3DModelHookSet + entry _kerjmp_Hu3DModelHookReset + b Hu3DModelHookReset + entry _kerjmp_Hu3DModelHookObjReset + b Hu3DModelHookObjReset + entry _kerjmp_Hu3DModelAmbSet + b Hu3DModelAmbSet + entry _kerjmp_Hu3DModelShadowDispOn + b Hu3DModelShadowDispOn + entry _kerjmp_Hu3DModelShadowDispOff + b Hu3DModelShadowDispOff + entry _kerjmp_Hu3DModelProjectionSet + b Hu3DModelProjectionSet + entry _kerjmp_Hu3DModelProjectionReset + b Hu3DModelProjectionReset + entry _kerjmp_Hu3DModelObjPosGet + b Hu3DModelObjPosGet + entry _kerjmp_Hu3DModelObjMtxGet + b Hu3DModelObjMtxGet + entry _kerjmp_Hu3DModelHiliteTypeSet + b Hu3DModelHiliteTypeSet + entry _kerjmp_Hu3DModelReflectTypeSet + b Hu3DModelReflectTypeSet + entry _kerjmp_Hu3DModelHiliteMapSet + b Hu3DModelHiliteMapSet + entry _kerjmp_HuPadInit + b HuPadInit + entry _kerjmp_HuPadRead + b HuPadRead + entry _kerjmp_HuPadRumbleSet + b HuPadRumbleSet + entry _kerjmp_HuPadRumbleStop + b HuPadRumbleStop + entry _kerjmp_HuPadRumbleAllStop + b HuPadRumbleAllStop + entry _kerjmp_HuPadStatGet + b HuPadStatGet + entry _kerjmp_HuPadRumbleGet + b HuPadRumbleGet + entry _kerjmp_Hu3DCameraCreate + b Hu3DCameraCreate + entry _kerjmp_Hu3DCameraPerspectiveSet + b Hu3DCameraPerspectiveSet + entry _kerjmp_Hu3DCameraViewportSet + b Hu3DCameraViewportSet + entry _kerjmp_Hu3DCameraScissorSet + b Hu3DCameraScissorSet + entry _kerjmp_Hu3DCameraPosSet + b Hu3DCameraPosSet + entry _kerjmp_Hu3DCameraKill + b Hu3DCameraKill + entry _kerjmp_Hu3DCameraPosSetV + b Hu3DCameraPosSetV + entry _kerjmp_Hu3DCameraAllKill + b Hu3DCameraAllKill + entry _kerjmp_Hu3DCameraSet + b Hu3DCameraSet + entry _kerjmp_Hu3DCameraMotionOn + b Hu3DCameraMotionOn + entry _kerjmp_Hu3DCameraMotionStart + b Hu3DCameraMotionStart + entry _kerjmp_Hu3DCameraMotionOff + b Hu3DCameraMotionOff + entry _kerjmp_Hu3DModelCameraCreate + b Hu3DModelCameraCreate + entry _kerjmp_Hu3DModelCameraInfoSet + b Hu3DModelCameraInfoSet + entry _kerjmp_Hu3DLighInit + b Hu3DLighInit + entry _kerjmp_Hu3DGLightCreate + b Hu3DGLightCreate + entry _kerjmp_Hu3DGLightCreateV + b Hu3DGLightCreateV + entry _kerjmp_Hu3DGLightKill + b Hu3DGLightKill + entry _kerjmp_Hu3DLightAllKill + b Hu3DLightAllKill + entry _kerjmp_Hu3DLightSet + b Hu3DLightSet + entry _kerjmp_Hu3DGLightSpotSet + b Hu3DGLightSpotSet + entry _kerjmp_Hu3DGLightInfinitytSet + b Hu3DGLightInfinitytSet + entry _kerjmp_Hu3DGLightPointSet + b Hu3DGLightPointSet + entry _kerjmp_Hu3DGLightColorSet + b Hu3DGLightColorSet + entry _kerjmp_Hu3DGLightPosSetV + b Hu3DGLightPosSetV + entry _kerjmp_Hu3DGLightPosSet + b Hu3DGLightPosSet + entry _kerjmp_Hu3DGLightPosAimSetV + b Hu3DGLightPosAimSetV + entry _kerjmp_Hu3DGLightPosAimSet + b Hu3DGLightPosAimSet + entry _kerjmp_Hu3DGLightStaticSet + b Hu3DGLightStaticSet + entry _kerjmp_Hu3DModelLightInfoSet + b Hu3DModelLightInfoSet + entry _kerjmp_Hu3DReflectMapSet + b Hu3DReflectMapSet + entry _kerjmp_Hu3DReflectNoSet + b Hu3DReflectNoSet + entry _kerjmp_Hu3DFogSet + b Hu3DFogSet + entry _kerjmp_Hu3DFogClear + b Hu3DFogClear + entry _kerjmp_Hu3DModelObjPtrGet + b Hu3DModelObjPtrGet + entry _kerjmp_Hu3DModelShadowSet + b Hu3DModelShadowSet + entry _kerjmp_Hu3DModelShadowReset + b Hu3DModelShadowReset + entry _kerjmp_Hu3DShadowCreate + b Hu3DShadowCreate + entry _kerjmp_Hu3DShadowPosSet + b Hu3DShadowPosSet + entry _kerjmp_Hu3DShadowTPLvlSet + b Hu3DShadowTPLvlSet + entry _kerjmp_Hu3DModelShadowMapSet + b Hu3DModelShadowMapSet + entry _kerjmp_Hu3DModelShadowMapObjSet + b Hu3DModelShadowMapObjSet + entry _kerjmp_Hu3DShadowSizeSet + b Hu3DShadowSizeSet + entry _kerjmp_Hu3DMipMapSet + b Hu3DMipMapSet + entry _kerjmp_Hu3DModelClusterAttrSet + b Hu3DModelClusterAttrSet + entry _kerjmp_Hu3DModelClusterAttrReset + b Hu3DModelClusterAttrReset + entry _kerjmp_Hu3DLLightCreate + b Hu3DLLightCreate + entry _kerjmp_Hu3DLLightCreateV + b Hu3DLLightCreateV + entry _kerjmp_Hu3DLLightSpotSet + b Hu3DLLightSpotSet + entry _kerjmp_Hu3DLLightInfinitytSet + b Hu3DLLightInfinitytSet + entry _kerjmp_Hu3DLLightPointSet + b Hu3DLLightPointSet + entry _kerjmp_Hu3DLLightKill + b Hu3DLLightKill + entry _kerjmp_Hu3DLLightColorSet + b Hu3DLLightColorSet + entry _kerjmp_Hu3DLLightPosSetV + b Hu3DLLightPosSetV + entry _kerjmp_Hu3DLLightPosSet + b Hu3DLLightPosSet + entry _kerjmp_Hu3DLLightPosAimSetV + b Hu3DLLightPosAimSetV + entry _kerjmp_Hu3DLLightPosAimSet + b Hu3DLLightPosAimSet + entry _kerjmp_Hu3DLLightStaticSet + b Hu3DLLightStaticSet + entry _kerjmp_Hu3DAnimInit + b Hu3DAnimInit + entry _kerjmp_Hu3DAnimCreate + b Hu3DAnimCreate + entry _kerjmp_Hu3DAnimLink + b Hu3DAnimLink + entry _kerjmp_Hu3DAnimKill + b Hu3DAnimKill + entry _kerjmp_Hu3DAnimAllKill + b Hu3DAnimAllKill + entry _kerjmp_Hu3DAnimSet + b Hu3DAnimSet + entry _kerjmp_Hu3DAnimExec + b Hu3DAnimExec + entry _kerjmp_Hu3DAnimAttrSet + b Hu3DAnimAttrSet + entry _kerjmp_Hu3DAnimAttrReset + b Hu3DAnimAttrReset + entry _kerjmp_Hu3DAnimSpeedSet + b Hu3DAnimSpeedSet + entry _kerjmp_Hu3DAnimBankSet + b Hu3DAnimBankSet + entry _kerjmp_Hu3DAnmNoSet + b Hu3DAnmNoSet + entry _kerjmp_Hu3DTexScrollCreate + b Hu3DTexScrollCreate + entry _kerjmp_Hu3DTexScrollPosSet + b Hu3DTexScrollPosSet + entry _kerjmp_Hu3DTexScrollPosMoveSet + b Hu3DTexScrollPosMoveSet + entry _kerjmp_Hu3DTexScrollRotSet + b Hu3DTexScrollRotSet + entry _kerjmp_Hu3DTexScrollRotMoveSet + b Hu3DTexScrollRotMoveSet + entry _kerjmp_Hu3DTexScrollKill + b Hu3DTexScrollKill + entry _kerjmp_Hu3DTexScrollAllKill + b Hu3DTexScrollAllKill + entry _kerjmp_Hu3DTexScrollPauseDisableSet + b Hu3DTexScrollPauseDisableSet + entry _kerjmp_Hu3DParticleCreate + b Hu3DParticleCreate + entry _kerjmp_Hu3DParticleScaleSet + b Hu3DParticleScaleSet + entry _kerjmp_Hu3DParticleZRotSet + b Hu3DParticleZRotSet + entry _kerjmp_Hu3DParticleColSet + b Hu3DParticleColSet + entry _kerjmp_Hu3DParticleTPLvlSet + b Hu3DParticleTPLvlSet + entry _kerjmp_Hu3DParticleBlendModeSet + b Hu3DParticleBlendModeSet + entry _kerjmp_Hu3DParticleHookSet + b Hu3DParticleHookSet + entry _kerjmp_Hu3DParticleCntSet + b Hu3DParticleCntSet + entry _kerjmp_Hu3DParticleAttrSet + b Hu3DParticleAttrSet + entry _kerjmp_Hu3DParticleAttrReset + b Hu3DParticleAttrReset + entry _kerjmp_Hu3DParticleAnimModeSet + b Hu3DParticleAnimModeSet + entry _kerjmp_Hu3DParManInit + b Hu3DParManInit + entry _kerjmp_Hu3DParManCreate + b Hu3DParManCreate + entry _kerjmp_Hu3DParManKill + b Hu3DParManKill + entry _kerjmp_Hu3DParManAllKill + b Hu3DParManAllKill + entry _kerjmp_Hu3DParManPtrGet + b Hu3DParManPtrGet + entry _kerjmp_Hu3DParManAttrSet + b Hu3DParManAttrSet + entry _kerjmp_Hu3DParManAttrReset + b Hu3DParManAttrReset + entry _kerjmp_Hu3DParManPosSet + b Hu3DParManPosSet + entry _kerjmp_Hu3DParManVecSet + b Hu3DParManVecSet + entry _kerjmp_Hu3DParManRotSet + b Hu3DParManRotSet + entry _kerjmp_Hu3DParManModelIDGet + b Hu3DParManModelIDGet + entry _kerjmp_Hu3DParManLink + b Hu3DParManLink + entry _kerjmp_Hu3DParManTimeLimitSet + b Hu3DParManTimeLimitSet + entry _kerjmp_Hu3DParManColorSet + b Hu3DParManColorSet + entry _kerjmp_Hu3DMotionCreate + b Hu3DMotionCreate + entry _kerjmp_Hu3DMotionInit + b Hu3DMotionInit + entry _kerjmp_Hu3DMotionModelCreate + b Hu3DMotionModelCreate + entry _kerjmp_Hu3DMotionKill + b Hu3DMotionKill + entry _kerjmp_Hu3DMotionAllKill + b Hu3DMotionAllKill + entry _kerjmp_Hu3DMotionSet + b Hu3DMotionSet + entry _kerjmp_Hu3DMotionExec + b Hu3DMotionExec + entry _kerjmp_Hu3DSubMotionExec + b Hu3DSubMotionExec + entry _kerjmp_Hu3DMotionNext + b Hu3DMotionNext + entry _kerjmp_Hu3DMotionTimeSet + b Hu3DMotionTimeSet + entry _kerjmp_Hu3DMotionTimeGet + b Hu3DMotionTimeGet + entry _kerjmp_Hu3DMotionMaxTimeGet + b Hu3DMotionMaxTimeGet + entry _kerjmp_Hu3DMotionStartEndSet + b Hu3DMotionStartEndSet + entry _kerjmp_Hu3DMotionMotionMaxTimeGet + b Hu3DMotionMotionMaxTimeGet + entry _kerjmp_Hu3DMotionEndCheck + b Hu3DMotionEndCheck + entry _kerjmp_Hu3DMotionShiftSet + b Hu3DMotionShiftSet + entry _kerjmp_Hu3DMotionIDGet + b Hu3DMotionIDGet + entry _kerjmp_Hu3DMotionShiftIDGet + b Hu3DMotionShiftIDGet + entry _kerjmp_Hu3DMotionShiftTimeGet + b Hu3DMotionShiftTimeGet + entry _kerjmp_Hu3DMotionShiftMaxTimeGet + b Hu3DMotionShiftMaxTimeGet + entry _kerjmp_Hu3DMotionShiftStartEndSet + b Hu3DMotionShiftStartEndSet + entry _kerjmp_Hu3DMotionShiftSpeedSet + b Hu3DMotionShiftSpeedSet + entry _kerjmp_Hu3DMotionSpeedSet + b Hu3DMotionSpeedSet + entry _kerjmp_Hu3DMotionShapeSpeedSet + b Hu3DMotionShapeSpeedSet + entry _kerjmp_Hu3DMotionShapeTimeSet + b Hu3DMotionShapeTimeSet + entry _kerjmp_Hu3DMotionNoMotSet + b Hu3DMotionNoMotSet + entry _kerjmp_Hu3DMotionNoMotReset + b Hu3DMotionNoMotReset + entry _kerjmp_Hu3DMotionForceSet + b Hu3DMotionForceSet + entry _kerjmp_Hu3DMotionShapeSet + b Hu3DMotionShapeSet + entry _kerjmp_Hu3DMotionShapeIDGet + b Hu3DMotionShapeIDGet + entry _kerjmp_Hu3DMotionShapeMaxTimeGet + b Hu3DMotionShapeMaxTimeGet + entry _kerjmp_Hu3DMotionClusterSet + b Hu3DMotionClusterSet + entry _kerjmp_Hu3DMotionClusterNoSet + b Hu3DMotionClusterNoSet + entry _kerjmp_Hu3DMotionShapeReset + b Hu3DMotionShapeReset + entry _kerjmp_Hu3DMotionClusterReset + b Hu3DMotionClusterReset + entry _kerjmp_Hu3DJointMotion + b Hu3DJointMotion + entry _kerjmp_Hu3DMotionOverlaySet + b Hu3DMotionOverlaySet + entry _kerjmp_Hu3DMotionOverlayReset + b Hu3DMotionOverlayReset + entry _kerjmp_Hu3DMotionOverlayTimeGet + b Hu3DMotionOverlayTimeGet + entry _kerjmp_Hu3DMotionOverlayTimeSet + b Hu3DMotionOverlayTimeSet + entry _kerjmp_Hu3DMotionOverlaySpeedSet + b Hu3DMotionOverlaySpeedSet + entry _kerjmp_Hu3DModelObjDrawInit + b Hu3DModelObjDrawInit + entry _kerjmp_Hu3DModelObjDraw + b Hu3DModelObjDraw + entry _kerjmp_Hu3DMotionCalc + b Hu3DMotionCalc + entry _kerjmp_Hu3DMotionShapeStartEndSet + b Hu3DMotionShapeStartEndSet + entry _kerjmp_CamMotionEx + b CamMotionEx + entry _kerjmp_CamMotionEx2 + b CamMotionEx2 + entry _kerjmp_Hu3D2Dto3D + b Hu3D2Dto3D + entry _kerjmp_Hu3D3Dto2D + b Hu3D3Dto2D + entry _kerjmp_Hu3DMtxRotGet + b Hu3DMtxRotGet + entry _kerjmp_Hu3DMtxTransGet + b Hu3DMtxTransGet + entry _kerjmp_Hu3DMtxScaleGet + b Hu3DMtxScaleGet + entry _kerjmp_Hu3DProjectionCreate + b Hu3DProjectionCreate + entry _kerjmp_Hu3DProjectionPosSet + b Hu3DProjectionPosSet + entry _kerjmp_Hu3DProjectionTPLvlSet + b Hu3DProjectionTPLvlSet + entry _kerjmp_Hu3DProjectionKill + b Hu3DProjectionKill + entry _kerjmp_HuAudInit + b HuAudInit + entry _kerjmp_HuAudStreamPlay + b HuAudStreamPlay + entry _kerjmp_HuAudAllStop + b HuAudAllStop + entry _kerjmp_HuAudFadeOut + b HuAudFadeOut + entry _kerjmp_HuAudStreamPauseOn + b HuAudStreamPauseOn + entry _kerjmp_HuAudStreamPauseOff + b HuAudStreamPauseOff + entry _kerjmp_HuAudStreamFadeOut + b HuAudStreamFadeOut + entry _kerjmp_HuAudStreamVolSet + b HuAudStreamVolSet + entry _kerjmp_HuAudFXPlay + b HuAudFXPlay + entry _kerjmp_HuAudFXPlayVol + b HuAudFXPlayVol + entry _kerjmp_HuAudFXPlayVolPan + b HuAudFXPlayVolPan + entry _kerjmp_HuAudFXStop + b HuAudFXStop + entry _kerjmp_HuAudFXFadeOut + b HuAudFXFadeOut + entry _kerjmp_HuAudFXPanning + b HuAudFXPanning + entry _kerjmp_HuAudSeqPlay + b HuAudSeqPlay + entry _kerjmp_HuAudSeqStop + b HuAudSeqStop + entry _kerjmp_HuAudSeqFadeOut + b HuAudSeqFadeOut + entry _kerjmp_HuAudSeqMidiCtrlGet + b HuAudSeqMidiCtrlGet + entry _kerjmp_HuAudFXListnerSet + b HuAudFXListnerSet + entry _kerjmp_HuAudFXListnerUpdate + b HuAudFXListnerUpdate + entry _kerjmp_HuAudFXEmiterPlay + b HuAudFXEmiterPlay + entry _kerjmp_HuAudFXEmiterUpDate + b HuAudFXEmiterUpDate + entry _kerjmp_HuAudFXListnerKill + b HuAudFXListnerKill + entry _kerjmp_HuAudFXStatusGet + b HuAudFXStatusGet + entry _kerjmp_HuAudFXPitchSet + b HuAudFXPitchSet + entry _kerjmp_HuAudFXVolSet + b HuAudFXVolSet + entry _kerjmp_HuAudDllSndGrpSet + b HuAudDllSndGrpSet + entry _kerjmp_HuAudSndGrpSetSet + b HuAudSndGrpSetSet + entry _kerjmp_HuAudSndGrpSet + b HuAudSndGrpSet + entry _kerjmp_HuAudSndCommonGrpSet + b HuAudSndCommonGrpSet + entry _kerjmp_HuAudSStreamPlay + b HuAudSStreamPlay + entry _kerjmp_HuAudSStreamStop + b HuAudSStreamStop + entry _kerjmp_HuAudSStreamFadeOut + b HuAudSStreamFadeOut + entry _kerjmp_HuAudSStreamAllFadeOut + b HuAudSStreamAllFadeOut + entry _kerjmp_HuAudSStreamAllStop + b HuAudSStreamAllStop + entry _kerjmp_HuAudSStreamStatGet + b HuAudSStreamStatGet + entry _kerjmp_HuAudPlayerVoicePlay + b HuAudPlayerVoicePlay + entry _kerjmp_HuAudCharVoicePlay + b HuAudCharVoicePlay + entry _kerjmp_HuAudPlayerVoicePlayPos + b HuAudPlayerVoicePlayPos + entry _kerjmp_HuAudCharVoicePlayPos + b HuAudCharVoicePlayPos + entry _kerjmp_HuAudPlayerVoicePlayEntry + b HuAudPlayerVoicePlayEntry + entry _kerjmp_HuAudCharVoicePlayEntry + b HuAudCharVoicePlayEntry + entry _kerjmp_HuAudAUXSet + b HuAudAUXSet + entry _kerjmp_msmMusPlay + b msmMusPlay + entry _kerjmp_espInit + b espInit + entry _kerjmp_espEntry + b espEntry + entry _kerjmp_espKill + b espKill + entry _kerjmp_espGrpIDGet + b espGrpIDGet + entry _kerjmp_espDispOn + b espDispOn + entry _kerjmp_espDispOff + b espDispOff + entry _kerjmp_espAttrSet + b espAttrSet + entry _kerjmp_espAttrReset + b espAttrReset + entry _kerjmp_espPosSet + b espPosSet + entry _kerjmp_espScaleSet + b espScaleSet + entry _kerjmp_espZRotSet + b espZRotSet + entry _kerjmp_espTPLvlSet + b espTPLvlSet + entry _kerjmp_espColorSet + b espColorSet + entry _kerjmp_espSpeedSet + b espSpeedSet + entry _kerjmp_espBankSet + b espBankSet + entry _kerjmp_espDrawNoSet + b espDrawNoSet + entry _kerjmp_espPriSet + b espPriSet + entry _kerjmp_lbl_80192060 + b lbl_80192060 + entry _kerjmp_lbl_80192160 + b lbl_80192160 + entry _kerjmp_lbl_80192260 + b lbl_80192260 + entry _kerjmp_lbl_801D3DA0 + b lbl_801D3DA0 + entry _kerjmp_fn_8003FF68 + b fn_8003FF68 + entry _kerjmp_HuPrcInit + b HuPrcInit + entry _kerjmp_HuPrcCall + b HuPrcCall + entry _kerjmp_HuPrcCreate + b HuPrcCreate + entry _kerjmp_HuPrcKill + b HuPrcKill + entry _kerjmp_HuPrcEnd + b HuPrcEnd + entry _kerjmp_HuPrcWakeup + b HuPrcWakeup + entry _kerjmp_HuPrcSleep + b HuPrcSleep + entry _kerjmp_HuPrcVSleep + b HuPrcVSleep + entry _kerjmp_HuPrcCurrentGet + b HuPrcCurrentGet + entry _kerjmp_HuPrcDestructorSet + b HuPrcDestructorSet + entry _kerjmp_HuPrcDestructorSet2 + b HuPrcDestructorSet2 + entry _kerjmp_HuPrcChildCreate + b HuPrcChildCreate + entry _kerjmp_HuPrcChildLink + b HuPrcChildLink + entry _kerjmp_HuPrcChildUnlink + b HuPrcChildUnlink + entry _kerjmp_HuPrcChildKill + b HuPrcChildKill + entry _kerjmp_HuPrcMemAlloc + b HuPrcMemAlloc + entry _kerjmp_HuPrcMemFree + b HuPrcMemFree + entry _kerjmp_Hu3DParManVacumeSet + b Hu3DParManVacumeSet + entry _kerjmp_HuDataInit + b HuDataInit + entry _kerjmp_HuDataDirRead + b HuDataDirRead + entry _kerjmp_HuDataRead + b HuDataRead + entry _kerjmp_HuDataReadNum + b HuDataReadNum + entry _kerjmp_HuDataReadMulti + b HuDataReadMulti + entry _kerjmp_HuDataDirReadAsync + b HuDataDirReadAsync + entry _kerjmp_HuDataDirReadNumAsync + b HuDataDirReadNumAsync + entry _kerjmp_HuDataSelHeapRead + b HuDataSelHeapRead + entry _kerjmp_HuDataSelHeapReadNum + b HuDataSelHeapReadNum + entry _kerjmp_HuDataGetSize + b HuDataGetSize + entry _kerjmp_HuDataDirClose + b HuDataDirClose + entry _kerjmp_HuDataDirCloseNum + b HuDataDirCloseNum + entry _kerjmp_HuDataClose + b HuDataClose + entry _kerjmp_HuDataCloseMulti + b HuDataCloseMulti + entry _kerjmp_HuDataReadNumHeapShortForce + b HuDataReadNumHeapShortForce + entry _kerjmp_ARRegisterDMACallback + b ARRegisterDMACallback + entry _kerjmp_ARGetDMAStatus + b ARGetDMAStatus + entry _kerjmp_ARStartDMA + b ARStartDMA + entry _kerjmp_ARInit + b ARInit + entry _kerjmp_ARAlloc + b ARAlloc + entry _kerjmp_ARFree + b ARFree + entry _kerjmp_ARGetSize + b ARGetSize + entry _kerjmp_ARSetSize + b ARSetSize + entry _kerjmp_HuSprBegin + b HuSprBegin + entry _kerjmp_HuSprCall + b HuSprCall + entry _kerjmp_HuSprFinish + b HuSprFinish + entry _kerjmp_HuSprAnimRead + b HuSprAnimRead + entry _kerjmp_HuSprCreate + b HuSprCreate + entry _kerjmp_HuSprGrpCreate + b HuSprGrpCreate + entry _kerjmp_HuSprGrpMemberSet + b HuSprGrpMemberSet + entry _kerjmp_HuSprGrpMemberKill + b HuSprGrpMemberKill + entry _kerjmp_HuSprGrpKill + b HuSprGrpKill + entry _kerjmp_HuSprKill + b HuSprKill + entry _kerjmp_HuSprAnimKill + b HuSprAnimKill + entry _kerjmp_HuSprAttrSet + b HuSprAttrSet + entry _kerjmp_HuSprAttrReset + b HuSprAttrReset + entry _kerjmp_HuSprPosSet + b HuSprPosSet + entry _kerjmp_HuSprScaleSet + b HuSprScaleSet + entry _kerjmp_HuSprZRotSet + b HuSprZRotSet + entry _kerjmp_HuSprGrpPosSet + b HuSprGrpPosSet + entry _kerjmp_HuSprGrpZRotSet + b HuSprGrpZRotSet + entry _kerjmp_HuSprGrpScaleSet + b HuSprGrpScaleSet + entry _kerjmp_HuSprTPLvlSet + b HuSprTPLvlSet + entry _kerjmp_HuSprColorSet + b HuSprColorSet + entry _kerjmp_HuSprSpeedSet + b HuSprSpeedSet + entry _kerjmp_HuSprBankSet + b HuSprBankSet + entry _kerjmp_HuSprGrpDrawNoSet + b HuSprGrpDrawNoSet + entry _kerjmp_HuSprDrawNoSet + b HuSprDrawNoSet + entry _kerjmp_HuSprPriSet + b HuSprPriSet + entry _kerjmp_HuSprFuncCreate + b HuSprFuncCreate + entry _kerjmp_HuSprAnimMake + b HuSprAnimMake + entry _kerjmp_HuSprGrpCenterSet + b HuSprGrpCenterSet + entry _kerjmp_HuSprAnimLock + b HuSprAnimLock + entry _kerjmp_AnimDebug + b AnimDebug + entry _kerjmp_HuSprExecLayerSet + b HuSprExecLayerSet + entry _kerjmp_HuSprSprBGSet + b HuSprSprBGSet + entry _kerjmp_HuSprBGSet + b HuSprBGSet + entry _kerjmp_HuSprGrpScissorSet + b HuSprGrpScissorSet + entry _kerjmp_HuSprScissorSet + b HuSprScissorSet + entry _kerjmp_HuSprGrpTPLvlSet + b HuSprGrpTPLvlSet + entry _kerjmp_HuARMalloc + b HuARMalloc + entry _kerjmp_HuARFree + b HuARFree + entry _kerjmp_HuAR_DVDtoARAM + b HuAR_DVDtoARAM + entry _kerjmp_HuAR_MRAMtoARAM + b HuAR_MRAMtoARAM + entry _kerjmp_HuAR_MRAMtoARAM2 + b HuAR_MRAMtoARAM2 + entry _kerjmp_HuAR_ARAMtoMRAM + b HuAR_ARAMtoMRAM + entry _kerjmp_HuAR_ARAMtoMRAMNum + b HuAR_ARAMtoMRAMNum + entry _kerjmp_HuARDMACheck + b HuARDMACheck + entry _kerjmp_HuARDirCheck + b HuARDirCheck + entry _kerjmp_HuARDirFree + b HuARDirFree + entry _kerjmp_HuAR_ARAMtoMRAMFileRead + b HuAR_ARAMtoMRAMFileRead + entry _kerjmp_HuAudFXListnerSetEX + b HuAudFXListnerSetEX + entry _kerjmp_HuWindowInit + b HuWindowInit + entry _kerjmp_HuWinInit + b HuWinInit + entry _kerjmp_HuWinCreate + b HuWinCreate + entry _kerjmp_HuWinKill + b HuWinKill + entry _kerjmp_HuWinAllKill + b HuWinAllKill + entry _kerjmp_HuWinMesSet + b HuWinMesSet + entry _kerjmp_HuWinInsertMesSet + b HuWinInsertMesSet + entry _kerjmp_HuWinChoiceGet + b HuWinChoiceGet + entry _kerjmp_HuWinChoiceNumGet + b HuWinChoiceNumGet + entry _kerjmp_HuWinMesWait + b HuWinMesWait + entry _kerjmp_HuWinSprKill + b HuWinSprKill + entry _kerjmp_HuWinMesRead + b HuWinMesRead + entry _kerjmp_HuWinAnimSet + b HuWinAnimSet + entry _kerjmp_HuWinSprSet + b HuWinSprSet + entry _kerjmp_HuWinSprPosSet + b HuWinSprPosSet + entry _kerjmp_HuWinSprIDGet + b HuWinSprIDGet + entry _kerjmp_HuWinMesMaxSizeGet + b HuWinMesMaxSizeGet + entry _kerjmp_HuWinInsertMesSizeGet + b HuWinInsertMesSizeGet + entry _kerjmp_HuWinMesMaxSizeBetGet + b HuWinMesMaxSizeBetGet + entry _kerjmp_HuWinExCreate + b HuWinExCreate + entry _kerjmp_HuWinDispOn + b HuWinDispOn + entry _kerjmp_HuWinDispOff + b HuWinDispOff + entry _kerjmp_HuWinExAnimIn + b HuWinExAnimIn + entry _kerjmp_HuWinExAnimOut + b HuWinExAnimOut + entry _kerjmp_HuWinExCleanup + b HuWinExCleanup + entry _kerjmp_HuWinExAnimPopIn + b HuWinExAnimPopIn + entry _kerjmp_HuWinComKeyWait + b HuWinComKeyWait + entry _kerjmp_HuWinComKeySet + b HuWinComKeySet + entry _kerjmp_HuWinComKeyReset + b HuWinComKeyReset + entry _kerjmp_HuWinDrawNoSet + b HuWinDrawNoSet + entry _kerjmp_HuWinAttrSet + b HuWinAttrSet + entry _kerjmp_HuWinAttrReset + b HuWinAttrReset + entry _kerjmp_HuWinBGTPLvlSet + b HuWinBGTPLvlSet + entry _kerjmp_HuWinMesSpeedSet + b HuWinMesSpeedSet + entry _kerjmp_HuWinBGColSet + b HuWinBGColSet + entry _kerjmp_HuWinChoiceDisable + b HuWinChoiceDisable + entry _kerjmp_HuWinKeyWaitEntry + b HuWinKeyWaitEntry + entry _kerjmp_HuWinCenterPosSet + b HuWinCenterPosSet + entry _kerjmp_HuWinPosSet + b HuWinPosSet + entry _kerjmp_HuWinZRotSet + b HuWinZRotSet + entry _kerjmp_HuWinScaleSet + b HuWinScaleSet + entry _kerjmp_HuWinChoiceNowGet + b HuWinChoiceNowGet + entry _kerjmp_HuWinStatGet + b HuWinStatGet + entry _kerjmp_HuWinMesColSet + b HuWinMesColSet + entry _kerjmp_HuWinScissorSet + b HuWinScissorSet + entry _kerjmp_HuWinExCreateStyled + b HuWinExCreateStyled + entry _kerjmp_HuWinPriSet + b HuWinPriSet + entry _kerjmp_HuWinSprPriSet + b HuWinSprPriSet + entry _kerjmp_HuWinKeyWaitNumGet + b HuWinKeyWaitNumGet + entry _kerjmp_HuWinMesSizeCancelCRSet + b HuWinMesSizeCancelCRSet + entry _kerjmp_HuWinMesPalSet + b HuWinMesPalSet + entry _kerjmp_HuWinHomeClear + b HuWinHomeClear + entry _kerjmp_HuWinPushKeySet + b HuWinPushKeySet + entry _kerjmp_HuWinDisablePlayerSet + b HuWinDisablePlayerSet + entry _kerjmp_HuWinDisablePlayerReset + b HuWinDisablePlayerReset + entry _kerjmp_CharManInit + b CharManInit + entry _kerjmp_CharARAMOpen + b CharARAMOpen + entry _kerjmp_CharKill + b CharKill + entry _kerjmp_CharModelKill + b CharModelKill + entry _kerjmp_CharKillAll + b CharKillAll + entry _kerjmp_CharModelCreate + b CharModelCreate + entry _kerjmp_CharModelMotionCreate + b CharModelMotionCreate + entry _kerjmp_CharModelMotionIndexSet + b CharModelMotionIndexSet + entry _kerjmp_CharModelMotionKill + b CharModelMotionKill + entry _kerjmp_CharModelMotionDataClose + b CharModelMotionDataClose + entry _kerjmp_CharModelDataClose + b CharModelDataClose + entry _kerjmp_CharAMemPtrGet + b CharAMemPtrGet + entry _kerjmp_CharModelMotionSet + b CharModelMotionSet + entry _kerjmp_CharModelMotionTimeSet + b CharModelMotionTimeSet + entry _kerjmp_CharModelMotionTimeGet + b CharModelMotionTimeGet + entry _kerjmp_CharModelMotionMaxTimeGet + b CharModelMotionMaxTimeGet + entry _kerjmp_CharModelMotionEndCheck + b CharModelMotionEndCheck + entry _kerjmp_CharModelMotionShiftIDGet + b CharModelMotionShiftIDGet + entry _kerjmp_CharModelMotionShiftSet + b CharModelMotionShiftSet + entry _kerjmp_CharModelMotionShiftTimeGet + b CharModelMotionShiftTimeGet + entry _kerjmp_CharModelMotionSpeedSet + b CharModelMotionSpeedSet + entry _kerjmp_CharModelLayerSetAll + b CharModelLayerSetAll + entry _kerjmp_CharModelItemHookCreate + b CharModelItemHookCreate + entry _kerjmp_CharModelEffectCreate + b CharModelEffectCreate + entry _kerjmp_CharModelCoinEffectCreate + b CharModelCoinEffectCreate + entry _kerjmp_fn_8004EC74 + b fn_8004EC74 + entry _kerjmp_fn_8004EDA4 + b fn_8004EDA4 + entry _kerjmp_fn_8004F13C + b fn_8004F13C + entry _kerjmp_fn_8004F058 + b fn_8004F058 + entry _kerjmp_GWCharColorGet + b GWCharColorGet + entry _kerjmp_CharModelLayerSetAll2 + b CharModelLayerSetAll2 + entry _kerjmp_charTexNameTbl + b charTexNameTbl + entry _kerjmp_CharModelTexNameGet + b CharModelTexNameGet + entry _kerjmp_CharModelVoiceEnableSet + b CharModelVoiceEnableSet + entry _kerjmp_CharModelEffectNpcInitSilent + b CharModelEffectNpcInitSilent + entry _kerjmp_CharModelStepTypeSet + b CharModelStepTypeSet + entry _kerjmp_fn_8004F52C + b fn_8004F52C + entry _kerjmp_CharModelEffectEnableSet + b CharModelEffectEnableSet + entry _kerjmp_CharModelEffectNpcInit + b CharModelEffectNpcInit + entry _kerjmp_HuPrcSetStat + b HuPrcSetStat + entry _kerjmp_HuPrcResetStat + b HuPrcResetStat + entry _kerjmp_omGameSysInit + b omGameSysInit + entry _kerjmp_omResetStatBit + b omResetStatBit + entry _kerjmp_omCurrentOvlGet + b omCurrentOvlGet + entry _kerjmp_omPauseChk + b omPauseChk + entry _kerjmp_omOvlHisChg + b omOvlHisChg + entry _kerjmp_omOvlHisGet + b omOvlHisGet + entry _kerjmp_omovlevtno + b omovlevtno + entry _kerjmp_omovlstat + b omovlstat + entry _kerjmp_AddX + b AddX + entry _kerjmp_AddZ + b AddZ + entry _kerjmp_MapObject + b MapObject + entry _kerjmp_CharObject + b CharObject + entry _kerjmp_nMap + b nMap + entry _kerjmp_nChar + b nChar + entry _kerjmp_MapWall + b MapWall + entry _kerjmp_MapPos + b MapPos + entry _kerjmp_HitFaceVec + b HitFaceVec + entry _kerjmp_HitFace + b HitFace + entry _kerjmp_HitFaceCount + b HitFaceCount + entry _kerjmp_GWPlayer + b GWPlayer + entry _kerjmp_GWSystem + b GWSystem + entry _kerjmp_HuTHPSprCreateVol + b HuTHPSprCreateVol + entry _kerjmp_HuTHPSprCreate + b HuTHPSprCreate + entry _kerjmp_HuTHP3DCreateVol + b HuTHP3DCreateVol + entry _kerjmp_HuTHP3DCreate + b HuTHP3DCreate + entry _kerjmp_HuTHPStop + b HuTHPStop + entry _kerjmp_HuTHPClose + b HuTHPClose + entry _kerjmp_HuTHPRestart + b HuTHPRestart + entry _kerjmp_HuTHPEndCheck + b HuTHPEndCheck + entry _kerjmp_HuTHPFrameGet + b HuTHPFrameGet + entry _kerjmp_HuTHPTotalFrameGet + b HuTHPTotalFrameGet + entry _kerjmp_HuTHPSetVolume + b HuTHPSetVolume + entry _kerjmp_HuCardCheck + b HuCardCheck + entry _kerjmp_HuCardMount + b HuCardMount + entry _kerjmp_HuCardFormat + b HuCardFormat + entry _kerjmp_HuCardOpen + b HuCardOpen + entry _kerjmp_HuCardRead + b HuCardRead + entry _kerjmp_HuCardCreate + b HuCardCreate + entry _kerjmp_HuCardClose + b HuCardClose + entry _kerjmp_HuCardWrite + b HuCardWrite + entry _kerjmp_HuCardDelete + b HuCardDelete + entry _kerjmp_HuCardSectorSizeGet + b HuCardSectorSizeGet + entry _kerjmp_HuCardFreeSpaceGet + b HuCardFreeSpaceGet + entry _kerjmp_HuCardSlotCheck + b HuCardSlotCheck + entry _kerjmp_SLFileOpen + b SLFileOpen + entry _kerjmp_SLFileCreate + b SLFileCreate + entry _kerjmp_SLFileWrite + b SLFileWrite + entry _kerjmp_SLFileClose + b SLFileClose + entry _kerjmp_SLFileRead + b SLFileRead + entry _kerjmp_SLCurSlotNoSet + b SLCurSlotNoSet + entry _kerjmp_SLSaveDataMake + b SLSaveDataMake + entry _kerjmp_SLCommonSet + b SLCommonSet + entry _kerjmp_SLSaveBoard + b SLSaveBoard + entry _kerjmp_SLSaveBoardBackup + b SLSaveBoardBackup + entry _kerjmp_SLSave + b SLSave + entry _kerjmp_SLLoadGameStat + b SLLoadGameStat + entry _kerjmp_SLLoadBoard + b SLLoadBoard + entry _kerjmp_SLLoadBoardBackup + b SLLoadBoardBackup + entry _kerjmp_SLLoad + b SLLoad + entry _kerjmp_SLCurBoxNoSet + b SLCurBoxNoSet + entry _kerjmp_SLSaveFlagSet + b SLSaveFlagSet + entry _kerjmp_SLSaveFlagGet + b SLSaveFlagGet + entry _kerjmp_SLCheckSumCheck + b SLCheckSumCheck + entry _kerjmp_SLSerialNoGet + b SLSerialNoGet + entry _kerjmp_SLSerialNoCheck + b SLSerialNoCheck + entry _kerjmp_saveExecF + b saveExecF + entry _kerjmp__CheckFlag + b _CheckFlag + entry _kerjmp__SetFlag + b _SetFlag + entry _kerjmp__ClearFlag + b _ClearFlag + entry _kerjmp_mgInfoTbl + b mgInfoTbl + entry _kerjmp_mgTypeCurr + b mgTypeCurr + entry _kerjmp_mgBattleStar + b mgBattleStar + entry _kerjmp_lbl_801D3E94_0 + b lbl_801D3E94 + entry _kerjmp_mgTicTacToeGrid + b mgTicTacToeGrid + entry _kerjmp_mgIndexList + b mgIndexList + entry _kerjmp_lbl_801D3E94_1 + b lbl_801D3E94 + entry _kerjmp_mgGameStatBackup + b mgGameStatBackup + entry _kerjmp_mgRecordExtra + b mgRecordExtra + entry _kerjmp_mgQuitExtraF + b mgQuitExtraF + entry _kerjmp_mgPracticeEnableF + b mgPracticeEnableF + entry _kerjmp_mgBoardHostEnableF + b mgBoardHostEnableF + entry _kerjmp_omMgIndexGet + b omMgIndexGet + entry _kerjmp_mgInstExitEnableF + b mgInstExitEnableF + entry _kerjmp_GWMGRecordSet + b GWMGRecordSet + entry _kerjmp_GWMGRecordGet + b GWMGRecordGet + entry _kerjmp_GWBoardPlayCountAdd + b GWBoardPlayCountAdd + entry _kerjmp_GWBoardPlayCountSet + b GWBoardPlayCountSet + entry _kerjmp_GWBoardPlayCountGet + b GWBoardPlayCountGet + entry _kerjmp_GWBoardWinCountInc + b GWBoardWinCountInc + entry _kerjmp_GWBoardWinCountGet + b GWBoardWinCountGet + entry _kerjmp_GWBoardWinCountSet + b GWBoardWinCountSet + entry _kerjmp_GWBoardMaxStarsSet + b GWBoardMaxStarsSet + entry _kerjmp_GWBoardMaxStarsGet + b GWBoardMaxStarsGet + entry _kerjmp_GWBoardMaxCoinsSet + b GWBoardMaxCoinsSet + entry _kerjmp_GWBoardMaxCoinsGet + b GWBoardMaxCoinsGet + entry _kerjmp_GWTotalStarsSet + b GWTotalStarsSet + entry _kerjmp_GWTotalStarsAdd + b GWTotalStarsAdd + entry _kerjmp_GWTotalStarsGet + b GWTotalStarsGet + entry _kerjmp_GWStarsAdd + b GWStarsAdd + entry _kerjmp_GWStarsGet + b GWStarsGet + entry _kerjmp_GWStarsSet + b GWStarsSet + entry _kerjmp_GWCoinsAdd + b GWCoinsAdd + entry _kerjmp_GWCoinsSet + b GWCoinsSet + entry _kerjmp_GWCoinsGet + b GWCoinsGet + entry _kerjmp_GWMGCustomReset + b GWMGCustomReset + entry _kerjmp_GWMGCustomSet + b GWMGCustomSet + entry _kerjmp_GWMGCustomGet + b GWMGCustomGet + entry _kerjmp_GWMGAvailGet + b GWMGAvailGet + entry _kerjmp_fmod + b fmod + entry _kerjmp__savegpr_15 + b _savegpr_15 + entry _kerjmp__restgpr_15 + b _restgpr_15 + entry _kerjmp__savegpr_16 + b _savegpr_16 + entry _kerjmp__restgpr_16 + b _restgpr_16 + entry _kerjmp___save_gpr + b __save_gpr + entry _kerjmp___restore_gpr + b __restore_gpr + entry _kerjmp_omDBGMenuButton + b omDBGMenuButton + entry _kerjmp_msmSeSetListener + b msmSeSetListener + entry _kerjmp_msmSeUpdataListener + b msmSeUpdataListener + entry _kerjmp_msmSeGetIndexPtr + b msmSeGetIndexPtr + entry _kerjmp_msmMusSetMasterVolume + b msmMusSetMasterVolume + entry _kerjmp_msmSysGetOutputMode + b msmSysGetOutputMode + entry _kerjmp_BoardRollExec + b BoardRollExec + entry _kerjmp_BoardRollKill + b BoardRollKill + entry _kerjmp_BoardDiceValueSet + b BoardDiceValueSet + entry _kerjmp_BoardDiceStop + b BoardDiceStop + entry _kerjmp_BoardDicePauseAll + b BoardDicePauseAll + entry _kerjmp_BoardDiceDoneCheck + b BoardDiceDoneCheck + entry _kerjmp_BoardCommonInit + b BoardCommonInit + entry _kerjmp_BoardStoryConfigSet + b BoardStoryConfigSet + entry _kerjmp_BoardPartyConfigSet + b BoardPartyConfigSet + entry _kerjmp_BoardSaveInit + b BoardSaveInit + entry _kerjmp_BoardMGExit + b BoardMGExit + entry _kerjmp_BoardDAngleCalcVec + b BoardDAngleCalcVec + entry _kerjmp_BoardDAngleCalc + b BoardDAngleCalc + entry _kerjmp_BoardVecMaxDistXZCheck + b BoardVecMaxDistXZCheck + entry _kerjmp_BoardIsKill + b BoardIsKill + entry _kerjmp_BoardKill + b BoardKill + entry _kerjmp_BoardCameraScissorSet + b BoardCameraScissorSet + entry _kerjmp_BoardCameraViewSet + b BoardCameraViewSet + entry _kerjmp_BoardCameraDirGet + b BoardCameraDirGet + entry _kerjmp_BoardCameraPointDirGet + b BoardCameraPointDirGet + entry _kerjmp_BoardCameraMoveSet + b BoardCameraMoveSet + entry _kerjmp_BoardCameraQuakeSet + b BoardCameraQuakeSet + entry _kerjmp_BoardCameraQuakeReset + b BoardCameraQuakeReset + entry _kerjmp_BoardCameraTargetSet + b BoardCameraTargetSet + entry _kerjmp_BoardCameraPosGet + b BoardCameraPosGet + entry _kerjmp_BoardCameraTargetGet + b BoardCameraTargetGet + entry _kerjmp_BoardCameraRotGet + b BoardCameraRotGet + entry _kerjmp_BoardCameraZoomGet + b BoardCameraZoomGet + entry _kerjmp_BoardCameraPosSet + b BoardCameraPosSet + entry _kerjmp_BoardCameraXRotZoomSet + b BoardCameraXRotZoomSet + entry _kerjmp_BoardCameraZoomSet + b BoardCameraZoomSet + entry _kerjmp_BoardCameraRotSet + b BoardCameraRotSet + entry _kerjmp_BoardCameraFovSet + b BoardCameraFovSet + entry _kerjmp_BoardCameraOffsetSet + b BoardCameraOffsetSet + entry _kerjmp_BoardCameraTargetPlayerSet + b BoardCameraTargetPlayerSet + entry _kerjmp_BoardCameraTargetModelSet + b BoardCameraTargetModelSet + entry _kerjmp_BoardCameraTargetSpaceSet + b BoardCameraTargetSpaceSet + entry _kerjmp_BoardCameraCullCheck + b BoardCameraCullCheck + entry _kerjmp_BoardCameraMotionIsDone + b BoardCameraMotionIsDone + entry _kerjmp_BoardCameraMotionStartEx + b BoardCameraMotionStartEx + entry _kerjmp_BoardCameraMotionStart + b BoardCameraMotionStart + entry _kerjmp_BoardCameraMotionWait + b BoardCameraMotionWait + entry _kerjmp_BoardCameraNearFarSet + b BoardCameraNearFarSet + entry _kerjmp_BoardCameraNearFarGet + b BoardCameraNearFarGet + entry _kerjmp_BoardEventFlagSet + b BoardEventFlagSet + entry _kerjmp_BoardEventFlagReset + b BoardEventFlagReset + entry _kerjmp_BoardEventFlagGet + b BoardEventFlagGet + entry _kerjmp_BoardMGCreate + b BoardMGCreate + entry _kerjmp_BoardDAngleCalcRange + b BoardDAngleCalcRange + entry _kerjmp_BoardVecDistXZCalc + b BoardVecDistXZCalc + entry _kerjmp_BoardVecMinDistCheck + b BoardVecMinDistCheck + entry _kerjmp_BoardArcSin + b BoardArcSin + entry _kerjmp_BoardArcCos + b BoardArcCos + entry _kerjmp_BoardMTXCalcLookAt + b BoardMTXCalcLookAt + entry _kerjmp_BoardLightSetExec + b BoardLightSetExec + entry _kerjmp_BoardLightResetExec + b BoardLightResetExec + entry _kerjmp_BoardLightHookSet + b BoardLightHookSet + entry _kerjmp_BoardMGDoneFlagSet + b BoardMGDoneFlagSet + entry _kerjmp_BoardMGDoneFlagGet + b BoardMGDoneFlagGet + entry _kerjmp_BoardMGSetupExec + b BoardMGSetupExec + entry _kerjmp_BoardFilterFadeOut + b BoardFilterFadeOut + entry _kerjmp_BoardFilterFadeInit + b BoardFilterFadeInit + entry _kerjmp_BoardFilterFadePauseCheck + b BoardFilterFadePauseCheck + entry _kerjmp_BoardFilterFadeCheck + b BoardFilterFadeCheck + entry _kerjmp_BoardConfettiCreate + b BoardConfettiCreate + entry _kerjmp_BoardConfettiKill + b BoardConfettiKill + entry _kerjmp_BoardConfettiStop + b BoardConfettiStop + entry _kerjmp_BoardRand + b BoardRand + entry _kerjmp_BoardRandMod + b BoardRandMod + entry _kerjmp_BoardRandFloat + b BoardRandFloat + entry _kerjmp_boardRandSeed + b boardRandSeed + entry _kerjmp_BoardViewMoveCheck + b BoardViewMoveCheck + entry _kerjmp_BoardViewMoveEnd + b BoardViewMoveEnd + entry _kerjmp_BoardViewFocusGetPos + b BoardViewFocusGetPos + entry _kerjmp_BoardViewMoveStart + b BoardViewMoveStart + entry _kerjmp_BoardViewFocusSet + b BoardViewFocusSet + entry _kerjmp_boardTurnFunc + b boardTurnFunc + entry _kerjmp_boardStarShowNextHook + b boardStarShowNextHook + entry _kerjmp_boardBowserHook + b boardBowserHook + entry _kerjmp_boardTurnStartFunc + b boardTurnStartFunc + entry _kerjmp_boardStarGiveHook + b boardStarGiveHook + entry _kerjmp_boardMainProc + b boardMainProc + entry _kerjmp_boardObjMan + b boardObjMan + entry _kerjmp_BoardItemStart + b BoardItemStart + entry _kerjmp_BoardCharWheelInit + b BoardCharWheelInit + entry _kerjmp_BoardCharWheelCheck + b BoardCharWheelCheck + entry _kerjmp_BoardCharWheelWait + b BoardCharWheelWait + entry _kerjmp_BoardCharWheelResultGet + b BoardCharWheelResultGet + entry _kerjmp_BoardCharWheelSpeedSet + b BoardCharWheelSpeedSet + entry _kerjmp_BoardSpaceInit + b BoardSpaceInit + entry _kerjmp_BoardSpaceDestroy + b BoardSpaceDestroy + entry _kerjmp_BoardSpaceLandExec + b BoardSpaceLandExec + entry _kerjmp_BoardSpaceWalkEventFuncSet + b BoardSpaceWalkEventFuncSet + entry _kerjmp_BoardSpaceWalkMiniEventFuncSet + b BoardSpaceWalkMiniEventFuncSet + entry _kerjmp_BoardSpaceLandEventFuncSet + b BoardSpaceLandEventFuncSet + entry _kerjmp_BoardSpaceWalkEventExec + b BoardSpaceWalkEventExec + entry _kerjmp_BoardSpaceWalkMiniEventExec + b BoardSpaceWalkMiniEventExec + entry _kerjmp_BoardSpaceBlockExec + b BoardSpaceBlockExec + entry _kerjmp_BoardSpaceWalkExec + b BoardSpaceWalkExec + entry _kerjmp_BoardSpaceCameraSet + b BoardSpaceCameraSet + entry _kerjmp_BoardSpaceCornerPosGet + b BoardSpaceCornerPosGet + entry _kerjmp_BoardSpaceStarGetRandom + b BoardSpaceStarGetRandom + entry _kerjmp_BoardSpaceCountGet + b BoardSpaceCountGet + entry _kerjmp_BoardSpaceGet + b BoardSpaceGet + entry _kerjmp_BoardSpaceFlagPosGet + b BoardSpaceFlagPosGet + entry _kerjmp_BoardSpaceFlagGet + b BoardSpaceFlagGet + entry _kerjmp_BoardSpaceLinkTypeSearch + b BoardSpaceLinkTypeSearch + entry _kerjmp_BoardSpacePosGet + b BoardSpacePosGet + entry _kerjmp_BoardSpaceRotGet + b BoardSpaceRotGet + entry _kerjmp_BoardSpaceRead + b BoardSpaceRead + entry _kerjmp_BoardSpaceAttrReset + b BoardSpaceAttrReset + entry _kerjmp_BoardSpaceAttrSet + b BoardSpaceAttrSet + entry _kerjmp_BoardSpaceLinkTargetListGet + b BoardSpaceLinkTargetListGet + entry _kerjmp_BoardSpaceFlagSearch + b BoardSpaceFlagSearch + entry _kerjmp_BoardSpaceTypeGet + b BoardSpaceTypeGet + entry _kerjmp_BoardSpaceTypeSet + b BoardSpaceTypeSet + entry _kerjmp_BoardSpaceLinkFlagSearch + b BoardSpaceLinkFlagSearch + entry _kerjmp_BoardSpaceLinkTypeListGet + b BoardSpaceLinkTypeListGet + entry _kerjmp_BoardSpaceLinkTransformGet + b BoardSpaceLinkTransformGet + entry _kerjmp_BoardSpaceHide + b BoardSpaceHide + entry _kerjmp_BoardSpaceStarCheck + b BoardSpaceStarCheck + entry _kerjmp_BoardSpaceStarMove + b BoardSpaceStarMove + entry _kerjmp_BoardSpaceStarSetIndex + b BoardSpaceStarSetIndex + entry _kerjmp_BoardSpaceStarGetCurr + b BoardSpaceStarGetCurr + entry _kerjmp_BoardSpaceStarGet + b BoardSpaceStarGet + entry _kerjmp_BoardStarHostSet + b BoardStarHostSet + entry _kerjmp_BoardStarHostMdlGet + b BoardStarHostMdlGet + entry _kerjmp_BoardBooHouseHostSet + b BoardBooHouseHostSet + entry _kerjmp_BoardBooHouseHostGet + b BoardBooHouseHostGet + entry _kerjmp_BoardLotteryHostSet + b BoardLotteryHostSet + entry _kerjmp_BoardLotteryHostGet + b BoardLotteryHostGet + entry _kerjmp_BoardShopHostSet + b BoardShopHostSet + entry _kerjmp_BoardShopHostGet + b BoardShopHostGet + entry _kerjmp_BoardPauseActiveCheck + b BoardPauseActiveCheck + entry _kerjmp_BoardLotteryInit + b BoardLotteryInit + entry _kerjmp_BoardLotteryKill + b BoardLotteryKill + entry _kerjmp_BoardLotteryExec + b BoardLotteryExec + entry _kerjmp_BoardBooHouseCreate + b BoardBooHouseCreate + entry _kerjmp_BoardBooHouseKill + b BoardBooHouseKill + entry _kerjmp_BoardBooHouseExec + b BoardBooHouseExec + entry _kerjmp_BoardLandBlueExec + b BoardLandBlueExec + entry _kerjmp_BoardLandRedExec + b BoardLandRedExec + entry _kerjmp_BoardWarpExec + b BoardWarpExec + entry _kerjmp_BoardMushroomExec + b BoardMushroomExec + entry _kerjmp_BoardStarExec + b BoardStarExec + entry _kerjmp_BoardStarGive + b BoardStarGive + entry _kerjmp_BoardBattleExec + b BoardBattleExec + entry _kerjmp_BoardShopInit + b BoardShopInit + entry _kerjmp_BoardShopKill + b BoardShopKill + entry _kerjmp_BoardShopExec + b BoardShopExec + entry _kerjmp_BoardModelInit + b BoardModelInit + entry _kerjmp_BoardModelKillAll + b BoardModelKillAll + entry _kerjmp_BoardModelDummyUpdate + b BoardModelDummyUpdate + entry _kerjmp_BoardModelVisibilityUpdate + b BoardModelVisibilityUpdate + entry _kerjmp_BoardModelKill + b BoardModelKill + entry _kerjmp_BoardModelExistCheck + b BoardModelExistCheck + entry _kerjmp_BoardModelExistDupe + b BoardModelExistDupe + entry _kerjmp_BoardModelIDGet + b BoardModelIDGet + entry _kerjmp_BoardModelAlphaSet + b BoardModelAlphaSet + entry _kerjmp_BoardModelMotionStart + b BoardModelMotionStart + entry _kerjmp_BoardModelMotionShiftSet + b BoardModelMotionShiftSet + entry _kerjmp_BoardModelAttrSet + b BoardModelAttrSet + entry _kerjmp_BoardModelAttrReset + b BoardModelAttrReset + entry _kerjmp_BoardModelMotionTimeSet + b BoardModelMotionTimeSet + entry _kerjmp_BoardModelMotionSpeedSet + b BoardModelMotionSpeedSet + entry _kerjmp_BoardModelMotionSpeedGet + b BoardModelMotionSpeedGet + entry _kerjmp_BoardModelMotionStartEndSet + b BoardModelMotionStartEndSet + entry _kerjmp_BoardModelMotionUpdateSet + b BoardModelMotionUpdateSet + entry _kerjmp_BoardModelMotionShapeSet + b BoardModelMotionShapeSet + entry _kerjmp_BoardModelMotionShapeTimeGet + b BoardModelMotionShapeTimeGet + entry _kerjmp_BoardModelMotionShapeMaxTimeGet + b BoardModelMotionShapeMaxTimeGet + entry _kerjmp_BoardModelMotionShapeSpeedSet + b BoardModelMotionShapeSpeedSet + entry _kerjmp_BoardModelMotionShapeSpeedGet + b BoardModelMotionShapeSpeedGet + entry _kerjmp_BoardModelMotionShapeEndCheck + b BoardModelMotionShapeEndCheck + entry _kerjmp_BoardModelMotionShapeStartEndSet + b BoardModelMotionShapeStartEndSet + entry _kerjmp_BoardModelMtxSet + b BoardModelMtxSet + entry _kerjmp_BoardModelMtxGet + b BoardModelMtxGet + entry _kerjmp_BoardModelPosSetV + b BoardModelPosSetV + entry _kerjmp_BoardModelRotSetV + b BoardModelRotSetV + entry _kerjmp_BoardModelScaleSetV + b BoardModelScaleSetV + entry _kerjmp_BoardModelPosSet + b BoardModelPosSet + entry _kerjmp_BoardModelRotSet + b BoardModelRotSet + entry _kerjmp_BoardModelScaleSet + b BoardModelScaleSet + entry _kerjmp_BoardModelPosGet + b BoardModelPosGet + entry _kerjmp_BoardModelRotGet + b BoardModelRotGet + entry _kerjmp_BoardModelScaleGet + b BoardModelScaleGet + entry _kerjmp_fn_8006DDE8 + b fn_8006DDE8 + entry _kerjmp_BoardModelVisibilitySet + b BoardModelVisibilitySet + entry _kerjmp_BoardModelVisibilityGet + b BoardModelVisibilityGet + entry _kerjmp_BoardModelLayerSet + b BoardModelLayerSet + entry _kerjmp_BoardModelCameraSet + b BoardModelCameraSet + entry _kerjmp_BoardModelPassSet + b BoardModelPassSet + entry _kerjmp_fn_8006DC1C + b fn_8006DC1C + entry _kerjmp_BoardModelHookSet + b BoardModelHookSet + entry _kerjmp_BoardModelHookReset + b BoardModelHookReset + entry _kerjmp_BoardModelHookObjReset + b BoardModelHookObjReset + entry _kerjmp_BoardModelMotionEndCheck + b BoardModelMotionEndCheck + entry _kerjmp_BoardModelMotionTimeGet + b BoardModelMotionTimeGet + entry _kerjmp_BoardModelMotionMaxTimeGet + b BoardModelMotionMaxTimeGet + entry _kerjmp_BoardModelMotionCreate + b BoardModelMotionCreate + entry _kerjmp_BoardModelMotionKill + b BoardModelMotionKill + entry _kerjmp_BoardModelCreate + b BoardModelCreate + entry _kerjmp_BoardModelCreateCharacter + b BoardModelCreateCharacter + entry _kerjmp_BoardModelCreateParam + b BoardModelCreateParam + entry _kerjmp_BoardModelLayerSetAll + b BoardModelLayerSetAll + entry _kerjmp_BoardModelCameraSetAll + b BoardModelCameraSetAll + entry _kerjmp_BoardModelHideSetAll + b BoardModelHideSetAll + entry _kerjmp_BoardModelAmbSet + b BoardModelAmbSet + entry _kerjmp_BoardModelAmbSetAll + b BoardModelAmbSetAll + entry _kerjmp_BoardModelRotYSet + b BoardModelRotYSet + entry _kerjmp_BoardModelRotYGet + b BoardModelRotYGet + entry _kerjmp_BoardModelVoiceEnableSet + b BoardModelVoiceEnableSet + entry _kerjmp_BoardPlayerModelInit + b BoardPlayerModelInit + entry _kerjmp_BoardPlayerModelKill + b BoardPlayerModelKill + entry _kerjmp_BoardPlayerInit + b BoardPlayerInit + entry _kerjmp_BoardPlayerGetCharMess + b BoardPlayerGetCharMess + entry _kerjmp_BoardPlayerGetCharName + b BoardPlayerGetCharName + entry _kerjmp_BoardPlayerLayerSet + b BoardPlayerLayerSet + entry _kerjmp_BoardPlayerCameraSet + b BoardPlayerCameraSet + entry _kerjmp_fn_80062A40 + b fn_80062A40 + entry _kerjmp_BoardPlayerExistCheck + b BoardPlayerExistCheck + entry _kerjmp_BoardPlayerMtxSet + b BoardPlayerMtxSet + entry _kerjmp_BoardPlayerPosSet + b BoardPlayerPosSet + entry _kerjmp_BoardPlayerPosSetV + b BoardPlayerPosSetV + entry _kerjmp_BoardPlayerPosGet + b BoardPlayerPosGet + entry _kerjmp_BoardPlayerRotSet + b BoardPlayerRotSet + entry _kerjmp_BoardPlayerRotSetV + b BoardPlayerRotSetV + entry _kerjmp_BoardPlayerRotGet + b BoardPlayerRotGet + entry _kerjmp_BoardPlayerRotYSet + b BoardPlayerRotYSet + entry _kerjmp_BoardPlayerRotYGet + b BoardPlayerRotYGet + entry _kerjmp_BoardPlayerScaleSet + b BoardPlayerScaleSet + entry _kerjmp_BoardPlayerScaleSetV + b BoardPlayerScaleSetV + entry _kerjmp_BoardPlayerScaleGet + b BoardPlayerScaleGet + entry _kerjmp_BoardPlayerCornerPosSet + b BoardPlayerCornerPosSet + entry _kerjmp_BoardPlayerCornerPosGet + b BoardPlayerCornerPosGet + entry _kerjmp_BoardPlayerSizeGet + b BoardPlayerSizeGet + entry _kerjmp_BoardPlayerSizeSet + b BoardPlayerSizeSet + entry _kerjmp_BoardPlayerCurrMotionGet + b BoardPlayerCurrMotionGet + entry _kerjmp_BoardPlayerMotionEndCheck + b BoardPlayerMotionEndCheck + entry _kerjmp_BoardPlayerMotionEndWait + b BoardPlayerMotionEndWait + entry _kerjmp_BoardPlayerMotionMaxTimeGet + b BoardPlayerMotionMaxTimeGet + entry _kerjmp_BoardPlayerMotionTimeGet + b BoardPlayerMotionTimeGet + entry _kerjmp_BoardPlayerVoiceEnableSet + b BoardPlayerVoiceEnableSet + entry _kerjmp_BoardPlayerMotionStart + b BoardPlayerMotionStart + entry _kerjmp_BoardPlayerMotionShiftSet + b BoardPlayerMotionShiftSet + entry _kerjmp_BoardPlayerMotionCreate + b BoardPlayerMotionCreate + entry _kerjmp_BoardPlayerMotionKill + b BoardPlayerMotionKill + entry _kerjmp_BoardPlayerMotionSpeedSet + b BoardPlayerMotionSpeedSet + entry _kerjmp_BoardPlayerMotionTimeSet + b BoardPlayerMotionTimeSet + entry _kerjmp_BoardPlayerMotionStartEndSet + b BoardPlayerMotionStartEndSet + entry _kerjmp_BoardPlayerModelAttrSet + b BoardPlayerModelAttrSet + entry _kerjmp_BoardPlayerModelAttrReset + b BoardPlayerModelAttrReset + entry _kerjmp_BoardPlayerAmbSet + b BoardPlayerAmbSet + entry _kerjmp_BoardPlayerIdleSet + b BoardPlayerIdleSet + entry _kerjmp_BoardPlayerMotBlendSet + b BoardPlayerMotBlendSet + entry _kerjmp_BoardPlayerMotBlendCheck + b BoardPlayerMotBlendCheck + entry _kerjmp_BoardPlayerRankCalc + b BoardPlayerRankCalc + entry _kerjmp_BoardRollTypeGet + b BoardRollTypeGet + entry _kerjmp_BoardRollTypeSet + b BoardRollTypeSet + entry _kerjmp_BoardPlayerItemRemove + b BoardPlayerItemRemove + entry _kerjmp_BoardPlayerItemFind + b BoardPlayerItemFind + entry _kerjmp_BoardPlayerItemAdd + b BoardPlayerItemAdd + entry _kerjmp_BoardPlayerItemCount + b BoardPlayerItemCount + entry _kerjmp_BoardPlayerCoinsAdd + b BoardPlayerCoinsAdd + entry _kerjmp_BoardPlayerCoinsGet + b BoardPlayerCoinsGet + entry _kerjmp_BoardPlayerCoinsSet + b BoardPlayerCoinsSet + entry _kerjmp_BoardPlayerStarsAdd + b BoardPlayerStarsAdd + entry _kerjmp_BoardPlayerSameTeamFind + b BoardPlayerSameTeamFind + entry _kerjmp_BoardPlayerPosLerpStart + b BoardPlayerPosLerpStart + entry _kerjmp_BoardPlayerMoveToAsync + b BoardPlayerMoveToAsync + entry _kerjmp_BoardPlayerDiceJumpStart + b BoardPlayerDiceJumpStart + entry _kerjmp_BoardPlayerDiceJumpCheck + b BoardPlayerDiceJumpCheck + entry _kerjmp_BoardDiceDigit2DInit + b BoardDiceDigit2DInit + entry _kerjmp_BoardDiceDigit2DUpdateEnable + b BoardDiceDigit2DUpdateEnable + entry _kerjmp_BoardDiceDigit2DShowSet + b BoardDiceDigit2DShowSet + entry _kerjmp_BoardPlayerBtnDownWait + b BoardPlayerBtnDownWait + entry _kerjmp_BoardPlayerAutoSizeSet + b BoardPlayerAutoSizeSet + entry _kerjmp_BoardPlayerAutoSizeGet + b BoardPlayerAutoSizeGet + entry _kerjmp_BoardPlayerMoveAwayIsDone + b BoardPlayerMoveAwayIsDone + entry _kerjmp_BoardPlayerMoveAwayStartCurr + b BoardPlayerMoveAwayStartCurr + entry _kerjmp_BoardPlayerMoveAwayStart + b BoardPlayerMoveAwayStart + entry _kerjmp_BoardPlayerPreTurnHookSet + b BoardPlayerPreTurnHookSet + entry _kerjmp_BoardPlayerPostTurnHookSet + b BoardPlayerPostTurnHookSet + entry _kerjmp_BoardPlayerCopyEyeMat + b BoardPlayerCopyEyeMat + entry _kerjmp_BoardBowserSuitInit + b BoardBowserSuitInit + entry _kerjmp_BoardBowserSuitKill + b BoardBowserSuitKill + entry _kerjmp_BoardBowserSuitModelGet + b BoardBowserSuitModelGet + entry _kerjmp_BoardBowserSuitPlayerModelGet + b BoardBowserSuitPlayerModelGet + entry _kerjmp_BoardBowserSuitPlayerModelKill + b BoardBowserSuitPlayerModelKill + entry _kerjmp_BoardBowserSuitMotionSetWait + b BoardBowserSuitMotionSetWait + entry _kerjmp_BoardBowserSuitMotionSetWalk + b BoardBowserSuitMotionSetWalk + entry _kerjmp_BoardBowserSuitMotionSetWin + b BoardBowserSuitMotionSetWin + entry _kerjmp_BoardBowserSuitMotionSetJump + b BoardBowserSuitMotionSetJump + entry _kerjmp_BoardJunctionMaskSet + b BoardJunctionMaskSet + entry _kerjmp_BoardJunctionMaskReset + b BoardJunctionMaskReset + entry _kerjmp_BoardJunctionMaskZero + b BoardJunctionMaskZero + entry _kerjmp_BoardPlayerResizeAnimExec + b BoardPlayerResizeAnimExec + entry _kerjmp_BoardWinCreate + b BoardWinCreate + entry _kerjmp_BoardWinCreateChoice + b BoardWinCreateChoice + entry _kerjmp_BoardWinChoiceGet + b BoardWinChoiceGet + entry _kerjmp_BoardWinWait + b BoardWinWait + entry _kerjmp_BoardWinKill + b BoardWinKill + entry _kerjmp_BoardWinInit + b BoardWinInit + entry _kerjmp_BoardWinKillAll + b BoardWinKillAll + entry _kerjmp_BoardWinUnusedArraySet + b BoardWinUnusedArraySet + entry _kerjmp_BoardWinPause + b BoardWinPause + entry _kerjmp_BoardWinInsertMesSet + b BoardWinInsertMesSet + entry _kerjmp_BoardWinAttrSet + b BoardWinAttrSet + entry _kerjmp_BoardWinAttrReset + b BoardWinAttrReset + entry _kerjmp_BoardWinChoiceDisable + b BoardWinChoiceDisable + entry _kerjmp_BoardWinKeyWait + b BoardWinKeyWait + entry _kerjmp_BoardWinSpeedGet + b BoardWinSpeedGet + entry _kerjmp_BoardWinSpeedSet + b BoardWinSpeedSet + entry _kerjmp_BoardWinPriSet + b BoardWinPriSet + entry _kerjmp_BoardWinChoiceNowGet + b BoardWinChoiceNowGet + entry _kerjmp_BoardWinChoiceNowGet2 + b BoardWinChoiceNowGet2 + entry _kerjmp_BoardStatusCreate + b BoardStatusCreate + entry _kerjmp_BoardStatusKill + b BoardStatusKill + entry _kerjmp_BoardStatusVisibleGet + b BoardStatusVisibleGet + entry _kerjmp_BoardStatusShowSet + b BoardStatusShowSet + entry _kerjmp_BoardStatusShowSetForce + b BoardStatusShowSetForce + entry _kerjmp_BoardStatusGraySet + b BoardStatusGraySet + entry _kerjmp_BoardStatusShowSetAll + b BoardStatusShowSetAll + entry _kerjmp_BoardStatusStopCheck + b BoardStatusStopCheck + entry _kerjmp_BoardSpriteCreate + b BoardSpriteCreate + entry _kerjmp_BoardStatusTargetPosSet + b BoardStatusTargetPosSet + entry _kerjmp_BoardStatusPosSet + b BoardStatusPosSet + entry _kerjmp_BoardStatusPosGet + b BoardStatusPosGet + entry _kerjmp_BoardStatusItemHideSet + b BoardStatusItemHideSet + entry _kerjmp_BoardStatusHammerCreate + b BoardStatusHammerCreate + entry _kerjmp_BoardStatusHammerKill + b BoardStatusHammerKill + entry _kerjmp_BoardStatusHammerShowSet + b BoardStatusHammerShowSet + entry _kerjmp_BoardPickerCreate + b BoardPickerCreate + entry _kerjmp_BoardPickerDoneCheck + b BoardPickerDoneCheck + entry _kerjmp_BoardPickerChoiceGet + b BoardPickerChoiceGet + entry _kerjmp_BoardPickerPosGet + b BoardPickerPosGet + entry _kerjmp_BoardPickerBackFlagSet + b BoardPickerBackFlagSet + entry _kerjmp_BoardItemGetDestPos + b BoardItemGetDestPos + entry _kerjmp_BoardItemUseExec + b BoardItemUseExec + entry _kerjmp_BoardItemStatusKill + b BoardItemStatusKill + entry _kerjmp_BoardYourTurnExec + b BoardYourTurnExec + entry _kerjmp_BoardMusStart + b BoardMusStart + entry _kerjmp_BoardAudSeqFadeOutFast + b BoardAudSeqFadeOutFast + entry _kerjmp_BoardAudSeqFadeOut + b BoardAudSeqFadeOut + entry _kerjmp_BoardMusLoudSet + b BoardMusLoudSet + entry _kerjmp_BoardMusVolPanSet + b BoardMusVolPanSet + entry _kerjmp_BoardAudSeqPause + b BoardAudSeqPause + entry _kerjmp_BoardMusStatusGet + b BoardMusStatusGet + entry _kerjmp_BoardAudSeqFadeOutAll + b BoardAudSeqFadeOutAll + entry _kerjmp_BoardAudFXPlay + b BoardAudFXPlay + entry _kerjmp_BoardAudFXStop + b BoardAudFXStop + entry _kerjmp_BoardComKeySetLeft + b BoardComKeySetLeft + entry _kerjmp_BoardComKeySetUp + b BoardComKeySetUp + entry _kerjmp_BoardComKeySetRight + b BoardComKeySetRight + entry _kerjmp_BoardComKeySetDown + b BoardComKeySetDown + entry _kerjmp_BoardComPreferItemCheck + b BoardComPreferItemCheck + entry _kerjmp_BoardComPreferItemGet + b BoardComPreferItemGet + entry _kerjmp_BoardComFarPlayerFind + b BoardComFarPlayerFind + entry _kerjmp_boardTutorialData + b boardTutorialData + entry _kerjmp_BoardTutorialHookSet + b BoardTutorialHookSet + entry _kerjmp_BoardRollTutorialSet + b BoardRollTutorialSet + entry _kerjmp_BoardTutorialDirInputSet + b BoardTutorialDirInputSet + entry _kerjmp_BoardCharWheelTargetSet + b BoardCharWheelTargetSet + entry _kerjmp_BoardTutorialBlockSetPos + b BoardTutorialBlockSetPos + entry _kerjmp_BoardTutorialItemSet + b BoardTutorialItemSet + entry _kerjmp_BoardTutorialHostSet + b BoardTutorialHostSet + entry _kerjmp_BoardMGSetupTutorialExec + b BoardMGSetupTutorialExec + entry _kerjmp_BoardShopTutorialExec + b BoardShopTutorialExec + entry _kerjmp_BoardLotteryTutorialExec + b BoardLotteryTutorialExec + entry _kerjmp_BoardBooHouseTutorialExec + b BoardBooHouseTutorialExec + #endif +} \ No newline at end of file diff --git a/src/game/objsub.c b/src/game/objsub.c index f80a4928..a3dde048 100644 --- a/src/game/objsub.c +++ b/src/game/objsub.c @@ -1199,11 +1199,8 @@ void omGameSysInit(Process *objman) { omSysPauseEnable(0); for (i = 0; i < 4; i++) { - if (_CheckFlag(0x1000C) == 0) { - GWPlayer[i].coin_gain = 0; - } - - GWPlayer[i].unk_26 = 0; + GWPlayerCoinWinSet(i, 0); + GWPlayerCoinCollectSet(i, 0); } if (mgPracticeEnableF != 0) {