diff --git a/config/GMPE01_00/rels/w01Dll/symbols.txt b/config/GMPE01_00/rels/w01Dll/symbols.txt index 4ba3173b..bd58c480 100644 --- a/config/GMPE01_00/rels/w01Dll/symbols.txt +++ b/config/GMPE01_00/rels/w01Dll/symbols.txt @@ -3,76 +3,76 @@ _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 @@ -136,90 +136,90 @@ fn_1_11064 = .text:0x00011064; // type:function size:0x420 fn_1_11484 = .text:0x00011484; // type:function size:0x56C _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_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 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 @@ -334,34 +334,34 @@ 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_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 lbl_1_data_67C = .data:0x0000067C; // type:object size:0x14 lbl_1_data_690 = .data:0x00000690; // type:object size:0x2D0 @@ -378,46 +378,46 @@ 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_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_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 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 diff --git a/configure.py b/configure.py index 12daf4ad..ef010ff3 100644 --- a/configure.py +++ b/configure.py @@ -1084,7 +1084,7 @@ config.libs = [ Rel('w01Dll', objects = { Object(Matching, "REL/board_executor.c"), - Object(NonMatching, "REL/w01Dll/main.c"), + Object(Matching, "REL/w01Dll/main.c"), Object(NonMatching, "REL/w01Dll/mg_coin.c"), Object(NonMatching, "REL/w01Dll/mg_item.c"), } 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..a2a3af3f --- /dev/null +++ b/include/REL/w01Dll.h @@ -0,0 +1,22 @@ +#ifndef REL_W01_H +#define REL_W01_H + +#include "dolphin/types.h" + +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[33]; +extern UnkBoardDataStruct *lbl_1_bss_0; + +#endif 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/player.h b/include/game/board/player.h index 779c5668..5fef2c61 100644 --- a/include/game/board/player.h +++ b/include/game/board/player.h @@ -146,7 +146,6 @@ 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..70ed236f 100644 --- a/include/game/board/space.h +++ b/include/game/board/space.h @@ -49,6 +49,7 @@ s32 BoardSpaceStarGetCurr(void); s32 BoardSpaceStarCheck(s32 index); void BoardSpaceLandExec(s32 player, s32 space); void BoardSpaceBlockPosSet(void); +void BoardSpaceInit(s32 data_num); extern s16 boardSpaceStarTbl[8]; diff --git a/src/REL/w01Dll/main.c b/src/REL/w01Dll/main.c new file mode 100755 index 00000000..1737da2e --- /dev/null +++ b/src/REL/w01Dll/main.c @@ -0,0 +1,2564 @@ +#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/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 "dolphin.h" +#include "math.h" + +typedef struct { + /* 0x00 */ Vec unk00; + /* 0x0C */ Vec unk0C; + /* 0x18 */ Vec unk18; + /* 0x24 */ s32 unk24; +} UnkW01Struct; // Size 0x28 + +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); + +s16 lbl_1_bss_6C4[33]; +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 UnkW01Struct lbl_1_data_0[33] = { + { { 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) } +}; + +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) { + UnkW01Struct *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 < 33; i++) { + temp_r30 = &lbl_1_data_0[i]; + if (temp_r30->unk24 != -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->unk24, lbl_1_bss_6C0, 0); + BoardModelPosSetV(lbl_1_bss_6C4[i], &temp_r30->unk00); + BoardModelRotSetV(lbl_1_bss_6C4[i], &temp_r30->unk0C); + BoardModelScaleSetV(lbl_1_bss_6C4[i], &temp_r30->unk18); + 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); +} + +// TODO: consider moving to gamework_data.h or board/player.h. +static inline s16 GWPlayerCurrSpaceCurrGet(void) { + return GWPlayer[GWSystem.player_curr].space_curr; +} + +static s32 fn_1_157C(void) { + s32 temp_r31; + + temp_r31 = BoardSpaceFlagGet(0, GWPlayerCurrSpaceCurrGet()) & 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, 0, 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], 0, 0, 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, 0x14); + 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/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/pause.c b/src/game/board/pause.c index ebe23b90..84b84b4c 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()) { @@ -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); } }