diff --git a/config/GMPE01_00/rels/m428Dll/splits.txt b/config/GMPE01_00/rels/m428Dll/splits.txt index 03f22ea9..3a44b731 100644 --- a/config/GMPE01_00/rels/m428Dll/splits.txt +++ b/config/GMPE01_00/rels/m428Dll/splits.txt @@ -10,13 +10,13 @@ REL/executor.c: .text start:0x00000000 end:0x000000A0 REL/m428Dll/main.c: - .text start:0x000000A0 end:0x000040A4 + .text start:0x000000A0 end:0x000043C8 .rodata start:0x00000000 end:0x000000D8 .data start:0x00000000 end:0x00000130 .bss start:0x00000000 end:0x00000090 REL/m428Dll/map.c: - .text start:0x000040A4 end:0x00009F5C + .text start:0x000043C8 end:0x00009F5C .rodata start:0x000000D8 end:0x00000228 .data start:0x00000130 end:0x00000150 .bss start:0x00000090 end:0x00000130 diff --git a/config/GMPE01_00/rels/m428Dll/symbols.txt b/config/GMPE01_00/rels/m428Dll/symbols.txt index eef0a9df..5f9d1250 100644 --- a/config/GMPE01_00/rels/m428Dll/symbols.txt +++ b/config/GMPE01_00/rels/m428Dll/symbols.txt @@ -124,222 +124,222 @@ fn_1_14560 = .text:0x00014560; // type:function size:0x98 fn_1_145F8 = .text:0x000145F8; // type:function size:0x98 _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:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -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_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -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_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -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:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double -lbl_1_rodata_410 = .rodata:0x00000410; // 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:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 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_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +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_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +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:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float lbl_1_data_54 = .data:0x00000054; // type:object size:0xC lbl_1_data_60 = .data:0x00000060; // type:object size:0xC lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC -lbl_1_data_78 = .data:0x00000078; // type:object size:0x23 data:string +lbl_1_data_78 = .data:0x00000078; // type:object size:0x23 scope:local data:string lbl_1_data_9C = .data:0x0000009C; // type:object size:0xC lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xC lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4 jumptable_1_data_B8 = .data:0x000000B8; // type:object size:0x30 scope:local lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:byte -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x44 data:byte -lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 -lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x44 data:4byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 scope:local data:string +lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 scope:local data:string lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 data:4byte lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 data:float lbl_1_data_180 = .data:0x00000180; // type:object size:0x30 @@ -351,18 +351,19 @@ lbl_1_data_500 = .data:0x00000500; // type:object size:0x60 lbl_1_data_560 = .data:0x00000560; // type:object size:0x80 lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0x60 lbl_1_data_640 = .data:0x00000640; // type:object size:0x10 -lbl_1_data_650 = .data:0x00000650; // type:object size:0x1 data:byte -lbl_1_data_654 = .data:0x00000654; // type:object size:0x1 data:byte -lbl_1_data_658 = .data:0x00000658; // type:object size:0x14 +lbl_1_data_650 = .data:0x00000650; // type:object size:0x4 data:byte +lbl_1_data_654 = .data:0x00000654; // type:object size:0x4 data:byte +lbl_1_data_658 = .data:0x00000658; // type:object size:0x14 scope:local data:string jumptable_1_data_66C = .data:0x0000066C; // type:object size:0x28 scope:local lbl_1_data_694 = .data:0x00000694; // type:object size:0x8 lbl_1_data_69C = .data:0x0000069C; // type:object size:0x4 -lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x2 data:2byte +lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x4 data:2byte lbl_1_data_6A4 = .data:0x000006A4; // type:object size:0x30 lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x20 -lbl_1_data_6F4 = .data:0x000006F4; // type:object size:0x19 data:string -lbl_1_data_70D = .data:0x0000070D; // type:object size:0x5 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:4byte +lbl_1_data_6F4 = .data:0x000006F4; // type:object size:0x19 scope:local data:string +lbl_1_data_70D = .data:0x0000070D; // type:object size:0x5 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 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 diff --git a/config/GMPE01_00/rels/mstory3Dll/symbols.txt b/config/GMPE01_00/rels/mstory3Dll/symbols.txt index a6159435..4863cac3 100644 --- a/config/GMPE01_00/rels/mstory3Dll/symbols.txt +++ b/config/GMPE01_00/rels/mstory3Dll/symbols.txt @@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x2C8 _prolog = .text:0x0000036C; // type:function size:0x54 scope:global _epilog = .text:0x000003C0; // type:function size:0x4C scope:global fn_1_40C = .text:0x0000040C; // type:function size:0xE4 -fn_1_4F0 = .text:0x000004F0; // type:function size:0xE4 +ObjectSetup = .text:0x000004F0; // type:function size:0xE4 fn_1_5D4 = .text:0x000005D4; // type:function size:0x28 fn_1_5FC = .text:0x000005FC; // type:function size:0x20 fn_1_61C = .text:0x0000061C; // type:function size:0xD8 @@ -202,315 +202,315 @@ fn_1_1E558 = .text:0x0001E558; // type:function size:0x2C8 fn_1_1E820 = .text:0x0001E820; // type:function size:0x8E0 _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:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -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:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -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_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC data:4byte -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC data:4byte -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -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_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 data:4byte -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 data:4byte -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 data:4byte -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 data:4byte -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 data:4byte -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 data:4byte -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 data:4byte -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 data:byte -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C data:4byte -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 data:4byte -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C data:4byte -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 data:4byte -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double -lbl_1_rodata_640 = .rodata:0x00000640; // 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:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 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:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 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_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +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_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 scope:local +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 scope:local data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 scope:local data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 scope:local data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 scope:local data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 -lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 data:string -lbl_1_data_95 = .data:0x00000095; // type:object size:0xD data:string +lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 scope:local data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0xD scope:local data:string lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 -lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 data:string -lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 data:string -lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A data:string -lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A data:string -lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE data:string +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 scope:local data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 scope:local data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A scope:local data:string +lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A scope:local data:string +lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE scope:local data:string lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float lbl_1_data_160 = .data:0x00000160; // type:object size:0x50 lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50 lbl_1_data_200 = .data:0x00000200; // type:object size:0x50 -lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 data:string -lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 data:string -lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 data:string -lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 data:string -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 data:string -lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 data:string -lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 data:string -lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 data:string -lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF data:string -lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C data:string -lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D data:string -lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C data:string -lbl_1_data_364 = .data:0x00000364; // type:object size:0x8 data:4byte -lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC -lbl_1_data_378 = .data:0x00000378; // type:object size:0xF data:string -lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 data:string +lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 scope:local data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 scope:local data:string +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 scope:local data:string +lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 scope:local data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 scope:local data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 scope:local data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 scope:local data:string +lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF scope:local data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D scope:local data:string +lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C scope:local data:string +lbl_1_data_364 = .data:0x00000364; // type:object size:0x4 data:4byte +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC data:float +lbl_1_data_378 = .data:0x00000378; // type:object size:0xF scope:local data:string +lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 scope:local data:string jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 data:string -lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 data:string -lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 data:string -lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 data:string -lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 data:string -lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 data:string -lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 data:string -lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 data:string -lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 data:string -lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 data:string -lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 data:string -lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 data:string -lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 scope:local data:string +lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 scope:local data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 scope:local data:string +lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 scope:local data:string +lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 scope:local data:string +lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 scope:local data:string +lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 scope:local data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 scope:local data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 scope:local data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 scope:local data:string +lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 scope:local data:string +lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x10 scope:local data:string lbl_1_data_504 = .data:0x00000504; // type:object size:0x288 -lbl_1_data_78C = .data:0x0000078C; // type:object size:0x5 -lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 data:string -lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 data:string -lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 data:string -lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 data:string -lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 data:string -lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 data:string -lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 data:string -lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 data:string -lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF data:string -lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C data:string -lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D data:string -lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 data:string -lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 data:string -lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 data:string -lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 data:string -lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 data:string -lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A data:string -lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A data:string -lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B -lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 data:string -lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 data:string +lbl_1_data_78C = .data:0x0000078C; // type:object size:0x50 +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 scope:local data:string +lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 scope:local data:string +lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 scope:local data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 scope:local data:string +lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 scope:local data:string +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 scope:local data:string +lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 scope:local data:string +lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 scope:local data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF scope:local data:string +lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C scope:local data:string +lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D scope:local data:string +lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 scope:local data:string +lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 scope:local data:string +lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 scope:local data:string +lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 scope:local data:string +lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 scope:local data:string +lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A scope:local data:string +lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A scope:local data:string +lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x19 scope:local data:string +lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 scope:local data:string +lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:float lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:float -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:float @@ -542,7 +542,7 @@ lbl_1_bss_18F4 = .bss:0x000018F4; // type:object size:0xA0 lbl_1_bss_1994 = .bss:0x00001994; // type:object size:0x28 data:4byte lbl_1_bss_19BC = .bss:0x000019BC; // type:object size:0x28 data:4byte lbl_1_bss_19E4 = .bss:0x000019E4; // type:object size:0x28 data:4byte -lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2DC data:float +lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2D8 data:float lbl_1_bss_1CE8 = .bss:0x00001CE8; // type:object size:0x2 data:2byte lbl_1_bss_1CEC = .bss:0x00001CEC; // type:object size:0x4 data:4byte lbl_1_bss_1CF0 = .bss:0x00001CF0; // type:object size:0x4 data:4byte diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 3e84f320..1417c27e 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -3568,15 +3568,15 @@ msmStreamSetOutputMode = .text:0x8011A61C; // type:function size:0x114 msmStreamAmemFree = .text:0x8011A730; // type:function size:0x68 msmStreamAmemAlloc = .text:0x8011A798; // type:function size:0x10C msmStreamInit = .text:0x8011A8A4; // type:function size:0x2A8 -msmStreamPauseOff = .text:0x8011AB4C; // type:function size:0x2B8 -msmStreamPauseOn = .text:0x8011AE04; // type:function size:0x1AC +msmStreamPauseOff = .text:0x8011AB4C; // type:function size:0x2B8 scope:local +msmStreamPauseOn = .text:0x8011AE04; // type:function size:0x1AC scope:local msmStreamPauseFade = .text:0x8011AFB0; // type:function size:0x2E8 scope:local msmStreamFade = .text:0x8011B298; // type:function size:0x33C scope:local msmStreamStopSub = .text:0x8011B5D4; // type:function size:0x13C scope:local msmStreamSetParamSub = .text:0x8011B710; // type:function size:0xE0 scope:local -msmStreamPackStartStereo = .text:0x8011B7F0; // type:function size:0x448 -msmStreamPackStartMono = .text:0x8011BC38; // type:function size:0x2DC -msmStreamSlotOff = .text:0x8011BF14; // type:function size:0xD0 +msmStreamPackStartStereo = .text:0x8011B7F0; // type:function size:0x448 scope:local +msmStreamPackStartMono = .text:0x8011BC38; // type:function size:0x2DC scope:local +msmStreamSlotOff = .text:0x8011BF14; // type:function size:0xD0 scope:local msmStreamData = .text:0x8011BFE4; // type:function size:0x320 scope:local msmStreamDvdCallback = .text:0x8011C304; // type:function size:0x4A8 scope:local msmStreamDvdCallback2 = .text:0x8011C7AC; // type:function size:0x188 scope:local diff --git a/config/GMPE01_01/symbols.txt b/config/GMPE01_01/symbols.txt index ef9eff80..5bed188a 100644 --- a/config/GMPE01_01/symbols.txt +++ b/config/GMPE01_01/symbols.txt @@ -3568,15 +3568,15 @@ msmStreamSetOutputMode = .text:0x8011A61C; // type:function size:0x114 msmStreamAmemFree = .text:0x8011A730; // type:function size:0x68 msmStreamAmemAlloc = .text:0x8011A798; // type:function size:0x10C msmStreamInit = .text:0x8011A8A4; // type:function size:0x2A8 -msmStreamPauseOff = .text:0x8011AB4C; // type:function size:0x2B8 -msmStreamPauseOn = .text:0x8011AE04; // type:function size:0x1AC -msmStreamPauseFade = .text:0x8011AFB0; // type:function size:0x2E8 -msmStreamFade = .text:0x8011B298; // type:function size:0x33C +msmStreamPauseOff = .text:0x8011AB4C; // type:function size:0x2B8 scope:local +msmStreamPauseOn = .text:0x8011AE04; // type:function size:0x1AC scope:local +msmStreamPauseFade = .text:0x8011AFB0; // type:function size:0x2E8 scope:local +msmStreamFade = .text:0x8011B298; // type:function size:0x33C scope:local msmStreamStopSub = .text:0x8011B5D4; // type:function size:0x13C scope:local msmStreamSetParamSub = .text:0x8011B710; // type:function size:0xE0 scope:local -msmStreamPackStartStereo = .text:0x8011B7F0; // type:function size:0x448 -msmStreamPackStartMono = .text:0x8011BC38; // type:function size:0x2DC -msmStreamSlotOff = .text:0x8011BF14; // type:function size:0xD0 +msmStreamPackStartStereo = .text:0x8011B7F0; // type:function size:0x448 scope:local +msmStreamPackStartMono = .text:0x8011BC38; // type:function size:0x2DC scope:local +msmStreamSlotOff = .text:0x8011BF14; // type:function size:0xD0 scope:local msmStreamData = .text:0x8011BFE4; // type:function size:0x320 scope:local msmStreamDvdCallback = .text:0x8011C304; // type:function size:0x4A8 scope:local msmStreamDvdCallback2 = .text:0x8011C7AC; // type:function size:0x188 scope:local diff --git a/config/GMPP01_00/rels/m426Dll/splits.txt b/config/GMPP01_00/rels/m426Dll/splits.txt index 531cd645..a7a72393 100644 --- a/config/GMPP01_00/rels/m426Dll/splits.txt +++ b/config/GMPP01_00/rels/m426Dll/splits.txt @@ -5,3 +5,12 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m426Dll/main.c: + .text start:0x000000A0 end:0x00009AC4 + .rodata start:0x00000000 end:0x000001DC + .data start:0x00000000 end:0x00000368 + .bss start:0x00000000 end:0x0000009C diff --git a/config/GMPP01_00/rels/m426Dll/symbols.txt b/config/GMPP01_00/rels/m426Dll/symbols.txt index fa92aeb2..81681170 100644 --- a/config/GMPP01_00/rels/m426Dll/symbols.txt +++ b/config/GMPP01_00/rels/m426Dll/symbols.txt @@ -1,170 +1,170 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x16C +ObjectSetup = .text:0x000000A0; // type:function size:0x16C fn_1_20C = .text:0x0000020C; // type:function size:0x124 fn_1_330 = .text:0x00000330; // type:function size:0xA80 -fn_1_DB0 = .text:0x00000DB0; // type:function size:0x60 -fn_1_E10 = .text:0x00000E10; // type:function size:0xA0 -fn_1_EB0 = .text:0x00000EB0; // type:function size:0x14C -fn_1_FFC = .text:0x00000FFC; // type:function size:0x178 -fn_1_1174 = .text:0x00001174; // type:function size:0x70 -fn_1_11E4 = .text:0x000011E4; // type:function size:0x70 -fn_1_1254 = .text:0x00001254; // type:function size:0x49C -fn_1_16F0 = .text:0x000016F0; // type:function size:0x13F4 -fn_1_2AE4 = .text:0x00002AE4; // type:function size:0x14 -fn_1_2AF8 = .text:0x00002AF8; // type:function size:0x98 -fn_1_2B90 = .text:0x00002B90; // type:function size:0x368 -fn_1_2EF8 = .text:0x00002EF8; // type:function size:0x80 -fn_1_2F78 = .text:0x00002F78; // type:function size:0x6F8 -fn_1_3670 = .text:0x00003670; // type:function size:0x70 -fn_1_36E0 = .text:0x000036E0; // type:function size:0x50 -fn_1_3730 = .text:0x00003730; // type:function size:0x7E8 -fn_1_3F18 = .text:0x00003F18; // type:function size:0x700 -fn_1_4618 = .text:0x00004618; // type:function size:0x48 -fn_1_4660 = .text:0x00004660; // type:function size:0x60 -fn_1_46C0 = .text:0x000046C0; // type:function size:0x94 -fn_1_4754 = .text:0x00004754; // type:function size:0x15C -fn_1_48B0 = .text:0x000048B0; // type:function size:0x5C -fn_1_490C = .text:0x0000490C; // type:function size:0x178 -fn_1_4A84 = .text:0x00004A84; // type:function size:0x8C -fn_1_4B10 = .text:0x00004B10; // type:function size:0x3D0 -fn_1_4EE0 = .text:0x00004EE0; // type:function size:0x50 -fn_1_4F30 = .text:0x00004F30; // type:function size:0x220 -fn_1_5150 = .text:0x00005150; // type:function size:0xA20 -fn_1_5B70 = .text:0x00005B70; // type:function size:0x14 -fn_1_5B84 = .text:0x00005B84; // type:function size:0x40 -fn_1_5BC4 = .text:0x00005BC4; // type:function size:0xE4 -fn_1_5CA8 = .text:0x00005CA8; // type:function size:0xD0 -fn_1_5D78 = .text:0x00005D78; // type:function size:0x130 -fn_1_5EA8 = .text:0x00005EA8; // type:function size:0x50 -fn_1_5EF8 = .text:0x00005EF8; // type:function size:0x14C -fn_1_6044 = .text:0x00006044; // type:function size:0x178 -fn_1_61BC = .text:0x000061BC; // type:function size:0x60 -fn_1_621C = .text:0x0000621C; // type:function size:0x68 -fn_1_6284 = .text:0x00006284; // type:function size:0xC8 -fn_1_634C = .text:0x0000634C; // type:function size:0xA8 -fn_1_63F4 = .text:0x000063F4; // type:function size:0x1DC -fn_1_65D0 = .text:0x000065D0; // type:function size:0x50 -fn_1_6620 = .text:0x00006620; // type:function size:0x120 -fn_1_6740 = .text:0x00006740; // type:function size:0x118 -fn_1_6858 = .text:0x00006858; // type:function size:0x28 -fn_1_6880 = .text:0x00006880; // type:function size:0x44 -fn_1_68C4 = .text:0x000068C4; // type:function size:0x15C -fn_1_6A20 = .text:0x00006A20; // type:function size:0x50 -fn_1_6A70 = .text:0x00006A70; // type:function size:0x38C -fn_1_6DFC = .text:0x00006DFC; // type:function size:0x410 -fn_1_720C = .text:0x0000720C; // type:function size:0xA8 -fn_1_72B4 = .text:0x000072B4; // type:function size:0xB0 -fn_1_7364 = .text:0x00007364; // type:function size:0xB4 -fn_1_7418 = .text:0x00007418; // type:function size:0x1B0 -fn_1_75C8 = .text:0x000075C8; // type:function size:0x20 -fn_1_75E8 = .text:0x000075E8; // type:function size:0x4 -fn_1_75EC = .text:0x000075EC; // type:function size:0xC -fn_1_75F8 = .text:0x000075F8; // type:function size:0x38 -fn_1_7630 = .text:0x00007630; // type:function size:0x118 -fn_1_7748 = .text:0x00007748; // type:function size:0x250 -fn_1_7998 = .text:0x00007998; // type:function size:0x46C -fn_1_7E04 = .text:0x00007E04; // type:function size:0x314 -fn_1_8118 = .text:0x00008118; // type:function size:0x7D8 -fn_1_88F0 = .text:0x000088F0; // type:function size:0x55C -fn_1_8E4C = .text:0x00008E4C; // type:function size:0x38 -fn_1_8E84 = .text:0x00008E84; // type:function size:0x2E8 -fn_1_916C = .text:0x0000916C; // type:function size:0x100 -fn_1_926C = .text:0x0000926C; // type:function size:0x314 -fn_1_9580 = .text:0x00009580; // type:function size:0x1D8 -fn_1_9758 = .text:0x00009758; // type:function size:0x7C -fn_1_97D4 = .text:0x000097D4; // type:function size:0x54 -fn_1_9828 = .text:0x00009828; // type:function size:0x7C -fn_1_98A4 = .text:0x000098A4; // type:function size:0x7C -fn_1_9920 = .text:0x00009920; // type:function size:0x78 -fn_1_9998 = .text:0x00009998; // type:function size:0x12C +fn_1_DB8 = .text:0x00000DB0; // type:function size:0x60 +fn_1_E18 = .text:0x00000E10; // type:function size:0xA0 +fn_1_EB8 = .text:0x00000EB0; // type:function size:0x14C +fn_1_1004 = .text:0x00000FFC; // type:function size:0x178 +fn_1_117C = .text:0x00001174; // type:function size:0x70 +fn_1_11EC = .text:0x000011E4; // type:function size:0x70 +fn_1_125C = .text:0x00001254; // type:function size:0x49C +fn_1_16F8 = .text:0x000016F0; // type:function size:0x13F4 +fn_1_2AC8 = .text:0x00002AE4; // type:function size:0x14 +fn_1_2ADC = .text:0x00002AF8; // type:function size:0x98 +fn_1_2B74 = .text:0x00002B90; // type:function size:0x368 +fn_1_2EDC = .text:0x00002EF8; // type:function size:0x80 +fn_1_2F5C = .text:0x00002F78; // type:function size:0x6F8 +fn_1_3654 = .text:0x00003670; // type:function size:0x70 +fn_1_36C4 = .text:0x000036E0; // type:function size:0x50 +fn_1_3714 = .text:0x00003730; // type:function size:0x7E8 +fn_1_3EFC = .text:0x00003F18; // type:function size:0x700 +fn_1_45FC = .text:0x00004618; // type:function size:0x48 +fn_1_4644 = .text:0x00004660; // type:function size:0x60 +fn_1_46A4 = .text:0x000046C0; // type:function size:0x94 +fn_1_4738 = .text:0x00004754; // type:function size:0x15C +fn_1_4894 = .text:0x000048B0; // type:function size:0x5C +fn_1_48F0 = .text:0x0000490C; // type:function size:0x178 +fn_1_4A68 = .text:0x00004A84; // type:function size:0x8C +fn_1_4AF4 = .text:0x00004B10; // type:function size:0x3D0 +fn_1_4EC4 = .text:0x00004EE0; // type:function size:0x50 +fn_1_4F14 = .text:0x00004F30; // type:function size:0x220 +fn_1_5134 = .text:0x00005150; // type:function size:0xA20 +fn_1_5B34 = .text:0x00005B70; // type:function size:0x14 +fn_1_5B48 = .text:0x00005B84; // type:function size:0x40 +fn_1_5B88 = .text:0x00005BC4; // type:function size:0xE4 +fn_1_5C6C = .text:0x00005CA8; // type:function size:0xD0 +fn_1_5D3C = .text:0x00005D78; // type:function size:0x130 +fn_1_5E6C = .text:0x00005EA8; // type:function size:0x50 +fn_1_5EBC = .text:0x00005EF8; // type:function size:0x14C +fn_1_6008 = .text:0x00006044; // type:function size:0x178 +fn_1_6180 = .text:0x000061BC; // type:function size:0x60 +fn_1_61E0 = .text:0x0000621C; // type:function size:0x68 +fn_1_6248 = .text:0x00006284; // type:function size:0xC8 +fn_1_6310 = .text:0x0000634C; // type:function size:0xA8 +fn_1_63B8 = .text:0x000063F4; // type:function size:0x1DC +fn_1_6594 = .text:0x000065D0; // type:function size:0x50 +fn_1_65E4 = .text:0x00006620; // type:function size:0x120 +fn_1_6704 = .text:0x00006740; // type:function size:0x118 +fn_1_681C = .text:0x00006858; // type:function size:0x28 +fn_1_6844 = .text:0x00006880; // type:function size:0x44 +fn_1_6888 = .text:0x000068C4; // type:function size:0x15C +fn_1_69E4 = .text:0x00006A20; // type:function size:0x50 +fn_1_6A34 = .text:0x00006A70; // type:function size:0x38C +fn_1_6DC0 = .text:0x00006DFC; // type:function size:0x410 +fn_1_71D0 = .text:0x0000720C; // type:function size:0xA8 +fn_1_7278 = .text:0x000072B4; // type:function size:0xB0 +fn_1_7328 = .text:0x00007364; // type:function size:0xB4 +fn_1_73DC = .text:0x00007418; // type:function size:0x1B0 +fn_1_758C = .text:0x000075C8; // type:function size:0x20 +fn_1_75AC = .text:0x000075E8; // type:function size:0x4 +fn_1_75B0 = .text:0x000075EC; // type:function size:0xC +fn_1_75BC = .text:0x000075F8; // type:function size:0x38 +fn_1_75F4 = .text:0x00007630; // type:function size:0x118 +fn_1_770C = .text:0x00007748; // type:function size:0x250 +fn_1_795C = .text:0x00007998; // type:function size:0x46C +fn_1_7DC8 = .text:0x00007E04; // type:function size:0x314 +fn_1_80DC = .text:0x00008118; // type:function size:0x7D8 +fn_1_88B4 = .text:0x000088F0; // type:function size:0x55C +fn_1_8E10 = .text:0x00008E4C; // type:function size:0x38 +fn_1_8E48 = .text:0x00008E84; // type:function size:0x2E8 +fn_1_9130 = .text:0x0000916C; // type:function size:0x100 +fn_1_9230 = .text:0x0000926C; // type:function size:0x314 +fn_1_9544 = .text:0x00009580; // type:function size:0x1D8 +fn_1_971C = .text:0x00009758; // type:function size:0x7C +fn_1_9798 = .text:0x000097D4; // type:function size:0x54 +fn_1_97EC = .text:0x00009828; // type:function size:0x7C +fn_1_9868 = .text:0x000098A4; // type:function size:0x7C +fn_1_98E4 = .text:0x00009920; // type:function size:0x78 +fn_1_995C = .text:0x00009998; // type:function size:0x12C _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:0x8 data:4byte -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -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:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -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_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:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size: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_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -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:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x1 data:byte +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:0x8 scope:local data:4byte +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_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:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 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_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:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size: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_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +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:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x1 scope:local data:byte lbl_1_data_0 = .data:0x00000000; // type:object size:0x30 lbl_1_data_30 = .data:0x00000030; // type:object size:0xC lbl_1_data_3C = .data:0x0000003C; // type:object size:0xC @@ -173,7 +173,7 @@ lbl_1_data_4C = .data:0x0000004C; // type:object size:0x54 data:float lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC lbl_1_data_B8 = .data:0x000000B8; // type:object size:0xC -lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x24 +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x24 scope:local data:string jumptable_1_data_E8 = .data:0x000000E8; // type:object size:0x24 scope:local lbl_1_data_10C = .data:0x0000010C; // type:object size:0x4 lbl_1_data_110 = .data:0x00000110; // type:object size:0x60 data:4byte diff --git a/configure.py b/configure.py index 54bb4561..6b56c797 100644 --- a/configure.py +++ b/configure.py @@ -1065,14 +1065,14 @@ config.libs = [ Rel( "m425Dll", # The Great Deflate objects={ - Object(NonMatching, "REL/m425Dll/main.c"), - Object(NonMatching, "REL/m425Dll/thwomp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m425Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m425Dll/thwomp.c"), }, ), Rel( "m426Dll", # Revers-a-Bomb objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m426Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m426Dll/main.c"), }, ), Rel( @@ -1086,9 +1086,9 @@ config.libs = [ Rel( "m428Dll", # Cliffhangers objects={ - Object(NonMatching, "REL/m428Dll/main.c"), - Object(NonMatching, "REL/m428Dll/map.c"), - Object(NonMatching, "REL/m428Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m428Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m428Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m428Dll/player.c"), }, ), Rel( @@ -1396,10 +1396,10 @@ config.libs = [ Rel( "mstory3Dll", objects={ - Object(NonMatching, "REL/mstory3Dll/main.c"), - Object(NonMatching, "REL/mstory3Dll/result_seq.c"), - Object(NonMatching, "REL/mstory3Dll/result.c"), - Object(NonMatching, "REL/mstory3Dll/win_effect.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory3Dll/main.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory3Dll/result_seq.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory3Dll/result.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory3Dll/win_effect.c"), }, ), Rel( diff --git a/include/REL/m428Dll.h b/include/REL/m428Dll.h new file mode 100644 index 00000000..567c3f99 --- /dev/null +++ b/include/REL/m428Dll.h @@ -0,0 +1,34 @@ +#ifndef M428DLL_H +#define M428DLL_H + +#include "game/object.h" + +s32 fn_1_26E0(void); +void fn_1_4170(s16 arg0, s32 arg1); + +void fn_1_4324(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3); +void fn_1_43C8(Process *arg0); +void fn_1_4630(void); +u8 fn_1_9990(Vec *arg0); +void fn_1_9A30(u8 arg0, float arg8, Vec *arg1, Vec *arg2, float arg9); +void fn_1_9ADC(u8 arg0); +void fn_1_9DE8(u8 arg0, float arg8, s8 arg1); +void fn_1_9EA8(u8 arg0); + +omObjData *fn_1_9F5C(Process *process); +void fn_1_A0B0(void); +s32 fn_1_F354(void); +s32 fn_1_F3BC(s32 arg0); +void fn_1_F414(s32 arg0); +void fn_1_F454(s32 arg0, s32 arg1); +void fn_1_F46C(s32 arg0, s32 arg1); +void fn_1_F4B4(s32 arg0, s32 arg1, float arg8); +s32 fn_1_F4E8(s32 arg0); +void fn_1_116C4(s32 arg0, s32 arg1); +void fn_1_11754(s32 arg0, float arg8); +void fn_1_11798(s32 arg0); + +extern s16 lbl_1_bss_50[4]; +extern s32 lbl_1_bss_18; + +#endif diff --git a/include/REL/m433Dll.h b/include/REL/m433Dll.h index 5028045a..fc0407db 100644 --- a/include/REL/m433Dll.h +++ b/include/REL/m433Dll.h @@ -1,5 +1,5 @@ -#ifndef M4303LL_H -#define M4303LL_H +#ifndef M430DLL_H +#define M430DLL_H #include "game/object.h" diff --git a/include/REL/mstory3Dll.h b/include/REL/mstory3Dll.h new file mode 100755 index 00000000..8ca3ed77 --- /dev/null +++ b/include/REL/mstory3Dll.h @@ -0,0 +1,99 @@ +#ifndef MSTORY3DLL_H +#define MSTORY3DLL_H + +#include "game/object.h" +#include "game/process.h" + +#include "dolphin.h" + +// For future reference: seems to be identical to StructFn352C in mstoryDll. +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ char unk30[4]; +} StructFn352C; // Size 0x34 + +// For future reference: seems to be identical to StructBss4 in mstoryDll. +typedef struct { + /* 0x00 */ void (*unk00)(void); + /* 0x04 */ void (*unk04)(void); + /* 0x08 */ Vec unk08; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ Vec unk20; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ s32 unk40; +} StructBss4; // Size 0x44 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ void (*unk04)(omObjData*, ...); + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ char unk20[8]; +} StructBss1530; // Size 0x28 + +// main.c +float fn_1_5D4(float arg8, float arg9, float argA, float argB); +float fn_1_5FC(float arg8, float arg9, float argA); +float fn_1_61C(float arg0, float arg1, float arg2, float arg3); +float fn_1_6F4(float arg0, float arg1, float arg2, float arg3); +float fn_1_7BC(float arg0, float arg1, float arg2, float arg3); +float fn_1_878(float arg0, float arg1, float arg2, float arg3); +void fn_1_938(void); +void fn_1_958(s32 arg0); +void fn_1_9A0(void); +void fn_1_9C4(void); +s32 fn_1_1624(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +s32 fn_1_1834(u32 arg0, s32 arg1); +void fn_1_1A24(s32 arg0); +void fn_1_1AB0(s32 arg0); +void fn_1_1B18(s32 arg0, s32 arg1); +void fn_1_1D44(s32 arg0, s32 arg1); +void fn_1_1E28(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_2280(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_2310(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_2420(s32 arg0, s32 arg1); +void fn_1_2834(void (*arg0)(void)); +void fn_1_290C(Process* arg0, void (*arg1)(void)); +void fn_1_2DD4(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5); +void fn_1_35C8(s16 arg0); +void fn_1_3650(StructFn352C* arg0, s32 arg1); +s32 fn_1_36E4(void); +s32 fn_1_373C(void); +s32 fn_1_37C8(s32 arg0); +void fn_1_38B4(void); +void fn_1_39B4(StructBss4* arg0); +void fn_1_4400(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4); +void fn_1_4CC0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3); +void fn_1_514C(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4); + +// result_seq.c +void fn_1_6E34(Process* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); + +// result.c +void fn_1_157F0(Process* arg0, s32 arg1, s32 arg2, s32 arg3); + +extern StructBss4 lbl_1_bss_4; +extern s32 lbl_1_data_0[][4]; + +#endif diff --git a/include/dolphin/gx/GXTransform.h b/include/dolphin/gx/GXTransform.h index bc3bf107..70aa877c 100644 --- a/include/dolphin/gx/GXTransform.h +++ b/include/dolphin/gx/GXTransform.h @@ -20,6 +20,8 @@ void GXLoadPosMtxImm(f32 mtx[3][4], u32 id); void GXLoadNrmMtxImm(f32 mtx[3][4], u32 id); void GXLoadTexMtxImm(f32 mtx[][4], u32 id, GXTexMtxType type); #endif +void GXProject(f32 x, f32 y, f32 z, const f32 mtx[3][4], const f32 *pm, const f32 *vp, f32 *sx, f32 *sy, f32 *sz); +void GXGetViewportv(f32 *vp); void GXSetViewport(f32 left, f32 top, f32 wd, f32 ht, f32 nearz, f32 farz); void GXSetCurrentMtx(u32 id); void GXSetViewportJitter(f32 left, f32 top, f32 wd, f32 ht, f32 nearz, f32 farz, u32 field); diff --git a/include/game/gamework.h b/include/game/gamework.h index 869cfad1..722ba147 100644 --- a/include/game/gamework.h +++ b/include/game/gamework.h @@ -15,10 +15,10 @@ void GWCharColorGet(s32 character, GXColor *color); void GWBoardPlayCountSet(s32 board, u8 value); void GWBoardPlayCountAdd(s32 board, u8 value); u8 GWBoardPlayCountGet(s32 board); -void GWBoardMaxStarsSet(s32 board, s32 value); -u16 GWBoardMaxStarsGet(s32 board); +void GWBoardMaxStarsSet(s32 board, s16 value); +s32 GWBoardMaxStarsGet(s32 board); void GWBoardMaxCoinsSet(s32 board, s32 value); -u16 GWBoardMaxCoinsGet(s32 board); +s32 GWBoardMaxCoinsGet(s32 board); s32 GWBoardWinCountInc(s32 character, s32 board); s32 GWBoardWinCountGet(s32 character, s32 board); void GWBoardWinCountSet(s32 character, s32 board, s32 value); diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index 0e2c8254..b3615e85 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -325,6 +325,11 @@ static inline s32 GWPlayerTeamGet(s32 player) return GWPlayer[player].team; } +static inline s32 GWPlayerHandicapGet(s32 player) +{ + return GWPlayer[player].handicap; +} + static inline s32 GWLuckyValueGet(void) { return GWSystem.lucky_value; diff --git a/include/game/msm.h b/include/game/msm.h index e7ae2ae2..e5106677 100644 --- a/include/game/msm.h +++ b/include/game/msm.h @@ -3,6 +3,7 @@ #include "dolphin.h" #include "musyx/musyx.h" +#include "game/msm_data.h" #define MSM_SEPARAM_NONE 0 #define MSM_SEPARAM_VOL (1 << 0) @@ -40,25 +41,24 @@ #define MSM_ERR_READFAIL -2 #define MSM_ERR_OUTOFMEM -10 #define MSM_ERR_OUTOFAMEM -20 -#define MSM_ERR_INITFAIL -20 -#define MSM_ERR_1E -30 +#define MSM_ERR_INITFAIL -30 #define MSM_ERR_INVALID_AUXPARAM -31 -#define MSM_ERR_20 -32 +#define MSM_ERR_GRP_FAILPUSH -32 #define MSM_ERR_PLAYFAIL -33 -#define MSM_ERR_22 -34 +#define MSM_LISTENER_NO_UPDATA -34 #define MSM_ERR_STREAMALLOC_FAIL -35 #define MSM_ERR_INSTALLED -36 #define MSM_ERR_64 -100 -#define MSM_ERR_65 -101 +#define MSM_ERR_STACK_OVERFLOW -101 #define MSM_ERR_GRP_NOTLOADED -103 -#define MSM_ERR_6E -110 -#define MSM_ERR_6F -111 +#define MSM_ERR_CHANLIMIT -110 +#define MSM_ERR_INVALIDSE -111 #define MSM_ERR_INVALIDID -120 #define MSM_ERR_INVALIDFILE -121 #define MSM_ERR_REMOVEDID -122 #define MSM_ERR_MUSGRP_NOTLOADED -123 #define MSM_ERR_OUTOFMUS -130 -#define MSM_ERR_8C -140 +#define MSM_ERR_RANGE_STREAM -140 #define MSM_VOL_MAX 127 #define MSM_PAN_LEFT 32 @@ -132,19 +132,6 @@ typedef struct msmSeParam_s { Vec pos; } MSM_SEPARAM; -typedef struct msmSe_s { - u16 groupId; - u16 fxId; - s8 vol; - s8 pan; - s16 pitchBend; - u8 span; - u8 reverb; - u8 chorus; - s8 doppler; - s8 comp; - u8 pad[3]; -} MSMSE; typedef struct msmSeListener_s { s32 flag; @@ -173,10 +160,11 @@ typedef struct msmStreamParam_s { } MSM_STREAMPARAM; s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram); -s32 msmSysSetOutputMode(SND_OUTPUTMODE mode); +BOOL msmSysSetOutputMode(SND_OUTPUTMODE mode); s32 msmSysDelGroupAll(void); s32 msmSysGetSampSize(BOOL baseGrp); s32 msmSysDelGroupBase(s32 grpNum); +s32 msmSysSetAux(s32 auxA, s32 auxB); s32 msmSeSetParam(int seNo, MSM_SEPARAM *param); int msmSePlay(int seId, MSM_SEPARAM *param); @@ -190,6 +178,8 @@ void msmSeDelListener(void); s32 msmSeGetStatus(int seNo); s32 msmSeGetNumPlay(BOOL baseGrp); s32 msmSeGetEntryID(s32 seId, int *seNo); +void msmSeSetMasterVolume(s32 vol); +MSM_SE* msmSeGetIndexPtr(s32 seId); int msmMusPlay(int musId, MSM_MUSPARAM *musParam); s32 msmMusStop(int musNo, s32 speed); @@ -199,6 +189,8 @@ s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl); void msmMusStopAll(BOOL checkGrp, s32 speed); s32 msmMusGetStatus(int musNo); s32 msmMusGetNumPlay(BOOL baseGrp); +s32 msmMusSetParam(s32 musNo, MSM_MUSPARAM *param); +void msmMusSetMasterVolume(s32 vol); int msmStreamPlay(int streamId, MSM_STREAMPARAM *streamParam); s32 msmStreamStop(int streamNo, s32 speed); @@ -207,5 +199,7 @@ s32 msmStreamPause(int streamNo, BOOL pause, s32 speed); void msmStreamStopAll(s32 speed); s32 msmStreamGetStatus(int streamNo); +void msmStreamSetMasterVolume(s32 arg0); +void msmStreamSetOutputMode(s32 outputMode); #endif diff --git a/include/game/msm_data.h b/include/game/msm_data.h new file mode 100644 index 00000000..0c282ffb --- /dev/null +++ b/include/game/msm_data.h @@ -0,0 +1,185 @@ +#ifndef _MSM_DATA_H +#define _MSM_DATA_H + +#include "dolphin.h" +#include "musyx/musyx.h" + +#define MSM_STREAM_FLAG_STEREO 0x1 +#define MSM_STREAM_FLAG_LOOP 0x2 + +#define MSM_FILE_VERSION 2 +#define MSM_PDT_FILE_VERSION 1 + +typedef struct MSMHeader_s { + s32 magic; + s32 version; + s32 endOfs; + s32 endSize; + s32 infoOfs; + u32 infoSize; + s32 auxParamOfs; + u32 auxParamSize; + s32 grpInfoOfs; + s32 grpInfoSize; + s32 musOfs; + s32 musSize; + s32 seOfs; + s32 seSize; + s32 grpDataOfs; + s32 grpDataSize; + s32 sampOfs; + s32 sampSize; + s32 dummyMusOfs; + s32 dummyMusSize; + s32 grpSetOfs; + s32 grpSetSize; + s32 pad[2]; +} MSM_HEADER; // sizeof 0x60 + +typedef struct MSMInfo_s { + s8 voices; + s8 music; + s8 sfx; + s8 grpMax; + s16 musMax; + s16 seMax; + s8 musChanMax; + s8 stackDepthA; + s8 stackDepthB; + s8 surroundF; + s8 unkC[2]; + s8 auxParamA; + s8 auxParamB; + s32 minMem; + s32 aramSize; + s32 grpBufSizeA; + s32 grpBufSizeB; + s32 dummyMusSize; + s32 unk24; + s8 baseGrpNum; + s8 baseGrp[23]; +} MSM_INFO; + +typedef struct { + u32 tempDisableFX; + f32 coloration; + f32 mix; + f32 time; + f32 damping; + f32 preDelay; + f32 crosstalk; +} MSM_AUXPARAM_REVERBHI; + +typedef struct { + u32 tempDisableFX; + f32 coloration; + f32 mix; + f32 time; + f32 damping; + f32 preDelay; + f32 crosstalk; +} MSM_AUXPARAM_REVERBSTD; + +typedef struct { + u32 baseDelay; + u32 variation; + u32 period; +} MSM_AUXPARAM_CHORUS; + +typedef struct { + u32 delay[3]; + u32 feedback[3]; + u32 output[3]; +} MSM_AUXPARAM_DELAY; + +typedef struct MSMAuxParam_s { + s8 type; + u8 pad[3]; + union { + MSM_AUXPARAM_REVERBHI revHi; + MSM_AUXPARAM_REVERBSTD revStd; + MSM_AUXPARAM_CHORUS chorus; + MSM_AUXPARAM_DELAY delay; + }; +} MSM_AUXPARAM; + +typedef struct MSMSe_s { + SND_GROUPID gid; + SND_FXID fxId; + s8 vol; + s8 pan; + s16 pitchBend; + u8 span; + u8 reverb; + u8 chorus; + s8 emitterF; + s8 emiComp; + u8 pad[3]; +} MSM_SE; + +typedef struct MSMMus_s { + SND_GROUPID sgid; + SND_SONGID sid; + s32 songOfs; + s32 songSize; + s8 songGrp; + s8 vol; + u8 pad[2]; +} MSM_MUS; // Size 0x10 + +typedef struct MSMGrpHead_s { + s32 poolOfs; + s32 projOfs; + s32 sdirOfs; + s32 sngOfs; +} MSM_GRP_HEAD; + +typedef struct MSMGrpInfo_s { + SND_GROUPID gid; + s8 stackNo; + s8 subGrpId; + s32 dataOfs; + s32 dataSize; + s32 sampOfs; + s32 sampSize; + u8 pad[12]; +} MSM_GRP_INFO; + +typedef struct MSMGrpSet_s { + s8 numGrpSet; + s8 grpSetW; + s8 data[1]; +} MSM_GRP_SET; + +typedef struct MSMStreamHeader_s { + s16 version; + s16 streamMax; + s32 chanMax; + s32 sampleFrq; + s32 maxBufs; + u32 streamPackListOfs; + u32 adpcmParamOfs; + u32 streamPackOfs; + u32 sampleOfs; +} MSM_STREAM_HEADER; + +typedef struct MSMStream_s { + s32 sampleOfs; + s16 adpcmParamIdx; + u16 pad; +} MSM_STREAM; + +typedef struct MSMStreamPack_s { + s8 flag; + s8 vol; + s8 pan; + s8 span; + s8 auxA; + s8 auxB; + u16 frq; + u32 loopOfsEnd; + u32 loopOfsStart; + MSM_STREAM stream[2]; +} MSM_STREAM_PACK; // Size unknown + +#endif diff --git a/include/msm/msmmem.h b/include/msm/msmmem.h index 1acc500a..30d73f75 100644 --- a/include/msm/msmmem.h +++ b/include/msm/msmmem.h @@ -3,8 +3,8 @@ #include "dolphin/types.h" -void msmMemFree(void *); -void *msmMemAlloc(u32); -void msmMemInit(void *, u32); +void msmMemFree(void *ptr); +void *msmMemAlloc(u32 sze); +void msmMemInit(void *ptr, u32 size); #endif diff --git a/include/msm/msmmus.h b/include/msm/msmmus.h index 6428b067..586af22c 100644 --- a/include/msm/msmmus.h +++ b/include/msm/msmmus.h @@ -16,6 +16,6 @@ s32 msmMusPause(int musNo, BOOL pause, s32 speed); void msmMusStopAll(BOOL checkGrp, s32 speed); s32 msmMusStop(int musNo, s32 speed); int msmMusPlay(int musId, MSM_MUSPARAM* musParam); -s32 msmMusInit(sysData* arg0, DVDFileInfo* arg1); +s32 msmMusInit(MSM_SYS* arg0, DVDFileInfo* arg1); #endif diff --git a/include/msm/msmse.h b/include/msm/msmse.h index feb1e462..b765a771 100644 --- a/include/msm/msmse.h +++ b/include/msm/msmse.h @@ -5,7 +5,7 @@ #include "msm/msmsys.h" void msmSePeriodicProc(void); -MSMSE* msmSeGetIndexPtr(s32 arg0); +MSM_SE* msmSeGetIndexPtr(s32 arg0); void msmSeDelListener(void); s32 msmSeUpdataListener(Vec* pos, Vec* heading); s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_SELISTENER* listener); @@ -18,6 +18,6 @@ void msmSePauseAll(BOOL pause, s32 speed); void msmSeStopAll(BOOL checkGrp, s32 speed); s32 msmSeStop(int seNo, s32 speed); int msmSePlay(int seId, MSM_SEPARAM* param); -s32 msmSeInit(sysData* arg0, DVDFileInfo* arg1); +s32 msmSeInit(MSM_SYS* arg0, DVDFileInfo* arg1); #endif diff --git a/include/msm/msmstream.h b/include/msm/msmstream.h index fb1bd9cd..b86fcaad 100644 --- a/include/msm/msmstream.h +++ b/include/msm/msmstream.h @@ -13,10 +13,6 @@ void msmStreamSetOutputMode(s32 arg0); void msmStreamAmemFree(void); s32 msmStreamAmemAlloc(void); s32 msmStreamInit(char* arg0); -void msmStreamPauseOff(s32 arg0); -void msmStreamPauseOn(s32 streamNo, s32 arg1); -s32 msmStreamPackStartStereo(s32 arg0, MSM_STREAMPARAM* arg1, s32 arg2); -s32 msmStreamPackStartMono(s32 arg0, MSM_STREAMPARAM* arg1, s32 arg2); -void msmStreamSlotOff(s32 streamNo); + #endif diff --git a/include/msm/msmsys.h b/include/msm/msmsys.h index 3ed5e134..6a55a4c6 100755 --- a/include/msm/msmsys.h +++ b/include/msm/msmsys.h @@ -5,167 +5,63 @@ #include "dolphin.h" -typedef struct { - u32 tempDisableFX; - f32 coloration; - f32 mix; - f32 time; - f32 damping; - f32 preDelay; - f32 crosstalk; -} SubStructRev; +#define MSM_AUX_REVERBHI 0 +#define MSM_AUX_REVERBSTD 1 +#define MSM_AUX_CHORUS 2 +#define MSM_AUX_DELAY 3 -typedef struct { - u32 baseDelay; - u32 variation; - u32 period; -} SubStructCh; - -typedef struct { - u32 delay[3]; - u32 feedback[3]; - u32 output[3]; -} SubDelay; - -typedef struct _unkSubStruct { - s8 unk0; - union { - SubStructRev rev; - SubStructCh ch; - SubDelay delay; - }; -} unkSubStruct; +#define MSM_AUXNO_NULL -2 +#define MSM_AUXNO_UNSET -1 typedef union { SND_AUX_REVERBHI revHi; SND_AUX_REVERBSTD revStd; - SND_AUX_CHORUS ch; + SND_AUX_CHORUS chorus; SND_AUX_DELAY delay; -} UnkSndAuxUnion; // Size 0x1E0 +} MSM_AUX; // Size 0x1E0 -typedef struct _unkSubStruct3 { - char unk[0x4]; - s32 unk4; - char unk8[0x8]; - s32 unk10; // offset - u32 unk14; // length - s32 unk18; // offset - u32 unk1C; // length - s32 unk20; - s32 unk24; - s32 unk28; - s32 unk2C; - s32 unk30; - s32 unk34; - s32 unk38; - char unk3C[4]; - s32 unk40; - char unk44[4]; - s32 unk48; - char unk4C[4]; - s32 unk50; - s32 unk54; - char unk58[8]; -} unkSubStruct3; // sizeof 0x60 +typedef struct MSMGrpWork_s { + s8 grpId; + s8 baseGrpF; + u32 num; + void *buf; +} MSM_GRP_STACK; -typedef struct _unkStruct3 { - s32 unk0; - s32 unk4; - s32 unk8; -} unkStruct3; - -typedef struct _sndInitData { - s8 unk0; - s8 unk1; - s8 unk2; - s8 unk3; - s16 unk4; - s16 unk6; - s8 unk8; - s8 unk9; - s8 unkA; - s8 unkB; - char unkC[2]; - s8 unkE; - s8 unkF; - u32 unk10; - s32 unk14; - s32 unk18; - s32 unk1C; - s32 unk20; - char unk24[4]; - s8 unk28; - s8 unk29[10]; // size unknown -} sndInitData; - -typedef struct { - /* 0x00 */ s8 unk00; - /* 0x01 */ s8 unk01; - /* 0x02 */ char unk02[2]; - /* 0x04 */ u32 unk04; - /* 0x08 */ void *unk08; -} UnkStructSys43C; // Size 0xC - -typedef struct _unkStruct4 { - SND_GROUPID unk0; - s8 unk2; - s8 unk3; - s32 unk4; - s32 unk8; - s32 unkC; - s32 unk10; - char unk14[0xC]; -} unkStruct4; // Size 0x20 - -typedef struct { - /* 0x00 */ s8 unk00; - /* 0x01 */ s8 unk01; - /* 0x02 */ s8 unk02[1]; // unknown array length -} UnkSys3F0Struct; // Size unknown - -typedef struct _sysData { - s32 unk0; - s8 unk4; +typedef struct MSMSys_s { + s32 msmEntryNum; + s8 outputMode; s8 unk5; s8 unk6; - s8 unk7; - s32 unk8; - unkSubStruct3 *unkC; - sndInitData *unk10; - unkSubStruct *unk14; - s8 unk18[2]; - s8 unk1A; - s8 unk1B; - UnkSndAuxUnion unk1C[2]; // 0: userA, 1: userB - s8 unk3DC; - char unk3DD[3]; - s32 unk3E0; - u32 unk3E4; - u32 unk3E8; - unkStruct4 *unk3EC; - UnkSys3F0Struct *unk3F0; - s8 unk3F4; - unkStruct3 *unk3F8[1]; // unknown array length - char unk3FC[0x38]; - s8 unk434; - u8 unk435; - s8 unk436; - char unk437[1]; - void *unk438; - UnkStructSys43C unk43C[1]; // unknown array length - char unk448[0x24]; - s8 unk46C; - u8 unk46D; - s8 unk46E; - char unk46F[1]; - void *unk470; - UnkStructSys43C unk474[1]; // unknown array length - char unk480[0x6C]; - s32 unk4EC; - BOOL unk4F0; - AIDCallback unk4F4; - s32 unk4F8; -} sysData; + s8 arInitF; + s32 aramP; + MSM_HEADER *header; + MSM_INFO *info; + MSM_AUXPARAM *auxParam; + s8 auxParamNo[2]; + MSM_AUX aux[2]; // 0: userA, 1: userB + s8 grpMax; + s32 grpNum; + u32 sampSize; + u32 sampSizeBase; + MSM_GRP_INFO *grpInfo; + MSM_GRP_SET *grpSet; + s8 baseGrpNum; + MSM_GRP_HEAD *grpData[15]; + s8 grpStackAMax; + u8 grpStackADepth; + s8 grpStackAOfs; + void *grpBufA; + MSM_GRP_STACK grpStackA[4]; + s8 grpStackBMax; + u8 grpStackBDepth; + s8 grpStackBOfs; + void *grpBufB; + MSM_GRP_STACK grpStackB[10]; + s32 irqDepth; + BOOL irqState; + AIDCallback oldAIDCallback; + s32 timer; +} MSM_SYS; s32 msmSysSearchGroupStack(s32 arg0, s32 arg1); s32 msmSysGroupInit(DVDFileInfo *arg0); @@ -176,8 +72,7 @@ void *msmSysGetGroupDataPtr(s32 arg0); BOOL msmSysCheckLoadGroupID(s32 arg0); void msmSysRegularProc(void); s32 msmSysGetOutputMode(void); -s32 msmSysSetOutputMode(SND_OUTPUTMODE mode); -s32 msmSysSetAux(s32 arg0, s32 arg1); +BOOL msmSysSetOutputMode(SND_OUTPUTMODE mode); s32 msmSysGetSampSize(BOOL baseGrp); s32 msmSysDelGroupAll(void); s32 msmSysDelGroupBase(s32 grpNum); diff --git a/src/REL/m402Dll/main.c b/src/REL/m402Dll/main.c index d604cf04..e4044763 100755 --- a/src/REL/m402Dll/main.c +++ b/src/REL/m402Dll/main.c @@ -579,7 +579,7 @@ static void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) } temp_r31 = &Hu3DCamera[i]; C_MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); - PSMTXMultVec(sp1C, arg0, &sp10); + MTXMultVec(sp1C, arg0, &sp10); temp_f30 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * temp_r31->aspect; temp_f29 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)); temp_f28 = 0.9f * temp_r31->viewport_x; @@ -606,9 +606,9 @@ static void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; @@ -1425,9 +1425,9 @@ static void fn_1_70E4(omObjData *arg0) spC.y = 0.0f; spC.z = var_f27; temp_r31->unk24.z *= 0.92f; - PSMTXIdentity(sp18); + MTXIdentity(sp18); mtxRot(sp18, temp_r31->unk24.x, temp_r31->unk24.y, 0.0f); - PSMTXMultVec(sp18, &spC, &spC); + MTXMultVec(sp18, &spC, &spC); VECAdd(&spC, &temp_r31->unk00, &temp_r31->unk00); omSetTra(arg0, temp_r31->unk00.x, temp_r31->unk00.y, temp_r31->unk00.z); Hu3DModelTPLvlSet(arg0->model[0], temp_r31->unk30); diff --git a/src/REL/m403Dll/main.c b/src/REL/m403Dll/main.c index a1e3fc91..af675a31 100755 --- a/src/REL/m403Dll/main.c +++ b/src/REL/m403Dll/main.c @@ -1384,18 +1384,18 @@ static void fn_1_46E4(Mtx arg0, float arg1, float arg2, float arg3) Mtx sp8; if (arg3 != 0.0f) { - PSMTXRotRad(arg0, 'Z', MTXDegToRad(arg3)); + MTXRotRad(arg0, 'Z', MTXDegToRad(arg3)); } else { - PSMTXIdentity(arg0); + MTXIdentity(arg0); } if (arg1 != 0.0f) { - PSMTXRotRad(sp38, 'X', MTXDegToRad(arg1)); - PSMTXConcat(sp38, arg0, arg0); + MTXRotRad(sp38, 'X', MTXDegToRad(arg1)); + MTXConcat(sp38, arg0, arg0); } if (arg2 != 0.0f) { - PSMTXRotRad(sp8, 'Y', MTXDegToRad(arg2)); - PSMTXConcat(sp8, arg0, arg0); + MTXRotRad(sp8, 'Y', MTXDegToRad(arg2)); + MTXConcat(sp8, arg0, arg0); } } diff --git a/src/REL/m403Dll/scene.c b/src/REL/m403Dll/scene.c index e87fd648..b71d445f 100755 --- a/src/REL/m403Dll/scene.c +++ b/src/REL/m403Dll/scene.c @@ -307,12 +307,12 @@ static void fn_1_6ED8(omObjData *arg0) Mtx sp8; s32 i; - PSMTXTrans(sp38, arg0->trans.x, arg0->trans.y, arg0->trans.z); + MTXTrans(sp38, arg0->trans.x, arg0->trans.y, arg0->trans.z); mtxRot(sp8, arg0->rot.x, arg0->rot.y, arg0->rot.z); - PSMTXConcat(sp38, sp8, sp38); + MTXConcat(sp38, sp8, sp38); for (i = 0; i < 6; i++) { - PSMTXTrans(sp8, lbl_1_data_A88[i].x, lbl_1_data_A88[i].y, lbl_1_data_A88[i].z); - PSMTXConcat(sp38, sp8, sp8); + MTXTrans(sp8, lbl_1_data_A88[i].x, lbl_1_data_A88[i].y, lbl_1_data_A88[i].z); + MTXConcat(sp38, sp8, sp8); Hu3DModelPosSet(arg0->model[i + 1], sp8[0][3], sp8[1][3], sp8[2][3]); Hu3DModelRotSet(arg0->model[i + 1], arg0->rot.x, arg0->rot.y, arg0->rot.z); } @@ -598,16 +598,16 @@ static s32 fn_1_7D04(float arg0, float arg1, Vec *arg2) temp_r28 -= 6; fn_1_7BD4(temp_r21, &sp10); sp10 = lbl_1_data_A88[temp_r21]; - PSMTXTrans(sp4C, temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); + MTXTrans(sp4C, temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); mtxRot(sp1C, temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z); - PSMTXConcat(sp4C, sp1C, sp4C); - PSMTXTrans(sp1C, sp10.x, sp10.y, sp10.z); - PSMTXConcat(sp4C, sp1C, sp4C); + MTXConcat(sp4C, sp1C, sp4C); + MTXTrans(sp1C, sp10.x, sp10.y, sp10.z); + MTXConcat(sp4C, sp1C, sp4C); var_r30 = lbl_1_data_AFC[temp_r28]; temp_r23 = lbl_1_data_B14[temp_r28]; for (i = 0; i < temp_r23; i++) { - PSMTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z); - PSMTXConcat(sp4C, sp1C, sp1C); + MTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z); + MTXConcat(sp4C, sp1C, sp1C); arg2->x = sp1C[0][3]; arg2->y = sp1C[1][3]; arg2->z = sp1C[2][3]; @@ -703,17 +703,17 @@ s32 fn_1_8470(Vec *arg0) temp_r30 = lbl_1_bss_9C[lbl_1_bss_94]; temp_r27 = temp_r30->data; var_r25 = fn_1_8274(temp_r27, sp8); - PSMTXTrans(sp50, temp_r30->trans.x, temp_r30->trans.y, temp_r30->trans.z); + MTXTrans(sp50, temp_r30->trans.x, temp_r30->trans.y, temp_r30->trans.z); mtxRot(sp20, temp_r30->rot.x, temp_r30->rot.y, temp_r30->rot.z); - PSMTXConcat(sp50, sp20, sp50); + MTXConcat(sp50, sp20, sp50); for (i = 0; i < var_r25; i++) { fn_1_7BD4(sp8[i], arg0); temp_r26 = fn_1_7C20(temp_r27, sp8[i]) - 6; arg0->x += lbl_1_data_B2C[temp_r26].x; arg0->y += lbl_1_data_B2C[temp_r26].y; arg0->z += lbl_1_data_B2C[temp_r26].z; - PSMTXTrans(sp20, arg0->x, arg0->y, arg0->z); - PSMTXConcat(sp50, sp20, sp20); + MTXTrans(sp20, arg0->x, arg0->y, arg0->z); + MTXConcat(sp50, sp20, sp20); arg0->x = sp20[0][3]; arg0->y = sp20[1][3]; arg0->z = sp20[2][3]; diff --git a/src/REL/m405Dll/main.c b/src/REL/m405Dll/main.c index 610db76f..0eade3f2 100755 --- a/src/REL/m405Dll/main.c +++ b/src/REL/m405Dll/main.c @@ -571,7 +571,7 @@ void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) } temp_r31 = &Hu3DCamera[i]; C_MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); - PSMTXMultVec(sp1C, arg0, &sp10); + MTXMultVec(sp1C, arg0, &sp10); temp_f30 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * temp_r31->aspect; temp_f29 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)); temp_f28 = 0.9f * temp_r31->viewport_x; @@ -598,9 +598,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; @@ -928,7 +928,7 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1) UnkBss10Struct *temp_r31; GXLoadPosMtxImm(arg1, GX_PNMTX0); - PSMTXInvXpose(arg1, spEC); + MTXInvXpose(arg1, spEC); GXLoadNrmMtxImm(spEC, GX_PNMTX0); temp_r31 = &lbl_1_data_10[2]; GXInitTexObj(&spC, temp_r31->unk00, temp_r31->unk08, temp_r31->unk0A, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); @@ -941,31 +941,31 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1) GXLoadTexObj(&spC, GX_TEXMAP3); GXSetNumTexGens(4); C_MTXLightPerspective(sp2C, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, spEC); - PSMTXConcat(spEC, arg1, spEC); - PSMTXConcat(sp2C, Hu3DCameraMtx, spBC); - PSMTXConcat(spBC, spEC, spBC); + MTXInverse(Hu3DCameraMtx, spEC); + MTXConcat(spEC, arg1, spEC); + MTXConcat(sp2C, Hu3DCameraMtx, spBC); + MTXConcat(spBC, spEC, spBC); GXLoadTexMtxImm(spBC, GX_TEXMTX0, GX_MTX3x4); C_MTXLightPerspective(sp2C, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, spEC); - PSMTXConcat(spEC, arg1, spEC); - PSMTXConcat(sp2C, Hu3DCameraMtx, spBC); - PSMTXConcat(spBC, spEC, spBC); + MTXInverse(Hu3DCameraMtx, spEC); + MTXConcat(spEC, arg1, spEC); + MTXConcat(sp2C, Hu3DCameraMtx, spBC); + MTXConcat(spBC, spEC, spBC); GXLoadTexMtxImm(spBC, GX_TEXMTX1, GX_MTX3x4); - PSMTXRotRad(spEC, 'X', MTXDegToRad(-90)); + MTXRotRad(spEC, 'X', MTXDegToRad(-90)); var_f31 = 0.0004f; - PSMTXScale(sp8C, 0.00083333335f, var_f31, 0.0004f); - PSMTXConcat(sp8C, spEC, sp5C); - PSMTXTrans(spBC, 0.5f, 0.5f, 0.5f); - PSMTXConcat(spBC, sp5C, sp5C); + MTXScale(sp8C, 0.00083333335f, var_f31, 0.0004f); + MTXConcat(sp8C, spEC, sp5C); + MTXTrans(spBC, 0.5f, 0.5f, 0.5f); + MTXConcat(spBC, sp5C, sp5C); sp5C[0][1] = -0.01f; GXLoadTexMtxImm(sp5C, GX_TEXMTX2, GX_MTX2x4); - PSMTXRotRad(spEC, 'X', MTXDegToRad(-90)); + MTXRotRad(spEC, 'X', MTXDegToRad(-90)); var_f31 = 0.0004f; - PSMTXScale(sp8C, var_f31, var_f31, var_f31); - PSMTXConcat(sp8C, spEC, sp5C); - PSMTXTrans(spBC, 0.5f, 0.5f, 0.0f); - PSMTXConcat(spBC, sp5C, sp5C); + MTXScale(sp8C, var_f31, var_f31, var_f31); + MTXConcat(sp8C, spEC, sp5C); + MTXTrans(spBC, 0.5f, 0.5f, 0.0f); + MTXConcat(spBC, sp5C, sp5C); GXLoadTexMtxImm(sp5C, GX_TEXMTX3, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX1, GX_FALSE, GX_PTIDENTITY); @@ -974,12 +974,12 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1) GXSetNumIndStages(2); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); - PSMTXScale(spBC, -0.2f, -0.2f, 0.2f); + MTXScale(spBC, -0.2f, -0.2f, 0.2f); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spBC, -2); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD3, GX_TEXMAP3); GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); - PSMTXScale(spBC, 0.5f, 0.5f, 0.5f); + MTXScale(spBC, 0.5f, 0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_1, (float(*)[3])spBC, 0); GXSetTevIndWarp(GX_TEVSTAGE1, GX_INDTEXSTAGE1, GX_TRUE, GX_FALSE, GX_ITM_1); GXSetNumTevStages(2); @@ -1031,10 +1031,10 @@ void fn_1_4024(ModelData *arg0, Mtx arg1) fn_1_2714(1, GX_FALSE); GXLoadPosMtxImm(arg1, GX_PNMTX0); C_MTXLightPerspective(sp98, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, sp68); - PSMTXConcat(sp68, arg1, sp68); - PSMTXConcat(sp98, Hu3DCameraMtx, sp38); - PSMTXConcat(sp38, sp68, sp68); + MTXInverse(Hu3DCameraMtx, sp68); + MTXConcat(sp68, arg1, sp68); + MTXConcat(sp98, Hu3DCameraMtx, sp38); + MTXConcat(sp38, sp68, sp68); GXLoadTexMtxImm(sp68, GX_TEXMTX0, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); GXSetNumChans(1); @@ -1096,7 +1096,7 @@ void fn_1_4700(ModelData *arg0, Mtx arg1) C_MTXOrtho(sp20, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 100.0f); GXSetProjection(sp20, GX_ORTHOGRAPHIC); - PSMTXIdentity(sp60); + MTXIdentity(sp60); GXLoadPosMtxImm(sp60, GX_PNMTX0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); diff --git a/src/REL/m406Dll/map.c b/src/REL/m406Dll/map.c index 7abe5b76..e995e73a 100644 --- a/src/REL/m406Dll/map.c +++ b/src/REL/m406Dll/map.c @@ -1083,7 +1083,7 @@ void fn_1_45BC(ModelData *arg0, Mtx arg1) } if (!var_r31->unk_28) { GXLoadPosMtxImm(arg1, 0); - PSMTXInvXpose(arg1, sp10); + MTXInvXpose(arg1, sp10); GXLoadNrmMtxImm(sp10, 0); var_r26 = fn_1_D06C(arg0, Hu3DCameraMtx, Hu3DCameraMtxXPose, 2.0f); GXSetNumTevStages(1); @@ -2149,7 +2149,7 @@ void fn_1_82C8(Mtx arg0, s32 arg1, float arg8) sp80.z = arg0[2][3]; sp74.x = sp74.z = 0.0f; sp74.y = atan2d(arg0[0][0], arg0[2][0]); - PSMTXCopy(arg0, sp8C); + MTXCopy(arg0, sp8C); sp8C[0][3] = sp8C[1][3] = sp8C[2][3] = sp8C[3][3] = 0.0f; sp68.x = -25.0f; sp68.z = -50.0f; @@ -2227,7 +2227,7 @@ void fn_1_8F98(void) var_r31->unk_10 = 0.0f; var_r31->unk_14 = 6.0f; var_r31->unk_18 = 1.0f; - PSMTXIdentity(var_r31->unk_1C); + MTXIdentity(var_r31->unk_1C); if (var_r30 == 0) { var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 59)); } @@ -2246,7 +2246,7 @@ void fn_1_8F98(void) var_r31->unk_10 = 0.0f; var_r31->unk_14 = 6.0f; var_r31->unk_18 = 1.0f; - PSMTXIdentity(var_r31->unk_1C); + MTXIdentity(var_r31->unk_1C); if (var_r30 == 0) { var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 60)); } @@ -2278,8 +2278,8 @@ void fn_1_91E0(void) var_f31 = var_r31->unk_18 * cosd((90.0f * var_f30)); var_f31 = var_f31; var_r30 = &Hu3DData[var_r31->unk_04]; - PSMTXScale(sp8, var_f31, var_f31, var_f31); - PSMTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0); + MTXScale(sp8, var_f31, var_f31, var_f31); + MTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0); var_r30->unk_F0[0][3] = var_r31->unk_1C[0][3]; var_r30->unk_F0[1][3] = var_r31->unk_1C[1][3]; var_r30->unk_F0[2][3] = var_r31->unk_1C[2][3]; @@ -2299,8 +2299,8 @@ void fn_1_91E0(void) var_f31 = var_r31->unk_18 * cosd((90.0f * var_f30)); var_f31 = var_f31; var_r30 = &Hu3DData[var_r31->unk_04]; - PSMTXScale(sp8, var_f31, var_f31, var_f31); - PSMTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0); + MTXScale(sp8, var_f31, var_f31, var_f31); + MTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0); var_r30->unk_F0[0][3] = var_r31->unk_1C[0][3]; var_r30->unk_F0[1][3] = var_r31->unk_1C[1][3]; var_r30->unk_F0[2][3] = var_r31->unk_1C[2][3]; @@ -2340,7 +2340,7 @@ s32 fn_1_94C0(Mtx arg0, s32 arg1, s32 arg2) sp64.z = arg0[2][3]; sp58.x = sp58.z = 0.0f; sp58.y = atan2d(arg0[0][0], arg0[2][0]); - PSMTXCopy(arg0, spA0); + MTXCopy(arg0, spA0); spA0[0][3] = spA0[1][3] = spA0[2][3] = spA0[3][3] = 0.0f; if (!arg2) { sp4C.x = 25.0f; @@ -2419,12 +2419,12 @@ s32 fn_1_94C0(Mtx arg0, s32 arg1, s32 arg2) var_r31->unk_10 = 1.0f; var_r31->unk_14 = 6.0f; var_r31->unk_18 = var_f31; - PSMTXCopy(arg0, var_r31->unk_1C); + MTXCopy(arg0, var_r31->unk_1C); Hu3DMotionTimeSet(var_r31->unk_04, 0.0f); Hu3DMotionSpeedSet(var_r31->unk_04, 0.0f); var_r27 = &Hu3DData[var_r31->unk_04]; - PSMTXScale(sp70, var_f31, var_f31, var_f31); - PSMTXConcat(arg0, sp70, var_r27->unk_F0); + MTXScale(sp70, var_f31, var_f31, var_f31); + MTXConcat(arg0, sp70, var_r27->unk_F0); var_r27->unk_F0[0][3] = arg0[0][3]; var_r27->unk_F0[1][3] = arg0[1][3]; var_r27->unk_F0[2][3] = arg0[2][3]; @@ -2630,7 +2630,7 @@ void fn_1_ADB4(ModelData *arg0, float (*arg1)[4]) GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - PSMTXIdentity(sp50); + MTXIdentity(sp50); GXLoadPosMtxImm(sp50, 0); GXSetZMode(GX_FALSE, GX_ALWAYS, GX_TRUE); GXSetNumChans(1); @@ -2954,7 +2954,7 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4]) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8); if (HmfInverseMtxF3X3(arg1, sp128) == 0) { - PSMTXIdentity(sp128); + MTXIdentity(sp128); } PSMTXReorder(sp128, sp8); if (var_r31->unk_4C) { @@ -2993,9 +2993,9 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4]) VECScale(&lbl_1_data_8E0[1], &sp98[1], var_r29->unk_28); VECScale(&lbl_1_data_8E0[2], &sp98[2], var_r29->unk_28); VECScale(&lbl_1_data_8E0[3], &sp98[3], var_r29->unk_28); - PSMTXRotRad(spC8, 90, var_r29->unk_2C); - PSMTXConcat(sp128, spC8, spF8); - PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); + MTXRotRad(spC8, 90, var_r29->unk_2C); + MTXConcat(sp128, spC8, spF8); + MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); VECAdd(&sp68[0], &var_r29->unk_30, var_r30++); VECAdd(&sp68[1], &var_r29->unk_30, var_r30++); VECAdd(&sp68[2], &var_r29->unk_30, var_r30++); @@ -3167,7 +3167,7 @@ void fn_1_C86C(ModelData *arg0, Mtx arg1) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 0x44); if (HmfInverseMtxF3X3(arg1, sp9C) == 0) { - PSMTXIdentity(sp9C); + MTXIdentity(sp9C); } PSMTXReorder(sp9C, spC); if (var_r31->unk_4C) { @@ -3362,8 +3362,8 @@ void fn_1_D13C(LightData *arg0, s16 arg1, Mtx arg2, Mtx arg3, float arg8) break; } if (arg0->unk_00 & 0x8000) { - PSMTXMultVec(arg2, &arg0->unk_28, &sp24); - PSMTXMultVec(arg3, &arg0->unk_1C, &sp18); + MTXMultVec(arg2, &arg0->unk_28, &sp24); + MTXMultVec(arg3, &arg0->unk_1C, &sp18); GXInitLightPos(&sp30, sp18.x, sp18.y, sp18.z); } else { diff --git a/src/REL/m406Dll/player.c b/src/REL/m406Dll/player.c index b484169b..9685aac0 100644 --- a/src/REL/m406Dll/player.c +++ b/src/REL/m406Dll/player.c @@ -666,11 +666,11 @@ void fn_1_E214(omObjData *object) } Hu3DModelScaleSet(object->model[5], var_f30, var_f30, var_f30); var_r31->unk_50 += VECMag(&var_r31->unk_2C) / 3.125f; - PSMTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70); - PSMTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50); - PSMTXConcat(sp64, sp94, sp34); - PSMTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70); - PSMTXConcat(sp94, sp34, var_r26->unk_F0); + MTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70); + MTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50); + MTXConcat(sp64, sp94, sp34); + MTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70); + MTXConcat(sp94, sp34, var_r26->unk_F0); var_r27 = 6; var_f31 = 2.0f; var_r25 = 0; @@ -690,14 +690,14 @@ void fn_1_E214(omObjData *object) var_r31->unk_2C.x = var_r31->unk_2C.y = var_r31->unk_2C.z = 0.0f; } var_r31->unk_50 = fn_1_13AF4(var_r31->unk_50, 0.0f, 0.5f); - PSMTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70); - PSMTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50); - PSMTXConcat(sp64, sp94, sp34); - PSMTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70); - PSMTXConcat(sp94, sp34, var_r26->unk_F0); + MTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70); + MTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50); + MTXConcat(sp64, sp94, sp34); + MTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70); + MTXConcat(sp94, sp34, var_r26->unk_F0); if (var_r31->unk_5E != 0) { - PSMTXTrans(sp94, 100.0f * (0.2f * (((var_r31->unk_5E & 1) * 2) - 1)), 0.0f, 0.0f); - PSMTXConcat(sp94, var_r26->unk_F0, var_r26->unk_F0); + MTXTrans(sp94, 100.0f * (0.2f * (((var_r31->unk_5E & 1) * 2) - 1)), 0.0f, 0.0f); + MTXConcat(sp94, var_r26->unk_F0, var_r26->unk_F0); if (--var_r31->unk_5E == 0) { if (++var_r31->unk_5C >= 4) { var_r31->unk_00_field3 = 0; @@ -708,7 +708,7 @@ void fn_1_E214(omObjData *object) Hu3DModelPosSet(object->model[6], object->trans.x + var_r31->unk_68, object->trans.y + var_r31->unk_6C, object->trans.z + var_r31->unk_70); Hu3DModelAttrReset(object->model[6], HU3D_ATTR_DISPOFF); - PSMTXIdentity(var_r26->unk_F0); + MTXIdentity(var_r26->unk_F0); fn_1_117BC(var_r31->unk_14.x, 25.0f, &var_r31->unk_44, &var_r31->unk_2C); } } @@ -733,7 +733,7 @@ void fn_1_E214(omObjData *object) if (fn_1_6A44(sp28) == 1) { var_r31->unk_00_field0 = 1; var_r26 = &Hu3DData[object->model[0]]; - PSMTXIdentity(var_r26->unk_F0); + MTXIdentity(var_r26->unk_F0); omVibrate(var_r31->unk_02, 0xC, 4, 2); HuAudCharVoicePlayPos(var_r31->unk_0C, 0x123, &object->trans); for (var_r24 = 0; var_r24 < 2; var_r24++) { @@ -804,13 +804,13 @@ void fn_1_F194(omObjData *object) mtxTransCat(sp80, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); VECCrossProduct(&sp44, &sp8, &sp44); if (sp44.y >= 0.0f) { - PSMTXTrans(sp50, -10.0f, 0.0f, 0.0f); - PSMTXConcat(sp50, sp80, sp80); + MTXTrans(sp50, -10.0f, 0.0f, 0.0f); + MTXConcat(sp50, sp80, sp80); fn_1_94C0(sp80, 10, 0); } else { - PSMTXTrans(sp50, 10.0f, 0.0f, 0.0f); - PSMTXConcat(sp50, sp80, sp80); + MTXTrans(sp50, 10.0f, 0.0f, 0.0f); + MTXConcat(sp50, sp80, sp80); fn_1_94C0(sp80, 10, 1); } } @@ -868,13 +868,13 @@ void fn_1_F694(omObjData *object) mtxTransCat(sp68, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); VECCrossProduct(&sp20, &sp14, &sp8); if (sp8.y >= 0.0f) { - PSMTXTrans(sp38, -10.0f, 0.0f, 0.0f); - PSMTXConcat(sp38, sp68, sp68); + MTXTrans(sp38, -10.0f, 0.0f, 0.0f); + MTXConcat(sp38, sp68, sp68); fn_1_94C0(sp68, 10, 0); } else { - PSMTXTrans(sp38, 10.0f, 0.0f, 0.0f); - PSMTXConcat(sp38, sp68, sp68); + MTXTrans(sp38, 10.0f, 0.0f, 0.0f); + MTXConcat(sp38, sp68, sp68); fn_1_94C0(sp68, 10, 1); } } @@ -1228,8 +1228,8 @@ void fn_1_10744(omObjData *object) if ((var_r31->unk_64 < 0x50) && (var_r31->unk_64 > 0x1E)) { mtxRot(sp48, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z); mtxTransCat(sp48, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); - PSMTXTrans(sp18, 10.0f, 0.0f, 0.0f); - PSMTXConcat(sp18, sp48, sp48); + MTXTrans(sp18, 10.0f, 0.0f, 0.0f); + MTXConcat(sp18, sp48, sp48); fn_1_94C0(sp48, 10, 0); } var_r31->unk_2C.x = var_r31->unk_54 * (100.0 * (0.10000000149011612 * sind(180.0f + var_r31->unk_14.x))); @@ -1345,15 +1345,15 @@ void fn_1_114A0(omObjData *object) } mtxRot(sp9C, object->rot.x, object->rot.y, object->trans.z); mtxScaleCat(sp9C, object->scale.x, object->scale.y, object->scale.z); - PSMTXTrans(sp9C, object->trans.x, object->trans.y, object->trans.z); - PSMTXRotRad(sp6C, 0x78, 0.017453292f * var_r31->unk_50); - PSMTXConcat(sp9C, sp6C, sp9C); - PSMTXCopy(sp9C, spC); + MTXTrans(sp9C, object->trans.x, object->trans.y, object->trans.z); + MTXRotRad(sp6C, 0x78, 0.017453292f * var_r31->unk_50); + MTXConcat(sp9C, sp6C, sp9C); + MTXCopy(sp9C, spC); mtxScaleCat(spC, 2.0f, 2.0f, 2.0f); - PSMTXCopy(spC, Hu3DData[object->model[5]].unk_F0); - PSMTXTrans(sp3C, 0.0f, 110.0f, 0.0f); - PSMTXConcat(sp9C, sp3C, spC); - PSMTXCopy(spC, Hu3DData[object->model[7]].unk_F0); + MTXCopy(spC, Hu3DData[object->model[5]].unk_F0); + MTXTrans(sp3C, 0.0f, 110.0f, 0.0f); + MTXConcat(sp9C, sp3C, spC); + MTXCopy(spC, Hu3DData[object->model[7]].unk_F0); } void fn_1_117BC(float arg8, float arg9, UnkM406PlayerStruct2 *arg0, Vec *arg1) @@ -1753,7 +1753,7 @@ void fn_1_12BC4(omObjData *object) var_r30->target.z = Center.z; C_MTXLookAt(spA8, &var_r30->pos, &var_r30->up, &var_r30->target); for (var_r31 = 0; var_r31 < lbl_1_bss_1C4; var_r31++) { - PSMTXMultVec(spA8, &lbl_1_bss_104[var_r31], &sp198[var_r31]); + MTXMultVec(spA8, &lbl_1_bss_104[var_r31], &sp198[var_r31]); spD8[var_r31].x = sp198[var_r31].x / (sp198[var_r31].z * (sind((var_r30->fov / 2)) / cosd((var_r30->fov / 2)))); spD8[var_r31].y = sp198[var_r31].y / (sp198[var_r31].z * (sind((var_r30->fov / 2)) / cosd((var_r30->fov / 2)))); } @@ -1811,13 +1811,13 @@ s32 fn_1_136AC(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) HsfTransform *var_r31 = &arg0->data.curr; mtxRot(sp144, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - PSMTXScale(sp174, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); - PSMTXConcat(sp144, sp174, sp174); + MTXScale(sp174, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(sp144, sp174, sp174); mtxTransCat(sp174, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - PSMTXConcat(arg1, sp174, sp174); + MTXConcat(arg1, sp174, sp174); strcpy(sp4A4, MakeObjectName(arg2)); if (strcmp(sp4A4, arg0->name) == 0) { - PSMTXCopy(sp174, arg3); + MTXCopy(sp174, arg3); return 1; } for (var_r23 = 0; var_r23 < arg0->data.childrenCount; var_r23++) { @@ -1838,7 +1838,7 @@ void fn_1_13A88(s16 arg0, char *arg1, Mtx arg2) var_r31 = &Hu3DData[arg0]; var_r30 = var_r31->hsfData; - PSMTXIdentity(sp14); + MTXIdentity(sp14); fn_1_136AC(var_r30->root, sp14, arg1, arg2); } diff --git a/src/REL/m409Dll/cursor.c b/src/REL/m409Dll/cursor.c index c007391c..76fbe60a 100644 --- a/src/REL/m409Dll/cursor.c +++ b/src/REL/m409Dll/cursor.c @@ -4,11 +4,12 @@ #include "game/hsfdraw.h" #include "game/sprite.h" -void fn_1_BF88(s16 arg0, s16 arg1) { +void fn_1_BF88(s16 arg0, s16 arg1) +{ s32 var_r31; s32 var_r31_2; - unkStruct8* var_r29; - unkStruct9Sub* var_r30; + unkStruct8 *var_r29; + unkStruct9Sub *var_r30; lbl_1_bss_F0.unk4 = Hu3DHookFuncCreate(fn_1_CB98); Hu3DModelLayerSet(lbl_1_bss_F0.unk4, 6); @@ -18,26 +19,27 @@ void fn_1_BF88(s16 arg0, s16 arg1) { lbl_1_bss_F0.unk2 = arg1; var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct9Sub), MEMORY_DEFAULT_NUM); lbl_1_bss_F0.unkC = var_r30; - + for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) { var_r29->unk8 = 0; } - + for (var_r31 = 0; var_r31 < arg1; var_r31++, var_r30++) { var_r30->unk6 = 0; var_r30->unk8 = 0; } - + lbl_1_bss_F0.unk6 = lbl_1_bss_F0.unk8 = lbl_1_bss_F0.unkA = 0; } -void fn_1_C0C0(void) { +void fn_1_C0C0(void) +{ s32 var_r31; for (var_r31 = 1; var_r31 < lbl_1_bss_F0.unk0; var_r31++) { fn_1_DDB8(var_r31); } - + for (var_r31 = 1; var_r31 < lbl_1_bss_F0.unk2; var_r31++) { fn_1_E228(var_r31); } @@ -48,7 +50,8 @@ void fn_1_C0C0(void) { extern u8 texMtxTbl[]; -void fn_1_C164(unkStruct8* arg0) { +void fn_1_C164(unkStruct8 *arg0) +{ ModelData spEC; Mtx spBC; Mtx sp8C; @@ -59,27 +62,27 @@ void fn_1_C164(unkStruct8* arg0) { GXColorSrc var_r25; s32 var_r26; s16 temp_r23; - unkStruct9Sub* temp_r28; + unkStruct9Sub *temp_r28; s16 var_r27; s16 var_r30; s32 var_r24; s32 var_r22; s32 var_r21; s32 var_r20; - unkStruct8Sub* var_r31; + unkStruct8Sub *var_r31; mtxRot(sp2C, arg0->unk18.x, arg0->unk18.y, arg0->unk18.z); - PSMTXScale(sp5C, arg0->unk24.x, arg0->unk24.y, arg0->unk24.z); - PSMTXConcat(sp2C, sp5C, sp5C); + MTXScale(sp5C, arg0->unk24.x, arg0->unk24.y, arg0->unk24.z); + MTXConcat(sp2C, sp5C, sp5C); mtxTransCat(sp5C, arg0->unkC.x, arg0->unkC.y, arg0->unkC.z); - PSMTXConcat(Hu3DCameraMtx, sp5C, sp8C); + MTXConcat(Hu3DCameraMtx, sp5C, sp8C); var_r30 = 0; var_r27 = 0; sp8 = 0; - + for (var_r26 = GX_TEXMAP0; var_r26 < arg0->unk4; var_r26++) { temp_r28 = &lbl_1_bss_F0.unkC[arg0->unk34[var_r26]]; - PSMTXRotRad(temp_r28->unk18, 0x5A, 0.0f); + MTXRotRad(temp_r28->unk18, 0x5A, 0.0f); mtxTransCat(temp_r28->unk18, temp_r28->unkC.x, temp_r28->unkC.y, temp_r28->unkC.z); switch (temp_r28->unk4) { case 0: @@ -91,11 +94,13 @@ void fn_1_C164(unkStruct8* arg0) { if ((temp_r28->unk0->bmp->dataFmt == 7) || (temp_r28->unk0->bmp->dataFmt == 8)) { GXSetTevColor(GX_TEVREG2, temp_r28->unk48); GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_C2, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); - } else { + } + else { sp28.a = temp_r28->unk48.a; GXSetTevColor(GX_TEVREG2, sp28); GXSetTevColorIn(var_r30, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); @@ -150,39 +155,40 @@ void fn_1_C164(unkStruct8* arg0) { GXSetNumTevStages((s32)var_r30); GXSetNumTexGens((s32)var_r27); var_r31 = arg0->unk3C; - + for (var_r24 = 0; var_r24 < arg0->unk2; var_r24++, var_r31++) { if ((var_r31->unk34 != 0) && ((var_r31->unk34 & 4) == 0)) { switch (var_r31->unk30) { case 0: mtxRot(sp2C, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); - PSMTXIdentity(sp5C); + MTXIdentity(sp5C); HmfInverseMtxF3X3(Hu3DCameraMtx, sp5C); - PSMTXConcat(sp5C, sp2C, sp2C); - PSMTXScale(sp5C, var_r31->unk18.x, var_r31->unk18.y, var_r31->unk18.z); - PSMTXConcat(sp2C, sp5C, sp5C); + MTXConcat(sp5C, sp2C, sp2C); + MTXScale(sp5C, var_r31->unk18.x, var_r31->unk18.y, var_r31->unk18.z); + MTXConcat(sp2C, sp5C, sp5C); mtxTransCat(sp5C, var_r31->unk0.x, var_r31->unk0.y, var_r31->unk0.z); - PSMTXConcat(Hu3DCameraMtx, sp5C, spBC); + MTXConcat(Hu3DCameraMtx, sp5C, spBC); break; case 1: - PSMTXCopy(sp8C, sp2C); + MTXCopy(sp8C, sp2C); mtxRotCat(sp2C, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); - PSMTXScale(sp5C, var_r31->unk18.x, var_r31->unk18.y, var_r31->unk18.z); - PSMTXConcat(sp2C, sp5C, sp5C); + MTXScale(sp5C, var_r31->unk18.x, var_r31->unk18.y, var_r31->unk18.z); + MTXConcat(sp2C, sp5C, sp5C); mtxTransCat(sp5C, var_r31->unk0.x, var_r31->unk0.y, var_r31->unk0.z); - PSMTXCopy(sp5C, spBC); + MTXCopy(sp5C, spBC); break; } GXLoadPosMtxImm(spBC, 0); - PSMTXInverse(spBC, sp5C); - PSMTXTranspose(sp5C, sp2C); + MTXInverse(spBC, sp5C); + MTXTranspose(sp5C, sp2C); GXLoadNrmMtxImm(sp2C, 0); GXSetChanAmbColor(GX_COLOR0A0, var_r31->unk4C); GXSetChanMatColor(GX_COLOR0A0, var_r31->unk50); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); if ((var_r31->unk34 & 0x10) != 0) { GXSetZMode(GX_FALSE, GX_LEQUAL, GX_TRUE); - } else { + } + else { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); } spEC.attr = 0; @@ -190,7 +196,8 @@ void fn_1_C164(unkStruct8* arg0) { GXSetNumChans(1); if ((var_r31->unk34 & 8) != 0) { var_r25 = GX_SRC_VTX; - } else { + } + else { var_r25 = GX_SRC_REG; } switch (var_r31->unk31) { @@ -224,18 +231,19 @@ void fn_1_C164(unkStruct8* arg0) { } } -void fn_1_CB98(ModelData* model, Mtx matrix) { +void fn_1_CB98(ModelData *model, Mtx matrix) +{ Mtx sp38; Mtx sp8; s32 var_r30; - unkStruct8* var_r31; + unkStruct8 *var_r31; var_r31 = lbl_1_bss_F0.unk10; GXLoadPosMtxImm(matrix, 0); - PSMTXInverse(matrix, sp38); - PSMTXTranspose(sp38, sp8); + MTXInverse(matrix, sp38); + MTXTranspose(sp38, sp8); GXLoadNrmMtxImm(sp8, 0); - + for (var_r30 = 0; var_r30 < lbl_1_bss_F0.unk0; var_r30++, var_r31++) { if ((var_r31->unk8 == 0) || ((var_r31->unk8 & 2) == 0) || ((var_r31->unk8 & 4) != 0)) { continue; @@ -244,28 +252,33 @@ void fn_1_CB98(ModelData* model, Mtx matrix) { if (var_r31->unk30) { var_r31->unk30(var_r31); } - if (var_r31->unk8 == 0) continue; + if (var_r31->unk8 == 0) + continue; fn_1_D430(var_r31); - if (var_r31->unk8 == 0) continue; + if (var_r31->unk8 == 0) + continue; } fn_1_C164(var_r31); } } -unkStruct8* fn_1_CCB0(s16 idx) { +unkStruct8 *fn_1_CCB0(s16 idx) +{ return &lbl_1_bss_F0.unk10[idx]; } -unkStruct8Sub* fn_1_CCCC(s16 arg0, s16 arg1) { +unkStruct8Sub *fn_1_CCCC(s16 arg0, s16 arg1) +{ return &lbl_1_bss_F0.unk10[arg0].unk3C[arg1]; } -void fn_1_CCF8(unkStruct11** arg0, s16 arg1, f32 arg8, f32 arg9) { +void fn_1_CCF8(unkStruct11 **arg0, s16 arg1, f32 arg8, f32 arg9) +{ s32 var_r30; - unkStruct11* var_r31; - + unkStruct11 *var_r31; + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct11), MEMORY_DEFAULT_NUM); - + for (var_r30 = 0; var_r30 < arg1; var_r31++, var_r30++) { var_r31->unk0.x = (-0.5f * arg8); var_r31->unk0.y = (0.5f * arg9); @@ -282,13 +295,14 @@ void fn_1_CCF8(unkStruct11** arg0, s16 arg1, f32 arg8, f32 arg9) { } } -void fn_1_CE7C(Vec** arg0, s16 arg1, Vec* arg2) { +void fn_1_CE7C(Vec **arg0, s16 arg1, Vec *arg2) +{ s32 var_r29; s32 var_r28; - Vec* var_r31; + Vec *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec[4]), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->x = arg2->x; @@ -298,13 +312,14 @@ void fn_1_CE7C(Vec** arg0, s16 arg1, Vec* arg2) { } } -void fn_1_CF1C(GXColor** arg0, s16 arg1, GXColor* arg2) { +void fn_1_CF1C(GXColor **arg0, s16 arg1, GXColor *arg2) +{ s32 var_r29; s32 var_r28; - GXColor* var_r31; + GXColor *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(GXColor[4]), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->r = arg2->r; @@ -315,12 +330,13 @@ void fn_1_CF1C(GXColor** arg0, s16 arg1, GXColor* arg2) { } } -void fn_1_CFC4(Vec** arg0, s16 arg1, Vec* arg2) { +void fn_1_CFC4(Vec **arg0, s16 arg1, Vec *arg2) +{ s32 var_r29; - Vec* var_r31; + Vec *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) { var_r31->x = arg2->x; var_r31->y = arg2->y; @@ -328,10 +344,11 @@ void fn_1_CFC4(Vec** arg0, s16 arg1, Vec* arg2) { } } -void fn_1_D050(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) { +void fn_1_D050(HsfVector2f **arg0, s16 arg1, HsfVector2f *arg2) +{ s32 var_r28; s32 var_r29; - HsfVector2f* var_r31; + HsfVector2f *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(HsfVector2f[4]), MEMORY_DEFAULT_NUM); @@ -343,31 +360,22 @@ void fn_1_D050(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) { } } -void fn_1_D0E8(unkStruct8Sub* arg0) { - Vec sp18[4] = { - { -50.0f, 50.0f, 0.0f }, - { 50.0f, 50.0f, 0.0f }, - { 50.0f, -50.0f, 0.0f }, - { -50.0f, -50.0f, 0.0f } - }; - GXColor sp8[4] = { - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF } - }; +void fn_1_D0E8(unkStruct8Sub *arg0) +{ + Vec sp18[4] = { { -50.0f, 50.0f, 0.0f }, { 50.0f, 50.0f, 0.0f }, { 50.0f, -50.0f, 0.0f }, { -50.0f, -50.0f, 0.0f } }; + GXColor sp8[4] = { { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF } }; s32 var_r26; s32 var_r25; - void* temp_r3_3; - + void *temp_r3_3; + if (arg0->unk40 != NULL) { HuMemDirectFree(arg0->unk40); } - fn_1_CE7C((Vec**)&arg0->unk40, 1, &sp18[0]); + fn_1_CE7C((Vec **)&arg0->unk40, 1, &sp18[0]); if (arg0->unk44 != NULL) { HuMemDirectFree(arg0->unk44); } - fn_1_CF1C((GXColor**)&arg0->unk44, 1, &sp8[0]); + fn_1_CF1C((GXColor **)&arg0->unk44, 1, &sp8[0]); if (arg0->unk48 != NULL) { HuMemDirectFree(arg0->unk48); } @@ -383,12 +391,12 @@ void fn_1_D0E8(unkStruct8Sub* arg0) { DCFlushRange(arg0->unk3C, 0x1000); GXBeginDisplayList(temp_r3_3, 0x1000); GXBegin(GX_QUADS, GX_VTXFMT0, 4); - + for (var_r26 = 0; var_r26 < 4; var_r26++) { GXPosition1x16(var_r26); GXColor1x16(0); GXNormal1x16(var_r26); - + for (var_r25 = 0; var_r25 < arg0->unk32; var_r25++) { GXTexCoord1x16(var_r26); } @@ -396,23 +404,25 @@ void fn_1_D0E8(unkStruct8Sub* arg0) { arg0->unk38 = GXEndDisplayList(); } -void fn_1_D430(unkStruct8* arg0) { +void fn_1_D430(unkStruct8 *arg0) +{ s32 var_r25; s32 var_r26; s32 var_r27; - unkStruct8Sub* var_r28; - unkStruct12* var_r31; - unkStruct9Sub* temp_r30; + unkStruct8Sub *var_r28; + unkStruct12 *var_r31; + unkStruct9Sub *temp_r30; var_r27 = 0; var_r28 = arg0->unk3C; - + for (var_r25 = 0; var_r25 < arg0->unk2; var_r25++, var_r28++) { if ((var_r28->unk34 & 4) != 0) { var_r27++; - } else { + } + else { var_r31 = var_r28->unk54; - + for (var_r26 = 0; var_r26 < var_r28->unk32; var_r26++, var_r31++) { temp_r30 = &lbl_1_bss_F0.unkC[arg0->unk34[var_r26]]; var_r31->unk8 &= ~4; @@ -436,30 +446,37 @@ void fn_1_D430(unkStruct8* arg0) { if ((var_r31->unk8 & 0x10) != 0) { var_r31->unk8 |= 8; var_r31->unk0--; - } else if ((var_r31->unk8 & 0x40) != 0) { + } + else if ((var_r31->unk8 & 0x40) != 0) { var_r31->unk8 = (var_r31->unk8 & 0xF0) | 2; var_r31->unk0 -= 2; - } else if ((var_r31->unk8 & 0x20) != 0) { + } + else if ((var_r31->unk8 & 0x20) != 0) { var_r31->unk0 = 0; } var_r31->unk8 |= 4; - } else if (var_r31->unk0 < 0) { + } + else if (var_r31->unk0 < 0) { if ((var_r31->unk8 & 0x10) != 0) { var_r31->unk8 |= 8; var_r31->unk0 = 0; - } else if ((var_r31->unk8 & 0x20) != 0) { + } + else if ((var_r31->unk8 & 0x20) != 0) { if ((var_r31->unk8 & 0x40) != 0) { var_r31->unk8 = ((var_r31->unk8 & 0xF0) | 1); var_r31->unk0 = 1U; - } else { + } + else { var_r31->unk0 = (temp_r30->unk4C - 1); } - } else if ((var_r31->unk8 & 0x40) != 0) { + } + else if ((var_r31->unk8 & 0x40) != 0) { var_r31->unk8 |= 8; var_r31->unk0 = 0; } var_r31->unk8 |= 4; - } else { + } + else { var_r31->unk8 &= ~8; } if (var_r31->unk0 != var_r31->unk1) { @@ -483,11 +500,13 @@ void fn_1_D430(unkStruct8* arg0) { if ((var_r31->unk8 & 0x40) == 0) { if (var_r31->unk0 <= 0) { var_r31->unk0 = temp_r30->unk4C; - } else { + } + else { var_r31->unk0 = 0U; } } - } else if ((var_r28->unk34 & 0x80000000) != 0) { + } + else if ((var_r28->unk34 & 0x80000000) != 0) { fn_1_DDB8(arg0->unk0); } var_r27++; @@ -506,21 +525,23 @@ void fn_1_D430(unkStruct8* arg0) { } } -s16 fn_1_DA48(u8 arg0, u8 arg1) { +s16 fn_1_DA48(u8 arg0, u8 arg1) +{ s32 var_r29; s32 var_r28; - unkStruct8* var_r30; - unkStruct8Sub* var_r31; + unkStruct8 *var_r30; + unkStruct8Sub *var_r31; var_r30 = &lbl_1_bss_F0.unk10[1]; - + for (var_r29 = 1; var_r29 < lbl_1_bss_F0.unk0; var_r29++, var_r30++) { - if (var_r30->unk8 == 0) break; - + if (var_r30->unk8 == 0) + break; } - - if (var_r29 == lbl_1_bss_F0.unk0) return 0; - + + if (var_r29 == lbl_1_bss_F0.unk0) + return 0; + var_r30->unk0 = var_r29; var_r30->unk8 = 1; var_r30->unk30 = NULL; @@ -534,14 +555,14 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { var_r30->unk24.x = var_r30->unk24.y = var_r30->unk24.z = 1.0f; var_r30->unk54.x = var_r30->unk54.y = var_r30->unk54.z = 0.0f; var_r30->unk48.x = var_r30->unk48.y = var_r30->unk48.z = 0.0f; - + for (var_r29 = 0; var_r29 < 0x20; var_r29++) { var_r30->unk60[var_r29] = 0; } for (var_r29 = 0; var_r29 < arg1; var_r29++) { var_r30->unk34[var_r29] = 0; } - + for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r31++) { var_r31->unk34 = 1; var_r31->unk32 = arg1; @@ -552,7 +573,7 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { var_r31->unk50.r = var_r31->unk50.g = var_r31->unk50.b = 0xFF; var_r31->unk50.a = 0xFF; var_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct12), MEMORY_DEFAULT_NUM); - + for (var_r28 = 0; var_r28 < arg1; var_r28++) { var_r31->unk54[var_r28].unk0 = var_r31->unk54[var_r28].unk1 = 0; var_r31->unk54[var_r28].unk4 = NULL; @@ -564,7 +585,7 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { var_r31->unk18.x = var_r31->unk18.y = var_r31->unk18.z = 1.0f; var_r31->unk64.x = var_r31->unk64.y = var_r31->unk64.z = 0.0f; var_r31->unk58.x = var_r31->unk58.y = var_r31->unk58.z = 0.0f; - + for (var_r28 = 0; var_r28 < 0x10; var_r28++) { var_r31->unk70[var_r28] = 0; } @@ -575,17 +596,18 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { return var_r30->unk0; } -void fn_1_DDB8(s16 arg0) { - unkStruct12* var_r28; +void fn_1_DDB8(s16 arg0) +{ + unkStruct12 *var_r28; s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; if (temp_r30->unk8 != 0) { var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { if (var_r31->unk40 != NULL) { HuMemDirectFree(var_r31->unk40); @@ -603,7 +625,7 @@ void fn_1_DDB8(s16 arg0) { HuMemDirectFree(var_r28->unk4); HuMemDirectFree(var_r31->unk54); } - + for (var_r29 = 0; var_r29 < temp_r30->unk4; var_r29++) { fn_1_E228(temp_r30->unk34[var_r29]); } @@ -615,32 +637,36 @@ void fn_1_DDB8(s16 arg0) { } } -void fn_1_DEF4(s16 arg0, s16 arg1, u8 arg2) { +void fn_1_DEF4(s16 arg0, s16 arg1, u8 arg2) +{ lbl_1_bss_F0.unk6 = arg0; lbl_1_bss_F0.unk8 = arg1; lbl_1_bss_F0.unkA = arg2; } -s16 fn_1_DF20(u32 arg0, s16 arg1, s16 arg2) { - AnimData* temp_r30; +s16 fn_1_DF20(u32 arg0, s16 arg1, s16 arg2) +{ + AnimData *temp_r30; f32 var_f31; f32 var_f30; s32 var_r29; - unkStruct9Sub* var_r31; + unkStruct9Sub *var_r31; var_r31 = &lbl_1_bss_F0.unkC[1]; - + for (var_r29 = 1; var_r29 < lbl_1_bss_F0.unk2; var_r29++, var_r31++) { - if ((var_r31->unk6 != 0) && (var_r31->unk8 == arg0)) break; + if ((var_r31->unk6 != 0) && (var_r31->unk8 == arg0)) + break; } if (var_r29 < lbl_1_bss_F0.unk2) { var_r31->unk6++; return var_r29; } var_r31 = &lbl_1_bss_F0.unkC[1]; - + for (var_r29 = 1; var_r29 < lbl_1_bss_F0.unk2; var_r29++, var_r31++) { - if (var_r31->unk6 == 0) break; + if (var_r31->unk6 == 0) + break; } var_r31->unk8 = arg0; var_r31->unk6 = 1; @@ -649,7 +675,8 @@ s16 fn_1_DF20(u32 arg0, s16 arg1, s16 arg2) { arg1 = temp_r30->bmp->sizeX; arg2 = temp_r30->bmp->sizeY; var_f31 = var_f30 = 1.0f; - } else { + } + else { var_f31 = arg1 / (f32)temp_r30->bmp->sizeX; var_f30 = arg2 / (f32)temp_r30->bmp->sizeY; } @@ -664,14 +691,15 @@ s16 fn_1_DF20(u32 arg0, s16 arg1, s16 arg2) { var_r31->unk4C = (temp_r30->bmp->sizeY / arg2); var_r31->unk48.r = var_r31->unk48.g = var_r31->unk48.b = 0xFF; var_r31->unk48.a = 0xFF; - PSMTXIdentity(var_r31->unk18); + MTXIdentity(var_r31->unk18); var_r31->unkC.x = var_r31->unkC.y = var_r31->unkC.z = 0.0f; return var_r29; } -void fn_1_E228(s16 arg0) { - unkStruct9Sub* temp_r31; - +void fn_1_E228(s16 arg0) +{ + unkStruct9Sub *temp_r31; + temp_r31 = &lbl_1_bss_F0.unkC[arg0]; if (temp_r31->unk8 != 0) { if (temp_r31->unk6 != 0) { @@ -684,17 +712,18 @@ void fn_1_E228(s16 arg0) { } } -s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { +s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) +{ f32 temp_f31; f32 temp_f30; s32 var_r26; s32 var_r25; s32 var_r24; - unkStruct12* temp_r31; - unkStruct8* temp_r27; - unkStruct8Sub* var_r28; - unkStruct9Sub* temp_r30; - unkStruct11* var_r29; + unkStruct12 *temp_r31; + unkStruct8 *temp_r27; + unkStruct8Sub *var_r28; + unkStruct9Sub *temp_r30; + unkStruct11 *var_r29; if (arg0 == 0) { return 0; @@ -708,7 +737,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { temp_r27->unk34[arg1] = var_r24; temp_r30 = &lbl_1_bss_F0.unkC[var_r24]; var_r28 = temp_r27->unk3C; - + for (var_r26 = 0; var_r26 < temp_r27->unk2; var_r26++, var_r28++) { if (arg1 == 0) { if (var_r28->unk40) { @@ -717,7 +746,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { temp_f30 = temp_r30->unk50; temp_f31 = temp_r30->unk4E; var_r29 = var_r28->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, MEMORY_DEFAULT_NUM); - + for (var_r25 = 0; var_r25 < 1; var_r29++, var_r25++) { var_r29->unk0.x = (-0.5f * temp_f31); var_r29->unk0.y = (0.5f * temp_f30); @@ -757,15 +786,17 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { return 1; } -s32 fn_1_E7C8(s16 arg0, u8 arg1, u32 arg2) { +s32 fn_1_E7C8(s16 arg0, u8 arg1, u32 arg2) +{ s32 var_r31; - + var_r31 = fn_1_E2A8(arg0, arg1, arg2, 0, 0); return var_r31; } -void fn_1_E818(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r31; +void fn_1_E818(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -775,9 +806,10 @@ void fn_1_E818(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_E85C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r30; - unkStruct8Sub* temp_r31; +void fn_1_E85C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r30; + unkStruct8Sub *temp_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; @@ -790,15 +822,16 @@ void fn_1_E85C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_E8CC(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_E8CC(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk0.x = arg8; var_r31->unk0.y = arg9; @@ -807,8 +840,9 @@ void fn_1_E8CC(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_E940(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r31; +void fn_1_E940(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -818,9 +852,10 @@ void fn_1_E940(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_E99C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r30; - unkStruct8Sub* temp_r31; +void fn_1_E99C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r30; + unkStruct8Sub *temp_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; @@ -833,15 +868,16 @@ void fn_1_E99C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EA24(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_EA24(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk0.x += arg8; var_r31->unk0.y += arg9; @@ -850,8 +886,9 @@ void fn_1_EA24(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EAB0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r31; +void fn_1_EAB0(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -861,9 +898,10 @@ void fn_1_EAB0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EAF4(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r30; - unkStruct8Sub* temp_r31; +void fn_1_EAF4(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r30; + unkStruct8Sub *temp_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; @@ -876,15 +914,16 @@ void fn_1_EAF4(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EB64(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_EB64(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unkC.x = arg8; var_r31->unkC.y = arg9; @@ -893,8 +932,9 @@ void fn_1_EB64(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EBD8(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r31; +void fn_1_EBD8(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -904,9 +944,10 @@ void fn_1_EBD8(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EC1C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r30; - unkStruct8Sub* temp_r31; +void fn_1_EC1C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r30; + unkStruct8Sub *temp_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; @@ -919,15 +960,16 @@ void fn_1_EC1C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EC8C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_EC8C(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk18.x = arg8; var_r31->unk18.y = arg9; @@ -936,8 +978,9 @@ void fn_1_EC8C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_ED00(s16 arg0, s32 arg1) { - unkStruct8* temp_r31; +void fn_1_ED00(s16 arg0, s32 arg1) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -945,9 +988,10 @@ void fn_1_ED00(s16 arg0, s32 arg1) { } } -void fn_1_ED44(s16 arg0, s16 arg1, s32 arg2) { - unkStruct8* temp_r31; - unkStruct8Sub* temp_r30; +void fn_1_ED44(s16 arg0, s16 arg1, s32 arg2) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *temp_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -958,23 +1002,25 @@ void fn_1_ED44(s16 arg0, s16 arg1, s32 arg2) { } } -void fn_1_EDB4(s16 arg0, s32 arg1) { +void fn_1_EDB4(s16 arg0, s32 arg1) +{ s32 var_r30; - unkStruct8* temp_r31; - unkStruct8Sub* temp_r29; + unkStruct8 *temp_r31; + unkStruct8Sub *temp_r29; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; temp_r29 = temp_r31->unk3C; - + for (var_r30 = 0; var_r30 < temp_r31->unk2; var_r30++) { temp_r29->unk34 |= arg1; } } } -void fn_1_EE24(s16 arg0, u32 arg1) { - unkStruct8* temp_r31; +void fn_1_EE24(s16 arg0, u32 arg1) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -982,9 +1028,10 @@ void fn_1_EE24(s16 arg0, u32 arg1) { } } -void fn_1_EE68(s16 arg0, s16 arg1, u32 arg2) { - unkStruct8* temp_r31; - unkStruct8Sub* temp_r30; +void fn_1_EE68(s16 arg0, s16 arg1, u32 arg2) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *temp_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -995,23 +1042,25 @@ void fn_1_EE68(s16 arg0, s16 arg1, u32 arg2) { } } -void fn_1_EED8(s16 arg0, u32 arg1) { +void fn_1_EED8(s16 arg0, u32 arg1) +{ s32 var_r30; - unkStruct8* temp_r31; - unkStruct8Sub* temp_r29; + unkStruct8 *temp_r31; + unkStruct8Sub *temp_r29; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; temp_r29 = temp_r31->unk3C; - + for (var_r30 = 0; var_r30 < temp_r31->unk2; var_r30++) { temp_r29->unk34 &= ~arg1; } } } -s32 fn_1_EF48(s16 arg0, s32 arg1) { - unkStruct8* var_r31; +s32 fn_1_EF48(s16 arg0, s32 arg1) +{ + unkStruct8 *var_r31; if (arg0 == 0) { return 0; @@ -1024,26 +1073,31 @@ s32 fn_1_EF48(s16 arg0, s32 arg1) { return 0; } -s32 fn_1_EFA4(s16 arg0, s16 arg1, s32 arg2) { - unkStruct8Sub* var_r30; - unkStruct8* temp_r31; +s32 fn_1_EFA4(s16 arg0, s16 arg1, s32 arg2) +{ + unkStruct8Sub *var_r30; + unkStruct8 *temp_r31; + + if (arg0 == 0) + return; - if (arg0 == 0) return; - temp_r31 = &lbl_1_bss_F0.unk10[arg0]; - if (temp_r31->unk2 <= arg1) return; - + if (temp_r31->unk2 <= arg1) + return; + var_r30 = &temp_r31->unk3C[arg1]; if ((var_r30->unk34 & arg2) != 0) { return 1; - } else { + } + else { return 0; } } -void fn_1_F024(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { - unkStruct8* temp_r30; - unkStruct8Sub* temp_r31; +void fn_1_F024(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) +{ + unkStruct8 *temp_r30; + unkStruct8Sub *temp_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; @@ -1057,15 +1111,16 @@ void fn_1_F024(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { } } -void fn_1_F098(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { +void fn_1_F098(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) +{ s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk50.r = arg1; var_r31->unk50.g = arg2; @@ -1075,9 +1130,10 @@ void fn_1_F098(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { } } -void fn_1_F110(s16 arg0, s16 arg1, u8 arg2) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F110(s16 arg0, s16 arg1, u8 arg2) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1088,9 +1144,10 @@ void fn_1_F110(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_F17C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F17C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1101,17 +1158,18 @@ void fn_1_F17C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { } } -void fn_1_F1F4(s16 arg0, u8 arg1) { +void fn_1_F1F4(s16 arg0, u8 arg1) +{ s32 var_r28; s32 var_r30; - unkStruct8* temp_r29; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r29; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r29 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = (unkStruct8Sub *)(&temp_r29->unk3C); //! BAD WHY (void)temp_r29; - + for (var_r28 = 0; var_r28 < temp_r29->unk2; var_r28++, var_r31++) { for (var_r30 = 0; var_r30 < var_r31->unk32; var_r30++) { var_r31->unk54[var_r30].unk8 = arg1; @@ -1120,9 +1178,10 @@ void fn_1_F1F4(s16 arg0, u8 arg1) { } } -void fn_1_F28C(s16 arg0, s16 arg1, f32 arg8) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F28C(s16 arg0, s16 arg1, f32 arg8) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1133,9 +1192,10 @@ void fn_1_F28C(s16 arg0, s16 arg1, f32 arg8) { } } -void fn_1_F2F8(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F2F8(s16 arg0, s16 arg1, u8 arg2, f32 arg8) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1146,16 +1206,17 @@ void fn_1_F2F8(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { } } -void fn_1_F370(s16 arg0, f32 arg8) { - unkStruct8* temp_r31; +void fn_1_F370(s16 arg0, f32 arg8) +{ + unkStruct8 *temp_r31; s32 var_r29; s32 var_r30; - unkStruct8Sub* volatile sp8; + unkStruct8Sub *volatile sp8; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; sp8 = &temp_r31->unk3C[0]; - + for (var_r29 = 0; var_r29 < temp_r31->unk2; var_r29++) { for (var_r30 = 0; var_r30 < sp8->unk32; var_r30++) { sp8->unk54[var_r30].unkC = arg8; @@ -1164,9 +1225,10 @@ void fn_1_F370(s16 arg0, f32 arg8) { } } -void fn_1_F408(s16 arg0, s16 arg1, u8 arg2) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F408(s16 arg0, s16 arg1, u8 arg2) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1177,9 +1239,10 @@ void fn_1_F408(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_F478(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F478(s16 arg0, s16 arg1, u8 arg2, u8 arg3) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1190,10 +1253,11 @@ void fn_1_F478(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { } } -void fn_1_F4F0(s16 arg0, u8 arg1) { - unkStruct8Sub* volatile sp8; +void fn_1_F4F0(s16 arg0, u8 arg1) +{ + unkStruct8Sub *volatile sp8; s32 var_r29; - unkStruct8* temp_r31; + unkStruct8 *temp_r31; s32 var_r30; if (arg0 != 0) { diff --git a/src/REL/m409Dll/main.c b/src/REL/m409Dll/main.c index a1ee937d..70955a13 100644 --- a/src/REL/m409Dll/main.c +++ b/src/REL/m409Dll/main.c @@ -1416,9 +1416,9 @@ void fn_1_602C(ModelData *arg0, f32 (*arg1)[4]) } else { fn_1_6778(&temp_r30->unk2C, &sp38, &var_r29->unk34, 4); - PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk30); - PSMTXConcat(sp128, spC8, sp98); - PSMTXMultVecArray(sp98, &sp38, &sp8, 4); + MTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk30); + MTXConcat(sp128, spC8, sp98); + MTXMultVecArray(sp98, &sp38, &sp8, 4); VECAdd(&sp8, &var_r29->unk40, var_r31++); VECAdd(&sp14, &var_r29->unk40, var_r31++); VECAdd(&sp20, &var_r29->unk40, var_r31++); diff --git a/src/REL/m410Dll/game.c b/src/REL/m410Dll/game.c index 303236d5..5d9671c5 100644 --- a/src/REL/m410Dll/game.c +++ b/src/REL/m410Dll/game.c @@ -956,9 +956,9 @@ void fn_1_6968(omObjData *object) sp8.z = -var_r31->unk_1C.x; var_f30 = VECMag(&sp8) / 30.000002f; if (var_f30 >= 0.001f) { - PSMTXRotAxisRad(sp14, &sp8, var_f30); + MTXRotAxisRad(sp14, &sp8, var_f30); var_r28 = &Hu3DData[object->model[var_r30]]; - PSMTXConcat(sp14, var_r28->unk_F0, var_r28->unk_F0); + MTXConcat(sp14, var_r28->unk_F0, var_r28->unk_F0); } } } @@ -1238,8 +1238,8 @@ s32 fn_1_79F8(s16 arg0, char *arg1, Mtx arg2) var_r30 = var_r31->hsfData; lbl_1_bss_30 = 0; mtxRot(sp14, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - PSMTXScale(sp44, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); - PSMTXConcat(sp14, sp44, sp44); + MTXScale(sp44, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(sp14, sp44, sp44); mtxTransCat(sp44, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); fn_1_7AC4(var_r30->root, sp44, arg1, arg2); return lbl_1_bss_30; @@ -1274,12 +1274,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) var_r31 = &arg0->data.curr; mtxRot(sp12C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - PSMTXScale(sp15C, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); - PSMTXConcat(sp12C, sp15C, sp15C); + MTXScale(sp15C, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(sp12C, sp15C, sp15C); mtxTransCat(sp15C, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - PSMTXConcat(arg1, sp15C, sp15C); + MTXConcat(arg1, sp15C, sp15C); if (!strcmp(arg2, arg0->name)) { - PSMTXCopy(sp15C, arg3); + MTXCopy(sp15C, arg3); lbl_1_bss_30 = 1; } @@ -1288,12 +1288,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) if (!lbl_1_bss_30) { var_r30 = &var_r27->data.curr; mtxRot(spFC, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); - PSMTXScale(spCC, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); - PSMTXConcat(spFC, spCC, spCC); + MTXScale(spCC, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); + MTXConcat(spFC, spCC, spCC); mtxTransCat(spCC, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); - PSMTXConcat(sp15C, spCC, spCC); + MTXConcat(sp15C, spCC, spCC); if (!strcmp(arg2, var_r27->name)) { - PSMTXCopy(spCC, arg3); + MTXCopy(spCC, arg3); lbl_1_bss_30 = 1; } for (var_r22 = 0; var_r22 < var_r27->data.childrenCount; var_r22++) { @@ -1301,12 +1301,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) if (!lbl_1_bss_30) { var_r29 = &var_r26->data.curr; mtxRot(sp9C, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z); - PSMTXScale(sp6C, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); - PSMTXConcat(sp9C, sp6C, sp6C); + MTXScale(sp6C, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); + MTXConcat(sp9C, sp6C, sp6C); mtxTransCat(sp6C, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); - PSMTXConcat(spCC, sp6C, sp6C); + MTXConcat(spCC, sp6C, sp6C); if (!strcmp(arg2, var_r26->name)) { - PSMTXCopy(sp6C, arg3); + MTXCopy(sp6C, arg3); lbl_1_bss_30 = 1; } @@ -1315,12 +1315,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) if (!lbl_1_bss_30) { var_r28 = &var_r25->data.curr; mtxRot(sp3C, var_r28->rot.x, var_r28->rot.y, var_r28->rot.z); - PSMTXScale(spC, var_r28->scale.x, var_r28->scale.y, var_r28->scale.z); - PSMTXConcat(sp3C, spC, spC); + MTXScale(spC, var_r28->scale.x, var_r28->scale.y, var_r28->scale.z); + MTXConcat(sp3C, spC, spC); mtxTransCat(spC, var_r28->pos.x, var_r28->pos.y, var_r28->pos.z); - PSMTXConcat(sp6C, spC, spC); + MTXConcat(sp6C, spC, spC); if (!strcmp(arg2, var_r25->name)) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); lbl_1_bss_30 = 1; } diff --git a/src/REL/m410Dll/main.c b/src/REL/m410Dll/main.c index 42506076..e6855848 100644 --- a/src/REL/m410Dll/main.c +++ b/src/REL/m410Dll/main.c @@ -93,7 +93,7 @@ void ObjectSetup(void) sp8.x = sp8.z = 0.0f; sp8.y = lbl_1_data_18.z; mtxRot(sp20, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); - PSMTXMultVec(sp20, &sp8, &sp8); + MTXMultVec(sp20, &sp8, &sp8); Hu3DGLightPosAimSetV(lbl_1_bss_16, &sp8, &sp14); Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14); lbl_1_bss_14 = lbl_1_bss_12 = lbl_1_bss_10 = -1; diff --git a/src/REL/m410Dll/player.c b/src/REL/m410Dll/player.c index 133a5762..d4566bca 100644 --- a/src/REL/m410Dll/player.c +++ b/src/REL/m410Dll/player.c @@ -1075,8 +1075,8 @@ void fn_1_B140(ModelData *arg0, Mtx arg1) DCStoreRange(&sp10, 4); DCStoreRange(&lbl_1_data_294, 32); - PSMTXTrans(spF4, -400.0f, 400.0f, -700.0f); - PSMTXConcat(Hu3DCameraMtx, spF4, sp64); + MTXTrans(spF4, -400.0f, 400.0f, -700.0f); + MTXConcat(Hu3DCameraMtx, spF4, sp64); GXLoadPosMtxImm(sp64, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -1086,10 +1086,10 @@ void fn_1_B140(ModelData *arg0, Mtx arg1) HuSprTexLoad(lbl_1_bss_70, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); GXSetNumTexGens(2); C_MTXLightPerspective(sp94, 41.5f, 1.2f, 0.5555555f, -0.5f, 0.5555555f, 0.5f); - PSMTXConcat(sp94, Hu3DCameraMtx, sp94); - PSMTXInverse(Hu3DCameraMtx, sp34); - PSMTXConcat(sp34, sp64, sp124); - PSMTXConcat(sp94, sp124, spF4); + MTXConcat(sp94, Hu3DCameraMtx, sp94); + MTXInverse(Hu3DCameraMtx, sp34); + MTXConcat(sp34, sp64, sp124); + MTXConcat(sp94, sp124, spF4); GXLoadTexMtxImm(spF4, 30, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 30, GX_FALSE, 125); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEXCOORD0, 33, GX_FALSE, 125); @@ -1097,7 +1097,7 @@ void fn_1_B140(ModelData *arg0, Mtx arg1) GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); - PSMTXScale(spF4, -0.5f, -0.5f, 0.5f); + MTXScale(spF4, -0.5f, -0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, -1); GXSetNumTevStages(1); GXSetTevColor(GX_TEVREG1, sp10); @@ -1124,17 +1124,17 @@ void fn_1_B140(ModelData *arg0, Mtx arg1) if (var_r31->unk_00) { lbl_1_data_294[var_r31->unk_02].a = 255.0f * var_r31->unk_0C; GXSetTevColor(GX_TEVREG0, lbl_1_data_294[var_r31->unk_02]); - PSMTXTrans(spF4, var_r31->unk_10.x, var_r31->unk_10.y, var_r31->unk_10.z); - PSMTXRotRad(sp124, 90, 0.017453292f * var_r31->unk_08); - PSMTXConcat(spF4, sp124, spF4); - PSMTXScale(spC4, var_r31->unk_04, var_r31->unk_04, var_r31->unk_04); - PSMTXConcat(spF4, spC4, spF4); - PSMTXConcat(Hu3DCameraMtx, spF4, sp64); + MTXTrans(spF4, var_r31->unk_10.x, var_r31->unk_10.y, var_r31->unk_10.z); + MTXRotRad(sp124, 90, 0.017453292f * var_r31->unk_08); + MTXConcat(spF4, sp124, spF4); + MTXScale(spC4, var_r31->unk_04, var_r31->unk_04, var_r31->unk_04); + MTXConcat(spF4, spC4, spF4); + MTXConcat(Hu3DCameraMtx, spF4, sp64); GXLoadPosMtxImm(sp64, 0); - PSMTXConcat(sp34, sp64, sp124); - PSMTXConcat(sp94, sp124, spF4); + MTXConcat(sp34, sp64, sp124); + MTXConcat(sp94, sp124, spF4); GXLoadTexMtxImm(spF4, 30, GX_MTX3x4); - PSMTXRotRad(sp124, 90, 0.017453292f * -var_r31->unk_08); + MTXRotRad(sp124, 90, 0.017453292f * -var_r31->unk_08); GXLoadTexMtxImm(sp124, 33, GX_MTX2x4); GXCallDisplayList(var_r30->unk_120.unk_E5C, var_r30->unk_120.unk_E58); } diff --git a/src/REL/m415Dll/main.c b/src/REL/m415Dll/main.c index 971724b5..2053aed7 100644 --- a/src/REL/m415Dll/main.c +++ b/src/REL/m415Dll/main.c @@ -513,8 +513,8 @@ void fn_1_1A60(unkStruct3 *arg0) for (var_r31 = -1; var_r31 < 2; var_r31 += 2) { for (var_r29 = -1; var_r29 < 2; var_r29 += 2) { MTXRotDeg(sp118, 0x59, temp_f30); - PSMTXTrans(spE8, (var_r30 * var_r31), 0.0f, (var_r30 * var_r29)); - PSMTXConcat(sp118, spE8, spE8); + MTXTrans(spE8, (var_r30 * var_r31), 0.0f, (var_r30 * var_r29)); + MTXConcat(sp118, spE8, spE8); if ((spB8[0].y > spE8[2][3]) || ((spB8[0].y == spE8[2][3]) && (spB8[0].x > spE8[0][3]))) { spB8[0].x = spE8[0][3]; spB8[0].y = spE8[2][3]; @@ -1604,15 +1604,15 @@ void fn_1_6958(Mtx arg0, f32 arg8, f32 arg9, f32 argA) MTXRotDeg(arg0, 0x5A, argA); } else { - PSMTXIdentity(arg0); + MTXIdentity(arg0); } if (arg8 != 0.0f) { MTXRotDeg(sp38, 0x58, arg8); - PSMTXConcat(sp38, arg0, arg0); + MTXConcat(sp38, arg0, arg0); } if (arg9 != 0.0f) { MTXRotDeg(sp8, 0x59, arg9); - PSMTXConcat(sp8, arg0, arg0); + MTXConcat(sp8, arg0, arg0); } } diff --git a/src/REL/m415Dll/map.c b/src/REL/m415Dll/map.c index 31636233..6533a2dc 100644 --- a/src/REL/m415Dll/map.c +++ b/src/REL/m415Dll/map.c @@ -4,10 +4,11 @@ #include "game/hsfdraw.h" #include "game/sprite.h" -void fn_1_8780(s16 arg0, s16 arg1) { +void fn_1_8780(s16 arg0, s16 arg1) +{ s32 var_r31; - unkSubStruct2* var_r29; - unkSubStruct3* var_r30; + unkSubStruct2 *var_r29; + unkSubStruct3 *var_r30; lbl_1_bss_36C.unk34 = Hu3DHookFuncCreate(fn_1_95C0); Hu3DModelLayerSet(lbl_1_bss_36C.unk34, 6); @@ -15,11 +16,11 @@ void fn_1_8780(s16 arg0, s16 arg1) { lbl_1_bss_36C.unk40 = var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkSubStruct2), MEMORY_DEFAULT_NUM); lbl_1_bss_36C.unk32 = arg1; lbl_1_bss_36C.unk3C = var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkSubStruct3), MEMORY_DEFAULT_NUM); - + for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) { var_r29->unk8 = 0; } - + for (var_r31 = 0; var_r31 < arg1; var_r31++, var_r30++) { var_r30->unk6 = 0; var_r30->unk8 = 0; @@ -27,7 +28,8 @@ void fn_1_8780(s16 arg0, s16 arg1) { lbl_1_bss_36C.unk36 = lbl_1_bss_36C.unk38 = lbl_1_bss_36C.unk3A = 0; } -void fn_1_88B8(unkSubStruct2* arg0) { +void fn_1_88B8(unkSubStruct2 *arg0) +{ ModelData sp120; Mtx spF0; Mtx spC0; @@ -46,8 +48,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { s32 var_r21; s32 var_r20; s32 var_r19; - unkSubStruct3* temp_r26; - unkSubStruct* var_r31; + unkSubStruct3 *temp_r26; + unkSubStruct *var_r31; mtxRot(sp60, arg0->unk18.x, arg0->unk18.y, arg0->unk18.z); MTXScale(sp90, arg0->unk24.x, arg0->unk24.y, arg0->unk24.z); @@ -57,7 +59,7 @@ void fn_1_88B8(unkSubStruct2* arg0) { var_r29 = 0; var_r28 = 0; sp8 = 0; - + for (var_r27 = GX_TEXMAP0; var_r27 < arg0->unk4; var_r27++) { if (arg0->unk34[var_r27] != 0) { temp_r26 = &lbl_1_bss_36C.unk3C[arg0->unk34[var_r27]]; @@ -73,11 +75,13 @@ void fn_1_88B8(unkSubStruct2* arg0) { if ((temp_r26->unk0->bmp->dataFmt == 7) || (temp_r26->unk0->bmp->dataFmt == 8)) { GXSetTevColor(GX_TEVREG2, temp_r26->unk48); GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_C2, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); - } else { + } + else { sp2C.a = temp_r26->unk48.a; GXSetTevColor(GX_TEVREG2, sp2C); GXSetTevColorIn(var_r29, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); @@ -141,7 +145,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { if (var_r27 == GX_TEXMAP0) { GXSetTevColorIn(var_r29, GX_CC_ONE, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ZERO); GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); - } else { + } + else { GXSetTevColorIn(var_r29, GX_CC_CPREV, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ZERO); GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); } @@ -153,7 +158,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { var_r28++; if (temp_r26->unk4D != 0) { HuSprTexLoad(temp_r26->unk0, 0, var_r27, 1, 1, 1); - } else { + } + else { HuSprTexLoad(temp_r26->unk0, 0, var_r27, 0, 0, 1); } } @@ -161,7 +167,7 @@ void fn_1_88B8(unkSubStruct2* arg0) { GXSetNumTevStages((s16)var_r29); GXSetNumTexGens((s16)var_r28); var_r31 = arg0->unk3C; - + for (var_r24 = 0; var_r24 < arg0->unk2; var_r24++, var_r31++) { if ((var_r31->unk34 != 0) && ((var_r31->unk34 & 4) == 0)) { switch (var_r31->unk30) { @@ -169,7 +175,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { mtxRot(sp60, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); if (var_r31->unk31 == 2) { MTXConcat(lbl_1_bss_36C.unk0, sp60, sp60); - } else if (var_r31->unk31 == 1) { + } + else if (var_r31->unk31 == 1) { MTXRotDeg(sp90, 0x59, CRot.y); MTXConcat(sp90, sp60, sp60); } @@ -185,7 +192,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { MTXIdentity(sp90); } MTXConcat(sp90, sp60, sp60); - } else if (var_r31->unk31 == 1) { + } + else if (var_r31->unk31 == 1) { MTXRotDeg(sp90, 0x59, CRot.y); MTXConcat(sp90, sp60, sp60); } @@ -206,7 +214,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); if ((var_r31->unk34 & 0x10) != 0) { GXSetZMode(0, GX_LEQUAL, 1); - } else { + } + else { GXSetZMode(1, GX_LEQUAL, 0); } sp120.attr = 0; @@ -214,7 +223,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { GXSetNumChans(1); if ((var_r31->unk34 & 8) != 0) { var_r25 = GX_SRC_VTX; - } else { + } + else { var_r25 = GX_SRC_REG; } switch (var_r31->unk32) { @@ -235,7 +245,7 @@ void fn_1_88B8(unkSubStruct2* arg0) { GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetArray(GX_VA_CLR0, var_r31->unk44, 4); - + for (var_r27 = 0; var_r27 < var_r31->unk33; var_r27++) { GXSetVtxDesc(var_r27 + GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, var_r27 + GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); @@ -249,52 +259,59 @@ void fn_1_88B8(unkSubStruct2* arg0) { } } -void fn_1_95C0(ModelData* arg0, Mtx arg1) { +void fn_1_95C0(ModelData *arg0, Mtx arg1) +{ Mtx sp38; Mtx sp8; s32 var_r30; - unkSubStruct2* var_r31; + unkSubStruct2 *var_r31; var_r31 = lbl_1_bss_36C.unk40; GXLoadPosMtxImm(arg1, 0); - PSMTXInverse(arg1, sp38); - PSMTXTranspose(sp38, sp8); + MTXInverse(arg1, sp38); + MTXTranspose(sp38, sp8); GXLoadNrmMtxImm(sp8, 0); HmfInverseMtxF3X3(Hu3DCameraMtx, lbl_1_bss_36C.unk0); - + for (var_r30 = 0; var_r30 < lbl_1_bss_36C.unk30; var_r30++, var_r31++) { if ((var_r31->unk8 != 0) && ((var_r31->unk8 & 2) != 0) && ((var_r31->unk8 & 4) == 0)) { if ((u8)omPauseChk() == 0) { if (var_r31->unk30) { var_r31->unk30(var_r31); } - if (var_r31->unk8 == 0) continue; + if (var_r31->unk8 == 0) + continue; fn_1_9DC8(var_r31); - if (var_r31->unk8 == 0) continue; + if (var_r31->unk8 == 0) + continue; } fn_1_88B8(var_r31); } } } -unkSubStruct2* fn_1_96EC(s16 arg0) { +unkSubStruct2 *fn_1_96EC(s16 arg0) +{ return &lbl_1_bss_36C.unk40[arg0]; } -unkSubStruct* fn_1_9708(s16 arg0, s16 arg1) { +unkSubStruct *fn_1_9708(s16 arg0, s16 arg1) +{ return &lbl_1_bss_36C.unk40[arg0].unk3C[arg1]; } -AnimData** fn_1_9734(s16 arg0) { +AnimData **fn_1_9734(s16 arg0) +{ return &lbl_1_bss_36C.unk3C[arg0].unk0; } -void fn_1_9750(unkStruct6** arg0, s16 arg1, f32 arg8, f32 arg9) { +void fn_1_9750(unkStruct6 **arg0, s16 arg1, f32 arg8, f32 arg9) +{ s32 var_r30; - unkStruct6* var_r31; - + unkStruct6 *var_r31; + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct6), MEMORY_DEFAULT_NUM); - + for (var_r30 = 0; var_r30 < arg1; var_r31++, var_r30++) { var_r31->unk0.x = (-0.5f * arg8); var_r31->unk0.y = (0.5f * arg9); @@ -311,13 +328,14 @@ void fn_1_9750(unkStruct6** arg0, s16 arg1, f32 arg8, f32 arg9) { } } -void fn_1_98D4(Vec** arg0, s16 arg1, Vec* arg2) { +void fn_1_98D4(Vec **arg0, s16 arg1, Vec *arg2) +{ s32 var_r29; s32 var_r28; - Vec* var_r31; + Vec *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec[4]), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->x = arg2->x; @@ -327,13 +345,14 @@ void fn_1_98D4(Vec** arg0, s16 arg1, Vec* arg2) { } } -void fn_1_9974(GXColor** arg0, s16 arg1, GXColor* arg2) { +void fn_1_9974(GXColor **arg0, s16 arg1, GXColor *arg2) +{ s32 var_r29; s32 var_r28; - GXColor* var_r31; + GXColor *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(GXColor[4]), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->r = arg2->r; @@ -344,12 +363,13 @@ void fn_1_9974(GXColor** arg0, s16 arg1, GXColor* arg2) { } } -void fn_1_9A1C(Vec** arg0, s16 arg1, Vec* arg2) { +void fn_1_9A1C(Vec **arg0, s16 arg1, Vec *arg2) +{ s32 var_r29; - Vec* var_r31; + Vec *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) { var_r31->x = arg2->x; var_r31->y = arg2->y; @@ -357,10 +377,11 @@ void fn_1_9A1C(Vec** arg0, s16 arg1, Vec* arg2) { } } -void fn_1_9AA8(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) { +void fn_1_9AA8(HsfVector2f **arg0, s16 arg1, HsfVector2f *arg2) +{ s32 var_r28; s32 var_r29; - HsfVector2f* var_r31; + HsfVector2f *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(HsfVector2f[4]), MEMORY_DEFAULT_NUM); @@ -372,29 +393,20 @@ void fn_1_9AA8(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) { } } -void fn_1_9B40(unkSubStruct* arg0) { - void* sp8; +void fn_1_9B40(unkSubStruct *arg0) +{ + void *sp8; s32 var_r29; s32 var_r31; - void* temp_r28; + void *temp_r28; + + Vec sp1C[4] = { { -50.0f, 50.0f, 0.0f }, { 50.0f, 50.0f, 0.0f }, { 50.0f, -50.0f, 0.0f }, { -50.0f, -50.0f, 0.0f } }; + GXColor spC[4] = { { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF } }; - Vec sp1C[4] = { - { -50.0f, 50.0f, 0.0f }, - { 50.0f, 50.0f, 0.0f }, - { 50.0f, -50.0f, 0.0f }, - { -50.0f, -50.0f, 0.0f } - }; - GXColor spC[4] = { - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF } - }; - for (var_r31 = 0; var_r31 < 4; var_r31++) { arg0->unk40[var_r31] = sp1C[var_r31]; } - + for (var_r31 = 0; var_r31 < 4; var_r31++) { arg0->unk44[var_r31] = spC[var_r31]; } @@ -405,7 +417,7 @@ void fn_1_9B40(unkSubStruct* arg0) { sp8 = temp_r28; GXBeginDisplayList(temp_r28, 0x100U); GXBegin(GX_QUADS, GX_VTXFMT0, 4); - + for (var_r31 = 0; var_r31 < 4; var_r31++) { GXPosition1x16(var_r31); GXNormal1x16(0); @@ -417,24 +429,26 @@ void fn_1_9B40(unkSubStruct* arg0) { arg0->unk38 = GXEndDisplayList(); } -void fn_1_9DC8(unkSubStruct2* arg0) { +void fn_1_9DC8(unkSubStruct2 *arg0) +{ s32 temp_r0; s32 var_r25; s32 var_r26; s32 var_r27; - unkSubStruct* var_r28; - unkSubStruct3* temp_r30; - unkSubStruct4* var_r31; + unkSubStruct *var_r28; + unkSubStruct3 *temp_r30; + unkSubStruct4 *var_r31; var_r27 = 0; var_r28 = arg0->unk3C; - + for (var_r25 = 0; var_r25 < arg0->unk2; var_r25++, var_r28++) { if ((var_r28->unk34 & 4) != 0) { var_r27++; - } else { + } + else { var_r31 = var_r28->unk54; - + for (var_r26 = 0; var_r26 < var_r28->unk33; var_r26++, var_r31++) { temp_r30 = &lbl_1_bss_36C.unk3C[arg0->unk34[var_r26]]; var_r31->unk24 &= ~4; @@ -458,30 +472,37 @@ void fn_1_9DC8(unkSubStruct2* arg0) { if ((var_r31->unk24 & 0x10) != 0) { var_r31->unk24 |= 8; var_r31->unk0--; - } else if ((var_r31->unk24 & 0x40) != 0) { + } + else if ((var_r31->unk24 & 0x40) != 0) { var_r31->unk24 = (var_r31->unk24 & 0xF0) | 2; var_r31->unk0 -= 2; - } else if ((var_r31->unk24 & 0x20) != 0) { + } + else if ((var_r31->unk24 & 0x20) != 0) { var_r31->unk0 = 0; } var_r31->unk24 |= 4; - } else if (var_r31->unk0 < 0) { + } + else if (var_r31->unk0 < 0) { if ((var_r31->unk24 & 0x10) != 0) { var_r31->unk24 |= 8; var_r31->unk0 = 0; - } else if ((var_r31->unk24 & 0x20) != 0) { + } + else if ((var_r31->unk24 & 0x20) != 0) { if ((var_r31->unk24 & 0x40) != 0) { var_r31->unk24 = (var_r31->unk24 & 0xF0) | 1; var_r31->unk0 = 1; - } else { + } + else { var_r31->unk0 = temp_r30->unk4C - 1; } - } else if ((var_r31->unk24 & 0x40) != 0) { + } + else if ((var_r31->unk24 & 0x40) != 0) { var_r31->unk24 |= 8; var_r31->unk0 = 0; } var_r31->unk24 |= 4; - } else { + } + else { var_r31->unk24 &= ~8; } if (var_r31->unk0 != var_r31->unk1) { @@ -501,11 +522,13 @@ void fn_1_9DC8(unkSubStruct2* arg0) { if ((var_r31->unk24 & 0x40) == 0) { if (var_r31->unk0 <= 0) { var_r31->unk0 = temp_r30->unk4C; - } else { + } + else { var_r31->unk0 = 0; } } - } else if ((var_r28->unk34 & 0x80000000) != 0) { + } + else if ((var_r28->unk34 & 0x80000000) != 0) { fn_1_A800(arg0->unk0); } var_r27++; @@ -524,15 +547,16 @@ void fn_1_9DC8(unkSubStruct2* arg0) { } } -s16 fn_1_A2D0(u8 arg0, u8 arg1) { +s16 fn_1_A2D0(u8 arg0, u8 arg1) +{ s32 var_r29; s32 var_r28; - unkSubStruct* var_r30; - unkSubStruct2* var_r31; - void* temp_r25; + unkSubStruct *var_r30; + unkSubStruct2 *var_r31; + void *temp_r25; var_r31 = lbl_1_bss_36C.unk40 + 1; - + for (var_r29 = 1; var_r29 < lbl_1_bss_36C.unk30; var_r29++, var_r31++) { if (var_r31->unk8 == 0) { break; @@ -562,7 +586,7 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { var_r31->unk70.x = var_r31->unk70.y = var_r31->unk70.z = 0.0f; var_r31->unk64.x = var_r31->unk64.y = var_r31->unk64.z = 0.0f; var_r31->unk60 = 0; - + for (var_r29 = 0; var_r29 < 0x20; var_r29++) { var_r31->unk7C[var_r29] = 0; } @@ -575,8 +599,7 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { var_r30->unk30 = 0; var_r30->unk31 = 2; var_r30->unk32 = 0; - - + var_r30->unk4C.r = var_r30->unk4C.g = var_r30->unk4C.b = 0; var_r30->unk4C.a = 0xFF; var_r30->unk50.r = var_r30->unk50.g = var_r30->unk50.b = 0xFF; @@ -587,14 +610,14 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { var_r30->unk54[var_r28].unk28 = 1.0f; var_r30->unk54[var_r28].unk2C = 0.0f; } - + var_r30->unk0.x = var_r30->unk0.y = var_r30->unk0.z = 0.0f; var_r30->unkC.x = var_r30->unkC.y = var_r30->unkC.z = 0.0f; var_r30->unk18.x = var_r30->unk18.y = var_r30->unk18.z = 1.0f; var_r30->unk68.x = var_r30->unk68.y = var_r30->unk68.z = 0.0f; var_r30->unk5C.x = var_r30->unk5C.y = var_r30->unk5C.z = 0.0f; var_r30->unk58 = 0; - + for (var_r28 = 0; var_r28 < 0x10; var_r28++) { var_r30->unk74[var_r28] = 0; } @@ -615,7 +638,7 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { DCFlushRangeNoSync(var_r31->unk4C, var_r31->unk48); var_r30 = var_r31->unk3C; var_r31->unk48 = 0; - + for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r30++) { var_r30->unk3C = var_r31->unk4C + var_r31->unk48; var_r31->unk48 += var_r30->unk38; @@ -626,9 +649,10 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { return var_r31->unk0; } -void fn_1_A800(s16 arg0) { +void fn_1_A800(s16 arg0) +{ s32 var_r30; - unkSubStruct2* temp_r31; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -648,7 +672,7 @@ void fn_1_A800(s16 arg0) { if (temp_r31->unk5C != NULL) { HuMemDirectFree(temp_r31->unk5C); } - + for (var_r30 = 0; var_r30 < temp_r31->unk4; var_r30++) { fn_1_AF48(temp_r31->unk34[var_r30]); } @@ -659,23 +683,25 @@ void fn_1_A800(s16 arg0) { } } -void fn_1_A920(s16 arg0, s16 arg1, u8 arg2) { +void fn_1_A920(s16 arg0, s16 arg1, u8 arg2) +{ lbl_1_bss_36C.unk36 = arg0; lbl_1_bss_36C.unk38 = arg1; lbl_1_bss_36C.unk3A = arg2; } -s16 fn_1_A94C(u32 arg0, s16 arg1, s16 arg2) { - AnimData* var_r30; +s16 fn_1_A94C(u32 arg0, s16 arg1, s16 arg2) +{ + AnimData *var_r30; f32 var_f31; f32 var_f30; s32 var_r29; - unkSubStruct3* var_r31; + unkSubStruct3 *var_r31; var_r31 = lbl_1_bss_36C.unk3C + 1; for (var_r29 = 1; var_r29 < lbl_1_bss_36C.unk32; var_r29++, var_r31++) { if ((var_r31->unk6 != 0) && (var_r31->unk8 == arg0)) { - break; + break; } } if (var_r29 < lbl_1_bss_36C.unk32) { @@ -694,16 +720,18 @@ s16 fn_1_A94C(u32 arg0, s16 arg1, s16 arg2) { var_r30 = HuSprAnimMake(arg1, arg2, 2); var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg2 * (arg1 * 2), MEMORY_DEFAULT_NUM); arg1 = arg2 = 0; - } else { + } + else { var_r30 = HuSprAnimRead(HuDataReadNum(arg0, 0x10000000)); } if ((arg1 == 0) || (arg2 == 0)) { arg1 = var_r30->bmp->sizeX; arg2 = var_r30->bmp->sizeY; var_f31 = var_f30 = 1.0f; - } else { - var_f31 = arg1 / (f32) var_r30->bmp->sizeX; - var_f30 = arg2 / (f32) var_r30->bmp->sizeY; + } + else { + var_f31 = arg1 / (f32)var_r30->bmp->sizeX; + var_f30 = arg2 / (f32)var_r30->bmp->sizeY; } var_r31->unk0 = var_r30; var_r31->unk4E = arg1; @@ -723,24 +751,25 @@ s16 fn_1_A94C(u32 arg0, s16 arg1, s16 arg2) { } var_r31->unk48.r = var_r31->unk48.g = var_r31->unk48.b = 0xFF; var_r31->unk48.a = 0xFF; - PSMTXIdentity(var_r31->unk18); + MTXIdentity(var_r31->unk18); var_r31->unkC.x = var_r31->unkC.y = var_r31->unkC.z = 0.0f; return var_r29; } -void fn_1_ACF4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) { +void fn_1_ACF4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) +{ f32 var_f31; f32 var_f30; - AnimData* var_r30; - unkSubStruct3* var_r31; + AnimData *var_r30; + unkSubStruct3 *var_r31; var_r31 = &lbl_1_bss_36C.unk3C[arg0]; HuSprAnimKill(var_r31->unk0); var_r31->unk8 |= 0xFFFF0000; var_r30 = HuSprAnimMake(arg2, arg3, arg1); var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 * (var_r30->bmp->pixSize * arg2), 0x10000000U); - var_f31 = arg4 / (f32) var_r30->bmp->sizeX; - var_f30 = arg5 / (f32) var_r30->bmp->sizeY; + var_f31 = arg4 / (f32)var_r30->bmp->sizeX; + var_f30 = arg5 / (f32)var_r30->bmp->sizeY; var_r31->unk0 = var_r30; var_r31->unk4E = arg2; var_r31->unk50 = arg3; @@ -755,8 +784,9 @@ void fn_1_ACF4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) { var_r31->unk48.a = 0xFF; } -void fn_1_AF48(s16 arg0) { - unkSubStruct3* temp_r31; +void fn_1_AF48(s16 arg0) +{ + unkSubStruct3 *temp_r31; temp_r31 = &lbl_1_bss_36C.unk3C[arg0]; if (temp_r31->unk8 != 0) { @@ -770,7 +800,8 @@ void fn_1_AF48(s16 arg0) { } } -u8 fn_1_AFC8(s16 arg0, u8 arg1, s32 arg2, s16 arg3, s16 arg4) { +u8 fn_1_AFC8(s16 arg0, u8 arg1, s32 arg2, s16 arg3, s16 arg4) +{ s32 temp_r3; temp_r3 = fn_1_A94C(arg2, arg3, arg4); @@ -781,14 +812,16 @@ u8 fn_1_AFC8(s16 arg0, u8 arg1, s32 arg2, s16 arg3, s16 arg4) { return temp_r3; } -u8 fn_1_B038(s16 arg0, u8 arg1, s32 arg2) { +u8 fn_1_B038(s16 arg0, u8 arg1, s32 arg2) +{ u8 var_r31; s32 var_r30; u8 var_r29; if ((var_r30 = fn_1_A94C(arg2, 0, 0)) == 0) { var_r31 = 0; - } else { + } + else { fn_1_B0B8(arg0, arg1, var_r30); var_r31 = var_r30; } @@ -796,12 +829,13 @@ u8 fn_1_B038(s16 arg0, u8 arg1, s32 arg2) { return var_r29; } -s32 fn_1_B0B8(s16 arg0, u8 arg1, s16 arg2) { +s32 fn_1_B0B8(s16 arg0, u8 arg1, s16 arg2) +{ s32 var_r27; - unkSubStruct* var_r29; - unkSubStruct2* temp_r28; - unkSubStruct3* temp_r30; - unkSubStruct4* temp_r31; + unkSubStruct *var_r29; + unkSubStruct2 *temp_r28; + unkSubStruct3 *temp_r30; + unkSubStruct4 *temp_r31; if (arg2 == 0) { return 0; @@ -814,7 +848,7 @@ s32 fn_1_B0B8(s16 arg0, u8 arg1, s16 arg2) { temp_r28->unk34[arg1] = arg2; temp_r30 = &lbl_1_bss_36C.unk3C[arg2]; var_r29 = temp_r28->unk3C; - + for (var_r27 = 0; var_r27 < temp_r28->unk2; var_r27++, var_r29++) { if (arg1 == 0) { var_r29->unk40[0].x = -0.5f * temp_r30->unk4E; @@ -851,13 +885,14 @@ s32 fn_1_B0B8(s16 arg0, u8 arg1, s16 arg2) { return 1; } -void fn_1_B634(s32 arg0) { +void fn_1_B634(s32 arg0) +{ s32 var_r28; s32 var_r27; s16 var_r26; - unkSubStruct2* temp_r31; - unkSubStruct3* temp_r30; - unkSubStruct3* temp_r29; + unkSubStruct2 *temp_r31; + unkSubStruct3 *temp_r30; + unkSubStruct3 *temp_r29; for (var_r28 = 1; var_r28 < lbl_1_bss_36C.unk30; var_r28++) { if ((s16)var_r28 != 0) { @@ -878,7 +913,7 @@ void fn_1_B634(s32 arg0) { if (temp_r31->unk5C != NULL) { HuMemDirectFree(temp_r31->unk5C); } - + for (var_r27 = 0; var_r27 < temp_r31->unk4; var_r27++) { var_r26 = temp_r31->unk34[var_r27]; temp_r29 = &lbl_1_bss_36C.unk3C[var_r26]; @@ -898,7 +933,7 @@ void fn_1_B634(s32 arg0) { } } } - + for (var_r28 = 1; var_r28 < lbl_1_bss_36C.unk32; var_r28++) { temp_r30 = &lbl_1_bss_36C.unk3C[(s16)var_r28]; if (temp_r30->unk8 != 0) { @@ -916,8 +951,9 @@ void fn_1_B634(s32 arg0) { Hu3DModelKill(lbl_1_bss_36C.unk34); } -void fn_1_B864(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct2* temp_r31; +void fn_1_B864(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -930,9 +966,10 @@ void fn_1_B864(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_B8D0(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct* temp_r31; - unkSubStruct2* temp_r30; +void fn_1_B8D0(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct *temp_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -945,10 +982,11 @@ void fn_1_B8D0(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_B940(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_B940(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkSubStruct* var_r31; - unkSubStruct2* temp_r30; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -961,8 +999,9 @@ void fn_1_B940(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_B9B4(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct2* temp_r31; +void fn_1_B9B4(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -975,9 +1014,10 @@ void fn_1_B9B4(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BA38(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct* temp_r31; - unkSubStruct2* temp_r30; +void fn_1_BA38(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct *temp_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -990,15 +1030,16 @@ void fn_1_BA38(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BAC0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_BAC0(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkSubStruct* var_r31; - unkSubStruct2* temp_r30; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk0.x += arg8; var_r31->unk0.y += arg9; @@ -1007,8 +1048,9 @@ void fn_1_BAC0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BB4C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct2* temp_r31; +void fn_1_BB4C(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1021,9 +1063,10 @@ void fn_1_BB4C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BBB8(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct* temp_r31; - unkSubStruct2* temp_r30; +void fn_1_BBB8(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct *temp_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -1036,10 +1079,11 @@ void fn_1_BBB8(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BC28(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_BC28(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkSubStruct* var_r31; - unkSubStruct2* temp_r30; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -1052,8 +1096,9 @@ void fn_1_BC28(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BC9C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct2* temp_r31; +void fn_1_BC9C(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1066,9 +1111,10 @@ void fn_1_BC9C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BD08(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct* temp_r31; - unkSubStruct2* temp_r30; +void fn_1_BD08(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct *temp_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -1081,10 +1127,11 @@ void fn_1_BD08(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BD78(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_BD78(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkSubStruct* var_r31; - unkSubStruct2* temp_r30; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -1097,8 +1144,9 @@ void fn_1_BD78(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BDEC(s16 arg0, s32 arg1) { - unkSubStruct2* temp_r31; +void fn_1_BDEC(s16 arg0, s32 arg1) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1106,9 +1154,10 @@ void fn_1_BDEC(s16 arg0, s32 arg1) { } } -void fn_1_BE30(s16 arg0, s16 arg1, s32 arg2) { - unkSubStruct* temp_r30; - unkSubStruct2* temp_r31; +void fn_1_BE30(s16 arg0, s16 arg1, s32 arg2) +{ + unkSubStruct *temp_r30; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1119,23 +1168,25 @@ void fn_1_BE30(s16 arg0, s16 arg1, s32 arg2) { } } -void fn_1_BEA0(s16 arg0, s32 arg1) { +void fn_1_BEA0(s16 arg0, s32 arg1) +{ s32 var_r30; - unkSubStruct* temp_r29; - unkSubStruct2* temp_r31; + unkSubStruct *temp_r29; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; temp_r29 = temp_r31->unk3C; - + for (var_r30 = 0; var_r30 < temp_r31->unk2; var_r30++) { temp_r29->unk34 |= arg1; } } } -void fn_1_BF10(s16 arg0, u32 arg1) { - unkSubStruct2* temp_r31; +void fn_1_BF10(s16 arg0, u32 arg1) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1143,9 +1194,10 @@ void fn_1_BF10(s16 arg0, u32 arg1) { } } -void fn_1_BF54(s16 arg0, s16 arg1, u32 arg2) { - unkSubStruct* temp_r30; - unkSubStruct2* temp_r31; +void fn_1_BF54(s16 arg0, s16 arg1, u32 arg2) +{ + unkSubStruct *temp_r30; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1156,10 +1208,11 @@ void fn_1_BF54(s16 arg0, s16 arg1, u32 arg2) { } } -void fn_1_BFC4(s16 arg0, u32 arg1) { +void fn_1_BFC4(s16 arg0, u32 arg1) +{ s32 var_r30; - unkSubStruct* temp_r29; - unkSubStruct2* temp_r31; + unkSubStruct *temp_r29; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1171,9 +1224,10 @@ void fn_1_BFC4(s16 arg0, u32 arg1) { } } -s32 fn_1_C034(s16 arg0, s32 arg1) { - unkSubStruct2* temp_r31; - +s32 fn_1_C034(s16 arg0, s32 arg1) +{ + unkSubStruct2 *temp_r31; + if (arg0 == 0) { return 0; } @@ -1185,9 +1239,10 @@ s32 fn_1_C034(s16 arg0, s32 arg1) { return 0; } -s16 fn_1_C090(s16 arg0, s16 arg1, s32 arg2) { - unkSubStruct* temp_r30; - unkSubStruct2* temp_r31; +s16 fn_1_C090(s16 arg0, s16 arg1, s32 arg2) +{ + unkSubStruct *temp_r30; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1195,7 +1250,8 @@ s16 fn_1_C090(s16 arg0, s16 arg1, s32 arg2) { temp_r30 = &temp_r31->unk3C[arg1]; if ((temp_r30->unk34 & arg2) != 0) { arg0 = 1; - } else { + } + else { arg0 = 0; } } @@ -1203,9 +1259,10 @@ s16 fn_1_C090(s16 arg0, s16 arg1, s32 arg2) { return arg0; } -void fn_1_C110(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { - unkSubStruct* temp_r31; - unkSubStruct2* temp_r30; +void fn_1_C110(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) +{ + unkSubStruct *temp_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -1219,15 +1276,16 @@ void fn_1_C110(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { } } -void fn_1_C184(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { +void fn_1_C184(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) +{ s32 var_r29; - unkSubStruct* var_r31; - unkSubStruct2* temp_r30; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk50.r = arg1; var_r31->unk50.g = arg2; @@ -1237,9 +1295,10 @@ void fn_1_C184(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { } } -void fn_1_C1FC(s16 arg0, s16 arg1, u8 arg2) { - unkSubStruct* temp_r30; - unkSubStruct2* temp_r31; +void fn_1_C1FC(s16 arg0, s16 arg1, u8 arg2) +{ + unkSubStruct *temp_r30; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1250,24 +1309,26 @@ void fn_1_C1FC(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_C264(s16 arg0, u8 arg1) { +void fn_1_C264(s16 arg0, u8 arg1) +{ s32 var_r29; - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; var_r30 = temp_r31->unk3C; - + for (var_r29 = 0; var_r29 < temp_r31->unk2; var_r29++, var_r30++) { var_r30->unk30 = arg1; } } } -void fn_1_C2D0(s16 arg0, s16 arg1, u8 arg2) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C2D0(s16 arg0, s16 arg1, u8 arg2) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1278,10 +1339,11 @@ void fn_1_C2D0(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_C338(s16 arg0, u8 arg1) { +void fn_1_C338(s16 arg0, u8 arg1) +{ s32 var_r29; - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1293,9 +1355,10 @@ void fn_1_C338(s16 arg0, u8 arg1) { } } -void fn_1_C3A4(s16 arg0, s16 arg1, u8 arg2) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C3A4(s16 arg0, s16 arg1, u8 arg2) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1306,9 +1369,10 @@ void fn_1_C3A4(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_C410(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C410(s16 arg0, s16 arg1, u8 arg2, u8 arg3) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1319,17 +1383,18 @@ void fn_1_C410(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { } } -void fn_1_C488(s16 arg0, u8 arg1) { +void fn_1_C488(s16 arg0, u8 arg1) +{ s32 var_r28; s32 var_r30; - unkSubStruct* var_r31; - unkSubStruct2* temp_r29; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r29; if (arg0 != 0) { temp_r29 = &lbl_1_bss_36C.unk40[arg0]; - var_r31 = (unkSubStruct*)&temp_r29->unk3C; //! BAD WHY + var_r31 = (unkSubStruct *)&temp_r29->unk3C; //! BAD WHY (void)temp_r29; - + for (var_r28 = 0; var_r28 < temp_r29->unk2; var_r28++, var_r31++) { for (var_r30 = 0; var_r30 < var_r31->unk33; var_r30++) { var_r31->unk54[var_r30].unk24 = arg1; @@ -1338,9 +1403,10 @@ void fn_1_C488(s16 arg0, u8 arg1) { } } -void fn_1_C520(s16 arg0, s16 arg1, f32 arg8) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C520(s16 arg0, s16 arg1, f32 arg8) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1351,9 +1417,10 @@ void fn_1_C520(s16 arg0, s16 arg1, f32 arg8) { } } -void fn_1_C58C(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C58C(s16 arg0, s16 arg1, u8 arg2, f32 arg8) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1364,16 +1431,17 @@ void fn_1_C58C(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { } } -void fn_1_C604(s16 arg0, f32 arg8) { - unkSubStruct* volatile sp8; +void fn_1_C604(s16 arg0, f32 arg8) +{ + unkSubStruct *volatile sp8; s32 var_r29; - unkSubStruct2* temp_r31; + unkSubStruct2 *temp_r31; s32 var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; sp8 = temp_r31->unk3C; - + for (var_r29 = 0; var_r29 < temp_r31->unk2; var_r29++) { for (var_r30 = 0; var_r30 < sp8->unk33; var_r30++) { sp8->unk54[var_r30].unk28 = arg8; @@ -1382,9 +1450,10 @@ void fn_1_C604(s16 arg0, f32 arg8) { } } -void fn_1_C69C(s16 arg0, s16 arg1, u8 arg2) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C69C(s16 arg0, s16 arg1, u8 arg2) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1395,9 +1464,10 @@ void fn_1_C69C(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_C70C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C70C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1410,10 +1480,11 @@ void fn_1_C70C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { // ... -void fn_1_C784(s16 arg0, u8 arg1) { - unkSubStruct* volatile sp8; +void fn_1_C784(s16 arg0, u8 arg1) +{ + unkSubStruct *volatile sp8; s32 var_r29; - unkSubStruct2* temp_r31; + unkSubStruct2 *temp_r31; s32 var_r30; if (arg0 != 0) { @@ -1427,8 +1498,9 @@ void fn_1_C784(s16 arg0, u8 arg1) { } } -void fn_1_C81C(s16 arg0, u8 arg1) { - unkSubStruct3* var_r31; +void fn_1_C81C(s16 arg0, u8 arg1) +{ + unkSubStruct3 *var_r31; if (arg0 != 0) { var_r31 = &lbl_1_bss_36C.unk3C[arg0]; var_r31->unk4 = arg1; diff --git a/src/REL/m417Dll/main.c b/src/REL/m417Dll/main.c index 02a55063..db0d47a6 100644 --- a/src/REL/m417Dll/main.c +++ b/src/REL/m417Dll/main.c @@ -79,7 +79,7 @@ void ObjectSetup(void) sp8.x = sp8.z = 0.0f; sp8.y = lbl_1_data_18.z; mtxRot(sp38, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); - PSMTXMultVec(sp38, &sp8, &sp8); + MTXMultVec(sp38, &sp8, &sp8); Hu3DGLightPosAimSetV(lbl_1_bss_8[0], &sp8, &sp14); lbl_1_data_28.x = 200.0f; lbl_1_data_28.y = 3000.0f; @@ -481,18 +481,18 @@ void fn_1_310C(float arg8, float arg9, float argA, float *arg0, float *arg1, flo Mtx sp8; if (arg8 != 0.0f) { - PSMTXRotRad(sp38, 88, 0.017453292f * arg8); + MTXRotRad(sp38, 88, 0.017453292f * arg8); } else { - PSMTXIdentity(sp38); + MTXIdentity(sp38); } if (arg9 != 0.0f) { - PSMTXRotRad(sp8, 89, 0.017453292f * arg9); - PSMTXConcat(sp38, sp8, sp38); + MTXRotRad(sp8, 89, 0.017453292f * arg9); + MTXConcat(sp38, sp8, sp38); } if (argA != 0.0f) { - PSMTXRotRad(sp8, 90, 0.017453292f * argA); - PSMTXConcat(sp38, sp8, sp38); + MTXRotRad(sp8, 90, 0.017453292f * argA); + MTXConcat(sp38, sp8, sp38); } fn_1_30D8(NULL, arg0, arg1, arg2); } diff --git a/src/REL/m417Dll/player.c b/src/REL/m417Dll/player.c index ca8f7206..81f282b0 100644 --- a/src/REL/m417Dll/player.c +++ b/src/REL/m417Dll/player.c @@ -270,22 +270,22 @@ void fn_1_7C8C(omObjData *object) var_r31->unk_70 = 0.02f; if (var_r31->unk_0C) { Vec sp18 = { 0.0f, 1.0f, 0.0f }; - PSMTXRotAxisRad(var_r31->unk_1C4, &sp18, 0.017453292f * var_r31->unk_64); + MTXRotAxisRad(var_r31->unk_1C4, &sp18, 0.017453292f * var_r31->unk_64); } else { Vec spC = { 0.0f, 1.0f, 0.0f }; - PSMTXIdentity(var_r31->unk_1C4); + MTXIdentity(var_r31->unk_1C4); C_QUATRotAxisRad(&var_r31->unk_184, &spC, 0.0f); var_r31->unk_194 = var_r31->unk_184; - PSQUATInverse(&var_r31->unk_194, &var_r31->unk_1A4); + QUATInverse(&var_r31->unk_194, &var_r31->unk_1A4); var_r31->unk_1B4 = var_r31->unk_1A4; var_r31->unk_164 = var_r31->unk_194; var_r31->unk_174 = var_r31->unk_194; var_r31->unk_144 = 1.0f; var_r31->unk_D4.z += 50.0f; } - PSMTXInverse(var_r31->unk_1C4, var_r31->unk_1F4); - PSMTXCopy(var_r31->unk_1F4, var_r31->unk_224); + MTXInverse(var_r31->unk_1C4, var_r31->unk_1F4); + MTXCopy(var_r31->unk_1F4, var_r31->unk_224); var_r31->unk_134 = var_r31->unk_138 = 0.0f; var_r31->unk_12C = 1.0f; var_r31->unk_08 = -1; @@ -634,7 +634,7 @@ void fn_1_9298(omObjData *object) else if (var_r31->unk_B4.x < 0.0f) { var_r31->unk_B4.x += 360.0f; } - PSMTXRotAxisRad(var_r31->unk_1C4, &sp8, 0.017453292f * var_r31->unk_B4.x); + MTXRotAxisRad(var_r31->unk_1C4, &sp8, 0.017453292f * var_r31->unk_B4.x); } object->rot.y = var_r31->unk_68 = var_r31->unk_B4.x - 180.0f; object->trans.x = var_r31->unk_D4.x = var_r31->unk_F8.x = var_r31->unk_C8.x = var_r31->unk_B4.z * sind(var_r31->unk_B4.x); @@ -836,7 +836,7 @@ void fn_1_9C14(omObjData *object) if (fn_1_26F8() == 2) { sp1C.y += -5.8333335f * var_r31->unk_148; } - PSMTXMultVec(var_r31->unk_224, &sp1C, &sp1C); + MTXMultVec(var_r31->unk_224, &sp1C, &sp1C); VECAdd(&sp1C, &var_r31->unk_E0, &sp1C); sp10 = sp1C; sp10.y = 0.0f; @@ -849,13 +849,13 @@ void fn_1_9C14(omObjData *object) sp1C.y = 80.0f; var_r31->unk_EC = sp1C; spC = atan2d(sp1C.x, sp1C.z); - PSMTXMultVec(var_r31->unk_1C4, &sp1C, &sp1C); + MTXMultVec(var_r31->unk_1C4, &sp1C, &sp1C); VECAdd(&sp1C, &var_r31->unk_F8, &var_r31->unk_D4); if (var_r31->unk_13C >= 0.95f) { var_r31->unk_3C = 1; return; } - PSQUATNormalize(&var_r31->unk_194, &sp28); + QUATNormalize(&var_r31->unk_194, &sp28); if (sp28.w < cosd(25)) { var_r31->unk_3C = 1; } @@ -893,7 +893,7 @@ void fn_1_9FF0(omObjData *object) } } var_r31->unk_1B4 = var_r31->unk_1A4; - PSMTXCopy(var_r31->unk_1F4, var_r31->unk_224); + MTXCopy(var_r31->unk_1F4, var_r31->unk_224); var_r31->unk_104 = var_r31->unk_F8; var_f31 = fn_1_75BC(); for (var_r30 = 0; var_r30 < 8; var_r30++) { @@ -1054,12 +1054,12 @@ void fn_1_9FF0(omObjData *object) C_QUATRotAxisRad(&sp3C, &sp8, M_PI); C_QUATSlerp(&var_r31->unk_184, &sp3C, &var_r31->unk_184, 0.027777778f); } - PSQUATMultiply(&var_r31->unk_174, &var_r31->unk_184, &var_r31->unk_194); - PSQUATMultiply(&var_r31->unk_164, &var_r31->unk_194, &var_r31->unk_194); - PSQUATMultiply(&sp2C, &var_r31->unk_194, &var_r31->unk_194); - PSMTXQuat(var_r31->unk_1C4, &var_r31->unk_194); - PSMTXInverse(var_r31->unk_1C4, var_r31->unk_1F4); - PSQUATInverse(&var_r31->unk_194, &var_r31->unk_1A4); + QUATMultiply(&var_r31->unk_174, &var_r31->unk_184, &var_r31->unk_194); + QUATMultiply(&var_r31->unk_164, &var_r31->unk_194, &var_r31->unk_194); + QUATMultiply(&sp2C, &var_r31->unk_194, &var_r31->unk_194); + MTXQuat(var_r31->unk_1C4, &var_r31->unk_194); + MTXInverse(var_r31->unk_1C4, var_r31->unk_1F4); + QUATInverse(&var_r31->unk_194, &var_r31->unk_1A4); } } @@ -1071,7 +1071,7 @@ void fn_1_AD24(omObjData *object) Hu3DModelPosSetV(object->model[0], &var_r30->unk_D4); Hu3DModelRotSet(object->model[0], 0.0f, var_r30->unk_64, 0.0f); Hu3DModelPosSetV(object->model[1], &var_r30->unk_F8); - PSMTXCopy(var_r30->unk_1C4, Hu3DData[object->model[1]].unk_F0); + MTXCopy(var_r30->unk_1C4, Hu3DData[object->model[1]].unk_F0); } void fn_1_ADC4(omObjData *object) diff --git a/src/REL/m417Dll/water.c b/src/REL/m417Dll/water.c index 4313fa29..6217da9f 100644 --- a/src/REL/m417Dll/water.c +++ b/src/REL/m417Dll/water.c @@ -567,13 +567,13 @@ void fn_1_4E64(omObjData *object) var_r31->unk_24 = 1.0f; } } - PSMTXTrans(spC8, var_r31->unk_04.x, var_r31->unk_04.y, var_r31->unk_04.z); - PSMTXRotRad(sp98, 89, 0.017453292f * var_r31->unk_10); - PSMTXConcat(spC8, sp98, sp68); + MTXTrans(spC8, var_r31->unk_04.x, var_r31->unk_04.y, var_r31->unk_04.z); + MTXRotRad(sp98, 89, 0.017453292f * var_r31->unk_10); + MTXConcat(spC8, sp98, sp68); var_f31 = var_r31->unk_18 * var_r31->unk_1C; - PSMTXScale(spC8, var_f31, var_f31, var_f31 * var_r31->unk_28); - PSMTXConcat(sp68, spC8, sp98); - PSMTXInverse(sp98, spC8); + MTXScale(spC8, var_f31, var_f31, var_f31 * var_r31->unk_28); + MTXConcat(sp68, spC8, sp98); + MTXInverse(sp98, spC8); PSMTXReorder(spC8, sp38); PSMTXROMultVecArray(sp38, lbl_1_bss_178.unk_2C, lbl_1_bss_178.unk_34, lbl_1_bss_178.unk_18); sp2C.x = (0.15f * var_r31->unk_18) * (var_r31->unk_24 * sind(var_r31->unk_10)); @@ -761,7 +761,7 @@ void fn_1_604C(ModelData *arg0, Mtx arg1) DCStoreRangeNoSync(&sp10, 4); PPCSync(); GXLoadPosMtxImm(arg1, 0); - PSMTXInvXpose(arg1, sp98); + MTXInvXpose(arg1, sp98); GXLoadNrmMtxImm(sp98, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -773,29 +773,29 @@ void fn_1_604C(ModelData *arg0, Mtx arg1) HuSprTexLoad(lbl_1_bss_60, 0, 3, GX_MIRROR, GX_MIRROR, GX_LINEAR); GXSetNumTexGens(5); C_MTXLightPerspective(sp38, 35.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, sp98); - PSMTXConcat(sp98, arg1, sp98); - PSMTXConcat(sp38, Hu3DCameraMtx, sp68); - PSMTXConcat(sp68, sp98, sp68); + MTXInverse(Hu3DCameraMtx, sp98); + MTXConcat(sp98, arg1, sp98); + MTXConcat(sp38, Hu3DCameraMtx, sp68); + MTXConcat(sp68, sp98, sp68); sp68[1][3] -= 44.0f; GXLoadTexMtxImm(sp68, 30, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 30, GX_FALSE, 125); C_MTXLightPerspective(sp38, 70.0f, 1.0f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, sp98); - PSMTXConcat(sp98, arg1, sp98); - PSMTXConcat(sp38, Hu3DCameraMtx, sp68); - PSMTXConcat(sp68, sp98, sp68); + MTXInverse(Hu3DCameraMtx, sp98); + MTXConcat(sp98, arg1, sp98); + MTXConcat(sp38, Hu3DCameraMtx, sp68); + MTXConcat(sp68, sp98, sp68); GXLoadTexMtxImm(sp68, 36, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX3x4, GX_TG_POS, 36, GX_FALSE, 125); - PSMTXRotRad(sp68, 90, 0.017453292f * lbl_1_bss_178.unk_6B8); + MTXRotRad(sp68, 90, 0.017453292f * lbl_1_bss_178.unk_6B8); GXLoadTexMtxImm(sp68, 39, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD3, GX_TG_MTX2x4, GX_TG_TEXCOORD0, 39, GX_FALSE, 125); - PSMTXScale(sp98, 1.2f, -1.2f, 1.2f); - PSMTXConcat(sp68, sp98, sp68); + MTXScale(sp98, 1.2f, -1.2f, 1.2f); + MTXConcat(sp68, sp98, sp68); GXLoadTexMtxImm(sp68, 42, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD4, GX_TG_MTX2x4, GX_TG_TEXCOORD0, 42, GX_FALSE, 125); - PSMTXScale(sp98, 0.49f, -0.49f, 0.49f); - PSMTXConcat(sp98, Hu3DCameraMtx, sp68); + MTXScale(sp98, 0.49f, -0.49f, 0.49f); + MTXConcat(sp98, Hu3DCameraMtx, sp68); sp68[0][3] = 0.5f; sp68[1][3] = 0.5f; GXLoadTexMtxImm(sp68, 33, GX_MTX2x4); @@ -804,18 +804,18 @@ void fn_1_604C(ModelData *arg0, Mtx arg1) GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); - PSMTXScale(sp68, -0.5f, -0.5f, 0.5f); + MTXScale(sp68, -0.5f, -0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])sp68, -2); GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(GX_TEVSTAGE1, GX_INDTEXSTAGE1, GX_TRUE, GX_FALSE, GX_ITM_1); - PSMTXScale(sp68, 0.5f, 0.5f, 0.5f); + MTXScale(sp68, 0.5f, 0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_1, (float(*)[3])sp68, 0); GXSetIndTexOrder(GX_INDTEXSTAGE2, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE2, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(GX_TEVSTAGE2, GX_INDTEXSTAGE2, GX_TRUE, GX_FALSE, GX_ITM_2); GXSetTevIndWarp(GX_TEVSTAGE3, GX_INDTEXSTAGE2, GX_TRUE, GX_FALSE, GX_ITM_2); - PSMTXScale(sp68, -0.65f, -0.65f, 0.65f); + MTXScale(sp68, -0.65f, -0.65f, 0.65f); GXSetIndTexMtx(GX_ITM_2, (float(*)[3])sp68, -3); GXSetNumTevStages(5); GXSetTevColor(GX_TEVREG0, sp14); diff --git a/src/REL/m419Dll/main.c b/src/REL/m419Dll/main.c index e0dfba50..83ae359e 100755 --- a/src/REL/m419Dll/main.c +++ b/src/REL/m419Dll/main.c @@ -17,7 +17,7 @@ #include "ext_math.h" typedef struct { - /* 0x00 */ omObjData* unk00; + /* 0x00 */ omObjData *unk00; /* 0x04 */ char unk04[0xB4]; } StructBssC8; // Size 0xB8 @@ -109,8 +109,8 @@ typedef struct { void fn_1_57C(s16 arg0); void fn_1_AD0(s16 arg0); void fn_1_F58(void); -void fn_1_2254(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_2744(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_2254(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_2744(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_47E4(void); void fn_1_4B20(void); void fn_1_9AF0(void); @@ -135,52 +135,32 @@ s32 lbl_1_bss_580; StructBss200 lbl_1_bss_200[4]; StructBss1E8 lbl_1_bss_1E8[2]; StructBss190 lbl_1_bss_190[2]; -Process* lbl_1_bss_180[4]; +Process *lbl_1_bss_180[4]; StructBssC8 lbl_1_bss_C8; Vec lbl_1_bss_BC; Vec lbl_1_bss_B0; Vec lbl_1_bss_A4; -void* lbl_1_bss_84[8]; -void* lbl_1_bss_64[8]; +void *lbl_1_bss_84[8]; +void *lbl_1_bss_64[8]; u8 lbl_1_bss_60; Vec lbl_1_bss_0[8]; s32 lbl_1_data_0[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; -s32 lbl_1_data_20[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 21), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 26), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), - DATA_MAKE_NUM(DATADIR_M419, 0), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 25), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 13), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 16) -}; +s32 lbl_1_data_20[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 21), DATA_MAKE_NUM(DATADIR_MARIOMOT, 26), DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), DATA_MAKE_NUM(DATADIR_M419, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 25), DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), DATA_MAKE_NUM(DATADIR_MARIOMOT, 13), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 16) }; -s32 lbl_1_data_4C[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 79), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 22) -}; +s32 lbl_1_data_4C[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 79), DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 22) }; -Vec lbl_1_data_5C[] = { - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f } -}; +Vec lbl_1_data_5C[] = { { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f } }; -void ObjectSetup(void) { - Process* temp_r3; +void ObjectSetup(void) +{ + Process *temp_r3; temp_r3 = omInitObjMan(50, 0x2000); omGameSysInit(temp_r3); @@ -218,7 +198,8 @@ void ObjectSetup(void) { WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); } -void fn_1_4A0(void) { +void fn_1_4A0(void) +{ s16 i; Hu3DLayerHookSet(1, fn_1_57C); @@ -229,10 +210,11 @@ void fn_1_4A0(void) { } } -void fn_1_57C(s16 arg0) { +void fn_1_57C(s16 arg0) +{ Vec sp14; Vec sp8; - ModelData* temp_r30; + ModelData *temp_r30; s16 var_r31; temp_r30 = &Hu3DData[lbl_1_bss_5BE]; @@ -266,14 +248,15 @@ void fn_1_57C(s16 arg0) { GXCopyTex(lbl_1_bss_64[lbl_1_bss_60], 0); } -void fn_1_848(ModelData* arg0, Mtx arg1) { +void fn_1_848(ModelData *arg0, Mtx arg1) +{ Mtx44 sp10; GXColor spC; s16 i; C_MTXOrtho(sp10, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 8000.0f); GXSetProjection(sp10, GX_ORTHOGRAPHIC); - PSMTXIdentity(arg1); + MTXIdentity(arg1); GXLoadPosMtxImm(arg1, GX_PNMTX0); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); @@ -302,7 +285,8 @@ void fn_1_848(ModelData* arg0, Mtx arg1) { GXSetZTexture(GX_ZT_DISABLE, GX_TF_Z8, 0); } -void fn_1_AD0(s16 arg0) { +void fn_1_AD0(s16 arg0) +{ GXTexObj sp58; GXTexObj sp38; Vec sp2C; @@ -341,16 +325,17 @@ void fn_1_AD0(s16 arg0) { GXEnd(); } -void fn_1_F58(void) { - void* var_r29; - StructBss1E8* temp_r26; - StructBss200* temp_r31; - Process* var_r25; +void fn_1_F58(void) +{ + void *var_r29; + StructBss1E8 *temp_r26; + StructBss200 *temp_r31; + Process *var_r25; float temp_f31; s16 var_r30; s32 var_r22; s32 var_r23; - AnimData* var_r21; + AnimData *var_r21; s32 i; s32 j; @@ -474,7 +459,8 @@ void fn_1_F58(void) { var_r25 = HuPrcChildCreate(fn_1_9AF0, 0x2000, 0x3000, 0, HuPrcCurrentGet()); var_r25->user_data = temp_r31; lbl_1_bss_180[i] = var_r25; - } else { + } + else { temp_r31->unk02 = CharModelCreate(lbl_1_data_0[GWPlayerCfg[i].character], 2); Hu3DModelLayerSet(temp_r31->unk00, 1); CharModelLayerSetAll(2); @@ -559,25 +545,30 @@ void fn_1_F58(void) { HuPrcChildCreate(fn_1_104A0, 0x1000, 0x1000, 0, HuPrcCurrentGet()); } -float fn_1_1F84(float arg0, float arg1) { +float fn_1_1F84(float arg0, float arg1) +{ float var_f31; float var_f30; if (arg0 > 600.0f - arg1) { var_f31 = 600.0f + 200.0f * ((800.0f - (arg0 + arg1)) / 200.0f); - } else if (arg0 < -(600.0f - arg1)) { + } + else if (arg0 < -(600.0f - arg1)) { var_f31 = 600.0f + 200.0f * ((800.0f - ABS_INV(arg0 - arg1)) / 200.0f); - } else { + } + else { var_f31 = 800.0f; } return var_f31; } -float fn_1_20AC(float arg0, float arg1) { +float fn_1_20AC(float arg0, float arg1) +{ return fn_1_1F84(arg0, arg1); } -float fn_1_21D4(float arg0) { +float fn_1_21D4(float arg0) +{ while (arg0 >= 360.0f || arg0 < 0.0f) { if (arg0 >= 360.0f) { arg0 -= 360.0f; @@ -589,9 +580,10 @@ float fn_1_21D4(float arg0) { return arg0; } -void fn_1_2254(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; - StructBss200* temp_r28; +void fn_1_2254(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + StructBss200 *temp_r28; float var_f31; float temp_f29; float var_f30; @@ -639,7 +631,7 @@ void fn_1_2254(ModelData* model, ParticleData* particle, Mtx matrix) { var_r31 = particle->unk_48; for (k = 0; k < particle->unk_30; k++, var_r31++) { if (var_r31->unk14.x != 0.0f) { - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.x *= 0.95f; var_r31->unk08.z *= 0.95f; if (var_r31->unk08.y > 0.1f) { @@ -669,9 +661,10 @@ void fn_1_2254(ModelData* model, ParticleData* particle, Mtx matrix) { } } -void fn_1_2744(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; - StructBss200* temp_r28; +void fn_1_2744(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + StructBss200 *temp_r28; float temp_f31; float temp_f30; s32 var_r27; @@ -729,7 +722,7 @@ void fn_1_2744(ModelData* model, ParticleData* particle, Mtx matrix) { var_r31->unk20 = -1.0f; } if (var_r31->unk14.x != 0.0f && var_r31->unk24 != 0.0f) { - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); if (var_r31->unk08.y > 1.0f) { var_r31->unk08.y -= 0.3f; } @@ -754,8 +747,9 @@ void fn_1_2744(ModelData* model, ParticleData* particle, Mtx matrix) { } } -s32 fn_1_2BDC(StructBss190* arg0) { - StructBss200* temp_r31; +s32 fn_1_2BDC(StructBss190 *arg0) +{ + StructBss200 *temp_r31; Vec sp24; Vec sp18; Vec spC; @@ -777,7 +771,8 @@ s32 fn_1_2BDC(StructBss190* arg0) { return var_r28; } -void fn_1_2DFC(StructBss190* arg0) { +void fn_1_2DFC(StructBss190 *arg0) +{ float temp_f31; float var_f26; float var_f25; @@ -817,13 +812,14 @@ void fn_1_2DFC(StructBss190* arg0) { } } -void fn_1_32F8(void) { - StructBss200* temp_r31; +void fn_1_32F8(void) +{ + StructBss200 *temp_r31; float var_f31; s32 var_r29; s32 i; - var_r29 = (s32) HuPrcCurrentGet()->user_data; + var_r29 = (s32)HuPrcCurrentGet()->user_data; temp_r31 = &lbl_1_bss_200[var_r29]; for (i = 0, var_f31 = 1.0f; i < 30; i++, var_f31 -= 0.033333335f) { Hu3DModelAmbSet(temp_r31->unk00, 1.0f, var_f31, var_f31); @@ -844,9 +840,10 @@ void fn_1_32F8(void) { } } -void fn_1_344C(void) { - StructBss190* temp_r31; - StructBss200* temp_r30; +void fn_1_344C(void) +{ + StructBss190 *temp_r31; + StructBss200 *temp_r30; Vec spAC; Vec spA0; Vec sp94; @@ -887,7 +884,8 @@ void fn_1_344C(void) { Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04); Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_LOOP); Hu3DModelTPLvlSet(temp_r31->unk00, 1.0f); - } else { + } + else { Hu3DModelAttrReset(temp_r31->unk02, 1); } Hu3DModelAttrReset(temp_r31->unk00, 1); @@ -910,14 +908,16 @@ void fn_1_344C(void) { temp_r30 = &lbl_1_bss_200[var_r25]; if (GWPlayerCfg[temp_r30->unk28].group == 0) { sp5C = 150.0f; - } else { + } + else { sp5C = 400.0f; } if (temp_r31->unk18 < sp5C) { if (temp_r31->unk18 < sp5C && temp_r31->unk18 > sp5C - 50.0f) { var_f23 = 15.0f; sp58 = 0.9f; - } else { + } + else { sp6C = atan2d(temp_r31->unk14 - temp_r30->unk54, temp_r31->unk1C - temp_r30->unk5C); temp_r31->unk0C = fn_1_21D4(180.0f + temp_r31->unk0C); temp_r31->unk0C = sp6C - (temp_r31->unk0C - sp6C); @@ -985,12 +985,14 @@ void fn_1_344C(void) { temp_r30->unk94 = 3.0f; lbl_1_bss_5BC = 1; HuAudFXPlay(0x5E6); - } else { + } + else { temp_r30->unk90 = 6.75f; temp_r30->unk98 = 0.99f; HuAudFXPlay(0x5E2); } - } else if (temp_r30->unk24 == 0) { + } + else if (temp_r30->unk24 == 0) { temp_r30->unk34 = 4; HuAudPlayerVoicePlay(temp_r30->unk28, 0x128); HuAudFXPlay(0x5E9); @@ -1004,7 +1006,8 @@ void fn_1_344C(void) { } if (var_r24 & 1) { Hu3DModelAttrReset(var_r22, 1); - } else { + } + else { Hu3DModelAttrSet(var_r22, 1); } var_r24++; @@ -1024,7 +1027,8 @@ fn_1_344C_label: } Hu3DModelAttrSet(temp_r31->unk00, 1); Hu3DModelAttrSet(temp_r31->unk02, 1); - } else { + } + else { if (temp_r31->unk08 == 0) { temp_r30 = &lbl_1_bss_200[var_r25]; sp6C = atan2d(temp_r31->unk14 - temp_r30->unk54, temp_r31->unk1C - temp_r30->unk5C); @@ -1054,11 +1058,12 @@ fn_1_344C_label: } } -void fn_1_47E4(void) { - StructBss1E8* var_r31; - StructBss190* var_r30; - ModelData* temp_r29; - Process* temp_r3; +void fn_1_47E4(void) +{ + StructBss1E8 *var_r31; + StructBss190 *var_r30; + ModelData *temp_r29; + Process *temp_r3; s32 var_r27; var_r31 = &lbl_1_bss_1E8[0]; @@ -1077,7 +1082,8 @@ void fn_1_47E4(void) { lbl_1_bss_580++; var_r30 = &lbl_1_bss_190[1]; Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); - } else { + } + else { Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[3], 0.0f, 5.0f, HU3D_MOTATTR_NONE); } HuPrcVSleep(); @@ -1119,11 +1125,12 @@ void fn_1_47E4(void) { } } -void fn_1_4B20(void) { - StructBss1E8* var_r31; - StructBss190* var_r30; - Process* temp_r3; - ModelData* temp_r29; +void fn_1_4B20(void) +{ + StructBss1E8 *var_r31; + StructBss190 *var_r30; + Process *temp_r3; + ModelData *temp_r29; s32 var_r27; var_r31 = &lbl_1_bss_1E8[1]; @@ -1142,7 +1149,8 @@ void fn_1_4B20(void) { lbl_1_bss_580++; var_r30 = &lbl_1_bss_190[1]; Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); - } else { + } + else { Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[3], 0.0f, 5.0f, HU3D_MOTATTR_NONE); } HuPrcVSleep(); @@ -1183,63 +1191,72 @@ void fn_1_4B20(void) { } } -s8 fn_1_4E54(s32 arg0, s32 arg1) { - StructBss200* temp_r31; +s8 fn_1_4E54(s32 arg0, s32 arg1) +{ + StructBss200 *temp_r31; s8 var_r30; temp_r31 = &lbl_1_bss_200[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { (arg1 != 0) ? (var_r30 = HuPadStkY[temp_r31->unk30]) : (var_r30 = HuPadStkX[temp_r31->unk30]); - } else { + } + else { (arg1 != 0) ? (var_r30 = temp_r31->unkA1) : (var_r30 = temp_r31->unkA0); } return var_r30; } -u8 fn_1_4F0C(s32 arg0, s32 arg1) { - StructBss200* temp_r31; +u8 fn_1_4F0C(s32 arg0, s32 arg1) +{ + StructBss200 *temp_r31; s8 var_r30; temp_r31 = &lbl_1_bss_200[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { (arg1 != 0) ? (var_r30 = HuPadTrigR[temp_r31->unk30]) : (var_r30 = HuPadTrigL[temp_r31->unk30]); - } else { + } + else { (arg1 != 0) ? (var_r30 = temp_r31->unkA2) : (var_r30 = temp_r31->unkA3); } return var_r30; } -u16 fn_1_4FCC(s32 arg0) { - StructBss200* temp_r31; +u16 fn_1_4FCC(s32 arg0) +{ + StructBss200 *temp_r31; u16 var_r30; temp_r31 = &lbl_1_bss_200[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { var_r30 = HuPadBtnDown[temp_r31->unk30]; - } else { + } + else { var_r30 = temp_r31->unkA6; } return var_r30; } -u16 fn_1_5038(s32 arg0) { - StructBss200* temp_r31; +u16 fn_1_5038(s32 arg0) +{ + StructBss200 *temp_r31; u16 var_r30; temp_r31 = &lbl_1_bss_200[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { var_r30 = HuPadBtn[temp_r31->unk30]; - } else { + } + else { var_r30 = temp_r31->unkA4; } return var_r30; } -s32 fn_1_50A4(StructBss200* arg0, float arg1, s32 arg2) { +s32 fn_1_50A4(StructBss200 *arg0, float arg1, s32 arg2) +{ Vec sp2C; Vec sp20; Vec sp14; - StructBss200* temp_r30; + StructBss200 *temp_r30; s32 var_r28; float var_f27; float var_f28; @@ -1261,7 +1278,8 @@ s32 fn_1_50A4(StructBss200* arg0, float arg1, s32 arg2) { return var_r28; } -s32 fn_1_52E8(StructBss200* arg0) { +s32 fn_1_52E8(StructBss200 *arg0) +{ float var_f25; float var_f24; s32 var_r28; @@ -1287,7 +1305,8 @@ s32 fn_1_52E8(StructBss200* arg0) { return var_r28; } -float fn_1_5858(float arg0, float arg1, float arg2) { +float fn_1_5858(float arg0, float arg1, float arg2) +{ float var_f31; float var_f30; @@ -1305,7 +1324,8 @@ float fn_1_5858(float arg0, float arg1, float arg2) { return var_f30; } -float fn_1_595C(float arg0, float arg1, StructBss200* arg2) { +float fn_1_595C(float arg0, float arg1, StructBss200 *arg2) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -1316,28 +1336,33 @@ float fn_1_595C(float arg0, float arg1, StructBss200* arg2) { return VECMagXZ(&sp14); } -float fn_1_5AD8(float arg0, float arg1) { +float fn_1_5AD8(float arg0, float arg1) +{ float var_f31; if (arg0 > arg1) { var_f31 = fn_1_21D4(arg0 - arg1); if (var_f31 < 180.0f) { var_f31 = fn_1_21D4(arg1 + var_f31 + 180.0f); - } else { + } + else { var_f31 = fn_1_21D4(arg1 - var_f31); } - } else { + } + else { var_f31 = fn_1_21D4(arg1 - arg0); if (var_f31 < 180.0f) { var_f31 = fn_1_21D4(arg0 + var_f31 + 180.0f); - } else { + } + else { var_f31 = fn_1_21D4(arg0 - var_f31); } } return var_f31; } -s32 fn_1_5F34(StructBss200* arg0, float arg1) { +s32 fn_1_5F34(StructBss200 *arg0, float arg1) +{ s32 var_r31; float var_f25; float var_f24; @@ -1345,17 +1370,15 @@ s32 fn_1_5F34(StructBss200* arg0, float arg1) { var_f25 = fn_1_1F84(arg0->unk5C, arg0->unk8C); var_f24 = fn_1_1F84(arg0->unk54, arg0->unk8C); var_r31 = 0; - if (arg0->unk54 > var_f25 - arg0->unk8C - arg1 - || arg0->unk54 < -(var_f25 - arg0->unk8C - arg1) - || arg0->unk5C > var_f24 - arg0->unk8C - arg1 - || arg0->unk5C < -(var_f24 - arg0->unk8C - arg1)) - { + if (arg0->unk54 > var_f25 - arg0->unk8C - arg1 || arg0->unk54 < -(var_f25 - arg0->unk8C - arg1) || arg0->unk5C > var_f24 - arg0->unk8C - arg1 + || arg0->unk5C < -(var_f24 - arg0->unk8C - arg1)) { var_r31 = 1; } return var_r31; } -void fn_1_628C(StructBss200* arg0) { +void fn_1_628C(StructBss200 *arg0) +{ Vec spC; HuSetVecF(&spC, fn_1_4E54(arg0->unk28, 0) / 4.0f, 0.0, -fn_1_4E54(arg0->unk28, 1) / 4.0f); @@ -1373,10 +1396,11 @@ void fn_1_628C(StructBss200* arg0) { } } -void fn_1_65C0(Vec* arg0, StructBss200** arg1) { +void fn_1_65C0(Vec *arg0, StructBss200 **arg1) +{ float temp_f31; - StructBss200* temp_r31; - StructBss200* temp_r30; + StructBss200 *temp_r31; + StructBss200 *temp_r30; s32 var_r28; s32 i; @@ -1387,7 +1411,8 @@ void fn_1_65C0(Vec* arg0, StructBss200** arg1) { temp_f31 = ABS_INV(temp_r31->unk54 - temp_r30->unk54) / 2.0f; if (temp_r31->unk54 > temp_r30->unk54) { arg0[i].x = temp_r31->unk54 - temp_f31; - } else { + } + else { arg0[i].x = temp_r30->unk54 - temp_f31; } temp_r31 = arg1[i]; @@ -1396,14 +1421,16 @@ void fn_1_65C0(Vec* arg0, StructBss200** arg1) { temp_f31 = ABS_INV(temp_r31->unk5C - temp_r30->unk5C) / 2.0f; if (temp_r31->unk5C > temp_r30->unk5C) { arg0[i].z = temp_r31->unk5C - temp_f31; - } else { + } + else { arg0[i].z = temp_r30->unk5C - temp_f31; } } } -s32 fn_1_67A0(float arg0, float arg1, StructBss200* arg2, StructBss200** arg3) { - StructBss200* var_r31; +s32 fn_1_67A0(float arg0, float arg1, StructBss200 *arg2, StructBss200 **arg3) +{ + StructBss200 *var_r31; StructBss200 sp5C; float var_f29; s32 var_r27; @@ -1435,9 +1462,10 @@ s32 fn_1_67A0(float arg0, float arg1, StructBss200* arg2, StructBss200** arg3) { return var_r27; } -s32 fn_1_6D04(void) { - StructBss200* sp8[3]; - StructBss200* var_r29; +s32 fn_1_6D04(void) +{ + StructBss200 *sp8[3]; + StructBss200 *var_r29; s32 var_r30; s32 var_r28; s32 i; @@ -1445,7 +1473,8 @@ s32 fn_1_6D04(void) { for (i = 0, var_r30 = 0; i < 4; i++) { if (i == lbl_1_bss_5AC) { var_r29 = &lbl_1_bss_200[i]; - } else { + } + else { sp8[var_r30++] = &lbl_1_bss_200[i]; } } @@ -1489,13 +1518,14 @@ s32 fn_1_6D04(void) { return var_r28; } -float fn_1_6E9C(StructBss200* arg0) { +float fn_1_6E9C(StructBss200 *arg0) +{ s32 sp88[3]; s32 sp50[2]; float sp44; float var_f20; float sp48[2]; - StructBss200* sp7C[3]; + StructBss200 *sp7C[3]; s32 var_r29; s32 var_r28; s32 i; @@ -1510,7 +1540,8 @@ float fn_1_6E9C(StructBss200* arg0) { if (sp44 < arg0->unk8C + sp7C[i]->unk8C + 100.0f) { sp88[i] = 1; var_r28++; - } else { + } + else { sp88[i] = -1; } } @@ -1536,17 +1567,19 @@ float fn_1_6E9C(StructBss200* arg0) { var_f20 = fn_1_5AD8(sp48[0], sp48[1]); break; } - if (var_f20 != -1.0f); + if (var_f20 != -1.0f) + ; if (var_f20 != -1.0f) { var_f20 = fn_1_21D4(var_f20); } return var_f20; } -void fn_1_78B4(StructBss200* arg0) { - StructBss200* temp_r18; - StructBss200* var_r17; - StructBss200* sp224[3]; +void fn_1_78B4(StructBss200 *arg0) +{ + StructBss200 *temp_r18; + StructBss200 *var_r17; + StructBss200 *sp224[3]; Vec sp254[3]; Vec sp230[3]; s32 sp218[3]; @@ -1638,7 +1671,8 @@ void fn_1_78B4(StructBss200* arg0) { if (var_f26 > 700.0f) { sp218[var_r30] = 1; sp120++; - } else { + } + else { sp218[var_r30] = 0; } if (var_f26 > var_f30) { @@ -1659,7 +1693,8 @@ void fn_1_78B4(StructBss200* arg0) { } arg0->unkBC = var_r21; arg0->unkCC = var_f27; - } else { + } + else { var_r21 = arg0->unkBC; var_f27 = arg0->unkCC; } @@ -1676,7 +1711,8 @@ void fn_1_78B4(StructBss200* arg0) { var_f28 = 800.0 * cosd(arg0->unkC4); } } - } else { + } + else { arg0->unkAC = 0; arg0->unkB4 = 0; arg0->unkBC = -1; @@ -1703,11 +1739,13 @@ void fn_1_78B4(StructBss200* arg0) { var_f28 = 800.0 * cosd(arg0->unkC4); if (fn_1_5F34(arg0, 10.0f)) { arg0->unkB0 &= ~0x20; - } else { + } + else { arg0->unkB0 |= 0x20; } } - } else { + } + else { if (arg0->unk54 >= 0.0f && arg0->unk5C < 0.0f) { sp138[0] = 0; sp138[1] = 1; @@ -1790,17 +1828,21 @@ void fn_1_78B4(StructBss200* arg0) { if (frandmod(2) != 0) { arg0->unkB0 |= 4; arg0->unkC0 = 30; - } else { + } + else { arg0->unkB0 |= 8; arg0->unkC0 = 30; } - } else if (sp130[0] != 0) { + } + else if (sp130[0] != 0) { arg0->unkB0 |= 4; arg0->unkC0 = 30; - } else if (sp130[1] != 0) { + } + else if (sp130[1] != 0) { arg0->unkB0 |= 8; arg0->unkC0 = 30; - } else { + } + else { arg0->unkB0 |= 0x10; } } @@ -1808,12 +1850,14 @@ void fn_1_78B4(StructBss200* arg0) { var_f27 = fn_1_21D4(atan2d(arg0->unk54, arg0->unk5C)); if (arg0->unkB0 & 4) { var_f27 += 10.0f; - } else { + } + else { var_f27 -= 10.0f; } var_f29 = 800.0 * sind(var_f27); var_f28 = 800.0 * cosd(var_f27); - } else { + } + else { var_f29 = arg0->unk54; var_f28 = arg0->unk5C; } @@ -1830,7 +1874,8 @@ void fn_1_78B4(StructBss200* arg0) { } if (var_f26 < 30.0f) { sp128 = 10.0f; - } else { + } + else { sp128 = 50.0f; } var_f27 = fn_1_21D4(atan2d(var_f29 - arg0->unk54, var_f28 - arg0->unk5C)); @@ -1839,9 +1884,10 @@ void fn_1_78B4(StructBss200* arg0) { } } -void fn_1_9AF0(void) { - StructBss200* temp_r31; - StructBss200* temp_r29; +void fn_1_9AF0(void) +{ + StructBss200 *temp_r31; + StructBss200 *temp_r29; Vec sp6C; float sp44; float sp40; @@ -1895,7 +1941,8 @@ void fn_1_9AF0(void) { HuAudPlayerVoicePlay(temp_r31->unk28, 0x119); } temp_r31->unk44--; - } else { + } + else { CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[7], 0.0f, 10.0f, HU3D_MOTATTR_NONE); temp_r31->unk44 = 20; temp_r31->unk34 = 6; @@ -1905,7 +1952,8 @@ void fn_1_9AF0(void) { if (temp_r31->unk44 != 0) { Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); temp_r31->unk44--; - } else if (Hu3DMotionEndCheck(temp_r31->unk00) == 1) { + } + else if (Hu3DMotionEndCheck(temp_r31->unk00) == 1) { CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[4], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); temp_r31->unk44 = 10; temp_r31->unk34 = 7; @@ -1914,7 +1962,8 @@ void fn_1_9AF0(void) { case 7: if (temp_r31->unk44 != 0) { temp_r31->unk44--; - } else { + } + else { CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 2.0f); temp_r31->unk34 = 0; } @@ -1935,15 +1984,19 @@ void fn_1_9AF0(void) { if (temp_r31->unk90 >= 8.0f) { if (temp_r31->unk34 != 3) { temp_r31->unk34 = 3; - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + CharModelMotionShiftSet( + lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } - } else if (temp_r31->unk34 != 2) { + } + else if (temp_r31->unk34 != 2) { temp_r31->unk34 = 2; - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + CharModelMotionShiftSet( + lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } temp_r31->unk54 += sp6C.x * temp_r31->unk94; temp_r31->unk5C += sp6C.z * temp_r31->unk94; - } else if (temp_r31->unk34 != 0) { + } + else if (temp_r31->unk34 != 0) { temp_r31->unk34 = 0; CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[4]); CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 2.0f); @@ -1979,7 +2032,8 @@ void fn_1_9AF0(void) { HuPrcVSleep(); } Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, 0.0f, temp_r31->unk70); - } else { + } + else { omVibrate(temp_r31->unk28, 12, 4, 2); HuAudPlayerVoicePlay(temp_r31->unk28, 0x123); HuAudFXPlay(0x5EC); @@ -1999,7 +2053,8 @@ void fn_1_9AF0(void) { var_f28 = fn_1_21D4(atan2d(temp_r31->unk54 - temp_r29->unk54, temp_r31->unk5C - temp_r29->unk5C)); if (ABS_INV(var_f28 - temp_r31->unk6C) > 90.0f && ABS_INV(var_f28 - temp_r31->unk6C) < 270.0f) { CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk18, 0.0f, 5.0f, HU3D_MOTATTR_NONE); - } else { + } + else { CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk1A, 0.0f, 5.0f, HU3D_MOTATTR_NONE); } sp44 = temp_r31->unk58; @@ -2026,7 +2081,8 @@ void fn_1_9AF0(void) { } } -float fn_1_ADFC(s32 arg0, float arg1, float arg2) { +float fn_1_ADFC(s32 arg0, float arg1, float arg2) +{ float temp_f31; float var_f29; @@ -2037,16 +2093,19 @@ float fn_1_ADFC(s32 arg0, float arg1, float arg2) { if (temp_f31 > 0.0f) { var_f29 = -var_f29; } - } else { + } + else { var_f29 = temp_f31 / arg0; } - } else { + } + else { var_f29 = temp_f31 / arg0; } return var_f29; } -void fn_1_B054(StructBss200* arg0) { +void fn_1_B054(StructBss200 *arg0) +{ StructBss200 sp23C; float sp230[3]; float sp198[2]; @@ -2067,9 +2126,9 @@ void fn_1_B054(StructBss200* arg0) { float var_f31; s32 var_r21; s32 var_r20; - StructBss200* temp_r30; - StructBss200* var_r29; - StructBss200* temp_r28; + StructBss200 *temp_r30; + StructBss200 *var_r29; + StructBss200 *temp_r28; s32 var_r19; s32 var_r18; s32 var_r17; @@ -2079,7 +2138,7 @@ void fn_1_B054(StructBss200* arg0) { arg0->unkA0 = arg0->unkA1 = 0; arg0->unkA3 = arg0->unkA2 = 0; arg0->unkA4 = arg0->unkA6 = 0; - switch(GWPlayerCfg[arg0->unk28].diff) { + switch (GWPlayerCfg[arg0->unk28].diff) { case 0: var_r19 = 60; break; @@ -2106,14 +2165,17 @@ void fn_1_B054(StructBss200* arg0) { sp230[2] = fn_1_21D4(sp230[0] - sp230[1]); if (sp230[2] < 180.0f) { sp230[2] = fn_1_21D4(sp230[1] + sp230[2] + 180.0f); - } else { + } + else { sp230[2] = fn_1_21D4(sp230[1] - sp230[2]); } - } else { + } + else { sp230[2] = fn_1_21D4(sp230[1] - sp230[0]); if (sp230[2] < 180.0f) { sp230[2] = fn_1_21D4(sp230[0] + sp230[2] + 180.0f); - } else { + } + else { sp230[2] = fn_1_21D4(sp230[0] - sp230[2]); } } @@ -2137,17 +2199,21 @@ void fn_1_B054(StructBss200* arg0) { if (arg0->unkAC != 2) { if (fn_1_6D04() != 0) { arg0->unkAC = 0; - } else { + } + else { if (ABS_INV(temp_r30->unk54) > 600.0f && ABS_INV(temp_r30->unk5C) > 600.0f) { if (var_r21 <= 0) { arg0->unkAC = 0; - } else { + } + else { arg0->unkAC = 2; } - } else { + } + else { if (var_r21 <= 0) { arg0->unkAC = 0; - } else { + } + else { arg0->unkAC = 1; } } @@ -2258,7 +2324,8 @@ void fn_1_B054(StructBss200* arg0) { } if (sp198[0] < sp198[1]) { sp180 += sp198[0]; - } else { + } + else { sp180 += sp198[1]; } sp180 = fn_1_21D4(sp180); @@ -2267,7 +2334,8 @@ void fn_1_B054(StructBss200* arg0) { var_f30 = arg0->unk54 + sp194 * sind(sp180); var_f29 = arg0->unk5C + sp194 * cosd(sp180); var_f31 = fn_1_21D4(atan2d(var_f30 - arg0->unk54, var_f29 - arg0->unk5C)); - } else { + } + else { arg0->unkAC = 1; } break; @@ -2297,7 +2365,8 @@ void fn_1_B054(StructBss200* arg0) { if (ABS_INV(fn_1_21D4(arg0->unk6C - var_f31)) > 180.0f) { arg0->unkA0 = -30; var_r29->unk9C = arg0->unk98; - } else { + } + else { arg0->unkA0 = 30; var_r29->unk9C = -arg0->unk98; } @@ -2309,7 +2378,8 @@ void fn_1_B054(StructBss200* arg0) { if (VECMagXZ(&sp20C) > 10.0f) { if (ABS_INV(arg0->unk6C - var_f31) < 90.0f || ABS_INV(arg0->unk6C - var_f31) > 270.0f) { arg0->unkA4 |= 0x100; - } else { + } + else { arg0->unkA4 |= 0x200; var_r29->unk9C = -var_r29->unk9C; } @@ -2350,15 +2420,18 @@ void fn_1_B054(StructBss200* arg0) { if (arg0->unkB8 == 0) { arg0->unkB8 = 60; } - } else if (var_r18 == -1) { + } + else if (var_r18 == -1) { arg0->unkAC = 2; if (ABS_INV(arg0->unk6C - var_f31) < 90.0f || ABS_INV(arg0->unk6C - var_f31) > 270.0f) { arg0->unkA4 |= 0x100; - } else { + } + else { arg0->unkA4 |= 0x200; var_r29->unk9C = -var_r29->unk9C; } - } else { + } + else { arg0->unkA0 = 30; } } @@ -2367,8 +2440,9 @@ void fn_1_B054(StructBss200* arg0) { } } -void fn_1_DECC(void) { - StructBss200* temp_r31; +void fn_1_DECC(void) +{ + StructBss200 *temp_r31; s32 i; temp_r31 = HuPrcCurrentGet()->user_data; @@ -2383,7 +2457,8 @@ void fn_1_DECC(void) { } } -s32 fn_1_DF3C(StructBss200* arg0) { +s32 fn_1_DF3C(StructBss200 *arg0) +{ s32 var_r31; s32 var_r30; @@ -2398,27 +2473,27 @@ s32 fn_1_DF3C(StructBss200* arg0) { return var_r31; } -void fn_1_DF98(void) { +void fn_1_DF98(void) +{ float var_f27; float var_f25; float var_f26; - StructBss200* temp_r31; - StructBss200* temp_r30; + StructBss200 *temp_r31; + StructBss200 *temp_r30; s32 var_r25; s32 var_r29; s32 var_r28; s32 sp90; - Process* sp8C; + Process *sp8C; s32 sp88; s32 sp84; s32 sp80; s32 sp7C; - Process* sp78; + Process *sp78; temp_r31 = HuPrcCurrentGet()->user_data; temp_r31->unk34 = 0; - temp_r31->unkA8 = temp_r31->unkAC = temp_r31->unkB0 - = temp_r31->unkB4 = temp_r31->unkB8 = temp_r31->unk50 = 0; + temp_r31->unkA8 = temp_r31->unkAC = temp_r31->unkB0 = temp_r31->unkB4 = temp_r31->unkB8 = temp_r31->unk50 = 0; temp_r31->unkC0 = 0; temp_r31->unk38 = 0; temp_r31->unkD0 = 0; @@ -2441,7 +2516,7 @@ void fn_1_DF98(void) { if (temp_r31->unk3C != 0) { if (temp_r31->unk48 == 300) { sp8C = HuPrcChildCreate(fn_1_32F8, 0x2000, 0x1000, 0, HuPrcCurrentGet()); - sp8C->user_data = (void*) temp_r31->unk28; + sp8C->user_data = (void *)temp_r31->unk28; } if (temp_r31->unk48-- == 0) { temp_r31->unk3C = 0; @@ -2456,7 +2531,8 @@ void fn_1_DF98(void) { case 8: if (temp_r31->unk44 != 0) { temp_r31->unk44--; - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); temp_r31->unk34 = 0; } @@ -2478,7 +2554,8 @@ void fn_1_DF98(void) { } if (temp_r31->unk44 != 0) { temp_r31->unk44--; - } else { + } + else { Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[5]); Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); temp_r31->unk34 = 6; @@ -2520,7 +2597,8 @@ void fn_1_DF98(void) { if (fn_1_5038(temp_r31->unk28) & 0x100) { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); } @@ -2529,14 +2607,16 @@ void fn_1_DF98(void) { HuAudFXStop(var_r25); } } - } else { + } + else { if (temp_r31->unk34 != 3) { temp_r31->unk34 = 3; temp_r31->unk50 = 0; if (fn_1_5038(temp_r31->unk28) & 0x100) { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); } @@ -2549,7 +2629,8 @@ void fn_1_DF98(void) { if (temp_r31->unk3C != 1) { sp88 = 8; sp84 = 32; - } else { + } + else { sp88 = 7; sp84 = 22; } @@ -2564,12 +2645,14 @@ void fn_1_DF98(void) { if (temp_r31->unk50 >= 50) { temp_r31->unk50 -= 50; } - } else { + } + else { if (temp_r31->unk50 >= 30) { temp_r31->unk50 -= 30; } } - } else { + } + else { if (ABS_INV(fn_1_4E54(temp_r31->unk28, 0)) <= 20) { if (temp_r31->unk34 != 0) { temp_r31->unk34 = 0; @@ -2579,7 +2662,8 @@ void fn_1_DF98(void) { HuAudFXStop(var_r25); } } - } else { + } + else { if (temp_r31->unk34 != 1) { temp_r31->unk34 = 1; Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); @@ -2603,7 +2687,8 @@ void fn_1_DF98(void) { } temp_r31->unk54 = temp_r31->unk60; temp_r31->unk5C = temp_r31->unk64; - } else { + } + else { temp_r30->unk24 = 1; temp_r30->unk40 = temp_r31->unk28; } @@ -2622,7 +2707,8 @@ void fn_1_DF98(void) { } temp_r31->unk54 = temp_r31->unk60; temp_r31->unk5C = temp_r31->unk64; - } else { + } + else { temp_r30->unk24 = 1; temp_r30->unk40 = temp_r31->unk28; } @@ -2631,7 +2717,8 @@ void fn_1_DF98(void) { } if (temp_r31->unkD8 == temp_r31->unk54 && temp_r31->unkDC == temp_r31->unk5C) { temp_r31->unkD0++; - } else { + } + else { temp_r31->unkD8 = temp_r31->unk54; temp_r31->unkDC = temp_r31->unk5C; temp_r31->unkD0 = 0; @@ -2650,7 +2737,8 @@ void fn_1_DF98(void) { if (temp_r31->unk28 != 0) { HuAudFXPlay(0x5EA); } - } else { + } + else { if (temp_r31->unk28 == 0) { HuAudFXPlay(0x5EA); } @@ -2663,7 +2751,8 @@ void fn_1_DF98(void) { if (temp_r31->unk28 != 0) { HuAudFXPlay(0x5E3); } - } else { + } + else { if (temp_r31->unk28 == 0) { HuAudFXPlay(0x5E3); } @@ -2688,7 +2777,8 @@ void fn_1_DF98(void) { if (sp7C & 1) { Hu3DModelAttrReset(temp_r31->unk00, 1); Hu3DModelAttrReset(temp_r31->unk04, 1); - } else { + } + else { Hu3DModelAttrSet(temp_r31->unk00, 1); Hu3DModelAttrSet(temp_r31->unk04, 1); } @@ -2706,7 +2796,8 @@ void fn_1_DF98(void) { HuPrcVSleep(); } Hu3DModelAttrSet(temp_r31->unk00, 1); - } else { + } + else { var_f26 = temp_r31->unk98; Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); if (fn_1_21D4(temp_r31->unk6C) != 0.0f) { @@ -2737,8 +2828,9 @@ void fn_1_DF98(void) { } } -void fn_1_F73C(void) { - StructBss200* var_r31; +void fn_1_F73C(void) +{ + StructBss200 *var_r31; float var_f31; s32 var_r30; s32 var_r29; @@ -2772,8 +2864,9 @@ void fn_1_F73C(void) { } } -void fn_1_F9BC(void) { - StructBss200* temp_r31; +void fn_1_F9BC(void) +{ + StructBss200 *temp_r31; float temp_f26; float temp_f28; float temp_f27; @@ -2864,8 +2957,9 @@ void fn_1_F9BC(void) { CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 2.0f); } -void fn_1_10258(s32 arg0) { - StructBss200* var_r30; +void fn_1_10258(s32 arg0) +{ + StructBss200 *var_r30; float temp_f31; float temp_f30; float temp_f29; @@ -2891,7 +2985,8 @@ void fn_1_10258(s32 arg0) { } HuAudSStreamPlay(1); Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk16, 0.0f, 5.0f, HU3D_MOTATTR_NONE); - } else { + } + else { for (lbl_1_bss_5A4 = 0; lbl_1_bss_5A4 < 60; lbl_1_bss_5A4++) { HuPrcVSleep(); } @@ -2899,7 +2994,8 @@ void fn_1_10258(s32 arg0) { } } -void fn_1_104A0(void) { +void fn_1_104A0(void) +{ while (TRUE) { if (omSysExitReq == 1) { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); @@ -2915,7 +3011,8 @@ void fn_1_104A0(void) { } } -void fn_1_10500(void) { +void fn_1_10500(void) +{ s16 temp_r28; s16 temp_r30; s16 var_r29; @@ -2966,7 +3063,8 @@ void fn_1_10500(void) { if (lbl_1_bss_5A8 == lbl_1_bss_5AC) { GWPlayerCoinWinSet(lbl_1_bss_5A8, 10); temp_r30 = MGSeqWinCreate(GWPlayerCfg[lbl_1_bss_5A8].character, -1, -1, -1); - } else { + } + else { for (i = 0, var_r27 = 0; i < 4; i++) { if (i != lbl_1_bss_5AC) { sp8[var_r27++] = i; diff --git a/src/REL/m421Dll/main.c b/src/REL/m421Dll/main.c index 24d109e2..8ab50b74 100644 --- a/src/REL/m421Dll/main.c +++ b/src/REL/m421Dll/main.c @@ -131,7 +131,7 @@ void ObjectSetup(void) sp8.x = sp8.z = 0.0f; sp8.y = lbl_1_data_18.z; mtxRot(sp2C, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); - PSMTXMultVec(sp2C, &sp8, &lbl_1_data_28); + MTXMultVec(sp2C, &sp8, &lbl_1_data_28); Hu3DGLightPosAimSetV(lbl_1_bss_12[0], &lbl_1_data_28, &lbl_1_data_40); Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); lbl_1_bss_10 = lbl_1_bss_E = lbl_1_bss_C = -1; @@ -647,7 +647,7 @@ void fn_1_38FC(ModelData *model, Mtx mtx) float var_f30; float var_f29; - PSMTXIdentity(spC); + MTXIdentity(spC); GXLoadPosMtxImm(spC, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); diff --git a/src/REL/m422Dll/main.c b/src/REL/m422Dll/main.c index 15c1186f..b51c3e68 100755 --- a/src/REL/m422Dll/main.c +++ b/src/REL/m422Dll/main.c @@ -14,8 +14,9 @@ #include "game/sprite.h" #include "game/wipe.h" -#include "ext_math.h" #include "dolphin.h" +#include "ext_math.h" + typedef struct { /* 0x00 */ s32 unk00; @@ -62,16 +63,16 @@ typedef struct { /* 0x2C */ s32 unk2C; } StructDataF0; // Size 0x30 -void fn_1_B480(omObjData* arg0); +void fn_1_B480(omObjData *arg0); StructBss104 lbl_1_bss_104[3][8]; StructBss54 lbl_1_bss_54[11]; -omObjData* lbl_1_bss_50; -omObjData* lbl_1_bss_4C; -omObjData* lbl_1_bss_3C[4]; -omObjData* lbl_1_bss_38; +omObjData *lbl_1_bss_50; +omObjData *lbl_1_bss_4C; +omObjData *lbl_1_bss_3C[4]; +omObjData *lbl_1_bss_38; s32 lbl_1_bss_34; -Process* lbl_1_bss_30; +Process *lbl_1_bss_30; s16 lbl_1_bss_2E; s16 lbl_1_bss_2C; s32 lbl_1_bss_28; @@ -86,140 +87,59 @@ float lbl_1_bss_8; float lbl_1_bss_4; float lbl_1_bss_0; -const float lbl_1_rodata_10[12] = { - 25.0f, 95.0f, 25.0f, - 75.0f, 75.0f, 75.0f, - 35.0f, 35.0f, 35.0f, - 25.0f, 50.0f, 50.0f -}; +const float lbl_1_rodata_10[12] = { 25.0f, 95.0f, 25.0f, 75.0f, 75.0f, 75.0f, 35.0f, 35.0f, 35.0f, 25.0f, 50.0f, 50.0f }; -const float lbl_1_rodata_40[12] = { - 75.0f, 0.0f, 75.0f, - 0.0f, 0.0f, 0.0f, - 20.0f, 20.0f, 20.0f, - 50.0f, 0.0f, 0.0f -}; +const float lbl_1_rodata_40[12] = { 75.0f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 20.0f, 20.0f, 20.0f, 50.0f, 0.0f, 0.0f }; -const float lbl_1_rodata_70[12] = { - 75.0f, 0.0f, 37.0f, - 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, - 70.0f, 0.0f, 0.0f -}; +const float lbl_1_rodata_70[12] = { 75.0f, 0.0f, 37.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 70.0f, 0.0f, 0.0f }; -const float lbl_1_rodata_A0[12] = { - 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, - 75.0f, 50.0f, 0.0f -}; +const float lbl_1_rodata_A0[12] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 75.0f, 50.0f, 0.0f }; -const float lbl_1_rodata_D0[12] = { - 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f -}; +const float lbl_1_rodata_D0[12] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; -const float lbl_1_rodata_100[12] = { - 30.0f, 30.0f, 30.0f, - 30.0f, 30.0f, 30.0f, - 40.0f, 40.0f, 40.0f, - 0.0f, 0.0f, 0.0f -}; +const float lbl_1_rodata_100[12] = { 30.0f, 30.0f, 30.0f, 30.0f, 30.0f, 30.0f, 40.0f, 40.0f, 40.0f, 0.0f, 0.0f, 0.0f }; -const float lbl_1_rodata_130[12] = { - 290.0f, 290.0f, 290.0f, - 370.0f, 370.0f, 370.0f, - 450.0f, 450.0f, 450.0f, - 0.0f, 0.0f, 0.0f -}; +const float lbl_1_rodata_130[12] = { 290.0f, 290.0f, 290.0f, 370.0f, 370.0f, 370.0f, 450.0f, 450.0f, 450.0f, 0.0f, 0.0f, 0.0f }; -s32 lbl_1_data_0[] = { - DATA_MAKE_NUM(DATADIR_MGCONST, 41), - DATA_MAKE_NUM(DATADIR_MGCONST, 40), - DATA_MAKE_NUM(DATADIR_MGCONST, 51), - DATA_MAKE_NUM(DATADIR_MGCONST, 51), - DATA_MAKE_NUM(DATADIR_MGCONST, 8), - DATA_MAKE_NUM(DATADIR_M422, 51), - DATA_MAKE_NUM(DATADIR_MGCONST, 0), - DATA_MAKE_NUM(DATADIR_MGCONST, 37), - DATA_MAKE_NUM(DATADIR_MGCONST, 36), - DATA_MAKE_NUM(DATADIR_MGCONST, 51), - DATA_MAKE_NUM(DATADIR_MGCONST, 51), - DATA_MAKE_NUM(DATADIR_MGCONST, 8), - DATA_MAKE_NUM(DATADIR_M422, 51), - DATA_MAKE_NUM(DATADIR_MGCONST, 12), - DATA_MAKE_NUM(DATADIR_MGCONST, 12), - DATA_MAKE_NUM(DATADIR_MGCONST, 12) -}; +s32 lbl_1_data_0[] = { DATA_MAKE_NUM(DATADIR_MGCONST, 41), DATA_MAKE_NUM(DATADIR_MGCONST, 40), DATA_MAKE_NUM(DATADIR_MGCONST, 51), + DATA_MAKE_NUM(DATADIR_MGCONST, 51), DATA_MAKE_NUM(DATADIR_MGCONST, 8), DATA_MAKE_NUM(DATADIR_M422, 51), DATA_MAKE_NUM(DATADIR_MGCONST, 0), + DATA_MAKE_NUM(DATADIR_MGCONST, 37), DATA_MAKE_NUM(DATADIR_MGCONST, 36), DATA_MAKE_NUM(DATADIR_MGCONST, 51), DATA_MAKE_NUM(DATADIR_MGCONST, 51), + DATA_MAKE_NUM(DATADIR_MGCONST, 8), DATA_MAKE_NUM(DATADIR_M422, 51), DATA_MAKE_NUM(DATADIR_MGCONST, 12), DATA_MAKE_NUM(DATADIR_MGCONST, 12), + DATA_MAKE_NUM(DATADIR_MGCONST, 12) }; -s32 lbl_1_data_40[] = { - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x005E0000, 0x00190000, 0x006C0000, 0x00890000, - 0x00840000, 0x00100000, 0x000C0000, 0x00800000 -}; +s32 lbl_1_data_40[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005E0000, 0x00190000, 0x006C0000, 0x00890000, 0x00840000, 0x00100000, + 0x000C0000, 0x00800000 }; -s32 lbl_1_data_A0[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), - DATA_MAKE_NUM(DATADIR_M422, 0), - DATA_MAKE_NUM(DATADIR_M422, 8), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) -}; +s32 lbl_1_data_A0[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_M422, 0), DATA_MAKE_NUM(DATADIR_M422, 8), DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) }; u32 lbl_1_data_C0[] = { 0, 0, 0, 1, 1, 0, 0, 0 }; u8 lbl_1_data_E0[] = { 0, 0, 0, 1, 0, 1, 1 }; u8 lbl_1_data_E7[] = { 8, 8, 8, 0, 12, 0, 8, 8, 0 }; StructDataF0 lbl_1_data_F0[12][10] = { 0 }; -char* lbl_1_data_1828[] = { - "m422al01-cube8", - "m422al02-cyl143", - "m422al03-cube11", - "m422am01-cyl76", - "m422am02-cube13", - "m422am03-cube12", - "m422as01-cube9", - "m422test11-cube9", - "m422test12-cube9", - "m422m09m-m422m09m", - "coin", - "m422a04-sphere2", - "m422m09m-m422m09m", - "m422m09m-m422m09m", - "m422m09m-m422m09m", - "m422m09m-m422m09m", - "m422m09m-m422m09m", - "m422m09m-m422m09m", - "m422m09m-m422m09m", - "m422m09m-m422m09m" -}; +char *lbl_1_data_1828[] + = { "m422al01-cube8", "m422al02-cyl143", "m422al03-cube11", "m422am01-cyl76", "m422am02-cube13", "m422am03-cube12", "m422as01-cube9", + "m422test11-cube9", "m422test12-cube9", "m422m09m-m422m09m", "coin", "m422a04-sphere2", "m422m09m-m422m09m", "m422m09m-m422m09m", + "m422m09m-m422m09m", "m422m09m-m422m09m", "m422m09m-m422m09m", "m422m09m-m422m09m", "m422m09m-m422m09m", "m422m09m-m422m09m" }; s32 lbl_1_data_1878[11] = { 0 }; s32 lbl_1_data_18A4[2] = { 0 }; s32 lbl_1_data_18AC = -1; s32 lbl_1_data_18B0 = -1; -float lbl_1_data_18B4[][4] = { - { 0.0f, 300.0f, 450.0f, 180.0f }, - { -200.0f, 0.0f, 1050.0f, 180.0f }, - { 0.0f, 0.0f, 1050.0f, 180.0f }, - { 200.0f, 0.0f, 1050.0f, 180.0f } -}; +float lbl_1_data_18B4[][4] + = { { 0.0f, 300.0f, 450.0f, 180.0f }, { -200.0f, 0.0f, 1050.0f, 180.0f }, { 0.0f, 0.0f, 1050.0f, 180.0f }, { 200.0f, 0.0f, 1050.0f, 180.0f } }; s32 lbl_1_data_18F4[] = { 0, 0 }; float lbl_1_data_18FC = 1.0f; // unused s32 lbl_1_data_1900 = -1; -void fn_1_A0(void) { +void fn_1_A0(void) +{ Center.x += 10.0 * (((HuPadBtn[0] & 2) != 0) - ((HuPadBtn[0] & 1) != 0)); Center.z -= 10.0 * (((HuPadBtn[0] & 8) != 0) - ((HuPadBtn[0] & 4) != 0)); Center.y += ((HuPadTrigL[0] - HuPadTrigR[0]) / 128.0) * 30.0; @@ -227,7 +147,8 @@ void fn_1_A0(void) { CRot.x += HuPadSubStkY[0] / -16.0; } -void fn_1_2FC(omObjData* arg0) { +void fn_1_2FC(omObjData *arg0) +{ Mtx sp254; s32 sp1CC; s32 sp1C8; @@ -260,9 +181,9 @@ void fn_1_2FC(omObjData* arg0) { float temp_f26; float phi_f29; float phi_f28; - StructDataF0* temp_r28; - StructDataF0* temp_r29; - StructBss3CData* temp_r31; + StructDataF0 *temp_r28; + StructDataF0 *temp_r29; + StructBss3CData *temp_r31; s32 var_r19; s32 phi_r23; s32 phi_r26; @@ -289,19 +210,19 @@ void fn_1_2FC(omObjData* arg0) { temp_f24 = lbl_1_data_18B4[temp_r31->unk00][2] - arg0->trans.z; sp14C = 270.0 + atan2d(temp_f25, temp_f24) - CRot.y; sp148 = sqrtf(temp_f25 * temp_f25 + temp_f24 * temp_f24); - sp148 = (sp148 > 100.0f) ? 72.0f - : (sp148 < 12.0f) ? 0.0f - : (72.0f * (sp148 / 100.0f)); + sp148 = (sp148 > 100.0f) ? 72.0f : (sp148 < 12.0f) ? 0.0f : (72.0f * (sp148 / 100.0f)); sp154 = sp148 * cosd(sp14C); sp150 = sp148 * sind(sp14C); if (sp148 == 0.0f) { temp_r31->unk20 = 0; } - } else if (temp_r31->unk20 == 1) { + } + else if (temp_r31->unk20 == 1) { if (temp_r31->unk0C != -1) { sp154 = HuPadStkX[temp_r31->unk0C]; sp150 = HuPadStkY[temp_r31->unk0C]; - } else { + } + else { float sp238[7] = { 0 }; float sp21C[7] = { 0 }; float sp1EC[] = { -400.0f, -550.0f, -700.0f, -800.0f }; @@ -319,20 +240,22 @@ void fn_1_2FC(omObjData* arg0) { sp144 = (i < 10) ? (i * 4 + 43 + phi_r23) : ((i - 10) * 10 + 83 + phi_r23); if (temp_r28->unk04 != 0 && !(temp_r28->unk14 < 0.0f)) { Hu3DModelObjPosGet(lbl_1_bss_38->model[sp144], lbl_1_data_1828[temp_r28->unk00], &sp1D0); - phi_r26 = (s32) (300.0f + sp1D0.x + 2000.0f) / 100 - 20; + phi_r26 = (s32)(300.0f + sp1D0.x + 2000.0f) / 100 - 20; phi_r26--; for (phi_r22 = 0; phi_r22 < 3; phi_r26++, phi_r22++) { if (phi_r26 >= 0 && phi_r26 < 7 && arg0->trans.z + 50.0f >= sp1D0.z - lbl_1_rodata_10[temp_r28->unk00] - lbl_1_rodata_70[temp_r28->unk00] - && sp1D0.x - lbl_1_rodata_10[temp_r28->unk00] - lbl_1_rodata_70[temp_r28->unk00] - 50.0f < (phi_r26 - 3) * 100 && sp1D0.x + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00] + 50.0f > (phi_r26 - 3) * 100) - { + && sp1D0.x - lbl_1_rodata_10[temp_r28->unk00] - lbl_1_rodata_70[temp_r28->unk00] - 50.0f < (phi_r26 - 3) * 100 + && sp1D0.x + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00] + 50.0f > (phi_r26 - 3) * 100) { if (temp_r28->unk00 < 10) { if (sp238[phi_r26] < sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00]) { sp238[phi_r26] = sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00]; } - } else { + } + else { if (sp21C[phi_r26] < sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00]) { - sp21C[phi_r26] = sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00] + (temp_r28->unk00 < 11); + sp21C[phi_r26] = sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00] + + (temp_r28->unk00 < 11); } } } @@ -340,13 +263,12 @@ void fn_1_2FC(omObjData* arg0) { } } } - phi_r26 = (s32) (300.0f + arg0->trans.x + 2000.0f) / 100 - 20; - phi_r26 = (phi_r26 < 0) ? 0 - : (phi_r26 >= 7) ? 6 - : phi_r26; + phi_r26 = (s32)(300.0f + arg0->trans.x + 2000.0f) / 100 - 20; + phi_r26 = (phi_r26 < 0) ? 0 : (phi_r26 >= 7) ? 6 : phi_r26; for (i = 0, phi_r22 = phi_r26; i < 7; i++) { var_r19 = ((temp_r31->unk00 / 2) % 2 == 0) ? i : (6 - i); - if (sp21C[phi_r22] - 60.0 * fabs(phi_r22 - phi_r26) < sp21C[var_r19] - 60.0 * fabs(var_r19 - phi_r26) && sp238[var_r19] < sp21C[var_r19]) { + if (sp21C[phi_r22] - 60.0 * fabs(phi_r22 - phi_r26) < sp21C[var_r19] - 60.0 * fabs(var_r19 - phi_r26) + && sp238[var_r19] < sp21C[var_r19]) { phi_r22 = var_r19; } } @@ -359,8 +281,11 @@ void fn_1_2FC(omObjData* arg0) { } sp140 = arg0->trans.z - (temp_r31->unk00 == 0 ? -100.0f : 700.0f); sp13C = (((sp238[phi_r22] > sp140 - 400.0f || sp140 > 550.0f) ? phi_r23 - : (sp140 > 500.0f) ? ((sp140 - 500.0f) / 50.0f) * phi_r23 + (1.0f - (sp140 - 500.0f) / 50.0f) * phi_r22 - : phi_r22) - 3.0f) * 100.0f - arg0->trans.x; + : (sp140 > 500.0f) ? ((sp140 - 500.0f) / 50.0f) * phi_r23 + (1.0f - (sp140 - 500.0f) / 50.0f) * phi_r22 + : phi_r22) + - 3.0f) + * 100.0f + - arg0->trans.x; { float sp1C4[] = { -21.0f, 0.0f, 15.0f }; float sp1B8[] = { 60.0f, 65.0f, 53.0f }; @@ -370,23 +295,18 @@ void fn_1_2FC(omObjData* arg0) { var_r18 = (temp_r31->unk14 / 5) % 3; var_r18 = (temp_r31->unk00 == 0) ? (arg0->trans.z < 200.0f ? 0 : 1) : 2; sp13C /= 20.0f; - sp13C = (sp13C < -1.0f) ? sp13C - : (sp13C > 1.0f) ? 1.0f - : sp13C; + sp13C = (sp13C < -1.0f) ? sp13C : (sp13C > 1.0f) ? 1.0f : sp13C; sp138 = (sp13C < 0.0f) ? -sp13C : sp13C; sp134 = 1.0f - sp138; - sp154 = (sp13C < 0.0f) - ? (36.0f * sp134 + sp138 * sp1C4[var_r18]) - : (36.0f * sp134 + sp138 * sp1B8[var_r18]); - sp150 = (sp13C < 0.0f) - ? (42.0f * sp134 + sp138 * sp1AC[var_r18]) - : (42.0f * sp134 + sp138 * sp1A0[var_r18]); + sp154 = (sp13C < 0.0f) ? (36.0f * sp134 + sp138 * sp1C4[var_r18]) : (36.0f * sp134 + sp138 * sp1B8[var_r18]); + sp150 = (sp13C < 0.0f) ? (42.0f * sp134 + sp138 * sp1AC[var_r18]) : (42.0f * sp134 + sp138 * sp1A0[var_r18]); } temp_f23 = temp_r31->unk38 - sp154; temp_f22 = temp_r31->unk3C - sp150; if (sqrtf(temp_f23 * temp_f23 + temp_f22 * temp_f22) > 50.0f) { temp_r31->unk40++; - } else { + } + else { temp_r31->unk40 = 0; } if (temp_r31->unk40 >= 2) { @@ -404,40 +324,39 @@ void fn_1_2FC(omObjData* arg0) { sp12C = arg0->trans.z; phi_r25 = 4; arg0->trans.z += 9.375; - if (temp_r31->unk00 == 0 - && lbl_1_data_1900 != -1 - && arg0->trans.z > (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) + 50.0f - && sp12C <= (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) + 50.0f) - { + if (temp_r31->unk00 == 0 && lbl_1_data_1900 != -1 && arg0->trans.z > (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) + 50.0f + && sp12C <= (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) + 50.0f) { HuAudFXStop(lbl_1_data_1900); lbl_1_data_1900 = -1; } temp_r31->unk30 -= 1.0f; - arg0->trans.y += (arg0->trans.z > (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) - 50.0f) - ? temp_r31->unk30 : 0.0f; - if (temp_r31->unk00 == 0 && lbl_1_data_1900 == -1 && arg0->trans.z > 670.0f && arg0->trans.z < 1450.0f && arg0->trans.y == 0.0f && sp130 > 0.0f) { + arg0->trans.y += (arg0->trans.z > (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) - 50.0f) ? temp_r31->unk30 : 0.0f; + if (temp_r31->unk00 == 0 && lbl_1_data_1900 == -1 && arg0->trans.z > 670.0f && arg0->trans.z < 1450.0f && arg0->trans.y == 0.0f + && sp130 > 0.0f) { lbl_1_data_1900 = HuAudFXPlay(0x612); } if (arg0->trans.z < 1400.0f && arg0->trans.y <= 0.0f) { arg0->trans.y = 0.0f; temp_r31->unk30 = 0.0f; } - arg0->rot.y += (arg0->rot.y < 0.0f) ? 360 - : (arg0->rot.y > 360.0f) ? -360 : 0; + arg0->rot.y += (arg0->rot.y < 0.0f) ? 360 : (arg0->rot.y > 360.0f) ? -360 : 0; arg0->rot.y = (arg0->rot.y > 140.0f && arg0->rot.y < 220.0f) ? 180.0f - : (arg0->rot.y < 180.0f) ? (40.0f + arg0->rot.y) - : (arg0->rot.y > 180.0f) ? (arg0->rot.y - 40.0f) - : arg0->trans.y;; + : (arg0->rot.y < 180.0f) ? (40.0f + arg0->rot.y) + : (arg0->rot.y > 180.0f) ? (arg0->rot.y - 40.0f) + : arg0->trans.y; + ; if (lbl_1_bss_C % 4 < 3) { Hu3DModelAttrReset(arg0->model[0], 1); - } else { + } + else { Hu3DModelAttrSet(arg0->model[0], 1); } if (arg0->trans.y < -500.0f) { temp_r31->unk20 = 3; Hu3DModelAttrSet(arg0->model[0], 1); } - } else if (temp_r31->unk20 != 3 && temp_r31->unk20 != 4) { + } + else if (temp_r31->unk20 != 3 && temp_r31->unk20 != 4) { if (temp_r31->unk20 == 5) { if (temp_r31->unk24 == 0) { phi_r25 = 3; @@ -453,7 +372,8 @@ void fn_1_2FC(omObjData* arg0) { if (temp_r31->unk24 >= 31 && temp_r31->unk24 <= 38) { arg0->trans.x -= 150.0 * -sind(arg0->rot.y) / 7.0; arg0->trans.z -= 150.0 * -cosd(arg0->rot.y) / 7.0; - } else { + } + else { arg0->trans.x = lbl_1_data_F0[9][temp_r31->unk00].unk0C; arg0->trans.y = (temp_r31->unk00 == 0) ? 300 : 0; arg0->trans.z = lbl_1_data_F0[9][temp_r31->unk00].unk14; @@ -464,15 +384,16 @@ void fn_1_2FC(omObjData* arg0) { if (temp_r31->unk24 == 38) { temp_r31->unk20 = 1; } - } else { + } + else { float temp_f31 = 0.25 * sp154; float temp_f30 = 0.25 * -sp150; Vec sp194 = { 0.0f, 0.0f, 0.0f }; sp194.x = temp_f31; sp194.z = temp_f30; - PSMTXRotRad(sp254, 'y', MTXDegToRad(CRot.y)); - PSMTXMultVec(sp254, &sp194, &sp194); + MTXRotRad(sp254, 'y', MTXDegToRad(CRot.y)); + MTXMultVec(sp254, &sp194, &sp194); temp_f31 = sp194.x; temp_f30 = sp194.z; sp158 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30); @@ -480,7 +401,8 @@ void fn_1_2FC(omObjData* arg0) { if (sp158 < 10.0f) { temp_r31->unk2C = temp_f31; temp_r31->unk34 += temp_f30; - } else { + } + else { temp_f31 /= sp158; temp_f30 /= sp158; sp158 = 10.0f; @@ -492,11 +414,13 @@ void fn_1_2FC(omObjData* arg0) { if (temp_r31->unk20 == 1) { if (temp_r31->unk28 >= 8.0f) { phi_r25 = 2; - } else { + } + else { phi_r25 = 1; } } - } else if (temp_r31->unk20 == 1) { + } + else if (temp_r31->unk20 == 1) { phi_r25 = 0; } if (lbl_1_bss_34 == 1005 && (temp_r31->unk20 == 1 || temp_r31->unk20 == 0)) { @@ -504,10 +428,7 @@ void fn_1_2FC(omObjData* arg0) { Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); temp_r31->unk20 = 0; if (lbl_1_bss_8 == 1.0f && lbl_1_data_18F4[temp_r31->unk00 == 0 ? 0 : 1] > 0) { - s32 sp1FC[] = { - 0x122, 0x162, 0x1A2, 0x1E2, - 0x222, 0x262, 0x2A2, 0x2E2 - }; + s32 sp1FC[] = { 0x122, 0x162, 0x1A2, 0x1E2, 0x222, 0x262, 0x2A2, 0x2E2 }; HuAudFXPlay(sp1FC[temp_r31->unk08]); } @@ -540,28 +461,26 @@ void fn_1_2FC(omObjData* arg0) { } if (lbl_1_bss_34 > 1001) { for (phi_r24 = 0; phi_r24 < 12; phi_r24++) { - if (phi_r24 == 9 && lbl_1_bss_34 <= 1001) { - } + if (phi_r24 == 9 && lbl_1_bss_34 <= 1001) { } for (phi_r20 = 0; phi_r20 < (phi_r24 < 10 ? 4 : 10); phi_r20++) { temp_r29 = &lbl_1_data_F0[phi_r24][phi_r20]; - sp124 = (phi_r24 < 10) ? (phi_r24 * 4 + 43 + phi_r20) - : ((phi_r24 - 10) * 10 + 83 + phi_r20); + sp124 = (phi_r24 < 10) ? (phi_r24 * 4 + 43 + phi_r20) : ((phi_r24 - 10) * 10 + 83 + phi_r20); if (temp_r29->unk04 != 0 && temp_r29->unk2C <= 0) { Vec sp188; Hu3DModelObjPosGet(lbl_1_bss_38->model[sp124], lbl_1_data_1828[temp_r29->unk00], &sp188); if (((temp_r29->unk04 == 3 || (temp_r29->unk04 == 4 && sp188.y >= 250.0f)) && temp_r31->unk00 == 0) - || (((temp_r29->unk04 == 4 && sp188.y < 250.0f) || temp_r29->unk04 == 5 || temp_r29->unk04 == 6) && temp_r31->unk00 != 0)) - { + || (((temp_r29->unk04 == 4 && sp188.y < 250.0f) || temp_r29->unk04 == 5 || temp_r29->unk04 == 6) + && temp_r31->unk00 != 0)) { sp11C = sp188.x; sp118 = sp188.z; if (lbl_1_rodata_40[temp_r29->unk00] > 0.0f || lbl_1_rodata_70[temp_r29->unk00] > 0.0f) { sp11C = (arg0->trans.x < sp11C - lbl_1_rodata_40[temp_r29->unk00]) ? (sp11C - lbl_1_rodata_40[temp_r29->unk00]) - : (arg0->trans.x > sp11C + lbl_1_rodata_40[temp_r29->unk00]) ? (sp11C + lbl_1_rodata_40[temp_r29->unk00]) - : arg0->trans.x; + : (arg0->trans.x > sp11C + lbl_1_rodata_40[temp_r29->unk00]) ? (sp11C + lbl_1_rodata_40[temp_r29->unk00]) + : arg0->trans.x; sp118 = (arg0->trans.z < sp118 - lbl_1_rodata_70[temp_r29->unk00]) ? (sp118 - lbl_1_rodata_70[temp_r29->unk00]) - : (arg0->trans.z > sp118 + lbl_1_rodata_70[temp_r29->unk00]) ? (sp118 + lbl_1_rodata_70[temp_r29->unk00]) - : arg0->trans.z; + : (arg0->trans.z > sp118 + lbl_1_rodata_70[temp_r29->unk00]) ? (sp118 + lbl_1_rodata_70[temp_r29->unk00]) + : arg0->trans.z; } temp_f26 = sp11C - arg0->trans.x; phi_f28 = sp118 - arg0->trans.z; @@ -575,7 +494,8 @@ void fn_1_2FC(omObjData* arg0) { phi_f28 *= (50.0f + lbl_1_rodata_10[temp_r29->unk00]) / sp120; arg0->trans.x = sp11C - temp_f26; arg0->trans.z = sp118 - phi_f28; - } else { + } + else { temp_r29->unk04 = 0; lbl_1_data_18F4[temp_r31->unk00 == 0 ? 0 : 1] += (phi_r24 == 10 ? 1 : 5); CharModelCoinEffectCreate(-1, &sp188); @@ -653,20 +573,20 @@ void fn_1_2FC(omObjData* arg0) { phi_r25 = 0; } arg0->trans.x = lbl_1_data_F0[9][sp114].unk0C; - arg0->trans.z = (lbl_1_bss_8 > 163.0f) ? arg0->trans.z - : (lbl_1_bss_8 > 155.0f) ? (arg0->trans.z - 18.75) - : lbl_1_data_F0[9][sp114].unk14; + arg0->trans.z = (lbl_1_bss_8 > 163.0f) ? arg0->trans.z : (lbl_1_bss_8 > 155.0f) ? (arg0->trans.z - 18.75) : lbl_1_data_F0[9][sp114].unk14; } if (temp_r31->unk1C >= 0) { phi_r25 = temp_r31->unk1C; } if (phi_r25 >= 0 && phi_r25 != temp_r31->unk18) { - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[phi_r25], 0.0f, lbl_1_data_E7[phi_r25], (lbl_1_data_E0[phi_r25] != 0) ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[phi_r25], 0.0f, lbl_1_data_E7[phi_r25], + (lbl_1_data_E0[phi_r25] != 0) ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); temp_r31->unk18 = phi_r25; } } -s32 fn_1_34BC(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { +s32 fn_1_34BC(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) +{ Vec sp1C; float var_f27; float var_f28; @@ -675,7 +595,7 @@ s32 fn_1_34BC(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { float temp_f30; float var_f31; float sp18; - StructDataF0* temp_r31; + StructDataF0 *temp_r31; s32 var_r24; s32 i; s32 j; @@ -692,27 +612,19 @@ s32 fn_1_34BC(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { var_f25 = 50.0f + lbl_1_rodata_70[temp_r31->unk00]; var_f26 = 50.0f + lbl_1_rodata_70[temp_r31->unk00]; if (temp_r31->unk04 == 3) { - float sp28[][12] = { - { - -25.0f, -25.0f, -25.0f, - -6.6875f, -6.6875f, -6.6875f, - 62.765625f, 62.765625f, 62.765625f, - 51.99469f, 76.875f, 45.0f - }, - { - -27.647583f, -27.647583f, -27.647583f, - -9.64325f, -9.64325f, -9.64325f, - 60.49022f, 60.49022f, 60.49022f, - 51.99469f, 76.875f, 45.0f - } - }; + float sp28[][12] = { { -25.0f, -25.0f, -25.0f, -6.6875f, -6.6875f, -6.6875f, 62.765625f, 62.765625f, 62.765625f, 51.99469f, + 76.875f, 45.0f }, + { -27.647583f, -27.647583f, -27.647583f, -9.64325f, -9.64325f, -9.64325f, 60.49022f, 60.49022f, 60.49022f, 51.99469f, + 76.875f, 45.0f } }; var_f28 += sp28[temp_r31->unk08 == 0 ? 0 : 1][temp_r31->unk00]; var_f25 += 50.0f; var_f26 += 50.0f; - } else if (temp_r31->unk04 == 5 && temp_r31->unk08 == 0) { + } + else if (temp_r31->unk04 == 5 && temp_r31->unk08 == 0) { var_f28 += lbl_1_rodata_130[temp_r31->unk00]; - } else if (temp_r31->unk04 == 1) { + } + else if (temp_r31->unk04 == 1) { var_f27 = (temp_r31->unk0C < 0.0f ? -1 : 1) * 321; var_f28 = 880.0f - lbl_1_bss_0 * (100 - temp_r31->unk08); } @@ -721,11 +633,9 @@ s32 fn_1_34BC(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { } if (lbl_1_rodata_40[temp_r31->unk00] > 0.0f || var_f25 > 0.0f || var_f26 > 0.0f) { var_f27 = (arg0 < var_f27 - lbl_1_rodata_40[temp_r31->unk00]) ? (var_f27 - lbl_1_rodata_40[temp_r31->unk00]) - : (arg0 > var_f27 + lbl_1_rodata_40[temp_r31->unk00]) ? (var_f27 + lbl_1_rodata_40[temp_r31->unk00]) - : arg0; - var_f28 = (arg1 < var_f28 - var_f25) ? (var_f28 - var_f25) - : (arg1 > var_f28 + var_f26) ? (var_f28 + var_f26) - : arg1; + : (arg0 > var_f27 + lbl_1_rodata_40[temp_r31->unk00]) ? (var_f27 + lbl_1_rodata_40[temp_r31->unk00]) + : arg0; + var_f28 = (arg1 < var_f28 - var_f25) ? (var_f28 - var_f25) : (arg1 > var_f28 + var_f26) ? (var_f28 + var_f26) : arg1; } temp_f30 = var_f27 - arg0; var_f31 = var_f28 - arg1; @@ -743,8 +653,9 @@ s32 fn_1_34BC(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { return 0; } -void fn_1_3B74(omObjData* arg0) { - StructBss3CData* sp354[4]; +void fn_1_3B74(omObjData *arg0) +{ + StructBss3CData *sp354[4]; Vec sp348; s32 var_r20; s32 var_r19; @@ -773,7 +684,7 @@ void fn_1_3B74(omObjData* arg0) { float temp_f29; float temp_f30; float temp_f31; - StructDataF0* temp_r31; + StructDataF0 *temp_r31; s32 var_r21; s32 var_r28; s32 var_r27; @@ -786,10 +697,11 @@ void fn_1_3B74(omObjData* arg0) { } lbl_1_bss_C++; lbl_1_bss_0 = (lbl_1_bss_34 <= 1002) ? 1.5 - : (lbl_1_bss_34 == 1003) ? (7.5 * (lbl_1_bss_8 > 120.0f ? 1.0 : (0.2 + 0.8 * (lbl_1_bss_8 / 120.0)))) - : 0.0; - lbl_1_bss_4 = (lbl_1_bss_34 < 1005 && sp354[0]->unk20 >= 2 && sp354[0]->unk20 <= 5 - && !(lbl_1_bss_34 == 1003 && lbl_1_bss_8 <= 120.0f)) ? 7.5 : lbl_1_bss_0; + : (lbl_1_bss_34 == 1003) ? (7.5 * (lbl_1_bss_8 > 120.0f ? 1.0 : (0.2 + 0.8 * (lbl_1_bss_8 / 120.0)))) + : 0.0; + lbl_1_bss_4 = (lbl_1_bss_34 < 1005 && sp354[0]->unk20 >= 2 && sp354[0]->unk20 <= 5 && !(lbl_1_bss_34 == 1003 && lbl_1_bss_8 <= 120.0f)) + ? 7.5 + : lbl_1_bss_0; Hu3DMotionSpeedSet(arg0->model[1], 1.5 * lbl_1_bss_4 / 7.5); Hu3DMotionSpeedSet(arg0->model[3], 1.5 * lbl_1_bss_0 / 7.5); if (lbl_1_data_18B0 != -1) { @@ -798,9 +710,7 @@ void fn_1_3B74(omObjData* arg0) { HuAudFXVolSet(lbl_1_data_18B0, temp_f21 <= 0.001 ? 0 : 127); } if (lbl_1_bss_34 <= 1001) { - temp_f31 = (lbl_1_bss_34 == 1000 || lbl_1_bss_8 < 60.0f) ? 0.0 - : (lbl_1_bss_8 < 120.0f) ? (lbl_1_bss_8 - 60.0f) / 60.0 - : 1.0; + temp_f31 = (lbl_1_bss_34 == 1000 || lbl_1_bss_8 < 60.0f) ? 0.0 : (lbl_1_bss_8 < 120.0f) ? (lbl_1_bss_8 - 60.0f) / 60.0 : 1.0; temp_f31 = 1.0f - temp_f31; temp_f31 *= temp_f31; temp_f31 = 1.0f - temp_f31; @@ -844,15 +754,16 @@ void fn_1_3B74(omObjData* arg0) { var_r17 = sp22C + (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 38 && lbl_1_bss_28 > 120); sp228 = (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 0) ? (rand8() % 2 + 2) : 0; while (var_r19 > 0 || var_r18 > 0 || var_r17 > 0 || sp228 > 0) { - var_r27 = (rand8() % 2 == 0) - ? ((var_r17 != 0) ? 3 - : (sp228 != 0) ? 4 - : (var_r19 != 0) ? 1 - : (var_r18 != 0) ? 2 : 0) - : ((var_r17 != 0) ? 3 - : (var_r19 != 0) ? 1 - : (sp228 != 0) ? 4 - : (var_r18 != 0) ? 2 : 0); + var_r27 = (rand8() % 2 == 0) ? ((var_r17 != 0) ? 3 + : (sp228 != 0) ? 4 + : (var_r19 != 0) ? 1 + : (var_r18 != 0) ? 2 + : 0) + : ((var_r17 != 0) ? 3 + : (var_r19 != 0) ? 1 + : (sp228 != 0) ? 4 + : (var_r18 != 0) ? 2 + : 0); sp224++; if (sp224 > 8) { var_r19 -= (var_r27 == 1); @@ -860,18 +771,28 @@ void fn_1_3B74(omObjData* arg0) { var_r17 -= (var_r27 == 3); sp228 -= (var_r27 == 4); sp224 = 0; - } else if (var_r27 == 1 || var_r27 == 2 || var_r27 == 3 || var_r27 == 4) { + } + else if (var_r27 == 1 || var_r27 == 2 || var_r27 == 3 || var_r27 == 4) { var_r28 = (var_r27 != 4) ? (rand8() % 9) : 10; if (var_r27 == 1 && var_r20 != 0) { var_r28 = 9; i = 0; - } else if (var_r27 == 3 && sp22C != 0) { + } + else if (var_r27 == 3 && sp22C != 0) { var_r28 = 9; - i = (sp354[(lbl_1_bss_C % 3) + 1]->unk20 == 3 && (lbl_1_data_F0[9][lbl_1_bss_C % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) ? (lbl_1_bss_C % 3 + 1) - : (sp354[(lbl_1_bss_C + 1) % 3 + 1]->unk20 == 3 && (lbl_1_data_F0[9][(lbl_1_bss_C + 1) % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) ? ((lbl_1_bss_C + 1) % 3 + 1) - : (sp354[(lbl_1_bss_C + 2) % 3 + 1]->unk20 == 3 && (lbl_1_data_F0[9][(lbl_1_bss_C + 2) % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) ? ((lbl_1_bss_C + 2) % 3 + 1) : 0; - } else { - if (var_r28 == 10 && (lbl_1_bss_28 / 60) / 15 + 1 <= 2 - lbl_1_bss_14 && rand8() % (((lbl_1_bss_28 / 60 - (1 - lbl_1_bss_14) * 15) * 3) + 1) == 0) { + i = (sp354[(lbl_1_bss_C % 3) + 1]->unk20 == 3 && (lbl_1_data_F0[9][lbl_1_bss_C % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) + ? (lbl_1_bss_C % 3 + 1) + : (sp354[(lbl_1_bss_C + 1) % 3 + 1]->unk20 == 3 + && (lbl_1_data_F0[9][(lbl_1_bss_C + 1) % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) + ? ((lbl_1_bss_C + 1) % 3 + 1) + : (sp354[(lbl_1_bss_C + 2) % 3 + 1]->unk20 == 3 + && (lbl_1_data_F0[9][(lbl_1_bss_C + 2) % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) + ? ((lbl_1_bss_C + 2) % 3 + 1) + : 0; + } + else { + if (var_r28 == 10 && (lbl_1_bss_28 / 60) / 15 + 1 <= 2 - lbl_1_bss_14 + && rand8() % (((lbl_1_bss_28 / 60 - (1 - lbl_1_bss_14) * 15) * 3) + 1) == 0) { var_r28 = 11; } for (i = 0; i < (var_r27 != 4 ? 4 : 10); i++) { @@ -883,53 +804,45 @@ void fn_1_3B74(omObjData* arg0) { continue; } } - lbl_1_data_F0[var_r28][i].unk0C = (var_r27 != 3) - ? (rand8() % 7 - 3) * 100 - : ((rand8() % 2) * 2 - 1) * 1595; + lbl_1_data_F0[var_r28][i].unk0C = (var_r27 != 3) ? (rand8() % 7 - 3) * 100 : ((rand8() % 2) * 2 - 1) * 1595; if (i == 0 && lbl_1_bss_34 >= 1004 && var_r28 == 9) { lbl_1_data_F0[var_r28][i].unk0C = 0.0f; } - lbl_1_data_F0[var_r28][i].unk10 = (var_r27 == 1) ? 300 - : (var_r27 == 2) ? 0 - : (var_r27 == 3) ? 500 - : (var_r27 == 4) ? 300 : 0; - lbl_1_data_F0[var_r28][i].unk14 = (var_r27 == 1) ? -450 - : (var_r27 == 2) ? -450 - : (var_r27 == 3) ? 105 - : (var_r27 == 4) ? -150 : 0; + lbl_1_data_F0[var_r28][i].unk10 = (var_r27 == 1) ? 300 : (var_r27 == 2) ? 0 : (var_r27 == 3) ? 500 : (var_r27 == 4) ? 300 : 0; + lbl_1_data_F0[var_r28][i].unk14 = (var_r27 == 1) ? -450 : (var_r27 == 2) ? -450 : (var_r27 == 3) ? 105 : (var_r27 == 4) ? -150 : 0; lbl_1_data_F0[var_r28][i].unk14 += (var_r27 == 1) ? -(var_r28 <= 8 ? 0 : 0) - : (var_r27 == 2) ? -(var_r28 <= 8 ? (var_r28 / 3) * 80 : 0) - : (var_r27 == 4) ? -50 : 0; - lbl_1_data_F0[var_r28][i].unk14 += (var_r27 == 1) - ? ((var_r28 <= 2) ? 315.0 - : (var_r28 <= 5) ? 296.6875 - : (var_r28 <= 8) ? 227.234375 - : (var_r28 == 9) ? 200 : 0) : 0.0; + : (var_r27 == 2) ? -(var_r28 <= 8 ? (var_r28 / 3) * 80 : 0) + : (var_r27 == 4) ? -50 + : 0; + lbl_1_data_F0[var_r28][i].unk14 += (var_r27 == 1) ? ((var_r28 <= 2) ? 315.0 + : (var_r28 <= 5) ? 296.6875 + : (var_r28 <= 8) ? 227.234375 + : (var_r28 == 9) ? 200 + : 0) + : 0.0; if (var_r27 == 1 || var_r27 == 4) { - float sp3C4[] = { - -25.0f, -25.0f, -25.0f, - -6.6875f, -6.6875f, -6.6875f, - 62.765625f, 62.765625f, 62.765625f, - 51.99469f, 76.875f, 45.0f, - -27.647583f, -27.647583f, -27.647583f, - -9.64325f, -9.64325f, -9.64325f, - 60.49022f, 60.49022f, 60.49022f, - 51.99469f, 76.875f, 45.0f - }; + float sp3C4[] = { -25.0f, -25.0f, -25.0f, -6.6875f, -6.6875f, -6.6875f, 62.765625f, 62.765625f, 62.765625f, 51.99469f, 76.875f, 45.0f, + -27.647583f, -27.647583f, -27.647583f, -9.64325f, -9.64325f, -9.64325f, 60.49022f, 60.49022f, 60.49022f, 51.99469f, 76.875f, + 45.0f }; var_f25 = lbl_1_data_F0[var_r28][i].unk0C; var_f24 = sp3C4[var_r28] + lbl_1_data_F0[var_r28][i].unk14; - } else if (var_r27 == 2) { + } + else if (var_r27 == 2) { var_f25 = lbl_1_data_F0[var_r28][i].unk0C; var_f24 = lbl_1_rodata_130[var_r28] + lbl_1_data_F0[var_r28][i].unk14; - } else if (var_r27 == 3) { + } + else if (var_r27 == 3) { var_f25 = (lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? -335 : 335; var_f24 = 830.0f - 94.0f * lbl_1_bss_0; - } else { + } + else { var_f25 = lbl_1_data_F0[var_r28][i].unk0C; var_f24 = lbl_1_data_F0[var_r28][i].unk14; } - if (fn_1_34BC(var_f25, var_f24, lbl_1_rodata_10[lbl_1_data_F0[var_r28][i].unk00] + lbl_1_rodata_40[lbl_1_data_F0[var_r28][i].unk00], var_r28, 0) != 0) { + if (fn_1_34BC( + var_f25, var_f24, lbl_1_rodata_10[lbl_1_data_F0[var_r28][i].unk00] + lbl_1_rodata_40[lbl_1_data_F0[var_r28][i].unk00], var_r28, 0) + != 0) { continue; } if (var_r27 == 3 && lbl_1_data_18A4[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 0 : 1] > 0) { @@ -937,16 +850,12 @@ void fn_1_3B74(omObjData* arg0) { } if (var_r27 == 4) { for (var_r21 = 0; var_r21 < 10; var_r21++) { - if (lbl_1_data_F0[10][var_r21].unk04 != 0 - && fabs(lbl_1_data_F0[var_r28][i].unk14 - lbl_1_data_F0[10][var_r21].unk14) <= 100.0 - && fabs(lbl_1_data_F0[var_r28][i].unk0C - lbl_1_data_F0[10][var_r21].unk0C) <= 200.0) - { + if (lbl_1_data_F0[10][var_r21].unk04 != 0 && fabs(lbl_1_data_F0[var_r28][i].unk14 - lbl_1_data_F0[10][var_r21].unk14) <= 100.0 + && fabs(lbl_1_data_F0[var_r28][i].unk0C - lbl_1_data_F0[10][var_r21].unk0C) <= 200.0) { break; } - if (lbl_1_data_F0[11][var_r21].unk04 != 0 - && fabs(lbl_1_data_F0[var_r28][i].unk14 - lbl_1_data_F0[11][var_r21].unk14) <= 100.0 - && fabs(lbl_1_data_F0[var_r28][i].unk0C - lbl_1_data_F0[11][var_r21].unk0C) <= 200.0) - { + if (lbl_1_data_F0[11][var_r21].unk04 != 0 && fabs(lbl_1_data_F0[var_r28][i].unk14 - lbl_1_data_F0[11][var_r21].unk14) <= 100.0 + && fabs(lbl_1_data_F0[var_r28][i].unk0C - lbl_1_data_F0[11][var_r21].unk0C) <= 200.0) { break; } } @@ -961,10 +870,7 @@ void fn_1_3B74(omObjData* arg0) { lbl_1_bss_14++; } lbl_1_data_F0[var_r28][i].unk00 = var_r28; - lbl_1_data_F0[var_r28][i].unk04 = (var_r27 == 1) ? 3 - : (var_r27 == 2) ? 5 - : (var_r27 == 3) ? 1 - : (var_r27 == 4) ? 3 : 0; + lbl_1_data_F0[var_r28][i].unk04 = (var_r27 == 1) ? 3 : (var_r27 == 2) ? 5 : (var_r27 == 3) ? 1 : (var_r27 == 4) ? 3 : 0; lbl_1_data_F0[var_r28][i].unk08 = 0; lbl_1_data_F0[var_r28][i].unk2C = 0; lbl_1_data_F0[var_r28][i].unk18 = lbl_1_data_F0[var_r28][i].unk1C = lbl_1_data_F0[var_r28][i].unk20 = 0.0f; @@ -974,13 +880,15 @@ void fn_1_3B74(omObjData* arg0) { Hu3DModelAttrSet(arg0->model[sp220], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(arg0->model[sp220], 1); Hu3DModelRotSet(arg0->model[sp220], 0.0f, 0.0f, 0.0f); - } else { + } + else { Hu3DModelAttrReset(arg0->model[i + (var_r28 == 10 ? 83 : 93)], 1); } if (var_r27 == 1 && var_r20 != 0) { var_r20--; sp354[0]->unk20 = 4; - } else if (var_r27 == 3 && sp22C != 0) { + } + else if (var_r27 == 3 && sp22C != 0) { sp22C--; sp354[i]->unk20 = 4; } @@ -988,7 +896,9 @@ void fn_1_3B74(omObjData* arg0) { lbl_1_data_18A4[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 0 : 1] = 85; Hu3DMotionTimeSet(arg0->model[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 6 : 5], 9.0f); if (var_r28 == 9 && lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk00 < 3) { - lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk04[lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk00] = 0.0f; + lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6] + .unk04[lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk00] + = 0.0f; lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk00++; } } @@ -1008,29 +918,24 @@ void fn_1_3B74(omObjData* arg0) { for (i = 0; i < 12; i++) { for (j = 0; j < (i < 10 ? 4 : 10); j++) { temp_r31 = &lbl_1_data_F0[i][j]; - var_r25 = (i < 10) - ? (i * 4 + 43 + j) - : ((i - 10) * 10 + 83 + j); + var_r25 = (i < 10) ? (i * 4 + 43 + j) : ((i - 10) * 10 + 83 + j); sp348.x = sp348.y = sp348.z = 0.0f; if (temp_r31->unk04 == 0) { Hu3DModelAttrSet(arg0->model[var_r25], 1); - } else { + } + else { temp_r31->unk08++; temp_r31->unk24 += (temp_r31->unk00 == 10) ? 0 : 0; - temp_r31->unk24 += (temp_r31->unk24 < 0.0f) ? 360 - : (temp_r31->unk24 > 360.0f) ? -360 : 0; + temp_r31->unk24 += (temp_r31->unk24 < 0.0f) ? 360 : (temp_r31->unk24 > 360.0f) ? -360 : 0; Hu3DModelObjPosGet(arg0->model[var_r25], lbl_1_data_1828[temp_r31->unk00], &sp348); switch (temp_r31->unk04) { case 3: case 5: case 6: - if (temp_r31->unk00 >= 3 && temp_r31->unk00 >= 9 && temp_r31->unk04 == 3 - && temp_r31->unk14 < -120.0f && temp_r31->unk14 + lbl_1_bss_4 >= -120.0f) - { + if (temp_r31->unk00 >= 3 && temp_r31->unk00 >= 9 && temp_r31->unk04 == 3 && temp_r31->unk14 < -120.0f + && temp_r31->unk14 + lbl_1_bss_4 >= -120.0f) { sp218 = (500.0f + temp_r31->unk0C) / 100.0f; - sp218 = (sp218 < 0) ? 0 - : (sp218 >= 11) ? 10 - : sp218; + sp218 = (sp218 < 0) ? 0 : (sp218 >= 11) ? 10 : sp218; lbl_1_data_1878[sp218] = 15; Hu3DMotionShiftSet(arg0->model[sp218 + 8], arg0->motion[11], 20.0f, 15.0f, HU3D_MOTATTR_NONE); if (temp_r31->unk00 == 9 && lbl_1_bss_54[5].unk00 < 3) { @@ -1041,16 +946,14 @@ void fn_1_3B74(omObjData* arg0) { temp_r31->unk14 += (temp_r31->unk04 == 3 ? lbl_1_bss_4 : lbl_1_bss_0); if (lbl_1_bss_34 >= 1003 && lbl_1_bss_34 < 1005) { if ((temp_r31->unk04 == 3 && temp_r31->unk00 == 9 && temp_r31->unk14 >= 150.0f && temp_r31->unk14 - lbl_1_bss_4 < 150.0f) - || (temp_r31->unk04 == 6 && temp_r31->unk00 == 9 && temp_r31->unk08 == 1)) - { + || (temp_r31->unk04 == 6 && temp_r31->unk00 == 9 && temp_r31->unk08 == 1)) { sp354[j]->unk20 = 5; sp354[j]->unk24 = 0; lbl_1_bss_3C[j]->trans.x = temp_r31->unk0C; lbl_1_bss_3C[j]->trans.y = (j == 0 ? 300 : 0); lbl_1_bss_3C[j]->trans.z = temp_r31->unk14; - lbl_1_bss_3C[j]->rot.y = 180 + ((lbl_1_bss_20 == 4 && temp_r31->unk04 == 6) - ? (temp_r31->unk0C < 0.0f ? -45 : 45) - : 0); + lbl_1_bss_3C[j]->rot.y + = 180 + ((lbl_1_bss_20 == 4 && temp_r31->unk04 == 6) ? (temp_r31->unk0C < 0.0f ? -45 : 45) : 0); Hu3DMotionSpeedSet(arg0->model[j + 79], 1.0f); Hu3DMotionShiftSet(arg0->model[j + 79], arg0->motion[j + 22], 44.0f, 2.0f, HU3D_MOTATTR_NONE); Hu3DParticleCntSet(arg0->model[j + 39], j == 0 ? 15 : 0); @@ -1066,7 +969,8 @@ void fn_1_3B74(omObjData* arg0) { if (temp_r31->unk00 != 10) { if (temp_r31->unk00 != 9) { Hu3DMotionTimeSet(arg0->model[var_r25], 1.0f); - } else { + } + else { Hu3DMotionSet(arg0->model[var_r25], arg0->motion[j + 26]); Hu3DMotionTimeSet(arg0->model[var_r25], 1.0f); Hu3DMotionSpeedSet(arg0->model[var_r25], 1.0f); @@ -1081,22 +985,25 @@ void fn_1_3B74(omObjData* arg0) { temp_r31->unk1C = 0.0f; if (temp_r31->unk00 == 10) { Hu3DModelAttrSet(arg0->model[var_r25], HU3D_MOTATTR_LOOP); - } else if (temp_r31->unk00 != 9) { + } + else if (temp_r31->unk00 != 9) { Hu3DMotionTimeSet(arg0->model[var_r25], 2.0f); Hu3DModelAttrReset(arg0->model[var_r25], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); - } else { + } + else { Hu3DMotionSet(arg0->model[var_r25], arg0->motion[(temp_r31->unk04 == 6) ? (j + 26) : (j + 30)]); Hu3DMotionTimeSet(arg0->model[var_r25], 1.0f); Hu3DMotionSpeedSet(arg0->model[var_r25], 1.0f); } temp_r31->unk04 = 7; Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, temp_r31->unk10, temp_r31->unk14); - } else { - Hu3DModelPosSet(arg0->model[var_r25], - temp_r31->unk0C, + } + else { + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, ((temp_r31->unk00 >= 0 && temp_r31->unk00 < 10) - ? ((temp_r31->unk04 != 6 ? 300 : 0) + lbl_1_rodata_100[temp_r31->unk00]) - : temp_r31->unk10) + lbl_1_rodata_A0[temp_r31->unk00], + ? ((temp_r31->unk04 != 6 ? 300 : 0) + lbl_1_rodata_100[temp_r31->unk00]) + : temp_r31->unk10) + + lbl_1_rodata_A0[temp_r31->unk00], temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); } if (temp_r31->unk00 >= 10) { @@ -1105,31 +1012,24 @@ void fn_1_3B74(omObjData* arg0) { break; case 4: if (temp_r31->unk00 >= 0 && temp_r31->unk00 < 10) { - float sp394[] = { - 0.0f, 0.0f, 0.0f, 0.9f, 0.9f, 0.9f, - 1.75f, 1.75f, 1.75f, 0.0f, 0.0f, 0.0f - }; - s32 sp364[] = { - 42, 42, 42, 41, 41, 41, - 48, 48, 48, 27, 27, 27 - }; + float sp394[] = { 0.0f, 0.0f, 0.0f, 0.9f, 0.9f, 0.9f, 1.75f, 1.75f, 1.75f, 0.0f, 0.0f, 0.0f }; + s32 sp364[] = { 42, 42, 42, 41, 41, 41, 48, 48, 48, 27, 27, 27 }; if (temp_r31->unk00 >= 6 && temp_r31->unk00 <= 8) { temp_f29 = temp_r31->unk08; - temp_f27 = (temp_f29 <= 1.0f) ? 0.0 + temp_f27 = (temp_f29 <= 1.0f) ? 0.0 : (temp_f29 >= 30.0f && temp_f29 < 40.0f) ? -1.0 * (1.0 - (temp_f29 - 30.0f) / 9.0) - : (temp_f29 >= 40.0f) ? 1.0 - (temp_f29 - 40.0f) / 8.0 - : 1.0; - temp_f27 = (temp_f29 >= 40.0f) - ? -1.0 + (temp_f27 * 0.5 + temp_f27 * temp_f27 * 0.5) - : temp_f27; + : (temp_f29 >= 40.0f) ? 1.0 - (temp_f29 - 40.0f) / 8.0 + : 1.0; + temp_f27 = (temp_f29 >= 40.0f) ? -1.0 + (temp_f27 * 0.5 + temp_f27 * temp_f27 * 0.5) : temp_f27; temp_f27 = (temp_f29 <= 1.0f) ? 0.0 - : (temp_f29 < 23.0f) ? 1.0 - : (temp_f29 < 32.0f) ? 0.5 - : (temp_f29 < 40.0f) ? -0.8 - : (-1.0 - 0.4 * (1.0 - (temp_f29 - 40.0f) / 8.0)); + : (temp_f29 < 23.0f) ? 1.0 + : (temp_f29 < 32.0f) ? 0.5 + : (temp_f29 < 40.0f) ? -0.8 + : (-1.0 - 0.4 * (1.0 - (temp_f29 - 40.0f) / 8.0)); temp_r31->unk14 -= (lbl_1_bss_4 * sp394[temp_r31->unk00] / 4.0) * temp_f27; - } else { + } + else { temp_r31->unk14 -= lbl_1_bss_4 * sp394[temp_r31->unk00] / 4.0; } if (temp_r31->unk08 >= sp364[temp_r31->unk00]) { @@ -1137,14 +1037,16 @@ void fn_1_3B74(omObjData* arg0) { temp_r31->unk04 = 5; temp_r31->unk08 = 0; } - } else { + } + else { temp_r31->unk1C -= 1.0f; temp_r31->unk10 += temp_r31->unk1C; temp_r31->unk14 += 1.25 * lbl_1_bss_4; if (temp_r31->unk10 <= 0.0f) { if (temp_r31->unk1C < -10.0f && temp_r31->unk00 == 10) { temp_r31->unk1C = 9.0f; - } else { + } + else { temp_r31->unk1C = 0.0f; temp_r31->unk10 = 0.0f; temp_r31->unk04 = 5; @@ -1152,9 +1054,9 @@ void fn_1_3B74(omObjData* arg0) { } } } - Hu3DModelPosSet(arg0->model[var_r25], - temp_r31->unk0C, - lbl_1_rodata_A0[temp_r31->unk00] + ((temp_r31->unk00 >= 0 && temp_r31->unk00 < 10) ? (300.0f + lbl_1_rodata_100[temp_r31->unk00]) : temp_r31->unk10), + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, + lbl_1_rodata_A0[temp_r31->unk00] + + ((temp_r31->unk00 >= 0 && temp_r31->unk00 < 10) ? (300.0f + lbl_1_rodata_100[temp_r31->unk00]) : temp_r31->unk10), temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); if (temp_r31->unk00 >= 10) { Hu3DModelRotSet(arg0->model[var_r25], 0.0f, temp_r31->unk24, 0.0f); @@ -1176,14 +1078,9 @@ void fn_1_3B74(omObjData* arg0) { temp_r31->unk04 = 2; temp_r31->unk08 = 0; } - Hu3DModelPosSet(arg0->model[var_r25], - temp_r31->unk0C, - temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00], + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00], temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); - Hu3DModelRotSet(arg0->model[var_r25], - 9.0f, - (temp_r31->unk0C < 0.0f) ? -31 : 31, - (temp_r31->unk0C < 0.0f) ? -18 : 18); + Hu3DModelRotSet(arg0->model[var_r25], 9.0f, (temp_r31->unk0C < 0.0f) ? -31 : 31, (temp_r31->unk0C < 0.0f) ? -18 : 18); break; case 2: temp_r31->unk1C -= (temp_r31->unk00 != 9) ? 0.625 : 0.9; @@ -1195,15 +1092,14 @@ void fn_1_3B74(omObjData* arg0) { temp_r31->unk1C = 0.0f; temp_r31->unk04 = 6; temp_r31->unk08 = 0; - Hu3DModelPosSet(arg0->model[var_r25], - temp_r31->unk0C, - temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00] + lbl_1_rodata_100[temp_r31->unk00] + lbl_1_rodata_100[temp_r31->unk00], + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, + temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00] + lbl_1_rodata_100[temp_r31->unk00] + + lbl_1_rodata_100[temp_r31->unk00], temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); Hu3DModelRotSet(arg0->model[var_r25], 0.0f, (temp_r31->unk0C < 0.0f) ? -31 : 31, 0.0f); - } else { - Hu3DModelPosSet(arg0->model[var_r25], - temp_r31->unk0C, - temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00], + } + else { + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00], temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); } break; @@ -1220,8 +1116,7 @@ void fn_1_3B74(omObjData* arg0) { } temp_r31->unk04 = 0; } - Hu3DModelPosSet(arg0->model[var_r25], - temp_r31->unk0C, + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, (temp_r31->unk00 >= 0 && temp_r31->unk00 < 9) ? (300.0f + lbl_1_rodata_100[temp_r31->unk00]) : temp_r31->unk10, temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, temp_r31->unk10, temp_r31->unk14); @@ -1246,12 +1141,12 @@ void fn_1_3B74(omObjData* arg0) { } } if (i == 9 && lbl_1_bss_18 != 0) { - ModelData* sp204 = &Hu3DData[arg0->model[j + 39]]; - ParticleData* sp200 = sp204->unk_120; + ModelData *sp204 = &Hu3DData[arg0->model[j + 39]]; + ParticleData *sp200 = sp204->unk_120; if (sp200->unk_34 == 63) { - ModelData* temp_r23 = &Hu3DData[arg0->model[var_r25]]; - ModelData* temp_r22 = &Hu3DData[arg0->model[j + 39]]; + ModelData *temp_r23 = &Hu3DData[arg0->model[var_r25]]; + ModelData *temp_r22 = &Hu3DData[arg0->model[j + 39]]; temp_r22->pos.x = temp_r23->pos.x; temp_r22->pos.y = temp_r23->pos.y; @@ -1263,15 +1158,16 @@ void fn_1_3B74(omObjData* arg0) { } if (temp_r31->unk2C == 0 && (lbl_1_bss_34 == 1004 || lbl_1_bss_34 == 1005)) { if (temp_r31->unk00 != 9 - || (temp_r31->unk04 != 1 && temp_r31->unk04 != 2 && ((temp_r31->unk04 != 3 && temp_r31->unk04 != 6) || sp354[j]->unk20 > 5 || sp354[j]->unk20 < 3))) - { + || (temp_r31->unk04 != 1 && temp_r31->unk04 != 2 + && ((temp_r31->unk04 != 3 && temp_r31->unk04 != 6) || sp354[j]->unk20 > 5 || sp354[j]->unk20 < 3))) { temp_r31->unk2C = 1; } } temp_r31->unk2C += (temp_r31->unk2C > 0); if (temp_r31->unk2C != 0 && (temp_r31->unk2C % 2 == 0 || temp_r31->unk2C > 25)) { Hu3DModelAttrSet(arg0->model[var_r25], 1); - } else { + } + else { Hu3DModelAttrReset(arg0->model[var_r25], 1); } } @@ -1336,41 +1232,37 @@ void fn_1_3B74(omObjData* arg0) { espBankSet(lbl_1_data_40[i * 7 + 3], (lbl_1_data_18F4[i] / 10) % 10); } for (i = 0; i < 4; i++) { - ModelData* temp_r24 = &Hu3DData[lbl_1_bss_3C[i]->model[0]]; + ModelData *temp_r24 = &Hu3DData[lbl_1_bss_3C[i]->model[0]]; float temp_f19 = 0.0f; float sp1F0 = (temp_r24->unk_08 == lbl_1_bss_3C[i]->motion[3]) ? 0 : -1; float sp1EC = (temp_r24->unk_0C == lbl_1_bss_3C[i]->motion[3]) ? 0 : -1; - float sp1E8 = (sp1F0 == -1.0f) ? 0.0f - : (temp_r24->unk_64 < 4.0f) ? 0.0f + float sp1E8 = (sp1F0 == -1.0f) ? 0.0f + : (temp_r24->unk_64 < 4.0f) ? 0.0f : (temp_r24->unk_64 > 28.0f) ? 1.0f - : (temp_r24->unk_64 - 4.0f) / 24.0f; - float sp1E4 = (sp1EC == -1.0f) ? 0.0f - : (temp_r24->unk_84 < 4.0f) ? 0.0f + : (temp_r24->unk_64 - 4.0f) / 24.0f; + float sp1E4 = (sp1EC == -1.0f) ? 0.0f + : (temp_r24->unk_84 < 4.0f) ? 0.0f : (temp_r24->unk_84 > 28.0f) ? 1.0f - : (temp_r24->unk_84 - 4.0f) / 24.0f; - float temp_f18 = (temp_r24->unk_0C == -1) ? 0.0f - : (temp_r24->unk_80 == 0.0f) ? 1.0f - : (temp_r24->unk_7C / temp_r24->unk_80); + : (temp_r24->unk_84 - 4.0f) / 24.0f; + float temp_f18 = (temp_r24->unk_0C == -1) ? 0.0f : (temp_r24->unk_80 == 0.0f) ? 1.0f : (temp_r24->unk_7C / temp_r24->unk_80); temp_f19 = sp1E8 * (1.0f - temp_f18) + sp1E4 * temp_f18; if (!(temp_r24->attr & 1) && sp354[i]->unk20 != 3 && sp354[i]->unk20 != 4 && lbl_1_bss_3C[i]->trans.z < 1400.0f) { Hu3DModelAttrReset(lbl_1_bss_3C[i]->model[1], 1); - Hu3DModelPosSet(lbl_1_bss_3C[i]->model[1], - lbl_1_bss_3C[i]->trans.x, - (lbl_1_bss_3C[i]->trans.z < 620.0f) ? 5 : -295, + Hu3DModelPosSet(lbl_1_bss_3C[i]->model[1], lbl_1_bss_3C[i]->trans.x, (lbl_1_bss_3C[i]->trans.z < 620.0f) ? 5 : -295, lbl_1_bss_3C[i]->trans.z - 165.0f * temp_f19); - Hu3DModelScaleSet(lbl_1_bss_3C[i]->model[1], - 0.75 * (sp354[i]->unk08 == 5 ? 1.25 : 1.0), - 1.0f, - 1.25 * (sp354[i]->unk08 == 5 ? 1.25 : 1.0)); - } else { + Hu3DModelScaleSet( + lbl_1_bss_3C[i]->model[1], 0.75 * (sp354[i]->unk08 == 5 ? 1.25 : 1.0), 1.0f, 1.25 * (sp354[i]->unk08 == 5 ? 1.25 : 1.0)); + } + else { Hu3DModelAttrSet(lbl_1_bss_3C[i]->model[1], 1); } } } -void fn_1_89E0(omObjData* arg0) { - StructBss3CData* spC[4]; +void fn_1_89E0(omObjData *arg0) +{ + StructBss3CData *spC[4]; s32 sp8; s32 var_r29; s32 var_r30; @@ -1380,12 +1272,7 @@ void fn_1_89E0(omObjData* arg0) { spC[i] = lbl_1_bss_3C[i]->data; } for (i = 0; i < 11; i++) { - s32 sp1C[] = { - 0x60A, 0x60B, 0x60C, - 0x60D, 0x60E, 0x60F, - 0x611, 0x610, 0x007, - 0x013, 0x612 - }; + s32 sp1C[] = { 0x60A, 0x60B, 0x60C, 0x60D, 0x60E, 0x60F, 0x611, 0x610, 0x007, 0x013, 0x612 }; if (lbl_1_bss_54[i].unk00 > 3) { lbl_1_bss_54[i].unk00 = 3; @@ -1456,7 +1343,8 @@ void fn_1_89E0(omObjData* arg0) { if (lbl_1_data_18AC != -1) { HuAudSeqFadeOut(lbl_1_data_18AC, 100); } - } else { + } + else { var_r29 = 0; var_r30 = 0; for (i = 0; i < 4; i++) { @@ -1465,15 +1353,14 @@ void fn_1_89E0(omObjData* arg0) { } if (i == 0 && ((spC[0]->unk20 >= 2 && spC[0]->unk20 <= 4) || (spC[0]->unk20 == 4 && lbl_1_data_F0[9][0].unk14 < 70.0f))) { var_r30++; - } else if (i != 0 && spC[i]->unk20 >= 2 && spC[i]->unk20 <= 4) { + } + else if (i != 0 && spC[i]->unk20 >= 2 && spC[i]->unk20 <= 4) { var_r30++; } } if (MGSeqStatGet(lbl_1_bss_2E) == 0 - && ((lbl_1_bss_8 >= 150.0f && var_r29 == 0 && var_r30 == 0) - || (lbl_1_bss_8 >= 240.0f && var_r30 == 0) - || lbl_1_bss_8 >= 360.0f)) - { + && ((lbl_1_bss_8 >= 150.0f && var_r29 == 0 && var_r30 == 0) || (lbl_1_bss_8 >= 240.0f && var_r30 == 0) + || lbl_1_bss_8 >= 360.0f)) { lbl_1_bss_34++; lbl_1_bss_8 = 0.0f; GWPlayerCoinCollectSet(spC[0]->unk04, lbl_1_data_18F4[0]); @@ -1482,7 +1369,8 @@ void fn_1_89E0(omObjData* arg0) { GWPlayerCoinCollectSet(spC[3]->unk04, lbl_1_data_18F4[1]); if (lbl_1_data_18F4[0] == 0 && lbl_1_data_18F4[1] == 0) { HuAudSStreamPlay(4); - } else { + } + else { HuAudSStreamPlay(1); } } @@ -1504,8 +1392,9 @@ void fn_1_89E0(omObjData* arg0) { } } -void fn_1_9410(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; +void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; float temp_f31; float temp_f30; s16 i; @@ -1549,10 +1438,10 @@ void fn_1_9410(ModelData* model, ParticleData* particle, Mtx matrix) { var_r31->unk40.b = 0xFF; var_r31->unk40.a = 0x60; var_r31->unk2C = 50.0f; - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); } if (var_r31->unk00_s16 < 240) { - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.x *= 0.9f; var_r31->unk08.z *= 0.9f; var_r31->unk08.y *= 0.9f; @@ -1571,7 +1460,8 @@ void fn_1_9410(ModelData* model, ParticleData* particle, Mtx matrix) { } } -void fn_1_9900(omObjData* arg0) { +void fn_1_9900(omObjData *arg0) +{ s32 temp_r28; s32 i; s32 j; @@ -1614,7 +1504,7 @@ void fn_1_9900(omObjData* arg0) { Hu3DMotionSet(arg0->model[i + 8], arg0->motion[0]); Hu3DModelAttrSet(arg0->model[i + 8], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(arg0->model[i + 8], HU3D_MOTATTR_PAUSE); - Hu3DMotionTimeSet(arg0->model[i + 8], rand8() % (s32) Hu3DMotionMaxTimeGet(arg0->model[i + 8])); + Hu3DMotionTimeSet(arg0->model[i + 8], rand8() % (s32)Hu3DMotionMaxTimeGet(arg0->model[i + 8])); } arg0->model[19] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 26)); Hu3DModelPosSet(arg0->model[19], 1800.0f, 0.0f, -22.0f); @@ -1624,37 +1514,23 @@ void fn_1_9900(omObjData* arg0) { Hu3DModelAttrSet(arg0->model[20], HU3D_MOTATTR_LOOP); for (i = 0; i < 10; i++) { for (j = 0; j < 4; j++) { - s32 spD0[] = { - DATA_MAKE_NUM(DATADIR_M422, 41), - DATA_MAKE_NUM(DATADIR_M422, 42), - DATA_MAKE_NUM(DATADIR_M422, 43), - DATA_MAKE_NUM(DATADIR_M422, 44), - DATA_MAKE_NUM(DATADIR_M422, 45), - DATA_MAKE_NUM(DATADIR_M422, 46), - DATA_MAKE_NUM(DATADIR_M422, 47), - DATA_MAKE_NUM(DATADIR_M422, 48), - DATA_MAKE_NUM(DATADIR_M422, 49), - DATA_MAKE_NUM(DATADIR_M422, 30) - }; - s32 sp30[] = { - DATA_MAKE_NUM(DATADIR_M422, 30), - DATA_MAKE_NUM(DATADIR_M422, 31), - DATA_MAKE_NUM(DATADIR_M422, 32), - DATA_MAKE_NUM(DATADIR_M422, 33), - DATA_MAKE_NUM(DATADIR_M422, 34), - DATA_MAKE_NUM(DATADIR_M422, 35), - DATA_MAKE_NUM(DATADIR_M422, 37), - DATA_MAKE_NUM(DATADIR_M422, 36) - }; + s32 spD0[] = { DATA_MAKE_NUM(DATADIR_M422, 41), DATA_MAKE_NUM(DATADIR_M422, 42), DATA_MAKE_NUM(DATADIR_M422, 43), + DATA_MAKE_NUM(DATADIR_M422, 44), DATA_MAKE_NUM(DATADIR_M422, 45), DATA_MAKE_NUM(DATADIR_M422, 46), DATA_MAKE_NUM(DATADIR_M422, 47), + DATA_MAKE_NUM(DATADIR_M422, 48), DATA_MAKE_NUM(DATADIR_M422, 49), DATA_MAKE_NUM(DATADIR_M422, 30) }; + s32 sp30[] = { DATA_MAKE_NUM(DATADIR_M422, 30), DATA_MAKE_NUM(DATADIR_M422, 31), DATA_MAKE_NUM(DATADIR_M422, 32), + DATA_MAKE_NUM(DATADIR_M422, 33), DATA_MAKE_NUM(DATADIR_M422, 34), DATA_MAKE_NUM(DATADIR_M422, 35), DATA_MAKE_NUM(DATADIR_M422, 37), + DATA_MAKE_NUM(DATADIR_M422, 36) }; temp_r28 = i * 4 + 43 + j; if (i == 9) { - StructBss3CData* var_r23 = lbl_1_bss_3C[j]->data; + StructBss3CData *var_r23 = lbl_1_bss_3C[j]->data; arg0->model[temp_r28] = Hu3DModelCreateFile(sp30[var_r23->unk08]); - } else if (j == 0) { + } + else if (j == 0) { arg0->model[temp_r28] = Hu3DModelCreateFile(spD0[i]); - } else { + } + else { arg0->model[temp_r28] = Hu3DModelLink(arg0->model[temp_r28 - j]); } Hu3DModelAttrSet(arg0->model[temp_r28], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); @@ -1678,15 +1554,13 @@ void fn_1_9900(omObjData* arg0) { } for (i = 0; i < 2; i++) { for (j = 0; j < 10; j++) { - s32 sp28[] = { - DATA_MAKE_NUM(DATADIR_M422, 28), - DATA_MAKE_NUM(DATADIR_M422, 29) - }; + s32 sp28[] = { DATA_MAKE_NUM(DATADIR_M422, 28), DATA_MAKE_NUM(DATADIR_M422, 29) }; temp_r28 = i * 10 + 83 + j; if (j == 0) { arg0->model[temp_r28] = Hu3DModelCreateFile(sp28[i]); - } else { + } + else { arg0->model[temp_r28] = Hu3DModelLink(arg0->model[temp_r28 - j]); } Hu3DModelAttrSet(arg0->model[temp_r28], HU3D_MOTATTR_LOOP); @@ -1706,14 +1580,11 @@ void fn_1_9900(omObjData* arg0) { s32 sp50[] = { 0, 0, 1, 1, 1, 1, -2, 0, 0, 9, 9, 9, 9, -14, 10, 10 }; if (lbl_1_data_0[i] == DATA_MAKE_NUM(DATADIR_MGCONST, 12) || lbl_1_data_0[i] == DATA_MAKE_NUM(DATADIR_MGCONST, 0)) { - StructBss3CData* var_r22 = lbl_1_bss_3C[ - (i == 6) ? 0 - : (i == 13) ? 1 - : (i == 14) ? 2 : 3 - ]->data; + StructBss3CData *var_r22 = lbl_1_bss_3C[(i == 6) ? 0 : (i == 13) ? 1 : (i == 14) ? 2 : 3]->data; lbl_1_data_40[i] = espEntry(lbl_1_data_0[i] + var_r22->unk08, 0, 0); - } else { + } + else { lbl_1_data_40[i] = espEntry(lbl_1_data_0[i], 0, 0); } espDrawNoSet(lbl_1_data_40[i], 0); @@ -1764,9 +1635,10 @@ void fn_1_9900(omObjData* arg0) { arg0->func = fn_1_3B74; } -void fn_1_AC4C(omObjData* arg0) { +void fn_1_AC4C(omObjData *arg0) +{ s32 sp8[] = { 0, 1, 2, 3 }; - StructBss3CData* temp_r31; + StructBss3CData *temp_r31; s32 var_r27; s32 j; s32 i; @@ -1816,14 +1688,16 @@ void fn_1_AC4C(omObjData* arg0) { arg0->func = fn_1_2FC; } -void fn_1_B004(omObjData* arg0) { +void fn_1_B004(omObjData *arg0) +{ lbl_1_bss_34 = 1000; WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); arg0->func = fn_1_89E0; } -void ObjectSetup(void) { - omObjData* var_r30; +void ObjectSetup(void) +{ + omObjData *var_r30; s32 i; OSReport("******* M422 ObjectSetup *********\n"); @@ -1868,8 +1742,9 @@ void ObjectSetup(void) { lbl_1_bss_50 = omAddObjEx(lbl_1_bss_30, 102, 0, 0, -1, fn_1_B004); } -void fn_1_B480(omObjData* arg0) { - StructBss3CData* var_r30; +void fn_1_B480(omObjData *arg0) +{ + StructBss3CData *var_r30; s32 i; if (WipeStatGet() == 0) { diff --git a/src/REL/m423Dll/main.c b/src/REL/m423Dll/main.c index c063e916..a511fc2d 100755 --- a/src/REL/m423Dll/main.c +++ b/src/REL/m423Dll/main.c @@ -26,7 +26,7 @@ typedef struct { /* 0x04 */ s32 unk04; /* 0x08 */ s32 unk08; /* 0x0C */ s32 unk0C; - /* 0x10 */ void* unk10; + /* 0x10 */ void *unk10; } StructBssD0Data; // Size 0x14 typedef struct { @@ -36,8 +36,8 @@ typedef struct { } StructData0; // Size 0x1C typedef struct { - /* 0x00 */ StructBssD0Data* unk00; - /* 0x04 */ AnimData* unk04; + /* 0x00 */ StructBssD0Data *unk00; + /* 0x04 */ AnimData *unk04; } StructM423_00; // Size 8 typedef struct { @@ -54,19 +54,19 @@ typedef struct { /* 0x04 */ s16 unk04; /* 0x06 */ char unk06[2]; /* 0x08 */ Vec unk08; - /* 0x14 */ Vec* unk14; - /* 0x18 */ Vec* unk18; - /* 0x1C */ GXColor* unk1C; - /* 0x20 */ StructM423_01* unk20; + /* 0x14 */ Vec *unk14; + /* 0x18 */ Vec *unk18; + /* 0x1C */ GXColor *unk1C; + /* 0x20 */ StructM423_01 *unk20; /* 0x24 */ float unk24[4]; /* 0x34 */ u32 unk34; - /* 0x38 */ void* unk38; + /* 0x38 */ void *unk38; } StructM423_02; // Size 0x3C typedef struct { /* 0x00 */ s16 unk00; /* 0x02 */ s16 unk02; - /* 0x04 */ StructM423_02* unk04; + /* 0x04 */ StructM423_02 *unk04; } StructM423_03; // Size 8 typedef struct { @@ -99,13 +99,13 @@ typedef struct struct_m423_05 { /* 0x2C */ s32 unk2C; /* 0x30 */ u32 unk30; /* 0x34 */ s32 unk34; - /* 0x38 */ AnimData* unk38; - /* 0x3C */ StructM423_04* unk3C; - /* 0x40 */ Vec* unk40; + /* 0x38 */ AnimData *unk38; + /* 0x3C */ StructM423_04 *unk3C; + /* 0x40 */ Vec *unk40; /* 0x44 */ float (*unk44)[2]; - /* 0x48 */ void* unk48; - /* 0x4C */ void* unk4C; - /* 0x50 */ ModelData* unk50; + /* 0x48 */ void *unk48; + /* 0x4C */ void *unk4C; + /* 0x50 */ ModelData *unk50; } StructM423_05; // Size 0x54 typedef struct { @@ -151,15 +151,15 @@ typedef struct { typedef struct { /* 0x000 */ StructM423_0A unk00[16]; - /* 0x200 */ AnimData* unk200; + /* 0x200 */ AnimData *unk200; /* 0x204 */ s32 unk204; - /* 0x208 */ void* unk208; - /* 0x20C */ StructM423_08* unk20C; - /* 0x210 */ StructM423_09* unk210; - /* 0x214 */ GXColor* unk214; + /* 0x208 */ void *unk208; + /* 0x20C */ StructM423_08 *unk20C; + /* 0x210 */ StructM423_09 *unk210; + /* 0x214 */ GXColor *unk214; /* 0x218 */ s32 unk218; /* 0x21C */ s32 unk21C; - /* 0x220 */ void* unk220; + /* 0x220 */ void *unk220; } StructM423_0B; // Size 0x224 typedef struct { @@ -284,100 +284,100 @@ typedef struct { typedef struct { /* 0x00 */ s32 unk00; /* 0x04 */ s32 unk04; - /* 0x08 */ AnimData* unk08; + /* 0x08 */ AnimData *unk08; } StructBssA4Data; // Size 0xC -void fn_1_318(omObjData* arg0); -void fn_1_3B0(omObjData* arg0); -void fn_1_DFC(omObjData* arg0); -void fn_1_E60(omObjData* arg0); +void fn_1_318(omObjData *arg0); +void fn_1_3B0(omObjData *arg0); +void fn_1_DFC(omObjData *arg0); +void fn_1_E60(omObjData *arg0); void fn_1_F10(void); -void fn_1_F60(omObjData* arg0); -void fn_1_11A4(omObjData* arg0); +void fn_1_F60(omObjData *arg0); +void fn_1_11A4(omObjData *arg0); void fn_1_1238(void); -void fn_1_12A0(ModelData* arg0, Mtx arg1); -s32 fn_1_13A0(StructBssD0Data* arg0); +void fn_1_12A0(ModelData *arg0, Mtx arg1); +s32 fn_1_13A0(StructBssD0Data *arg0); void fn_1_1444(s32 arg0); -void fn_1_14A0(ModelData* arg0, Mtx arg1); +void fn_1_14A0(ModelData *arg0, Mtx arg1); s32 fn_1_18FC(void); -void fn_1_1B5C(ModelData* arg0, StructM423_02* arg1); -void fn_1_1F5C(ModelData* arg0, StructM423_02* arg1); -void fn_1_2290(ModelData* arg0, StructM423_02* arg1); -void fn_1_2624(ModelData* arg0, StructM423_02* arg1); +void fn_1_1B5C(ModelData *arg0, StructM423_02 *arg1); +void fn_1_1F5C(ModelData *arg0, StructM423_02 *arg1); +void fn_1_2290(ModelData *arg0, StructM423_02 *arg1); +void fn_1_2624(ModelData *arg0, StructM423_02 *arg1); void fn_1_29B8(s32 arg0); -void fn_1_29BC(ModelData* arg0, Mtx arg1); +void fn_1_29BC(ModelData *arg0, Mtx arg1); void fn_1_2C08(s32 arg0); void fn_1_34D8(void); -void fn_1_3528(omObjData* arg0); -void fn_1_3898(omObjData* arg0); +void fn_1_3528(omObjData *arg0); +void fn_1_3898(omObjData *arg0); void fn_1_3A64(void); void fn_1_3A8C(void); void fn_1_3BFC(void); -void fn_1_3FE0(omObjData* arg0); -void fn_1_4778(omObjData* arg0); -void fn_1_5D18(omObjData* arg0); +void fn_1_3FE0(omObjData *arg0); +void fn_1_4778(omObjData *arg0); +void fn_1_5D18(omObjData *arg0); void fn_1_77D0(void); s32 fn_1_781C(void); s32 fn_1_791C(void); void fn_1_7AA8(s32 arg0); void fn_1_82C8(s32 arg0, s32 arg1, s32 arg2); -void fn_1_8338(omObjData* arg0); -void fn_1_8CB4(omObjData* arg0); +void fn_1_8338(omObjData *arg0); +void fn_1_8CB4(omObjData *arg0); void fn_1_95C4(void); -void fn_1_9614(omObjData* arg0); -void fn_1_98A0(omObjData* arg0); +void fn_1_9614(omObjData *arg0); +void fn_1_98A0(omObjData *arg0); void fn_1_A9AC(void); s32 fn_1_A9D4(s32 arg0, Vec arg1, Vec arg2); void fn_1_AC0C(s32 arg0, Vec arg1); void fn_1_AC80(s32 arg0, Vec arg1); s32 fn_1_AE64(s32 arg0); void fn_1_AEE8(s32 arg0); -StructBssA8Data* fn_1_B13C(s32 arg0); +StructBssA8Data *fn_1_B13C(s32 arg0); void fn_1_B1A4(void); -s32 fn_1_B304(StructBssA8Data** arg0); +s32 fn_1_B304(StructBssA8Data **arg0); void fn_1_B430(void); -void fn_1_BCD8(Vec* arg0, Vec* arg1, Vec* arg2, float arg3, s32 arg4, s32 arg5); -s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5); +void fn_1_BCD8(Vec *arg0, Vec *arg1, Vec *arg2, float arg3, s32 arg4, s32 arg5); +s32 fn_1_C498(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float arg4, s32 arg5); void fn_1_D930(void); -void fn_1_DA38(omObjData* arg0); +void fn_1_DA38(omObjData *arg0); void fn_1_DBC8(void); s32 fn_1_DC24(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, GXColor arg5); s32 fn_1_DD70(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, GXColor arg6); void fn_1_E1BC(void); -void fn_1_E290(omObjData* arg0); +void fn_1_E290(omObjData *arg0); void fn_1_E330(void); s32 fn_1_E334(Vec arg0, Vec arg1, float arg2); void fn_1_E460(void); -void fn_1_E4EC(omObjData* arg0); +void fn_1_E4EC(omObjData *arg0); void fn_1_E60C(void); s32 fn_1_E678(void); -void fn_1_EF44(ModelData* arg0, Mtx arg1); +void fn_1_EF44(ModelData *arg0, Mtx arg1); s32 fn_1_F574(Vec arg0, float arg1, s32 arg2); void fn_1_F690(void); -void fn_1_F6E0(omObjData* arg0); -void fn_1_FA40(omObjData* arg0); +void fn_1_F6E0(omObjData *arg0); +void fn_1_FA40(omObjData *arg0); void fn_1_FF98(void); void fn_1_10028(s32 arg0); void fn_1_100DC(void); -void fn_1_10480(omObjData* arg0); +void fn_1_10480(omObjData *arg0); void fn_1_10540(s32 arg0, s32 arg1, s32 arg2, float arg3); void fn_1_106D8(s32 arg0); void fn_1_10BC8(void); -void fn_1_11008(StructBssD0Data* arg0, void* arg1, s16 arg2, GXTexWrapMode arg3, s32 arg4, s32 arg5); -s16 fn_1_11114(AnimData* arg0, s16 arg1); -void fn_1_11900(ModelData* arg0, Mtx arg1); +void fn_1_11008(StructBssD0Data *arg0, void *arg1, s16 arg2, GXTexWrapMode arg3, s32 arg4, s32 arg5); +s16 fn_1_11114(AnimData *arg0, s16 arg1); +void fn_1_11900(ModelData *arg0, Mtx arg1); float fn_1_121DC(float arg0, float arg1); float fn_1_122F4(float arg0, float arg1, float arg2); float fn_1_12544(float arg0, float arg1, float arg2); -void fn_1_1293C(Mtx arg0, Vec* arg1); -s32 fn_1_12C6C(Vec* arg0, Vec* arg1, float* arg2); -float fn_1_12E68(Vec* arg0, Vec* arg1, s32 arg2); -void fn_1_129F0(Vec* arg0, Vec* arg1, Vec* arg2, float* arg3); -void fn_1_1334C(float* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4); -float fn_1_1367C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float* arg4); -s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5); +void fn_1_1293C(Mtx arg0, Vec *arg1); +s32 fn_1_12C6C(Vec *arg0, Vec *arg1, float *arg2); +float fn_1_12E68(Vec *arg0, Vec *arg1, s32 arg2); +void fn_1_129F0(Vec *arg0, Vec *arg1, Vec *arg2, float *arg3); +void fn_1_1334C(float *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4); +float fn_1_1367C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float *arg4); +s32 fn_1_137C4(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float arg4, s32 arg5); -Process* lbl_1_bss_120; +Process *lbl_1_bss_120; s32 lbl_1_bss_11C; s32 lbl_1_bss_118; s32 lbl_1_bss_114; @@ -390,73 +390,52 @@ s32 lbl_1_bss_FC; s32 lbl_1_bss_EC[4]; s32 lbl_1_bss_DC[4]; s32 lbl_1_bss_D8; -omObjData* lbl_1_bss_D4; -omObjData* lbl_1_bss_D0; -omObjData* lbl_1_bss_CC; -omObjData* lbl_1_bss_BC[4]; -omObjData* lbl_1_bss_B8; -omObjData* lbl_1_bss_AC[3]; -omObjData* lbl_1_bss_A8; -omObjData* lbl_1_bss_A4; -omObjData* lbl_1_bss_A0; -omObjData* lbl_1_bss_9C; -omObjData* lbl_1_bss_98; -StructBss94Data* lbl_1_bss_94; +omObjData *lbl_1_bss_D4; +omObjData *lbl_1_bss_D0; +omObjData *lbl_1_bss_CC; +omObjData *lbl_1_bss_BC[4]; +omObjData *lbl_1_bss_B8; +omObjData *lbl_1_bss_AC[3]; +omObjData *lbl_1_bss_A8; +omObjData *lbl_1_bss_A4; +omObjData *lbl_1_bss_A0; +omObjData *lbl_1_bss_9C; +omObjData *lbl_1_bss_98; +StructBss94Data *lbl_1_bss_94; s32 lbl_1_bss_90; -omObjData* lbl_1_bss_8C; +omObjData *lbl_1_bss_8C; s32 lbl_1_bss_88; s32 lbl_1_bss_84; s32 lbl_1_bss_80; s32 lbl_1_bss_7C; -StructBssA8Data* lbl_1_bss_40[15]; -StructBssA8Data* lbl_1_bss_4[15]; +StructBssA8Data *lbl_1_bss_40[15]; +StructBssA8Data *lbl_1_bss_4[15]; s32 lbl_1_bss_0; -StructData0 lbl_1_data_0[] = { - { { 342.45f, 0.0f, 0.0f }, { 0.0f, 275.0f, 128.0f }, 550.0f }, - { { 6.0f, 0.0f, 0.0f }, { 0.0f, 190.0f, 0.0f }, 550.0f } -}; +StructData0 lbl_1_data_0[] + = { { { 342.45f, 0.0f, 0.0f }, { 0.0f, 275.0f, 128.0f }, 550.0f }, { { 6.0f, 0.0f, 0.0f }, { 0.0f, 190.0f, 0.0f }, 550.0f } }; -StructData0 lbl_1_data_38[] = { - { { 22.0f, 180.0f, 0.0f }, { -250.0f, 120.00001f, 0.0f }, 160.0f }, - { { 22.0f, 180.0f, 0.0f }, { 0.0f, 120.00001f, 0.0f }, 160.0f }, - { { 22.0f, 180.0f, 0.0f }, { 250.0f, 120.00001f, 0.0f }, 160.0f }, - { { -45.0f, 180.0f, 0.0f }, { -250.0f, 75.0f, 0.0f }, 180.0f }, - { { -45.0f, 180.0f, 0.0f }, { 0.0f, 75.0f, 0.0f }, 180.0f }, - { { -45.0f, 180.0f, 0.0f }, { 250.0f, 75.0f, 0.0f }, 180.0f }, - { { -45.0f, 0.0f, 0.0f }, { -250.0f, 95.0f, 0.0f }, 150.0f }, - { { -45.0f, 0.0f, 0.0f }, { 0.0f, 95.0f, 0.0f }, 150.0f }, - { { -45.0f, 0.0f, 0.0f }, { 250.0f, 95.0f, 0.0f }, 150.0f }, - { { -45.0f, 0.0f, 0.0f }, { 0.0f, 95.0f, -850.0f }, 150.0f } -}; +StructData0 lbl_1_data_38[] + = { { { 22.0f, 180.0f, 0.0f }, { -250.0f, 120.00001f, 0.0f }, 160.0f }, { { 22.0f, 180.0f, 0.0f }, { 0.0f, 120.00001f, 0.0f }, 160.0f }, + { { 22.0f, 180.0f, 0.0f }, { 250.0f, 120.00001f, 0.0f }, 160.0f }, { { -45.0f, 180.0f, 0.0f }, { -250.0f, 75.0f, 0.0f }, 180.0f }, + { { -45.0f, 180.0f, 0.0f }, { 0.0f, 75.0f, 0.0f }, 180.0f }, { { -45.0f, 180.0f, 0.0f }, { 250.0f, 75.0f, 0.0f }, 180.0f }, + { { -45.0f, 0.0f, 0.0f }, { -250.0f, 95.0f, 0.0f }, 150.0f }, { { -45.0f, 0.0f, 0.0f }, { 0.0f, 95.0f, 0.0f }, 150.0f }, + { { -45.0f, 0.0f, 0.0f }, { 250.0f, 95.0f, 0.0f }, 150.0f }, { { -45.0f, 0.0f, 0.0f }, { 0.0f, 95.0f, -850.0f }, 150.0f } }; -Vec lbl_1_data_150[] = { - 0.0f, 0.0f, -850.0f, - -250.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, - 250.0f, 0.0f, 0.0f -}; +Vec lbl_1_data_150[] = { 0.0f, 0.0f, -850.0f, -250.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 250.0f, 0.0f, 0.0f }; -Vec lbl_1_data_180[] = { - 0.0f, 0.0f, -850.0f, - 850.0f, 0.0f, 0.0f, - 1200.0f, 0.0f, 0.0f, - 1650.0f, 0.0f, 0.0f -}; +Vec lbl_1_data_180[] = { 0.0f, 0.0f, -850.0f, 850.0f, 0.0f, 0.0f, 1200.0f, 0.0f, 0.0f, 1650.0f, 0.0f, 0.0f }; -Vec lbl_1_data_1B0[] = { - { -250.0f, 45.0f, 500.0f }, - { 0.0f, 45.0f, 500.0f }, - { 250.0f, 45.0f, 500.0f } -}; +Vec lbl_1_data_1B0[] = { { -250.0f, 45.0f, 500.0f }, { 0.0f, 45.0f, 500.0f }, { 250.0f, 45.0f, 500.0f } }; Vec lbl_1_data_1D4 = { 1000.0f, 2000.0f, 1000.0f }; Vec lbl_1_data_1E0 = { 0.0f, 1.0f, 0.0f }; Vec lbl_1_data_1EC = { 0.0f, 0.0f, -450.0f }; -void ObjectSetup(void) { - Process* var_r30; - CameraData* var_r29; +void ObjectSetup(void) +{ + Process *var_r30; + CameraData *var_r29; s32 i; OSReport("******* M426ObjectSetup *********\n"); @@ -499,7 +478,8 @@ Vec lbl_1_data_21C = { 0.0f, 0.0f, 0.0f }; Vec lbl_1_data_228 = { -1.0f, -2.0f, -1.0f }; GXColor lbl_1_data_234 = { 0xFF, 0xFF, 0xFF, 0xFF }; -void fn_1_318(omObjData* arg0) { +void fn_1_318(omObjData *arg0) +{ s32 var_r31; var_r31 = Hu3DGLightCreateV(&lbl_1_data_21C, &lbl_1_data_228, &lbl_1_data_234); @@ -520,8 +500,9 @@ void fn_1_318(omObjData* arg0) { s32 lbl_1_data_238[] = { 0, 4, 2, 3, 1, 5 }; s32 lbl_1_data_250[] = { 186, 186, 186, 240, 240, 240 }; -void fn_1_3B0(omObjData* arg0) { - CameraData* var_r28; +void fn_1_3B0(omObjData *arg0) +{ + CameraData *var_r28; float var_f31; s32 temp_r27; s32 var_r30; @@ -580,7 +561,8 @@ void fn_1_3B0(omObjData* arg0) { if ((var_r30 & 0x10) && lbl_1_bss_D8 == -1) { lbl_1_bss_D8 = HuAudSeqPlay(0x46); } - } else { + } + else { var_r30 = 0; } if (lbl_1_bss_11C == -1 || var_r30 == 0) { @@ -632,22 +614,27 @@ void fn_1_3B0(omObjData* arg0) { } if (lbl_1_bss_DC[0] > lbl_1_bss_DC[1] && lbl_1_bss_DC[0] > lbl_1_bss_DC[2]) { i = 0; - } else if (lbl_1_bss_DC[1] > lbl_1_bss_DC[0] && lbl_1_bss_DC[1] > lbl_1_bss_DC[2]) { + } + else if (lbl_1_bss_DC[1] > lbl_1_bss_DC[0] && lbl_1_bss_DC[1] > lbl_1_bss_DC[2]) { i = 1; - } else if (lbl_1_bss_DC[2] > lbl_1_bss_DC[0] && lbl_1_bss_DC[2] > lbl_1_bss_DC[1]) { + } + else if (lbl_1_bss_DC[2] > lbl_1_bss_DC[0] && lbl_1_bss_DC[2] > lbl_1_bss_DC[1]) { i = 2; - } else { + } + else { i = frand() & 3; if (i > 2) { i = 2; - } else if (i < 0) { + } + else if (i < 0) { i = 0; } } fn_1_106D8(i + 6); lbl_1_bss_114 = 10; lbl_1_bss_108 = 0; - } else { + } + else { lbl_1_bss_11C = MGSeqWinCreate(lbl_1_bss_EC[3], -1, -1, -1); fn_1_7AA8(0); for (i = 0; i < 4; i++) { @@ -678,7 +665,8 @@ void fn_1_3B0(omObjData* arg0) { fn_1_E60(arg0); } -void fn_1_DFC(omObjData* arg0) { +void fn_1_DFC(omObjData *arg0) +{ if (WipeStatGet() == 0) { fn_1_1238(); fn_1_3A64(); @@ -694,7 +682,8 @@ void fn_1_DFC(omObjData* arg0) { } } -void fn_1_E60(omObjData* arg0) { +void fn_1_E60(omObjData *arg0) +{ s32 var_r30; var_r30 = 0; @@ -711,17 +700,20 @@ void fn_1_E60(omObjData* arg0) { } } -s32 fn_1_F00(void) { +s32 fn_1_F00(void) +{ return lbl_1_bss_114; } -void fn_1_F10(void) { +void fn_1_F10(void) +{ lbl_1_bss_D0 = omAddObjEx(lbl_1_bss_120, 0x7F, 8, 0, -1, fn_1_F60); } -void fn_1_F60(omObjData* arg0) { - StructBssD0Data* temp_r30; - ModelData* temp_r29; +void fn_1_F60(omObjData *arg0) +{ + StructBssD0Data *temp_r30; + ModelData *temp_r29; temp_r30 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r30), MEMORY_DEFAULT_NUM); memset(temp_r30, 0, sizeof(*temp_r30)); @@ -741,7 +733,7 @@ void fn_1_F60(omObjData* arg0) { temp_r30->unk00 = 160; temp_r30->unk04 = 160; temp_r30->unk08 = GXGetTexBufferSize(temp_r30->unk00, temp_r30->unk04, 5, 0, 0); - temp_r30->unk10 = HuMemDirectMallocNum(HEAP_DATA, temp_r30->unk08, (u32) temp_r29->unk_48); + temp_r30->unk10 = HuMemDirectMallocNum(HEAP_DATA, temp_r30->unk08, (u32)temp_r29->unk_48); temp_r30->unk0C = 0.0f; arg0->model[4] = fn_1_13A0(temp_r30); Hu3DModelCameraSet(arg0->model[4], 5); @@ -751,11 +743,13 @@ void fn_1_F60(omObjData* arg0) { arg0->func = fn_1_11A4; } -void fn_1_11A4(omObjData* arg0) { +void fn_1_11A4(omObjData *arg0) +{ fn_1_2C08(arg0->model[5]); } -void fn_1_11D8(omObjData* arg0) { +void fn_1_11D8(omObjData *arg0) +{ fn_1_1444(arg0->model[4]); arg0->model[4] = -1; fn_1_29B8(arg0->model[5]); @@ -763,15 +757,17 @@ void fn_1_11D8(omObjData* arg0) { arg0->func = NULL; } -void fn_1_1238(void) { +void fn_1_1238(void) +{ fn_1_11D8(lbl_1_bss_D0); } GXColor lbl_1_data_298 = { 0x00, 0x00, 0x00, 0xFF }; -void fn_1_12A0(ModelData* arg0, Mtx arg1) { - StructBssD0Data* temp_r31; - CameraData* var_r30; +void fn_1_12A0(ModelData *arg0, Mtx arg1) +{ + StructBssD0Data *temp_r31; + CameraData *var_r30; temp_r31 = arg0->unk_120; var_r30 = &Hu3DCamera[1]; @@ -788,9 +784,10 @@ void fn_1_12A0(ModelData* arg0, Mtx arg1) { fn_1_10BC8(); } -s32 fn_1_13A0(StructBssD0Data* arg0) { - StructM423_00* var_r31; - ModelData* temp_r30; +s32 fn_1_13A0(StructBssD0Data *arg0) +{ + StructM423_00 *var_r31; + ModelData *temp_r30; s32 var_r29; var_r29 = Hu3DHookFuncCreate(fn_1_14A0); @@ -802,9 +799,10 @@ s32 fn_1_13A0(StructBssD0Data* arg0) { return var_r29; } -void fn_1_1444(s32 arg0) { - StructM423_00* var_r31; - ModelData* var_r30; +void fn_1_1444(s32 arg0) +{ + StructM423_00 *var_r31; + ModelData *var_r30; if (arg0 >= 0) { var_r30 = &Hu3DData[arg0]; @@ -813,37 +811,21 @@ void fn_1_1444(s32 arg0) { } } -f32 lbl_1_data_29C[] = { - -400.0f, 400.0f, 0.0f, - 400.0f, 400.0f, 0.0f, - 400.0f, 0.0f, 0.0f, - -400.0f, 0.0f, 0.0f -}; +f32 lbl_1_data_29C[] = { -400.0f, 400.0f, 0.0f, 400.0f, 400.0f, 0.0f, 400.0f, 0.0f, 0.0f, -400.0f, 0.0f, 0.0f }; -f32 lbl_1_data_2CC[] = { - 0.0f, 0.0f, - 1.0f, 0.0f, - 1.0f, 0.75f, - 0.0f, 0.75f -}; +f32 lbl_1_data_2CC[] = { 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.75f, 0.0f, 0.75f }; -f32 lbl_1_data_2EC[] = { - 0.0f, 0.0f, - 1.2f, 0.0f, - 1.2f, 0.75f, - 0.0f, 0.75f -}; +f32 lbl_1_data_2EC[] = { 0.0f, 0.0f, 1.2f, 0.0f, 1.2f, 0.75f, 0.0f, 0.75f }; -GXColor lbl_1_data_30C[] = { - { 0x40, 0x40, 0x40, 0xFF } -}; +GXColor lbl_1_data_30C[] = { { 0x40, 0x40, 0x40, 0xFF } }; GXColor lbl_1_data_310 = { 0x00, 0x00, 0x00, 0x80 }; -void fn_1_14A0(ModelData* arg0, Mtx arg1) { - CameraData* var_r28; - StructM423_00* temp_r29; - StructBssD0Data* temp_r30; +void fn_1_14A0(ModelData *arg0, Mtx arg1) +{ + CameraData *var_r28; + StructM423_00 *temp_r29; + StructBssD0Data *temp_r30; Mtx spC; s16 i; @@ -855,7 +837,7 @@ void fn_1_14A0(ModelData* arg0, Mtx arg1) { return; } GXLoadPosMtxImm(arg1, GX_PNMTX0); - PSMTXInvXpose(arg1, spC); + MTXInvXpose(arg1, spC); GXLoadNrmMtxImm(spC, GX_PNMTX0); GXSetTevColor(GX_TEVREG2, lbl_1_data_310); GXSetNumTevStages(2); @@ -874,7 +856,8 @@ void fn_1_14A0(ModelData* arg0, Mtx arg1) { GXSetTevOp(GX_TEVSTAGE1, GX_REPLACE); GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_C2, GX_CC_TEXA, GX_CC_ZERO); GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - } else { + } + else { GXSetTevOp(GX_TEVSTAGE1, GX_REPLACE); GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); @@ -912,21 +895,15 @@ void fn_1_14A0(ModelData* arg0, Mtx arg1) { } } -s32 lbl_1_data_314[][2] = { - { 20, 10 }, { 20, 7 }, { 10, 10 }, { 10, 10 } -}; +s32 lbl_1_data_314[][2] = { { 20, 10 }, { 20, 7 }, { 10, 10 }, { 10, 10 } }; -Vec lbl_1_data_334[] = { - { 0.0f, 100.0f, -1100.0f }, - { 0.0f, 200.0f, -1000.0f }, - { -225.0f, 100.0f, -1000.0f }, - { 225.0f, 100.0f, -1000.0f } -}; +Vec lbl_1_data_334[] = { { 0.0f, 100.0f, -1100.0f }, { 0.0f, 200.0f, -1000.0f }, { -225.0f, 100.0f, -1000.0f }, { 225.0f, 100.0f, -1000.0f } }; -s32 fn_1_18FC(void) { - ModelData* temp_r30; - StructM423_03* var_r29; - StructM423_02* temp_r31; +s32 fn_1_18FC(void) +{ + ModelData *temp_r30; + StructM423_03 *var_r29; + StructM423_02 *temp_r31; s32 var_r27; s32 i; @@ -970,23 +947,20 @@ s32 fn_1_18FC(void) { return var_r27; } -Vec lbl_1_data_364[] = { - { -200.0f, 0.0f, -1100.0f }, - { -200.0f, 200.0f, -1050.0f }, - { 200.0f, 200.0f, -1050.0f } -}; +Vec lbl_1_data_364[] = { { -200.0f, 0.0f, -1100.0f }, { -200.0f, 200.0f, -1050.0f }, { 200.0f, 200.0f, -1050.0f } }; GXColor lbl_1_data_388 = { 0xFF, 0xFF, 0xFF, 0xFF }; -void fn_1_1B5C(ModelData* arg0, StructM423_02* arg1) { +void fn_1_1B5C(ModelData *arg0, StructM423_02 *arg1) +{ float var_f31; float var_f30; float var_f29; - Vec* var_r27; - GXColor* var_r26; - StructM423_01* var_r28; - void* var_r25; - void* var_r23; + Vec *var_r27; + GXColor *var_r26; + StructM423_01 *var_r28; + void *var_r25; + void *var_r23; s32 i; s32 j; @@ -1006,7 +980,8 @@ void fn_1_1B5C(ModelData* arg0, StructM423_02* arg1) { var_r28->unk02 = i; if (i == 0 || i == 9 || j == 0 || j == 19) { var_r28->unk04 = 1; - } else { + } + else { var_r28->unk04 = 0; } var_r28->unk06 = 0; @@ -1050,14 +1025,15 @@ void fn_1_1B5C(ModelData* arg0, StructM423_02* arg1) { GXColor lbl_1_data_3AB = { 0xFF, 0xFF, 0xFF, 0xFF }; -void fn_1_1F5C(ModelData* arg0, StructM423_02* arg1) { +void fn_1_1F5C(ModelData *arg0, StructM423_02 *arg1) +{ float var_f31; float var_f30; float var_f29; - Vec* var_r27; - GXColor* var_r26; - void* var_r25; - void* var_r23; + Vec *var_r27; + GXColor *var_r26; + void *var_r25; + void *var_r23; s32 i; s32 j; @@ -1110,15 +1086,16 @@ void fn_1_1F5C(ModelData* arg0, StructM423_02* arg1) { GXColor lbl_1_data_3AF = { 0xFF, 0xFF, 0xFF, 0xFF }; -void fn_1_2290(ModelData* arg0, StructM423_02* arg1) { +void fn_1_2290(ModelData *arg0, StructM423_02 *arg1) +{ float var_f31; float var_f30; float var_f29; float var_f28; - Vec* var_r27; - GXColor* var_r26; - void* var_r25; - void* var_r23; + Vec *var_r27; + GXColor *var_r26; + void *var_r25; + void *var_r23; s32 i; s32 j; @@ -1175,15 +1152,16 @@ void fn_1_2290(ModelData* arg0, StructM423_02* arg1) { GXColor lbl_1_data_3B3 = { 0xFF, 0xFF, 0xFF, 0xFF }; -void fn_1_2624(ModelData* arg0, StructM423_02* arg1) { +void fn_1_2624(ModelData *arg0, StructM423_02 *arg1) +{ float var_f31; float var_f30; float var_f29; float var_f28; - Vec* var_r27; - GXColor* var_r26; - void* var_r25; - void* var_r23; + Vec *var_r27; + GXColor *var_r26; + void *var_r25; + void *var_r23; s32 i; s32 j; @@ -1238,18 +1216,18 @@ void fn_1_2624(ModelData* arg0, StructM423_02* arg1) { HuMemDirectFree(var_r25); } -void fn_1_29B8(s32 arg0) { -} +void fn_1_29B8(s32 arg0) { } -void fn_1_29BC(ModelData* arg0, Mtx arg1) { - StructM423_03* temp_r30; - StructM423_02* temp_r31; +void fn_1_29BC(ModelData *arg0, Mtx arg1) +{ + StructM423_03 *temp_r30; + StructM423_02 *temp_r31; Mtx sp8; s16 i; temp_r30 = arg0->unk_120; GXLoadPosMtxImm(arg1, GX_PNMTX0); - PSMTXInvXpose(arg1, sp8); + MTXInvXpose(arg1, sp8); GXLoadNrmMtxImm(sp8, GX_PNMTX0); GXSetLineWidth(6, GX_TO_ZERO); GXSetNumTevStages(1); @@ -1284,26 +1262,27 @@ void fn_1_29BC(ModelData* arg0, Mtx arg1) { } } -void fn_1_2C08(s32 arg0) { +void fn_1_2C08(s32 arg0) +{ Vec sp3C; Vec sp30; Vec sp24; - Vec* var_r25; - Vec* var_r24; - Vec* temp_r27; - Vec* temp_r29; + Vec *var_r25; + Vec *var_r24; + Vec *temp_r27; + Vec *temp_r29; float temp_f31; float temp_f28; float temp_f30; float var_f29; float var_f27; - StructM423_02* temp_r30; - StructM423_01* var_r28; - StructBssA8Data* var_r31; - StructM423_03* var_r17; - ModelData* sp20; - ModelData* sp1C; - StructM423_01* sp18; + StructM423_02 *temp_r30; + StructM423_01 *var_r28; + StructBssA8Data *var_r31; + StructM423_03 *var_r17; + ModelData *sp20; + ModelData *sp1C; + StructM423_01 *sp18; s32 var_r20; s32 temp_r19; s32 temp_r18; @@ -1330,30 +1309,28 @@ void fn_1_2C08(s32 arg0) { if (var_r28->unk04 != 0) { continue; } - PSVECSubtract(var_r24, var_r25, &sp30); - temp_f31 = PSVECMag(&sp30); + VECSubtract(var_r24, var_r25, &sp30); + temp_f31 = VECMag(&sp30); if (temp_f31 >= 0.0f) { - PSVECScale(&sp30, &sp30, 0.05f); - PSVECAdd(&var_r28->unk08, &sp30, &var_r28->unk08); - temp_f31 = PSVECMag(&var_r28->unk08); + VECScale(&sp30, &sp30, 0.05f); + VECAdd(&var_r28->unk08, &sp30, &var_r28->unk08); + temp_f31 = VECMag(&var_r28->unk08); if (temp_f31 > 10.0f) { - PSVECNormalize(&var_r28->unk08, &var_r28->unk08); - PSVECScale(&var_r28->unk08, &var_r28->unk08, 10.0f); + VECNormalize(&var_r28->unk08, &var_r28->unk08); + VECScale(&var_r28->unk08, &var_r28->unk08, 10.0f); } } - PSVECAdd(var_r25, &var_r28->unk08, var_r25); - PSVECScale(&var_r28->unk08, &var_r28->unk08, 0.5f); + VECAdd(var_r25, &var_r28->unk08, var_r25); + VECScale(&var_r28->unk08, &var_r28->unk08, 0.5f); } for (i = 0; i < 15; i++, var_r31++) { if (var_r31->unk06 == 0 || var_r31->unk0C != 3) { continue; } spC = 0; - PSVECSubtract(&var_r31->unk38, &var_r31->unk74, &sp30); - if (var_r31->unk38.x > -225.0f && var_r31->unk38.x < 225.0f - && var_r31->unk38.y > 0.0f && var_r31->unk38.y < 200.0f - && var_r31->unk38.z > -1150.0f && var_r31->unk38.z < -950.0f) - { + VECSubtract(&var_r31->unk38, &var_r31->unk74, &sp30); + if (var_r31->unk38.x > -225.0f && var_r31->unk38.x < 225.0f && var_r31->unk38.y > 0.0f && var_r31->unk38.y < 200.0f + && var_r31->unk38.z > -1150.0f && var_r31->unk38.z < -950.0f) { var_f27 = 0.005f * var_r31->unk38.y; var_f29 = -900.0f - (150.0f + var_f27 * 50.0f); if (var_r31->unk38.z - 20.0 < var_f29) { @@ -1375,14 +1352,14 @@ void fn_1_2C08(s32 arg0) { sp24.x = var_r31->unk5C.z; sp24.z = -var_r31->unk5C.x; sp24.y = 0.0f; - temp_f31 = 0.05 * PSVECMag(&sp24); + temp_f31 = 0.05 * VECMag(&sp24); if (temp_f31 > 0.00001f) { - PSMTXRotAxisRad(sp48, &sp24, temp_f31); - PSMTXConcat(sp48, sp1C->unk_F0, sp1C->unk_F0); + MTXRotAxisRad(sp48, &sp24, temp_f31); + MTXConcat(sp48, sp1C->unk_F0, sp1C->unk_F0); } temp_f31 = 0.0133333336f * fabs(var_f29 - (var_r31->unk38.z - 20.0)); - var_r31->unk50.z += temp_f31 * 0.4f; - PSVECScale(&var_r31->unk50, &var_r31->unk50, 0.95f); + var_r31->unk50.z += temp_f31 * 0.4f; + VECScale(&var_r31->unk50, &var_r31->unk50, 0.95f); var_r31->unk50.y *= 0.0f; var_r31->unk50.x *= 0.75f; sp14 = (var_r31->unk38.x - -225.0f) / 22.5f; @@ -1410,33 +1387,36 @@ void fn_1_2C08(s32 arg0) { } temp_r29 = &temp_r30->unk14[temp_r21]; temp_r27 = &temp_r30->unk18[temp_r21]; - PSVECSubtract(&sp3C, temp_r29, &sp30); + VECSubtract(&sp3C, temp_r29, &sp30); sp30.z = 0.0f; - temp_f31 = PSVECMag(&sp30); + temp_f31 = VECMag(&sp30); if (temp_f31 > 400.0f) { continue; } if (temp_f31 > 20.0) { temp_f30 = 0.0025f * (400.0f - temp_f31); temp_f30 = temp_f30 * temp_f30; - PSVECNormalize(&sp30, &sp30); - PSVECScale(&sp30, &sp30, 20.0f * (temp_f30 * temp_f30)); + VECNormalize(&sp30, &sp30); + VECScale(&sp30, &sp30, 20.0f * (temp_f30 * temp_f30)); temp_r29->x += 0.5f * (temp_r27->x + sp30.x - temp_r29->x); temp_r29->y += 0.5f * (temp_r27->y + sp30.y - temp_r29->y); temp_r29->z += 0.5f * (temp_r27->z - temp_f30 * temp_f28 - temp_r29->z); - } else { + } + else { temp_f30 = cosd(0.0025f * temp_f31 * 90.0f); if (temp_f31 != 0.0f) { - PSVECNormalize(&sp30, &sp30); - } else { + VECNormalize(&sp30, &sp30); + } + else { sp30.x = sp30.y = sp30.z = 0.0f; } - PSVECScale(&sp30, &sp30, temp_f30 * temp_f30 * 20.0f); + VECScale(&sp30, &sp30, temp_f30 * temp_f30 * 20.0f); temp_r29->z += 0.5f * (temp_r27->z - temp_f30 * temp_f28 - temp_r29->z); } } } - } else { + } + else { var_r31->unk10 = 0; } } @@ -1444,61 +1424,31 @@ void fn_1_2C08(s32 arg0) { PPCSync(); } -void fn_1_34D8(void) { +void fn_1_34D8(void) +{ lbl_1_bss_CC = omAddObjEx(lbl_1_bss_120, 0x81, 20, 6, -1, fn_1_3528); } -Vec lbl_1_data_3B8[] = { - -1300.0f, 300.0f, -2350.0f, - -800.0f, 200.0f, -2250.0f, - 800.0f, 200.0f, -2250.0f, - 1300.0f, 300.0f, -2350.0f, - -1000.0f, 300.0f, -2350.0f, - 1000.0f, 300.0f, -2350.0f, - -1200.0f, 400.0f, -2450.0f, - -800.0f, 400.0f, -2450.0f, - 800.0f, 400.0f, -2450.0f, - 1200.0f, 400.0f, -2450.0f, - -1400.0f, 200.0f, -2250.0f, - 1400.0f, 200.0f, -2250.0f, - -1400.0f, 400.0f, -2450.0f, - 1400.0f, 400.0f, -2450.0f, - -900.0f, 500.0f, -2550.0f, - 900.0f, 500.0f, -2550.0f, - -1200.0f, 500.0f, -2550.0f, - 1200.0f, 500.0f, -2550.0f, - -1100.0f, 200.0f, -2250.0f, - 1100.0f, 200.0f, -2250.0f -}; +Vec lbl_1_data_3B8[] = { -1300.0f, 300.0f, -2350.0f, -800.0f, 200.0f, -2250.0f, 800.0f, 200.0f, -2250.0f, 1300.0f, 300.0f, -2350.0f, -1000.0f, 300.0f, + -2350.0f, 1000.0f, 300.0f, -2350.0f, -1200.0f, 400.0f, -2450.0f, -800.0f, 400.0f, -2450.0f, 800.0f, 400.0f, -2450.0f, 1200.0f, 400.0f, -2450.0f, + -1400.0f, 200.0f, -2250.0f, 1400.0f, 200.0f, -2250.0f, -1400.0f, 400.0f, -2450.0f, 1400.0f, 400.0f, -2450.0f, -900.0f, 500.0f, -2550.0f, 900.0f, + 500.0f, -2550.0f, -1200.0f, 500.0f, -2550.0f, 1200.0f, 500.0f, -2550.0f, -1100.0f, 200.0f, -2250.0f, 1100.0f, 200.0f, -2250.0f }; -s32 lbl_1_data_4A8[] = { - 0, 1, 0, 1, 2, 2, 1, 0, - 1, 2, 0, 1, 2, 0, 1, 2, - 0, 1, 2, 1, 0 -}; +s32 lbl_1_data_4A8[] = { 0, 1, 0, 1, 2, 2, 1, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 1, 0 }; -s32 lbl_1_data_4FC[] = { - DATA_MAKE_NUM(DATADIR_M423, 12), - DATA_MAKE_NUM(DATADIR_M423, 15), - DATA_MAKE_NUM(DATADIR_M423, 18) -}; +s32 lbl_1_data_4FC[] = { DATA_MAKE_NUM(DATADIR_M423, 12), DATA_MAKE_NUM(DATADIR_M423, 15), DATA_MAKE_NUM(DATADIR_M423, 18) }; -s32 lbl_1_data_508[] = { - DATA_MAKE_NUM(DATADIR_M423, 13), - DATA_MAKE_NUM(DATADIR_M423, 14), - DATA_MAKE_NUM(DATADIR_M423, 16), - DATA_MAKE_NUM(DATADIR_M423, 17), - DATA_MAKE_NUM(DATADIR_M423, 19), - DATA_MAKE_NUM(DATADIR_M423, 20) -}; +s32 lbl_1_data_508[] = { DATA_MAKE_NUM(DATADIR_M423, 13), DATA_MAKE_NUM(DATADIR_M423, 14), DATA_MAKE_NUM(DATADIR_M423, 16), + DATA_MAKE_NUM(DATADIR_M423, 17), DATA_MAKE_NUM(DATADIR_M423, 19), DATA_MAKE_NUM(DATADIR_M423, 20) }; s16 lbl_1_data_520[] = { 0, 2, 4 }; -void fn_1_3528(omObjData* arg0) { +void fn_1_3528(omObjData *arg0) +{ float var_f30; float var_f29; float temp_f31; - StructBssCCData* var_r30; + StructBssCCData *var_r30; s32 temp_r27; s32 var_r28; s32 i; @@ -1525,7 +1475,8 @@ void fn_1_3528(omObjData* arg0) { Hu3DModelPosSet(var_r28, lbl_1_data_3B8[i].x, lbl_1_data_3B8[i].y, lbl_1_data_3B8[i].z); if (var_r30->unk00 != 1) { Hu3DModelRotSet(var_r28, 0.0f, temp_f31, 0.0f); - } else { + } + else { Hu3DModelRotSet(var_r28, 10.0f, temp_f31, 0.0f); } Hu3DModelScaleSet(var_r28, 1.8f, 1.8f, 1.8f); @@ -1541,8 +1492,9 @@ void fn_1_3528(omObjData* arg0) { s16 lbl_1_data_526[] = { 0, 2, 4 }; s16 lbl_1_data_52C[] = { 1, 3, 5, 0 }; -void fn_1_3898(omObjData* arg0) { - StructBssCCData* var_r31; +void fn_1_3898(omObjData *arg0) +{ + StructBssCCData *var_r31; s32 var_r28; s32 i; @@ -1552,13 +1504,16 @@ void fn_1_3898(omObjData* arg0) { if (var_r31->unk06 > 0) { var_r28 = 1; var_r31->unk06--; - } else if (var_r31->unk0A > 0) { + } + else if (var_r31->unk0A > 0) { if (var_r31->unk08 > 0) { var_r31->unk08--; - } else if (var_r31->unk0A > 0) { + } + else if (var_r31->unk0A > 0) { var_r28 = 1; var_r31->unk0A--; - } else { + } + else { var_r31->unk08 = 0; var_r31->unk0A = 0; } @@ -1567,24 +1522,28 @@ void fn_1_3898(omObjData* arg0) { var_r31->unk02 = var_r28; if (var_r31->unk02 == 0) { Hu3DMotionShiftSet(arg0->model[i], arg0->motion[lbl_1_data_526[var_r31->unk00]], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); - } else { + } + else { Hu3DMotionShiftSet(arg0->model[i], arg0->motion[lbl_1_data_52C[var_r31->unk00]], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } } } } -void fn_1_3A58(omObjData* arg0) { +void fn_1_3A58(omObjData *arg0) +{ arg0->func = NULL; } -void fn_1_3A64(void) { +void fn_1_3A64(void) +{ fn_1_3A58(lbl_1_bss_CC); } -void fn_1_3A8C(void) { - omObjData* var_r29; - StructBssCCData* var_r31; +void fn_1_3A8C(void) +{ + omObjData *var_r29; + StructBssCCData *var_r31; s32 i; if (lbl_1_bss_CC == NULL) { @@ -1595,14 +1554,16 @@ void fn_1_3A8C(void) { for (i = 0; i < 20; i++, var_r31++) { if (var_r31->unk06 > 0 || var_r31->unk0A > 0) { var_r31->unk08 = 0; - } else { + } + else { var_r31->unk08 = (1.0f / 127) * frand7() * 0.25f * 60.0f; } var_r31->unk0A = ((1.0f / 127) * frand7() + 2.0f) * 60.0f; } } -void fn_1_3BFC(void) { +void fn_1_3BFC(void) +{ s32 sp8[4]; s32 temp_r28; s32 temp_r27; @@ -1618,7 +1579,8 @@ void fn_1_3BFC(void) { for (i = 0, var_r29 = 0; i < 4; i++) { if (GWPlayerCfgGroupGet(i) == 0) { sp8[3] = i; - } else { + } + else { sp8[var_r29] = i; var_r29++; } @@ -1633,10 +1595,11 @@ void fn_1_3BFC(void) { sp8[1] = 2; sp8[2] = 3; sp8[3] = 0; - } else { + } + else { for (i = 0; i < 32; i++) { - temp_r28 = (s16) (frand() & 0xFFF) % 3; - temp_r27 = (s16) (frand() & 0xFFF) % 3; + temp_r28 = (s16)(frand() & 0xFFF) % 3; + temp_r27 = (s16)(frand() & 0xFFF) % 3; if (temp_r28 != temp_r27) { var_r29 = sp8[temp_r27]; sp8[temp_r27] = sp8[temp_r28]; @@ -1655,7 +1618,8 @@ void fn_1_3BFC(void) { if (GWPlayerCfg[lbl_1_bss_BC[i]->work[0]].iscom) { lbl_1_bss_FC = 1; } - } else { + } + else { lbl_1_bss_EC[var_r26] = GWPlayerCfg[lbl_1_bss_BC[i]->work[0]].character; var_r26++; lbl_1_bss_BC[i]->work[1] = 1; @@ -1679,47 +1643,23 @@ void fn_1_3BFC(void) { } } -u32 lbl_1_data_534[][2] = { - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), -1 }, - { 0, 0 }, - { 0, 1 }, - { 0, 2 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 24), -1 } -}; +u32 lbl_1_data_534[][2] + = { { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), -1 }, { 0, 0 }, + { 0, 1 }, { 0, 2 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 24), -1 } }; -s32 lbl_1_data_574[] = { - DATA_MAKE_NUM(DATADIR_M423, 58), - DATA_MAKE_NUM(DATADIR_M423, 26), - DATA_MAKE_NUM(DATADIR_M423, 34) -}; +s32 lbl_1_data_574[] = { DATA_MAKE_NUM(DATADIR_M423, 58), DATA_MAKE_NUM(DATADIR_M423, 26), DATA_MAKE_NUM(DATADIR_M423, 34) }; -u32 lbl_1_data_580[][2] = { - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), -1 }, - { 0, 0 }, - { 0, 1 }, - { 0, 2 }, - { 0, 3 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 11), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 24), -1 } -}; +u32 lbl_1_data_580[][2] = { { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), -1 }, { 0, 0 }, { 0, 1 }, { 0, 2 }, { 0, 3 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 11), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 24), -1 } }; -s32 lbl_1_data_5D8[] = { - DATA_MAKE_NUM(DATADIR_M423, 42), - DATA_MAKE_NUM(DATADIR_M423, 66), - DATA_MAKE_NUM(DATADIR_M423, 50), - DATA_MAKE_NUM(DATADIR_M423, 74) -}; +s32 lbl_1_data_5D8[] + = { DATA_MAKE_NUM(DATADIR_M423, 42), DATA_MAKE_NUM(DATADIR_M423, 66), DATA_MAKE_NUM(DATADIR_M423, 50), DATA_MAKE_NUM(DATADIR_M423, 74) }; -void fn_1_3FE0(omObjData* arg0) { +void fn_1_3FE0(omObjData *arg0) +{ float var_f31; - StructBssBCData* temp_r31; + StructBssBCData *temp_r31; s32 i; temp_r31 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r31), MEMORY_DEFAULT_NUM); @@ -1760,7 +1700,8 @@ void fn_1_3FE0(omObjData* arg0) { for (i = 0; i < 11; i++) { if (lbl_1_data_580[i][1] == -1) { arg0->motion[i] = CharModelMotionCreate(temp_r31->unk02, lbl_1_data_580[i][0]); - } else { + } + else { arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_5D8[lbl_1_data_580[i][1]] + temp_r31->unk02); } } @@ -1799,11 +1740,13 @@ void fn_1_3FE0(omObjData* arg0) { } temp_r31->unk84 = i; arg0->func = fn_1_5D18; - } else { + } + else { for (i = 0; i < 8; i++) { if (lbl_1_data_534[i][1] == -1) { arg0->motion[i] = CharModelMotionCreate(temp_r31->unk02, lbl_1_data_534[i][0]); - } else { + } + else { arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_574[lbl_1_data_534[i][1]] + temp_r31->unk02); } } @@ -1833,7 +1776,8 @@ Vec lbl_1_data_5E8 = { 0.0f, 20.0f, 50.0f }; GXColor lbl_1_data_5F4 = { 0xFF, 0xFF, 0xFF, 0x10 }; GXColor lbl_1_data_5F8 = { 0xFF, 0xFF, 0xFF, 0x40 }; -void fn_1_4778(omObjData* arg0) { +void fn_1_4778(omObjData *arg0) +{ Mtx sp11C; Vec sp110; Vec sp104; @@ -1842,8 +1786,8 @@ void fn_1_4778(omObjData* arg0) { float temp_f29; float temp_f30; float var_f25; - StructBssBCData* temp_r31; - ModelData* temp_r27; + StructBssBCData *temp_r31; + ModelData *temp_r27; s32 temp_r26; s16 var_r25; s16 var_r24; @@ -1975,7 +1919,8 @@ void fn_1_4778(omObjData* arg0) { temp_f30 = fabs(fn_1_121DC(arg0->rot.y, temp_r31->unk78)); if (temp_f30 < 10.0f) { arg0->rot.y += temp_f30; - } else { + } + else { arg0->rot.y += 10.0f; } sp104 = lbl_1_data_5E8; @@ -2059,8 +2004,8 @@ void fn_1_4778(omObjData* arg0) { if (temp_r26 == -1 || temp_r31->unk5C == -1) { temp_r31->unk18 = 3; } - PSVECSubtract(&temp_r31->unkD4, &temp_r31->unkC8, &spF8); - PSVECNormalize(&spF8, &spF8); + VECSubtract(&temp_r31->unkD4, &temp_r31->unkC8, &spF8); + VECNormalize(&spF8, &spF8); temp_f27 = 15.0f; spF8.x *= temp_r31->unk60 * cosd(temp_f27); spF8.z *= temp_r31->unk60 * cosd(temp_f27); @@ -2078,9 +2023,11 @@ void fn_1_4778(omObjData* arg0) { temp_f29 = (temp_r31->unk60 - 15.000001f) / 30.0f; if (temp_f29 > 0.66f) { HuAudFXPlay(0x61B); - } else if (temp_f29 > 0.33f) { + } + else if (temp_f29 > 0.33f) { HuAudFXPlay(0x61C); - } else { + } + else { HuAudFXPlay(0x61D); } temp_r31->unk18 = 9; @@ -2128,15 +2075,16 @@ void fn_1_4778(omObjData* arg0) { GXColor lbl_1_data_630 = { 0xFF, 0xFF, 0xFF, 0x14 }; -void fn_1_5D18(omObjData* arg0) { +void fn_1_5D18(omObjData *arg0) +{ Vec sp60; Vec sp54; Vec sp48; float var_f30; float var_f31; float var_f29; - StructBssBCData* temp_r31; - ModelData* temp_r27; + StructBssBCData *temp_r31; + ModelData *temp_r27; s16 var_r26; s16 var_r25; s16 var_r28; @@ -2181,7 +2129,8 @@ void fn_1_5D18(omObjData* arg0) { case 1: if (fabs(var_r28) > 8.0) { var_f30 = 0.125f * var_r28; - } else { + } + else { var_f30 = 0.0f; } temp_r31->unk1C[temp_r31->unk58] = var_f30; @@ -2194,14 +2143,17 @@ void fn_1_5D18(omObjData* arg0) { var_f30 *= 0.06666667f; if (var_f30 > 25.0f) { var_f30 = 25.0f; - } else if (var_f30 < -25.0f) { + } + else if (var_f30 < -25.0f) { var_f30 = -25.0f; } if (0.0f == var_f30) { var_r25 = 0; - } else if (fabs(var_f30) < 10.0) { + } + else if (fabs(var_f30) < 10.0) { var_r25 = 1; - } else { + } + else { var_r25 = 2; } if (temp_r31->unk16 != var_r25 && CharModelMotionShiftIDGet(temp_r31->unk02) == -1) { @@ -2217,9 +2169,11 @@ void fn_1_5D18(omObjData* arg0) { } if (var_r28 == 0.0f) { var_f29 = 0.0f; - } else if (var_r28 < 0.0f) { + } + else if (var_r28 < 0.0f) { var_f29 = -90.0f; - } else { + } + else { var_f29 = 90.0f; } if (arg0->rot.y < var_f29 && (arg0->rot.y += 20.0f) > var_f29) { @@ -2240,7 +2194,8 @@ void fn_1_5D18(omObjData* arg0) { if (fn_1_F00() >= 7) { temp_r31->unk18 = 9; temp_r31->unk68 = 0; - } else if (temp_r31->unk10 & PAD_BUTTON_A) { + } + else if (temp_r31->unk10 & PAD_BUTTON_A) { if (var_r28 > 0) { temp_r27->unk_0C = -1; temp_r31->unk16 = 3; @@ -2259,7 +2214,8 @@ void fn_1_5D18(omObjData* arg0) { } if (lbl_1_bss_40[0]->unk1C < 36.0f) { var_f31 = lbl_1_bss_40[0]->unk68.z - arg0->trans.z; - } else { + } + else { var_f31 = lbl_1_bss_40[0]->unk38.z - arg0->trans.z; } if (var_f31 < -100.0f) { @@ -2268,9 +2224,11 @@ void fn_1_5D18(omObjData* arg0) { var_f31 = fabs(var_f31); if (var_f31 >= 300.0f) { temp_r31->unk8C = 13.5f; - } else if (var_f31 <= 100.0f) { + } + else if (var_f31 <= 100.0f) { temp_r31->unk8C = 6.5f; - } else { + } + else { temp_r31->unk8C = 10.0f; } } @@ -2279,7 +2237,8 @@ void fn_1_5D18(omObjData* arg0) { temp_r31->unk8C = 10.0f; } temp_r31->unk18 = 2; - } else if (var_r28 < 0) { + } + else if (var_r28 < 0) { temp_r27->unk_0C = -1; temp_r31->unk16 = 5; CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); @@ -2297,7 +2256,8 @@ void fn_1_5D18(omObjData* arg0) { } if (lbl_1_bss_40[0]->unk1C < 36.0f) { var_f31 = lbl_1_bss_40[0]->unk68.z - arg0->trans.z; - } else { + } + else { var_f31 = lbl_1_bss_40[0]->unk38.z - arg0->trans.z; } if (var_f31 > 100.0f) { @@ -2306,9 +2266,11 @@ void fn_1_5D18(omObjData* arg0) { var_f31 = fabs(var_f31); if (var_f31 >= 300.0f) { temp_r31->unk8C = 13.5f; - } else if (var_f31 <= 100.0f) { + } + else if (var_f31 <= 100.0f) { temp_r31->unk8C = 6.5f; - } else { + } + else { temp_r31->unk8C = 10.0f; } } @@ -2317,7 +2279,8 @@ void fn_1_5D18(omObjData* arg0) { temp_r31->unk8C = 10.0f; } temp_r31->unk18 = 4; - } else { + } + else { temp_r27->unk_0C = -1; temp_r31->unk16 = 7; CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); @@ -2488,11 +2451,13 @@ void fn_1_5D18(omObjData* arg0) { temp_r31->unkE8 = arg0->trans.z; } -void fn_1_77C4(omObjData* arg0) { +void fn_1_77C4(omObjData *arg0) +{ arg0->func = NULL; } -void fn_1_77D0(void) { +void fn_1_77D0(void) +{ s32 i; for (i = 0; i < 4; i++) { @@ -2500,9 +2465,10 @@ void fn_1_77D0(void) { } } -s32 fn_1_781C(void) { - omObjData* temp_r29; - StructBssBCData* temp_r31; +s32 fn_1_781C(void) +{ + omObjData *temp_r29; + StructBssBCData *temp_r31; s32 i; for (i = 0; i < 4; i++) { @@ -2512,7 +2478,8 @@ s32 fn_1_781C(void) { if (temp_r31->unk18 != 0 || fabs(fn_1_121DC(temp_r29->rot.y, 0.0f)) > 1.0) { break; } - } else { + } + else { if (temp_r31->unk18 < 5) { break; } @@ -2524,9 +2491,10 @@ s32 fn_1_781C(void) { return 0; } -s32 fn_1_791C(void) { - omObjData* temp_r30; - StructBssBCData* temp_r31; +s32 fn_1_791C(void) +{ + omObjData *temp_r30; + StructBssBCData *temp_r31; s32 i; for (i = 0; i < 4; i++) { @@ -2536,7 +2504,8 @@ s32 fn_1_791C(void) { if (temp_r31->unk18 != 10 || fabs(fn_1_121DC(temp_r30->rot.y, 0.0f)) > 1.0 || CharModelMotionShiftIDGet(temp_r31->unk02) != -1) { break; } - } else { + } + else { if (temp_r31->unk18 != 10 || fabs(fn_1_121DC(temp_r30->rot.y, 0.0f)) > 1.0 || CharModelMotionShiftIDGet(temp_r31->unk02) != -1) { break; } @@ -2548,9 +2517,10 @@ s32 fn_1_791C(void) { return 0; } -void fn_1_7AA8(s32 arg0) { - omObjData* var_r29; - StructBssBCData* temp_r31; +void fn_1_7AA8(s32 arg0) +{ + omObjData *var_r29; + StructBssBCData *temp_r31; s32 i; for (i = 0; i < 4; i++) { @@ -2559,20 +2529,24 @@ void fn_1_7AA8(s32 arg0) { if (temp_r31->unk0A == 0) { if (temp_r31->unk0A == arg0) { temp_r31->unk18 = 11; - } else { + } + else { temp_r31->unk18 = 12; } - } else { + } + else { if (temp_r31->unk0A == arg0) { temp_r31->unk18 = 11; - } else { + } + else { temp_r31->unk18 = 12; } } } } -s32 fn_1_7B48(Vec* arg0, Vec* arg1, Vec* arg2, float arg3) { +s32 fn_1_7B48(Vec *arg0, Vec *arg1, Vec *arg2, float arg3) +{ Vec spA8[4]; Vec sp78[4]; Vec sp48[4]; @@ -2586,9 +2560,9 @@ s32 fn_1_7B48(Vec* arg0, Vec* arg1, Vec* arg2, float arg3) { float var_f30; float var_f27; float var_f26; - omObjData* temp_r31; - StructBssBCData* temp_r28; - ModelData* sp8; + omObjData *temp_r31; + StructBssBCData *temp_r28; + ModelData *sp8; if (lbl_1_bss_B8 == NULL) { return 0; @@ -2636,12 +2610,12 @@ s32 fn_1_7B48(Vec* arg0, Vec* arg1, Vec* arg2, float arg3) { spA8[3].x = temp_r31->trans.x + 0.5f * var_f31; spA8[3].y = temp_r31->trans.y - var_f27; spA8[3].z = temp_r31->trans.z - 0.5f * var_f30; - PSVECNormalize(arg1, &spC); - PSVECScale(&spC, &spC, arg3); - PSVECAdd(arg0, arg1, &sp30); - PSVECAdd(arg0, arg1, &sp24); - PSVECAdd(arg0, &spC, &sp3C); - PSVECAdd(&sp30, &spC, &sp30); + VECNormalize(arg1, &spC); + VECScale(&spC, &spC, arg3); + VECAdd(arg0, arg1, &sp30); + VECAdd(arg0, arg1, &sp24); + VECAdd(arg0, &spC, &sp3C); + VECAdd(&sp30, &spC, &sp30); sp48[0] = sp78[0]; sp48[1] = sp78[1]; sp48[2] = sp78[2]; @@ -2652,26 +2626,27 @@ s32 fn_1_7B48(Vec* arg0, Vec* arg1, Vec* arg2, float arg3) { fn_1_82C8(15, 1, 0); return 1; } - if (sp24.x >= sp78[0].x - arg3 && sp24.x <= sp78[2].x + arg3 - && sp24.y <= sp78[0].y + arg3 && sp24.y >= sp78[2].y - arg3 - && sp24.z <= sp78[0].z + arg3 && sp24.z >= spA8[3].z - arg3) - { + if (sp24.x >= sp78[0].x - arg3 && sp24.x <= sp78[2].x + arg3 && sp24.y <= sp78[0].y + arg3 && sp24.y >= sp78[2].y - arg3 + && sp24.z <= sp78[0].z + arg3 && sp24.z >= spA8[3].z - arg3) { if (temp_r28->unkEC > 0.0f && sp24.x > temp_r31->trans.x) { spC = *arg1; spC.y = 0.0f; - var_f26 = PSVECMag(&spC); + var_f26 = VECMag(&spC); arg2->x = 0.5f * var_f26 + temp_r28->unkEC; arg2->z = 0.0f; - } else if (temp_r28->unkEC < 0.0f && sp24.x < temp_r31->trans.x) { + } + else if (temp_r28->unkEC < 0.0f && sp24.x < temp_r31->trans.x) { spC = *arg1; spC.y = 0.0f; - var_f26 = PSVECMag(&spC); + var_f26 = VECMag(&spC); arg2->x = -(0.5f * var_f26) + temp_r28->unkEC; arg2->z = 0.0f; - } else { + } + else { if (fabs(arg1->x) > fabs(arg1->z)) { arg2->x *= -1.0f; - } else { + } + else { arg2->z *= -1.0f; } arg2->x *= 0.5f; @@ -2683,9 +2658,10 @@ s32 fn_1_7B48(Vec* arg0, Vec* arg1, Vec* arg2, float arg3) { return 0; } -void fn_1_82C8(s32 arg0, s32 arg1, s32 arg2) { - omObjData* var_r31; - StructBssBCData* var_r30; +void fn_1_82C8(s32 arg0, s32 arg1, s32 arg2) +{ + omObjData *var_r31; + StructBssBCData *var_r30; if (lbl_1_bss_B8 != NULL) { var_r31 = lbl_1_bss_B8; @@ -2698,19 +2674,16 @@ void fn_1_82C8(s32 arg0, s32 arg1, s32 arg2) { s32 lbl_1_data_668[] = { 3, 4, 5, 6 }; float lbl_1_data_678[] = { 0.6f, 0.65f, 0.7f, 0.7f }; -s32 lbl_1_data_688[][2] = { - { 30, 60 }, { 24, 48 }, { 12, 24 }, { 0, 12 } -}; +s32 lbl_1_data_688[][2] = { { 30, 60 }, { 24, 48 }, { 12, 24 }, { 0, 12 } }; -s32 lbl_1_data_6A8[][2] = { - { 36, 84 }, { 36, 78 }, { 33, 72 }, { 33, 66 } -}; +s32 lbl_1_data_6A8[][2] = { { 36, 84 }, { 36, 78 }, { 33, 72 }, { 33, 66 } }; -void fn_1_8338(omObjData* arg0) { +void fn_1_8338(omObjData *arg0) +{ float var_f31; float temp_f30; - StructBssBCData* temp_r31; - ModelData* sp8; + StructBssBCData *temp_r31; + ModelData *sp8; s32 var_r29; temp_r31 = arg0->data; @@ -2731,11 +2704,14 @@ void fn_1_8338(omObjData* arg0) { temp_r31->unkA8 = (1.0f / 127) * frand7(); if (lbl_1_bss_B8->trans.x >= 270.0f) { temp_r31->unk88 = -(0.4f + 0.3f * temp_r31->unkA8); - } else if (lbl_1_bss_B8->trans.x <= -270.0f) { + } + else if (lbl_1_bss_B8->trans.x <= -270.0f) { temp_r31->unk88 = 0.4f + 0.3f * temp_r31->unkA8; - } else if (frand() & 1) { + } + else if (frand() & 1) { temp_r31->unk88 = -(0.3f + 0.1f * temp_r31->unkA8); - } else { + } + else { temp_r31->unk88 = 0.3f + 0.1f * temp_r31->unkA8; } var_f31 = lbl_1_data_6A8[3][0]; @@ -2745,10 +2721,12 @@ void fn_1_8338(omObjData* arg0) { temp_f30 = lbl_1_data_688[temp_r31->unk08][1]; temp_r31->unk74 = var_f31 + (1.0f / 127) * frand7() * (temp_f30 - var_f31); temp_r31->unk98++; - } else { + } + else { if (frand() & 1) { temp_r31->unk88 = (1.0f / 127) * frand7() * lbl_1_data_678[temp_r31->unk08]; - } else { + } + else { temp_r31->unk88 = -((1.0f / 127) * frand7()) * lbl_1_data_678[temp_r31->unk08]; } var_f31 = lbl_1_data_6A8[temp_r31->unk08][0]; @@ -2778,11 +2756,14 @@ void fn_1_8338(omObjData* arg0) { if (temp_r31->unkA4 != 0) { if (lbl_1_bss_B8->trans.x >= 148.5f) { temp_r31->unk88 = -(0.4f + 0.3f * temp_r31->unkA8); - } else if (lbl_1_bss_B8->trans.x <= -148.5f) { + } + else if (lbl_1_bss_B8->trans.x <= -148.5f) { temp_r31->unk88 = 0.4f + 0.3f * temp_r31->unkA8; - } else if (lbl_1_bss_B8->trans.x > 0.0f) { + } + else if (lbl_1_bss_B8->trans.x > 0.0f) { temp_r31->unk88 = -(0.5f + 0.2f * temp_r31->unkA8); - } else { + } + else { temp_r31->unk88 = 0.5f + 0.2f * temp_r31->unkA8; } } @@ -2793,7 +2774,8 @@ void fn_1_8338(omObjData* arg0) { temp_r31->unk70 = 0; temp_r31->unk74 = 0; temp_r31->unkA4 = 0; - } else { + } + else { temp_r31->unk0E |= PAD_BUTTON_A; } break; @@ -2805,19 +2787,14 @@ void fn_1_8338(omObjData* arg0) { s32 lbl_1_data_6C8[] = { 60, 45, 30, 15 }; -float lbl_1_data_6D8[][2] = { - { 200.0f, 150.0f }, { 125.0f, 100.0f }, { 0.0f, 0.0f }, { 0.0f, 0.0f } -}; +float lbl_1_data_6D8[][2] = { { 200.0f, 150.0f }, { 125.0f, 100.0f }, { 0.0f, 0.0f }, { 0.0f, 0.0f } }; -s32 lbl_1_data_6F8[][2] = { - { 48, 150 }, { 39, 114 }, { 33, 90 }, { 21, 42 } -}; +s32 lbl_1_data_6F8[][2] = { { 48, 150 }, { 39, 114 }, { 33, 90 }, { 21, 42 } }; -s32 lbl_1_data_718[][2] = { - { 27, 39 }, { 15, 27 }, { 9, 15 }, { 0, 3 } -}; +s32 lbl_1_data_718[][2] = { { 27, 39 }, { 15, 27 }, { 9, 15 }, { 0, 3 } }; -void fn_1_8CB4(omObjData* arg0) { +void fn_1_8CB4(omObjData *arg0) +{ Vec spC; float temp_f29; float temp_f28; @@ -2825,9 +2802,9 @@ void fn_1_8CB4(omObjData* arg0) { float var_f31; float var_f26; float temp_f27; - StructBssBCData* temp_r31; - ModelData* sp8; - StructBssA8Data* temp_r30; + StructBssBCData *temp_r31; + ModelData *sp8; + StructBssA8Data *temp_r30; s32 var_r28; s32 var_r24; s32 i, j; @@ -2842,10 +2819,12 @@ void fn_1_8CB4(omObjData* arg0) { if (temp_r30->unk0C != 3 || temp_r30->unk08 != 0 || temp_r30->unk38.z <= -900.0f) { var_r25 = 1; } - } else { + } + else { var_r25 = 1; } - } else { + } + else { var_r25 = 1; } if (var_r25 != 0) { @@ -2866,11 +2845,8 @@ void fn_1_8CB4(omObjData* arg0) { if (var_r24 != 0) { for (i = 0; i < var_r24; i++) { temp_r30 = lbl_1_bss_4[i]; - if (temp_r30 == NULL || temp_r30->unk06 == 0 - || 0.0f == temp_r30->unk50.z - || fabs(temp_r30->unk38.x) >= 325.0 - || temp_r30->unk14 < temp_r31->unk94) - { + if (temp_r30 == NULL || temp_r30->unk06 == 0 || 0.0f == temp_r30->unk50.z || fabs(temp_r30->unk38.x) >= 325.0 + || temp_r30->unk14 < temp_r31->unk94) { continue; } var_r28 = (var_f26 - temp_r30->unk38.z) / temp_r30->unk50.z; @@ -2925,7 +2901,8 @@ void fn_1_8CB4(omObjData* arg0) { var_r28 += temp_r31->unk90; var_f30 += temp_r31->unkD4.x; var_f31 += temp_r31->unkD4.y; - } else { + } + else { var_r28 = 0; var_f30 = temp_r30->unk38.x; var_f31 = temp_r30->unk38.y; @@ -2939,9 +2916,11 @@ void fn_1_8CB4(omObjData* arg0) { temp_f27 = fabs(var_f30 - arg0->trans.x); if (var_r28 < 10 && temp_f27 > 120.00001f) { temp_r31->unk10 |= 0x100; - } else if (var_r28 < 5 && temp_f27 < 25.0f && var_f31 > 100.0f) { + } + else if (var_r28 < 5 && temp_f27 < 25.0f && var_f31 > 100.0f) { temp_r31->unk10 |= 0x100; - } else if (var_r28 > 20 && temp_f27 < 50.0) { + } + else if (var_r28 > 20 && temp_f27 < 50.0) { temp_r31->unk10 /= 2; } if (++temp_r31->unk6C > lbl_1_data_6C8[temp_r31->unk08]) { @@ -2950,25 +2929,20 @@ void fn_1_8CB4(omObjData* arg0) { } } -void fn_1_95C4(void) { +void fn_1_95C4(void) +{ lbl_1_bss_A8 = omAddObjEx(lbl_1_bss_120, 0x50, 0, 0, -1, fn_1_9614); } -s32 lbl_1_data_738[] = { - DATA_MAKE_NUM(DATADIR_M423, 4), - DATA_MAKE_NUM(DATADIR_M423, 5), - DATA_MAKE_NUM(DATADIR_M423, 6), - DATA_MAKE_NUM(DATADIR_M423, 7), - DATA_MAKE_NUM(DATADIR_M423, 8), - DATA_MAKE_NUM(DATADIR_M423, 9), - DATA_MAKE_NUM(DATADIR_M423, 10), - DATA_MAKE_NUM(DATADIR_M423, 11) -}; +s32 lbl_1_data_738[] + = { DATA_MAKE_NUM(DATADIR_M423, 4), DATA_MAKE_NUM(DATADIR_M423, 5), DATA_MAKE_NUM(DATADIR_M423, 6), DATA_MAKE_NUM(DATADIR_M423, 7), + DATA_MAKE_NUM(DATADIR_M423, 8), DATA_MAKE_NUM(DATADIR_M423, 9), DATA_MAKE_NUM(DATADIR_M423, 10), DATA_MAKE_NUM(DATADIR_M423, 11) }; -void fn_1_9614(omObjData* arg0) { - StructBssA8Data* var_r28; - StructBssA8Data* var_r31; - ModelData* var_r27; +void fn_1_9614(omObjData *arg0) +{ + StructBssA8Data *var_r28; + StructBssA8Data *var_r31; + ModelData *var_r27; s32 i; if (lbl_1_bss_EC[0] == -1) { @@ -2999,7 +2973,8 @@ void fn_1_9614(omObjData* arg0) { var_r31->unk68.x = var_r31->unk68.y = var_r31->unk68.z = 0.0f; if (i < 3) { var_r31->unk00 = Hu3DModelCreateFile(lbl_1_data_738[lbl_1_bss_EC[var_r31->unk04]]); - } else { + } + else { var_r31->unk00 = Hu3DModelLink(var_r28[var_r31->unk04].unk00); } Hu3DModelScaleSet(var_r31->unk00, 0.8f, 0.8f, 0.8f); @@ -3007,13 +2982,14 @@ void fn_1_9614(omObjData* arg0) { Hu3DModelCameraSet(var_r31->unk00, 5); Hu3DModelShadowSet(var_r31->unk00); var_r27 = &Hu3DData[var_r31->unk00]; - PSMTXIdentity(var_r27->unk_F0); + MTXIdentity(var_r27->unk_F0); } fn_1_B430(); arg0->func = fn_1_98A0; } -void fn_1_98A0(omObjData* arg0) { +void fn_1_98A0(omObjData *arg0) +{ Mtx spC4; Vec spB8; Vec spAC; @@ -3024,9 +3000,9 @@ void fn_1_98A0(omObjData* arg0) { float var_f25; float var_f31; float var_f22; - StructBssA8Data* var_r31; - StructBssA8Data* var_r30; - ModelData* temp_r27; + StructBssA8Data *var_r31; + StructBssA8Data *var_r30; + ModelData *temp_r27; s32 i, j; s32 var_r25; s32 var_r23; @@ -3047,7 +3023,8 @@ void fn_1_98A0(omObjData* arg0) { var_r31->unk14++; if (temp_f30 > 1.0f) { var_f31 = 1.0f; - } else { + } + else { var_f31 = temp_f30; } var_r31->unk38.x = var_r31->unk20.x + var_f31 * (var_r31->unk2C.x - var_r31->unk20.x); @@ -3055,10 +3032,12 @@ void fn_1_98A0(omObjData* arg0) { if (temp_f30 < 0.6f) { var_f31 = temp_f30 / 0.6f; var_f25 = 100.0f; - } else if (temp_f30 < 1.0f) { + } + else if (temp_f30 < 1.0f) { var_f31 = (temp_f30 - 0.6f) / 0.4f; var_f25 = 50.0f; - } else { + } + else { var_f31 = (temp_f30 - 1.0f) / 0.25f; var_f25 = 10.0f; } @@ -3073,10 +3052,10 @@ void fn_1_98A0(omObjData* arg0) { spAC.x = var_r31->unk50.z; spAC.z = -var_r31->unk50.x; spAC.y = 0.0f; - var_f31 = 0.05 * PSVECMag(&spAC); + var_f31 = 0.05 * VECMag(&spAC); if (var_f31 > 0.00001f) { - PSMTXRotAxisRad(spC4, &spAC, var_f31); - PSMTXConcat(spC4, temp_r27->unk_F0, temp_r27->unk_F0); + MTXRotAxisRad(spC4, &spAC, var_f31); + MTXConcat(spC4, temp_r27->unk_F0, temp_r27->unk_F0); } } Hu3DModelPosSet(var_r31->unk00, var_r31->unk38.x, var_r31->unk38.y, var_r31->unk38.z); @@ -3094,8 +3073,7 @@ void fn_1_98A0(omObjData* arg0) { if (var_r28 & 0x8000) { var_r25 = 1; } - if (var_r28 & 0x2000) { - } + if (var_r28 & 0x2000) { } if ((var_r28 & 0x4000) && var_r31->unk12 == 0 && var_r31->unk08 == 0) { var_f31 = VECMagXZ(&var_r31->unk50); sp94.x = 0.0f; @@ -3109,13 +3087,15 @@ void fn_1_98A0(omObjData* arg0) { var_r31->unk50 = sp88; var_r31->unk8C = 0.975f; var_r31->unk90 = -0.5f; - } else { + } + else { if (fabs(var_r31->unk38.x) > 1000.0) { Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); var_r31->unk0C = 0; var_r31->unk06 = 0; var_r31->unk14 = 0; - } else { + } + else { var_r31->unk38.x += var_r31->unk50.x; var_r31->unk38.y += var_r31->unk50.y; var_r31->unk38.z += var_r31->unk50.z; @@ -3126,51 +3106,52 @@ void fn_1_98A0(omObjData* arg0) { if (i == j || var_r30->unk06 == 0 || var_r30->unk08 != 0 || var_r30->unk0C != 3) { continue; } - PSVECSubtract(&var_r31->unk38, &var_r30->unk38, &spAC); - var_f31 = PSVECMag(&spAC); + VECSubtract(&var_r31->unk38, &var_r30->unk38, &spAC); + var_f31 = VECMag(&spAC); if (var_f31 < 40.0) { spA0 = var_r31->unk38; if (var_f31 != 0.0f) { temp_f30 = 40.0 - var_f31; - PSVECNormalize(&spAC, &spAC); - PSVECScale(&spAC, &spAC, temp_f30); - PSVECAdd(&var_r31->unk38, &spAC, &var_r31->unk38); - } else { + VECNormalize(&spAC, &spAC); + VECScale(&spAC, &spAC, temp_f30); + VECAdd(&var_r31->unk38, &spAC, &var_r31->unk38); + } + else { var_r31->unk38.x += 40.0; } - temp_f30 = PSVECMag(&var_r31->unk50); - var_f22 = PSVECMag(&var_r30->unk50); + temp_f30 = VECMag(&var_r31->unk50); + var_f22 = VECMag(&var_r30->unk50); var_f31 = 0.5f * (temp_f30 + var_f22); - if (PSVECMag(&var_r31->unk50) == 0.0f) { + if (VECMag(&var_r31->unk50) == 0.0f) { var_r31->unk50.x = 1.0f; } - PSVECNormalize(&var_r31->unk50, &var_r31->unk50); - PSVECSubtract(&var_r31->unk38, &var_r30->unk38, &spAC); - if (PSVECMag(&spAC) == 0.0f) { + VECNormalize(&var_r31->unk50, &var_r31->unk50); + VECSubtract(&var_r31->unk38, &var_r30->unk38, &spAC); + if (VECMag(&spAC) == 0.0f) { spAC.x = 1.0f; } - PSVECNormalize(&spAC, &spAC); - PSVECAdd(&var_r31->unk50, &spAC, &var_r31->unk50); - if (PSVECMag(&var_r31->unk50) == 0.0f) { + VECNormalize(&spAC, &spAC); + VECAdd(&var_r31->unk50, &spAC, &var_r31->unk50); + if (VECMag(&var_r31->unk50) == 0.0f) { var_r31->unk50.x = 1.0f; } - PSVECNormalize(&var_r31->unk50, &var_r31->unk50); - PSVECScale(&var_r31->unk50, &var_r31->unk50, var_f31); - if (PSVECMag(&var_r30->unk50) == 0.0f) { + VECNormalize(&var_r31->unk50, &var_r31->unk50); + VECScale(&var_r31->unk50, &var_r31->unk50, var_f31); + if (VECMag(&var_r30->unk50) == 0.0f) { var_r30->unk50.x = -1.0f; } - PSVECNormalize(&var_r30->unk50, &var_r30->unk50); - PSVECSubtract(&var_r30->unk38, &var_r31->unk38, &spAC); - if (PSVECMag(&spAC) == 0.0f) { + VECNormalize(&var_r30->unk50, &var_r30->unk50); + VECSubtract(&var_r30->unk38, &var_r31->unk38, &spAC); + if (VECMag(&spAC) == 0.0f) { spAC.x = 1.0f; } - PSVECNormalize(&spAC, &spAC); - PSVECAdd(&var_r30->unk50, &spAC, &var_r30->unk50); - if (PSVECMag(&var_r30->unk50) == 0.0f) { + VECNormalize(&spAC, &spAC); + VECAdd(&var_r30->unk50, &spAC, &var_r30->unk50); + if (VECMag(&var_r30->unk50) == 0.0f) { var_r30->unk50.x = -1.0f; } - PSVECNormalize(&var_r30->unk50, &var_r30->unk50); - PSVECScale(&var_r30->unk50, &var_r30->unk50, var_f31); + VECNormalize(&var_r30->unk50, &var_r30->unk50); + VECScale(&var_r30->unk50, &var_r30->unk50, var_f31); if (var_r28 = fn_1_C498(&spA0, &spAC, &spB8, &sp88, 20.0f, 1)) { if (var_r28 & 0x8000) { var_r25 = 1; @@ -3185,17 +3166,15 @@ void fn_1_98A0(omObjData* arg0) { var_r31->unk38.y = 20.0f; var_r31->unk50.y *= var_r31->unk90; var_r23 = 1; - if (var_r31->unk38.x >= -225.0f && var_r31->unk38.x <= 225.0f - && var_r31->unk38.z >= -1100.0f && var_r31->unk38.z <= -900.0f) - { - var_r25 = 1; + if (var_r31->unk38.x >= -225.0f && var_r31->unk38.x <= 225.0f && var_r31->unk38.z >= -1100.0f && var_r31->unk38.z <= -900.0f) { + var_r25 = 1; } if (fabs(var_r31->unk50.y) < 0.05f) { var_r31->unk50.y = 0.0f; } } if (var_r31->unk08 == 0) { - PSVECSubtract(&var_r31->unk38, &var_r31->unk74, &spAC); + VECSubtract(&var_r31->unk38, &var_r31->unk74, &spAC); if (fn_1_7B48(&var_r31->unk38, &var_r31->unk50, &sp88, 20.0f) != 0) { var_r31->unk50 = sp88; var_r31->unk08 = 1; @@ -3210,7 +3189,8 @@ void fn_1_98A0(omObjData* arg0) { if (var_r23 == 0) { var_r31->unk50.x *= var_r31->unk8C; var_r31->unk50.z *= var_r31->unk8C; - } else { + } + else { var_r31->unk50.x *= 0.995f * var_r31->unk8C; var_r31->unk50.z *= 0.995f * var_r31->unk8C; } @@ -3221,7 +3201,8 @@ void fn_1_98A0(omObjData* arg0) { var_r31->unk18++; if (var_r31->unk18 & 1) { Hu3DModelAttrReset(var_r31->unk00, HU3D_ATTR_DISPOFF); - } else { + } + else { Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); } if (var_r31->unk18 >= 120.0f) { @@ -3247,10 +3228,10 @@ void fn_1_98A0(omObjData* arg0) { spAC.x = var_r31->unk50.z; spAC.z = -var_r31->unk50.x; spAC.y = 0.0f; - var_f31 = 0.05 * PSVECMag(&spAC); + var_f31 = 0.05 * VECMag(&spAC); if (var_f31 > 0.00001f) { - PSMTXRotAxisRad(spC4, &spAC, var_f31); - PSMTXConcat(spC4, temp_r27->unk_F0, temp_r27->unk_F0); + MTXRotAxisRad(spC4, &spAC, var_f31); + MTXConcat(spC4, temp_r27->unk_F0, temp_r27->unk_F0); } Hu3DModelPosSet(var_r31->unk00, var_r31->unk38.x, var_r31->unk38.y, var_r31->unk38.z); break; @@ -3258,7 +3239,8 @@ void fn_1_98A0(omObjData* arg0) { var_r31->unk18++; if (var_r31->unk18 & 1) { Hu3DModelAttrReset(var_r31->unk00, HU3D_ATTR_DISPOFF); - } else { + } + else { Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); } if (var_r31->unk18 >= 120.0f) { @@ -3273,17 +3255,20 @@ void fn_1_98A0(omObjData* arg0) { } } -void fn_1_A9A0(omObjData* arg0) { +void fn_1_A9A0(omObjData *arg0) +{ arg0->func = NULL; } -void fn_1_A9AC(void) { +void fn_1_A9AC(void) +{ fn_1_A9A0(lbl_1_bss_A8); } -s32 fn_1_A9D4(s32 arg0, Vec arg1, Vec arg2) { - StructBssA8Data* var_r31; - ModelData* temp_r26; +s32 fn_1_A9D4(s32 arg0, Vec arg1, Vec arg2) +{ + StructBssA8Data *var_r31; + ModelData *temp_r26; s32 var_r27; s32 i; @@ -3326,12 +3311,13 @@ s32 fn_1_A9D4(s32 arg0, Vec arg1, Vec arg2) { Hu3DModelPosSet(var_r31->unk00, var_r31->unk38.x, var_r31->unk38.y, var_r31->unk38.z); Hu3DModelRotSet(var_r31->unk00, var_r31->unk44, var_r31->unk48, var_r31->unk4C); Hu3DModelAttrReset(var_r31->unk00, HU3D_ATTR_DISPOFF); - PSMTXIdentity(temp_r26->unk_F0); + MTXIdentity(temp_r26->unk_F0); return i; } -void fn_1_AC0C(s32 arg0, Vec arg1) { - StructBssA8Data* var_r31; +void fn_1_AC0C(s32 arg0, Vec arg1) +{ + StructBssA8Data *var_r31; if (lbl_1_bss_A8 != NULL) { var_r31 = lbl_1_bss_A8->data; @@ -3342,12 +3328,13 @@ void fn_1_AC0C(s32 arg0, Vec arg1) { } } -void fn_1_AC80(s32 arg0, Vec arg1) { +void fn_1_AC80(s32 arg0, Vec arg1) +{ Vec sp14; Vec sp8; float var_f31; - StructBssA8Data* var_r28; - StructBssA8Data* temp_r31; + StructBssA8Data *var_r28; + StructBssA8Data *temp_r31; if (lbl_1_bss_A8 == NULL) { return; @@ -3368,15 +3355,17 @@ void fn_1_AC80(s32 arg0, Vec arg1) { sp14 = temp_r31->unk38; var_f31 = -800.0f - sp14.z; temp_r31->unk1C = fabs(var_f31 / temp_r31->unk50.z); - PSVECScale(&arg1, &sp8, temp_r31->unk1C); - PSVECAdd(&sp14, &sp8, &temp_r31->unk68); - } else { + VECScale(&arg1, &sp8, temp_r31->unk1C); + VECAdd(&sp14, &sp8, &temp_r31->unk68); + } + else { temp_r31->unk1C = 1000; } } -s32 fn_1_AE64(s32 arg0) { - StructBssA8Data* temp_r31; +s32 fn_1_AE64(s32 arg0) +{ + StructBssA8Data *temp_r31; if (lbl_1_bss_A8 == NULL) { return -1; @@ -3391,9 +3380,10 @@ s32 fn_1_AE64(s32 arg0) { return temp_r31[arg0].unk0C; } -void fn_1_AEE8(s32 arg0) { - StructBssA8Data* var_r26; - StructBssA8Data* temp_r31; +void fn_1_AEE8(s32 arg0) +{ + StructBssA8Data *var_r26; + StructBssA8Data *temp_r31; if (lbl_1_bss_A8 == NULL) { return; @@ -3413,9 +3403,10 @@ void fn_1_AEE8(s32 arg0) { lbl_1_bss_104--; } -StructBssA8Data* fn_1_B13C(s32 arg0) { - StructBssA8Data* temp_r31; - StructBssA8Data* sp8; +StructBssA8Data *fn_1_B13C(s32 arg0) +{ + StructBssA8Data *temp_r31; + StructBssA8Data *sp8; if (lbl_1_bss_A8 == NULL) { return NULL; @@ -3430,10 +3421,11 @@ StructBssA8Data* fn_1_B13C(s32 arg0) { GXColor lbl_1_data_758 = { 0xFF, 0xFF, 0xFF, 0xFF }; -void fn_1_B1A4(void) { +void fn_1_B1A4(void) +{ Vec sp2C; - StructBssA8Data* sp10; - StructBssA8Data* var_r31; + StructBssA8Data *sp10; + StructBssA8Data *var_r31; s32 spC; s32 i; @@ -3455,12 +3447,13 @@ void fn_1_B1A4(void) { } } -s32 fn_1_B304(StructBssA8Data** arg0) { +s32 fn_1_B304(StructBssA8Data **arg0) +{ s32 var_r29; s32 i; - StructBssA8Data* var_r30; - StructBssA8Data* var_r28; - StructBssA8Data* var_r27; + StructBssA8Data *var_r30; + StructBssA8Data *var_r28; + StructBssA8Data *var_r27; if (lbl_1_bss_A8 == NULL) { return; @@ -3485,12 +3478,13 @@ s32 fn_1_B304(StructBssA8Data** arg0) { return var_r29; } -void fn_1_B430(void) { +void fn_1_B430(void) +{ Vec sp2C[8]; Vec sp20; Vec sp14; Vec sp8; - StructBss94Data* var_r31; + StructBss94Data *var_r31; s32 i; var_r31 = lbl_1_bss_94 = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(*lbl_1_bss_94), MEMORY_DEFAULT_NUM); @@ -3614,17 +3608,15 @@ void fn_1_B430(void) { fn_1_BCD8(sp2C, NULL, NULL, 0.1f, 0, 0x8006); } -s16 lbl_1_data_75C[][3] = { - { 0, 1, 2 }, { 1, 3, 2 }, { 6, 5, 4 }, { 5, 6, 7 }, - { 0, 2, 4 }, { 2, 6, 4 }, { 3, 1, 7 }, { 7, 1, 5 }, - { 2, 3, 6 }, { 3, 7, 6 }, { 1, 0, 4 }, { 1, 4, 5 } -}; +s16 lbl_1_data_75C[][3] = { { 0, 1, 2 }, { 1, 3, 2 }, { 6, 5, 4 }, { 5, 6, 7 }, { 0, 2, 4 }, { 2, 6, 4 }, { 3, 1, 7 }, { 7, 1, 5 }, { 2, 3, 6 }, + { 3, 7, 6 }, { 1, 0, 4 }, { 1, 4, 5 } }; -void fn_1_BCD8(Vec* arg0, Vec* arg1, Vec* arg2, float arg3, s32 arg4, s32 arg5) { +void fn_1_BCD8(Vec *arg0, Vec *arg1, Vec *arg2, float arg3, s32 arg4, s32 arg5) +{ Vec sp24[8]; Vec sp18; float var_f29; - StructBss94Data* var_r30; + StructBss94Data *var_r30; s32 i; s32 j; @@ -3678,10 +3670,7 @@ void fn_1_BCD8(Vec* arg0, Vec* arg1, Vec* arg2, float arg3, s32 arg4, s32 arg5) sp24[7].y = arg0[0].y - arg1->y; sp24[7].z = arg0[0].z + arg1->z; for (j = 0; j < 12; j++) { - fn_1_129F0(&sp24[lbl_1_data_75C[j][0]], - &sp24[lbl_1_data_75C[j][1]], - &sp24[lbl_1_data_75C[j][2]], - var_r30->unk44[j]); + fn_1_129F0(&sp24[lbl_1_data_75C[j][0]], &sp24[lbl_1_data_75C[j][1]], &sp24[lbl_1_data_75C[j][2]], var_r30->unk44[j]); var_r30->unk104[j][0] = sp24[lbl_1_data_75C[j][0]]; var_r30->unk104[j][1] = sp24[lbl_1_data_75C[j][1]]; var_r30->unk104[j][2] = sp24[lbl_1_data_75C[j][2]]; @@ -3739,8 +3728,9 @@ void fn_1_BCD8(Vec* arg0, Vec* arg1, Vec* arg2, float arg3, s32 arg4, s32 arg5) s32 lbl_1_data_7C4[] = { 1, 1, 0, 0, 2, 2 }; -s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) { - StructBss94Data* var_r31; +s32 fn_1_C498(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float arg4, s32 arg5) +{ + StructBss94Data *var_r31; Vec sp140[6]; Vec sp134; Vec sp128; @@ -3780,7 +3770,8 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) *arg2 = sp134; var_r26 = 0; } - } else { + } + else { if (arg0->x < var_r31->unk34 - arg4 && sp134.x >= var_r31->unk34 - arg4 - 1.0f) { sp134.x = var_r31->unk34 - arg4; *arg2 = sp134; @@ -3795,7 +3786,8 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) *arg2 = sp134; var_r26 = 1; } - } else { + } + else { if (arg0->y < var_r31->unk34 - arg4 && sp134.y >= var_r31->unk34 - arg4 - 1.0f) { sp134.y = var_r31->unk34 - arg4; *arg2 = sp134; @@ -3810,7 +3802,8 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) *arg2 = sp134; var_r26 = 2; } - } else { + } + else { if (arg0->z < var_r31->unk34 - arg4 && sp134.z >= var_r31->unk34 - arg4 - 1.0f) { sp134.z = var_r31->unk34 - arg4; *arg2 = sp134; @@ -3820,11 +3813,8 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) break; case 4: arg4 = 0.0f; - PSVECSubtract(&sp134, &var_r31->unk04, &sp128); - if (fabs(sp128.x) < var_r31->unk10.x + arg4 - && fabs(sp128.y) < var_r31->unk10.y + arg4 - && fabs(sp128.z) < var_r31->unk10.z + arg4) - { + VECSubtract(&sp134, &var_r31->unk04, &sp128); + if (fabs(sp128.x) < var_r31->unk10.x + arg4 && fabs(sp128.y) < var_r31->unk10.y + arg4 && fabs(sp128.z) < var_r31->unk10.z + arg4) { for (j = 0; j < 6; j++) { if (var_r31->unk40 & (1 << j)) { var_r24 = fn_1_12C6C(arg0, &sp134, var_r31->unk44[j * 2]); @@ -3869,9 +3859,11 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) sp110.z = fabs(var_r31->unk44[0][2]); if (sp110.x > sp110.y && sp110.x > sp110.z) { var_r24 = 0; - } else if (sp110.y > sp110.x && sp110.y > sp110.z) { + } + else if (sp110.y > sp110.x && sp110.y > sp110.z) { var_r24 = 1; - } else { + } + else { var_r24 = 2; } sp140[0] = var_r31->unk104[0][0]; @@ -3915,33 +3907,36 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) if (var_f19 >= var_r31->unk04.y && var_f19 <= var_r31->unk10.y) { spC8.z = spC8.y; spC8.y = 0.0f; - PSVECSubtract(&spC8, &var_r31->unk04, &sp128); + VECSubtract(&spC8, &var_r31->unk04, &sp128); sp128.y = 0.0f; - if (PSVECMag(&sp128) == 0.0f) { + if (VECMag(&sp128) == 0.0f) { sp128.z = 1.0f; - } else { - PSVECNormalize(&sp128, &sp128); } - PSVECScale(&sp128, &sp128, var_r31->unk34 + arg4 + 1.0f); + else { + VECNormalize(&sp128, &sp128); + } + VECScale(&sp128, &sp128, var_r31->unk34 + arg4 + 1.0f); arg2->x = sp128.x + var_r31->unk04.x; arg2->z = sp128.z + var_r31->unk04.z; arg2->y = var_f19; sp2C = var_f30; var_r26 = 99; } - } else { + } + else { sp2C = var_f30; - PSVECSubtract(&sp134, &var_r31->unk04, &sp128); + VECSubtract(&sp134, &var_r31->unk04, &sp128); var_f30 = VECMagXZ(&sp128); if (var_f30 < var_r31->unk34 + arg4 && sp134.y >= var_r31->unk04.y && sp134.y <= var_r31->unk10.y) { - PSVECSubtract(&sp134, &var_r31->unk04, &sp128); + VECSubtract(&sp134, &var_r31->unk04, &sp128); sp128.y = 0.0f; - if (PSVECMag(&sp128) == 0.0f) { + if (VECMag(&sp128) == 0.0f) { sp128.z = 1.0f; - } else { - PSVECNormalize(&sp128, &sp128); } - PSVECScale(&sp128, &sp128, var_r31->unk34 + arg4 + 1.0f); + else { + VECNormalize(&sp128, &sp128); + } + VECScale(&sp128, &sp128, var_r31->unk34 + arg4 + 1.0f); arg2->x = var_r31->unk04.x + sp128.x; arg2->z = var_r31->unk04.z + sp128.z; arg2->y = sp134.y; @@ -3958,7 +3953,8 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) var_f30 = 1.0f; sp128.x = 0.0f; sp128.z = 1.0f; - } else { + } + else { var_f30 = 1.0f / var_f30; } spC8.x = sp128.x * var_f30; @@ -3977,16 +3973,18 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) var_f30 = 1.0f; sp128.x = 0.0f; sp128.z = 1.0f; - } else { + } + else { var_f30 = 1.0f / var_f30; } sp128.x = sp128.x * var_f30 - spD4.x; sp128.z = sp128.z * var_f30 - spD4.z; sp128.y = 0.0f; - if (PSVECMag(&sp128) == 0.0f) { + if (VECMag(&sp128) == 0.0f) { sp128.z = 1.0f; - } else { - PSVECNormalize(&sp128, &sp128); + } + else { + VECNormalize(&sp128, &sp128); } var_f30 = VECMagXZ(arg1); arg3->x = sp128.x * var_f30 * var_r31->unk3C; @@ -4046,12 +4044,13 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) return 0; } -void fn_1_D930(void) { - omObjData* var_r30; - StructBssA4Data* var_r31; - AnimData* var_r27; - StructM423_05* var_r29; - ModelData* var_r28; +void fn_1_D930(void) +{ + omObjData *var_r30; + StructBssA4Data *var_r31; + AnimData *var_r27; + StructM423_05 *var_r29; + ModelData *var_r28; s32 sp8; var_r30 = lbl_1_bss_A4 = omAddObjEx(lbl_1_bss_120, 0xBF, 0, 0, -1, fn_1_DA38); @@ -4067,11 +4066,12 @@ void fn_1_D930(void) { var_r29->unk20 = 0; } -void fn_1_DA38(omObjData* arg0) { - StructBssA4Data* temp_r30; - ModelData* var_r27; - StructM423_05* temp_r29; - StructM423_04* var_r31; +void fn_1_DA38(omObjData *arg0) +{ + StructBssA4Data *temp_r30; + ModelData *var_r27; + StructM423_05 *temp_r29; + StructM423_04 *var_r31; s32 i; temp_r30 = arg0->data; @@ -4106,9 +4106,10 @@ void fn_1_DA38(omObjData* arg0) { } } -void fn_1_DBC8(void) { - omObjData* temp_r31; - StructBssA4Data* temp_r30; +void fn_1_DBC8(void) +{ + omObjData *temp_r31; + StructBssA4Data *temp_r30; temp_r31 = lbl_1_bss_A4; temp_r30 = temp_r31->data; @@ -4117,12 +4118,13 @@ void fn_1_DBC8(void) { temp_r31->func = NULL; } -inline s32 fn_1_DC24(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, GXColor arg5) { - omObjData* var_r27; - StructBssA4Data* temp_r28; - ModelData* var_r26; - StructM423_05* temp_r30; - StructM423_04* var_r31; +inline s32 fn_1_DC24(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, GXColor arg5) +{ + omObjData *var_r27; + StructBssA4Data *temp_r28; + ModelData *var_r26; + StructM423_05 *temp_r30; + StructM423_04 *var_r31; s32 i; var_r27 = lbl_1_bss_A4; @@ -4160,7 +4162,8 @@ inline s32 fn_1_DC24(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, GXC return i; } -s32 fn_1_DD70(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, GXColor arg6) { +s32 fn_1_DD70(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, GXColor arg6) +{ Vec sp60; Vec sp54; float temp_f31; @@ -4170,7 +4173,7 @@ s32 fn_1_DD70(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5 sp54.x = arg1.z; sp54.z = arg1.x; sp54.y = 0.0f; - PSVECNormalize(&sp54, &sp54); + VECNormalize(&sp54, &sp54); temp_f31 = 0.5f * arg4; sp60.x = arg0.x + sp54.x * temp_f31; sp60.y = arg0.y + sp54.y * temp_f31; @@ -4183,8 +4186,9 @@ s32 fn_1_DD70(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5 return (sp20 << 16) | sp1C; } -void fn_1_E1BC(void) { - omObjData* var_r31; +void fn_1_E1BC(void) +{ + omObjData *var_r31; s32 var_r29; s32 i; @@ -4197,8 +4201,9 @@ void fn_1_E1BC(void) { var_r31->stat |= 0x100; } -void fn_1_E290(omObjData* arg0) { - ModelData* var_r28; +void fn_1_E290(omObjData *arg0) +{ + ModelData *var_r28; s32 temp_r30; s32 i; @@ -4211,12 +4216,12 @@ void fn_1_E290(omObjData* arg0) { } } -void fn_1_E330(void) { -} +void fn_1_E330(void) { } -s32 fn_1_E334(Vec arg0, Vec arg1, float arg2) { - omObjData* var_r31; - ModelData* var_r26; +s32 fn_1_E334(Vec arg0, Vec arg1, float arg2) +{ + omObjData *var_r31; + ModelData *var_r26; s32 temp_r29; s32 i; @@ -4240,8 +4245,9 @@ s32 fn_1_E334(Vec arg0, Vec arg1, float arg2) { return i; } -void fn_1_E460(void) { - omObjData* temp_r3; +void fn_1_E460(void) +{ + omObjData *temp_r3; temp_r3 = lbl_1_bss_9C = omAddObjEx(lbl_1_bss_120, 0xBF, 1, 0, -1, fn_1_E4EC); temp_r3->model[0] = fn_1_E678(); @@ -4249,10 +4255,11 @@ void fn_1_E460(void) { Hu3DModelLayerSet(temp_r3->model[0], 2); } -void fn_1_E4EC(omObjData* arg0) { - ModelData* var_r29; - StructM423_0B* var_r28; - StructM423_0A* var_r31; +void fn_1_E4EC(omObjData *arg0) +{ + ModelData *var_r29; + StructM423_0B *var_r28; + StructM423_0A *var_r31; s32 i; var_r29 = &Hu3DData[arg0->model[0]]; @@ -4265,7 +4272,8 @@ void fn_1_E4EC(omObjData* arg0) { var_r31->unk00++; if (var_r31->unk00 < 12.0f) { var_r31->unk04 += 0.058333337f; - } else { + } + else { var_r31->unk04 += 0.025000002f; var_r31->unk10 -= 0.050000004f; } @@ -4275,10 +4283,11 @@ void fn_1_E4EC(omObjData* arg0) { } } -void fn_1_E60C(void) { - omObjData* temp_r31; - ModelData* var_r30; - StructM423_0B* var_r29; +void fn_1_E60C(void) +{ + omObjData *temp_r31; + ModelData *var_r30; + StructM423_0B *var_r29; temp_r31 = lbl_1_bss_9C; var_r30 = &Hu3DData[temp_r31->model[0]]; @@ -4287,17 +4296,18 @@ void fn_1_E60C(void) { temp_r31->func = NULL; } -s32 fn_1_E678(void) { +s32 fn_1_E678(void) +{ float sp88[32][2]; float sp8[32]; float temp_f28; float temp_f30; float temp_f29; float var_f31; - ModelData* temp_r27; - StructM423_0B* var_r30; - StructM423_09* var_r29; - StructM423_08* var_r28; + ModelData *temp_r27; + StructM423_0B *var_r30; + StructM423_09 *var_r29; + StructM423_08 *var_r28; s32 var_r26; s32 i; @@ -4399,18 +4409,11 @@ s32 fn_1_E678(void) { return var_r26; } -GXColor lbl_1_data_7FC[] = { - { 0x66, 0x00, 0x00, 0xFF }, - { 0x00, 0x00, 0x66, 0xFF }, - { 0x66, 0x00, 0x5B, 0xFF }, - { 0x00, 0x66, 0x00, 0xFF }, - { 0x42, 0x00, 0x4C, 0xFF }, - { 0x47, 0x28, 0x00, 0xFF }, - { 0x66, 0x66, 0x00, 0xFF }, - { 0x00, 0x00, 0x00, 0xFF } -}; +GXColor lbl_1_data_7FC[] = { { 0x66, 0x00, 0x00, 0xFF }, { 0x00, 0x00, 0x66, 0xFF }, { 0x66, 0x00, 0x5B, 0xFF }, { 0x00, 0x66, 0x00, 0xFF }, + { 0x42, 0x00, 0x4C, 0xFF }, { 0x47, 0x28, 0x00, 0xFF }, { 0x66, 0x66, 0x00, 0xFF }, { 0x00, 0x00, 0x00, 0xFF } }; -void fn_1_EF44(ModelData* arg0, Mtx arg1) { +void fn_1_EF44(ModelData *arg0, Mtx arg1) +{ Mtx sp124; Mtx spF4; Mtx spC4; @@ -4419,8 +4422,8 @@ void fn_1_EF44(ModelData* arg0, Mtx arg1) { Mtx sp34; GXTexObj sp14; GXColor sp10 = { 0xCC, 0xCC, 0xCC, 0x7F }; - StructM423_0B* temp_r30; - StructM423_0A* var_r31; + StructM423_0B *temp_r30; + StructM423_0A *var_r31; s32 i; temp_r30 = arg0->unk_120; @@ -4428,8 +4431,8 @@ void fn_1_EF44(ModelData* arg0, Mtx arg1) { GXSetTexCopyDst(640, 480, GX_TF_RGB5A3, GX_FALSE); GXCopyTex(temp_r30->unk208, GX_FALSE); GXPixModeSync(); - PSMTXTrans(spF4, -400.0f, 400.0f, -700.0f); - PSMTXConcat(Hu3DCameraMtx, spF4, sp64); + MTXTrans(spF4, -400.0f, 400.0f, -700.0f); + MTXConcat(Hu3DCameraMtx, spF4, sp64); GXLoadPosMtxImm(sp64, GX_PNMTX0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_CLAMP, GX_AF_NONE); @@ -4439,10 +4442,10 @@ void fn_1_EF44(ModelData* arg0, Mtx arg1) { HuSprTexLoad(temp_r30->unk200, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); GXSetNumTexGens(2); C_MTXLightPerspective(sp94, 41.5f, 1.2f, 0.5555555f, -0.5f, 0.5555555f, 0.5f); - PSMTXConcat(sp94, Hu3DCameraMtx, sp94); - PSMTXInverse(Hu3DCameraMtx, sp34); - PSMTXConcat(sp34, sp64, sp124); - PSMTXConcat(sp94, sp124, spF4); + MTXConcat(sp94, Hu3DCameraMtx, sp94); + MTXInverse(Hu3DCameraMtx, sp34); + MTXConcat(sp34, sp64, sp124); + MTXConcat(sp94, sp124, spF4); GXLoadTexMtxImm(spF4, GX_TEXMTX0, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEXCOORD0, GX_TEXMTX1, GX_FALSE, GX_PTIDENTITY); @@ -4450,8 +4453,8 @@ void fn_1_EF44(ModelData* arg0, Mtx arg1) { GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); - PSMTXScale(spF4, -0.5f, -0.5f, 0.5f); - GXSetIndTexMtx(GX_ITM_0, (float(*)[3]) spF4, -1); + MTXScale(spF4, -0.5f, -0.5f, 0.5f); + GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, -1); GXSetNumTevStages(1); GXSetTevColor(GX_TEVREG1, sp10); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); @@ -4478,17 +4481,17 @@ void fn_1_EF44(ModelData* arg0, Mtx arg1) { } lbl_1_data_7FC[var_r31->unk02].a = 255.0f * var_r31->unk10; GXSetTevColor(GX_TEVREG0, lbl_1_data_7FC[var_r31->unk02]); - PSMTXTrans(spF4, var_r31->unk14.x, var_r31->unk14.y, var_r31->unk14.z); - PSMTXRotRad(sp124, 'Z', MTXDegToRad(var_r31->unk0C)); - PSMTXConcat(spF4, sp124, spF4); - PSMTXScale(spC4, var_r31->unk04 * var_r31->unk08, var_r31->unk04 * var_r31->unk08, var_r31->unk04 * var_r31->unk08); - PSMTXConcat(spF4, spC4, spF4); - PSMTXConcat(Hu3DCameraMtx, spF4, sp64); + MTXTrans(spF4, var_r31->unk14.x, var_r31->unk14.y, var_r31->unk14.z); + MTXRotRad(sp124, 'Z', MTXDegToRad(var_r31->unk0C)); + MTXConcat(spF4, sp124, spF4); + MTXScale(spC4, var_r31->unk04 * var_r31->unk08, var_r31->unk04 * var_r31->unk08, var_r31->unk04 * var_r31->unk08); + MTXConcat(spF4, spC4, spF4); + MTXConcat(Hu3DCameraMtx, spF4, sp64); GXLoadPosMtxImm(sp64, GX_PNMTX0); - PSMTXConcat(sp34, sp64, sp124); - PSMTXConcat(sp94, sp124, spF4); + MTXConcat(sp34, sp64, sp124); + MTXConcat(sp94, sp124, spF4); GXLoadTexMtxImm(spF4, GX_TEXMTX0, GX_MTX3x4); - PSMTXRotRad(sp124, 'Z', MTXDegToRad(-var_r31->unk0C)); + MTXRotRad(sp124, 'Z', MTXDegToRad(-var_r31->unk0C)); GXLoadTexMtxImm(sp124, GX_TEXMTX1, GX_MTX2x4); GXCallDisplayList(temp_r30->unk220, temp_r30->unk21C); } @@ -4496,11 +4499,12 @@ void fn_1_EF44(ModelData* arg0, Mtx arg1) { GXSetTevDirect(GX_TEVSTAGE0); } -s32 fn_1_F574(Vec arg0, float arg1, s32 arg2) { - omObjData* var_r29; - ModelData* var_r28; - StructM423_0B* var_r26; - StructM423_0A* var_r31; +s32 fn_1_F574(Vec arg0, float arg1, s32 arg2) +{ + omObjData *var_r29; + ModelData *var_r28; + StructM423_0B *var_r26; + StructM423_0A *var_r31; s32 var_r27; s32 i; @@ -4527,34 +4531,24 @@ s32 fn_1_F574(Vec arg0, float arg1, s32 arg2) { } } -void fn_1_F690(void) { +void fn_1_F690(void) +{ lbl_1_bss_98 = omAddObjEx(lbl_1_bss_120, 0xFE, 0, 0, -1, fn_1_F6E0); } -s32 lbl_1_data_81C[] = { - DATA_MAKE_NUM(DATADIR_MGCONST, 12), - DATA_MAKE_NUM(DATADIR_MGCONST, 13), - DATA_MAKE_NUM(DATADIR_MGCONST, 14), - DATA_MAKE_NUM(DATADIR_MGCONST, 15), - DATA_MAKE_NUM(DATADIR_MGCONST, 16), - DATA_MAKE_NUM(DATADIR_MGCONST, 17), - DATA_MAKE_NUM(DATADIR_MGCONST, 18), - DATA_MAKE_NUM(DATADIR_MGCONST, 19) -}; +s32 lbl_1_data_81C[] = { DATA_MAKE_NUM(DATADIR_MGCONST, 12), DATA_MAKE_NUM(DATADIR_MGCONST, 13), DATA_MAKE_NUM(DATADIR_MGCONST, 14), + DATA_MAKE_NUM(DATADIR_MGCONST, 15), DATA_MAKE_NUM(DATADIR_MGCONST, 16), DATA_MAKE_NUM(DATADIR_MGCONST, 17), DATA_MAKE_NUM(DATADIR_MGCONST, 18), + DATA_MAKE_NUM(DATADIR_MGCONST, 19) }; s16 lbl_1_data_83C[] = { 0x7F, 0x7F, 0x7F, 0x100 }; -s16 lbl_1_data_844[][2] = { - { -75, 10 }, { -61, -14 }, { -47, 10 }, { 0, 0 }, - { -12, -8 }, { -12, -8 }, { 6, -8 }, { 6, -8 }, - { 24, -8 }, { 24, -8 }, { 42, -8 }, { 42, -8 }, - { 60, -8 }, { 60, -8 }, { -12, 10 }, { -12, 10 }, - { 6, 10 }, { 6, 10 }, { 24, 10 }, { 24, 10 }, - { 42, 10 }, { 42, 10 }, { 60, 10 }, { 60, 10 } -}; +s16 lbl_1_data_844[][2] = { { -75, 10 }, { -61, -14 }, { -47, 10 }, { 0, 0 }, { -12, -8 }, { -12, -8 }, { 6, -8 }, { 6, -8 }, { 24, -8 }, { 24, -8 }, + { 42, -8 }, { 42, -8 }, { 60, -8 }, { 60, -8 }, { -12, 10 }, { -12, 10 }, { 6, 10 }, { 6, 10 }, { 24, 10 }, { 24, 10 }, { 42, 10 }, { 42, 10 }, + { 60, 10 }, { 60, 10 } }; -void fn_1_F6E0(omObjData* arg0) { - StructM423_0C* var_r31; +void fn_1_F6E0(omObjData *arg0) +{ + StructM423_0C *var_r31; s32 sp8; s32 var_r29; s32 i; @@ -4586,7 +4580,8 @@ void fn_1_F6E0(omObjData* arg0) { if (!(i & 1)) { var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M423, 24), 0x40, 0); var_r31->unk10[i] = var_r29; - } else { + } + else { var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M423, 25), 0x20, 0); var_r31->unk10[i] = var_r29; } @@ -4609,12 +4604,13 @@ void fn_1_F6E0(omObjData* arg0) { } } -void fn_1_FA40(omObjData* arg0) { +void fn_1_FA40(omObjData *arg0) +{ float var_f31; float var_f28; float temp_f30; float temp_f29; - StructM423_0C* temp_r31; + StructM423_0C *temp_r31; s32 temp_r28; s32 temp_r29; s32 i; @@ -4627,7 +4623,8 @@ void fn_1_FA40(omObjData* arg0) { if (temp_r31->unk0C != 0) { var_f31 = 1.0 + 0.8f * sind(180.0f * (temp_r31->unk0C / 20.0f)); temp_r31->unk0C--; - } else { + } + else { var_f31 = 1.0f; } var_f31 = 1.0f; @@ -4644,11 +4641,13 @@ void fn_1_FA40(omObjData* arg0) { if (!(i & 1)) { espPosSet(temp_r31->unk10[i], temp_f30, temp_f29); espScaleSet(temp_r31->unk10[i], 1.0f, 1.0f); - } else { + } + else { temp_r29 = (i - 4) / 2; if (temp_r28 > temp_r29) { temp_r31->unk190[temp_r29][0] = 1; - } else { + } + else { temp_r31->unk190[temp_r29][0] = 0; } if (temp_r31->unk190[temp_r29][0] != 0) { @@ -4656,7 +4655,8 @@ void fn_1_FA40(omObjData* arg0) { temp_r31->unk190[temp_r29][1]++; var_f31 = 3.0f - 2.0f * (temp_r31->unk190[temp_r29][1] / 15.0f); var_f28 = temp_r31->unk190[temp_r29][1] / 15.0f; - } else { + } + else { var_f31 = 1.0f; var_f28 = 1.0f; } @@ -4664,15 +4664,17 @@ void fn_1_FA40(omObjData* arg0) { espPosSet(temp_r31->unk10[i], temp_f30, temp_f29); espTPLvlSet(temp_r31->unk10[i], var_f28); espScaleSet(temp_r31->unk10[i], var_f31, var_f31); - } else { + } + else { espDispOff(temp_r31->unk10[i]); } } } } -void fn_1_FF10(omObjData* arg0) { - StructM423_0C* temp_r29; +void fn_1_FF10(omObjData *arg0) +{ + StructM423_0C *temp_r29; s32 i; if (arg0 && arg0->data) { @@ -4685,19 +4687,22 @@ void fn_1_FF10(omObjData* arg0) { } } -void fn_1_FF98(void) { +void fn_1_FF98(void) +{ fn_1_FF10(lbl_1_bss_98); } -void fn_1_10028(s32 arg0) { - StructM423_0C* temp_r30; +void fn_1_10028(s32 arg0) +{ + StructM423_0C *temp_r30; s32 i; temp_r30 = lbl_1_bss_98->data; for (i = 0; i < 24; i++) { if (arg0 != 0) { espDispOn(temp_r30->unk10[i]); - } else { + } + else { espDispOff(temp_r30->unk10[i]); } if (i >= 4 && (i & 1)) { @@ -4706,8 +4711,9 @@ void fn_1_10028(s32 arg0) { } } -void fn_1_100DC(void) { - omObjData* temp_r3; +void fn_1_100DC(void) +{ + omObjData *temp_r3; s32 i; Hu3DCameraCreate(1); @@ -4738,7 +4744,8 @@ void fn_1_100DC(void) { omAddObjEx(lbl_1_bss_120, 0xFF, 0, 0, -1, fn_1_10480); } -void fn_1_10480(omObjData* arg0) { +void fn_1_10480(omObjData *arg0) +{ CRotM[1].x = CRotM[0].x; CRotM[1].y = CRotM[0].y; CRotM[1].z = CRotM[0].z; @@ -4748,16 +4755,17 @@ void fn_1_10480(omObjData* arg0) { CZoomM[1] = CZoomM[0]; } -void fn_1_1052C(void) { -} +void fn_1_1052C(void) { } -s32 fn_1_10530(void) { +s32 fn_1_10530(void) +{ return lbl_1_bss_84; } -void fn_1_10540(s32 arg0, s32 arg1, s32 arg2, f32 arg3) { - StructData0* temp_r31; - StructData0* temp_r30; +void fn_1_10540(s32 arg0, s32 arg1, s32 arg2, f32 arg3) +{ + StructData0 *temp_r31; + StructData0 *temp_r30; temp_r31 = &lbl_1_data_0[arg1]; temp_r30 = &lbl_1_data_0[arg2]; @@ -4770,13 +4778,12 @@ void fn_1_10540(s32 arg0, s32 arg1, s32 arg2, f32 arg3) { CZoomM[arg0] = temp_r31->unk18 + arg3 * (temp_r30->unk18 - temp_r31->unk18); } -float lbl_1_data_8A4[] = { - 95.0f, 95.0f, 135.0f, 95.0f, 95.0f, 125.0f, 135.0f, 125.0f -}; +float lbl_1_data_8A4[] = { 95.0f, 95.0f, 135.0f, 95.0f, 95.0f, 125.0f, 135.0f, 125.0f }; -void fn_1_106D8(s32 arg0) { +void fn_1_106D8(s32 arg0) +{ float var_f31; - StructBssBCData* var_r30; + StructBssBCData *var_r30; s32 var_r29; if (lbl_1_bss_90 != arg0) { @@ -4790,7 +4797,8 @@ void fn_1_106D8(s32 arg0) { lbl_1_bss_80 = 0; if (arg0 != 0) { lbl_1_bss_7C = frand(); - } else { + } + else { lbl_1_bss_7C = 0; } lbl_1_bss_90 = arg0; @@ -4802,9 +4810,10 @@ void fn_1_106D8(s32 arg0) { case 2: lbl_1_bss_80++; if (lbl_1_bss_7C & 1) { - var_f31 = cosd((float) lbl_1_bss_80); - } else { - var_f31 = -cosd((float) lbl_1_bss_80); + var_f31 = cosd((float)lbl_1_bss_80); + } + else { + var_f31 = -cosd((float)lbl_1_bss_80); } CRotM->y = 23.0f * var_f31 + lbl_1_data_38[arg0].unk00.y; break; @@ -4814,7 +4823,8 @@ void fn_1_106D8(s32 arg0) { lbl_1_bss_80++; if (lbl_1_bss_7C & 1) { CRotM->y = lbl_1_data_38[arg0].unk00.y - 45.0f + 0.5f * lbl_1_bss_80; - } else { + } + else { CRotM->y = lbl_1_data_38[arg0].unk00.y + 45.0f - 0.5f * lbl_1_bss_80; } break; @@ -4837,14 +4847,15 @@ void fn_1_106D8(s32 arg0) { } } -void fn_1_10BC8(void) { +void fn_1_10BC8(void) +{ Mtx44 sp64; Mtx sp34; Vec sp28; Vec sp1C; Vec sp10; GXColor spC; - CameraData* var_r31; + CameraData *var_r31; var_r31 = &Hu3DCamera[0]; if (var_r31->fov <= 0.0f) { @@ -4886,30 +4897,33 @@ void fn_1_10BC8(void) { GXEnd(); } -void fn_1_11008(StructBssD0Data* arg0, void* arg1, s16 arg2, GXTexWrapMode arg3, s32 arg4, s32 arg5) { +void fn_1_11008(StructBssD0Data *arg0, void *arg1, s16 arg2, GXTexWrapMode arg3, s32 arg4, s32 arg5) +{ GXTexObj sp18; - StructBssD0Data* var_r31; + StructBssD0Data *var_r31; var_r31 = arg0; GXInitTexObj(&sp18, arg1, var_r31->unk00, var_r31->unk04, GX_TF_RGB5A3, arg3, arg3, GX_FALSE); if (arg5 != 0) { GXInitTexObjLOD(&sp18, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); - } else { + } + else { GXInitTexObjLOD(&sp18, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); } GXLoadTexObj(&sp18, arg2); } -s16 fn_1_11114(AnimData* arg0, s16 arg1) { +s16 fn_1_11114(AnimData *arg0, s16 arg1) +{ s16 var_r23; s16 i; - ModelData* temp_r27; - StructM423_05* var_r31; - StructM423_04* var_r29; - Vec* var_r25; - float (*var_r28)[2]; - void* var_r24; - void* var_r22; + ModelData *temp_r27; + StructM423_05 *var_r31; + StructM423_04 *var_r29; + Vec *var_r25; + float(*var_r28)[2]; + void *var_r24; + void *var_r22; var_r23 = Hu3DHookFuncCreate(fn_1_11900); temp_r27 = &Hu3DData[var_r23]; @@ -4987,17 +5001,18 @@ s16 fn_1_11114(AnimData* arg0, s16 arg1) { return var_r23; } -s16 fn_1_115C4(s16 arg0) { +s16 fn_1_115C4(s16 arg0) +{ s32 temp_r24; s16 var_r22; s16 i; - ModelData* temp_r23; - ModelData* temp_r27; - StructM423_05* temp_r26; - StructM423_05* var_r31; - StructM423_04* var_r30; - Vec* var_r25; - float (*var_r29)[2]; + ModelData *temp_r23; + ModelData *temp_r27; + StructM423_05 *temp_r26; + StructM423_05 *var_r31; + StructM423_04 *var_r30; + Vec *var_r25; + float(*var_r29)[2]; temp_r23 = &Hu3DData[arg0]; temp_r26 = temp_r23->unk_120; @@ -5051,21 +5066,12 @@ s16 fn_1_115C4(s16 arg0) { return var_r22; } -Vec lbl_1_data_8C4[] = { - { -0.5f, 0.5f, 0.0f }, - { 0.5f, 0.5f, 0.0f }, - { 0.5f, -0.5f, 0.0f }, - { -0.5f, -0.5f, 0.0f } -}; +Vec lbl_1_data_8C4[] = { { -0.5f, 0.5f, 0.0f }, { 0.5f, 0.5f, 0.0f }, { 0.5f, -0.5f, 0.0f }, { -0.5f, -0.5f, 0.0f } }; -float lbl_1_data_8F4[][2] = { - { 0.0f, 0.0f }, - { 0.25f, 0.0f }, - { 0.25f, 0.25f }, - { 0.0f, 0.25f } -}; +float lbl_1_data_8F4[][2] = { { 0.0f, 0.0f }, { 0.25f, 0.0f }, { 0.25f, 0.25f }, { 0.0f, 0.25f } }; -void fn_1_11900(ModelData* arg0, Mtx arg1) { +void fn_1_11900(ModelData *arg0, Mtx arg1) +{ Mtx sp128; Mtx spF8; Mtx spC8; @@ -5073,16 +5079,16 @@ void fn_1_11900(ModelData* arg0, Mtx arg1) { Vec sp68[4]; Vec sp38[4]; ROMtx sp8; - StructM423_05* temp_r31; - StructM423_04* var_r29; - Vec* var_r30; - float (*var_r28)[2]; - Vec* temp_r27; - Vec* temp_r24; + StructM423_05 *temp_r31; + StructM423_04 *var_r29; + Vec *var_r30; + float(*var_r28)[2]; + Vec *temp_r27; + Vec *temp_r24; s16 var_r21; s16 var_r20; s16 var_r19; - void (*var_r18)(ModelData*, struct struct_m423_05*, Mtx); + void (*var_r18)(ModelData *, struct struct_m423_05 *, Mtx); s16 i; s16 j; @@ -5101,18 +5107,22 @@ void fn_1_11900(ModelData* arg0, Mtx arg1) { if (shadowModelDrawF != 0) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); - } else { + } + else { var_r21 = temp_r31->unk38->bmp->dataFmt & 0xF; if (var_r21 == 7 || var_r21 == 8) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } if (temp_r31->unk22 & 1) { GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); - } else if (arg0->attr & 2) { + } + else if (arg0->attr & 2) { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - } else { + } + else { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); } } @@ -5136,7 +5146,7 @@ void fn_1_11900(ModelData* arg0, Mtx arg1) { break; } if (HmfInverseMtxF3X3(arg1, sp128) == 0) { - PSMTXIdentity(sp128); + MTXIdentity(sp128); } PSMTXReorder(sp128, sp8); if (temp_r31->unk4C) { @@ -5157,29 +5167,31 @@ void fn_1_11900(ModelData* arg0, Mtx arg1) { var_r30++; var_r30->x = var_r30->y = var_r30->z = 0.0f; var_r30++; - } else if (!var_r29->unk34) { + } + else if (!var_r29->unk34) { temp_r27 = sp98; temp_r24 = sp38; - PSVECScale(temp_r24++, temp_r27, var_r29->unk30); - PSVECAdd(temp_r27++, &var_r29->unk38, var_r30++); - PSVECScale(temp_r24++, temp_r27, var_r29->unk30); - PSVECAdd(temp_r27++, &var_r29->unk38, var_r30++); - PSVECScale(temp_r24++, temp_r27, var_r29->unk30); - PSVECAdd(temp_r27++, &var_r29->unk38, var_r30++); - PSVECScale(temp_r24++, temp_r27, var_r29->unk30); - PSVECAdd(temp_r27++, &var_r29->unk38, var_r30++); - } else { - PSVECScale(&lbl_1_data_8C4[0], &sp98[0], var_r29->unk30); - PSVECScale(&lbl_1_data_8C4[1], &sp98[1], var_r29->unk30); - PSVECScale(&lbl_1_data_8C4[2], &sp98[2], var_r29->unk30); - PSVECScale(&lbl_1_data_8C4[3], &sp98[3], var_r29->unk30); - PSMTXRotRad(spC8, 'Z', var_r29->unk34); - PSMTXConcat(sp128, spC8, spF8); - PSMTXMultVecArray(spF8, sp98, sp68, 4); - PSVECAdd(&sp68[0], &var_r29->unk38, var_r30++); - PSVECAdd(&sp68[1], &var_r29->unk38, var_r30++); - PSVECAdd(&sp68[2], &var_r29->unk38, var_r30++); - PSVECAdd(&sp68[3], &var_r29->unk38, var_r30++); + VECScale(temp_r24++, temp_r27, var_r29->unk30); + VECAdd(temp_r27++, &var_r29->unk38, var_r30++); + VECScale(temp_r24++, temp_r27, var_r29->unk30); + VECAdd(temp_r27++, &var_r29->unk38, var_r30++); + VECScale(temp_r24++, temp_r27, var_r29->unk30); + VECAdd(temp_r27++, &var_r29->unk38, var_r30++); + VECScale(temp_r24++, temp_r27, var_r29->unk30); + VECAdd(temp_r27++, &var_r29->unk38, var_r30++); + } + else { + VECScale(&lbl_1_data_8C4[0], &sp98[0], var_r29->unk30); + VECScale(&lbl_1_data_8C4[1], &sp98[1], var_r29->unk30); + VECScale(&lbl_1_data_8C4[2], &sp98[2], var_r29->unk30); + VECScale(&lbl_1_data_8C4[3], &sp98[3], var_r29->unk30); + MTXRotRad(spC8, 'Z', var_r29->unk34); + MTXConcat(sp128, spC8, spF8); + MTXMultVecArray(spF8, sp98, sp68, 4); + VECAdd(&sp68[0], &var_r29->unk38, var_r30++); + VECAdd(&sp68[1], &var_r29->unk38, var_r30++); + VECAdd(&sp68[2], &var_r29->unk38, var_r30++); + VECAdd(&sp68[3], &var_r29->unk38, var_r30++); } } var_r29 = temp_r31->unk3C; @@ -5193,7 +5205,8 @@ void fn_1_11900(ModelData* arg0, Mtx arg1) { (*var_r28)[1] = 0.25f * var_r19 + lbl_1_data_8F4[j][1]; } } - } else { + } + else { for (i = 0; i < temp_r31->unk26; i++, var_r29++) { for (j = 0; j < 4; j++, var_r28++) { (*var_r28)[0] = 4.0f * lbl_1_data_8F4[j][0]; @@ -5230,40 +5243,47 @@ void fn_1_11900(ModelData* arg0, Mtx arg1) { } } -float fn_1_121DC(float arg0, float arg1) { +float fn_1_121DC(float arg0, float arg1) +{ float var_f31; if (arg0 >= 360.0f) { arg0 -= 360.0f; - } else if (arg0 < 0.0f) { + } + else if (arg0 < 0.0f) { arg0 += 360.0f; } if (arg1 >= 360.0f) { arg1 -= 360.0f; - } else if (arg1 < 0.0f) { + } + else if (arg1 < 0.0f) { arg1 += 360.0f; } var_f31 = arg0 - arg1; if (var_f31 <= -180.0f) { var_f31 += 360.0f; - } else if (var_f31 >= 180.0f) { + } + else if (var_f31 >= 180.0f) { var_f31 -= 360.0f; } return var_f31; } -float fn_1_122F4(float arg0, float arg1, float arg2) { +float fn_1_122F4(float arg0, float arg1, float arg2) +{ float var_f30; float var_f31; if (arg0 >= 360.0) { arg0 -= 360.0; - } else if (arg0 < 0.0) { + } + else if (arg0 < 0.0) { arg0 += 360.0; } if (arg1 >= 360.0) { arg1 -= 360.0; - } else if (arg1 < 0.0) { + } + else if (arg1 < 0.0) { arg1 += 360.0; } var_f30 = arg0 - arg1 + 360.0; @@ -5273,33 +5293,39 @@ float fn_1_122F4(float arg0, float arg1, float arg2) { if (var_f30 < 180.0) { if (var_f30 <= arg2) { var_f31 = var_f30; - } else { + } + else { var_f31 = arg2; } - } else { + } + else { if (360.0 - var_f30 <= arg2) { var_f31 = -(360.0 - var_f30); - } else { + } + else { var_f31 = -arg2; } } var_f31 += arg1; if (var_f31 >= 360.0) { var_f31 -= 360.0; - } else if (var_f31 < 0.0) { + } + else if (var_f31 < 0.0) { var_f31 += 360.0; } return var_f31; } -float fn_1_12544(float arg0, float arg1, float arg2) { +float fn_1_12544(float arg0, float arg1, float arg2) +{ float var_f28; var_f28 = fn_1_121DC(arg2, arg1); return fn_1_122F4(arg2, arg1, fabs(var_f28 * arg0)); } -void fn_1_1293C(Mtx arg0, Vec* arg1) { +void fn_1_1293C(Mtx arg0, Vec *arg1) +{ Vec sp8; sp8.x = arg0[0][0] * arg1->x + arg0[0][1] * arg1->y + arg0[0][2] * arg1->z; @@ -5308,7 +5334,8 @@ void fn_1_1293C(Mtx arg0, Vec* arg1) { *arg1 = sp8; } -void fn_1_129F0(Vec* arg0, Vec* arg1, Vec* arg2, float* arg3) { +void fn_1_129F0(Vec *arg0, Vec *arg1, Vec *arg2, float *arg3) +{ Vec sp18; Vec spC; float var_f30; @@ -5327,7 +5354,8 @@ void fn_1_129F0(Vec* arg0, Vec* arg1, Vec* arg2, float* arg3) { var_f30 = sqrtf(var_f29); if (var_f30 != 0.0f) { var_f30 = 1.0f / var_f30; - } else { + } + else { var_f30 = 0.0f; } arg3[0] *= var_f30; @@ -5336,7 +5364,8 @@ void fn_1_129F0(Vec* arg0, Vec* arg1, Vec* arg2, float* arg3) { arg3[3] = -(arg3[0] * arg0->x + arg3[1] * arg0->y + arg3[2] * arg0->z); } -s32 fn_1_12C6C(Vec* arg0, Vec* arg1, float* arg2) { +s32 fn_1_12C6C(Vec *arg0, Vec *arg1, float *arg2) +{ float temp_f31; float temp_f30; @@ -5351,7 +5380,8 @@ s32 fn_1_12C6C(Vec* arg0, Vec* arg1, float* arg2) { return 0; } -float fn_1_12D6C(Vec* arg0, Vec* arg1, s32 arg2, float arg3, float arg4) { +float fn_1_12D6C(Vec *arg0, Vec *arg1, s32 arg2, float arg3, float arg4) +{ float var_f31; float var_f30; float var_f29; @@ -5382,11 +5412,10 @@ float fn_1_12D6C(Vec* arg0, Vec* arg1, s32 arg2, float arg3, float arg4) { return var_f27; } -u8 lbl_1_data_914[][2] = { - { 0, 1 }, { 1, 2 }, { 2, 0 } -}; +u8 lbl_1_data_914[][2] = { { 0, 1 }, { 1, 2 }, { 2, 0 } }; -float fn_1_12E68(Vec* arg0, Vec* arg1, s32 arg2) { +float fn_1_12E68(Vec *arg0, Vec *arg1, s32 arg2) +{ float var_f31; float var_f30; float var_f29; @@ -5418,7 +5447,8 @@ float fn_1_12E68(Vec* arg0, Vec* arg1, s32 arg2) { } } return 1.0f; - } else { + } + else { for (i = 1; i < 3; i++) { var_f29 = fn_1_12D6C(&arg0[lbl_1_data_914[i][0]], &arg0[lbl_1_data_914[i][1]], arg2, var_f31, var_f30); if (var_f29 == 0.0f) { @@ -5432,7 +5462,8 @@ float fn_1_12E68(Vec* arg0, Vec* arg1, s32 arg2) { } } -void fn_1_1334C(float* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { +void fn_1_1334C(float *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ float temp_f26; float temp_f25; float temp_f24; @@ -5469,7 +5500,8 @@ void fn_1_1334C(float* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { var_f28 = temp_f26 * temp_f31 + temp_f25 * temp_f30 + temp_f24 * temp_f29; if (var_f28 != 0.0f) { var_f28 = -(temp_f26 * (var_f22 - var_f19) + temp_f25 * (var_f21 - var_f18) + temp_f24 * (var_f20 - spC)) / var_f28; - } else { + } + else { var_f28 = 0.0f; } arg4->x = arg1->x + var_f28 * arg2->x; @@ -5477,7 +5509,8 @@ void fn_1_1334C(float* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { arg4->z = arg1->z + var_f28 * arg2->z; } -float fn_1_1367C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, f32* arg4) { +float fn_1_1367C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, f32 *arg4) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -5488,22 +5521,23 @@ float fn_1_1367C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, f32* arg4) { arg0->z = 0.0f; arg1->z = 0.0f; arg2->z = 0.0f; - PSVECSubtract(arg1, arg0, &sp2C); - PSVECSubtract(arg2, arg0, &sp20); + VECSubtract(arg1, arg0, &sp2C); + VECSubtract(arg2, arg0, &sp20); temp_f31 = (sp2C.x * sp20.x + sp2C.y * sp20.y) / (sp2C.x * sp2C.x + sp2C.y * sp2C.y); if (arg4 != NULL) { *arg4 = temp_f31; } - PSVECScale(&sp2C, &sp14, temp_f31); - PSVECAdd(&sp2C, &sp14, &sp38); + VECScale(&sp2C, &sp14, temp_f31); + VECAdd(&sp2C, &sp14, &sp38); if (arg3 != NULL) { *arg3 = sp38; } - PSVECSubtract(arg2, &sp38, &sp8); - return PSVECMag(&sp8); + VECSubtract(arg2, &sp38, &sp8); + return VECMag(&sp8); } -s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) { +s32 fn_1_137C4(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float arg4, s32 arg5) +{ Vec sp40; Vec sp34; Vec sp28; @@ -5514,31 +5548,30 @@ s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) f32 temp_f28; f32 var_f31; - PSVECAdd(arg1, arg2, &sp28); + VECAdd(arg1, arg2, &sp28); *arg3 = sp28; - PSVECNormalize(arg2, &sp1C); - PSVECScale(&sp1C, &sp1C, arg4); - PSVECAdd(arg1, &sp1C, &sp40); - PSVECAdd(&sp28, &sp1C, &sp34); - PSVECNormalize(arg2, &sp1C); - PSVECScale(&sp1C, &sp10, -arg4); + VECNormalize(arg2, &sp1C); + VECScale(&sp1C, &sp1C, arg4); + VECAdd(arg1, &sp1C, &sp40); + VECAdd(&sp28, &sp1C, &sp34); + VECNormalize(arg2, &sp1C); + VECScale(&sp1C, &sp10, -arg4); switch (arg5) { case 0: if (sp40.y >= arg0[0].y && sp34.y < arg0[0].y) { if (sp1C.y == 0.0f) { var_f31 = 0.0f; - } else { + } + else { var_f31 = (arg0[0].y - arg1->y) / sp1C.y; } temp_f30 = arg1->x + var_f31 * sp1C.x; temp_f28 = arg1->z + var_f31 * sp1C.z; - if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x - && temp_f28 >= arg0[0].z && temp_f28 <= arg0[2].z) - { + if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x && temp_f28 >= arg0[0].z && temp_f28 <= arg0[2].z) { arg3->x = temp_f30; arg3->y = arg0[0].y + arg4 + 1.0f; arg3->z = temp_f28; - PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); return 1; } } @@ -5547,18 +5580,17 @@ s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) if (sp40.y <= arg0[0].y && sp34.y > arg0[0].y) { if (sp1C.y == 0.0f) { var_f31 = 0.0f; - } else { + } + else { var_f31 = (arg0[0].y - arg1->y) / sp1C.y; } temp_f30 = arg1->x + var_f31 * sp1C.x; temp_f28 = arg1->z + var_f31 * sp1C.z; - if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x - && temp_f28 <= arg0[0].z && temp_f28 >= arg0[2].z) - { + if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x && temp_f28 <= arg0[0].z && temp_f28 >= arg0[2].z) { arg3->x = temp_f30; arg3->y = arg0[0].y - arg4 - 1.0f; arg3->z = temp_f28; - PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); return 1; } } @@ -5567,18 +5599,17 @@ s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) if (sp40.x <= arg0[0].x && sp34.x > arg0[0].x) { if (sp1C.x == 0.0f) { var_f31 = 0.0f; - } else { + } + else { var_f31 = (arg0[0].x - arg1->x) / sp1C.x; } temp_f29 = arg1->y + var_f31 * sp1C.y; temp_f28 = arg1->z + var_f31 * sp1C.z; - if (temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y - && temp_f28 >= arg0[0].z && temp_f28 <= arg0[2].z) - { + if (temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y && temp_f28 >= arg0[0].z && temp_f28 <= arg0[2].z) { arg3->x = arg0[0].x - arg4 - 1.0f; arg3->y = temp_f29; arg3->z = temp_f28; - PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); return 1; } } @@ -5587,18 +5618,17 @@ s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) if (sp40.x >= arg0[0].x && sp34.x < arg0[0].x) { if (sp1C.x == 0.0f) { var_f31 = 0.0f; - } else { + } + else { var_f31 = (arg0[0].x - arg1->x) / sp1C.x; } temp_f29 = arg1->y + var_f31 * sp1C.y; temp_f28 = arg1->z + var_f31 * sp1C.z; - if (temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y - && temp_f28 <= arg0[0].z && temp_f28 >= arg0[2].z) - { + if (temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y && temp_f28 <= arg0[0].z && temp_f28 >= arg0[2].z) { arg3->x = arg0[0].x + arg4 + 1.0f; arg3->y = temp_f29; arg3->z = temp_f28; - PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); return 1; } } @@ -5607,18 +5637,17 @@ s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) if (sp40.z >= arg0[0].z && sp34.z < arg0[0].z) { if (sp1C.z == 0.0f) { var_f31 = 0.0f; - } else { + } + else { var_f31 = (arg0[0].z - arg1->z) / sp1C.z; } temp_f30 = arg1->x + var_f31 * sp1C.x; temp_f29 = arg1->y + var_f31 * sp1C.y; - if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x - && temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y) - { + if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x && temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y) { arg3->x = temp_f30; arg3->y = temp_f29; arg3->z = arg0[0].z + arg4 + 1.0f; - PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); return 1; } } @@ -5627,18 +5656,17 @@ s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) if (sp40.z <= arg0[0].z && sp34.z > arg0[0].z) { if (sp1C.z == 0.0f) { var_f31 = 0.0f; - } else { + } + else { var_f31 = (arg0[0].z - arg1->z) / sp1C.z; } temp_f30 = arg1->x + var_f31 * sp1C.x; temp_f29 = arg1->y + var_f31 * sp1C.y; - if (temp_f30 <= arg0[0].x && temp_f30 >= arg0[2].x - && temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y) - { + if (temp_f30 <= arg0[0].x && temp_f30 >= arg0[2].x && temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y) { arg3->x = temp_f30; arg3->y = temp_f29; arg3->z = arg0[0].z - arg4 - 1.0f; - PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); return 1; } } diff --git a/src/REL/m424Dll/ball.c b/src/REL/m424Dll/ball.c index 800f1775..5114c552 100644 --- a/src/REL/m424Dll/ball.c +++ b/src/REL/m424Dll/ball.c @@ -1,7 +1,6 @@ #include "REL/m424Dll.h" #include "ext_math.h" -#include "string.h" #include "game/audio.h" #include "game/chrman.h" #include "game/data.h" @@ -11,6 +10,8 @@ #include "game/hsfmotion.h" #include "game/pad.h" #include "game/sprite.h" +#include "string.h" + // STRUCT typedef struct _M424DllBallStruct { @@ -45,10 +46,10 @@ typedef struct _M424DllBallStruct { Vec unk40; Vec unk4C; Vec unk58; - void* unk64; // sizeof 0x40 + void *unk64; // sizeof 0x40 char unk68[0x3C]; u8 unkA4; - void* unkA8; // sizeof 0x40 + void *unkA8; // sizeof 0x40 char unkAC[0x3C]; s32 unkE8; s32 unkEC; @@ -56,8 +57,8 @@ typedef struct _M424DllBallStruct { typedef struct _M424DllBallStruct3 { u8 unk0; - M424DllBallStruct2* unk4; - M424DllBallStruct2* unk8; + M424DllBallStruct2 *unk4; + M424DllBallStruct2 *unk8; } M424DllBallStruct3; typedef struct _M424BallStruct4 { @@ -73,45 +74,45 @@ typedef struct _M424BallStruct4 { } M424BallStruct4; // BSS -void* lbl_1_bss_5BC[0x20]; -omObjData* lbl_1_bss_5AC[4]; -omObjData* lbl_1_bss_594[6]; +void *lbl_1_bss_5BC[0x20]; +omObjData *lbl_1_bss_5AC[4]; +omObjData *lbl_1_bss_594[6]; M424DllBallStruct2 lbl_1_bss_60[9]; s32 lbl_1_bss_5C; u8 lbl_1_bss_58; // PROTO f32 fn_1_25C0(void); -void fn_1_28A0(omObjData* object); -void fn_1_2E3C(omObjData* object); -void fn_1_31C0(omObjData* object); -void fn_1_37FC(omObjData* object); -void fn_1_4220(omObjData* object); -void fn_1_469C(omObjData* object); -u8 fn_1_48D0(omObjData* object, u8, u8); +void fn_1_28A0(omObjData *object); +void fn_1_2E3C(omObjData *object); +void fn_1_31C0(omObjData *object); +void fn_1_37FC(omObjData *object); +void fn_1_4220(omObjData *object); +void fn_1_469C(omObjData *object); +u8 fn_1_48D0(omObjData *object, u8, u8); void fn_1_4A90(s16); void fn_1_6038(void); -void* fn_1_6078(s32); +void *fn_1_6078(s32); void fn_1_61AC(void); s32 fn_1_627C(void); void fn_1_6230(s16, Mtx); -void fn_1_62D0(s32, u32*); +void fn_1_62D0(s32, u32 *); f32 fn_1_640C(f32, f32, f32); f32 fn_1_6D10(Vec, Vec, f32, Vec, Vec, f32); f32 fn_1_709C(Vec, Vec, f32, f32); f32 fn_1_7420(Vec, Vec, f32, f32); -void fn_1_77C4(Vec, Vec, Vec, f32, Vec*, Vec*); -void fn_1_79FC(Vec*, Vec*, f32, Vec*, Vec*, f32, f32); -void fn_1_7CA0(Vec, Vec, f32, Vec*); +void fn_1_77C4(Vec, Vec, Vec, f32, Vec *, Vec *); +void fn_1_79FC(Vec *, Vec *, f32, Vec *, Vec *, f32, f32); +void fn_1_7CA0(Vec, Vec, f32, Vec *); void fn_1_8924(u8, u8); void fn_1_8AA8(s32, s32); s32 fn_1_8C78(s32, s32); -s32 fn_1_907C(Vec*, Vec*); +s32 fn_1_907C(Vec *, Vec *); - -void fn_1_2720(Process* arg0) { +void fn_1_2720(Process *arg0) +{ u32 sp8[10]; - omObjData* var_r30; + omObjData *var_r30; s32 temp_r28; s32 var_r29; s32 var_r31; @@ -122,7 +123,7 @@ void fn_1_2720(Process* arg0) { } fn_1_62D0(8, sp8); sp8[8] = 8; - + for (var_r31 = 0, var_r29 = 0; var_r31 < 4; var_r31++) { if (GWPlayerCfg[var_r31].group != 0) { var_r30 = omAddObjEx(arg0, 0x3E, 3, 11, 0, fn_1_28A0); @@ -132,7 +133,7 @@ void fn_1_2720(Process* arg0) { var_r29++; } } - + for (var_r31 = 0; var_r31 < 6; var_r29++, var_r31++) { var_r30 = omAddObjEx(arg0, 0x3F, 2, 5, 0, fn_1_4220); lbl_1_bss_594[var_r31] = var_r30; @@ -143,27 +144,20 @@ void fn_1_2720(Process* arg0) { fn_1_6038(); } -void fn_1_2880(void) { +void fn_1_2880(void) +{ fn_1_61AC(); } -u32 lbl_1_data_150[11] = { - 0, 2, 3, 8, 10, - 9, 20, 22, 23, 24, - 0x370021 -}; -Vec lbl_1_data_17C[4] = { - { -100.0f, 200.0f, -100.0f }, - { 300.0f, 200.0f, -100.0f }, - { -300.0f, 200.0f, 300.0f }, - { 300.0f, 200.0f, 0.0f } -}; +u32 lbl_1_data_150[11] = { 0, 2, 3, 8, 10, 9, 20, 22, 23, 24, 0x370021 }; +Vec lbl_1_data_17C[4] = { { -100.0f, 200.0f, -100.0f }, { 300.0f, 200.0f, -100.0f }, { -300.0f, 200.0f, 300.0f }, { 300.0f, 200.0f, 0.0f } }; -void fn_1_28A0(omObjData* object) { +void fn_1_28A0(omObjData *object) +{ Vec sp8; f32 temp_f31; f32 temp_f30; - M424DllBallStruct* var_r31; + M424DllBallStruct *var_r31; s32 var_r29; s32 temp_r28; s32 var_r27; @@ -212,9 +206,12 @@ void fn_1_28A0(omObjData* object) { for (var_r29 = 0; var_r29 < 11; var_r29++) { if (lbl_1_data_150[var_r29] + 0xFFC90000 != 0x21) { object->motion[var_r29] = CharModelMotionCreate(var_r31->unk1, lbl_1_data_150[var_r29]); - } else if (var_r31->unk1 == 5) { - object->motion[var_r29] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(var_r31->unk1 + lbl_1_data_150[var_r29], 0x10000000, HEAP_DATA)); - } else { + } + else if (var_r31->unk1 == 5) { + object->motion[var_r29] + = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(var_r31->unk1 + lbl_1_data_150[var_r29], 0x10000000, HEAP_DATA)); + } + else { object->motion[var_r29] = object->motion[0]; } if (lbl_1_data_150[var_r29] == 0x16 || lbl_1_data_150[var_r29] == 0x14) { @@ -230,11 +227,12 @@ void fn_1_28A0(omObjData* object) { object->func = fn_1_2E3C; } -void fn_1_2E38(void) {} +void fn_1_2E38(void) { } -void fn_1_2E3C(omObjData* object) { +void fn_1_2E3C(omObjData *object) +{ s32 temp_r29; - M424DllBallStruct* temp_r31; + M424DllBallStruct *temp_r31; temp_r29 = object->model[0]; temp_r31 = object->data; @@ -242,13 +240,15 @@ void fn_1_2E3C(omObjData* object) { if ((fn_1_FE0() == 4) && ((temp_r31->unk7 & 2) == 0)) { if (temp_r31->unk5 != 0) { fn_1_31C0(object); - } else { + } + else { temp_r31->unk10 = HuPadStkX[temp_r31->unk4]; temp_r31->unk12 = HuPadStkY[temp_r31->unk4]; temp_r31->unk14 = HuPadBtnDown[temp_r31->unk4]; temp_r31->unk16 = HuPadBtn[temp_r31->unk4]; } - } else { + } + else { temp_r31->unk10 = temp_r31->unk12 = 0; temp_r31->unk14 = temp_r31->unk16 = 0; } @@ -289,13 +289,15 @@ void fn_1_2E3C(omObjData* object) { temp_r31->unk18 = 7; temp_r31->unk34.x += fn_1_25C0(); temp_r31->unk34.y = 50.0f; - } else { + } + else { temp_r31->unkC = 0; temp_r31->unk20 += 3.0f; temp_r31->unk4C.y += -1.46f; if (temp_r31->unk1 != 5) { temp_r31->unk18 = 6; - } else { + } + else { temp_r31->unk18 = 0xA; } } @@ -308,13 +310,14 @@ void fn_1_2E3C(omObjData* object) { } } -void fn_1_31C0(omObjData* object) { +void fn_1_31C0(omObjData *object) +{ Vec sp10; s32 spC; s16 sp8; f32 temp_f31; f32 temp_f30; - M424DllBallStruct* temp_r31; + M424DllBallStruct *temp_r31; s16 temp_r30; s16 var_r29; s16 var_r28; @@ -325,7 +328,7 @@ void fn_1_31C0(omObjData* object) { spC = object->model[0]; sp8 = temp_r31->unk18; temp_r30 = temp_r31->unk6; - + var_r29 = var_r28 = var_r26 = var_r25 = 0; switch (temp_r31->unk8) { case 2: @@ -341,18 +344,22 @@ void fn_1_31C0(omObjData* object) { if (temp_f30 < 0.0f) { var_r29 = (-sp10.z * (48.0f + (6.0f * temp_r30))); var_r28 = (-sp10.x * (48.0f + (6.0f * temp_r30))); - } else { + } + else { var_r29 = (sp10.z * (48.0f + (6.0f * temp_r30))); var_r28 = (sp10.x * (48.0f + (6.0f * temp_r30))); } - } else if (temp_f30 < 0.0f) { + } + else if (temp_f30 < 0.0f) { var_r29 = (sp10.z * (48.0f + (6.0f * temp_r30))); var_r28 = (sp10.x * (48.0f + (6.0f * temp_r30))); - } else { + } + else { var_r29 = (-sp10.z * (48.0f + (6.0f * temp_r30))); var_r28 = (-sp10.x * (48.0f + (6.0f * temp_r30))); } - } else { + } + else { var_r29 = temp_r31->unk10; var_r28 = temp_r31->unk12; } @@ -364,7 +371,8 @@ void fn_1_31C0(omObjData* object) { sp10.z = cosd(temp_f31); var_r29 = (48.0f * sp10.x); var_r28 = (48.0f * sp10.z); - } else { + } + else { var_r29 = temp_r31->unk10; var_r28 = temp_r31->unk12; } @@ -376,13 +384,14 @@ void fn_1_31C0(omObjData* object) { temp_r31->unk16 = var_r25; } -void fn_1_37FC(omObjData* object) { +void fn_1_37FC(omObjData *object) +{ s16 spA; s16 sp8; f32 var_f30; f32 var_f28; f32 temp_f27; - M424DllBallStruct* temp_r31; + M424DllBallStruct *temp_r31; s16 temp_r30; s16 temp_r29; s16 var_r28; @@ -407,7 +416,8 @@ void fn_1_37FC(omObjData* object) { if (temp_r31->unk20 >= 6.0f) { var_r28 = 2; var_r27 = 1; - } else { + } + else { var_r28 = 1; var_r27 = 1; } @@ -419,7 +429,8 @@ void fn_1_37FC(omObjData* object) { temp_r31->unk28 -= 0.5f * temp_r31->unk2C; } temp_r31->unk20 *= 1.0 + 0.25 * cosd(90.0f * (temp_r31->unk28 / (0.5f * temp_r31->unk2C))); - } else { + } + else { temp_r31->unk28 = 0.0f; temp_r31->unk20 = 0.0f; var_r28 = 0; @@ -427,7 +438,8 @@ void fn_1_37FC(omObjData* object) { } if (temp_r31->unkC != 0) { temp_r31->unk4C.y = -2.4333334f; - } else { + } + else { temp_r31->unk4C.y += -2.4333334f; } break; @@ -435,7 +447,8 @@ void fn_1_37FC(omObjData* object) { var_r27 = 0; if ((Hu3DData[temp_r25].unk_0C == -1) && (CharModelMotionEndCheck(temp_r31->unk1) != 0)) { temp_r31->unk4C.y += -2.4333334f; - } else { + } + else { temp_r31->unk4C.y = 0.0f; } if (temp_r31->unkC != 0) { @@ -444,7 +457,8 @@ void fn_1_37FC(omObjData* object) { temp_r31->unkD = 0; var_r28 = 5; var_r27 = 0; - } else { + } + else { temp_r31->unk4C.y *= -0.1f; temp_r31->unkC = 0; var_r28 = 4; @@ -478,7 +492,8 @@ void fn_1_37FC(omObjData* object) { var_r27 = 1; if (temp_r31->unkE8 == 1) { temp_r31->unkEC = HuAudCharVoicePlay(temp_r31->unk1, 0x11A); - } else if ((temp_r31->unkE8 > 90.0f) && (temp_r31->unkEC != -1)) { + } + else if ((temp_r31->unkE8 > 90.0f) && (temp_r31->unkEC != -1)) { HuAudFXStop(temp_r31->unkEC); temp_r31->unkEC = -1; } @@ -506,7 +521,8 @@ void fn_1_37FC(omObjData* object) { if ((temp_r31->unk7 & 4) != 0) { if ((temp_r31->unkA & 2) != 0) { Hu3DModelAttrSet(temp_r25, 1); - } else { + } + else { Hu3DModelAttrReset(temp_r25, 1); } if (--temp_r31->unkA == 0) { @@ -544,18 +560,19 @@ void fn_1_37FC(omObjData* object) { omSetSca(object, temp_r31->unk1C, temp_r31->unk1C, temp_r31->unk1C); } -void fn_1_4220(omObjData* object) { +void fn_1_4220(omObjData *object) +{ s32 sp14[3] = { 0x370013, 0x370014, 0x370015 }; Vec sp8; f32 temp_f31; f32 temp_f30; - M424DllBallStruct* var_r31; + M424DllBallStruct *var_r31; s32 var_r29; s32 temp_r28; s32 var_r27; object->model[0] = var_r27 = Hu3DModelCreateFile(0x370012); - + for (var_r29 = 0; var_r29 < 3; var_r29++) { object->motion[var_r29] = Hu3DJointMotion(var_r27, HuDataSelHeapReadNum(sp14[var_r29], 0x10000000, HEAP_DATA)); } @@ -584,7 +601,8 @@ void fn_1_4220(omObjData* object) { sp8.x = 350.0f; sp8.y = 200.0f; sp8.z = 50.0f; - } else { + } + else { temp_f31 = 40.0f; temp_f31 = 105.0f + ((temp_f31 * temp_r28) + (temp_f31 * (fn_1_627C() / 65536.0f))); temp_f30 = 125.0f; @@ -608,21 +626,22 @@ void fn_1_4220(omObjData* object) { object->func = fn_1_469C; } -fn_1_4698(void) {} +fn_1_4698(void) { } -void fn_1_469C(omObjData* object) { +void fn_1_469C(omObjData *object) +{ s32 temp_r27; s16 var_r28; s16 var_r30; - M424DllBallStruct* temp_r31; + M424DllBallStruct *temp_r31; temp_r31 = object->data; temp_r27 = object->model[0]; var_r30 = temp_r31->unk18; temp_r31->unk58 = temp_r31->unk34; - + temp_r31->unk4C.x = temp_r31->unk4C.z = 0.0f; - switch (temp_r31->unk8) { /* irregular */ + switch (temp_r31->unk8) { /* irregular */ case 3: var_r30 = 2; var_r28 = 1; @@ -642,7 +661,7 @@ void fn_1_469C(omObjData* object) { case 2: var_r30 = 0; var_r28 = 1; - + temp_r31->unk4C.x = temp_r31->unk4C.z = 0.0f; temp_r31->unk4C.y += -0.97333336f; break; @@ -651,13 +670,14 @@ void fn_1_469C(omObjData* object) { if (var_r30 != temp_r31->unk1A) { temp_r31->unk1A = var_r30; temp_r31->unk18 = var_r30; - Hu3DMotionShiftSet(temp_r27, object->motion[temp_r31->unk18], 0.0f, 8.0f, (u32) var_r28); + Hu3DMotionShiftSet(temp_r27, object->motion[temp_r31->unk18], 0.0f, 8.0f, (u32)var_r28); temp_r31->unk2C = Hu3DMotionMaxTimeGet(temp_r31->unk1); } } -u8 fn_1_48D0(omObjData* object, u8 arg1, u8 arg2) { - M424DllBallStruct2* temp_r31; +u8 fn_1_48D0(omObjData *object, u8 arg1, u8 arg2) +{ + M424DllBallStruct2 *temp_r31; s32 var_r30; s32 var_r28; @@ -676,7 +696,7 @@ u8 fn_1_48D0(omObjData* object, u8 arg1, u8 arg2) { temp_r31->unkA = var_r30; Hu3DModelLayerSet(var_r30, 1); Hu3DModelShadowSet(var_r30); - PSMTXIdentity(temp_r31->unkC); + MTXIdentity(temp_r31->unkC); temp_r31->unk3C.x = object->trans.x; temp_r31->unk3C.y = 100.0f + object->trans.y; temp_r31->unk3C.z = object->trans.z; @@ -687,28 +707,30 @@ u8 fn_1_48D0(omObjData* object, u8 arg1, u8 arg2) { temp_r31->unk6 = 0; if (arg2 != 0) { temp_r31->unk91 = arg1; - } else { + } + else { temp_r31->unk91 = 0xFFU; } return var_r28; } -void fn_1_4A90(s16 arg0) { +void fn_1_4A90(s16 arg0) +{ Mtx sp50; Mtx sp20; Vec sp14; Vec sp8; f32 var_f31; f32 var_f30; - M424DllBallStruct2* var_r31; - M424DllBallStruct* temp_r30; + M424DllBallStruct2 *var_r31; + M424DllBallStruct *temp_r30; s32 var_r29; if (omPauseChk() == 0) { var_r31 = lbl_1_bss_60; var_f31 = fn_1_213C(); mtxRot(sp20, 0.0f, var_f31, 0.0f); - + for (var_r29 = 0; var_r29 < lbl_1_bss_58; var_r29++, var_r31++) { temp_r30 = var_r31->unk0->data; var_r31->unk48 = var_r31->unk54; @@ -716,20 +738,20 @@ void fn_1_4A90(s16 arg0) { var_r31->unk78.x = var_r31->unk78.y = var_r31->unk78.z = 0.0f; switch (var_r31->unk4) { case 1: - PSMTXTrans(sp50, var_r31->unk3C.x, var_r31->unk3C.y, var_r31->unk3C.z); - PSMTXConcat(sp20, sp50, sp50); + MTXTrans(sp50, var_r31->unk3C.x, var_r31->unk3C.y, var_r31->unk3C.z); + MTXConcat(sp20, sp50, sp50); var_r31->unk48.x = sp50[0][3]; var_r31->unk48.y = sp50[1][3]; var_r31->unk48.z = sp50[2][3]; - PSVECSubtract(&var_r31->unk48, &var_r31->unk3C, &var_r31->unk78); - PSVECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); - PSVECAdd(&temp_r30->unk4C, &sp14, &var_r31->unk84); - PSVECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + VECSubtract(&var_r31->unk48, &var_r31->unk3C, &var_r31->unk78); + VECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); + VECAdd(&temp_r30->unk4C, &sp14, &var_r31->unk84); + VECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); var_r31->unk84.y = 0.0f; var_r31->unk4 = 2; break; case 3: - PSVECSubtract(&var_r31->unk3C, &var_r31->unk60, &var_r31->unk6C); + VECSubtract(&var_r31->unk3C, &var_r31->unk60, &var_r31->unk6C); var_r31->unk84 = var_r31->unk6C; break; case 4: @@ -740,15 +762,16 @@ void fn_1_4A90(s16 arg0) { case 2: var_r31->unk6C.y = 0.0f; var_r31->unk6C.x = var_r31->unk6C.z = 0.0f; - PSVECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); - PSVECAdd(&temp_r30->unk4C, &sp14, &var_r31->unk84); + VECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); + VECAdd(&temp_r30->unk4C, &sp14, &var_r31->unk84); var_r31->unk6C = var_r31->unk84; break; case 5: if ((var_r31->unk6 & 2) != 0) { Hu3DModelAttrSet(var_r31->unk8, 1); Hu3DModelAttrSet(var_r31->unkA, 1); - } else { + } + else { Hu3DModelAttrReset(var_r31->unk8, 1); Hu3DModelAttrReset(var_r31->unkA, 1); } @@ -766,18 +789,19 @@ void fn_1_4A90(s16 arg0) { for (var_r29 = 0; var_r29 < lbl_1_bss_58; var_r29++, var_r31++) { if (var_r31->unk4 != 6) { if (var_r31->unk4 == 1) { - PSVECSubtract(&var_r31->unk3C, &var_r31->unk48, &sp14); + VECSubtract(&var_r31->unk3C, &var_r31->unk48, &sp14); sp8.x = sp14.z; sp8.y = 0.0f; sp8.z = -sp14.x; - var_f30 = PSVECMag(&sp8); + var_f30 = VECMag(&sp8); if (var_f30 > 0.01f) { - PSMTXRotAxisRad(sp50, &sp8, MTXDegToRad(var_f30)); - PSMTXConcat(sp20, sp50, sp50); - } else { - PSMTXCopy(sp20, sp50); + MTXRotAxisRad(sp50, &sp8, MTXDegToRad(var_f30)); + MTXConcat(sp20, sp50, sp50); } - PSMTXConcat(sp50, var_r31->unkC, var_r31->unkC); + else { + MTXCopy(sp20, sp50); + } + MTXConcat(sp50, var_r31->unkC, var_r31->unkC); fn_1_6230(var_r31->unk8, var_r31->unkC); fn_1_6230(var_r31->unkA, var_r31->unkC); } @@ -789,7 +813,7 @@ void fn_1_4A90(s16 arg0) { } Hu3DModelPosSet(var_r31->unk8, var_r31->unk3C.x, var_r31->unk3C.y, var_r31->unk3C.z); Hu3DModelPosSet(var_r31->unkA, var_r31->unk3C.x, var_r31->unk3C.y, var_r31->unk3C.z); - PSVECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); + VECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); var_r31->unk6C = sp14; var_r31->unk54 = var_r31->unk3C; temp_r30 = var_r31->unk0->data; @@ -806,7 +830,8 @@ void fn_1_4A90(s16 arg0) { } } -void fn_1_5018(void) { +void fn_1_5018(void) +{ M424DllBallStruct3 sp27C[32]; Vec sp270; Vec sp264; @@ -819,8 +844,8 @@ void fn_1_5018(void) { f32 var_f30; f32 var_f29; f32 temp_f28; - M424DllBallStruct2* var_r31; - M424DllBallStruct2* var_r30; + M424DllBallStruct2 *var_r31; + M424DllBallStruct2 *var_r30; s32 var_r29; s32 var_r28; s32 var_r27; @@ -831,7 +856,7 @@ void fn_1_5018(void) { for (var_r28 = 0; var_r28 < lbl_1_bss_58; var_r28++, var_r31++) { var_r31->unk90 = 1; } - + for (var_r26 = 0, var_f29 = 1.0f; var_r26 < 0x80; var_f29 -= var_f30, var_r26++) { var_r29 = 0; var_f30 = var_f29; @@ -861,7 +886,8 @@ void fn_1_5018(void) { } if (var_r31->unk4 == 1) { var_f31 = fn_1_7420(var_r31->unk60, var_r31->unk84, 100.0f, 700.0f); - } else { + } + else { var_f31 = fn_1_7420(var_r31->unk60, var_r31->unk6C, 100.0f, 700.0f); } if (var_f31 >= 0.0f && var_f31 <= var_f29) { @@ -879,7 +905,8 @@ void fn_1_5018(void) { } if (var_r31->unk4 == 1) { var_f31 = fn_1_709C(var_r31->unk60, var_r31->unk84, 100.0f, 250.0f); - } else { + } + else { var_f31 = fn_1_709C(var_r31->unk60, var_r31->unk6C, 100.0f, 250.0f); } if (var_f31 >= 0.0f && var_f31 <= var_f29) { @@ -896,26 +923,32 @@ void fn_1_5018(void) { } } } - + var_r30 = lbl_1_bss_60; for (var_r25 = 0; var_r25 < lbl_1_bss_58; var_r25++, var_r30++) { if ((var_r31 != var_r30) && (var_r30->unk4 < 4)) { if ((var_r31->unk4 == 1) && (var_r30->unk4 == 1)) { var_f31 = fn_1_6D10(var_r31->unk60, var_r31->unk84, 100.0f, var_r30->unk60, var_r30->unk84, 100.0f); - } else { + } + else { var_f31 = fn_1_6D10(var_r31->unk60, var_r31->unk6C, 100.0f, var_r30->unk60, var_r30->unk6C, 100.0f); } - if ((var_f31 < 0.0f) || (var_f31 > var_f29)) continue; + if ((var_f31 < 0.0f) || (var_f31 > var_f29)) + continue; var_r31->unk90 = 1; var_r30->unk90 = 1; - if (var_f31 > var_f30) continue; + if (var_f31 > var_f30) + continue; if (var_f31 < var_f30) { var_r29 = 0; - } else { + } + else { for (var_r27 = 0; var_r27 < var_r29; var_r27++) { - if ((sp27C[var_r27].unk4 == var_r30) && (sp27C[var_r27].unk8 == var_r31)) break; + if ((sp27C[var_r27].unk4 == var_r30) && (sp27C[var_r27].unk8 == var_r31)) + break; } - if (var_r27 < var_r29) continue; + if (var_r27 < var_r29) + continue; } sp27C[var_r29].unk0 = 3; sp27C[var_r29].unk4 = var_r31; @@ -926,7 +959,8 @@ void fn_1_5018(void) { } } } - if (var_r29 == 0) break; + if (var_r29 == 0) + break; var_r31 = lbl_1_bss_60; for (var_r28 = 0; var_r28 < lbl_1_bss_58; var_r28++, var_r31++) { var_r31->unk60.x += var_r31->unk6C.x * var_f30; @@ -947,11 +981,11 @@ void fn_1_5018(void) { var_r31 = sp27C[var_r28].unk4; sp240 = var_r31->unk60; sp240.y = 0.0f; - PSVECNormalize(&sp240, &sp228); + VECNormalize(&sp240, &sp228); sp228.x = -sp228.x; sp228.y = 0.0f; sp228.z = -sp228.z; - temp_f28 = PSVECMag(&sp240); + temp_f28 = VECMag(&sp240); temp_f28 -= 600.0f; var_r31->unk60.x += temp_f28 * sp228.x; var_r31->unk60.z += temp_f28 * sp228.z; @@ -960,8 +994,9 @@ void fn_1_5018(void) { if (var_r31->unk4 == 1) { fn_1_7CA0(var_r31->unk84, sp228, 0.8f, &sp24C); var_r31->unk84 = sp24C; - PSVECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); - } else { + VECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + } + else { fn_1_7CA0(var_r31->unk6C, sp228, 0.8f, &sp24C); var_r31->unk6C = sp24C; var_r31->unk84 = var_r31->unk6C; @@ -971,8 +1006,8 @@ void fn_1_5018(void) { var_r31 = sp27C[var_r28].unk4; sp240 = var_r31->unk60; sp240.y = 0.0f; - PSVECNormalize(&sp240, &sp228); - temp_f28 = PSVECMag(&sp240); + VECNormalize(&sp240, &sp228); + temp_f28 = VECMag(&sp240); temp_f28 = 350.0f; var_r31->unk60.x = temp_f28 * sp228.x; var_r31->unk60.z = temp_f28 * sp228.z; @@ -981,8 +1016,9 @@ void fn_1_5018(void) { if (var_r31->unk4 == 1) { fn_1_7CA0(var_r31->unk84, sp228, 0.8f, &sp24C); var_r31->unk84 = sp24C; - PSVECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); - } else { + VECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + } + else { fn_1_7CA0(var_r31->unk6C, sp228, 0.8f, &sp24C); var_r31->unk6C = sp24C; var_r31->unk84 = var_r31->unk6C; @@ -995,22 +1031,25 @@ void fn_1_5018(void) { fn_1_79FC(&var_r30->unk3C, &var_r30->unk6C, 100.0f, &var_r31->unk3C, &var_r31->unk6C, 100.0f, 0.8f); var_r31->unk84 = var_r31->unk6C; var_r30->unk84 = var_r30->unk6C; - } else if (var_r30->unk4 == 3) { + } + else if (var_r30->unk4 == 3) { fn_1_79FC(&var_r31->unk3C, &var_r31->unk6C, 100.0f, &var_r30->unk3C, &var_r30->unk6C, 100.0f, 0.8f); var_r31->unk84 = var_r31->unk6C; var_r30->unk84 = var_r30->unk6C; - } else if ((var_r31->unk4 == 1) && (var_r30->unk4 == 1)) { + } + else if ((var_r31->unk4 == 1) && (var_r30->unk4 == 1)) { fn_1_77C4(var_r31->unk60, var_r31->unk84, var_r30->unk60, 0.8f, &sp24C, &sp258); fn_1_77C4(var_r30->unk60, var_r30->unk84, var_r31->unk60, 0.8f, &sp270, &sp264); - PSVECAdd(&sp24C, &sp264, &var_r31->unk84); - PSVECAdd(&sp258, &sp270, &var_r30->unk84); - PSVECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); - PSVECAdd(&var_r30->unk84, &var_r30->unk78, &var_r30->unk6C); - } else { + VECAdd(&sp24C, &sp264, &var_r31->unk84); + VECAdd(&sp258, &sp270, &var_r30->unk84); + VECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + VECAdd(&var_r30->unk84, &var_r30->unk78, &var_r30->unk6C); + } + else { fn_1_77C4(var_r31->unk60, var_r31->unk6C, var_r30->unk60, 0.8f, &sp24C, &sp258); fn_1_77C4(var_r30->unk60, var_r30->unk6C, var_r31->unk60, 0.8f, &sp270, &sp264); - PSVECAdd(&sp24C, &sp264, &var_r31->unk6C); - PSVECAdd(&sp258, &sp270, &var_r30->unk6C); + VECAdd(&sp24C, &sp264, &var_r31->unk6C); + VECAdd(&sp258, &sp270, &var_r30->unk6C); var_r31->unk84 = var_r31->unk6C; var_r30->unk84 = var_r30->unk6C; } @@ -1026,19 +1065,22 @@ void fn_1_5018(void) { } } -void fn_1_6038(void) { +void fn_1_6038(void) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { lbl_1_bss_5BC[var_r31] = 0; } } -void* fn_1_6078(s32 arg0) { +void *fn_1_6078(s32 arg0) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { - if (lbl_1_bss_5BC[var_r31] == 0) break; + if (lbl_1_bss_5BC[var_r31] == 0) + break; } if (var_r31 == 0x20) { return NULL; @@ -1047,11 +1089,13 @@ void* fn_1_6078(s32 arg0) { return lbl_1_bss_5BC[var_r31]; } -void fn_1_6118(void* arg0) { +void fn_1_6118(void *arg0) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { - if (lbl_1_bss_5BC[var_r31] == arg0) break; + if (lbl_1_bss_5BC[var_r31] == arg0) + break; } if (var_r31 != 0x20) { HuMemDirectFree(lbl_1_bss_5BC[var_r31]); @@ -1059,9 +1103,10 @@ void fn_1_6118(void* arg0) { } } -void fn_1_61AC(void) { +void fn_1_61AC(void) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { if (lbl_1_bss_5BC[var_r31]) { HuMemDirectFree(lbl_1_bss_5BC[var_r31]); @@ -1070,22 +1115,25 @@ void fn_1_61AC(void) { } } -void fn_1_6230(s16 arg0, Mtx arg1) { - ModelData* var_r31; +void fn_1_6230(s16 arg0, Mtx arg1) +{ + ModelData *var_r31; var_r31 = &Hu3DData[arg0]; - PSMTXCopy(arg1, var_r31->unk_F0); + MTXCopy(arg1, var_r31->unk_F0); } u32 lbl_1_data_1D8 = 0x41C64E6D; -s32 fn_1_627C(void) { +s32 fn_1_627C(void) +{ lbl_1_data_1D8 *= 0x41C64E6D; lbl_1_data_1D8 += 0x3039; return lbl_1_data_1D8 >> 0x10; } -void fn_1_62D0(s32 arg0, u32* arg1) { +void fn_1_62D0(s32 arg0, u32 *arg1) +{ s32 var_r31; s32 temp_r30; u32 temp_r29; @@ -1093,7 +1141,7 @@ void fn_1_62D0(s32 arg0, u32* arg1) { for (var_r31 = 0; var_r31 < arg0; var_r31++) { arg1[var_r31] = var_r31; } - + for (var_r31 = 0; var_r31 < arg0 - 1; var_r31++) { temp_r30 = (arg0 * (fn_1_627C() / 65536.0f)); temp_r29 = arg1[var_r31]; @@ -1102,19 +1150,22 @@ void fn_1_62D0(s32 arg0, u32* arg1) { } } -f32 fn_1_640C(f32 arg0, f32 arg1, f32 arg2) { +f32 fn_1_640C(f32 arg0, f32 arg1, f32 arg2) +{ f32 var_f31; if (arg0 > 180.0f) { arg0 -= 360.0f; - } else { + } + else { if (arg0 <= -180.0f) { arg0 += 360.0f; } } if (arg1 > 180.0f) { arg1 -= 360.0f; - } else { + } + else { if (arg1 <= -180.0f) { arg1 += 360.0f; } @@ -1122,7 +1173,8 @@ f32 fn_1_640C(f32 arg0, f32 arg1, f32 arg2) { var_f31 = arg0 - arg1; if (var_f31 > 180.0f) { var_f31 -= 360.0f; - } else { + } + else { if (var_f31 <= -180.0f) { var_f31 += 360.0f; } @@ -1137,26 +1189,29 @@ f32 fn_1_640C(f32 arg0, f32 arg1, f32 arg2) { return arg0; } -void fn_1_6574(Mtx arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_6574(Mtx arg0, f32 arg8, f32 arg9, f32 argA) +{ Mtx sp38; Mtx sp8; - + if (argA != 0.0f) { - PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); - } else { - PSMTXIdentity(arg0); + MTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + } + else { + MTXIdentity(arg0); } if (arg8 != 0.0f) { - PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); - PSMTXConcat(sp38, arg0, arg0); + MTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + MTXConcat(sp38, arg0, arg0); } if (arg9 != 0.0f) { - PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); - PSMTXConcat(sp8, arg0, arg0); + MTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + MTXConcat(sp8, arg0, arg0); } } -void fn_1_6694(M424BallStruct4* arg0, Vec* arg1) { +void fn_1_6694(M424BallStruct4 *arg0, Vec *arg1) +{ f32 temp_f29; f32 var_f28; @@ -1181,7 +1236,8 @@ void fn_1_6694(M424BallStruct4* arg0, Vec* arg1) { } } -void fn_1_6A30(M424BallStruct4* arg0, Vec* arg1) { +void fn_1_6A30(M424BallStruct4 *arg0, Vec *arg1) +{ f32 temp_f29; f32 var_f27; @@ -1201,7 +1257,8 @@ void fn_1_6A30(M424BallStruct4* arg0, Vec* arg1) { } } -f32 fn_1_6D10(Vec arg0, Vec arg1, f32 arg2, Vec arg3, Vec arg4, f32 arg5) { +f32 fn_1_6D10(Vec arg0, Vec arg1, f32 arg2, Vec arg3, Vec arg4, f32 arg5) +{ f32 temp_f30; f32 temp_f29; f32 temp_f28; @@ -1210,10 +1267,10 @@ f32 fn_1_6D10(Vec arg0, Vec arg1, f32 arg2, Vec arg3, Vec arg4, f32 arg5) { f32 temp_f25; f32 var_f23; - PSVECSubtract(&arg3, &arg0, &arg3); - PSVECSubtract(&arg4, &arg1, &arg4); + VECSubtract(&arg3, &arg0, &arg3); + VECSubtract(&arg4, &arg1, &arg4); temp_f29 = arg2 + arg5; - if (PSVECMag(&arg3) > temp_f29 + PSVECMag(&arg4)) { + if (VECMag(&arg3) > temp_f29 + VECMag(&arg4)) { return -1.0f; } temp_f29 *= temp_f29; @@ -1236,7 +1293,8 @@ f32 fn_1_6D10(Vec arg0, Vec arg1, f32 arg2, Vec arg3, Vec arg4, f32 arg5) { return temp_f28; } -f32 fn_1_709C(Vec arg0, Vec arg1, f32 arg2, f32 arg3) { +f32 fn_1_709C(Vec arg0, Vec arg1, f32 arg2, f32 arg3) +{ Vec sp20; Vec sp14; f32 temp_f30; @@ -1252,7 +1310,7 @@ f32 fn_1_709C(Vec arg0, Vec arg1, f32 arg2, f32 arg3) { sp14 = arg1; sp14.y = 0.0f; temp_f29 = arg3 + arg2; - if (PSVECMag(&sp20) > temp_f29 + PSVECMag(&sp14)) { + if (VECMag(&sp20) > temp_f29 + VECMag(&sp14)) { return -1.0f; } temp_f29 *= temp_f29; @@ -1275,7 +1333,8 @@ f32 fn_1_709C(Vec arg0, Vec arg1, f32 arg2, f32 arg3) { return temp_f28; } -f32 fn_1_7420(Vec arg0, Vec arg1, f32 arg2, f32 arg3) { +f32 fn_1_7420(Vec arg0, Vec arg1, f32 arg2, f32 arg3) +{ Vec sp20; Vec sp14; f32 temp_f30; @@ -1285,16 +1344,16 @@ f32 fn_1_7420(Vec arg0, Vec arg1, f32 arg2, f32 arg3) { f32 temp_f26; f32 temp_f25; f32 var_f23; - + sp20 = arg0; sp20.y = 0.0f; sp14 = arg1; sp14.y = 0.0f; temp_f29 = arg3 - arg2; - if (PSVECMag(&sp20) > temp_f29) { + if (VECMag(&sp20) > temp_f29) { return 0.0f; } - if (PSVECMag(&sp20) > temp_f29 + PSVECMag(&sp14)) { + if (VECMag(&sp20) > temp_f29 + VECMag(&sp14)) { return -1.0f; } temp_f29 *= temp_f29; @@ -1317,7 +1376,8 @@ f32 fn_1_7420(Vec arg0, Vec arg1, f32 arg2, f32 arg3) { return temp_f28; } -void fn_1_77C4(Vec arg0, Vec arg1, Vec arg2, f32 arg3, Vec* arg4, Vec* arg5) { +void fn_1_77C4(Vec arg0, Vec arg1, Vec arg2, f32 arg3, Vec *arg4, Vec *arg5) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -1328,17 +1388,17 @@ void fn_1_77C4(Vec arg0, Vec arg1, Vec arg2, f32 arg3, Vec* arg4, Vec* arg5) { f32 var_f28; sp38 = arg1; - var_f31 = PSVECMag(&sp38); + var_f31 = VECMag(&sp38); if (var_f31 < 0.01f) { arg4->x = arg4->y = arg4->z = 0.0f; arg5->x = arg5->y = arg5->z = 0.0f; return; } - PSVECNormalize(&sp38, &sp38); + VECNormalize(&sp38, &sp38); var_f31 = var_f31 * arg3; - PSVECSubtract(&arg2, &arg0, &sp2C); - PSVECNormalize(&sp2C, &sp2C); - var_f28 = PSVECDotProduct(&sp38, &sp2C); + VECSubtract(&arg2, &arg0, &sp2C); + VECNormalize(&sp2C, &sp2C); + var_f28 = VECDotProduct(&sp38, &sp2C); if (var_f28 < 0.0f) { arg4->x = arg1.x; arg4->y = arg1.y; @@ -1350,11 +1410,12 @@ void fn_1_77C4(Vec arg0, Vec arg1, Vec arg2, f32 arg3, Vec* arg4, Vec* arg5) { temp_f30 = var_f31 - temp_f29; if (temp_f30 < 0.01f) { arg4->x = arg4->y = arg4->z = 0.0f; - } else { - PSVECCrossProduct(&sp38, &sp2C, &sp14); - PSVECNormalize(&sp14, &sp14); - PSVECCrossProduct(&sp2C, &sp14, &sp20); - PSVECNormalize(&sp20, &sp20); + } + else { + VECCrossProduct(&sp38, &sp2C, &sp14); + VECNormalize(&sp14, &sp14); + VECCrossProduct(&sp2C, &sp14, &sp20); + VECNormalize(&sp20, &sp20); arg4->x = sp20.x * temp_f30; arg4->y = sp20.y * temp_f30; arg4->z = sp20.z * temp_f30; @@ -1364,7 +1425,8 @@ void fn_1_77C4(Vec arg0, Vec arg1, Vec arg2, f32 arg3, Vec* arg4, Vec* arg5) { arg5->z = sp2C.z * temp_f29; } -void fn_1_79FC(Vec* arg0, Vec* arg1, f32 arg2, Vec* arg3, Vec* arg4, f32 arg5, f32 arg6) { +void fn_1_79FC(Vec *arg0, Vec *arg1, f32 arg2, Vec *arg3, Vec *arg4, f32 arg5, f32 arg6) +{ Vec sp38; Vec sp2C; f32 temp_f31; @@ -1374,28 +1436,30 @@ void fn_1_79FC(Vec* arg0, Vec* arg1, f32 arg2, Vec* arg3, Vec* arg4, f32 arg5, f arg1->x *= arg6; arg1->y *= arg6; arg1->z *= arg6; - PSVECSubtract(arg0, arg3, &sp38); - PSVECNormalize(&sp38, &sp2C); - temp_f31 = (arg2 + arg5) - PSVECMag(&sp38); + VECSubtract(arg0, arg3, &sp38); + VECNormalize(&sp38, &sp2C); + temp_f31 = (arg2 + arg5) - VECMag(&sp38); if (temp_f31 > 0.01f) { - PSVECSubtract(arg1, arg4, &sp38); - if (PSVECMag(&sp38) < 0.01f) { + VECSubtract(arg1, arg4, &sp38); + if (VECMag(&sp38) < 0.01f) { arg0->x += sp2C.x * temp_f31; arg0->y += sp2C.y * temp_f31; arg0->z += sp2C.z * temp_f31; - } else { - PSVECNormalize(&sp38, &sp38); + } + else { + VECNormalize(&sp38, &sp38); arg0->x -= sp38.x * temp_f31; arg0->y -= sp38.y * temp_f31; arg0->z -= sp38.z * temp_f31; } } fn_1_7CA0(*arg1, sp2C, 1.0f, arg1); - PSVECSubtract(arg4, arg1, &sp38); - var_f30 = PSVECMag(&sp38); - if (var_f30 < 0.01f) return; - PSVECNormalize(&sp38, &sp38); - var_f29 = PSVECDotProduct(&sp2C, &sp38); + VECSubtract(arg4, arg1, &sp38); + var_f30 = VECMag(&sp38); + if (var_f30 < 0.01f) + return; + VECNormalize(&sp38, &sp38); + var_f29 = VECDotProduct(&sp2C, &sp38); if (var_f29 > 0.0f) { arg1->x += var_f30 * (sp2C.x * var_f29); arg1->y += var_f30 * (sp2C.y * var_f29); @@ -1403,14 +1467,15 @@ void fn_1_79FC(Vec* arg0, Vec* arg1, f32 arg2, Vec* arg3, Vec* arg4, f32 arg5, f } } -void fn_1_7CA0(Vec arg0, Vec arg1, f32 arg2, Point3d* arg3) { +void fn_1_7CA0(Vec arg0, Vec arg1, f32 arg2, Point3d *arg3) +{ f32 var_f31; *arg3 = arg0; arg3->x *= arg2; arg3->y *= arg2; arg3->z *= arg2; - var_f31 = PSVECDotProduct(&arg1, arg3); + var_f31 = VECDotProduct(&arg1, arg3); if (var_f31 < 0.0f) { arg3->x -= 2.0f * arg1.x * var_f31; arg3->y -= 2.0f * arg1.y * var_f31; @@ -1418,7 +1483,8 @@ void fn_1_7CA0(Vec arg0, Vec arg1, f32 arg2, Point3d* arg3) { } } -f32 fn_1_7DD0(Vec* arg0) { +f32 fn_1_7DD0(Vec *arg0) +{ f32 temp_f30; f32 temp_f29; @@ -1429,24 +1495,28 @@ f32 fn_1_7DD0(Vec* arg0) { arg0->x *= temp_f29; arg0->y *= temp_f29; arg0->z *= temp_f29; - } else { + } + else { arg0->x = arg0->y = arg0->z = 0.0f; } return temp_f30; } -f32 fn_1_7F68(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) { +f32 fn_1_7F68(Vec arg0, Vec arg1, Vec *arg2, f32 arg8) +{ if (arg8 <= 0.0f) { arg2->x = arg0.x; arg2->y = arg0.y; arg2->z = arg0.z; arg8 = 0.0f; - } else if (arg8 >= 1.0f) { + } + else if (arg8 >= 1.0f) { arg2->x = (arg0.x + arg1.x); arg2->y = (arg0.y + arg1.y); arg2->z = (arg0.z + arg1.z); arg8 = 1.0f; - } else { + } + else { arg2->x = (arg0.x + (arg8 * arg1.x)); arg2->y = (arg0.y + (arg8 * arg1.y)); arg2->z = (arg0.z + (arg8 * arg1.z)); @@ -1454,7 +1524,8 @@ f32 fn_1_7F68(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) { return arg8; } -f32 fn_1_8040(Vec arg0, Vec arg1, Vec arg2) { +f32 fn_1_8040(Vec arg0, Vec arg1, Vec arg2) +{ f32 temp_f30; f32 var_f31; @@ -1466,23 +1537,27 @@ f32 fn_1_8040(Vec arg0, Vec arg1, Vec arg2) { return var_f31; } -f32 fn_1_80FC(Vec* arg0, Vec* arg1, Vec* arg2) { +f32 fn_1_80FC(Vec *arg0, Vec *arg1, Vec *arg2) +{ Vec sp44; f32 var_f30; if (0.0f == (arg2->x * arg2->x) + (arg2->y * arg2->y) + (arg2->z * arg2->z)) { - return ((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y)) + ((arg0->z - arg1->z) * (arg0->z - arg1->z)); + return ((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y)) + + ((arg0->z - arg1->z) * (arg0->z - arg1->z)); } var_f30 = fn_1_8040(*arg0, *arg1, *arg2); fn_1_7F68(*arg1, *arg2, &sp44, var_f30); return ((arg0->x - sp44.x) * (arg0->x - sp44.x)) + ((arg0->y - sp44.y) * (arg0->y - sp44.y)) + ((arg0->z - sp44.z) * (arg0->z - sp44.z)); } -f32 fn_1_8438(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { +f32 fn_1_8438(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ f32 var_f27; if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { - return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); } var_f27 = fn_1_8040(*arg0, *arg1, *arg2); fn_1_7F68(*arg1, *arg2, arg3, var_f27); @@ -1492,8 +1567,9 @@ f32 fn_1_8438(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { return fn_1_7DD0(arg4); } -void fn_1_88E8(u8 arg0, f32 arg8, f32 arg9, f32 argA) { - M424DllBallStruct2* temp_r31; +void fn_1_88E8(u8 arg0, f32 arg8, f32 arg9, f32 argA) +{ + M424DllBallStruct2 *temp_r31; temp_r31 = &lbl_1_bss_60[arg0]; temp_r31->unk4 = 3; @@ -1502,51 +1578,58 @@ void fn_1_88E8(u8 arg0, f32 arg8, f32 arg9, f32 argA) { temp_r31->unk3C.z = argA; } -void fn_1_8924(u8 arg0, u8 arg1) { - M424DllBallStruct2* temp_r31; +void fn_1_8924(u8 arg0, u8 arg1) +{ + M424DllBallStruct2 *temp_r31; temp_r31 = &lbl_1_bss_60[arg0]; temp_r31->unk4 = arg1; } -u8 fn_1_8950(u8 arg0) { - M424DllBallStruct2* temp_r31; +u8 fn_1_8950(u8 arg0) +{ + M424DllBallStruct2 *temp_r31; temp_r31 = &lbl_1_bss_60[arg0]; return temp_r31->unk4; } -u8 fn_1_897C(u8 arg0) { - M424DllBallStruct2* temp_r31; +u8 fn_1_897C(u8 arg0) +{ + M424DllBallStruct2 *temp_r31; temp_r31 = &lbl_1_bss_60[arg0]; return temp_r31->unk5; } -u8 fn_1_89A8(u8 arg0) { - M424DllBallStruct2* temp_r31; +u8 fn_1_89A8(u8 arg0) +{ + M424DllBallStruct2 *temp_r31; temp_r31 = &lbl_1_bss_60[arg0]; return temp_r31->unk91; } -Vec* fn_1_89D4(u8 arg0) { - M424DllBallStruct2* temp_r31; +Vec *fn_1_89D4(u8 arg0) +{ + M424DllBallStruct2 *temp_r31; temp_r31 = &lbl_1_bss_60[arg0]; return &temp_r31->unk3C; } -Vec* fn_1_8A00(u8 arg0) { - M424DllBallStruct2* temp_r31; +Vec *fn_1_8A00(u8 arg0) +{ + M424DllBallStruct2 *temp_r31; temp_r31 = &lbl_1_bss_60[arg0]; return &temp_r31->unk6C; } -s32 fn_1_8A2C(void) { - M424DllBallStruct2* var_r31; - M424DllBallStruct* temp_r30; +s32 fn_1_8A2C(void) +{ + M424DllBallStruct2 *var_r31; + M424DllBallStruct *temp_r30; s32 var_r29; var_r31 = lbl_1_bss_60; @@ -1559,9 +1642,10 @@ s32 fn_1_8A2C(void) { return 1; } -void fn_1_8AA8(s32 arg0, s32 arg1) { +void fn_1_8AA8(s32 arg0, s32 arg1) +{ Vec spC; - M424DllBallStruct2* temp_r31; + M424DllBallStruct2 *temp_r31; s32 var_r27; s32 var_r29; s32 var_r30; @@ -1570,7 +1654,7 @@ void fn_1_8AA8(s32 arg0, s32 arg1) { for (var_r30 = 0; var_r30 < lbl_1_bss_58; var_r30++) { temp_r31 = &lbl_1_bss_60[var_r30]; if (temp_r31->unk4 != 6) { - PSVECAdd(&temp_r31->unk60, &temp_r31->unk6C, &temp_r31->unk3C); + VECAdd(&temp_r31->unk60, &temp_r31->unk6C, &temp_r31->unk3C); if ((temp_r31->unk4 < 3) && (fn_1_907C(&temp_r31->unk3C, &spC) != 0)) { temp_r31->unk3C = spC; } @@ -1583,7 +1667,7 @@ void fn_1_8AA8(s32 arg0, s32 arg1) { } } } - + for (var_r30 = 0, var_r29 = arg0; var_r30 < lbl_1_bss_58; var_r30++) { temp_r31 = &lbl_1_bss_60[var_r30]; var_r27 = 0; @@ -1594,7 +1678,8 @@ void fn_1_8AA8(s32 arg0, s32 arg1) { if ((var_r27 != 0) && (var_r29 > 0)) { var_r29 -= 1; var_r30 -= 1; - } else { + } + else { var_r29 = arg0; } } @@ -1602,27 +1687,28 @@ void fn_1_8AA8(s32 arg0, s32 arg1) { fn_1_C2E0(0); } -s32 fn_1_8C78(s32 arg0, s32 arg1) { +s32 fn_1_8C78(s32 arg0, s32 arg1) +{ Vec sp38; Vec sp2C; Vec sp20; Vec sp14; - Vec* sp10; + Vec *sp10; f32 temp_f31; f32 var_f30; s32 var_r31; - M424DllBallStruct2* temp_r30; - M424DllBallStruct2* temp_r29; - Vec* var_r28; - Vec* var_r27; - M424DllBallStruct* temp_r26; - M424DllBallStruct* temp_r25; + M424DllBallStruct2 *temp_r30; + M424DllBallStruct2 *temp_r29; + Vec *var_r28; + Vec *var_r27; + M424DllBallStruct *temp_r26; + M424DllBallStruct *temp_r25; temp_r30 = &lbl_1_bss_60[arg0]; temp_r26 = temp_r30->unk0->data; var_r28 = fn_1_89D4(arg0); sp38 = *var_r28; - + for (var_r31 = 0; var_r31 < lbl_1_bss_58; var_r31++) { if (var_r31 != arg0) { if (fn_1_8950(var_r31) < 3) { @@ -1630,23 +1716,24 @@ s32 fn_1_8C78(s32 arg0, s32 arg1) { temp_r25 = temp_r29->unk0->data; var_r27 = fn_1_89D4(var_r31); sp2C = *var_r27; - PSVECSubtract(&sp2C, &sp38, &sp20); - var_f30 = PSVECMag(&sp20); + VECSubtract(&sp2C, &sp38, &sp20); + var_f30 = VECMag(&sp20); if (var_f30 < 200.0f) { if (var_f30 > 0.0f) { temp_f31 = 1.0f / var_f30; sp20.x *= temp_f31; sp20.y *= temp_f31; sp20.z *= temp_f31; - } else { + } + else { sp20.x = 0.0f; sp20.y = 0.0f; sp20.z = 1.0f; } temp_f31 = 1.0f + (0.5f * (200.0f - var_f30)); if (temp_f31 > 0.0f) { - PSVECScale(&sp20, &sp20, temp_f31); - PSVECAdd(&sp2C, &sp20, &sp2C); + VECScale(&sp20, &sp20, temp_f31); + VECAdd(&sp2C, &sp20, &sp2C); *var_r27 = sp2C; if ((temp_r29->unk4 < 3) && (fn_1_907C(&sp2C, &sp14) != 0)) { sp2C = sp14; @@ -1657,8 +1744,8 @@ s32 fn_1_8C78(s32 arg0, s32 arg1) { } } if (temp_f31 > 0.0f) { - PSVECScale(&sp20, &sp20, -1.0f); - PSVECAdd(&sp38, &sp20, &sp38); + VECScale(&sp20, &sp20, -1.0f); + VECAdd(&sp38, &sp20, &sp38); *var_r28 = sp38; if ((temp_r30->unk4 < 3) && (fn_1_907C(&sp38, &sp14) != 0)) { sp38 = sp14; @@ -1679,7 +1766,8 @@ s32 fn_1_8C78(s32 arg0, s32 arg1) { return arg1; } -s32 fn_1_907C(Vec* arg0, Vec* arg1) { +s32 fn_1_907C(Vec *arg0, Vec *arg1) +{ Vec sp10; f32 temp_f29; f32 temp_f28; @@ -1695,7 +1783,8 @@ s32 fn_1_907C(Vec* arg0, Vec* arg1) { temp_f26 = 1.0f / var_f27; sp10.x *= temp_f26; sp10.z *= temp_f26; - } else { + } + else { sp10.x = 1.0f; sp10.z = 0.0f; } diff --git a/src/REL/m424Dll/claw.c b/src/REL/m424Dll/claw.c index bae108e8..b6061580 100644 --- a/src/REL/m424Dll/claw.c +++ b/src/REL/m424Dll/claw.c @@ -608,13 +608,13 @@ void fn_1_9A64(omObjData *arg0) fn_1_C878(arg0->model[1], "hook1", sp74, 0); fn_1_C878(arg0->model[2], "hook2", sp74, 1); fn_1_C878(arg0->model[3], "hook3", sp74, 1); - PSMTXCopy(sp74, sp44); + MTXCopy(sp74, sp44); temp_r31->unk30.x = sp74[0][3]; temp_r31->unk30.y = sp74[1][3]; temp_r31->unk30.z = sp74[2][3]; for (var_r29 = 0; var_r29 < 0xC; var_r29++) { - PSMTXCopy(sp44, sp74); + MTXCopy(sp44, sp74); fn_1_C878(arg0->model[4], lbl_1_data_21C[var_r29], sp74, 1); temp_r31->unkCC[var_r29] = temp_r31->unk3C[var_r29]; temp_r31->unk3C[var_r29].x = sp74[0][3]; @@ -625,14 +625,14 @@ void fn_1_9A64(omObjData *arg0) sp2C.x = 0.0f; sp2C.y = temp_r31->unk174.y; sp2C.z = 0.0f; - PSVECSubtract(&temp_r31->unk174, &sp2C, &sp20); - var_f31 = PSVECMag(&sp20); + VECSubtract(&temp_r31->unk174, &sp2C, &sp20); + var_f31 = VECMag(&sp20); if (var_f31 != 0.0f) { - PSVECNormalize(&sp20, &sp20); - PSVECScale(&sp20, &sp20, 0.9f * var_f31); - PSVECAdd(&sp2C, &sp20, &temp_r31->unk174); + VECNormalize(&sp20, &sp20); + VECScale(&sp20, &sp20, 0.9f * var_f31); + VECAdd(&sp2C, &sp20, &temp_r31->unk174); } - PSVECAdd(&temp_r31->unk30, &temp_r31->unk174, &sp38); + VECAdd(&temp_r31->unk30, &temp_r31->unk174, &sp38); fn_1_88E8(temp_r31->unk168, sp38.x, sp38.y, sp38.z); } temp_r31->unk164 = 1; @@ -911,7 +911,7 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3) var_r28 = 0; var_r24 = lbl_1_bss_6D8; temp_r31 = var_r24->data; - PSVECAdd(arg0, arg1, &sp24); + VECAdd(arg0, arg1, &sp24); spC = *arg1; *arg2 = *arg0; temp_f30 = 5.0f + arg8; @@ -923,10 +923,10 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3) for (var_r29 = 0; var_r29 < 0xC; var_r29++) { if (var_r28 != 0) { sp24 = *arg2; - PSVECSubtract(&sp24, arg0, &spC); + VECSubtract(&sp24, arg0, &spC); } - PSVECSubtract(&sp24, &temp_r31->unk3C[var_r29], &sp18); - var_f29 = PSVECMag(&sp18); + VECSubtract(&sp24, &temp_r31->unk3C[var_r29], &sp18); + var_f29 = VECMag(&sp18); if (var_f29 < temp_f30) { if (0.0f == var_f29) { var_f29 = temp_f30; @@ -939,9 +939,9 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3) temp_r31->unk15C = 1; } else { - PSVECNormalize(&sp18, &sp18); - PSVECScale(&sp18, &sp18, temp_f30); - PSVECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); + VECNormalize(&sp18, &sp18); + VECScale(&sp18, &sp18, temp_f30); + VECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); } var_r28 = 1; } @@ -951,43 +951,43 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3) for (var_r29 = 0; var_r29 < 0xC; var_r29++) { if (var_r28 != 0) { sp24 = *arg2; - PSVECSubtract(&sp24, arg0, &spC); + VECSubtract(&sp24, arg0, &spC); } var_r26 = 0; sp60 = temp_r31->unk3C[var_r29]; - PSVECAdd(&temp_r31->unkCC[var_r29], &spC, &sp54); - PSVECSubtract(&sp60, &sp54, &sp18); - PSVECSubtract(&sp24, &sp54, &sp48); + VECAdd(&temp_r31->unkCC[var_r29], &spC, &sp54); + VECSubtract(&sp60, &sp54, &sp18); + VECSubtract(&sp24, &sp54, &sp48); temp_f26 = (sp18.z * sp18.z) + ((sp18.x * sp18.x) + (sp18.y * sp18.y)); if (temp_f26 != 0.0f) { var_f24 = (sp18.x * sp48.x) + (sp18.y * sp48.y) + (sp18.z * sp48.z); temp_f27 = var_f24 / temp_f26; if (temp_f27 >= 0.0f) { if (temp_f27 <= 1.0f) { - PSVECScale(&sp18, &sp18, temp_f27); - PSVECAdd(&sp54, &sp18, &sp3C); - PSVECSubtract(&sp24, &sp3C, &sp30); - var_f29 = PSVECMag(&sp30); + VECScale(&sp18, &sp18, temp_f27); + VECAdd(&sp54, &sp18, &sp3C); + VECSubtract(&sp24, &sp3C, &sp30); + var_f29 = VECMag(&sp30); if (var_f29 == 0.0f) { - if (PSVECMag(&sp18) <= 0.0f) { + if (VECMag(&sp18) <= 0.0f) { sp18.x = sp18.y = 0.0f; sp18.z = 1.0f; } - PSVECNormalize(&sp18, &sp30); - PSVECScale(&sp30, &sp30, temp_f30); - PSVECAdd(&sp60, &sp30, arg2); + VECNormalize(&sp18, &sp30); + VECScale(&sp30, &sp30, temp_f30); + VECAdd(&sp60, &sp30, arg2); var_r28 = 1; var_r26 = 1; } else if (var_f29 < temp_f30) { - if (PSVECMag(&sp30) <= 0.0f) { + if (VECMag(&sp30) <= 0.0f) { sp30.x = sp30.y = 0.0f; sp30.z = 1.0f; } - PSVECNormalize(&sp30, &sp30); - PSVECScale(&sp30, &sp30, temp_f30); - PSVECAdd(&sp3C, &sp30, arg2); + VECNormalize(&sp30, &sp30); + VECScale(&sp30, &sp30, temp_f30); + VECAdd(&sp3C, &sp30, arg2); var_r28 = 1; var_r26 = 1; } @@ -995,31 +995,31 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3) } } if (var_r26 == 0) { - PSVECSubtract(&sp24, &sp60, &sp18); - var_f29 = PSVECMag(&sp18); + VECSubtract(&sp24, &sp60, &sp18); + var_f29 = VECMag(&sp18); if (var_f29 < temp_f30) { if (var_f29 <= 0.0f) { sp18.x = sp18.y = 0.0f; sp18.z = 1.0f; } - PSVECNormalize(&sp18, &sp18); - PSVECScale(&sp18, &sp18, temp_f30); - PSVECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); + VECNormalize(&sp18, &sp18); + VECScale(&sp18, &sp18, temp_f30); + VECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); var_r28 = 1; var_r26 = 1; } } if (var_r26 == 0) { - PSVECSubtract(&sp24, &sp54, &sp18); - var_f29 = PSVECMag(&sp18); + VECSubtract(&sp24, &sp54, &sp18); + var_f29 = VECMag(&sp18); if (var_f29 < temp_f30) { if (var_f29 <= 0.0f) { sp18.x = sp18.y = 0.0f; sp18.z = 1.0f; } - PSVECNormalize(&sp18, &sp18); - PSVECScale(&sp18, &sp18, temp_f30); - PSVECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); + VECNormalize(&sp18, &sp18); + VECScale(&sp18, &sp18, temp_f30); + VECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); var_r28 = 1; var_r26 = 1; } @@ -1045,7 +1045,7 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3) if (var_r28 != 0) { if (--arg3 > 0) { sp24 = *arg2; - PSVECSubtract(&sp24, arg0, &spC); + VECSubtract(&sp24, arg0, &spC); if (fn_1_B9E0(arg0, &spC, arg8, &sp24, arg3) != 0) { *arg2 = sp24; } @@ -1077,8 +1077,8 @@ s32 fn_1_C210(Vec *arg0) sp1C.x = temp_r31->unk30.x; sp1C.y = -120.00001f + temp_r31->unk30.y; sp1C.z = temp_r31->unk30.z; - PSVECSubtract(arg0, &sp1C, &sp10); - if ((spC = PSVECMag(&sp10)) < 50.0f) { + VECSubtract(arg0, &sp1C, &sp10); + if ((spC = VECMag(&sp10)) < 50.0f) { var_r29 = 1; } } @@ -1118,7 +1118,7 @@ void fn_1_C2E0(s32 arg0) spC = fn_1_8A00(var_r30); sp28 = *temp_r28; sp4C = temp_r27->unk60; - PSVECSubtract(temp_r28, &sp4C, &sp40); + VECSubtract(temp_r28, &sp4C, &sp40); if (fn_1_B9E0(&sp4C, &sp40, 100.0f, &sp34, 0x10) != 0) { *temp_r28 = sp34; sp4C = sp34; @@ -1141,7 +1141,7 @@ void fn_1_C2E0(s32 arg0) if (fn_1_C210(&sp4C) != 0) { temp_r31->unk168 = var_r30; temp_r31->unk170 = fn_1_897C(var_r30); - PSVECSubtract(&sp4C, &temp_r31->unk30, &temp_r31->unk174); + VECSubtract(&sp4C, &temp_r31->unk30, &temp_r31->unk174); fn_1_88E8(temp_r31->unk168, sp4C.x, sp4C.y, sp4C.z); } } @@ -1174,8 +1174,8 @@ void fn_1_C604(s32 arg0, s32 arg1) var_r28 = &lbl_1_bss_60[var_r30]; var_r31 = fn_1_89D4(var_r30); sp24 = *var_r31; - PSVECSubtract(&sp24, &sp30, &sp18); - var_f30 = PSVECMag(&sp18); + VECSubtract(&sp24, &sp30, &sp18); + var_f30 = VECMag(&sp18); if (var_f30 < 200.0f) { if (var_f30 > 0.0f) { temp_f31 = 1.0f / var_f30; @@ -1228,11 +1228,11 @@ s32 fn_1_C878(s16 arg0, const char *arg1, Mtx arg2, s32 arg3) lbl_1_bss_6C4 = 0; } mtxRot(sp14, temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z); - PSMTXScale(sp44, temp_r31->scale.x, temp_r31->scale.y, temp_r31->scale.z); - PSMTXConcat(sp14, sp44, sp44); + MTXScale(sp44, temp_r31->scale.x, temp_r31->scale.y, temp_r31->scale.z); + MTXConcat(sp14, sp44, sp44); mtxTransCat(sp44, temp_r31->pos.x, temp_r31->pos.y, temp_r31->pos.z); if (arg3 != 0) { - PSMTXConcat(arg2, sp44, sp44); + MTXConcat(arg2, sp44, sp44); } fn_1_C99C(temp_r30->root, sp44, arg1, arg2); return lbl_1_bss_6C8; @@ -1263,21 +1263,21 @@ void fn_1_C99C(HsfObject *arg0, Mtx arg1, const char *arg2, Mtx arg3) var_r31 = &arg0->data.base; } if ((var_r31->scale.x <= 0.0f) && (var_r31->scale.y <= 0.0f) && (var_r31->scale.z <= 0.0f)) { - PSMTXCopy(arg1, spF8); + MTXCopy(arg1, spF8); OSReport("OBJ MTX CHECK ERROR %s \n", arg0->name); } else { mtxRot(spC8, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - PSMTXScale(spF8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); - PSMTXConcat(spC8, spF8, spF8); + MTXScale(spF8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(spC8, spF8, spF8); mtxTransCat(spF8, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - PSMTXConcat(arg1, spF8, spF8); + MTXConcat(arg1, spF8, spF8); } if (lbl_1_bss_6C0 != 0) { OSReport("%s \n", arg0->name); } if (strcmp(arg2, arg0->name) == 0) { - PSMTXCopy(spF8, arg3); + MTXCopy(spF8, arg3); lbl_1_bss_6C8 = 1; } for (var_r25 = 0; var_r25 < arg0->data.childrenCount; var_r25++) { @@ -1290,21 +1290,21 @@ void fn_1_C99C(HsfObject *arg0, Mtx arg1, const char *arg2, Mtx arg3) var_r30 = &temp_r28->data.base; } if ((var_r30->scale.x <= 0.0f) && (var_r30->scale.y <= 0.0f) && (var_r30->scale.z <= 0.0f)) { - PSMTXCopy(spF8, sp68); + MTXCopy(spF8, sp68); OSReport("OBJ MTX CHECK ERROR %s \n", temp_r28->name); } else { mtxRot(sp98, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); - PSMTXScale(sp68, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); - PSMTXConcat(sp98, sp68, sp68); + MTXScale(sp68, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); + MTXConcat(sp98, sp68, sp68); mtxTransCat(sp68, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); - PSMTXConcat(spF8, sp68, sp68); + MTXConcat(spF8, sp68, sp68); } if (lbl_1_bss_6C0 != 0) { OSReport("%s \n", temp_r28->name); } if (strcmp(arg2, temp_r28->name) == 0) { - PSMTXCopy(sp68, arg3); + MTXCopy(sp68, arg3); lbl_1_bss_6C8 = 1; } for (var_r24 = 0; var_r24 < temp_r28->data.childrenCount; var_r24++) { @@ -1317,21 +1317,21 @@ void fn_1_C99C(HsfObject *arg0, Mtx arg1, const char *arg2, Mtx arg3) var_r29 = &temp_r27->data.base; } if ((var_r29->scale.x <= 0.0f) && (var_r29->scale.y <= 0.0f) && (var_r29->scale.z <= 0.0f)) { - PSMTXCopy(sp68, sp8); + MTXCopy(sp68, sp8); OSReport("OBJ MTX CHECK ERROR %s \n", temp_r27->name); } else { mtxRot(sp38, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z); - PSMTXScale(sp8, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); - PSMTXConcat(sp38, sp8, sp8); + MTXScale(sp8, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); + MTXConcat(sp38, sp8, sp8); mtxTransCat(sp8, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); - PSMTXConcat(sp68, sp8, sp8); + MTXConcat(sp68, sp8, sp8); } if (lbl_1_bss_6C0 != 0) { OSReport("%s \n", temp_r27->name); } if (strcmp(arg2, temp_r27->name) == 0) { - PSMTXCopy(sp8, arg3); + MTXCopy(sp8, arg3); lbl_1_bss_6C8 = 1; } for (var_r23 = 0; var_r23 < temp_r27->data.childrenCount; var_r23++) { diff --git a/src/REL/m424Dll/map.c b/src/REL/m424Dll/map.c index 7215c532..4536b396 100644 --- a/src/REL/m424Dll/map.c +++ b/src/REL/m424Dll/map.c @@ -1,9 +1,10 @@ #include "REL/m424Dll.h" -#include "math.h" #include "game/audio.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "math.h" + // STRUCT typedef struct _M424DllMapStruct { @@ -20,8 +21,8 @@ typedef struct _M424DllMapStruct { } M424DllMapStruct; // sizeof 0x54 // BSS -Process* lbl_1_bss_54; -omObjData* lbl_1_bss_50; +Process *lbl_1_bss_54; +omObjData *lbl_1_bss_50; // DATA Vec lbl_1_data_E0 = { 0.0f, 3000.0f, 1.0f }; @@ -29,12 +30,13 @@ Vec lbl_1_data_EC = { 0.0f, 1.0f, 0.0f }; Vec lbl_1_data_F8 = { 0.0f, 0.0f, 0.0f }; // PROTO -void fn_1_1BB8(omObjData*); -void fn_1_1E1C(omObjData*); -void fn_1_2130(omObjData*); +void fn_1_1BB8(omObjData *); +void fn_1_1E1C(omObjData *); +void fn_1_2130(omObjData *); void fn_1_2438(f32); -omObjData* fn_1_1AB8(Process* arg0) { +omObjData *fn_1_1AB8(Process *arg0) +{ lbl_1_bss_54 = arg0; lbl_1_bss_50 = omAddObjEx(arg0, 0x7F, 6, 0, -1, fn_1_1BB8); lbl_1_bss_50->data = NULL; @@ -44,12 +46,14 @@ omObjData* fn_1_1AB8(Process* arg0) { return lbl_1_bss_50; } -void fn_1_1B8C(void) { +void fn_1_1B8C(void) +{ fn_1_2130(lbl_1_bss_50); } -void fn_1_1BB8(omObjData* arg0) { - M424DllMapStruct* var_r30; +void fn_1_1BB8(omObjData *arg0) +{ + M424DllMapStruct *var_r30; var_r30 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, 0x10000000); memset(var_r30, 0, 0x54); @@ -82,9 +86,10 @@ void fn_1_1BB8(omObjData* arg0) { arg0->func = fn_1_1E1C; } -void fn_1_1E1C(omObjData* arg0) { +void fn_1_1E1C(omObjData *arg0) +{ f32 temp_f31; - M424DllMapStruct* temp_r31; + M424DllMapStruct *temp_r31; temp_r31 = arg0->data; if (temp_r31->unk40 > 0) { @@ -108,8 +113,9 @@ void fn_1_1E1C(omObjData* arg0) { if (temp_r31->unk0 > 0.04f) { temp_r31->unk0 = 0.04f; } - if (temp_r31->unk38 != -1) break; - + if (temp_r31->unk38 != -1) + break; + temp_r31->unk38 = HuAudFXPlay(0x626); break; default: @@ -120,8 +126,8 @@ void fn_1_1E1C(omObjData* arg0) { } temp_f31 = temp_r31->unk0 / 0.04f; if (temp_r31->unk38 != -1) { - HuAudFXVolSet(temp_r31->unk38, (s16) (-8191.0f * (1.0f - temp_f31))); - HuAudFXPitchSet(temp_r31->unk38, (s16) (127.0f * temp_f31)); + HuAudFXVolSet(temp_r31->unk38, (s16)(-8191.0f * (1.0f - temp_f31))); + HuAudFXPitchSet(temp_r31->unk38, (s16)(127.0f * temp_f31)); if (temp_f31 <= 0.0f) { HuAudFXStop(temp_r31->unk38); temp_r31->unk38 = -1; @@ -130,16 +136,18 @@ void fn_1_1E1C(omObjData* arg0) { } break; } - + if (temp_r31->unk48 != 0) { if (temp_r31->unk4C != 0) { temp_r31->unk4C = (temp_r31->unk4C - 1); - } else { + } + else { temp_r31->unk48 = (temp_r31->unk48 - 1); if (temp_r31->unk48 != 0) { Hu3DModelAttrReset(arg0->model[4], 1); Hu3DModelAttrSet(arg0->model[5], 1); - } else { + } + else { Hu3DModelAttrSet(arg0->model[4], 1); Hu3DModelAttrReset(arg0->model[5], 1); if (temp_r31->unk50 != -1) { @@ -150,16 +158,18 @@ void fn_1_1E1C(omObjData* arg0) { } } temp_r31->unk4 = (20.0f * temp_r31->unk0); - PSMTXRotRad(temp_r31->unk8, 0x59, MTXDegToRad(temp_r31->unk4)); + MTXRotRad(temp_r31->unk8, 0x59, MTXDegToRad(temp_r31->unk4)); Hu3DMotionSpeedSet(arg0->model[1], temp_r31->unk0); } -void fn_1_2130(omObjData* arg0) { +void fn_1_2130(omObjData *arg0) +{ arg0->func = NULL; } -f32 fn_1_213C(void) { - M424DllMapStruct* var_r31; +f32 fn_1_213C(void) +{ + M424DllMapStruct *var_r31; if (!lbl_1_bss_50) { return 0.0f; } @@ -170,17 +180,19 @@ f32 fn_1_213C(void) { return var_r31->unk4; } -void fn_1_21B0(Mtx arg0) { - M424DllMapStruct* var_r31; +void fn_1_21B0(Mtx arg0) +{ + M424DllMapStruct *var_r31; if (lbl_1_bss_50 && lbl_1_bss_50->data) { var_r31 = lbl_1_bss_50->data; - PSMTXCopy(var_r31->unk8, *(Mtx*)&arg0); + MTXCopy(var_r31->unk8, *(Mtx *)&arg0); } } -void fn_1_2220(Vec* arg0, Vec* arg1) { +void fn_1_2220(Vec *arg0, Vec *arg1) +{ Vec spC; - M424DllMapStruct* temp_r30; + M424DllMapStruct *temp_r30; if (lbl_1_bss_50 && lbl_1_bss_50->data) { temp_r30 = lbl_1_bss_50->data; @@ -188,23 +200,25 @@ void fn_1_2220(Vec* arg0, Vec* arg1) { spC.x = (temp_r30->unk8[0][0] * arg0->x) + (temp_r30->unk8[0][2] * arg0->z); spC.z = (temp_r30->unk8[2][0] * arg0->x) + (temp_r30->unk8[2][2] * arg0->z); spC.y = arg0->y; - } else { + } + else { spC = *arg0; } - PSVECSubtract(&spC, arg0, &spC); + VECSubtract(&spC, arg0, &spC); *arg1 = spC; } } -void fn_1_2438(f32 arg0) { - M424DllMapStruct* spC; - HsfAttribute* var_r31; - ModelData* temp_r30; - HsfData* temp_r29; +void fn_1_2438(f32 arg0) +{ + M424DllMapStruct *spC; + HsfAttribute *var_r31; + ModelData *temp_r30; + HsfData *temp_r29; s32 var_r28; - HsfBitmap* var_r27; - omObjData* var_r26; - + HsfBitmap *var_r27; + omObjData *var_r26; + if (lbl_1_bss_50 && lbl_1_bss_50->data) { var_r26 = lbl_1_bss_50; spC = lbl_1_bss_50->data; @@ -213,7 +227,8 @@ void fn_1_2438(f32 arg0) { var_r31 = temp_r30->hsfData->attribute; for (var_r28 = 0; var_r28 < temp_r29->attributeCnt; var_r28++, var_r31++) { var_r27 = var_r31->bitmap; - if (strcmp("cr_dk2", var_r27->name) == 0) break; + if (strcmp("cr_dk2", var_r27->name) == 0) + break; } if (var_r28 < temp_r29->attributeCnt) { var_r31->unk30 += arg0; @@ -221,9 +236,10 @@ void fn_1_2438(f32 arg0) { } } -void fn_1_252C(f32 arg8, s32 arg0) { - omObjData* sp10; - M424DllMapStruct* temp_r31; +void fn_1_252C(f32 arg8, s32 arg0) +{ + omObjData *sp10; + M424DllMapStruct *temp_r31; if (lbl_1_bss_50 && lbl_1_bss_50->data) { sp10 = lbl_1_bss_50; @@ -234,9 +250,10 @@ void fn_1_252C(f32 arg8, s32 arg0) { } } -f32 fn_1_25C0(void) { - omObjData* sp8; - M424DllMapStruct* temp_r31; +f32 fn_1_25C0(void) +{ + omObjData *sp8; + M424DllMapStruct *temp_r31; if (!lbl_1_bss_50) { return 0.0f; @@ -252,9 +269,10 @@ f32 fn_1_25C0(void) { return 0.0f; } -void fn_1_2670(s32 arg0, s32 arg1) { - omObjData* temp_r30; - M424DllMapStruct* temp_r31; +void fn_1_2670(s32 arg0, s32 arg1) +{ + omObjData *temp_r30; + M424DllMapStruct *temp_r31; if (lbl_1_bss_50 && lbl_1_bss_50->data) { temp_r30 = lbl_1_bss_50; @@ -267,17 +285,9 @@ void fn_1_2670(s32 arg0, s32 arg1) { } // UNUSED (guessing types) -M424DllMainStruct lbl_1_data_10C = { - { 0.0f, 0.0f, 5500.0f }, - { -3950.0f, 0.0f, -0.7f }, - 0.6f -}; +M424DllMainStruct lbl_1_data_10C = { { 0.0f, 0.0f, 5500.0f }, { -3950.0f, 0.0f, -0.7f }, 0.6f }; GXColor lbl_1_data_128 = { 0xFF, 0xFF, 0xFF, 0xFF }; -M424DllMainStruct lbl_1_data_12C = { - { 0.0f, 5500.0f, -3950.0f }, - { 0.0f, 1.0f, 0.0f }, - 0.0f -}; +M424DllMainStruct lbl_1_data_12C = { { 0.0f, 5500.0f, -3950.0f }, { 0.0f, 1.0f, 0.0f }, 0.0f }; -s32 lbl_1_data_148[2] = {0}; +s32 lbl_1_data_148[2] = { 0 }; diff --git a/src/REL/m425Dll/main.c b/src/REL/m425Dll/main.c index 9fc806f3..2853e783 100644 --- a/src/REL/m425Dll/main.c +++ b/src/REL/m425Dll/main.c @@ -462,9 +462,6 @@ void fn_1_F48(omObjData *object) void fn_1_FA8(omObjData *object) { M425DllUnkBss10Struct *var_r31; - s32 var_ctr; - void *var_r4; - s32 temp_r3; s32 var_r30; s16 *var_r28; s32 var_r27; @@ -565,28 +562,25 @@ void fn_1_14CC(Mtx arg0, float arg8, float arg9, float argA) Mtx sp38; Mtx sp8; if (argA != 0.0f) { - PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + MTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); } else { - PSMTXIdentity(arg0); + MTXIdentity(arg0); } if (arg8 != 0.0f) { - PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); - PSMTXConcat(sp38, arg0, arg0); + MTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + MTXConcat(sp38, arg0, arg0); } if (arg9 != 0.0f) { - PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); - PSMTXConcat(sp8, arg0, arg0); + MTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + MTXConcat(sp8, arg0, arg0); } } float fn_1_15EC(float arg8, float arg9) { - float var_f31; - float var_f30; - - var_f30 = 360.0f; - var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI); + float var_f30 = 360.0f; + float var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI); if (var_f31 < 0.0f) { var_f31 += var_f30; } @@ -681,10 +675,57 @@ void fn_1_1B40(omObjData *object) break; } if (0) { - int x = 12; - int y = 24; - char *str = "%f"; - print8(x, y, 1.5f, str, sqrtf(fn_1_15EC(object->trans.x, object->trans.y))); + s32 var_r31; + s32 var_r30; + s32 var_r29; + float var_f31; + float var_f20; + float var_f19; + float var_f18; + + (void) object; + (void) object; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f20; + (void) var_f20; + (void) var_f20; + (void) var_f19; + (void) var_f19; + (void) var_f19; + (void) var_f18; + (void) var_f18; + (void) var_f18; } var_r31->unk_38 = var_r31->unk_04 * sind(var_r31->unk_18); var_r31->unk_40 = var_r31->unk_04 * cosd(var_r31->unk_18); @@ -1368,7 +1409,7 @@ void fn_1_5044(s16 sp8) var_r31->unk_2C[1].unk_04 = 0; var_r31->unk_2C[1].unk_48 = 0x80; for (var_r30 = 0; var_r30 < (var_r31->unk_28 * var_r31->unk_2A); var_r30++) { - PSMTXIdentity(var_r31->unk_2C[var_r30].unk_14); + MTXIdentity(var_r31->unk_2C[var_r30].unk_14); var_r31->unk_2C[var_r30].unk_08.x = var_r31->unk_2C[var_r30].unk_08.y = var_r31->unk_2C[var_r30].unk_08.z = 0.0f; } for (var_r30 = 0; var_r30 < var_r31->unk_28; var_r30++) { @@ -1497,8 +1538,8 @@ void fn_1_5C20(ModelData *var_r27, Mtx sp8) GXSetChanAmbColor(GX_COLOR0A0, var_r31->unk_20); GXSetChanMatColor(GX_COLOR0A0, var_r31->unk_24); GXLoadPosMtxImm(sp8, 0); - PSMTXInverse(sp8, sp5C); - PSMTXTranspose(sp5C, sp2C); + MTXInverse(sp8, sp5C); + MTXTranspose(sp5C, sp2C); GXLoadNrmMtxImm(sp2C, 0); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); GXSetZMode(1, GX_LEQUAL, 1); @@ -1506,7 +1547,7 @@ void fn_1_5C20(ModelData *var_r27, Mtx sp8) var_r28 = 0; spC = 0; for (var_r29 = GX_TEXMAP0; var_r29 < var_r31->unk_28; var_r29++) { - PSMTXRotRad(var_r31->unk_2C[var_r29].unk_14, 0x5A, 0.0f); + MTXRotRad(var_r31->unk_2C[var_r29].unk_14, 0x5A, 0.0f); mtxTransCat( var_r31->unk_2C[var_r29].unk_14, var_r31->unk_2C[var_r29].unk_08.x, var_r31->unk_2C[var_r29].unk_08.y, var_r31->unk_2C[var_r29].unk_08.z); switch (var_r31->unk_2C[var_r29].unk_04) { diff --git a/src/REL/m425Dll/thwomp.c b/src/REL/m425Dll/thwomp.c index a47e9bd9..3f02dce6 100644 --- a/src/REL/m425Dll/thwomp.c +++ b/src/REL/m425Dll/thwomp.c @@ -1665,7 +1665,7 @@ void fn_1_DE3C(M425DllUnkStruct4 *arg0, ModelData *model) sp8.x = arg0->unk_180[var_r26].x - arg0->unk_180[var_r29].x; sp8.y = arg0->unk_180[var_r26].y - arg0->unk_180[var_r29].y; sp8.z = arg0->unk_180[var_r26].z - arg0->unk_180[var_r29].z; - PSVECCrossProduct(&sp14, &sp8, &sp20); + VECCrossProduct(&sp14, &sp8, &sp20); sp20.x *= -1.0f; sp20.y *= -1.0f; sp20.z *= -1.0f; @@ -1685,7 +1685,7 @@ void fn_1_DE3C(M425DllUnkStruct4 *arg0, ModelData *model) } } for (var_r30 = 0; var_r30 < arg0->unk_110; var_r30++) { - PSVECNormalize(&arg0->unk_188[var_r30], &arg0->unk_188[var_r30]); + VECNormalize(&arg0->unk_188[var_r30], &arg0->unk_188[var_r30]); } } @@ -1803,7 +1803,7 @@ void fn_1_E210(s32 arg0) sp8.x = sind(var_r31->unk_E4) * cosd(var_r31->unk_E0); sp8.z = cosd(var_r31->unk_E4) * cosd(var_r31->unk_E0); sp8.y = sind(var_r31->unk_E0); - PSVECNormalize(&sp8, &sp8); + VECNormalize(&sp8, &sp8); var_r28 = &Hu3DLocalLight[var_r27->unk_38[0]]; var_r28->unk_1C.x = 1000.0f * sp8.x; var_r28->unk_1C.y = 1000.0f * sp8.y; @@ -2093,7 +2093,7 @@ void fn_1_101C4(ModelData *var_r29, Mtx var_r28) var_r31 = var_r29->unk_120; GXLoadPosMtxImm(var_r28, 0); - PSMTXInvXpose(var_r28, sp50); + MTXInvXpose(var_r28, sp50); GXLoadNrmMtxImm(sp50, 0); var_r27 = fn_1_115D4(var_r29, Hu3DCameraMtx, Hu3DCameraMtxXPose, 4.0f); if (omPauseChk() == 0) { @@ -2129,7 +2129,7 @@ void fn_1_101C4(ModelData *var_r29, Mtx var_r28) GXSetZCompLoc(0); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); if (HmfInverseMtxF3X3(var_r28, sp50) == 0) { - PSMTXIdentity(sp50); + MTXIdentity(sp50); } PSMTXReorder(sp50, sp20); GXClearVtxDesc(); @@ -2418,7 +2418,7 @@ void fn_1_112FC(void) var_r31->unk_04.y = var_r31->unk_10.y * var_r31->unk_1C; var_r31->unk_04.z = var_r31->unk_10.z * var_r31->unk_1C; var_r31->unk_1C *= 0.95f; - PSVECAdd(&var_r31->unk_30, &var_r31->unk_04, &var_r31->unk_30); + VECAdd(&var_r31->unk_30, &var_r31->unk_04, &var_r31->unk_30); if (++var_r31->unk_40 >= 0xF) { var_r31->unk_40 = 0; var_r31->unk_28 = 0.0f; @@ -2503,7 +2503,7 @@ void fn_1_116E4(ModelData *arg1, LightData *var_r31, s16 sp8, Mtx spC, Mtx sp10, break; case 1: GXInitLightAttn(&lbl_1_bss_688, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f); - PSVECScale(&var_r31->unk_28, &var_r31->unk_1C, -100000.0f); + VECScale(&var_r31->unk_28, &var_r31->unk_1C, -100000.0f); break; case 2: GXInitLightAttn(&lbl_1_bss_688, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); @@ -2511,8 +2511,8 @@ void fn_1_116E4(ModelData *arg1, LightData *var_r31, s16 sp8, Mtx spC, Mtx sp10, break; } if ((var_r31->unk_00 & 0x8000) != 0) { - PSMTXMultVec(spC, &var_r31->unk_28, &lbl_1_bss_67C); - PSMTXMultVec(sp10, &var_r31->unk_1C, &lbl_1_bss_670); + MTXMultVec(spC, &var_r31->unk_28, &lbl_1_bss_67C); + MTXMultVec(sp10, &var_r31->unk_1C, &lbl_1_bss_670); GXInitLightPos(&lbl_1_bss_688, lbl_1_bss_670.x, lbl_1_bss_670.y, lbl_1_bss_670.z); } else { @@ -2692,7 +2692,7 @@ void fn_1_11EE0(ModelData *var_r24, Mtx var_r21) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8); if (HmfInverseMtxF3X3(var_r21, sp128) == 0) { - PSMTXIdentity(sp128); + MTXIdentity(sp128); } PSMTXReorder(sp128, &sp8[0]); if (var_r31->unk_4C) { @@ -2718,27 +2718,27 @@ void fn_1_11EE0(ModelData *var_r24, Mtx var_r21) if (!var_r29->unk_2C) { var_r28 = &sp98[0]; var_r27 = &sp38[0]; - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); } else { - PSVECScale(lbl_1_data_19C, &sp98[0], var_r29->unk_28); - PSVECScale(&lbl_1_data_19C[1], &sp98[1], var_r29->unk_28); - PSVECScale(&lbl_1_data_19C[2], &sp98[2], var_r29->unk_28); - PSVECScale(&lbl_1_data_19C[3], &sp98[3], var_r29->unk_28); - PSMTXRotRad(spC8, 0x5A, var_r29->unk_2C); - PSMTXConcat(sp128, spC8, spF8); - PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); - PSVECAdd(&sp68[0], &var_r29->unk_30, var_r30++); - PSVECAdd(&sp68[1], &var_r29->unk_30, var_r30++); - PSVECAdd(&sp68[2], &var_r29->unk_30, var_r30++); - PSVECAdd(&sp68[3], &var_r29->unk_30, var_r30++); + VECScale(lbl_1_data_19C, &sp98[0], var_r29->unk_28); + VECScale(&lbl_1_data_19C[1], &sp98[1], var_r29->unk_28); + VECScale(&lbl_1_data_19C[2], &sp98[2], var_r29->unk_28); + VECScale(&lbl_1_data_19C[3], &sp98[3], var_r29->unk_28); + MTXRotRad(spC8, 0x5A, var_r29->unk_2C); + MTXConcat(sp128, spC8, spF8); + MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); + VECAdd(&sp68[0], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[1], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[2], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[3], &var_r29->unk_30, var_r30++); } var_r20 = var_r29->unk_40 & 3; var_r19 = (var_r29->unk_40 >> 2) & 3; diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index e91e3258..9a80a823 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -394,18 +394,18 @@ void fn_1_330(omObjData *object) if (!WipeStatGet()) { lbl_1_bss_54 = 1; lbl_1_bss_58 = 0; - lbl_1_bss_30 = 120; + lbl_1_bss_30 = 2 * REFRESH_RATE; } break; case 1: - if (++lbl_1_bss_58 >= 15.0f) { + if (++lbl_1_bss_58 >= REFRESH_RATE / 4.0f) { lbl_1_bss_54 = 2; lbl_1_bss_58 = 0; lbl_1_bss_38 = 1; } break; case 2: - var_f31 = 0.007246377f * lbl_1_bss_58; + var_f31 = (VERSION_NTSC ? 0.007246377f : 0.008695652f) * lbl_1_bss_58; var_f31 = sind(90.0f * var_f31); var_f31 *= var_f31; for (var_r31 = 0; var_r31 < 7; var_r31++) { @@ -418,7 +418,7 @@ void fn_1_330(omObjData *object) Center.y = sp10[4]; Center.z = sp10[5]; CZoom = sp10[6]; - if (++lbl_1_bss_58 >= 138.0f) { + if (++lbl_1_bss_58 >= (VERSION_NTSC ? 138.0f : 115.0f)) { CRot.x = lbl_1_data_4C[0][0]; CRot.y = lbl_1_data_4C[0][1]; CRot.z = lbl_1_data_4C[0][2]; @@ -431,7 +431,7 @@ void fn_1_330(omObjData *object) } break; case 3: - if (++lbl_1_bss_58 >= 30.0f) { + if (++lbl_1_bss_58 >= (REFRESH_RATE / 2.0f)) { lbl_1_bss_50 = MGSeqCreate(3, 0); lbl_1_bss_54 = 4; lbl_1_bss_58 = 0; @@ -452,9 +452,9 @@ void fn_1_330(omObjData *object) lbl_1_bss_40 = 1; lbl_1_bss_3C = 1; lbl_1_bss_54 = 5; - lbl_1_bss_58 = 1800; + lbl_1_bss_58 = 30 * REFRESH_RATE; fn_1_7328(1); - lbl_1_bss_4C = MGSeqCreate(1, lbl_1_bss_58 / 60, -1, -1); + lbl_1_bss_4C = MGSeqCreate(1, lbl_1_bss_58 / REFRESH_RATE, -1, -1); } break; case 5: @@ -463,10 +463,10 @@ void fn_1_330(omObjData *object) var_r25 = 0; } MGSeqParamSet(lbl_1_bss_4C, 1, var_r25); - if (lbl_1_bss_58 == 600) { + if (lbl_1_bss_58 == 10 * REFRESH_RATE) { lbl_1_bss_34 = 3.0f; } - else if (lbl_1_bss_58 == 1200) { + else if (lbl_1_bss_58 == 20 * REFRESH_RATE) { lbl_1_bss_34 = 2.5f; } if (--lbl_1_bss_58 < -1 || lbl_1_bss_1C[0] <= 0 || lbl_1_bss_1C[1] <= 0) { @@ -529,7 +529,7 @@ void fn_1_330(omObjData *object) } break; case 7: - if (++lbl_1_bss_58 > 210.0f) { + if (++lbl_1_bss_58 > 3.5f * REFRESH_RATE) { lbl_1_bss_50 = -1; lbl_1_bss_54 = 8; lbl_1_bss_58 = 0; @@ -946,8 +946,8 @@ void fn_1_16F8(omObjData *object) } else if (var_f27 != 0.0f) { var_f27 = 1.0f / var_f27; - object->trans.x += var_f28 * (var_f30 * var_f27); - object->trans.z += var_f28 * (var_f31 * var_f27); + object->trans.x += var_f28 * (var_f30 * var_f27) * (60.0f / REFRESH_RATE); + object->trans.z += var_f28 * (var_f31 * var_f27) * (60.0f / REFRESH_RATE); } } var_f30 = object->trans.x - var_f22; @@ -1041,16 +1041,16 @@ void fn_1_16F8(omObjData *object) break; case 6: var_r31->unk_2C++; - if (var_r31->unk_2C < 60.0f) { + if (var_r31->unk_2C < 1.0f * REFRESH_RATE) { if (lbl_1_bss_40 == 0) { - var_r31->unk_2C = 59; + var_r31->unk_2C = REFRESH_RATE - 1; } } - else if (var_r31->unk_2C == 60.0f) { + else if (var_r31->unk_2C == 1.0f * REFRESH_RATE) { var_r31->unk_28 = 7; CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_NONE); } - else if (var_r31->unk_2C >= 90.0f) { + else if (var_r31->unk_2C >= (VERSION_NTSC ? 90.0f : 80.0f)) { var_r31->unk_24 = 7; var_r31->unk_28 = 8; CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); @@ -1240,7 +1240,7 @@ void fn_1_2B74(Vec *arg0) var_r31->unk_2C = 0; var_r31->unk_24 = 3; var_r31->unk_AC = 32; - var_r31->unk_30 = 90; + var_r31->unk_30 = 1.5f * REFRESH_RATE; var_r31->unk_90 = var_r31->unk_94 = -1; if (!var_r29->unk_00) { var_r31->unk_9C.x = -1.0f; @@ -1370,7 +1370,7 @@ void fn_1_2F5C(omObjData *object, float *arg1, float *arg2, s32 *arg3) break; case 1: if (var_r31->unk_B0 != -1) { - if (++var_r31->unk_B4 < 120.0f) { + if (++var_r31->unk_B4 < 2.0f * REFRESH_RATE) { if (var_r31->unk_90 == var_r31->unk_B0) { var_r31->unk_B0 = -1; return; @@ -1389,12 +1389,12 @@ void fn_1_2F5C(omObjData *object, float *arg1, float *arg2, s32 *arg3) return; case 2: if (var_r31->unk_B0 != -1) { - if (++var_r31->unk_B4 < 120.0f && var_r31->unk_B0 != var_r28->unk_B0) { + if (++var_r31->unk_B4 < 2.0f * REFRESH_RATE && var_r31->unk_B0 != var_r28->unk_B0) { if (var_r31->unk_90 == var_r31->unk_B0) { *arg3 |= 256; var_r31->unk_B0 = -1; var_r31->unk_B4 = 0; - var_r31->unk_B8 = (50.0f + (frand() % 15)) - (var_r31->unk_18 * 10); + var_r31->unk_B8 = ((VERSION_NTSC ? 50.0f : 45.0f) + (frand() % 15)) - (var_r31->unk_18 * 10); var_r31->unk_BC = 0; return; } @@ -1585,7 +1585,7 @@ void fn_1_3714(omObjData *object) sp8.x = 0.0f; sp8.y = 500.0f; sp8.z = var_r31->unk_38; - var_r25 = 0.3f * (var_r31->unk_00 * 60); + var_r25 = 0.3f * (var_r31->unk_00 * REFRESH_RATE); var_r31->unk_34 = fn_1_5C6C(var_r31->unk_00, var_r25, &sp8); } lbl_1_bss_24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M426, 1), MEMORY_DEFAULT_NUM)); @@ -1975,7 +1975,7 @@ void fn_1_5134(omObjData *object) } break; case 1: - if ((var_r31->unk_40 -= 50.0f) <= 50.0f) { + if ((var_r31->unk_40 -= (VERSION_NTSC ? 50.0f : 60.000004f)) <= 50.0f) { if (lbl_1_bss_54 <= 4) { fn_1_3654(0); fn_1_3654(1); @@ -2005,8 +2005,8 @@ void fn_1_5134(omObjData *object) } if (fabs(fn_1_75F4(var_f31, var_r31->unk_48)) < 5.0) { var_r31->unk_48 = var_f31; - if ((var_r31->unk_34 += 0.1f) > lbl_1_bss_34) { - var_r31->unk_34 = lbl_1_bss_34; + if ((var_r31->unk_34 += 0.1f) > lbl_1_bss_34 * (60.0f / REFRESH_RATE)) { + var_r31->unk_34 = lbl_1_bss_34 * (60.0f / REFRESH_RATE); } } else { @@ -2054,7 +2054,7 @@ void fn_1_5134(omObjData *object) if (lbl_1_bss_1C[1] < 0) { lbl_1_bss_1C[1] = 0; } - lbl_1_bss_30 = 60; + lbl_1_bss_30 = REFRESH_RATE; lbl_1_bss_28 = 1.0f; var_r31->unk_30 = 0; var_r31->unk_28 = 4; @@ -2476,7 +2476,7 @@ void fn_1_6704(omObjData *object) if (var_r31->unk_04) { Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_0C, var_r31->unk_10, var_r31->unk_14); Hu3DModelRotSet(var_r31->unk_00, CRot.x, CRot.y, CRot.z); - if (++var_r31->unk_08 >= 120.0f) { + if (++var_r31->unk_08 >= 2.0f * REFRESH_RATE) { Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF); var_r31->unk_04 = 0; var_r31->unk_08 = 0; @@ -3043,7 +3043,7 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8); if (!HmfInverseMtxF3X3(arg1, sp128)) { - PSMTXIdentity(sp128); + MTXIdentity(sp128); } PSMTXReorder(sp128, sp8); if (var_r31->unk_4C) { @@ -3083,9 +3083,9 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) VECScale(&lbl_1_data_22C[1], &sp98[1], var_r29->unk_28); VECScale(&lbl_1_data_22C[2], &sp98[2], var_r29->unk_28); VECScale(&lbl_1_data_22C[3], &sp98[3], var_r29->unk_28); - PSMTXRotRad(spC8, 90, var_r29->unk_2C); - PSMTXConcat(sp128, spC8, &spF8[0]); - PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); + MTXRotRad(spC8, 90, var_r29->unk_2C); + MTXConcat(sp128, spC8, &spF8[0]); + MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); VECAdd(&sp68[0], &var_r29->unk_30, var_r30++); VECAdd(&sp68[1], &var_r29->unk_30, var_r30++); VECAdd(&sp68[2], &var_r29->unk_30, var_r30++); @@ -3222,7 +3222,7 @@ void fn_1_8E48(ModelData *arg0, Mtx arg1) GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - PSMTXIdentity(sp50); + MTXIdentity(sp50); GXLoadPosMtxImm(sp50, 0); GXSetZMode(GX_FALSE, GX_ALWAYS, GX_TRUE); GXSetNumChans(1); diff --git a/src/REL/m428Dll/main.c b/src/REL/m428Dll/main.c new file mode 100644 index 00000000..1ee62c82 --- /dev/null +++ b/src/REL/m428Dll/main.c @@ -0,0 +1,1094 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/init.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m428Dll.h" + +#ifndef __MWERKS__ +#include "game/ClusterExec.h" +#include "game/EnvelopeExec.h" +#include "game/ShapeExec.h" +#include "game/frand.h" +#endif + +typedef struct M428DllData0Struct { + /* 0x00 */ Vec unk_00; + /* 0x0C */ Vec unk_0C; + /* 0x18 */ float unk_18; +} M428DllData0Struct; /* size = 0x1C */ + +typedef struct M428DllUnkStruct2 { + s16 unk_00[0x10]; + float unk_20[0x10]; + s32 unk_60; +} M428DllUnkStruct2; /* size = 0x64 */ + +typedef struct M428DllUnkStruct { + M428DllUnkStruct2 unk_00[0x10]; + ShadowData unk_640[0x10]; + ShadowData unk_FC0; +} M428DllUnkStruct; /* size = 0x1058 */ + +void fn_1_478(omObjData *); +void fn_1_25CC(omObjData *object); +void fn_1_261C(omObjData *arg0); +void fn_1_29E8(omObjData *object); +void fn_1_2ACC(s32 arg0); +void fn_1_2B8(omObjData *object); +void fn_1_2C90(ModelData *, float[3][4]); +void fn_1_2E2C(s32 arg0); +void fn_1_40A4(void); + +M428DllData0Struct lbl_1_data_0[3] = { + { 65.0f, 0.0f, 0.0f, 0.0f, 400.0f, 0.0f, 2000.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 400.0f, 0.0f, 2000.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 400.0f, 0.0f, 1575.0f }, +}; + +Vec lbl_1_data_54 = { -1000.0f, 2000.0f, 1000.0f }; +Vec lbl_1_data_60 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_6C = { 0.0f, 0.0f, -450.0f }; + +Process *lbl_1_bss_88; +s32 lbl_1_bss_84; +s32 lbl_1_bss_80; +u32 lbl_1_bss_7C; +s32 lbl_1_bss_78; +s32 lbl_1_bss_74; +s32 lbl_1_bss_70; +s32 lbl_1_bss_6C; +s32 lbl_1_bss_68; +s32 lbl_1_bss_64; +s32 lbl_1_bss_60; +float lbl_1_bss_58[2]; +s16 lbl_1_bss_50[4]; +s16 lbl_1_bss_48[4]; +s32 lbl_1_bss_38[4]; +float lbl_1_bss_28[4]; +s32 lbl_1_bss_24; +s32 lbl_1_bss_20; +omObjData *lbl_1_bss_1C; +s32 lbl_1_bss_18; +omObjData *lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +char lbl_1_bss_4[8]; +s32 lbl_1_bss_0; + +void ObjectSetup(void) +{ + s32 var_r31; + Process *var_r30; + s32 var_r29; + + OSReport("******* M428ObjectSetup *********\n"); + var_r30 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_88 = var_r30; + omGameSysInit(var_r30); + Hu3DLightAllKill(); + Hu3DLighInit(); + lbl_1_bss_1C = omAddObjEx(var_r30, 0xFF, 2, 0, -1, fn_1_2B8); + lbl_1_bss_84 = lbl_1_bss_80 = -1; + HuAudSndGrpSet(0x35); + lbl_1_bss_7C = 0; + lbl_1_bss_78 = 0; + lbl_1_bss_68 = 0; + lbl_1_bss_64 = -1; + lbl_1_bss_60 = 0; + lbl_1_bss_24 = -1; + lbl_1_bss_20 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_50[var_r31] = -1; + lbl_1_bss_48[var_r31] = -1; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_38[var_r31] = -1; + } + var_r29 = GWGameStat.rumble; + lbl_1_bss_18 = var_r29; + Hu3DShadowCreate(45.0f, 1000.0f, 250000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_6C); + fn_1_2ACC(3); +} + +Vec lbl_1_data_9C = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_A8 = { -1.0f, -2.0f, -1.0f }; +GXColor lbl_1_data_B4 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_2B8(omObjData *var_r27) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = Hu3DGLightCreateV(&lbl_1_data_9C, &lbl_1_data_A8, &lbl_1_data_B4); + Hu3DGLightStaticSet(var_r28, 1); + Hu3DGLightInfinitytSet(var_r28); + for (var_r31 = 0, var_r30 = 0, var_r29 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[var_r31].group == 0) { + lbl_1_bss_50[var_r30] = var_r31; + lbl_1_bss_48[var_r30] = GWPlayerCfg[var_r31].character; + var_r30++; + } + else { + lbl_1_bss_50[var_r29 + 2] = var_r31; + lbl_1_bss_48[var_r29 + 2] = GWPlayerCfg[var_r31].character; + var_r29++; + } + } + if ((var_r30 != 2) || (var_r29 != 2)) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_50[var_r31] = var_r31; + lbl_1_bss_48[var_r31] = GWPlayerCfg[var_r31].character; + } + } + fn_1_43C8(lbl_1_bss_88); + fn_1_9F5C(lbl_1_bss_88); + var_r27->func = fn_1_478; +} + +void fn_1_478(omObjData *object) +{ + Vec sp5C; + Vec sp50; + Vec sp44; + Vec sp38; + Vec sp2C; + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + + switch (lbl_1_bss_7C) { + case 0: + lbl_1_bss_78++; + Hu3DCamera->fov = -1.0f; + Hu3DCamera[1].fov = -1.0f; + if (lbl_1_bss_78 > 3) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_20 = 0; + fn_1_11798(1); + lbl_1_bss_38[0] = HuAudFXPlay(0x65F); + if ((lbl_1_bss_38[1] = HuAudFXPlay(0x660)) != -1) { + lbl_1_bss_28[1] = 0.0f; + HuAudFXVolSet(lbl_1_bss_38[1], (s32)(127.0f * lbl_1_bss_28[1])); + HuAudFXPitchSet(lbl_1_bss_38[1], (s32)(8191.0f * lbl_1_bss_28[1])); + } + if ((lbl_1_bss_38[2] = HuAudFXPlay(0x661)) != -1) { + lbl_1_bss_28[2] = 0.0f; + HuAudFXVolSet(lbl_1_bss_38[2], (s32)(127.0f * lbl_1_bss_28[2])); + HuAudFXPitchSet(lbl_1_bss_38[2], (s32)(8191.0f * lbl_1_bss_28[2])); + } + Hu3DCamera->fov = 45.0f; + Hu3DCamera[1].fov = 45.0f; + lbl_1_bss_7C = 1; + lbl_1_bss_78 = 0; + } + break; + case 1: + if (WipeStatGet() == 0) { + lbl_1_bss_7C = 2; + lbl_1_bss_78 = 0; + } + else { + sp2C.x = lbl_1_data_0->unk_00.x; + sp2C.y = lbl_1_data_0->unk_00.y; + sp2C.z = lbl_1_data_0->unk_00.z; + sp38.x = lbl_1_data_0->unk_0C.x; + sp38.y = lbl_1_data_0->unk_0C.y; + sp38.z = lbl_1_data_0->unk_0C.z; + fn_1_9A30(0, 1.0f, &sp38, &sp2C, lbl_1_data_0->unk_18); + fn_1_9A30(1, 1.0f, &sp38, &sp2C, lbl_1_data_0->unk_18); + } + break; + case 2: + if (++lbl_1_bss_78 == 0x78) { + sp2C.x = lbl_1_data_0[2].unk_00.x; + sp2C.y = lbl_1_data_0[2].unk_00.y; + sp2C.z = lbl_1_data_0[2].unk_00.z; + sp38.x = lbl_1_data_0[2].unk_0C.x; + sp38.y = lbl_1_data_0[2].unk_0C.y; + sp38.z = lbl_1_data_0[2].unk_0C.z; + fn_1_9A30(0, 300.0f, &sp38, &sp2C, lbl_1_data_0[2].unk_18); + fn_1_9A30(1, 300.0f, &sp38, &sp2C, lbl_1_data_0[2].unk_18); + } + if ((fn_1_F354() != 0) && (lbl_1_bss_78 >= 0x78)) { + sp2C.x = lbl_1_data_0[1].unk_00.x; + sp2C.y = lbl_1_data_0[1].unk_00.y; + sp2C.z = lbl_1_data_0[1].unk_00.z; + sp38.x = lbl_1_data_0[1].unk_0C.x; + sp38.y = lbl_1_data_0[1].unk_0C.y; + sp38.z = lbl_1_data_0[1].unk_0C.z; + fn_1_9A30(0, 42.0f, &sp38, &sp2C, lbl_1_data_0[1].unk_18); + fn_1_9A30(1, 42.0f, &sp38, &sp2C, lbl_1_data_0[1].unk_18); + lbl_1_bss_84 = MGSeqCreate(3, 0); + lbl_1_bss_7C = 3; + lbl_1_bss_78 = 0; + lbl_1_bss_68 = 0; + } + break; + case 3: + if (lbl_1_bss_84 != -1) { + var_r27 = MGSeqStatGet(lbl_1_bss_84); + if (((var_r27 & 0x10) != 0) && (lbl_1_bss_24 == -1)) { + lbl_1_bss_24 = HuAudSeqPlay(0x4B); + } + } + else { + var_r27 = 0; + } + if ((lbl_1_bss_84 == -1) || (var_r27 == 0)) { + lbl_1_bss_84 = -1; + lbl_1_bss_7C = 4; + lbl_1_bss_78 = 0; + lbl_1_bss_74 = 180.0f + 120.0f * (0.007874016f * (frand() & 0x7F)); + lbl_1_bss_70 = 90.0f + 60.0f * (0.007874016f * (frand() & 0x7F)); + lbl_1_bss_6C = 45.0f + (120.0f * (0.007874016f * (frand() & 0x7F))); + lbl_1_bss_58[0] = 15.0f; + lbl_1_bss_58[1] = 15.0f; + lbl_1_bss_68 = 0x4650; + } + break; + case 4: + if (++lbl_1_bss_78 >= lbl_1_bss_74) { + var_r29 = lbl_1_bss_78 - lbl_1_bss_74; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (lbl_1_bss_58[var_r31] < 60.0f) { + var_r30 = 0; + } + else { + var_r30 = 1; + } + if (var_r29 <= (15.0f + (21.0f + lbl_1_bss_6C))) { + fn_1_9DE8(var_r31, 15.0f, 1); + fn_1_11754(var_r31, 0.05f); + if (var_r29 == 0) { + fn_1_F46C(var_r31, 0); + } + else if (var_r29 < lbl_1_bss_6C) { + fn_1_F454(var_r31, 1); + if ((var_r30 == 1) && (fn_1_F4E8(var_r31) == 0)) { + lbl_1_bss_58[var_r31] = 15.0f; + } + } + else if (var_r29 == lbl_1_bss_6C) { + if (var_r30 == 1) { + fn_1_F46C(var_r31, var_r30); + } + } + else if (var_r29 == (21.0f + lbl_1_bss_6C)) { + if (var_r30 == 0) { + fn_1_F454(var_r31, 2); + } + else { + fn_1_F454(var_r31, 3); + if (lbl_1_bss_18 == 0) { + fn_1_116C4(var_r31, 1); + } + if (var_r30 != 0) { + fn_1_F4B4(var_r31, lbl_1_bss_70, 3.125f); + } + } + } + } + else { + fn_1_9DE8(var_r31, lbl_1_bss_58[var_r31], 1); + if ((var_r29 < ((15.0f + lbl_1_bss_6C + lbl_1_bss_70) - 6.0f)) && (var_r30 == 1)) { + var_f31 = 0.10000000149011612 * sind((20.0f * var_r29)); + fn_1_11754(var_r31, 0.3f + var_f31); + } + if (var_r30 == 0) { + fn_1_F454(var_r31, 4); + } + else { + fn_1_F454(var_r31, 5); + } + } + } + if (var_r29 == (15.0f + lbl_1_bss_6C + lbl_1_bss_70)) { + fn_1_F454(0, 6); + fn_1_F454(1, 6); + } + else if (var_r29 > (15.0f + lbl_1_bss_6C + lbl_1_bss_70)) { + fn_1_9EA8(0); + fn_1_9EA8(1); + fn_1_11754(0, 0.0f); + fn_1_11754(1, 0.0f); + fn_1_F46C(0, -1); + fn_1_F46C(1, -1); + fn_1_F454(0, 0); + fn_1_F454(1, 0); + if ((frand() & 3) == 0) { + lbl_1_bss_58[0] = lbl_1_bss_58[1] = 15.0f; + } + else { + lbl_1_bss_58[0] = lbl_1_bss_58[1] = 60.0f; + } + lbl_1_bss_78 = 0; + lbl_1_bss_74 = 180.0f + 120.0f * (0.007874016f * (frand() & 0x7F)); + lbl_1_bss_70 = 90.0f + 60.0f * (0.007874016f * (frand() & 0x7F)); + lbl_1_bss_6C = 45.0f + (120.0f * (0.007874016f * (frand() & 0x7F))); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (lbl_1_bss_58[var_r31] < 60.0f) { + var_r30 = 0; + } + else { + var_r30 = 1; + } + if ((var_r29 <= (15.0f + (21.0f + lbl_1_bss_6C))) || (var_r30 < 1)) { + if (lbl_1_bss_28[var_r31 + 1] < 0.5f) { + lbl_1_bss_28[var_r31 + 1] += 0.1f; + } + if (lbl_1_bss_28[var_r31 + 1] > 0.5f) { + lbl_1_bss_28[var_r31 + 1] -= 0.1f; + } + } + else { + if (lbl_1_bss_28[var_r31 + 1] < 1.0f) { + lbl_1_bss_28[var_r31 + 1] += 0.1f; + } + if (lbl_1_bss_28[var_r31 + 1] > 1.0f) { + lbl_1_bss_28[var_r31 + 1] = 1.0f; + } + } + } + } + else { + if (lbl_1_bss_28[1] > 0.0f) { + lbl_1_bss_28[1] -= 0.01f; + } + if (lbl_1_bss_28[1] < 0.0f) { + lbl_1_bss_28[1] = 0.0f; + } + if (lbl_1_bss_28[2] > 0.0f) { + lbl_1_bss_28[2] -= 0.01f; + } + if (lbl_1_bss_28[2] < 0.0f) { + lbl_1_bss_28[2] = 0.0f; + } + } + if (lbl_1_bss_38[1] != -1) { + HuAudFXVolSet(lbl_1_bss_38[1], (s32)(127.0f * lbl_1_bss_28[1])); + HuAudFXPitchSet(lbl_1_bss_38[1], (s32)(8191.0f * lbl_1_bss_28[1])); + } + if (lbl_1_bss_38[2] != -1) { + HuAudFXVolSet(lbl_1_bss_38[2], (s32)(127.0f * lbl_1_bss_28[2])); + HuAudFXPitchSet(lbl_1_bss_38[2], (s32)(8191.0f * lbl_1_bss_28[2])); + } + if ((lbl_1_bss_68 <= 1800.0f) && (lbl_1_bss_80 == -1)) { + lbl_1_bss_80 = MGSeqCreate(1, lbl_1_bss_68 / 60, -1, -1); + } + if (lbl_1_bss_80 != -1) { + var_r28 = (lbl_1_bss_68 + 0x3B) / 60; + if (var_r28 < 0) { + var_r28 = 0; + } + MGSeqParamSet(lbl_1_bss_80, 1, var_r28); + } + var_r26 = fn_1_F3BC(0); + var_r25 = fn_1_F3BC(1); + if ((--lbl_1_bss_68 < -1) || (var_r26 != 0) || (var_r25 != 0)) { + if (lbl_1_bss_80 != -1) { + MGSeqParamSet(lbl_1_bss_80, 2, -1); + } + lbl_1_bss_80 = -1; + lbl_1_bss_84 = MGSeqCreate(3, 1); + fn_1_9EA8(0); + fn_1_9EA8(1); + fn_1_11754(0, 0.0f); + fn_1_11754(1, 0.0f); + fn_1_F46C(0, -1); + fn_1_F46C(1, -1); + fn_1_F454(0, 0); + fn_1_F454(1, 0); + if (lbl_1_bss_38[0] != -1) { + HuAudFXFadeOut(lbl_1_bss_38[0], 0x64); + } + if (lbl_1_bss_38[1] != -1) { + HuAudFXFadeOut(lbl_1_bss_38[1], 0x64); + } + if (lbl_1_bss_38[2] != -1) { + HuAudFXFadeOut(lbl_1_bss_38[2], 0x64); + } + if (lbl_1_bss_24 != -1) { + HuAudSeqFadeOut(lbl_1_bss_24, 0x64); + } + if ((var_r26 != 0) && (var_r25 != 0)) { + if ((frand() & 1) != 0) { + lbl_1_bss_64 = 0; + } + else { + lbl_1_bss_64 = 1; + } + } + else if (var_r26 != 0) { + lbl_1_bss_64 = 0; + } + else if (var_r25 != 0) { + lbl_1_bss_64 = 1; + } + lbl_1_bss_7C = 6; + lbl_1_bss_78 = 0; + } + break; + case 6: + if ((lbl_1_bss_64 == -1) || (lbl_1_bss_84 == -1) || (MGSeqStatGet(lbl_1_bss_84) == 0)) { + if (lbl_1_bss_64 != -1) { + lbl_1_bss_84 = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x1E); + WipeColorSet(0xFF, 0xFF, 0xFF); + lbl_1_bss_20 = 1; + } + lbl_1_bss_7C = 5; + lbl_1_bss_78 = 0; + } + break; + case 5: + if (lbl_1_bss_64 != -1) { + if (WipeStatGet() == 0) { + lbl_1_bss_7C = 7; + lbl_1_bss_78 = 0; + } + } + else if ((lbl_1_bss_84 == -1) || (MGSeqStatGet(lbl_1_bss_84) == 0)) { + lbl_1_bss_84 = -1; + lbl_1_bss_7C = 8; + lbl_1_bss_78 = 0; + } + break; + case 7: + lbl_1_bss_78++; + if (lbl_1_bss_78 == 1) { + if (lbl_1_bss_64 == 0) { + fn_1_9ADC(0); + fn_1_F414(0); + lbl_1_bss_60 = 1; + fn_1_11798(0); + } + else if (lbl_1_bss_64 == 1) { + fn_1_9ADC(1); + fn_1_F414(1); + lbl_1_bss_60 = 1; + fn_1_11798(0); + } + } + else if (lbl_1_bss_78 >= 0xA) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x3C); + WipeColorSet(0xFF, 0xFF, 0xFF); + lbl_1_bss_20 = 0; + lbl_1_bss_38[3] = HuAudFXPlay(0x662); + lbl_1_bss_7C = 8; + lbl_1_bss_78 = 0; + } + break; + case 8: + if (lbl_1_bss_64 == 0) { + if (++lbl_1_bss_78 >= 120.0f) { + lbl_1_bss_7C = 9; + lbl_1_bss_78 = 0; + } + } + else if (lbl_1_bss_64 == 1) { + if (++lbl_1_bss_78 >= 120.0f) { + lbl_1_bss_7C = 9; + lbl_1_bss_78 = 0; + } + } + else { + if (++lbl_1_bss_78 >= 60.0f) { + lbl_1_bss_7C = 9; + lbl_1_bss_78 = 0; + } + } + break; + case 9: + if (lbl_1_bss_64 == 0) { + lbl_1_bss_84 = MGSeqCreate(5, 3, lbl_1_bss_48[0], lbl_1_bss_48[1], -1, -1); + GWPlayerCoinWinAdd(lbl_1_bss_50[0], 10); + GWPlayerCoinWinAdd(lbl_1_bss_50[1], 10); + HuAudSStreamPlay(1); + lbl_1_bss_7C = 0xA; + lbl_1_bss_68 = 0; + } + else if (lbl_1_bss_64 == 1) { + lbl_1_bss_84 = MGSeqCreate(5, 3, lbl_1_bss_48[2], lbl_1_bss_48[3], -1, -1); + GWPlayerCoinWinAdd(lbl_1_bss_50[2], 10); + GWPlayerCoinWinAdd(lbl_1_bss_50[3], 10); + HuAudSStreamPlay(1); + lbl_1_bss_7C = 0xA; + lbl_1_bss_68 = 0; + } + else { + lbl_1_bss_84 = MGSeqCreate(3, 2); + lbl_1_bss_7C = 0xA; + lbl_1_bss_68 = 0; + HuAudSStreamPlay(4); + } + break; + case 10: + if (++lbl_1_bss_68 >= 210.0f) { + lbl_1_bss_84 = -1; + lbl_1_bss_7C = 0xB; + lbl_1_bss_68 = 0; + } + break; + case 11: + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + lbl_1_bss_20 = 1; + if (lbl_1_bss_38[3] != -1) { + HuAudFXStop(lbl_1_bss_38[3]); + } + object->func = fn_1_25CC; + break; + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + sp50.x = CenterM[var_r31].x; + sp50.y = CenterM[var_r31].y; + sp50.z = CenterM[var_r31].z; + if (lbl_1_bss_60 == 0) { + sp5C.x = CenterM[var_r31].x - 1200.0f; + sp5C.y = 1200.0f + CenterM[var_r31].y; + sp5C.z = 1200.0f + CenterM[var_r31].z; + } + else { + sp5C.x = CenterM[var_r31].x - 600.0f; + sp5C.y = 1000.0f + CenterM[var_r31].y; + sp5C.z = 600.0f + CenterM[var_r31].z; + } + sp44.x = 0.0f; + sp44.y = 1.0f; + sp44.z = 0.0f; + fn_1_4324(var_r31, &sp5C, &sp44, &sp50); + } + fn_1_261C(object); +} + +void fn_1_25CC(omObjData *object) +{ + if (WipeStatGet() == 0) { + fn_1_4630(); + fn_1_A0B0(); + fn_1_40A4(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_261C(omObjData *object) +{ + s32 var_r30 = 0; + if ((WipeStatGet() != 0) || (object->func == fn_1_25CC)) { + return; + } + if (omSysExitReq != 0) { + var_r30 = 1; + } + if (var_r30 != 0) { + if (lbl_1_bss_20 == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + } + lbl_1_bss_20 = 1; + HuAudSeqAllFadeOut(0x64); + object->func = fn_1_25CC; + } +} + +s32 fn_1_26E0(void) +{ + return lbl_1_bss_7C; +} + +void fn_1_26F0(void) +{ + s32 var_r31; + omObjData *object; + + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 45.0f, 50.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x140, 0x1E0); + Hu3DCameraCreate(2); + Hu3DCameraPerspectiveSet(2, 45.0f, 50.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(2, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(2, 0, 0, 0x140, 0x1E0); + object = lbl_1_bss_14 = omAddObjEx(lbl_1_bss_88, 0x7FDA, 0, 0, -1, omOutViewMulti); + object->work[0] = 2; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + CRotM[var_r31].x = lbl_1_data_0->unk_00.x; + CRotM[var_r31].y = lbl_1_data_0->unk_00.y; + CRotM[var_r31].z = lbl_1_data_0->unk_00.z; + CenterM[var_r31].x = lbl_1_data_0->unk_0C.x; + CenterM[var_r31].y = lbl_1_data_0->unk_0C.y; + CenterM[var_r31].z = lbl_1_data_0->unk_0C.z; + CZoomM[var_r31] = lbl_1_data_0->unk_18; + } + lbl_1_bss_C = 0; + lbl_1_bss_10 = -1; + omAddObjEx(lbl_1_bss_88, 0xFE, 0, 0, -1, fn_1_29E8); +} + +void fn_1_29E8(omObjData *object) { } + +void fn_1_29EC(void) { } + +s32 fn_1_29F0(void) +{ + return lbl_1_bss_C; +} + +void fn_1_2A00(s32 arg0, s32 arg1, float arg8) +{ + M428DllData0Struct *var_r31; + M428DllData0Struct *var_r30; + + var_r31 = &lbl_1_data_0[arg0]; + var_r30 = &lbl_1_data_0[arg1]; + Center.x = var_r31->unk_0C.x + (arg8 * (var_r30->unk_0C.x - var_r31->unk_0C.x)); + Center.y = var_r31->unk_0C.y + (arg8 * (var_r30->unk_0C.y - var_r31->unk_0C.y)); + Center.z = var_r31->unk_0C.z + (arg8 * (var_r30->unk_0C.z - var_r31->unk_0C.z)); + CZoom = var_r31->unk_18 + (arg8 * (var_r30->unk_18 - var_r31->unk_18)); +} + +void fn_1_2ACC(s32 arg0) +{ + ShadowData *var_r31; + s32 var_r30; + M428DllUnkStruct2 *var_r29; + ModelData *var_r28; + M428DllUnkStruct *var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + u32 var_r23; + + lbl_1_bss_0 = var_r24 = Hu3DHookFuncCreate(fn_1_2C90); + var_r28 = &Hu3DData[var_r24]; + Hu3DModelLayerSet(var_r24, 0); + var_r27 = var_r28->unk_120 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M428DllUnkStruct), var_r28->unk_48); + memset(var_r27, 0, sizeof(M428DllUnkStruct)); + var_r27->unk_FC0 = Hu3DShadowData; + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + var_r29 = &var_r27->unk_00[var_r30]; + var_r31 = &var_r27->unk_640[var_r30]; + var_r23 = 1 << var_r30; + + *var_r31 = Hu3DShadowData; + for (var_r26 = 0; var_r26 < 0x10; var_r26++) { + var_r29->unk_00[var_r26] = -1; + var_r29->unk_20[var_r26] = 1.0f; + } + var_r29->unk_60 = 0; + if ((var_r23 & arg0) != 0) { + if (var_r30 == 0) { + var_r31->unk_04 = Hu3DShadowData.unk_04; + } + else { + var_r25 = var_r31->unk_02; + var_r31->unk_04 = HuMemDirectMallocNum(HEAP_DATA, var_r25 * var_r25, var_r28->unk_48); + } + } + else { + var_r31->unk_04 = NULL; + } + } + Hu3DShadowCamBit++; +} + +void fn_1_2C90(ModelData *model, Mtx matrix) +{ + ShadowData *var_r31; + s32 var_r30; + M428DllUnkStruct *var_r29; + M428DllUnkStruct2 *var_r28; + + var_r29 = model->unk_120; + if (Hu3DCameraNo == 0) { + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + var_r28 = &var_r29->unk_00[var_r30]; + var_r31 = &var_r29->unk_640[var_r30]; + if ((var_r31->unk_04 != NULL) && !(var_r31->unk_08.x <= 0.0f) && (var_r28->unk_60 > 0)) { + Hu3DShadowData = *var_r31; + fn_1_2E2C(var_r30); + *var_r31 = Hu3DShadowData; + } + } + HuSprDispInit(); + HuSprExec(0x7F); + } + var_r28 = &var_r29->unk_00[Hu3DCameraNo]; + var_r31 = &var_r29->unk_640[Hu3DCameraNo]; + if ((var_r31->unk_04 == NULL) || (var_r31->unk_08.x <= 0.0f)) { + return; + } + Hu3DShadowData = *var_r31; +} + +GXColor lbl_1_data_E8 = { 0, 0, 0, 0 }; + +void fn_1_2E2C(s32 var_r26) +{ + Mtx spBC; + Mtx sp8C; + Mtx sp5C; + Mtx44 sp1C; + ShadowData *sp18; + ModelData *var_r31; + s16 var_r30; + M428DllUnkStruct2 *var_r29; + M428DllUnkStruct *var_r28; + s32 var_r27; + s32 var_r25; + u32 var_r24; + + var_r31 = &Hu3DData[lbl_1_bss_0]; + var_r28 = var_r31->unk_120; + var_r29 = &var_r28->unk_00[var_r26]; + sp18 = &var_r28->unk_640[var_r26]; + var_r24 = Hu3DShadowData.unk_00; + if (var_r26 == 0) { + GXSetViewport(0.0f, 0.0f, RenderMode->fbWidth, RenderMode->xfbHeight, 0.0f, 1.0f); + GXSetScissor(0, 0, RenderMode->fbWidth, RenderMode->efbHeight); + C_MTXOrtho(sp1C, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f); + GXSetProjection(sp1C, GX_ORTHOGRAPHIC); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_U8, 0); + GXSetTevColor(GX_TEVREG0, BGColor); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(0); + MTXIdentity(sp8C); + GXLoadPosMtxImm(sp8C, 0); + GXSetZMode(0, GX_ALWAYS, GX_TRUE); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(1); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(0); + } + Hu3DDrawPreInit(); + GXSetCopyClear(lbl_1_data_E8, 0xFFFFFF); + C_MTXPerspective(sp1C, Hu3DShadowData.unk_08.x, 1.2f, Hu3DShadowData.unk_08.y, Hu3DShadowData.unk_08.z); + GXSetProjection(sp1C, GX_PERSPECTIVE); + if (Hu3DShadowData.unk_02 <= 0xF0) { + GXSetScissor(2, 2, (Hu3DShadowData.unk_02 * 2) - 4, (Hu3DShadowData.unk_02 * 2) - 4); + GXSetViewport(0.0f, 0.0f, Hu3DShadowData.unk_02 * 2, Hu3DShadowData.unk_02 * 2, 0.0f, 1.0f); + var_r25 = (Hu3DShadowData.unk_02 / 2) * (Hu3DShadowData.unk_02 / 2); + } + else { + GXSetScissor(1, 1, Hu3DShadowData.unk_02 - 2, Hu3DShadowData.unk_02 - 2); + GXSetViewport(0.0f, 0.0f, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 0.0f, 1.0f); + var_r25 = Hu3DShadowData.unk_02 * Hu3DShadowData.unk_02; + } + C_MTXLookAt(Hu3DCameraMtx, &Hu3DShadowData.unk_14, &Hu3DShadowData.unk_2C, &Hu3DShadowData.unk_20); + MTXCopy(Hu3DCameraMtx, Hu3DShadowData.unk_38); + shadowModelDrawF = 1; + GXInvalidateTexAll(); + GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, BGColor); + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + if (var_r29->unk_00[var_r30] != -1) { + var_r31 = &Hu3DData[var_r29->unk_00[var_r30]]; + if (((var_r31->attr & 1) == 0) && ((var_r31->attr & 0x8000) == 0)) { + if ((var_r31->attr & 8) != 0) { + var_r27 = 0; + if (var_r31->unk_08 != -1) { + Hu3DMotionExec(var_r30, var_r31->unk_08, var_r31->unk_64, 0); + } + if (var_r31->unk_0C != -1) { + Hu3DSubMotionExec(var_r30); + } + if (var_r31->unk_0A != -1) { + Hu3DMotionExec(var_r30, var_r31->unk_0A, var_r31->unk_74, 1); + } + if ((var_r31->attr & 0x400) != 0) { + ClusterMotionExec(var_r31); + var_r27 = 1; + } + if (var_r31->unk_0E != -1) { + if (var_r31->unk_08 == -1) { + Hu3DMotionExec(var_r30, var_r31->unk_0E, var_r31->unk_94, 0); + } + else { + Hu3DMotionExec(var_r30, var_r31->unk_0E, var_r31->unk_94, 1); + } + } + if (((var_r31->attr & 0x90) == 0) || ((var_r31->motion_attr & 0x40000002) == 0)) { + var_r27 = 1; + InitVtxParm(var_r31->hsfData); + if (var_r31->unk_0E != -1) { + ShapeProc(var_r31->hsfData); + } + if ((var_r31->attr & 0x400) != 0) { + ClusterProc(var_r31); + } + if (var_r31->hsfData->cenvCnt != 0) { + EnvelopeProc(var_r31->hsfData); + } + PPCSync(); + } + var_r31->attr |= 0x800; + } + Hu3DModelShadowSet(var_r29->unk_00[var_r30]); + Hu3DShadowData.unk_00 = (s8)(var_r29->unk_20[var_r30] * var_r24); + mtxRot(sp5C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); + MTXScale(spBC, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(sp5C, spBC, spBC); + mtxTransCat(spBC, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); + MTXConcat(Hu3DCameraMtx, spBC, sp8C); + MTXConcat(sp8C, var_r31->unk_F0, sp8C); + Hu3DDraw(var_r31, sp8C, &var_r31->scale); + Hu3DModelShadowReset(var_r29->unk_00[var_r30]); + } + } + } + Hu3DDrawPost(); + GXDrawDone(); + shadowModelDrawF = 0; + if (Hu3DShadowData.unk_02 <= 0xF0) { + GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02 * 2, Hu3DShadowData.unk_02 * 2); + GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, 1); + } + else { + GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02); + GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, 0); + } + GXCopyTex(Hu3DShadowData.unk_04, 1); + GXSetViewport(0.0f, 0.0f, RenderMode->fbWidth, RenderMode->xfbHeight, 0.0f, 1.0f); + GXSetScissor(0, 0, RenderMode->fbWidth, RenderMode->efbHeight); + C_MTXOrtho(sp1C, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f); + GXSetProjection(sp1C, GX_ORTHOGRAPHIC); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_U8, 0); + GXSetTevColor(GX_TEVREG0, BGColor); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(0); + MTXIdentity(sp8C); + GXLoadPosMtxImm(sp8C, 0); + GXSetZMode(0, GX_ALWAYS, 1); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(1); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(0); +} + +void fn_1_3B64(void) +{ + Mtx44 sp64; + Mtx sp34; + GXTexObj sp14; + ShadowData *sp10; + GXColor spC; + M428DllUnkStruct *var_r31; + M428DllUnkStruct2 *var_r30; + ModelData *var_r29; + u8 *var_r28; + + if (lbl_1_bss_0 != -1) { + var_r29 = &Hu3DData[lbl_1_bss_0]; + var_r31 = var_r29->unk_120; + var_r30 = &var_r31->unk_00[Hu3DCameraNo]; + sp10 = &var_r31->unk_640[Hu3DCameraNo]; + if (var_r30->unk_60 > 0) { + GXInitTexObj(&sp14, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_TF_I8, GX_CLAMP, GX_CLAMP, 0); + GXInitTexObjLOD(&sp14, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&sp14, GX_TEXMAP0); + C_MTXOrtho(sp64, 0.0f, 480.0f, 0.0f, 320.0f, 0.0f, 10.0f); + GXSetProjection(sp64, GX_ORTHOGRAPHIC); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + spC.a = 0x80; + GXSetTevColor(GX_TEVREG0, spC); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumTexGens(1); + GXSetNumTevStages(1); + MTXIdentity(sp34); + GXLoadPosMtxImm(sp34, 0); + GXSetZMode(0, GX_LEQUAL, GX_FALSE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(0.0f, 0.0f, 0.0f); + GXTexCoord2f32(0.0f, 0.0f); + GXPosition3f32(Hu3DShadowData.unk_02, 0.0f, 0.0f); + GXTexCoord2f32(1.0f, 0.0f); + GXPosition3f32(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 0.0f); + GXTexCoord2f32(1.0f, 1.0f); + GXPosition3f32(0.0f, Hu3DShadowData.unk_02, 0.0f); + GXTexCoord2f32(0.0f, 1.0f); + } + } +} + +s32 lbl_1_data_EC[] = { + 0, + 0, + 0x45ABE000, + 0xC576E000, + 0, + 0xBF333333, + 0x3F19999A, + 0xFFFFFFFF, + 0, + 0x45ABE000, + 0xC576E000, + 0, + 0x3F800000, + 0, + 0, + 0, + 0, +}; + +void fn_1_40A4(void) +{ + M428DllUnkStruct *var_r31; + ModelData *var_r30; + + var_r30 = &Hu3DData[lbl_1_bss_0]; + var_r31 = var_r30->unk_120; + Hu3DShadowData = var_r31->unk_FC0; + Hu3DModelKill(lbl_1_bss_0); + lbl_1_bss_0 = -1; + if (Hu3DShadowCamBit > 0) { + Hu3DShadowCamBit--; + } +} + +void fn_1_4170(s16 arg0, s32 arg1) +{ + ShadowData *sp8; + M428DllUnkStruct2 *var_r31; + s32 var_r30; + s32 var_r29; + M428DllUnkStruct *var_r28; + ModelData *var_r27; + u32 var_r26; + + var_r27 = &Hu3DData[lbl_1_bss_0]; + var_r28 = var_r27->unk_120; + for (var_r29 = 0; var_r29 < 0x10; var_r29++) { + var_r31 = &var_r28->unk_00[var_r29]; + sp8 = &var_r28->unk_640[var_r29]; + var_r26 = 1 << var_r29; + if ((var_r26 & arg1) != 0) { + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + if (arg0 != var_r31->unk_00[var_r30]) { + if (var_r31->unk_00[var_r30] == -1) { + var_r31->unk_00[var_r30] = arg0; + var_r31->unk_20[var_r30] = 1.0f; + var_r31->unk_60++; + break; + } + } + else { + break; + } + } + } + } +} + +void fn_1_4264(s16 arg0, s32 arg1, float arg8) +{ + ShadowData *sp8; + s32 var_r31; + s32 var_r30; + M428DllUnkStruct2 *var_r29; + M428DllUnkStruct *var_r28; + ModelData *var_r27; + u32 var_r26; + + var_r27 = &Hu3DData[lbl_1_bss_0]; + var_r28 = var_r27->unk_120; + for (var_r31 = 0; var_r31 < 0x10; var_r31++) { + var_r29 = &var_r28->unk_00[var_r31]; + sp8 = &var_r28->unk_640[var_r31]; + var_r26 = 1 << var_r31; + if ((var_r26 & arg1) != 0) { + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + if (arg0 == var_r29->unk_00[var_r30]) { + var_r29->unk_20[var_r30] = arg8; + } + } + } + } +} + +void fn_1_4324(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + M428DllUnkStruct2 *sp8; + ShadowData *var_r31; + M428DllUnkStruct *var_r30; + ModelData *var_r29; + + var_r29 = &Hu3DData[lbl_1_bss_0]; + var_r30 = var_r29->unk_120; + sp8 = &var_r30->unk_00[arg0]; + var_r31 = &var_r30->unk_640[arg0]; + var_r31->unk_14 = *arg1; + var_r31->unk_20 = *arg3; + var_r31->unk_2C = *arg2; +} diff --git a/src/REL/m428Dll/map.c b/src/REL/m428Dll/map.c new file mode 100644 index 00000000..ce4c7764 --- /dev/null +++ b/src/REL/m428Dll/map.c @@ -0,0 +1,1275 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfformat.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/init.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m428Dll.h" + +#ifndef __MWERKS__ +#include "game/frand.h" +#endif + +typedef struct M433DllMapWork2 { + u8 unk_00; + Vec unk_04; + Vec unk_10; + Vec unk_1C; + Vec unk_28; + Vec unk_34; + Vec unk_40; + Vec unk_4C; + Vec unk_58; + Vec unk_64[3]; + Vec unk_88[3]; + Vec unk_AC[3]; + Vec unk_D0[3]; + float unk_F4[3]; + float unk_100[3]; + float unk_10C[3]; + float unk_118[3]; + float unk_124[3]; + float unk_130; + float unk_134; + float unk_138; + float unk_13C; + float unk_140; + float unk_144; + float unk_148; + float unk_14C[3]; + float unk_158[3]; + float unk_164[3]; + float unk_170[3]; + float unk_17C[3]; + u16 unk_188[3]; +} M433DllMapWork2; /* size = 0x190 */ + +typedef struct M433DllUnkStruct { + s16 unk_00; + s16 unk_02; + s16 unk_04; + s16 unk_06; + float unk_08; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + char unk20[0x28]; +} M433DllUnkStruct; /* size = 0x48 */ + +typedef struct M433DllUnkStruct4 { + Vec unk_00; + s32 unk_0C[3]; + s8 unk_18[4]; + s8 unk_1C; + float unk_20; + float unk_24; + float unk_28; + float unk_2C; + float unk_30; +} M433DllUnkStruct4; /* size = 0x34 */ + +typedef struct M433DllUnkStruct2 { + Vec *unk_00; + s32 unk_04; + s32 unk_08; + M433DllUnkStruct4 *unk_0C; +} M433DllUnkStruct2; /* size 0x10 */ + +typedef struct M433DllUnkStruct3 { + s32 unk_00; + M433DllUnkStruct2 *unk_04; +} M433DllUnkStruct3; /* size = 0x08 */ + +void fn_1_4650(omObjData *object); +void fn_1_475C(omObjData *object); +void fn_1_4F04(omObjData *object); +void fn_1_51E0(omObjData *object); +u8 fn_1_5370(M433DllUnkStruct2 *arg0, Vec *arg1); +void fn_1_5558(s32 arg0, M433DllUnkStruct3 *arg1); +void fn_1_5CCC(HsfData *arg0, HsfObject *arg1); +void fn_1_6280(ModelData *arg1, ParticleData *particle, Mtx matrix); +s16 fn_1_71AC(s32 arg0, s16 arg1, ParticleHook arg2); +void fn_1_7294(void); +void *fn_1_72D4(s32 arg0); +void fn_1_739C(M433DllUnkStruct2 *arg0); +void fn_1_7430(void); +s32 fn_1_7500(void); +void fn_1_8F90(float *arg0, float *arg1, float *arg2, s32 arg3); +float fn_1_9248(float arg8, float *arg0, float *arg1, float *arg2, s32 arg3); +void fn_1_939C(float *arg0, float (*arg1)[3], float (*arg2)[3], s32 arg3); +void fn_1_977C(float arg8, float *arg0, float *arg1, float (*arg2)[3], float (*arg3)[3], s32 arg4); + +M433DllUnkStruct3 *lbl_1_bss_12C; +M433DllUnkStruct2 *lbl_1_bss_128; +void *lbl_1_bss_A8[0x20]; +omObjData *lbl_1_bss_A4; +omObjData *lbl_1_bss_A0; +omObjData *lbl_1_bss_98[2]; +M433DllUnkStruct3 lbl_1_bss_90; + +void fn_1_43C8(Process *arg0) +{ + s32 var_r31; + omObjData *var_r30; + s32 var_r28; + + var_r28 = frand() & 0x1F; + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + fn_1_7500(); + } + fn_1_7294(); + Hu3DCameraCreate(3); + Hu3DCameraPerspectiveSet(1, 45.0f, 100.0f, 7500.0f, 0.6f); + Hu3DCameraPerspectiveSet(2, 45.0f, 100.0f, 7500.0f, 0.6f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraViewportSet(2, 320.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x140, 0x1E0); + Hu3DCameraScissorSet(2, 0x140, 0, 0x140, 0x1E0); + lbl_1_bss_A4 = omAddObjEx(arg0, 0x7FDA, 0, 0, -1, omOutViewMulti); + lbl_1_bss_A4->work[0] = 2; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30 = omAddObjEx(arg0, 0xFE, 1, 0, -1, fn_1_4650); + lbl_1_bss_98[var_r31] = var_r30; + var_r30->work[0] = var_r31; + } + lbl_1_bss_A0 = omAddObjEx(arg0, 0x7F, 9, 0, -1, fn_1_4F04); +} + +void fn_1_4630(void) +{ + fn_1_7430(); +} + +void fn_1_4650(omObjData *object) +{ + M433DllMapWork2 *work; + + work = fn_1_72D4(0x190); + object->data = work; + work->unk_148 = work->unk_144 = 0.0f; + work->unk_140 = 1.0f; + work->unk_10.x = work->unk_28.x = 0.0f; + work->unk_10.y = work->unk_28.y = 0.0f; + work->unk_10.z = work->unk_28.z = 0.0f; + work->unk_04.x = work->unk_1C.x = 0.0f; + work->unk_04.y = work->unk_1C.y = 80.0f; + work->unk_04.z = work->unk_1C.z = 0.0f; + work->unk_130 = work->unk_134 = 600.0f; + work->unk_188[0] = work->unk_188[1] = work->unk_188[2] = 0; + object->func = fn_1_475C; +} + +void fn_1_475C(omObjData *object) +{ + float var_f31; + M433DllMapWork2 *work; + s32 var_r29; + + work = object->data; + if (work->unk_148 > 0.0f) { + work->unk_148 = work->unk_148 - work->unk_140; + var_f31 = (work->unk_144 - work->unk_148) / work->unk_144; + var_f31 = sind((90.0f * var_f31)); + if (work->unk_00 == 0) { + work->unk_04.x = work->unk_1C.x + (var_f31 * (work->unk_34.x - work->unk_1C.x)); + work->unk_04.y = work->unk_1C.y + (var_f31 * (work->unk_34.y - work->unk_1C.y)); + work->unk_04.z = work->unk_1C.z + (var_f31 * (work->unk_34.z - work->unk_1C.z)); + work->unk_10.x = work->unk_28.x + (var_f31 * (work->unk_40.x - work->unk_28.x)); + work->unk_10.y = work->unk_28.y + (var_f31 * (work->unk_40.y - work->unk_28.y)); + work->unk_10.z = work->unk_28.z + (var_f31 * (work->unk_40.z - work->unk_28.z)); + work->unk_130 = work->unk_134 + (var_f31 * (work->unk_138 - work->unk_134)); + } + else { + fn_1_977C(2.0f * var_f31, (float *)&work->unk_04, work->unk_F4, (float(*)[3])work->unk_64, (float(*)[3])work->unk_88, 3); + fn_1_977C(2.0f * var_f31, (float *)&work->unk_10, work->unk_100, (float(*)[3])work->unk_AC, (float(*)[3])work->unk_D0, 3); + work->unk_130 = fn_1_9248(2.0f * var_f31, work->unk_124, work->unk_10C, work->unk_118, 3); + } + } + CRotM[object->work[0]].x = work->unk_10.x; + CRotM[object->work[0]].y = work->unk_10.y; + CRotM[object->work[0]].z = work->unk_10.z; + CenterM[object->work[0]].x = work->unk_04.x; + CenterM[object->work[0]].y = work->unk_04.y; + CenterM[object->work[0]].z = work->unk_04.z; + CZoomM[object->work[0]] = work->unk_130; + for (var_r29 = 0; var_r29 < 3; var_r29++) { + work->unk_17C[var_r29] = 0.0f; + if (work->unk_188[var_r29] != 0) { + work->unk_17C[var_r29] = work->unk_14C[var_r29] * sind(work->unk_164[var_r29]); + work->unk_164[var_r29] += work->unk_170[var_r29]; + work->unk_14C[var_r29] *= work->unk_158[var_r29]; + work->unk_188[var_r29] -= 1; + } + } + CenterM[object->work[0]].x += work->unk_17C[0]; + CenterM[object->work[0]].y += work->unk_17C[1]; + CenterM[object->work[0]].z += work->unk_17C[2]; +} + +void fn_1_4B7C(u8 arg0, float arg1, Vec *arg2, Vec *arg3, float arg8, Vec *arg4, Vec *arg5, float arg9) +{ + float var_f31; + float var_f30; + M433DllMapWork2 *var_r31; + + var_r31 = lbl_1_bss_98[arg0]->data; + var_r31->unk_00 = 1; + var_r31->unk_148 = var_r31->unk_144 = arg1; + var_r31->unk_1C = var_r31->unk_04; + var_r31->unk_34.x = arg2->x; + var_r31->unk_34.y = arg2->y; + var_r31->unk_34.z = arg2->z; + var_r31->unk_4C.x = arg4->x; + var_r31->unk_4C.y = arg4->y; + var_r31->unk_4C.z = arg4->z; + var_r31->unk_28 = var_r31->unk_10; + var_r31->unk_40.x = arg3->x; + var_r31->unk_40.y = arg3->y; + var_r31->unk_40.z = arg3->z; + var_r31->unk_58.x = arg5->x; + var_r31->unk_58.y = arg5->y; + var_r31->unk_58.z = arg5->z; + var_r31->unk_134 = var_r31->unk_130; + var_r31->unk_138 = arg8; + var_r31->unk_13C = arg9; + var_r31->unk_64[0] = var_r31->unk_1C; + var_r31->unk_64[1] = var_r31->unk_4C; + var_r31->unk_64[2] = var_r31->unk_34; + var_r31->unk_AC[0] = var_r31->unk_28; + var_r31->unk_AC[1] = var_r31->unk_58; + var_r31->unk_AC[2] = var_r31->unk_40; + var_r31->unk_10C[0] = var_r31->unk_134; + var_r31->unk_10C[1] = var_r31->unk_13C; + var_r31->unk_10C[2] = var_r31->unk_138; + var_r31->unk_124[0] = 0.0f; + if ((var_r31->unk_10C[1] - var_r31->unk_10C[0]) < 0.0f) { + var_f31 = -(var_r31->unk_10C[1] - var_r31->unk_10C[0]); + } + else { + var_f31 = var_r31->unk_10C[1] - var_r31->unk_10C[0]; + } + var_r31->unk_124[1] = var_f31; + if ((var_r31->unk_10C[2] - var_r31->unk_10C[1]) < 0.0f) { + var_f30 = -(var_r31->unk_10C[2] - var_r31->unk_10C[1]); + } + else { + var_f30 = var_r31->unk_10C[2] - var_r31->unk_10C[1]; + } + var_r31->unk_124[2] = var_r31->unk_124[1] + var_f30; + fn_1_939C(var_r31->unk_F4, (float(*)[3])var_r31->unk_64, (float(*)[3])var_r31->unk_88, 3); + fn_1_939C(var_r31->unk_100, (float(*)[3])var_r31->unk_AC, (float(*)[3])var_r31->unk_D0, 3); + fn_1_8F90(var_r31->unk_124, var_r31->unk_10C, var_r31->unk_118, 3); +} + +void fn_1_4E44(u8 arg0, float arg8) +{ + M433DllMapWork2 *work = lbl_1_bss_98[arg0]->data; + work->unk_140 = arg8; +} + +void fn_1_4E78(u8 arg0, u8 arg1, u16 arg2, float arg8, float arg9, float argA) +{ + M433DllMapWork2 *var_r31 = lbl_1_bss_98[arg0]->data; + var_r31->unk_188[arg1] = arg2; + var_r31->unk_14C[arg1] = arg8; + var_r31->unk_158[arg1] = arg9; + var_r31->unk_170[arg1] = argA; + var_r31->unk_164[arg1] = 90.0f; +} + +static char lbl_1_data_130[20] = "goal"; // explicitly declared because of padding + +void fn_1_4F04(omObjData *object) +{ + s32 var_r31; + M433DllUnkStruct *var_r29; + s32 var_r28; + + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 0)); + object->model[0] = var_r31; + Hu3DModelShadowMapSet(var_r31); + Hu3DModelLayerSet(var_r31, 2); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 1)); + object->model[1] = var_r31; + Hu3DModelAttrSet(var_r31, HU3D_ATTR_DISPOFF); + fn_1_5558(var_r31, &lbl_1_bss_90); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 2)); + object->model[2] = var_r31; + Hu3DModelLayerSet(var_r31, 2); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 3)); + object->model[3] = var_r31; + Hu3DModelAttrSet(var_r31, HU3D_ATTR_DISPOFF); + Hu3DModelShadowMapObjSet(var_r31, lbl_1_data_130); + Hu3DModelLayerSet(var_r31, 2); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 4)); + object->model[4] = var_r31; + Hu3DModelAttrSet(var_r31, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31, HU3D_MOTATTR_SHAPE_LOOP); + Hu3DModelLayerSet(var_r31, 2); + Hu3DModelCameraSet(var_r31, 1); + fn_1_4170(var_r31, 1); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 5)); + object->model[5] = var_r31; + Hu3DModelAttrSet(var_r31, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31, HU3D_MOTATTR_SHAPE_LOOP); + Hu3DModelLayerSet(var_r31, 2); + Hu3DModelCameraSet(var_r31, 2); + fn_1_4170(var_r31, 2); + for (var_r28 = 0; var_r28 < 2; var_r28++) { + var_r31 = fn_1_71AC(DATA_MAKE_NUM(DATADIR_M428, 6), 0x3E8, fn_1_6280); + object->model[var_r28 + 6] = var_r31; + Hu3DModelLayerSet(var_r31, 4); + Hu3DModelCameraSet(var_r31, 1 << var_r28); + var_r29 = ((ParticleData *)Hu3DData[var_r31].unk_120)->unk_1C; + var_r29->unk_08 = 400.0f; + var_r29->unk_0C = -400.0f; + var_r29->unk_10 = 1300.0f; + var_r29->unk_14 = -800.0f; + var_r29->unk_18 = 700.0f; + var_r29->unk_1C = 150.0f; + } + object->func = fn_1_51E0; +} + +void fn_1_51E0(omObjData *object) +{ + M433DllUnkStruct *var_r31; + s32 var_r30; + + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r31 = ((ParticleData *)Hu3DData[object->model[var_r30 + 6]].unk_120)->unk_1C; + var_r31->unk_08 = 500.0f + CenterM[var_r30].x; + var_r31->unk_0C = -500.0f + CenterM[var_r30].x; + var_r31->unk_10 = 900.0f + CenterM[var_r30].y; + var_r31->unk_14 = -1200.0f + CenterM[var_r30].y; + } +} + +void fn_1_52D8(omObjData *object) { } + +u8 fn_1_52DC(M433DllUnkStruct3 *arg0, Vec *arg1) +{ + u32 var_r30; + M433DllUnkStruct2 *var_r29; + s32 var_r28; + + var_r28 = 0; + for (var_r29 = arg0->unk_04, var_r30 = 0; var_r30 < arg0->unk_00; var_r30++, var_r29++) { + if (fn_1_5370(var_r29, arg1) != 0) { + break; + } + } + if (var_r30 < arg0->unk_00) { + var_r28 = 1; + } + return var_r28; +} + +u8 fn_1_5370(M433DllUnkStruct2 *arg0, Vec *arg1) +{ + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + M433DllUnkStruct4 *var_r31; + s32 var_r28; + u32 var_r27; + s32 var_r26; + Vec *var_r25; + s32 var_r24; + Vec *var_r23; + + var_r31 = arg0->unk_0C; + for (var_r27 = 0; var_r27 < arg0->unk_08; var_r27++, var_r31++) { + sp8 = *arg1; + sp8.y = 0.0f; + VECSubtract(&sp8, &var_r31->unk_00, &sp20); + var_f30 = VECMag(&sp20); + if (!(var_f30 > (400.0f + var_r31->unk_20)) && (var_r31->unk_2C != 0.0f)) { + var_r24 = 0; + for (var_r28 = 0; var_r28 < 3; var_r28++) { + var_r26 = var_r28 + 1; + if (var_r26 == 3) { + var_r26 = 0; + } + var_r23 = &arg0->unk_00[var_r31->unk_0C[var_r28]]; + var_r25 = &arg0->unk_00[var_r31->unk_0C[var_r26]]; + VECSubtract(var_r25, var_r23, &sp20); + VECSubtract(arg1, var_r25, &sp14); + var_f31 = (sp20.x * sp14.y) - (sp20.y * sp14.x); + if ((var_f31 * var_r31->unk_2C) < 0.0) { + var_r24 = 1; + break; + } + } + if (var_r24 == 0) { + arg1->z = ((var_r31->unk_30 - (var_r31->unk_24 * arg1->x)) - (var_r31->unk_28 * arg1->y)) / var_r31->unk_2C; + return 1; + } + } + } + return 0; +} + +void fn_1_5558(s32 arg0, M433DllUnkStruct3 *arg1) +{ + HsfData *var_r31; + u32 var_r30; + + var_r31 = Hu3DData[arg0].hsfData; + lbl_1_bss_12C = arg1; + lbl_1_bss_12C->unk_00 = 0; + lbl_1_bss_12C->unk_04 = fn_1_72D4(0x1000); + lbl_1_bss_128 = lbl_1_bss_12C->unk_04; + fn_1_5CCC(var_r31, var_r31->root); + var_r30 = lbl_1_bss_12C->unk_00 * 0x10; + lbl_1_bss_128 = lbl_1_bss_12C->unk_04; + lbl_1_bss_12C->unk_04 = fn_1_72D4(var_r30); + memcpy(lbl_1_bss_12C->unk_04, lbl_1_bss_128, var_r30); + fn_1_739C(lbl_1_bss_128); +} + +void fn_1_5684(HsfData *arg0, HsfObject *arg1) +{ + Vec sp18; + Vec spC; + float var_f31; + M433DllUnkStruct4 *var_r31; + HsfFace *var_r30; + HsfBuffer *var_r29; + s32 var_r28; + s32 var_r27; + HsfBuffer *var_r25; + + var_r29 = arg1->data.vertex; + var_r25 = arg1->data.face; + lbl_1_bss_128->unk_08 = var_r25->count; + lbl_1_bss_128->unk_04 = var_r29->count; + lbl_1_bss_128->unk_00 = var_r29->data; + lbl_1_bss_128->unk_0C = fn_1_72D4(lbl_1_bss_128->unk_08 * sizeof(M433DllUnkStruct4)); + var_r30 = var_r25->data; + var_r31 = lbl_1_bss_128->unk_0C; + for (var_r27 = 0; var_r27 < var_r25->count; var_r27++, var_r30++, var_r31++) { + switch (var_r30->type & 7) { + case 2: + var_r31->unk_1C = 3; + var_r31->unk_00.x = var_r31->unk_00.y = var_r31->unk_00.z = 0.0f; + for (var_r28 = 0; var_r28 < 3; var_r28++) { + var_r31->unk_0C[var_r28] = var_r30->indices[var_r28][0]; + var_r31->unk_00.x += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].x; + var_r31->unk_00.y += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].y; + var_r31->unk_00.z += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].z; + } + var_r31->unk_00.x /= 3.0f; + var_r31->unk_00.y /= 3.0f; + var_r31->unk_00.z /= 3.0f; + var_r31->unk_20 = 0.0f; + for (var_r28 = 0; var_r28 < 3; var_r28++) { + VECSubtract(&((Vec *)var_r29->data)[var_r30->indices[var_r28][0]], &var_r31->unk_00, &sp18); + var_f31 = VECMag(&sp18); + if (var_f31 > var_r31->unk_20) { + var_r31->unk_20 = var_f31; + } + } + var_r31->unk_00.y = 0.0f; + VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &sp18); + VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[2][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &spC); + var_r31->unk_24 = (sp18.y * spC.z) - (sp18.z * spC.y); + var_r31->unk_28 = (sp18.z * spC.x) - (sp18.x * spC.z); + var_r31->unk_2C = (sp18.x * spC.y) - (sp18.y * spC.x); + var_r31->unk_30 = (var_r31->unk_2C * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].z) + + ((var_r31->unk_24 * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].x) + + (var_r31->unk_28 * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].y)); + break; + case 3: + var_r31->unk_1C = 4; + var_r31->unk_00.x = var_r31->unk_00.y = var_r31->unk_00.z = 0.0f; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_r31->unk_0C[var_r28] = var_r30->indices[var_r28][0]; + var_r31->unk_00.x += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].x; + var_r31->unk_00.y += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].y; + var_r31->unk_00.z += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].z; + } + var_r31->unk_00.x *= 0.25f; + var_r31->unk_00.y *= 0.25f; + var_r31->unk_00.z *= 0.25f; + var_r31->unk_20 = 0.0f; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + VECSubtract(&((Vec *)var_r29->data)[var_r30->indices[var_r28][0]], &var_r31->unk_00, &sp18); + var_f31 = VECMag(&sp18); + if (var_f31 > var_r31->unk_20) { + var_r31->unk_20 = var_f31; + } + } + VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &sp18); + VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[2][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &spC); + var_r31->unk_24 = (sp18.y * spC.z) - (sp18.z * spC.y); + var_r31->unk_28 = (sp18.z * spC.x) - (sp18.x * spC.z); + var_r31->unk_2C = (sp18.x * spC.y) - (sp18.y * spC.x); + var_r31->unk_30 = (var_r31->unk_24 * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].x) + + ((var_r31->unk_28 * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].y)) + + (var_r31->unk_2C * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].z); + break; + default: + OSReport("Error\n"); + break; + } + } + for (var_r27 = 0; var_r27 < arg1->data.childrenCount; var_r27++) { + fn_1_5CCC(arg0, arg1->data.children[var_r27]); + } +} + +void fn_1_5CCC(HsfData *var_r31, HsfObject *var_r23) +{ + s16 var_r22; + + switch (var_r23->type) { + case 0: + case 1: + case 3: + case 4: + case 5: + case 6: + case 9: + for (var_r22 = 0; var_r22 < var_r23->data.childrenCount; var_r22++) { + fn_1_5CCC(var_r31, var_r23->data.children[var_r22]); + } + break; + case 2: + fn_1_5684(var_r31, var_r23); + lbl_1_bss_12C->unk_00++; + lbl_1_bss_128++; + break; + } +} + +void fn_1_6280(ModelData *arg1, ParticleData *particle, Mtx matrix) +{ + s32 sp3C; + s32 sp38; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + HsfanimStruct01 *var_r31; + M433DllUnkStruct *var_r30; + s32 var_r28; + s32 var_r27; + + var_r30 = particle->unk_1C; + var_f29 = var_r30->unk_08 - var_r30->unk_0C; + var_f30 = var_r30->unk_10 - var_r30->unk_14; + var_f28 = var_r30->unk_18 - var_r30->unk_1C; + switch (var_r30->unk_04) { + case 2: + break; + case 0: + for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < (0.3f * particle->unk_30); var_r28++, var_r31++) { + var_r31->unk00 = 1; + var_r31->unk34.x = var_r30->unk_0C + (var_f29 * (fn_1_7500() / 65536.0f)); + var_r31->unk34.y = (var_r30->unk_14 + ((200.0f + var_f30) * (fn_1_7500() / 65536.0f))) - 100.0f; + var_r31->unk34.z = var_r30->unk_1C + (var_f28 * (fn_1_7500() / 65536.0f)); + var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = var_r31->unk40.a = 0xFF; + var_r31->unk2C = 26.0f + (10.0f * (fn_1_7500() / 65536.0f)); + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = -1.6333333f * (fn_1_7500() / 65536.0f); + var_r31->unk08.z = 0.0f; + var_r31->unk14.x = var_r31->unk14.y = var_r31->unk14.z = 0.0f; + var_r31->unk30 = 360.0f * (fn_1_7500() / 65536.0f); + var_r31->unk02 = 0; + } + for (; var_r28 < particle->unk_30; var_r28++, var_r31++) { + var_r31->unk00 = 0; + var_r31->unk40.a = 0; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = -1.6333333f * (fn_1_7500() / 65536.0f); + var_r31->unk08.z = 0.0f; + var_r31->unk14.x = var_r31->unk14.y = var_r31->unk14.z = 0.0f; + } + particle->unk_04.x = particle->unk_04.y = particle->unk_04.z = 0.0f; + var_r30->unk_04++; + break; + case 1: + particle->unk_04.x = particle->unk_04.y = particle->unk_04.z = 0.0f; + var_r30->unk_06 = 0; + break; + case 3: + particle->unk_04.x *= 0.95f; + if (particle->unk_04.x < 0.0f) { + var_f27 = -particle->unk_04.x; + } + else { + var_f27 = particle->unk_04.x; + } + if (var_f27 < 0.01f) { + var_r30->unk_04 = 1; + } + break; + } + for (var_r31 = particle->unk_48, var_r27 = 0, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + switch (var_r31->unk00_s16) { + case 0: + if (((var_r28 > (0.4f * particle->unk_30)) && (particle->unk_04.x == 0.0f)) || (var_r27 >= (10.0f + (0.75f * particle->unk_04.x)))) { + var_r31->unk2C = 0.01f; + } + else { + if (((fn_1_7500() & 3) == 0) || (particle->unk_04.x == 0.0f)) { + var_r31->unk34.x = var_r30->unk_0C + (var_f29 * (fn_1_7500() / 65536.0f)); + var_r31->unk34.y = var_r30->unk_10 + (100.0f * (fn_1_7500() / 65536.0f)); + var_r31->unk40.a = 7; + } + else { + if (particle->unk_04.x > 0.0f) { + var_r31->unk34.x = var_r30->unk_0C - (100.0f * (fn_1_7500() / 65536.0f)); + } + else { + var_r31->unk34.x = var_r30->unk_08 + (100.0f * (fn_1_7500() / 65536.0f)); + } + var_r31->unk34.y = var_r30->unk_10 - (var_f30 * (fn_1_7500() / 65536.0f)); + var_r31->unk40.a = 0xFF; + } + var_r31->unk34.z = var_r30->unk_1C + (var_f28 * (fn_1_7500() / 65536.0f)); + var_r31->unk2C = 28.0f + (10.0f * (fn_1_7500() / 65536.0f)); + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = -1.6333333f * (fn_1_7500() / 65536.0f); + var_r31->unk08.z = 0.0f; + var_r31->unk08.x = 0.25f * var_r31->unk08.y * ((fn_1_7500() - 0x8000) / 32768.0f); + var_r31->unk14.x = var_r31->unk14.y = var_r31->unk14.z = 0.0f; + var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = 0xFF; + var_r31->unk02 = 0; + var_r27++; + var_r31->unk00_s16++; + } + break; + case 1: + var_r31->unk08.y += -1.6333333f; + var_r31->unk08.y += 0.19998f * (1.6333333f * (4.81f + (0.005f * var_r31->unk2C))); + if (var_r31->unk02 != 0) { + var_r31->unk02--; + var_r31->unk08.y *= 0.8f; + var_r31->unk08.y += 0.0025f * (-1.6333333f * var_r31->unk2C); + } + else if ((fn_1_7500() & 0x7F) == 0) { + var_r31->unk02 = (s32)(30.0f * (fn_1_7500() / 65536.0f)); + } + if (var_r31->unk08.x < 0.0f) { + var_f26 = -var_r31->unk08.x; + } + else { + var_f26 = var_r31->unk08.x; + } + if (var_f26 < 0.02f) { + var_r31->unk14.x = 0.025f * (var_r31->unk2C * (-1.6333333f * ((fn_1_7500() - 0x8000) / 32768.0f))); + if (var_r31->unk14.x > 0.0f) { + var_r31->unk08.x = 0.02f + (0.04f * var_r31->unk14.x); + } + else { + var_r31->unk08.x = (0.04f * var_r31->unk14.x) - 0.02f; + } + } + else { + var_f31 = var_r31->unk08.x - var_r31->unk14.x; + var_r31->unk08.x = var_r31->unk14.x + (0.98f * var_f31); + if (var_f31 < 0.0f) { + var_f25 = -var_f31; + } + else { + var_f25 = var_f31; + } + if (var_f25 < 0.02f) { + var_r31->unk14.x = 0.0f; + } + } + if ((var_r31->unk34.y < (var_r30->unk_14 - 100.0f)) || (var_r31->unk34.x > (100.0f + var_r30->unk_08)) + || (var_r31->unk34.x < (var_r30->unk_0C - 100.0f))) { + var_r31->unk00 = 0; + } + if (var_r31->unk34.y > (100.0f + var_r30->unk_10)) { + var_r31->unk34.y = var_r30->unk_14 - (100.0f * (fn_1_7500() / 65536.0f)); + } + if (var_r31->unk34.y < var_r30->unk_14) { + var_r31->unk40.a *= 0.9f; + } + else if (var_r31->unk40.a < 0xFF) { + var_r31->unk40.a += 8; + } + break; + } + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + if (particle->unk_04.x != 0.0f) { + sp8 = particle->unk_04; + sp8.x *= var_r31->unk2C / 28.0f; + sp8.y = (((u8)var_r31->unk2C & 1) != 0 ? 1.0f : -1.0f) * (sp8.x * (0.05f + (s32)(0.2f * (fn_1_7500() / 65536.0f)))); + VECAdd(&var_r31->unk34, &sp8, &var_r31->unk34); + } + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); +} + +s16 fn_1_71AC(s32 arg0, s16 arg1, ParticleHook hook) +{ + HsfanimStruct01 *var_r31; + ParticleData *var_r30; + s32 var_r29; + s32 var_r28; + M433DllUnkStruct *var_r27; + AnimData *var_r25; + + var_r25 = HuSprAnimRead(HuDataReadNum(arg0, MEMORY_DEFAULT_NUM)); + var_r28 = Hu3DParticleCreate(var_r25, arg1); + Hu3DParticleHookSet(var_r28, hook); + var_r30 = Hu3DData[var_r28].unk_120; + var_r27 = fn_1_72D4(0x48); + var_r30->unk_1C = var_r27; + var_r27->unk_04 = 0; + var_r31 = var_r30->unk_48; + memset(var_r31, 0, arg1 * 0x44); + for (var_r29 = 0; var_r29 < arg1; var_r29++, var_r31++) { + var_r31->unk06 = -1; + var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = var_r31->unk40.a = 0xFF; + } + return var_r28; +} + +void fn_1_7294(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + lbl_1_bss_A8[var_r31] = NULL; + } +} + +void *fn_1_72D4(s32 arg0) +{ + s32 i; + + for (i = 0; i < 0x20; i++) { + if (!lbl_1_bss_A8[i]) { + break; + } + } + if (i == 0x20) { + return NULL; + } + lbl_1_bss_A8[i] = HuMemDirectMallocNum(HEAP_SYSTEM, arg0, MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_A8[i], 0, arg0); + return lbl_1_bss_A8[i]; +} + +void fn_1_739C(M433DllUnkStruct2 *arg0) +{ + s32 var_r31; + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + if (lbl_1_bss_A8[var_r31] == arg0) { + break; + } + } + if (var_r31 != 0x20) { + HuMemDirectFree(lbl_1_bss_A8[var_r31]); + lbl_1_bss_A8[var_r31] = NULL; + } +} + +void fn_1_7430(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + if (lbl_1_bss_A8[var_r31]) { + HuMemDirectFree(lbl_1_bss_A8[var_r31]); + lbl_1_bss_A8[var_r31] = NULL; + } + } +} + +void fn_1_74B4(s16 arg0, Mtx arg1) +{ + ModelData *var_r31 = &Hu3DData[arg0]; + MTXCopy(arg1, var_r31->unk_F0); +} + +u32 lbl_1_data_14C = 0x41C64E6D; + +s32 fn_1_7500(void) +{ + lbl_1_data_14C *= 0x41C64E6D; + lbl_1_data_14C += 0x3039; + return lbl_1_data_14C >> 0x10; +} + +void fn_1_7554(s32 arg0, s32 *arg1) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + for (var_r31 = 0; var_r31 < arg0; var_r31++) { + arg1[var_r31] = var_r31; + } + for (var_r31 = 0; var_r31 < (arg0 - 1); var_r31++) { + lbl_1_data_14C *= 0x41C64E6D; + lbl_1_data_14C += 0x3039; + var_r28 = lbl_1_data_14C >> 0x10; + var_r27 = var_r28; + var_r30 = arg0 * (var_r27 / 65536.0f); + var_r29 = arg1[var_r31]; + arg1[var_r31] = arg1[var_r30]; + arg1[var_r30] = var_r29; + } +} + +float fn_1_7690(float arg8, float arg9, float argA) +{ + float var_f31; + + if (arg8 > 180.0f) { + arg8 -= 360.0f; + } + else if (arg8 <= -180.0f) { + arg8 += 360.0f; + } + if (arg9 > 180.0f) { + arg9 -= 360.0f; + } + else if (arg9 <= -180.0f) { + arg9 += 360.0f; + } + var_f31 = arg8 - arg9; + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + else if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + arg8 = arg9 + (var_f31 * argA); + if (arg8 > 180.0f) { + return arg8 - 360.0f; + } + if (arg8 <= -180.0f) { + arg8 += 360.0f; + } + return arg8; +} + +void fn_1_77F8(Mtx arg0, float arg8, float arg9, float argA) +{ + Mtx sp38; + Mtx sp8; + + if (argA != 0.0f) { + MTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + } + else { + MTXIdentity(arg0); + } + if (arg8 != 0.0f) { + MTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + MTXConcat(sp38, arg0, arg0); + } + if (arg9 != 0.0f) { + MTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + MTXConcat(sp8, arg0, arg0); + } +} + +void fn_1_7918(Mtx arg0, Vec *arg1) +{ + float var_f29; + float var_f28; + + arg1->x = atan2d(arg0[1][2], arg0[2][2]); + if (arg1->x < 0.0f) { + arg1->x += 360.0f; + } + arg1->z = atan2d(arg0[0][1], arg0[0][0]); + if (arg1->z < 0.0f) { + arg1->z += 360.0f; + } + var_f29 = -arg0[0][2]; + var_f28 = sqrtf((1.0 - (var_f29 * var_f29)) < 0.0 ? (-(1.0 - (var_f29 * var_f29))) : (1.0 - (var_f29 * var_f29))); + if ((arg1->x > 90.0f) && (arg1->x < 270.0f) && (arg1->z > 90.0f) && (arg1->z < 270.0f)) { + arg1->x = fmod(180.0f + arg1->x, 360.0); + arg1->z = fmod(180.0f + arg1->z, 360.0); + var_f28 = -var_f28; + } + arg1->y = atan2d(var_f29, var_f28); + if (arg1->y < 0.0f) { + arg1->y += 360.0f; + } +} + +void fn_1_7CB4(Mtx arg0, Vec *arg1) +{ + float var_f29; + float var_f27; + + arg1->z = atan2d(arg0[0][1], arg0[1][1]); + if (arg1->z < 0.0f) { + arg1->z += 360.0f; + } + arg1->y = atan2d(arg0[0][2], arg0[2][2]); + if (arg1->y < 0.0f) { + arg1->y += 360.0f; + } + var_f29 = -arg0[2][1]; + var_f27 = sqrtf((1.0 - (var_f29 * var_f29)) < 0.0 ? (-(1.0 - (var_f29 * var_f29))) : (1.0 - (var_f29 * var_f29))); + arg1->x = atan2d(var_f29, var_f27); + if (arg1->x < 0.0f) { + arg1->x += 360.0f; + } +} + +float fn_1_7F94(Vec *arg0) +{ + float var_f30 = (arg0->z * arg0->z) + ((arg0->x * arg0->x) + (arg0->y * arg0->y)); + var_f30 = sqrtf(var_f30); + if (var_f30 != 0.0f) { + float var_f29 = 1.0f / var_f30; + arg0->x = arg0->x * var_f29; + arg0->y = arg0->y * var_f29; + arg0->z = arg0->z * var_f29; + } + else { + arg0->x = arg0->y = arg0->z = 0.0f; + } + return var_f30; +} + +void fn_1_812C(Vec arg0, Vec arg1, Vec *arg2, float arg8) +{ + if (arg8 <= 0.0f) { + arg2->x = arg0.x; + arg2->y = arg0.y; + arg2->z = arg0.z; + arg8 = 0.0f; + } + else if (arg8 >= 1.0f) { + arg2->x = arg0.x + arg1.x; + arg2->y = arg0.y + arg1.y; + arg2->z = arg0.z + arg1.z; + arg8 = 1.0f; + } + else { + arg2->x = arg0.x + (arg8 * arg1.x); + arg2->y = arg0.y + (arg8 * arg1.y); + arg2->z = arg0.z + (arg8 * arg1.z); + } +} + +float fn_1_8204(Vec arg0, Vec arg1, Vec arg2) +{ + float var_f31; + float temp_f30; + + var_f31 = arg2.x * (arg1.x - arg0.x) + arg2.y * (arg1.y - arg0.y) + arg2.z * (arg1.z - arg0.z); + temp_f30 = -(arg2.x * arg2.x + arg2.y * arg2.y + arg2.z * arg2.z); + if (temp_f30 != 0.0f) { + var_f31 /= temp_f30; + } + return var_f31; +} + +float fn_1_82C0(Vec *arg0, Vec *arg1, Vec *arg2) +{ + Vec sp44; + float var_f31; + + if (arg2->x * arg2->x + arg2->y * arg2->y + arg2->z * arg2->z == 0.0f) { + return (arg0->x - arg1->x) * (arg0->x - arg1->x) + (arg0->y - arg1->y) * (arg0->y - arg1->y) + (arg0->z - arg1->z) * (arg0->z - arg1->z); + } + var_f31 = fn_1_8204(*arg0, *arg1, *arg2); + fn_1_812C(*arg1, *arg2, &sp44, var_f31); + return (arg0->x - sp44.x) * (arg0->x - sp44.x) + (arg0->y - sp44.y) * (arg0->y - sp44.y) + (arg0->z - sp44.z) * (arg0->z - sp44.z); +} + +float fn_1_85FC(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ + float var_f30; + + if (((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y))) == 0.0f) { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } + var_f30 = fn_1_8204(*arg0, *arg1, *arg2); + fn_1_812C(*arg1, *arg2, arg3, var_f30); + + arg4->x = arg0->x - arg3->x; + arg4->y = arg0->y - arg3->y; + arg4->z = arg0->z - arg3->z; + return fn_1_7F94(arg4); +} + +float fn_1_8AAC(float arg8, float arg9, float argA, float argB) +{ + float var_f31 = 1.0 - arg8; + float var_f30 = (argB * (arg8 * arg8)) + ((arg9 * (var_f31 * var_f31)) + (2.0 * (argA * (var_f31 * arg8)))); + return var_f30; +} + +void fn_1_8B24(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = fn_1_8AAC(arg8, *arg0++, *arg1++, *arg2++); + } +} + +float fn_1_8C40(float arg8, float arg9, float argA, float argB) +{ + float var_f31 = 2.0 * ((arg8 * argB) + (((arg8 - 1.0) * arg9) + ((1.0 - (2.0 * arg8)) * argA))); + return var_f31; +} + +void fn_1_8CB8(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) +{ + float spC[3]; + float var_f29; + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + spC[var_r31] = fn_1_8C40(arg8, *arg0++, *arg1++, *arg2++); + } + var_f29 = sqrtf((spC[2] * spC[2]) + ((spC[0] * spC[0]) + (spC[1] * spC[1]))); + if (var_f29) { + var_f29 = 1.0 / var_f29; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = var_f29 * spC[var_r31]; + } + return; + } + *arg3++ = 0.0f; + *arg3++ = 0.0f; + *arg3++ = 1.0f; +} + +void fn_1_8F90(float *arg0, float *arg1, float *arg2, s32 arg3) +{ + float sp48[16]; + float sp8[16]; + double var_f31; + s32 var_r31; + + arg2[0] = 0.0f; + arg2[arg3 - 1] = 0.0f; + for (var_r31 = 0; var_r31 < (arg3 - 1); var_r31++) { + sp48[var_r31] = arg0[var_r31 + 1] - arg0[var_r31]; + if (sp48[var_r31] == 0.0f) { + sp8[var_r31 + 1] = 0.0f; + } + else { + sp8[var_r31 + 1] = (arg1[var_r31 + 1] - arg1[var_r31]) / sp48[var_r31]; + } + } + arg2[1] = sp8[2] - sp8[1]; + sp8[1] = 2.0f * (arg0[2] - arg0[0]); + for (var_r31 = 1; var_r31 < (arg3 - 2); var_r31++) { + var_f31 = sp48[var_r31] / sp8[var_r31]; + arg2[var_r31 + 1] = (sp8[var_r31 + 2] - sp8[var_r31 + 1]) - (var_f31 * arg2[var_r31]); + sp8[var_r31 + 1] = (2.0f * (arg0[var_r31 + 2] - arg0[var_r31])) - (var_f31 * sp48[var_r31]); + } + arg2[arg3 - 2] -= sp48[arg3 - 2] * arg2[arg3 - 1]; + for (var_r31 = arg3 - 2; var_r31 > 0; var_r31--) { + if (sp8[var_r31] == 0.0f) { + arg2[var_r31] = 0.0f; + } + else { + arg2[var_r31] = (arg2[var_r31] - (sp48[var_r31] * arg2[var_r31 + 1])) / sp8[var_r31]; + } + } +} + +float fn_1_9248(float arg8, float *arg0, float *arg1, float *arg2, s32 arg3) +{ + float var_f31; + float var_f30; + float var_f29; + + s32 var_r31 = arg8; + arg8 = arg8 - var_r31; + var_f31 = arg0[var_r31 + 1] - arg0[var_r31]; + var_f30 = var_f31 * arg8; + var_f29 = arg1[var_r31] + + (var_f30 + * ((var_f30 * ((3.0f * arg2[var_r31]) + ((var_f30 * (arg2[var_r31 + 1] - arg2[var_r31])) / var_f31))) + + (((arg1[var_r31 + 1] - arg1[var_r31]) / var_f31) - (var_f31 * ((2.0f * arg2[var_r31]) + arg2[var_r31 + 1]))))); + if (var_f31 == 0.0f) { + var_f29 = arg1[var_r31]; + } + return var_f29; +} + +void fn_1_939C(float *arg0, float (*arg1)[3], float (*arg2)[3], s32 var_r28) +{ + float spD4[16]; + float sp94[16]; + Vec sp8; + s32 var_r31; + s32 var_r30; + s32 var_r27; + + arg0[0] = 0.0f; + for (var_r30 = 1; var_r30 < var_r28; var_r30++) { + VECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8); + arg0[var_r30] = arg0[var_r30 - 1] + VECMag(&sp8); + } + for (var_r27 = 0; var_r27 < 3; var_r27++) { + for (var_r30 = 0; var_r30 < var_r28; var_r30++) { + spD4[var_r30] = arg1[var_r30][var_r27]; + } + fn_1_8F90(arg0, spD4, sp94, var_r28); + for (var_r30 = 0; var_r30 < var_r28; var_r30++) { + arg2[var_r30][var_r27] = sp94[var_r30]; + } + } +} + +void fn_1_977C(float arg8, float *arg0, float *arg1, float (*arg2)[3], float (*arg3)[3], s32 arg4) +{ + float sp48[16]; + float sp8[16]; + s32 var_r30; + s32 var_r29; + + for (var_r29 = 0; var_r29 < 3; var_r29++) { + for (var_r30 = 0; var_r30 < arg4; var_r30++) { + sp48[var_r30] = arg2[var_r30][var_r29]; + sp8[var_r30] = arg3[var_r30][var_r29]; + } + arg0[var_r29] = fn_1_9248(arg8, arg1, sp48, sp8, 3); + } +} + +u8 fn_1_9990(Vec *sp8) +{ + u32 var_r31; + M433DllUnkStruct2 *var_r30; + s32 var_r29; + + var_r29 = 0; + var_r30 = lbl_1_bss_90.unk_04; + for (var_r31 = 0; var_r31 < lbl_1_bss_90.unk_00; var_r31++, var_r30++) { + if (fn_1_5370(var_r30, sp8) != 0) { + break; + } + } + if (var_r31 < lbl_1_bss_90.unk_00) { + var_r29 = 1; + } + return var_r29; +} + +void fn_1_9A30(u8 arg0, float arg8, Vec *arg1, Vec *arg2, float arg9) +{ + M433DllMapWork2 *var_r31; + + var_r31 = lbl_1_bss_98[arg0]->data; + var_r31->unk_00 = 0; + var_r31->unk_144 = arg8; + var_r31->unk_148 = arg8; + var_r31->unk_1C = var_r31->unk_04; + var_r31->unk_34.x = arg1->x; + var_r31->unk_34.y = arg1->y; + var_r31->unk_34.z = arg1->z; + var_r31->unk_28 = var_r31->unk_10; + var_r31->unk_40.x = arg2->x; + var_r31->unk_40.y = arg2->y; + var_r31->unk_40.z = arg2->z; + var_r31->unk_134 = var_r31->unk_130; + var_r31->unk_138 = arg9; +} + +void fn_1_9ADC(u8 arg0) +{ + Vec sp14; + Vec sp8; + float var_f31; + M433DllMapWork2 *work; + omObjData *var_r30; + + sp14.x = 0.0f; + sp14.y = 80.0f; + sp14.z = 0.0f; + sp8.x = 0.0f; + sp8.y = 0.0f; + sp8.z = 0.0f; + var_f31 = 600.0f; + work = lbl_1_bss_98[arg0]->data; + work->unk_00 = 0; + work->unk_148 = work->unk_144 = 1.0f; + work->unk_1C = work->unk_04; + work->unk_34.x = sp14.x; + work->unk_34.y = sp14.y; + work->unk_34.z = sp14.z; + work->unk_28 = work->unk_10; + work->unk_40.x = sp8.x; + work->unk_40.y = sp8.y; + work->unk_40.z = sp8.z; + work->unk_134 = work->unk_130; + work->unk_138 = var_f31; + Hu3DCameraPerspectiveSet(1 << arg0, 45.0f, 100.0f, 5000.0f, 1.2f); + Hu3DCameraViewportSet(1 << arg0, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraViewportSet(2 >> arg0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1 << arg0, 0, 0, 0x280, 0x1E0); + Hu3DCameraScissorSet(2 >> arg0, 0, 0, 0, 0); + var_r30 = lbl_1_bss_A0; + Hu3DModelAttrSet(var_r30->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r30->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r30->model[6], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r30->model[7], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r30->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r30->model[arg0 + 4], HU3D_ATTR_DISPOFF); + var_r30->func = fn_1_52D8; +} + +void fn_1_9DE8(u8 arg0, float arg8, s8 arg1) +{ + ParticleData *var_r31; + M433DllUnkStruct *var_r30; + + var_r31 = Hu3DData[lbl_1_bss_A0->model[arg0 + 6]].unk_120; + var_r30 = ((ParticleData *)Hu3DData[lbl_1_bss_A0->model[arg0 + 6]].unk_120)->unk_1C; + var_r30->unk_04 = 2; + var_r31->unk_04.x = arg8 * arg1; +} + +void fn_1_9EA8(u8 arg0) +{ + M433DllUnkStruct *var_r31 = ((ParticleData *)Hu3DData[lbl_1_bss_A0->model[arg0 + 6]].unk_120)->unk_1C; + if (var_r31->unk_04 == 2) { + var_r31->unk_04 = 3; + } +} + +u8 fn_1_9F08(u8 arg0) +{ + M433DllUnkStruct *var_r31 = ((ParticleData *)Hu3DData[lbl_1_bss_A0->model[arg0 + 6]].unk_120)->unk_1C; + return var_r31->unk_04; +} diff --git a/src/REL/m428Dll/player.c b/src/REL/m428Dll/player.c new file mode 100644 index 00000000..4964e8a5 --- /dev/null +++ b/src/REL/m428Dll/player.c @@ -0,0 +1,3401 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "dolphin/mtx/GeoTypes.h" +#include "ext_math.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfload.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/init.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m428Dll.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/frand.h" +#endif + +typedef struct M428DllBss13CStruct { + /* 0x00 */ float unk_00; + /* 0x04 */ char pad_04[0x3C]; /* maybe part of unk_00[0x10]? */ +} M428DllBss13CStruct; /* size = 0x40 */ + +typedef struct M428DllData4B0Struct { + Vec unk_00; + float unk_0C; +} M428DllData4B0Struct; /* size = 0x10 */ + +typedef struct M428DllData500Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; +} M428DllData500Struct; /* size = 0x08 */ + +typedef struct M428DllPlayerWork { + omObjData *unk_00[2]; // M428DllPlayerWork2 + s16 unk_08[2]; + s16 unk_0C; + s16 unk_0E; + s16 unk_10; + s16 unk_12; + s32 unk_14; + s32 unk_18; + float unk_1C; + s32 unk_20; + s32 unk_24; + s32 unk_28; + float unk_2C; + float unk_30; + float unk_34; + s32 unk_38; + Vec unk_3C; + float unk_48; + float unk_4C[2]; + float unk_54[2]; + float unk_5C; + float unk_60; + Vec unk_64[2]; + Vec unk_7C; + Vec unk_88; + Vec unk_94; + Vec unk_A0; + Vec unk_AC; + s32 unk_B8; + s32 unk_BC; + s32 unk_C0; + s32 unk_C4; + float unk_C8; +} M428DllPlayerWork; /* size = 0xCC */ + +typedef struct M428DllPlayerWork2 { + s16 unk_00; + s16 unk_02; + s16 unk_04; + s16 unk_06; + s16 unk_08; + s16 unk_0A; + s16 unk_0C; + s16 unk_0E; + s16 unk_10; + float unk_14; + float unk_18; + s16 unk_1C; + s16 unk_1E; + s16 unk_20; + s16 unk_22; + s16 unk_24; + s16 unk_26; + float unk_28; + float unk_2C; + s32 unk_30; + s32 unk_34; + s32 unk_38; + Vec unk_3C; + Vec unk_48; + Vec unk_54; + Mtx unk_60; + Vec unk_90; + char unk_9C[0x100]; + s32 unk_19C; + s32 unk_1A0; + s32 unk_1A4; + s32 unk_1A8; + float unk_1AC; + s32 unk_1B0; + s32 unk_1B4; + Vec unk_1B8; +} M428DllPlayerWork2; /* size = 0x1C4 */ + +typedef struct M428DllPlayerWork3 { + s32 unk_00; + s32 unk_04[2]; + float unk_0C[2][2]; + s32 unk_1C[2]; + float unk_24[2][2]; + AnimData *unk_34; + AnimData *unk_38; + s32 unk_3C[2][2]; + s32 unk_4C[2][2]; +} M428DllPlayerWork3; /* size = 0x5C */ + +typedef struct M428DllPlayerUnkStruct { + s16 unk_00; + s16 unk_02; + s32 unk_04; + Vec unk_08[4]; +} M428DllPlayerUnkStruct; /* size = 0x38 */ + +typedef struct M428DllPlayerUnk120Struct { + s16 unk_00; + s16 unk_02; + float unk_04; + float unk_08; + s32 unk_0C; + s32 unk_10; + float unk_14; + float unk_18; + s32 unk_1C; + Vec unk_20; + Vec unk_2C; + Vec unk_38; + s32 unk_44; + float unk_48; + float unk_4C; + float unk_50; + M428DllPlayerUnkStruct *unk_54; +} M428DllPlayerUnk120Struct; /* size = 0x58 */ + +typedef struct M428DllPlayerUnkStruct2 { + s16 unk_00; + s16 unk_02; + float unk_04; + float unk_08; + float unk_0C; + char unk10[8]; + float unk_18; + char unk1C[0xC]; + float unk_28; + float unk_2C; + float unk_30; + float unk_34; + Vec unk_38; + GXColor unk_44; + s32 unk_48; +} M428DllPlayerUnkStruct2; /* size = 0x4C */ + +typedef void (*M428DllPlayerHook)(ModelData *model, struct M428DllPlayerUnk120Struct2 *arg1, Mtx matrix); + +typedef struct M428DllPlayerUnk120Struct2 { + s16 unk_00; + s16 unk_02; + char unk04[0x1C]; + u8 unk_20; + u8 unk_21; + u8 unk_22; + u8 unk_23; + char unk24[2]; + s16 unk_26; + s32 unk_28; + s32 unk_2C; + u32 unk_30; + u32 unk_34; + AnimData *unk_38; + M428DllPlayerUnkStruct2 *unk_3C; + Vec *unk_40; + Vec2f *unk_44; + void *unk_48; + M428DllPlayerHook unk_4C; + ModelData *unk_50; +} M428DllPlayerUnk120Struct2; /* size = 0x54 */ + +typedef struct M428DllPlayerWork4 { + s32 unk_00[2]; + s32 unk_08[2]; + AnimData *unk_10; +} M428DllPlayerWork4; /* size = 0x14 */ + +void fn_1_102A8(ModelData *modle, Mtx matrix); +void fn_1_10530(s32 arg0, Vec *arg1, Vec *arg2); +void fn_1_10590(s32 arg0, s32 arg1, s32 arg2, Vec *arg3); +void fn_1_105E8(s32 arg0, float arg8, float arg9); +s32 fn_1_10788(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3); +void fn_1_10A88(void); +void fn_1_11014(omObjData *object); +void fn_1_115F8(void); +void fn_1_118A8(s32 arg0, float arg8); +void fn_1_11930(void); +void fn_1_11A60(omObjData *object); +void fn_1_11C20(void); +s32 fn_1_11DE4(s32 arg0, Vec arg1, Vec arg2, float arg8, float arg9, float argA, float argB, GXColor arg3); +float fn_1_1236C(float arg8, float arg9, float argA); +void fn_1_129B4(float arg8, Vec *arg0, Vec *arg1, Vec *arg2); +void fn_1_12AA4(float arg8, Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3); +s16 fn_1_12CD4(AnimData *arg0, s16 arg1); +void fn_1_134C0(ModelData *model, Mtx matrix); +void fn_1_13D9C(s16 arg0, s16 arg1, s32 arg2); +void fn_1_13E14(s16 arg0, s16 arg1, Vec arg2); +void fn_1_13EC8(s16 arg0, s16 arg1, float arg8); +s32 fn_1_13F54(s16 arg0, char *arg1, Mtx arg2, s32 arg3); +void fn_1_14088(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3); +void fn_1_A108(omObjData *object); +void fn_1_A4C8(omObjData *object); +void fn_1_B3D4(omObjData *object); +void fn_1_B43C(omObjData *object); +void fn_1_BBD0(omObjData *object); +void fn_1_E5F4(omObjData *object); +void fn_1_E600(omObjData *object); +s32 fn_1_F288(Vec *arg0, Vec *arg1, float arg8); +s32 fn_1_F538(Vec *arg0, Vec *arg1, Vec *arg2, float arg8); +s32 fn_1_FB8C(Vec *arg0, Vec *arg1, float arg8, s32 arg2, s32 arg3); + +extern u32 GlobalCounter; + +Vec lbl_1_data_150[4] = { + { -140.0f, -400.0f, 0.0f }, + { 140.0f, -300.0f, 0.0f }, + { -140.0f, -300.0f, 0.0f }, + { 140.0f, -400.0f, 0.0f }, +}; +Vec lbl_1_data_180[4] = { + { -100.0f, -10.0f, 150.0f }, + { 100.0f, -10.0f, 150.0f }, + { -100.0f, -10.0f, 150.0f }, + { 100.0f, -10.0f, 150.0f }, +}; +Vec lbl_1_data_1B0[4][0xE] = { + { + { -11.0f, 214.0f, 39.0f }, + { -11.0f, 400.0f, 46.0f }, + { -11.0f, 668.0f, 56.0f }, + { -11.0f, 931.0f, 42.0f }, + { 7.0f, 1131.0f, 65.0f }, + { -452.0f, 1449.0f, 57.0f }, + { -478.0f, 1763.0f, 48.0f }, + { -452.0f, 2001.0f, 44.0f }, + { -311.0f, 2120.0f, 55.0f }, + { -85.0f, 2442.0f, 42.0f }, + { -32.0f, 2876.0f, 43.0f }, + { -12.0f, 3300.0f, 48.0f }, + { -42.0f, 4500.0f, 48.0f }, + { -42.0f, 4500.0f, 48.0f }, + }, + { + { 16.0f, 203.0f, 40.0f }, + { 0.0f, 456.0f, 50.0f }, + { 15.0f, 650.0f, 58.0f }, + { -268.0f, 935.0f, 51.0f }, + { -463.0f, 1205.0f, 66.0f }, + { -663.0f, 1313.0f, 69.0f }, + { -460.0f, 1600.0f, 59.0f }, + { -333.0f, 1946.0f, 46.0f }, + { -82.0f, 2188.0f, 44.0f }, + { -76.0f, 2374.0f, 40.0f }, + { -108.0f, 2620.0f, 43.0f }, + { -95.0f, 2990.0f, 46.0f }, + { -270.0f, 3445.0f, 46.0f }, + { -42.0f, 4500.0f, 48.0f }, + }, + { + { 26.0f, 354.0f, 46.0f }, + { 29.0f, 604.0f, 57.0f }, + { 30.0f, 877.0f, 39.0f }, + { 51.0f, 1086.0f, 64.0f }, + { 360.0f, 1196.0f, 46.0f }, + { 398.0f, 1416.0f, 39.0f }, + { 468.0f, 1658.0f, 43.0f }, + { 468.0f, 1944.0f, 53.0f }, + { 135.0f, 2174.0f, 47.0f }, + { 107.0f, 2430.0f, 61.0f }, + { 98.0f, 2698.0f, 43.0f }, + { 90.0f, 2995.0f, 50.0f }, + { 0.0f, 4500.0f, 48.0f }, + { 0.0f, 4500.0f, 48.0f }, + }, + { + { -24.0f, 313.0f, 41.0f }, + { -11.0f, 529.0f, 51.0f }, + { -33.0f, 799.0f, 44.0f }, + { 7.0f, 990.0f, 53.0f }, + { 135.0f, 1196.0f, 57.0f }, + { 393.0f, 1379.0f, 39.0f }, + { 429.0f, 1457.0f, 42.0f }, + { 420.0f, 1984.0f, 54.0f }, + { 190.0f, 2239.0f, 53.0f }, + { 70.0f, 2532.0f, 55.0f }, + { 75.0f, 2933.0f, 44.0f }, + { 75.0f, 4500.0f, 48.0f }, + { 75.0f, 4500.0f, 48.0f }, + { 75.0f, 4500.0f, 48.0f }, + }, +}; +Vec lbl_1_data_450[4] = { + { -30.000002f, -10.0f, -90.0f }, + { 20.0f, -10.0f, -70.0f }, + { 0.0f, -10.0f, 0.0f }, + { 0.0f, -10.0f, 0.0f }, +}; +Vec lbl_1_data_480[4] = { + { 15.0f, 150.0f, 0.0f }, + { 15.0f, 210.0f, 0.0f }, + { 0.0f, 180.0f, 0.0f }, + { 0.0f, 180.0f, 0.0f }, +}; +M428DllData4B0Struct lbl_1_data_4B0[5] = { + { { -400.0f, 700.0f, 0.0f }, 200.0f }, + { { 400.0f, 900.0f, 0.0f }, 200.0f }, + { { 0.0f, 1800.0f, 0.0f }, 220.0f }, + { { -600.0f, 3100.0f, 0.0f }, 300.0f }, + { { 600.0f, 2880.0f, 0.0f }, 300.0f }, +}; +M428DllData500Struct lbl_1_data_500[0xC] = { + { 0x5F0000, 0 }, + { 0x5F0002, 0 }, + { 0x5F0003, 0 }, + { -1, 0 }, + { -1, 1 }, + { -1, 2 }, + { -1, 3 }, + { 0x5F0006, 0 }, + { 0x5F0014, 0 }, + { 0x5F005B, 0 }, + { 0x5F0017, 0 }, + { 0x5F0018, 0 }, +}; +s32 lbl_1_data_560[4][8] = { + { + DATA_MAKE_NUM(DATADIR_M428, 0x11), + DATA_MAKE_NUM(DATADIR_M428, 0x12), + DATA_MAKE_NUM(DATADIR_M428, 0x13), + DATA_MAKE_NUM(DATADIR_M428, 0x14), + DATA_MAKE_NUM(DATADIR_M428, 0x15), + DATA_MAKE_NUM(DATADIR_M428, 0x16), + DATA_MAKE_NUM(DATADIR_M428, 0x17), + DATA_MAKE_NUM(DATADIR_M428, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_M428, 0x19), + DATA_MAKE_NUM(DATADIR_M428, 0x1A), + DATA_MAKE_NUM(DATADIR_M428, 0x1B), + DATA_MAKE_NUM(DATADIR_M428, 0x1C), + DATA_MAKE_NUM(DATADIR_M428, 0x1D), + DATA_MAKE_NUM(DATADIR_M428, 0x1E), + DATA_MAKE_NUM(DATADIR_M428, 0x1F), + DATA_MAKE_NUM(DATADIR_M428, 0x20), + }, + { + DATA_MAKE_NUM(DATADIR_M428, 0x21), + DATA_MAKE_NUM(DATADIR_M428, 0x22), + DATA_MAKE_NUM(DATADIR_M428, 0x23), + DATA_MAKE_NUM(DATADIR_M428, 0x24), + DATA_MAKE_NUM(DATADIR_M428, 0x25), + DATA_MAKE_NUM(DATADIR_M428, 0x26), + DATA_MAKE_NUM(DATADIR_M428, 0x27), + DATA_MAKE_NUM(DATADIR_M428, 0x28), + }, + { + DATA_MAKE_NUM(DATADIR_M428, 0x29), + DATA_MAKE_NUM(DATADIR_M428, 0x2A), + DATA_MAKE_NUM(DATADIR_M428, 0x2B), + DATA_MAKE_NUM(DATADIR_M428, 0x2C), + DATA_MAKE_NUM(DATADIR_M428, 0x2D), + DATA_MAKE_NUM(DATADIR_M428, 0x2E), + DATA_MAKE_NUM(DATADIR_M428, 0x2F), + DATA_MAKE_NUM(DATADIR_M428, 0x30), + }, +}; +Vec lbl_1_data_5E0[8] = { + { 0.0f, -10.0f, -20.0f }, + { 0.0f, -10.0f, -20.0f }, + { 0.0f, -30.000002f, -20.0f }, + { 0.0f, -10.0f, -20.0f }, + { 0.0f, -10.0f, -20.0f }, + { 0.0f, 10.0f, -10.0f }, + { 0.0f, -30.000002f, -20.0f }, + { 0.0f, -10.0f, -20.0f }, +}; +s32 lbl_1_data_640[4] = { 0x80000000, 0x40000000, 0x20000000, 0x10000000 }; +GXColor lbl_1_data_650 = { 0xFF, 0xFF, 0xFF, 0x20 }; +GXColor lbl_1_data_654 = { 0xFF, 0xFF, 0xFF, 0x40 }; + +Process *lbl_1_bss_2D0; +// M428DllPlayerWork +omObjData *lbl_1_bss_2C8[2]; +omObjData *lbl_1_bss_2B8[4]; +// M428DllPlayerWork3 +omObjData *lbl_1_bss_2B4; +// M428DllPlayerWork4 +omObjData *lbl_1_bss_2B0; +M428DllPlayerWork *lbl_1_bss_2AC; +M428DllPlayerWork2 *lbl_1_bss_2A8; +s32 lbl_1_bss_2A4; +s32 lbl_1_bss_29C[2]; +Mtx lbl_1_bss_23C[2]; +M428DllBss13CStruct lbl_1_bss_1BC[2]; +M428DllBss13CStruct lbl_1_bss_13C[2]; +s32 lbl_1_bss_138; +s32 lbl_1_bss_134; +s32 lbl_1_bss_130; + +omObjData *fn_1_9F5C(Process *process) +{ + s32 var_r31; + + lbl_1_bss_2D0 = process; + lbl_1_bss_2A4 = 0; + lbl_1_bss_2AC = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(M428DllPlayerWork), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_2AC, 0, 2 * sizeof(M428DllPlayerWork)); + lbl_1_bss_2A8 = HuMemDirectMallocNum(HEAP_SYSTEM, 4 * sizeof(M428DllPlayerWork2), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_2A8, 0, 4 * sizeof(M428DllPlayerWork2)); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + lbl_1_bss_2C8[var_r31] = omAddObjEx(process, 0x40, 1, 0, -1, fn_1_A108); + lbl_1_bss_2C8[var_r31]->work[0] = var_r31; + } + fn_1_10A88(); + fn_1_11798(0); + fn_1_11930(); + lbl_1_bss_29C[0] = lbl_1_bss_29C[1] = 0; + return lbl_1_bss_2C8[var_r31]; +} + +void fn_1_A0B0(void) +{ + s32 var_r31; + + fn_1_115F8(); + fn_1_11C20(); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + fn_1_B3D4(lbl_1_bss_2C8[var_r31]); + } +} + +void fn_1_A108(omObjData *object) +{ + M428DllPlayerWork *work; + s32 var_r30; + s32 var_r28; + s32 var_r27; + + var_r28 = object->work[0]; + work = &lbl_1_bss_2AC[var_r28]; + object->data = work; + work->unk_0C = var_r28; + work->unk_0E = 0; + work->unk_10 = 0; + work->unk_12 = (u8)frand() % 4; + work->unk_14 = 0; + work->unk_18 = 0; + work->unk_1C = 0.0f; + work->unk_20 = 0; + work->unk_24 = 0; + work->unk_28 = 0; + work->unk_2C = 0.0f; + work->unk_30 = 0.0f; + work->unk_34 = 0.0f; + work->unk_B8 = 0; + work->unk_BC = -1; + work->unk_C0 = work->unk_C4 = 0; + work->unk_C8 = 0.0f; + work->unk_38 = -1; + work->unk_4C[0] = work->unk_4C[1] = 0.0f; + work->unk_48 = 400.0f; + work->unk_54[0] = work->unk_5C = 200.0f; + work->unk_54[1] = work->unk_60 = 200.0f; + work->unk_64[0].x = 0.5f * (lbl_1_data_150[0].x + lbl_1_data_150[1].x); + work->unk_64[0].y = 0.5f * (lbl_1_data_150[0].y + lbl_1_data_150[1].y); + work->unk_64[0].z = 0.5f * (lbl_1_data_150[0].z + lbl_1_data_150[1].z); + work->unk_64[1] = work->unk_64[0]; + work->unk_7C = work->unk_64[0]; + work->unk_88 = work->unk_64[1]; + work->unk_94.x = work->unk_94.y = work->unk_94.z = 0.0f; + work->unk_A0.x = work->unk_A0.y = work->unk_A0.z = 0.0f; + work->unk_AC.x = work->unk_AC.y = work->unk_AC.z = 0.0f; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r27 = lbl_1_bss_50[var_r30 + (var_r28 * 2)]; + work->unk_08[var_r30] = var_r27; + work->unk_00[var_r30] = lbl_1_bss_2B8[var_r27] = omAddObjEx(lbl_1_bss_2D0, 0x41, 2, 0xC, -1, fn_1_B43C); + work->unk_00[var_r30]->data = NULL; + work->unk_00[var_r30]->work[0] = var_r27; + work->unk_00[var_r30]->work[1] = work->unk_0C; + work->unk_00[var_r30]->work[2] = var_r30; + } + object->model[0] = fn_1_FB8C(&lbl_1_data_150[0], &lbl_1_data_150[1], 400.0f, 0x30, work->unk_0C); + if (work->unk_0C == 0) { + Hu3DModelCameraSet(object->model[0], 1); + } + else { + Hu3DModelCameraSet(object->model[0], 2); + } + object->func = fn_1_A4C8; +} + +void fn_1_A4C8(omObjData *object) +{ + Vec sp50; + Vec sp44; + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + M428DllPlayerWork *var_r31; + M428DllPlayerWork2 *var_r30; + M428DllPlayerWork2 *var_r29; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + + var_r22 = 0; + var_r24 = 0; + var_r23 = 0; + var_r31 = object->data; + var_r30 = var_r31->unk_00[0]->data; + var_r29 = var_r31->unk_00[1]->data; + if (!var_r30 || !var_r29) { + return; + } + if ((fn_1_26E0() < 7) || (lbl_1_bss_2A4 == 0)) { + sp50.x = var_r30->unk_90.x; + sp50.y = var_r30->unk_90.y; + sp50.z = var_r30->unk_90.z; + sp44.x = var_r29->unk_90.x; + sp44.y = var_r29->unk_90.y; + sp44.z = var_r29->unk_90.z; + VECAdd(&sp50, &sp44, &sp2C); + VECScale(&sp2C, &sp2C, 0.5f); + var_r21 = fn_1_10788(object->model[0], &sp50, &sp44, &sp38); + if (var_r21 != -1) { + if (var_r31->unk_38 != var_r21) { + var_r31->unk_38 = var_r21; + var_r31->unk_3C = sp38; + var_r23 = 1; + } + else { + var_r23 = 0; + } + var_r31->unk_64[1] = var_r31->unk_3C; + var_r31->unk_64[0] = var_r31->unk_64[1]; + var_f31 = var_r31->unk_4C[0] + var_r31->unk_4C[1]; + if (var_f31 >= 400.0f) { + if (var_r23 != 0) { + var_r31->unk_48 = var_f31; + } + else { + var_r31->unk_48 + (400.0f - var_r31->unk_48) * 0.01f; // bug + (void)var_r22; + } + var_f31 = 1.0f / var_f31; + var_r31->unk_54[0] = var_r31->unk_48 * (var_r31->unk_4C[0] * var_f31); + var_r31->unk_54[1] = var_r31->unk_48 * (var_r31->unk_4C[1] * var_f31); + } + else { + var_f31 = 1.0f / var_f31; + var_r31->unk_54[0] = 400.0f * (var_r31->unk_4C[0] * var_f31); + var_r31->unk_54[1] = 400.0f * (var_r31->unk_4C[1] * var_f31); + var_r31->unk_48 = 400.0f; + } + var_f31 = var_r31->unk_54[0] + var_r31->unk_54[1]; + var_r26 = 48.0f * (var_r31->unk_54[0] / var_f31); + if (var_r26 < 1) { + var_r26 = 1; + } + else if (var_r26 > 0x2E) { + var_r26 = 0x2E; + } + fn_1_10590(object->model[0], 1, var_r26, &var_r31->unk_3C); + var_f31 = (var_r31->unk_4C[0] + var_r31->unk_4C[1]) / var_r31->unk_48; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + fn_1_105E8(object->model[0], 1.0f - var_f31, 1.0f - var_f31); + } + else { + var_r31->unk_38 = -1; + fn_1_10590(object->model[0], 0, 0x18, &var_r31->unk_3C); + var_f31 = (var_r31->unk_4C[0] + var_r31->unk_4C[1]) / 400.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + fn_1_105E8(object->model[0], 1.0f - var_f31, 1.0f - var_f31); + var_r31->unk_48 = 400.0f; + var_r31->unk_64[1] = sp2C; + var_r31->unk_64[0] = var_r31->unk_64[1]; + var_r31->unk_54[0] = 200.0f; + var_r31->unk_54[1] = 200.0f; + } + var_r31->unk_54[0] = var_r31->unk_5C + (0.01f * (var_r31->unk_54[0] - var_r31->unk_5C)); + var_r31->unk_54[1] = var_r31->unk_60 + (0.01f * (var_r31->unk_54[1] - var_r31->unk_60)); + fn_1_129B4(0.1f, &var_r31->unk_64[2], &var_r31->unk_64[0], &var_r31->unk_64[0]); + fn_1_129B4(0.1f, &var_r31->unk_88, &var_r31->unk_64[1], &var_r31->unk_64[1]); + var_r31->unk_5C = var_r31->unk_54[0]; + var_r31->unk_60 = var_r31->unk_54[1]; + var_r31->unk_7C = var_r31->unk_64[0]; + var_r31->unk_88 = var_r31->unk_64[1]; + if (var_r31->unk_38 != -1) { + var_r31->unk_94 = var_r31->unk_64[0]; + var_r31->unk_A0 = var_r31->unk_64[1]; + } + else if (var_r30->unk_20 == 4) { + var_r31->unk_94 = var_r29->unk_90; + var_r31->unk_A0 = var_r30->unk_90; + } + else if (var_r29->unk_20 == 4) { + var_r31->unk_94 = var_r30->unk_90; + var_r31->unk_A0 = var_r29->unk_90; + } + else { + var_r31->unk_94 = var_r31->unk_64[0]; + var_r31->unk_A0 = var_r31->unk_64[1]; + } + if (lbl_1_bss_29C[var_r31->unk_0C] == 5) { + var_r24 = 1; + } + if ((fn_1_26E0() != 4) || (var_r31->unk_18 != 0)) { + var_r24 = 0; + } + if (var_r24 != 0) { + var_r27 = -1; + if ((var_r30->unk_20 == 2) && (var_r29->unk_20 == 3)) { + var_r27 = 0; + } + else if ((var_r30->unk_20 == 3) && (var_r29->unk_20 == 2)) { + var_r27 = 1; + } + else if ((var_r30->unk_20 == 2) && (var_r29->unk_20 == 2)) { + if (sp50.y > sp44.y) { + var_r27 = 0; + } + else { + var_r27 = 1; + } + } + if (var_r27 == 0) { + var_r30->unk_20 = 4; + var_r30->unk_22 = 0; + var_r30->unk_34 = 0; + var_r30->unk_38 = 0; + var_r30->unk_3C.x = 0.0f; + var_r30->unk_3C.y = var_r30->unk_3C.z = 0.0f; + var_r31->unk_2C = sp50.y; + var_r31->unk_AC = sp50; + var_r31->unk_34 = 0.0f; + } + else if (var_r27 == 1) { + var_r29->unk_20 = 4; + var_r29->unk_22 = 0; + var_r29->unk_34 = 0; + var_r29->unk_38 = 0; + var_r29->unk_3C.x = 0.0f; + var_r29->unk_3C.y = var_r29->unk_3C.z = 0.0f; + var_r31->unk_2C = sp44.y; + var_r31->unk_AC = sp44; + var_r31->unk_34 = 0.0f; + } + } + if ((var_r30->unk_20 == 4) || (var_r29->unk_20 == 4)) { + var_r31->unk_24 = 1; + var_r31->unk_28 = 1; + } + else { + var_r31->unk_24 = 0; + } + if (lbl_1_bss_29C[var_r31->unk_0C] != 5) { + var_r31->unk_28 = 0; + } + sp50.x = var_r30->unk_90.x; + sp50.y = var_r30->unk_90.y; + sp50.z = var_r30->unk_90.z; + sp44.x = var_r29->unk_90.x; + sp44.y = var_r29->unk_90.y; + sp44.z = var_r29->unk_90.z; + fn_1_10530(object->model[0], &sp50, &sp44); + if (var_r31->unk_00[0]->trans.y > var_r31->unk_00[1]->trans.y) { + var_r31->unk_1C = var_r31->unk_00[0]->trans.y; + var_r31->unk_10 = 0; + } + else if (var_r31->unk_00[1]->trans.y > var_r31->unk_00[0]->trans.y) { + var_r31->unk_1C = var_r31->unk_00[1]->trans.y; + var_r31->unk_10 = 1; + } + else { + var_r25 = frand() & 1; + var_r31->unk_1C = var_r31->unk_00[var_r25]->trans.y; + var_r31->unk_10 = var_r25; + } + fn_1_118A8(var_r31->unk_0C, var_r31->unk_1C / 3800.0f); + if (fn_1_26E0() == 4) { + sp50.x = var_r31->unk_00[0]->trans.x; + sp50.y = var_r31->unk_00[0]->trans.y; + sp50.z = var_r31->unk_00[0]->trans.z; + sp44.x = var_r31->unk_00[1]->trans.x; + sp44.y = var_r31->unk_00[1]->trans.y; + sp44.z = var_r31->unk_00[1]->trans.z; + VECAdd(&sp50, &sp44, &sp2C); + VECScale(&sp2C, &sp2C, 0.5f); + VECSubtract(&sp50, &sp44, &sp20); + sp20.z = 0.0f; + var_f29 = VECMag(&sp20); + if (var_f29 < 100.0f) { + var_f27 = 0.0f; + } + else if (var_f29 >= 300.0f) { + var_f27 = 1.0f; + } + else { + var_f27 = (var_f29 - 100.0f) / 200.0f; + } + var_f29 = 1500.0f + (500.0f * var_f27); + var_f28 = sp2C.x; + if (var_f28 > 400.0f) { + var_f28 = 400.0f; + } + else if (var_f28 < -400.0f) { + var_f28 = -400.0f; + } + var_f26 = sp2C.y; + if (var_f26 < 400.0f) { + var_f26 = 400.0f; + } + var_f25 = var_r31->unk_1C; + if (var_f25 < 20.0f) { + var_f30 = 0.0f; + } + else { + var_f30 = (var_f25 - 20.0f) / 3780.0f; + if (var_f30 >= 1.0f) { + var_f30 = 1.0f; + } + } + sp14.x = var_f28; + sp14.y = var_f26; + sp14.z = 0.0f; + sp8.x = 70.0f * var_f30; + sp8.y = 0.0f; + sp8.z = 0.0f; + if (var_r31->unk_C4 > 0) { + var_f30 = var_r31->unk_C8 * ((float)var_r31->unk_C0 / var_r31->unk_C4); + var_r25 = (var_r31->unk_C0 * 0x2D) % 360; + var_f30 = var_f30 * sind(var_r25); + var_f30 = var_f30; + sp14.x += var_f30; + sp14.y += var_f30; + if (--var_r31->unk_C0 <= 0) { + var_r31->unk_C0 = var_r31->unk_C4 = 0; + } + var_r22 = 1; + } + if (var_r22 == 0) { + fn_1_9A30(var_r31->unk_0C, 12.0f, &sp14, &sp8, var_f29); + } + else { + fn_1_9A30(var_r31->unk_0C, 3.0f, &sp14, &sp8, var_f29); + } + } + if (var_r31->unk_BC != -1) { + if (var_r31->unk_BC == 0) { + var_r31->unk_B8++; + if (var_r31->unk_B8 == 1) { + omVibrate(var_r31->unk_08[0], 0xC, 6, 6); + omVibrate(var_r31->unk_08[1], 0xC, 6, 6); + return; + } + if (var_r31->unk_B8 >= 45.0f) { + var_r31->unk_B8 = 0; + } + } + else { + var_r31->unk_B8++; + if (var_r31->unk_B8 == 1) { + omVibrate(var_r31->unk_08[0], 0xC, 0xC, 0); + omVibrate(var_r31->unk_08[1], 0xC, 0xC, 0); + return; + } + if (var_r31->unk_B8 >= 6.0f) { + var_r31->unk_B8 = 0; + } + } + } + } + else { + switch (fn_1_26E0()) { + case 7: + if (lbl_1_bss_2A4 != 0) { + if (var_r31->unk_14 != 0) { + var_r30->unk_20 = 7; + var_r30->unk_22 = 0; + var_r29->unk_20 = 7; + var_r29->unk_22 = 0; + } + else { + var_r30->unk_20 = 9; + var_r30->unk_22 = 0; + var_r29->unk_20 = 9; + var_r29->unk_22 = 0; + } + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + } + break; + case 8: + break; + case 9: + if ((var_r31->unk_14 != 0) && (lbl_1_bss_2A4 != 0)) { + var_r30->unk_20 = 8; + var_r30->unk_22 = 0; + var_r29->unk_20 = 8; + var_r29->unk_22 = 0; + } + break; + } + } +} + +void fn_1_B3D4(omObjData *object) +{ + s32 var_r31; + M428DllPlayerWork *work = object->data; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + fn_1_E5F4(work->unk_00[var_r31]); + work->unk_00[var_r31] = NULL; + } +} + +void fn_1_B43C(omObjData *object) +{ + M428DllPlayerWork2 *var_r31; + s32 var_r29; + s32 var_r28; + u32 var_r27; + M428DllPlayerWork *var_r26; + u32 var_r25; + u32 var_r24; + + var_r27 = object->work[0]; + var_r25 = object->work[1]; + var_r24 = object->work[2]; + var_r26 = &lbl_1_bss_2AC[var_r25]; + var_r31 = object->data = &lbl_1_bss_2A8[var_r27]; + var_r31->unk_00 = var_r27; + var_r31->unk_02 = var_r25; + var_r31->unk_04 = var_r24; + var_r31->unk_06 = GWPlayerCfg[var_r27].character; + var_r31->unk_08 = GWPlayerCfg[var_r27].pad_idx; + var_r31->unk_0A = GWPlayerCfg[var_r27].iscom; + var_r31->unk_0C = GWPlayerCfg[var_r27].diff; + if ((var_r31->unk_0A == 0) && ((lbl_1_data_640[var_r31->unk_08] & HuPadRumbleGet()) == 0)) { + lbl_1_bss_18 = 0; + } + if (var_r31->unk_0A != 0) { + var_r26->unk_0E = var_r26->unk_0E | (1 << var_r31->unk_04); + } + var_r31->unk_0E = var_r31->unk_10 = 0; + var_r31->unk_14 = var_r31->unk_18 = 0.0f; + var_r31->unk_1C = -1; + var_r31->unk_1E = 4; + var_r31->unk_20 = 0; + var_r31->unk_22 = var_r31->unk_24 = 0; + var_r31->unk_26 = 0; + var_r31->unk_28 = 200.0f; + var_r31->unk_2C = var_r31->unk_28; + var_r31->unk_30 = 0; + var_r31->unk_34 = 0; + var_r31->unk_38 = 0; + var_r31->unk_3C.x = var_r31->unk_3C.y = var_r31->unk_3C.z = 0.0f; + var_r31->unk_48.x = var_r31->unk_48.y = var_r31->unk_48.z = 0.0f; + var_r31->unk_54.x = 0.0f; + var_r31->unk_54.z = 0.0f; + var_r31->unk_54.y = 75.0f; + mtxRot(var_r31->unk_60, 0.0f, 0.0f, 0.0f); + mtxTransCat(var_r31->unk_60, lbl_1_data_5E0[var_r31->unk_06].x, lbl_1_data_5E0[var_r31->unk_06].y, lbl_1_data_5E0[var_r31->unk_06].z); + var_r31->unk_90.x = lbl_1_data_150[var_r31->unk_04].x; + var_r31->unk_90.y = 80.0f + lbl_1_data_150[var_r31->unk_04].y; + var_r31->unk_90.z = lbl_1_data_150[var_r31->unk_04].z; + strcpy(var_r31->unk_9C, MakeObjectName(CharModelHookNameGet(var_r31->unk_06, 4, 4))); + var_r31->unk_19C = -1; + var_r31->unk_1A0 = 30.0f * ((frand() & 0x7FFF) % 5); + var_r31->unk_1A4 = 0; + var_r31->unk_1A8 = 0; + var_r31->unk_1AC = 0.0f; + var_r31->unk_1B0 = 0; + var_r31->unk_1B4 = 0; + var_r31->unk_1B8.x = 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + var_r31->unk_1B8.y = 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + var_r31->unk_1B8.z = 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + var_r29 = CharModelCreate(var_r31->unk_06, 4); + object->model[0] = var_r29; + if (var_r31->unk_02 == 0) { + Hu3DModelCameraSet(var_r29, 1); + fn_1_4170(var_r29, 1); + } + else { + Hu3DModelCameraSet(var_r29, 2); + fn_1_4170(var_r29, 2); + } + Hu3DModelLayerSet(var_r29, 2); + CharModelStepTypeSet(var_r31->unk_06, 0); + if (var_r31->unk_02 == 0) { + var_r29 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 0x07)); + object->model[1] = var_r29; + Hu3DModelCameraSet(var_r29, 1); + } + else { + var_r29 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 0x08)); + object->model[1] = var_r29; + Hu3DModelCameraSet(var_r29, 2); + } + Hu3DModelLayerSet(var_r29, 2); + for (var_r28 = 0; var_r28 < 0xC; var_r28++) { + if (lbl_1_data_500[var_r28].unk_00 != 0xFFFFFFFF) { + object->motion[var_r28] = CharModelMotionCreate(var_r31->unk_06, lbl_1_data_500[var_r28].unk_00); + } + else { + object->motion[var_r28] = Hu3DJointMotionFile(object->model[0], lbl_1_data_560[lbl_1_data_500[var_r28].unk_04][var_r31->unk_06]); + } + } + var_r31->unk_1C = 3; + CharModelMotionSet(var_r31->unk_06, object->motion[var_r31->unk_1C]); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + CharModelMotionDataClose(var_r31->unk_06); + object->trans.x = var_r31->unk_48.x = lbl_1_data_150[var_r31->unk_04].x; + object->trans.y = var_r31->unk_48.y = lbl_1_data_150[var_r31->unk_04].y; + object->trans.z = var_r31->unk_48.z = lbl_1_data_150[var_r31->unk_04].z; + object->rot.x = object->rot.z = 0.0f; + object->rot.y = 180.0f; + object->func = fn_1_BBD0; +} + +void fn_1_BBD0(omObjData *object) +{ + Mtx sp104; + Vec spF8; + Vec spEC; + Vec spE0; + float var_f31; + float var_f30; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + M428DllPlayerWork2 *var_r31; + M428DllPlayerWork *var_r29; + omObjData *var_r28; + M428DllPlayerWork2 *var_r27; + s32 var_r26; + ModelData *var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + + var_r31 = object->data; + var_r29 = &lbl_1_bss_2AC[var_r31->unk_02]; + var_r22 = var_r31->unk_04 ^ 1; + var_r28 = var_r29->unk_00[var_r22]; + var_r27 = var_r28->data; + if (fn_1_26E0() == 4) { + if (var_r31->unk_0A != 0) { + var_r31->unk_0E = var_r31->unk_10 = 0; + var_r31->unk_14 = var_r31->unk_18 = 0.0f; + fn_1_E600(object); + } + else { + var_r31->unk_0E = HuPadBtnDown[var_r31->unk_08]; + var_r31->unk_10 = HuPadBtn[var_r31->unk_08]; + var_r31->unk_14 = HuPadStkX[var_r31->unk_08]; + var_r31->unk_18 = HuPadStkY[var_r31->unk_08]; + } + } + else { + var_r31->unk_0E = var_r31->unk_10 = 0; + var_r31->unk_14 = var_r31->unk_18 = 0.0f; + } + switch (var_r31->unk_20) { + case 0: + var_r31->unk_20 = 1; + var_r31->unk_22 = 0; + break; + case 1: + if (object->trans.y < 0.0f) { + object->trans.y += 1.6f; + var_r26 = 3; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0x40000001); + } + } + else { + object->trans.y = 0.0f; + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + spF8 = var_r31->unk_90; + VECSubtract(&spF8, &var_r29->unk_64[var_r31->unk_04], &spEC); + var_r31->unk_30 = 0; + var_f31 = VECMag(&spEC); + var_r29->unk_4C[var_r31->unk_04] = var_f31; + spF8.x = object->trans.x + var_r31->unk_54.x; + spF8.y = object->trans.y + var_r31->unk_54.y; + spF8.z = object->trans.z + var_r31->unk_54.z; + if (fn_1_9990(&spF8) != 0) { + object->trans.z = 50.0f + spF8.z; + } + if (fn_1_26E0() >= 4) { + var_r31->unk_20 = 2; + var_r31->unk_22 = 0; + } + break; + case 2: + if (((var_r31->unk_0E & 0x100) != 0) || (var_r29->unk_24 != 0) || (var_r29->unk_28 != 0)) { + if (var_r31->unk_1C == 4) { + var_r31->unk_1E = 5; + } + else { + var_r31->unk_1E = 4; + } + var_r31->unk_26 = 0; + var_r31->unk_20 = 3; + var_r31->unk_22 = 0; + } + else { + if (fabs(var_r31->unk_14) >= 8.0) { + var_f27 = 0.025f * var_r31->unk_14; + } + else { + var_f27 = 0.0f; + } + if (fabs(var_r31->unk_18) >= 8.0) { + var_f24 = 0.025f * var_r31->unk_18; + } + else { + var_f24 = 0.0f; + } + spE0.x = var_f27; + spE0.y = var_f24; + spE0.z = 0.0f; + if (VECMag(&spE0) > 0.0f) { + spF8.x = object->trans.x + var_r31->unk_54.x; + spF8.y = object->trans.y + var_r31->unk_54.y; + spF8.z = object->trans.z + var_r31->unk_54.z; + if (fn_1_F288(&spF8, &spE0, 75.0f) != 0) { + object->trans.x += spE0.x; + object->trans.y += spE0.y; + } + else { + object->trans.x = spF8.x - var_r31->unk_54.x; + object->trans.y = spF8.y - var_r31->unk_54.y; + } + if ((var_r27->unk_20 == 2) || (var_r27->unk_20 == 3)) { + spE0.x = (object->trans.x + var_r31->unk_54.x) - (var_r28->trans.x + var_r27->unk_54.x); + spE0.y = (object->trans.y + var_r31->unk_54.y) - (var_r28->trans.y + var_r27->unk_54.y); + spE0.z = (object->trans.z + var_r31->unk_54.z) - (var_r28->trans.z + var_r27->unk_54.z); + var_f30 = VECMag(&spE0); + if (var_f30 <= 200.0f) { + if (var_f30 <= 0.0f) { + spE0.y = -1.0f; + } + VECNormalize(&spE0, &spE0); + VECScale(&spE0, &spE0, 200.0f); + object->trans.x = spE0.x + (var_r28->trans.x + var_r27->unk_54.x); + object->trans.y = spE0.y + (var_r28->trans.y + var_r27->unk_54.x); + object->trans.z = spE0.z + (var_r28->trans.z + var_r27->unk_54.x); + } + } + } + spF8 = var_r31->unk_90; + VECSubtract(&spF8, &var_r29->unk_64[var_r31->unk_04], &spEC); + var_r31->unk_30 = 0; + var_f31 = VECMag(&spEC); + var_r29->unk_4C[var_r31->unk_04] = var_f31; + if (var_f31 > var_r29->unk_54[var_r31->unk_04]) { + var_r31->unk_30 = 1; + VECNormalize(&spEC, &spEC); + VECScale(&spEC, &spEC, var_r29->unk_54[var_r31->unk_04]); + VECAdd(&var_r29->unk_64[var_r31->unk_04], &spEC, &spF8); + object->trans.x += spF8.x - var_r31->unk_90.x; + object->trans.y += spF8.y - var_r31->unk_90.y; + object->trans.z += spF8.z - var_r31->unk_90.z; + var_r20 = 1; + } + if ((var_r20 != 0) || (object->trans.x != var_r31->unk_48.x) || (object->trans.y != var_r31->unk_48.y)) { + spF8.x = var_r31->unk_48.x + var_r31->unk_54.x; + spF8.y = var_r31->unk_48.y + var_r31->unk_54.y; + spF8.z = var_r31->unk_48.z + var_r31->unk_54.z; + spE0.x = (object->trans.x + var_r31->unk_54.x) - spF8.x; + spE0.y = (object->trans.y + var_r31->unk_54.y) - spF8.y; + spE0.z = (object->trans.z + var_r31->unk_54.z) - spF8.z; + if (fn_1_F288(&spF8, &spE0, 75.0f) == 0) { + object->trans.x = spF8.x - var_r31->unk_54.x; + object->trans.y = spF8.y - var_r31->unk_54.y; + var_r20 = 1; + } + } + if (object->trans.x < -700.0f) { + object->trans.x = -700.0f; + } + else if (object->trans.x > 700.0f) { + object->trans.x = 700.0f; + } + if (object->trans.y < -200.0f) { + object->trans.y = -200.0f; + } + spF8.x = object->trans.x + var_r31->unk_54.x; + spF8.y = object->trans.y + var_r31->unk_54.y; + spF8.z = object->trans.z + var_r31->unk_54.z; + if (fn_1_9990(&spF8) != 0) { + object->trans.z = 50.0f + spF8.z; + } + var_f31 = sqrtf((var_r31->unk_14 * var_r31->unk_14) + (var_r31->unk_18 * var_r31->unk_18)); + var_f31 *= 0.02f; + CharModelMotionSpeedSet(var_r31->unk_06, var_f31); + if ((var_f27 == 0.0f) && (var_f24 == 0.0f)) { + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + if ((var_r31->unk_1C != 8) && (var_r31->unk_1C != 9) && (var_r31->unk_1C != 6)) { + var_r26 = var_r31->unk_1C; + } + else { + var_r26 = 4; + } + var_f22 = object->rot.z; + } + else { + if (fabs(var_f27) > (2.0 * fabs(var_f24))) { + if (var_f27 > 0.0f) { + var_r26 = 4; + } + else { + var_r26 = 5; + } + var_f22 = 0.0f; + } + else { + var_r26 = 3; + if (var_f24 > 0.0f) { + var_f22 = -30.0f * (var_f27 / 1.6f); + } + else { + var_f22 = -(-30.0f * (var_f27 / 1.6f)); + CharModelMotionSpeedSet(var_r31->unk_06, -var_f31); + } + } + } + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r23 = var_r31->unk_1C; + var_r31->unk_1C = var_r26; + if (var_r23 != 6) { + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0x40000001); + } + else { + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 25.0f, 0x40000001); + } + } + else { + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + } + object->rot.x = 0.0f; + object->rot.y = 180.0f; + object->rot.z = fn_1_1236C(var_f22, object->rot.z, 1.25f); + } + break; + case 3: + spF8 = var_r31->unk_90; + VECSubtract(&spF8, &var_r29->unk_64[var_r31->unk_04], &spEC); + var_r31->unk_30 = 0; + var_f31 = VECMag(&spEC); + var_r29->unk_4C[var_r31->unk_04] = var_f31; + if (fn_1_26E0() != 4) { + var_r31->unk_10 = 0; + var_r31->unk_26 = 0; + } + if (((var_r31->unk_10 & 0x100) != 0) || (var_r29->unk_24 != 0) || (var_r29->unk_28 != 0) || (var_r31->unk_26 != 0)) { + if (var_r31->unk_26 > 0) { + var_r31->unk_26--; + } + if (var_r29->unk_24 != 0) { + if (fabs(var_r29->unk_34) > 0.0) { + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + var_r29->unk_A0.z = object->trans.z; + VECSubtract(&var_r29->unk_A0, &spF8, &spEC); + var_f30 = VECMag(&spEC); + if (var_f30 < var_r29->unk_34) { + var_r29->unk_34 = var_f30; + } + if (var_f30 > 0.0f) { + VECNormalize(&spEC, &spEC); + VECScale(&spEC, &spEC, var_r29->unk_34); + VECAdd(&spF8, &var_r31->unk_54, &spF8); + if (fn_1_F288(&spF8, &spEC, 75.0f) != 0) { + for (var_r24 = 0; var_r24 < 6; var_r24++) { + spF8.x = object->trans.x + (0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f))); + spF8.y = 100.0f + object->trans.y + 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + spF8.z = object->trans.z - 47.5f; + var_f31 = -22.5f + (45.0f * (0.007874016f * (frand() & 0x7F))); + spE0.x = 2.5 * sind(var_f31); + spE0.y = 2.5 * cosd(var_f31); + spE0.z = 0.0f; + fn_1_11DE4(var_r29->unk_0C, spF8, spE0, 50.0f, 5.0f, 100.0f, 0.5f, lbl_1_data_650); + } + object->trans.x += spEC.x; + object->trans.y += spEC.y; + } + } + } + } + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + if (fn_1_9990(&spF8) != 0) { + object->trans.z = 50.0f + spF8.z; + } + if (object->trans.x < -700.0f) { + object->trans.x = -700.0f; + } + else if (object->trans.x > 700.0f) { + object->trans.x = 700.0f; + } + if (object->trans.y < -200.0f) { + object->trans.y = -200.0f; + } + if (lbl_1_bss_29C[var_r29->unk_0C] == 5) { + var_r26 = 6; + if ((object->rot.z > 180.0f) || (object->rot.z < 45.0f)) { + object->rot.z += 5.0f; + } + if (object->rot.z >= 360.0f) { + object->rot.z -= 360.0f; + } + } + else { + var_r26 = var_r31->unk_1E; + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); + } + if ((var_r26 != var_r31->unk_1C) && (var_r26 != -1) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r23 = var_r31->unk_1C; + var_r31->unk_1C = var_r26; + if (var_r31->unk_1C != 6) { + if (var_r23 != 6) { + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0); + } + else { + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 25.0f, 0); + } + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + else { + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0x40000001); + } + } + if ((var_r31->unk_1C != 6) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + CharModelMotionTimeSet(var_r31->unk_06, 0.0f); + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + if (var_r31->unk_1C == 6) { + CharModelMotionSpeedSet(var_r31->unk_06, 2.0f); + } + } + else { + var_r31->unk_20 = 2; + var_r31->unk_22 = 0; + } + break; + case 4: + spF8 = var_r31->unk_90; + VECSubtract(&spF8, &var_r29->unk_64[var_r31->unk_04], &spEC); + var_r31->unk_30 = 0; + var_f31 = VECMag(&spEC); + var_r29->unk_4C[var_r31->unk_04] = var_f31; + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + var_r31->unk_3C.y -= 0.65333337f; + if (var_r29->unk_38 == -1) { + var_r29->unk_30 = 400.0f; + var_r29->unk_94.x = var_r28->trans.x + var_r27->unk_54.x; + var_r29->unk_94.y = var_r28->trans.y + var_r27->unk_54.y; + var_r29->unk_94.z = var_r28->trans.z + var_r27->unk_54.z; + } + else { + var_r29->unk_30 = var_r29->unk_48 - var_r29->unk_54[var_r22]; + } + VECAdd(&spF8, &var_r31->unk_54, &spF8); + if ((fn_1_F288(&spF8, &var_r31->unk_3C, 75.0f) != 0) && ((object->trans.y + var_r31->unk_3C.y) >= -200.0f)) { + spF8.x = object->trans.x + var_r31->unk_3C.x; + spF8.y = object->trans.y + var_r31->unk_3C.y; + spF8.z = object->trans.z + var_r31->unk_3C.z; + if (object->trans.x < -700.0f) { + object->trans.x = -700.0f; + } + else if (object->trans.x > 700.0f) { + object->trans.x = 700.0f; + } + if (object->trans.y < -200.0f) { + object->trans.y = -200.0f; + } + VECSubtract(&spF8, &var_r29->unk_94, &spEC); + var_f31 = VECMag(&spEC); + if (var_f31 > var_r29->unk_30) { + VECNormalize(&spEC, &spEC); + VECScale(&spEC, &spEC, var_r29->unk_30); + VECAdd(&var_r29->unk_94, &spEC, &spF8); + if (fabs(spEC.x) < 180.0) { + var_r31->unk_34 = 1; + } + } + object->trans.x = spF8.x; + object->trans.y = spF8.y; + object->trans.z = spF8.z; + } + else { + object->trans.x = spF8.x - var_r31->unk_54.x; + object->trans.y = spF8.y - var_r31->unk_54.y; + object->trans.z = spF8.z - var_r31->unk_54.z; + if ((object->trans.y + var_r31->unk_3C.y) >= -200.0f) { + for (var_r24 = 0; var_r24 < 6; var_r24++) { + var_f30 = -90.0f + (36.0f * var_r24); + spF8.x = object->trans.x + (12.5 * sind(var_f30)); + spF8.z = object->trans.z + 12.5 * cosd(var_f30); + spF8.y = (object->trans.y - 25.0f) + (0.25f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f))); + var_f31 = -22.5f + (45.0f * (0.007874016f * (frand() & 0x7F))); + var_f23 = 0.3f + (0.7f * (0.007874016f * (frand() & 0x7F))); + spE0.x = var_f23 * ((2.5 * sind(var_f30)) + (2.5 * sind(var_f31))); + spE0.y = var_f23 * (2.5 * cosd(var_f31)); + spE0.z = var_f23 * (2.5 * cosd(var_f30)); + fn_1_11DE4(var_r29->unk_0C, spF8, spE0, 100.0f, 5.0f, 100.0f, 0.5f * var_f23, lbl_1_data_654); + } + } + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.x; + var_r31->unk_38 = 1; + var_r31->unk_3C.x = var_r31->unk_3C.y = var_r31->unk_3C.z = 0.0f; + var_r29->unk_34 = 0.0f; + var_r31->unk_1E = 4; + var_r31->unk_26 = 0x12; + var_r31->unk_20 = 5; + var_r31->unk_22 = 0; + break; + } + if (var_r31->unk_34 == 0) { + var_r29->unk_34 = 0.0f; + var_r31->unk_22++; + var_r31->unk_24 = 0; + var_f31 = 2.0f * var_r31->unk_22; + if (var_f31 >= 90.0f) { + var_f31 = 90.0f; + } + if ((object->trans.z = object->trans.z + (10.0 * cosd(var_f31))) >= (150.0f + var_r29->unk_AC.z)) { + object->trans.z = 150.0f + var_r29->unk_AC.z; + } + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + if (fn_1_9990(&spF8) != 0) { + spF8.z += 50.0f; + } + else { + spF8.z = 50.0f; + } + if (object->trans.z < spF8.z) { + object->trans.z = spF8.z; + } + var_r26 = 8; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0); + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + } + else { + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + VECSubtract(&spF8, &var_r29->unk_94, &spEC); + if (fabs(spEC.x) < 100.0) { + if ((var_r31->unk_3C.y += 0.65333337f) > 0.0f) { + var_r31->unk_3C.y = 0.0f; + } + var_r31->unk_3C.x *= 0.96f; + var_r31->unk_3C.y *= 0.97f; + } + else { + var_r31->unk_22++; + } + var_r29->unk_34 = fabs(0.45f * sqrtf((var_r31->unk_3C.x * var_r31->unk_3C.x) + (var_r31->unk_3C.y * var_r31->unk_3C.y))); + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + if (fn_1_9990(&spF8) != 0) { + spF8.z += 50.0f; + } + else { + spF8.z = 50.0f; + } + if ((object->trans.z -= 5.0f) < spF8.z) { + object->trans.z = 50.0f + spF8.z; + } + var_r26 = 9; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0); + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + if (++var_r31->unk_24 > var_r31->unk_22) { + var_r31->unk_1E = 4; + var_r31->unk_26 = 0x12; + var_r31->unk_20 = 5; + var_r31->unk_22 = 0; + } + } + + break; + case 5: + spF8 = var_r31->unk_90; + VECSubtract(&spF8, &var_r29->unk_64[var_r31->unk_04], &spEC); + var_r31->unk_30 = 0; + var_f31 = VECMag(&spEC); + var_r29->unk_4C[var_r31->unk_04] = var_f31; + if (var_r31->unk_38 != 0) { + var_r26 = 7; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0); + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + } + var_r21 = 0; + if ((var_r27->unk_20 == 2) || (var_r27->unk_20 == 3)) { + spE0.x = (object->trans.x + var_r31->unk_54.x) - (var_r28->trans.x + var_r27->unk_54.x); + spE0.y = (object->trans.y + var_r31->unk_54.y) - (var_r28->trans.y + var_r27->unk_54.y); + spE0.z = (object->trans.z + var_r31->unk_54.z) - (var_r28->trans.z + var_r27->unk_54.z); + var_f30 = VECMag(&spE0); + if (var_f30 <= 200.0f) { + if (object->trans.x > var_r28->trans.x) { + var_f30 = 10.0f; + } + else { + var_f30 = -10.0f; + } + spF8.x = object->trans.x + var_r31->unk_54.x; + spF8.y = object->trans.y + var_r31->unk_54.y; + spF8.z = object->trans.z + var_r31->unk_54.z; + spE0.x = var_f30; + spE0.y = spE0.z = 0.0f; + if (fn_1_F288(&spF8, &spE0, 75.0f) != 0) { + object->trans.x += spE0.x; + object->trans.y += spE0.y; + object->trans.z += spE0.z; + } + else { + object->trans.x = spF8.x - var_r31->unk_54.x; + object->trans.y = spF8.y - var_r31->unk_54.y; + object->trans.z = spF8.z - var_r31->unk_54.z; + } + spF8.x = var_r28->trans.x + var_r27->unk_54.x; + spF8.y = var_r28->trans.y + var_r27->unk_54.y; + spF8.z = var_r28->trans.z + var_r27->unk_54.z; + spE0.x = -var_f30; + spE0.y = spE0.z = 0.0f; + if (fn_1_F288(&spF8, &spE0, 75.0f) != 0) { + var_r28->trans.x += spE0.x; + var_r28->trans.y += spE0.y; + var_r28->trans.z += spE0.z; + } + else { + var_r28->trans.x = spF8.x - var_r27->unk_54.x; + var_r28->trans.y = spF8.y - var_r27->unk_54.y; + var_r28->trans.z = spF8.z - var_r27->unk_54.z; + } + var_r21 = 1; + } + } + if (object->trans.x < -700.0f) { + object->trans.x = -700.0f; + } + else if (object->trans.x > 700.0f) { + object->trans.x = 700.0f; + } + if (object->trans.y < -200.0f) { + object->trans.y = -200.0f; + } + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + if (fn_1_9990(&spF8) != 0) { + spF8.z += 50.0f; + } + else { + spF8.z = 50.0f; + } + if ((object->trans.z - spF8.z) > 30.000002f) { + object->trans.z -= 30.000002f; + } + else { + object->trans.z = spF8.z; + if (var_r21 == 0) { + var_r31->unk_20 = 3; + var_r31->unk_22 = 0; + } + } + break; + case 7: + object->trans.x = lbl_1_data_180[var_r31->unk_04].x; + object->trans.y = lbl_1_data_180[var_r31->unk_04].y; + object->trans.z = lbl_1_data_180[var_r31->unk_04].z; + object->rot.x = object->rot.y = object->rot.z = 0.0f; + var_r25 = &Hu3DData[object->model[0]]; + var_r25->unk_F0[0][3] = 0.0f; + var_r25->unk_F0[1][3] = 0.0f; + var_r25->unk_F0[2][3] = 0.0f; + var_r25 = &Hu3DData[object->model[1]]; + MTXIdentity(var_r25->unk_F0); + Hu3DModelPosSet( + object->model[1], lbl_1_data_450[var_r31->unk_04].x, lbl_1_data_450[var_r31->unk_04].y, lbl_1_data_450[var_r31->unk_04].z); + Hu3DModelRotSet( + object->model[1], lbl_1_data_480[var_r31->unk_04].x, lbl_1_data_480[var_r31->unk_04].y, lbl_1_data_480[var_r31->unk_04].z); + if (var_r31->unk_02 == 0) { + fn_1_4170(object->model[1], 1); + } + else { + fn_1_4170(object->model[1], 2); + } + var_r26 = 0; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0x40000001); + } + break; + case 8: + var_r26 = 0xA; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0); + } + break; + case 9: + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + break; + } + var_r31->unk_48.x = object->trans.x; + var_r31->unk_48.y = object->trans.y; + var_r31->unk_48.z = object->trans.z; + if (var_r31->unk_20 < 7) { + if (fn_1_13F54(object->model[0], var_r31->unk_9C, sp104, 0) != 0) { + var_r25 = &Hu3DData[object->model[1]]; + MTXConcat(sp104, var_r31->unk_60, sp104); + MTXCopy(sp104, var_r25->unk_F0); + var_r31->unk_90.x = sp104[0][3]; + var_r31->unk_90.y = sp104[1][3]; + var_r31->unk_90.z = sp104[2][3]; + } + else { + OSReport("NO OBJECT %d %s \n", var_r31->unk_06, CharModelHookNameGet(var_r31->unk_06, 4, 4)); + } + spF8.x = 0.0f; + spF8.y = 100.0f; + spF8.z = 0.0f; + spE0.x = spF8.y * sind((180.0f + object->rot.z)); + spE0.y = spF8.y * sind((90.0f + object->rot.z)); + spE0.z = 0.0f; + VECSubtract(&spE0, &spF8, &spEC); + var_r25 = &Hu3DData[object->model[0]]; + var_r25->unk_F0[0][3] = spEC.x; + var_r25->unk_F0[1][3] = spEC.y; + var_r25->unk_F0[2][3] = spEC.z; + } +} + +void fn_1_E5F4(omObjData *object) +{ + object->func = NULL; +} + +void fn_1_E600(omObjData *object) +{ + Vec sp24; + Vec sp18; + Vec spC; + s32 sp8; + float var_f31; + float var_f30; + float var_f29; + M428DllPlayerWork2 *var_r31; + M428DllPlayerWork *var_r29; + omObjData *var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r31 = object->data; + var_r29 = &lbl_1_bss_2AC[var_r31->unk_02]; + var_r24 = var_r31->unk_04 ^ 1; + var_r28 = var_r29->unk_00[var_r24]; + if ((var_r29->unk_0E == 3) && (var_r29->unk_10 == var_r31->unk_04)) { + var_r26 = 1; + } + else { + var_r26 = 0; + } + if ((lbl_1_bss_29C[var_r31->unk_02] == 6) || (var_r31->unk_19C == -1)) { + if (var_r29->unk_0E != 3) { + var_r31->unk_19C = 2; + } + else { + var_r25 = (s32)(50.0f * (0.007874016f * (frand() & 0x7F))) + var_r31->unk_0C * 0xF + 5; + var_r31->unk_1A0 = (u8)frand() % 90; + if (var_r26 == 0) { + var_r31->unk_1A0 = (u8)frand() % 60; + } + if (var_r25 < 0x2D) { + var_r31->unk_19C = 0; + } + else if (var_r25 < 0x4B) { + var_r31->unk_19C = 1; + } + else { + var_r31->unk_19C = 2; + } + } + } + var_f31 = 1.0f; + switch (var_r31->unk_19C) { + case 0: + break; + case 1: + if (lbl_1_bss_29C[var_r31->unk_02] != 0) { + if (var_r31->unk_1A0 > 0) { + var_r31->unk_1A0--; + } + else { + var_r31->unk_0E |= 0x100; + var_r31->unk_10 |= 0x100; + } + } + break; + case 2: + if ((lbl_1_bss_29C[var_r31->unk_02] == 3) || (lbl_1_bss_29C[var_r31->unk_02] == 5)) { + var_r31->unk_0E |= 0x100; + var_r31->unk_10 |= 0x100; + } + break; + } + if (var_r26 != 0) { + for (var_r27 = 0; var_r27 < 0x10; var_r27++) { + if ((lbl_1_data_1B0[var_r29->unk_12][var_r27].y - 100.0f) > object->trans.y) { + break; + } + } + var_r31->unk_1B0 = var_r27; + sp18 = lbl_1_data_1B0[var_r29->unk_12][var_r31->unk_1B0]; + sp8 = var_r31->unk_1B0; + sp24.x = object->trans.x; + sp24.y = object->trans.y; + sp24.z = object->trans.z; + VECSubtract(&var_r31->unk_48, &sp24, &spC); + if ((VECMag(&spC) < 1.0f) && (lbl_1_bss_29C[var_r31->unk_02] != 0)) { + var_r31->unk_1B4++; + } + if (var_r31->unk_1B4 >= 180.0f) { + if (var_r31->unk_1B4 < 300.0f) { + if ((var_r31->unk_1B0 >= 2) && (var_r31->unk_1B0 <= 3)) { + if (fabs(object->trans.x) < 500.0) { + if (object->trans.x > 0.0f) { + var_r31->unk_14 = 64.0f; + } + else { + var_r31->unk_14 = -64.0f; + } + } + } + else { + if (fabs(object->trans.x) > 50.0) { + if (object->trans.x > 0.0f) { + var_r31->unk_14 = -64.0f; + } + else { + var_r31->unk_14 = 64.0f; + } + } + } + } + else if (var_r31->unk_1B0 > 0) { + var_r31->unk_1B0--; + var_r31->unk_1B4 = 0; + } + } + else { + var_r31->unk_1B4 = 0; + sp24.x = object->trans.x; + sp24.y = object->trans.y; + sp24.z = object->trans.z; + VECAdd(&sp18, &var_r31->unk_1B8, &sp18); + VECSubtract(&sp18, &sp24, &spC); + var_f30 = VECMag(&spC); + VECNormalize(&spC, &spC); + var_r31->unk_14 = 64.0f * (spC.x * var_f31); + var_r31->unk_18 = 64.0f * (spC.y * var_f31); + if (++var_r31->unk_1A4 > 180.0f) { + var_r31->unk_1B8.x = 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + var_r31->unk_1B8.y = 0.5f * (100.0f * (0.007874016f * (frand() & 0x7F))); + var_r31->unk_1B8.z = 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + var_r31->unk_1A4++; + } + } + } + else { + sp24.x = object->trans.x; + sp24.y = object->trans.y; + sp24.z = object->trans.z; + sp18.x = var_r28->trans.x; + sp18.y = var_r28->trans.y; + sp18.z = var_r28->trans.z; + VECSubtract(&sp18, &sp24, &spC); + var_f30 = VECMag(&spC); + if (var_f30 != 0.0f) { + var_f29 = atan2d(spC.x, spC.y); + } + else { + spC.y = 1.0f; + var_f29 = 0.0; + } + if (var_f30 < 230.0f) { + spC.x *= -1.0f; + spC.y *= -1.0f; + var_f29 += 180.0f; + } + if ((var_f30 >= 250.0f) || (var_f30 <= 230.0f)) { + VECNormalize(&spC, &spC); + if (var_f30 >= 250.0f) { + var_f31 = (var_f30 - 250.0f) / 20.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + } + else { + var_f31 = 1.0f; + } + sp24.x = object->trans.x; + sp24.y = object->trans.y; + sp24.z = object->trans.z; + VECAdd(&sp24, &var_r31->unk_54, &sp24); + var_f29 = var_f29 + var_r31->unk_1AC; + sp18.x = 64.0 * sind(var_f29); + sp18.y = 64.0 * cosd(var_f29); + sp18.z = 0.0f; + var_r31->unk_14 = sp18.x * var_f31; + var_r31->unk_18 = sp18.y * var_f31; + var_r31->unk_1A8 = 0; + } + } + var_r31->unk_1A4++; +} + +s32 fn_1_F080(Vec *arg0, Vec *arg1, float arg8) +{ + Vec sp24; + Vec sp18; + Vec spC; + float var_f31; + float var_f30; + s32 var_r31; + + if (VECMag(arg1) <= 0.0f) { + return 0; + } + var_f30 = atan2d(arg1->x, arg1->y); + var_f30 = var_f30; + sp24 = *arg0; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + var_f31 = -45.0f + (15.0f * var_r31); + var_f31 += var_f30; + spC.x = sind(var_f31); + spC.y = cosd(var_f31); + spC.z = 0.0f; + VECNormalize(&spC, &spC); + VECScale(&spC, &spC, arg8); + VECAdd(arg0, &spC, &sp24); + if (fn_1_9990(&sp24) != 0) { + if (var_r31 == 3) { + sp18 = sp24; + } + } + else { + break; + } + } + if (var_r31 < 6) { + return 0; + } + return 1; +} + +s32 fn_1_F288(Vec *arg0, Vec *arg1, float arg2) +{ + Vec sp24; + Vec sp18; + Vec spC; + s32 var_r30; + + sp24 = *arg0; + sp18 = *arg1; + var_r30 = fn_1_F538(&sp24, &sp18, &spC, arg2); + if (var_r30 != 0) { + *arg0 = spC; + return 0; + } + *arg0 = sp24; + return 1; +} + +s32 fn_1_F354(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_2B8[var_r31]->trans.y < 0.0f) { + break; + } + } + if (var_r31 < 4) { + return 0; + } + return 1; +} + +s32 fn_1_F3BC(s32 arg0) +{ + M428DllPlayerWork *var_r31 = &lbl_1_bss_2AC[arg0]; + if (var_r31->unk_1C >= 3800.0f) { + return var_r31->unk_18 = 1; + } + return var_r31->unk_18 = 0; +} + +void fn_1_F414(s32 arg0) +{ + M428DllPlayerWork *var_r31 = &lbl_1_bss_2AC[arg0]; + var_r31->unk_14 = 1; + lbl_1_bss_2A4 = 1; +} + +void fn_1_F454(s32 arg0, s32 arg1) +{ + lbl_1_bss_29C[arg0] = arg1; +} + +void fn_1_F46C(s32 arg0, s32 arg1) +{ + if (lbl_1_bss_18 != 0) { + M428DllPlayerWork *var_r31 = &lbl_1_bss_2AC[arg0]; + var_r31->unk_B8 = 0; + var_r31->unk_BC = arg1; + } +} + +void fn_1_F4B4(s32 arg0, s32 arg1, float arg8) +{ + M428DllPlayerWork *var_r31 = &lbl_1_bss_2AC[arg0]; + var_r31->unk_C4 = arg1; + var_r31->unk_C0 = arg1; + var_r31->unk_C8 = arg8; +} + +s32 fn_1_F4E8(s32 arg0) +{ + M428DllPlayerWork *var_r31 = &lbl_1_bss_2AC[arg0]; + if (var_r31->unk_1C >= 500.0f) { + return 1; + } + return 0; +} + +s32 fn_1_F538(Vec *arg0, Vec *arg1, Vec *arg2, float arg8) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f30; + float var_f29; + M428DllData4B0Struct *var_r30; + s32 var_r27; + + *arg2 = *arg0; + var_r30 = lbl_1_data_4B0; + for (var_r27 = 0; var_r27 < 5; var_r27++, var_r30++) { + sp38 = var_r30->unk_00; + VECAdd(arg0, arg1, &sp2C); + if ((arg0->y >= (sp38.y + arg8)) && (sp2C.y <= (sp38.y + arg8))) { + sp8.x = sp2C.y - arg0->y; + sp8.y = arg0->x - sp2C.x; + sp8.z = -((sp8.x * arg0->x) + (sp8.y * arg0->y)); + var_f29 = -((sp8.z + (sp8.y * (sp38.y + arg8))) / sp8.x); + if ((var_f29 >= (sp38.x - (var_r30->unk_0C + arg8))) && (var_f29 <= (sp38.x + (var_r30->unk_0C + arg8)))) { + arg2->x = arg0->x + arg1->x; + arg2->y = 0.1f + (sp38.y + arg8); + arg2->z = arg0->z + arg1->z; + return 1; + } + } + VECSubtract(&sp2C, &sp38, &sp20); + var_f30 = VECMag(&sp20); + if (var_f30 == 0.0f) { + sp20.y = 1.0f; + } + sp14 = sp20; + if ((var_f30 < (var_r30->unk_0C + arg8)) && (sp20.y < arg8)) { + sp38 = var_r30->unk_00; + sp2C = *arg0; + VECSubtract(&sp2C, &sp38, &sp20); + var_f30 = VECMag(&sp20); + if (var_f30 == 0.0f) { + sp20.y = 1.0f; + } + if (sp20.y <= arg8) { + VECNormalize(&sp14, &sp20); + VECScale(&sp20, &sp20, var_r30->unk_0C + arg8); + VECAdd(&sp38, &sp20, arg2); + return 1; + } + arg2->x = arg0->x + arg1->x; + arg2->y = 0.1f + (sp38.y + arg8); + arg2->z = arg0->z + arg1->z; + return 1; + } + } + return 0; +} + +s32 fn_1_F88C(Vec *arg0, Vec *arg1, Vec *arg2) +{ + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + M428DllData4B0Struct *var_r30; + s32 var_r27; + + *arg2 = *arg0; + var_r30 = lbl_1_data_4B0; + for (var_r27 = 0; var_r27 < 5; var_r27++, var_r30++) { + sp2C = var_r30->unk_00; + VECAdd(arg0, arg1, &sp20); + if ((arg0->y >= sp2C.y) && (sp20.y <= sp2C.y)) { + sp8.x = sp20.y - arg0->y; + sp8.y = arg0->x - sp20.x; + sp8.z = -((sp8.x * arg0->x) + (sp8.y * arg0->y)); + var_f30 = -((sp8.z + (sp8.y * sp2C.y)) / sp8.x); + if ((var_f30 >= (sp2C.x - var_r30->unk_0C)) && (var_f30 <= (sp2C.x + var_r30->unk_0C))) { + arg2->x = arg0->x + arg1->x; + arg2->y = sp2C.y; + arg2->z = arg0->z + arg1->z; + return 1; + } + } + VECSubtract(&sp20, &sp2C, &sp14); + var_f31 = VECMag(&sp14); + if (var_f31 == 0.0f) { + sp14.y = 1.0f; + } + if ((var_f31 < var_r30->unk_0C) && (sp14.y <= 0.0f)) { + sp2C = var_r30->unk_00; + sp20 = *arg0; + VECSubtract(&sp20, &sp2C, &sp14); + var_f31 = VECMag(&sp14); + if (var_f31 == 0.0f) { + sp14.y = 1.0f; + } + if (sp14.y <= 0.0f) { + VECNormalize(&sp14, &sp14); + VECScale(&sp14, &sp14, var_r30->unk_0C); + VECAdd(&sp2C, &sp14, arg2); + return var_r27; + } + arg2->x = arg0->x + arg1->x; + arg2->y = sp2C.y; + arg2->z = arg0->z + arg1->z; + return var_r27; + } + } + return -1; +} + +s32 fn_1_FB8C(Vec *arg0, Vec *arg1, float arg8, s32 arg2, s32 arg3) +{ + float var_f31; + M428DllPlayerUnk120Struct *var_r31; + M428DllPlayerUnkStruct *var_r30; + s32 var_r29; + ModelData *var_r28; + s32 var_r26; + + var_r26 = Hu3DHookFuncCreate(fn_1_102A8); + var_r28 = &Hu3DData[var_r26]; + Hu3DModelLayerSet(var_r26, 2); + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M428DllPlayerUnk120Struct), var_r28->unk_48); + var_r28->unk_120 = var_r31; + memset(var_r31, 0, sizeof(M428DllPlayerUnk120Struct)); + var_r30 = HuMemDirectMallocNum(HEAP_DATA, arg2 * sizeof(M428DllPlayerUnkStruct), var_r28->unk_48); + var_r31->unk_54 = var_r30; + memset(var_r30, 0, arg2 * sizeof(M428DllPlayerUnkStruct)); + var_r31->unk_00 = var_r26; + var_r31->unk_02 = arg2; + var_r31->unk_04 = arg8; + var_r31->unk_08 = arg8 / (arg2 - 1); + var_r31->unk_0C = 0; + var_r31->unk_10 = arg3; + var_r31->unk_14 = 0.0f; + var_r31->unk_18 = 0.0f; + var_r31->unk_1C = 0; + var_r31->unk_20 = *arg0; + var_r31->unk_2C = *arg1; + var_r31->unk_38.x = var_r31->unk_38.y = var_r31->unk_38.z = 0.0f; + var_r31->unk_44 = -1; + var_r31->unk_48 = var_r31->unk_4C = var_r31->unk_50 = 0.0f; + for (var_r29 = 0; var_r29 < arg2; var_r29++, var_r30++) { + var_r30->unk_00 = var_r29; + if (var_r29 == 0) { + var_r30->unk_02 = 0; + } + else if (var_r29 == (arg2 - 1)) { + var_r30->unk_02 = 1; + } + else { + var_r30->unk_02 = -1; + } + var_r30->unk_04 = 0; + var_f31 = (float)var_r29 / (arg2 - 1); + var_r30->unk_08[0].x = var_r31->unk_20.x + (var_f31 * (var_r31->unk_2C.x - var_r31->unk_20.x)); + var_r30->unk_08[0].y = var_r31->unk_20.y + (var_f31 * (var_r31->unk_2C.y - var_r31->unk_20.y)); + var_r30->unk_08[0].z = var_r31->unk_20.z + (var_f31 * (var_r31->unk_2C.z - var_r31->unk_20.z)); + var_r30->unk_08[1] = var_r30->unk_08[0]; + var_r30->unk_08[2] = var_r30->unk_08[0]; + var_r30->unk_08[3].x = var_r30->unk_08[3].y = var_r30->unk_08[3].z = 0.0f; + } + return var_r26; +} + +void fn_1_FE98(M428DllPlayerUnk120Struct *arg0) +{ + Vec sp24; + Vec sp18; + Vec spC; + s32 sp8; + float var_f31; + float var_f30; + M428DllPlayerUnkStruct *var_r30; + s32 var_r29; + + if (arg0->unk_1C == 0) { + fn_1_129B4(0.5f, &arg0->unk_20, &arg0->unk_2C, &spC); + spC.y -= arg0->unk_14 * (0.75f * arg0->unk_04); + for (var_r30 = arg0->unk_54, var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r30++) { + var_f31 = (float)var_r29 / (arg0->unk_02 - 1); + fn_1_12AA4(var_f31, &arg0->unk_20, &spC, &arg0->unk_2C, &var_r30->unk_08[0]); + fn_1_129B4(var_f31, &arg0->unk_20, &arg0->unk_2C, &var_r30->unk_08[2]); + } + } + else { + arg0->unk_38.z = 0.5f * (arg0->unk_20.z + arg0->unk_2C.z); + fn_1_129B4(0.5f, &arg0->unk_20, &arg0->unk_38, &spC); + spC.y -= arg0->unk_14 * (0.375f * arg0->unk_04); + for (var_r30 = arg0->unk_54, var_r29 = 0; var_r29 < arg0->unk_44; var_r29++, var_r30++) { + var_f31 = (float)var_r29 / (arg0->unk_44 - 1); + fn_1_12AA4(var_f31, &arg0->unk_20, &spC, &arg0->unk_38, &var_r30->unk_08[0]); + fn_1_129B4(var_f31, &arg0->unk_20, &arg0->unk_38, &var_r30->unk_08[2]); + } + fn_1_129B4(0.1f, &arg0->unk_38, &arg0->unk_2C, &spC); + spC.y -= arg0->unk_18 * (0.375f * arg0->unk_04); + for (var_r30 = &arg0->unk_54[arg0->unk_44], var_r29 = arg0->unk_44; var_r29 < arg0->unk_02; var_r29++, var_r30++) { + var_f31 = (float)(var_r29 - arg0->unk_44) / ((arg0->unk_02 - arg0->unk_44) - 1); + fn_1_12AA4(var_f31, &arg0->unk_38, &spC, &arg0->unk_2C, &var_r30->unk_08[0]); + fn_1_129B4(var_f31, &arg0->unk_38, &arg0->unk_2C, &var_r30->unk_08[2]); + } + } + for (var_r29 = 0, var_r30 = arg0->unk_54; var_r29 < arg0->unk_02; var_r29++, var_r30++) { + PSVECSubtract(&var_r30->unk_08[0], &var_r30->unk_08[2], &sp24); + var_f30 = var_r30->unk_08[0].z; + if ((sp8 = fn_1_F88C(&var_r30->unk_08[2], &sp24, &sp18)) != -1) { + var_r30->unk_08[0] = sp18; + var_r30->unk_08[0].z = var_f30; + var_r30->unk_04 = 1; + } + else { + var_r30->unk_04 = 0; + } + if (var_r30->unk_02 == -1) { + fn_1_129B4(0.9f, &var_r30->unk_08[1], &var_r30->unk_08[0], &var_r30->unk_08[0]); + } + var_r30->unk_08[1] = var_r30->unk_08[0]; + } +} + +s32 lbl_1_data_694[2] = { 0xFFA040FF, 0xC8FFFF }; +s16 lbl_1_data_69C[2] = { -0x10, 0x10 }; +s16 lbl_1_data_6A0[2] = { 0x1A4, 0x60 }; +Vec lbl_1_data_6A4[4] = { + { -0.5f, 0.5f, 0.0f }, + { 0.5f, 0.5f, 0.0f }, + { 0.5f, -0.5f, 0.0f }, + { -0.5f, -0.5f, 0.0f }, +}; +Vec2f lbl_1_data_6D4[4] = { { 0.0f, 0.0f }, { 0.25f, 0.0f }, { 0.25f, 0.25f }, { 0.0f, 0.25f } }; + +void fn_1_102A8(ModelData *model, Mtx matrix) +{ + Mtx sp8; + s16 var_r30; + + M428DllPlayerUnk120Struct *var_r31 = model->unk_120; + if (omPauseChk() == 0) { + fn_1_FE98(var_r31); + } + GXLoadPosMtxImm(matrix, 0); + MTXInvXpose(matrix, sp8); + GXLoadNrmMtxImm(sp8, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetNumChans(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_RASC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_VTX, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_SPEC); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXSetZCompLoc(GX_FALSE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_ONE, GX_BL_ZERO, GX_LO_NOOP); + GXSetLineWidth(0x10, GX_TO_ZERO); + // bug, it should be var_r31->unk_54 + DCFlushRange(&var_r31->unk_54, var_r31->unk_02 * sizeof(M428DllPlayerUnkStruct)); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r31->unk_54->unk_08, sizeof(M428DllPlayerUnkStruct)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &lbl_1_data_694[var_r31->unk_10], 4); + GXBegin(GX_LINESTRIP, GX_VTXFMT0, var_r31->unk_02); + for (var_r30 = 0; var_r30 < var_r31->unk_02; var_r30++) { + GXPosition1x16(var_r30); + GXColor1x16(0); + } +} + +void fn_1_10530(s32 arg0, Vec *arg1, Vec *arg2) +{ + ModelData *var_r30 = &Hu3DData[arg0]; + M428DllPlayerUnk120Struct *var_r31 = var_r30->unk_120; + var_r31->unk_20 = *arg1; + var_r31->unk_2C = *arg2; +} + +void fn_1_10590(s32 arg0, s32 arg1, s32 arg2, Vec *arg3) +{ + ModelData *var_r30 = &Hu3DData[arg0]; + M428DllPlayerUnk120Struct *var_r31 = var_r30->unk_120; + var_r31->unk_1C = arg1; + if (arg1 != 0) { + var_r31->unk_38 = *arg3; + var_r31->unk_44 = arg2; + } +} + +void fn_1_105E8(s32 arg0, float arg8, float arg9) +{ + ModelData *var_r30 = &Hu3DData[arg0]; + M428DllPlayerUnk120Struct *var_r31 = var_r30->unk_120; + if (arg8 > 1.0f) { + arg8 = 1.0f; + } + else if (arg8 < 0.0f) { + arg8 = 0.0f; + } + if (arg9 > 1.0f) { + arg9 = 1.0f; + } + else if (arg9 < 0.0f) { + arg9 = 0.0f; + } + var_r31->unk_14 = arg8; + var_r31->unk_18 = arg9; +} + +s32 fn_1_106A8(s32 arg0, s32 arg1, Vec *arg2, float *arg3) +{ + M428DllPlayerUnkStruct *var_r30; + s32 var_r29; + + ModelData *var_r28 = &Hu3DData[arg0]; + M428DllPlayerUnk120Struct *var_r31 = var_r28->unk_120; + float var_f31 = 0.0f; + for (var_r29 = 0; var_r29 < var_r31->unk_02; var_f31 += var_r31->unk_08, var_r29++) { + if (arg1 == 0) { + var_r30 = &var_r31->unk_54[var_r29]; + } + else { + var_r30 = &var_r31->unk_54[(var_r31->unk_02 - 1) - var_r29]; + } + if (var_r30->unk_04 != 0) { + *arg2 = var_r30->unk_08[0]; + *arg3 = var_f31; + return 1; + } + } + return 0; +} + +s32 fn_1_10788(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + ModelData *sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + M428DllData4B0Struct *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + sp8 = &Hu3DData[arg0]; + sp18.x = arg2->y - arg1->y; + sp18.y = arg1->x - arg2->x; + sp18.z = -((sp18.x * arg1->x) + (sp18.y * arg1->y)); + if (arg1->x < arg2->x) { + var_f27 = arg1->x; + var_f26 = arg2->x; + } + else { + var_f27 = arg2->x; + var_f26 = arg1->x; + } + if (arg1->y < arg2->y) { + var_f30 = arg1->y; + var_f29 = arg2->y; + } + else { + var_f30 = arg2->y; + var_f29 = arg1->y; + } + for (var_r30 = 0, var_r31 = lbl_1_data_4B0; var_r30 < 5; var_r30++, var_r31++) { + sp30 = var_r31->unk_00; + sp30.x -= var_r31->unk_0C; + sp24 = var_r31->unk_00; + sp24.x += var_r31->unk_0C; + spC.x = sp24.y - sp30.y; + spC.y = sp30.x - sp24.x; + spC.z = -((spC.x * sp30.x) + (spC.y * sp30.y)); + if ((var_r31->unk_00.y >= var_f30) && (var_r31->unk_00.y <= var_f29) && (sp18.x != 0.0f)) { + var_f31 = -((sp18.z + (sp18.y * var_r31->unk_00.y)) / sp18.x); + var_f28 = var_r31->unk_00.y; + if ((var_f31 >= sp30.x) && (var_f31 <= sp24.x)) { + var_r29 = 1; + } + else { + var_r29 = 0; + } + if ((var_f31 >= var_f27) && (var_f31 <= var_f26) && (var_f28 >= var_f30) && (var_f28 <= var_f29)) { + var_r28 = 1; + } + else { + var_r28 = 0; + } + if ((var_r29 != 0) && (var_r28 != 0)) { + if (var_f31 < var_r31->unk_00.x) { + *arg3 = sp30; + } + else { + *arg3 = sp24; + } + return var_r30; + } + } + } + return -1; +} + +void fn_1_10A88(void) +{ + M428DllPlayerWork3 *var_r31; + omObjData *var_r30; + s32 var_r29; + M428DllPlayerUnk120Struct2 *var_r28; + ModelData *var_r27; + s32 var_r26; + s32 var_r25; + + var_r30 = lbl_1_bss_2B4 = omAddObjEx(lbl_1_bss_2D0, 0x42, 0xA, 0, -1, fn_1_11014); + var_r31 = var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M428DllPlayerWork3), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, sizeof(M428DllPlayerWork3)); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M428, 0x0E), 0x80, 0); + var_r31->unk_00 = var_r29; + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, HUSPR_ATTR_NOANIM); + espPosSet(var_r29, 288.0, 240.0); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M428, 0x0C), 0x50, 0); + var_r31->unk_04[0] = var_r29; + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, HUSPR_ATTR_NOANIM); + espPosSet(var_r29, 288.0, 240.0); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M428, 0x0D), 0x50, 0); + var_r31->unk_04[1] = var_r29; + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, HUSPR_ATTR_NOANIM); + espPosSet(var_r29, 288.0, 240.0); + var_r31->unk_0C[0][0] = var_r31->unk_0C[0][1] = 0.0f; + var_r31->unk_0C[1][0] = var_r31->unk_0C[1][1] = 0.0f; + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M428, 0x10), 0x100, 0); + var_r31->unk_1C[0] = var_r29; + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, HUSPR_ATTR_NOANIM); + espPosSet(var_r29, 144.0, 240.0); + espScaleSet(var_r29, 36.0, 60.0); + espColorSet(var_r29, 0xFF, 0xFF, 0xFF); + espTPLvlSet(var_r29, 0.0); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M428, 0x10), 0x100, 0); + var_r31->unk_1C[1] = var_r29; + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, HUSPR_ATTR_NOANIM); + espPosSet(var_r29, 432.0, 240.0); + espScaleSet(var_r29, 36.0, 60.0); + espColorSet(var_r29, 0xFF, 0xFF, 0xFF); + espTPLvlSet(var_r29, 0.0); + var_r31->unk_24[0][0] = var_r31->unk_24[0][1] = 0.0f; + var_r31->unk_24[1][0] = var_r31->unk_24[1][1] = 0.0f; + var_r31->unk_34 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M428, 0x0A), MEMORY_DEFAULT_NUM)); + var_r31->unk_38 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M428, 0x0B), MEMORY_DEFAULT_NUM)); + var_r30->model[0] = fn_1_12CD4(var_r31->unk_34, 2); + Hu3DModelCameraSet(var_r30->model[0], 1); + Hu3DModelLayerSet(var_r30->model[0], 5); + fn_1_13D9C(var_r30->model[0], -1, 0); + var_r27 = &Hu3DData[var_r30->model[0]]; + var_r28 = var_r27->unk_120; + var_r28->unk_22 |= 3; + var_r30->model[1] = fn_1_12CD4(var_r31->unk_38, 2); + Hu3DModelCameraSet(var_r30->model[1], 1); + Hu3DModelLayerSet(var_r30->model[1], 5); + fn_1_13D9C(var_r30->model[1], -1, 0); + var_r27 = &Hu3DData[var_r30->model[1]]; + var_r28 = var_r27->unk_120; + var_r28->unk_22 |= 3; + var_r30->model[2] = fn_1_12CD4(var_r31->unk_34, 2); + Hu3DModelCameraSet(var_r30->model[2], 2); + Hu3DModelLayerSet(var_r30->model[2], 5); + fn_1_13D9C(var_r30->model[2], -1, 0); + var_r27 = &Hu3DData[var_r30->model[2]]; + var_r28 = var_r27->unk_120; + var_r28->unk_22 |= 3; + var_r30->model[3] = fn_1_12CD4(var_r31->unk_38, 2); + Hu3DModelCameraSet(var_r30->model[3], 2); + Hu3DModelLayerSet(var_r30->model[3], 5); + fn_1_13D9C(var_r30->model[3], -1, 0); + var_r27 = &Hu3DData[var_r30->model[3]]; + var_r28 = var_r27->unk_120; + var_r28->unk_22 |= 3; + for (var_r26 = 0; var_r26 < 2; var_r26++) { + for (var_r25 = 0; var_r25 < 2; var_r25++) { + var_r31->unk_3C[var_r26][var_r25] = var_r31->unk_4C[var_r26][var_r25] = -1; + } + } +} + +void fn_1_11014(omObjData *object) +{ + Vec sp20; + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r29; + omObjData *var_r27; + M428DllPlayerWork *var_r26; + + M428DllPlayerWork3 *var_r30 = object->data; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30->unk_0C[var_r31][0] = var_r30->unk_0C[var_r31][0] + (0.05f * (var_r30->unk_0C[var_r31][1] - var_r30->unk_0C[var_r31][0])); + var_f30 = lbl_1_data_6A0[0] + (var_r30->unk_0C[var_r31][0] * (lbl_1_data_6A0[1] - lbl_1_data_6A0[0])); + espPosSet(var_r30->unk_04[var_r31], 288.0f + lbl_1_data_69C[var_r31], var_f30); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30->unk_24[var_r31][0] = var_r30->unk_24[var_r31][0] + (0.05f * (var_r30->unk_24[var_r31][1] - var_r30->unk_24[var_r31][0])); + espTPLvlSet(var_r30->unk_1C[var_r31], var_r30->unk_24[var_r31][0]); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + for (var_r29 = 0; var_r29 < 2; var_r29++) { + var_r26 = lbl_1_bss_2C8[var_r31]->data; + var_r27 = var_r26->unk_00[var_r29]; + if (var_r30->unk_3C[var_r31][var_r29] > 0) { + var_f31 = (30.0f - var_r30->unk_3C[var_r31][var_r29]) / 6.0f; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + else if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + var_f31 = sind((180.0f * var_f31)); + sp20.x = var_r27->trans.x; + sp20.y = 200.0f + var_r27->trans.y; + sp20.z = var_r27->trans.z; + fn_1_13E14(object->model[var_r31 * 2], var_r29, sp20); + fn_1_13EC8(object->model[var_r31 * 2], var_r29, 125.0f * (1.0f + var_f31)); + var_r30->unk_3C[var_r31][var_r29] -= 1; + } + else { + fn_1_13D9C(object->model[var_r31 * 2], var_r29, 0); + } + if (var_r30->unk_4C[var_r31][var_r29] > 0) { + var_f31 = (30.0f - var_r30->unk_4C[var_r31][var_r29]) / 6.0f; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + else if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + var_f31 = sind((180.0f * var_f31)); + sp20.x = var_r27->trans.x; + sp20.y = 200.0f + var_r27->trans.y; + sp20.z = var_r27->trans.z; + fn_1_13E14(object->model[(var_r31 * 2) + 1], var_r29, sp20); + fn_1_13EC8(object->model[(var_r31 * 2) + 1], var_r29, 125.0f * (1.0f + var_f31)); + var_r30->unk_4C[var_r31][var_r29] -= 1; + } + else { + fn_1_13D9C(object->model[(var_r31 * 2) + 1], var_r29, 0); + } + } + } +} + +void fn_1_115F8(void) +{ + M428DllPlayerWork3 *var_r31 = lbl_1_bss_2B4->data; + espKill(var_r31->unk_00); + espKill(var_r31->unk_04[0]); + espKill(var_r31->unk_04[1]); + espKill(var_r31->unk_1C[0]); + espKill(var_r31->unk_1C[1]); + Hu3DModelKill(lbl_1_bss_2B4->model[0]); + Hu3DModelKill(lbl_1_bss_2B4->model[1]); + Hu3DModelKill(lbl_1_bss_2B4->model[2]); + Hu3DModelKill(lbl_1_bss_2B4->model[3]); + HuSprAnimKill(var_r31->unk_34); + HuSprAnimKill(var_r31->unk_38); +} + +void fn_1_116C4(s32 arg0, s32 arg1) +{ + if (lbl_1_bss_2B4) { + s32 var_r31; + M428DllPlayerWork3 *var_r30 = lbl_1_bss_2B4->data; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (arg1 == 0) { + var_r30->unk_3C[arg0][var_r31] = 0x1E; + } + else { + var_r30->unk_4C[arg0][var_r31] = 0x1E; + } + } + } +} + +void fn_1_11754(s32 arg0, float arg8) +{ + if (lbl_1_bss_2B4) { + M428DllPlayerWork3 *var_r31 = lbl_1_bss_2B4->data; + var_r31->unk_24[arg0][1] = arg8; + } +} + +void fn_1_11798(s32 sp8) +{ + s32 var_r30; + s32 var_r29; + + if (lbl_1_bss_2B4) { + M428DllPlayerWork3 *work = lbl_1_bss_2B4->data; + if (sp8 == 0) { + espDispOff(work->unk_00); + espDispOff(work->unk_04[0]); + espDispOff(work->unk_04[1]); + espDispOff(work->unk_1C[0]); + espDispOff(work->unk_1C[1]); + } + else { + espDispOn(work->unk_00); + espDispOn(work->unk_04[0]); + espDispOn(work->unk_04[1]); + espDispOn(work->unk_1C[0]); + espDispOn(work->unk_1C[1]); + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + for (var_r29 = 0; var_r29 < 2; var_r29++) { + work->unk_3C[var_r30][var_r29] = work->unk_4C[var_r30][var_r29] = -1; + } + } + } +} + +void fn_1_118A8(s32 arg0, float var_f1) +{ + M428DllPlayerWork3 *var_r31; + if (lbl_1_bss_2B4) { + var_r31 = lbl_1_bss_2B4->data; + if (var_f1 < 0.0f) { + var_f1 = 0.0f; + } + else if (var_f1 > 1.0f) { + var_f1 = 1.0f; + } + var_r31->unk_0C[arg0][1] = var_f1; + } +} + +void fn_1_11930(void) +{ + M428DllPlayerWork4 *var_r31; + s32 var_r30; + s32 var_r29; + omObjData *var_r28; + M428DllPlayerUnk120Struct2 *var_r27; + ModelData *var_r26; + AnimData *var_r25; + + var_r28 = lbl_1_bss_2B0 = omAddObjEx(lbl_1_bss_2D0, 0xBF, 0, 0, -1, fn_1_11A60); + var_r31 = var_r28->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M428DllPlayerWork4), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, sizeof(M428DllPlayerWork4)); + var_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M428, 0x0F), MEMORY_DEFAULT_NUM)); + var_r31->unk_10 = var_r25; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r29 = fn_1_12CD4(var_r25, 0x200); + var_r31->unk_00[var_r30] = var_r29; + if (var_r30 == 0) { + Hu3DModelCameraSet(var_r29, 1); + } + else { + Hu3DModelCameraSet(var_r29, 2); + } + Hu3DModelLayerSet(var_r29, 3); + var_r31->unk_08[var_r30] = 0; + var_r26 = &Hu3DData[var_r29]; + var_r27 = var_r26->unk_120; + var_r27->unk_20 = 0; + } +} + +void fn_1_11A60(omObjData *object) +{ + s32 temp_r4; + M428DllPlayerUnkStruct2 *var_r31; + M428DllPlayerWork4 *var_r30; + s32 var_r29; + M428DllPlayerUnk120Struct2 *var_r28; + s32 var_r27; + ModelData *var_r26; + + var_r30 = object->data; + for (var_r29 = 0; var_r29 < 2; var_r29++) { + if (var_r30->unk_08[var_r29] <= 0) { + Hu3DModelAttrSet(var_r30->unk_00[var_r29], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrReset(var_r30->unk_00[var_r29], HU3D_ATTR_DISPOFF); + var_r26 = &Hu3DData[var_r30->unk_00[var_r29]]; + var_r28 = var_r26->unk_120; + var_r31 = var_r28->unk_3C; + var_r28->unk_23 = 0; + for (var_r27 = 0; var_r27 < var_r28->unk_26; var_r27++, var_r31++) { + if (!(var_r31->unk_30 <= 0.0f)) { + var_r31->unk_38.x += var_r31->unk_04; + var_r31->unk_38.y += var_r31->unk_08; + var_r31->unk_38.z += var_r31->unk_0C; + var_r31->unk_34 = var_r31->unk_34 + var_r31->unk_18; + if (var_r31->unk_34 >= 360.0f) { + var_r31->unk_34 = var_r31->unk_34 - 360.0f; + } + var_r31->unk_48 = var_r31->unk_28; + var_r31->unk_28 = var_r31->unk_28 + var_r31->unk_2C; + if (var_r31->unk_48 >= 0x10) { + var_r31->unk_48 = 0; + var_r31->unk_00 = 0; + var_r31->unk_30 = 0.0f; + var_r30->unk_08[var_r29] -= 1; + } + } + } + } + } +} + +void fn_1_11C20(void) +{ + + omObjData *var_r30 = lbl_1_bss_2B0; + M428DllPlayerWork4 *var_r31 = var_r30->data; + Hu3DModelAttrSet(var_r31->unk_00[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_00[1], HU3D_ATTR_DISPOFF); + HuSprAnimKill(var_r31->unk_10); + var_r30->func = NULL; +} + +s32 fn_1_11C8C(s32 arg0, Vec arg1, Vec arg2, GXColor arg3, float arg8, float arg9, float argA) +{ + M428DllPlayerUnkStruct2 *var_r31; + M428DllPlayerUnk120Struct2 *var_r30; + s32 var_r29; + M428DllPlayerWork4 *var_r28; + omObjData *var_r27; + ModelData *var_r26; + + var_r27 = lbl_1_bss_2B0; + var_r28 = var_r27->data; + var_r26 = &Hu3DData[var_r28->unk_00[arg0]]; + var_r30 = var_r26->unk_120; + for (var_r31 = var_r30->unk_3C, var_r29 = 0; var_r29 < var_r30->unk_26; var_r29++, var_r31++) { + if (var_r31->unk_30 <= 0.0f) { + break; + } + } + if (var_r29 >= var_r30->unk_26) { + return -1; + } + var_r31->unk_00 = var_r31->unk_02 = 0; + var_r31->unk_38.x = arg1.x; + var_r31->unk_38.y = arg1.y; + var_r31->unk_38.z = arg1.z; + var_r31->unk_04 = arg2.x; + var_r31->unk_08 = arg2.y; + var_r31->unk_0C = arg2.z; + var_r31->unk_18 = arg9; + var_r31->unk_30 = arg8; + var_r31->unk_44.r = arg3.r; + var_r31->unk_44.g = arg3.g; + var_r31->unk_44.b = arg3.b; + var_r31->unk_44.a = arg3.a; + var_r31->unk_34 = 0.0f; + var_r31->unk_48 = 0; + var_r31->unk_00 = 0; + var_r31->unk_28 = 0.0f; + var_r31->unk_2C = argA; + var_r28->unk_08[arg0]++; + return var_r29; +} + +static inline s32 fn_1_11C8C_inlined(s32 arg0, Vec arg1, Vec arg2, GXColor arg3, float arg8, float arg9, float argA) +{ + M428DllPlayerUnkStruct2 *var_r31; + M428DllPlayerUnk120Struct2 *var_r30; + s32 var_r29; + M428DllPlayerWork4 *var_r28; + omObjData *var_r27; + ModelData *var_r26; + + var_r27 = lbl_1_bss_2B0; + var_r28 = var_r27->data; + var_r26 = &Hu3DData[var_r28->unk_00[arg0]]; + var_r30 = var_r26->unk_120; + for (var_r31 = var_r30->unk_3C, var_r29 = 0; var_r29 < var_r30->unk_26; var_r29++, var_r31++) { + if (var_r31->unk_30 <= 0.0f) { + break; + } + } + if (var_r29 >= var_r30->unk_26) { + return -1; + } + var_r31->unk_00 = var_r31->unk_02 = 0; + var_r31->unk_38.x = arg1.x; + var_r31->unk_38.y = arg1.y; + var_r31->unk_38.z = arg1.z; + var_r31->unk_04 = arg2.x; + var_r31->unk_08 = arg2.y; + var_r31->unk_0C = arg2.z; + var_r31->unk_18 = arg9; + var_r31->unk_30 = arg8; + var_r31->unk_44.r = arg3.r; + var_r31->unk_44.g = arg3.g; + var_r31->unk_44.b = arg3.b; + var_r31->unk_44.a = arg3.a; + var_r31->unk_34 = 0.0f; + var_r31->unk_48 = 0; + var_r31->unk_00 = 0; + var_r31->unk_28 = 0.0f; + var_r31->unk_2C = argA; + var_r28->unk_08[arg0]++; + return var_r29; +} + +s32 fn_1_11DE4(s32 arg0, Vec arg1, Vec arg2, float arg8, float arg9, float argA, float argB, GXColor arg3) +{ + Vec sp64; + Vec sp58; + s32 sp24; + s32 sp20; + float var_f31; + + sp58.x = arg2.z; + sp58.z = arg2.x; + sp58.y = 0.0f; + VECNormalize(&sp58, &sp58); + var_f31 = 0.5f * argA; + sp64.x = arg1.x + (sp58.x * var_f31); + sp64.y = arg1.y + (sp58.y * var_f31); + sp64.z = arg1.z + (sp58.z * var_f31); + + sp24 = fn_1_11C8C_inlined(arg0, sp64, arg2, arg3, arg8, arg9, argB); + sp64.x = arg1.x - (sp58.x * var_f31); + sp64.y = arg1.y - (sp58.y * var_f31); + sp64.z = arg1.z - (sp58.z * var_f31); + + sp20 = fn_1_11C8C_inlined(arg0, sp64, arg2, arg3, arg8, -arg9, argB); + return (sp24 << 0x10) | sp20; +} + +float fn_1_12254(float arg8, float arg9) +{ + float var_f31; + + if (arg8 >= 360.0f) { + arg8 -= 360.0f; + } + else if (arg8 < 0.0f) { + arg8 += 360.0f; + } + if (arg9 >= 360.0f) { + arg9 -= 360.0f; + } + else if (arg9 < 0.0f) { + arg9 += 360.0f; + } + var_f31 = arg8 - arg9; + if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + else if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} + +float fn_1_1236C(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + + if (arg8 >= 360.0) { + arg8 -= 360.0; + } + else if (arg8 < 0.0) { + arg8 += 360.0; + } + if (arg9 >= 360.0) { + arg9 -= 360.0; + } + else if (arg9 < 0.0) { + arg9 += 360.0; + } + var_f30 = 360.0 + (arg8 - arg9); + if (fabs(var_f30) >= 360.0) { + var_f30 = fmod(var_f30, 360.0); + } + if (var_f30 < 180.0) { + if (var_f30 <= argA) { + var_f31 = var_f30; + } + else { + var_f31 = argA; + } + } + else if (360.0 - var_f30 <= argA) { + var_f31 = -(360.0 - var_f30); + } + else { + var_f31 = -argA; + } + var_f31 += arg9; + if (var_f31 >= 360.0) { + var_f31 -= 360.0; + } + else if (var_f31 < 0.0) { + var_f31 += 360.0; + } + return var_f31; +} + +float fn_1_125BC(float arg8, float arg9, float argA) +{ + float var_f24; + float var_f23; + + var_f23 = fn_1_12254(argA, arg9); + var_f24 = fabs(var_f23 * arg8); + return fn_1_1236C(argA, arg9, var_f24); +} + +void fn_1_129B4(float arg8, Vec *arg0, Vec *arg1, Vec *arg2) +{ + Vec sp8; + sp8.x = arg0->x + (arg8 * (arg1->x - arg0->x)); + sp8.y = arg0->y + (arg8 * (arg1->y - arg0->y)); + sp8.z = arg0->z + (arg8 * (arg1->z - arg0->z)); + *arg2 = sp8; +} + +float fn_1_12A2C(float arg8, float arg9, float argA, float argB) +{ + float var_f31; + float var_f30; + + var_f31 = 1.0 - arg8; + var_f30 = (argB * (arg8 * arg8)) + ((arg9 * (var_f31 * var_f31)) + (2.0 * (argA * (var_f31 * arg8)))); + return var_f30; +} + +void fn_1_12AA4(float arg8, Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + arg3->x = fn_1_12A2C(arg8, arg0->x, arg1->x, arg2->x); + arg3->y = fn_1_12A2C(arg8, arg0->y, arg1->y, arg2->y); + arg3->z = fn_1_12A2C(arg8, arg0->z, arg1->z, arg2->z); +} + +s16 fn_1_12CD4(AnimData *sp8, s16 var_r26) +{ + s16 var_r30; + M428DllPlayerUnkStruct2 *var_r29; + Vec2f *var_r28; + Vec *var_r25; + void *var_r24; + void *var_r22; + + s16 var_r23 = Hu3DHookFuncCreate(fn_1_134C0); + ModelData *var_r27 = &Hu3DData[var_r23]; + M428DllPlayerUnk120Struct2 *var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M428DllPlayerUnk120Struct2), var_r27->unk_48); + var_r27->unk_120 = var_r31; + var_r31->unk_38 = sp8; + var_r31->unk_26 = var_r26; + var_r31->unk_20 = 0; + var_r31->unk_22 = 0; + var_r31->unk_4C = 0; + var_r31->unk_50 = 0; + var_r31->unk_28 = 0; + var_r31->unk_21 = 0; + var_r31->unk_23 = 0; + var_r31->unk_30 = 0; + var_r31->unk_00 = var_r31->unk_02 = 0; + var_r29 = HuMemDirectMallocNum(HEAP_DATA, var_r26 * sizeof(M428DllPlayerUnkStruct2), var_r27->unk_48); + var_r31->unk_3C = var_r29; + memset(var_r29, 0, var_r26 * sizeof(M428DllPlayerUnkStruct2)); + for (var_r30 = 0; var_r30 < var_r26; var_r30++, var_r29++) { + var_r29->unk_30 = 0.0f; + var_r29->unk_34 = 0.0f; + var_r29->unk_28 = 0.0f; + var_r29->unk_2C = 1.0f; + var_r29->unk_38.x = ((frand() & 0x7F) - 0x40) * 0x14; + var_r29->unk_38.y = ((frand() & 0x7F) - 0x40) * 0x1E; + var_r29->unk_38.z = ((frand() & 0x7F) - 0x40) * 0x14; + var_r29->unk_44.r = var_r29->unk_44.g = var_r29->unk_44.b = var_r29->unk_44.a = 0xFF; + var_r29->unk_48 = 0; + } + var_r25 = HuMemDirectMallocNum(HEAP_DATA, var_r26 * sizeof(Vec) * 4, var_r27->unk_48); + var_r31->unk_40 = var_r25; + for (var_r30 = 0; var_r30 < (var_r26 * 4); var_r30++, var_r25++) { + var_r25->x = var_r25->y = var_r25->z = 0.0f; + } + var_r28 = HuMemDirectMallocNum(HEAP_DATA, var_r26 * sizeof(Vec2f) * 4, var_r27->unk_48); + var_r31->unk_44 = var_r28; + for (var_r30 = 0; var_r30 < var_r26; var_r30++) { + var_r28->x = 0.0f; + var_r28->y = 0.0f; + var_r28++; + var_r28->x = 1.0f; + var_r28->y = 0.0f; + var_r28++; + var_r28->x = 1.0f; + var_r28->y = 1.0f; + var_r28++; + var_r28->x = 0.0f; + var_r28->y = 1.0f; + var_r28++; + } + var_r24 = HuMemDirectMallocNum(HEAP_DATA, 0x10000, var_r27->unk_48); + var_r22 = var_r24; + DCFlushRange(var_r24, 0x10000); + GXBeginDisplayList(var_r22, 0x10000); + GXBegin(GX_QUADS, GX_VTXFMT0, var_r26 * 4); + for (var_r30 = 0; var_r30 < var_r26; var_r30++) { + GXUnknownu16(var_r30 * 4); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4); + GXUnknownu16(var_r30 * 4 + 1); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4 + 1); + GXUnknownu16(var_r30 * 4 + 2); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4 + 2); + GXUnknownu16(var_r30 * 4 + 3); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4 + 3); + } + var_r31->unk_34 = GXEndDisplayList(); + var_r31->unk_48 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_34, var_r27->unk_48); + memcpy(var_r31->unk_48, var_r24, var_r31->unk_34); + DCFlushRange(var_r31->unk_48, var_r31->unk_34); + HuMemDirectFree(var_r24); + (void)var_r30; + (void)var_r26; + return var_r23; +} + +s16 fn_1_13184(s16 sp8) +{ + M428DllPlayerUnk120Struct2 *var_r31; + M428DllPlayerUnkStruct2 *var_r30; + Vec2f *var_r29; + s16 var_r28; + ModelData *var_r27; + M428DllPlayerUnk120Struct2 *var_r26; + Vec *var_r25; + s32 var_r24; + ModelData *var_r23; + s16 var_r22; + + var_r23 = &Hu3DData[sp8]; + var_r26 = var_r23->unk_120; + var_r22 = Hu3DHookFuncCreate(var_r23->hook); + var_r27 = &Hu3DData[var_r22]; + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M428DllPlayerUnk120Struct2), var_r27->unk_48); + var_r27->unk_120 = var_r31; + var_r31->unk_38 = var_r26->unk_38; + var_r31->unk_26 = var_r26->unk_26; + var_r24 = var_r31->unk_26; + var_r31->unk_20 = 0; + var_r31->unk_22 = var_r26->unk_22; + var_r31->unk_4C = NULL; + var_r31->unk_50 = NULL; + var_r31->unk_28 = 0; + var_r31->unk_21 = 0; + var_r31->unk_30 = 0; + var_r31->unk_00 = var_r31->unk_02 = 0; + var_r30 = HuMemDirectMallocNum(HEAP_DATA, var_r24 * sizeof(M428DllPlayerUnkStruct2), var_r27->unk_48); + var_r31->unk_3C = var_r30; + for (var_r28 = 0; var_r28 < var_r24; var_r28++, var_r30++) { + var_r30->unk_30 = 0.0f; + var_r30->unk_34 = 0.0f; + var_r30->unk_28 = 0.0f; + var_r30->unk_2C = 1.0f; + var_r30->unk_38.x = ((frand() & 0x7F) - 0x40) * 0x14; + var_r30->unk_38.y = ((frand() & 0x7F) - 0x40) * 0x1E; + var_r30->unk_38.z = ((frand() & 0x7F) - 0x40) * 0x14; + var_r30->unk_44.r = var_r30->unk_44.g = var_r30->unk_44.b = var_r30->unk_44.a = 0xFF; + var_r30->unk_48 = 0; + } + var_r25 = HuMemDirectMallocNum(HEAP_DATA, var_r24 * sizeof(Vec) * 4, var_r27->unk_48); + var_r31->unk_40 = var_r25; + for (var_r28 = 0; var_r28 < (var_r24 * 4); var_r28++, var_r25++) { + var_r25->x = var_r25->y = var_r25->z = 0.0f; + } + var_r29 = HuMemDirectMallocNum(HEAP_DATA, var_r24 * sizeof(Vec2f) * 4, var_r27->unk_48); + var_r31->unk_44 = var_r29; + for (var_r28 = 0; var_r28 < var_r24; var_r28++) { + var_r29->x = 0.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 1.0f; + var_r29++; + var_r29->x = 0.0f; + var_r29->y = 1.0f; + var_r29++; + } + var_r31->unk_34 = var_r26->unk_34; + var_r31->unk_48 = var_r26->unk_48; + return var_r22; +} + +void fn_1_134C0(ModelData *var_r23, Mtx var_r22) +{ + Mtx sp128; + Mtx spF8; + Mtx spC8; + Vec sp98[4]; + Vec sp68[4]; + Vec sp38[4]; + ROMtx sp8; + M428DllPlayerUnk120Struct2 *var_r31; + Vec *var_r30; + M428DllPlayerUnkStruct2 *var_r29; + Vec2f *var_r28; + Vec *var_r27; + s16 var_r26; + s16 var_r25; + Vec *var_r24; + s16 var_r21; + s16 var_r20; + s16 var_r19; + M428DllPlayerHook var_r18; + + var_r31 = var_r23->unk_120; + if ((var_r31->unk_2C != GlobalCounter) || (shadowModelDrawF != 0)) { + if ((var_r31->unk_50) && (var_r31->unk_50 != var_r23)) { + fn_1_134C0(var_r31->unk_50, var_r22); + } + GXLoadPosMtxImm(var_r22, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + if (shadowModelDrawF != 0) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + } + else { + var_r21 = var_r31->unk_38->bmp->dataFmt & 0xF; + if ((var_r21 == 7) || (var_r21 == 8)) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); + } + else { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + } + if ((var_r31->unk_22 & 1) != 0) { + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + } + else if ((var_r23->attr & 2) != 0) { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + } + else { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + } + } + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + HuSprTexLoad(var_r31->unk_38, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + switch (var_r31->unk_20) { + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + break; + } + if (HmfInverseMtxF3X3(var_r22, &sp128[0]) == 0) { + MTXIdentity(sp128); + } + PSMTXReorder(sp128, sp8); + if (var_r31->unk_4C) { + var_r18 = var_r31->unk_4C; + var_r18(var_r23, var_r31, var_r22); + } + var_r29 = var_r31->unk_3C; + var_r30 = var_r31->unk_40; + var_r28 = var_r31->unk_44; + PSMTXROMultVecArray(sp8, lbl_1_data_6A4, &sp38[0], 4); + for (var_r26 = 0; var_r26 < var_r31->unk_26; var_r26++, var_r29++) { + if (!var_r29->unk_30) { + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + } + else if (!var_r29->unk_34) { + var_r27 = &sp98[0]; + var_r24 = &sp38[0]; + VECScale(var_r24++, var_r27, var_r29->unk_30); + VECAdd(var_r27++, &var_r29->unk_38, var_r30++); + VECScale(var_r24++, var_r27, var_r29->unk_30); + VECAdd(var_r27++, &var_r29->unk_38, var_r30++); + VECScale(var_r24++, var_r27, var_r29->unk_30); + VECAdd(var_r27++, &var_r29->unk_38, var_r30++); + VECScale(var_r24++, var_r27, var_r29->unk_30); + VECAdd(var_r27++, &var_r29->unk_38, var_r30++); + } + else { + VECScale(lbl_1_data_6A4, &sp98[0], var_r29->unk_30); + VECScale(&lbl_1_data_6A4[1], &sp98[1], var_r29->unk_30); + VECScale(&lbl_1_data_6A4[2], &sp98[2], var_r29->unk_30); + VECScale(&lbl_1_data_6A4[3], &sp98[3], var_r29->unk_30); + MTXRotRad(spC8, 0x5A, var_r29->unk_34); + MTXConcat(&sp128[0], spC8, spF8); + MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); + VECAdd(&sp68[0], &var_r29->unk_38, var_r30++); + VECAdd(&sp68[1], &var_r29->unk_38, var_r30++); + VECAdd(&sp68[2], &var_r29->unk_38, var_r30++); + VECAdd(&sp68[3], &var_r29->unk_38, var_r30++); + } + } + var_r29 = var_r31->unk_3C; + var_r28 = var_r31->unk_44; + if ((var_r31->unk_22 & 2) == 0) { + for (var_r26 = 0; var_r26 < var_r31->unk_26; var_r26++, var_r29++) { + var_r20 = var_r29->unk_48 & 3; + var_r19 = (var_r29->unk_48 >> 2) & 3; + for (var_r25 = 0; var_r25 < 4; var_r25++, var_r28++) { + var_r28->x = (0.25f * var_r20) + lbl_1_data_6D4[var_r25].x; + var_r28->y = (0.25f * var_r19) + lbl_1_data_6D4[var_r25].y; + } + } + } + else { + for (var_r26 = 0; var_r26 < var_r31->unk_26; var_r26++, var_r29++) { + for (var_r25 = 0; var_r25 < 4; var_r25++, var_r28++) { + var_r28->x = 4.0f * lbl_1_data_6D4[var_r25].x; + var_r28->y = 4.0f * lbl_1_data_6D4[var_r25].y; + } + } + } + DCFlushRangeNoSync(var_r31->unk_40, var_r31->unk_26 * 0xC * 4); + DCFlushRangeNoSync(var_r31->unk_44, var_r31->unk_26 * 8 * 4); + DCFlushRangeNoSync(var_r31->unk_3C, var_r31->unk_26 * 0x4C); + PPCSync(); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r31->unk_40, sizeof(Vec)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_44, sizeof(M428DllPlayerUnkStruct2)); // bug? + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, var_r31->unk_44, sizeof(Vec2f)); + GXCallDisplayList(var_r31->unk_48, var_r31->unk_34); + if (shadowModelDrawF == 0) { + if ((var_r31->unk_21 & 2) == 0) { + var_r31->unk_28++; + } + if ((var_r31->unk_30 != 0) && (var_r31->unk_30 <= var_r31->unk_28)) { + if ((var_r31->unk_21 & 1) != 0) { + var_r31->unk_28 = 0; + } + var_r31->unk_28 = var_r31->unk_30; + } + var_r31->unk_2C = GlobalCounter; + } + } +} + +void fn_1_13D9C(s16 arg0, s16 arg1, s32 arg2) +{ + if (arg2 == 0) { + fn_1_13EC8(arg0, arg1, 0.0f); + return; + } + fn_1_13EC8(arg0, arg1, 1.0f); +} + +void fn_1_13E14(s16 arg0, s16 arg1, Vec arg2) +{ + M428DllPlayerUnkStruct2 *var_r31; + M428DllPlayerUnk120Struct2 *var_r30; + s32 var_r29; + ModelData *var_r28; + + var_r28 = &Hu3DData[arg0]; + var_r30 = var_r28->unk_120; + if (arg1 != -1) { + var_r31 = &var_r30->unk_3C[arg1]; + var_r31->unk_38 = arg2; + return; + } + for (var_r31 = var_r30->unk_3C, var_r29 = 0; var_r29 < var_r30->unk_26; var_r29++, var_r31++) { + var_r31->unk_38 = arg2; + } +} + +void fn_1_13EC8(s16 arg0, s16 arg1, float arg8) +{ + M428DllPlayerUnkStruct2 *var_r31; + M428DllPlayerUnk120Struct2 *var_r30; + s32 var_r29; + ModelData *var_r28; + + var_r28 = &Hu3DData[arg0]; + var_r30 = var_r28->unk_120; + if (arg1 != -1) { + var_r31 = &var_r30->unk_3C[arg1]; + var_r31->unk_30 = arg8; + return; + } + for (var_r31 = var_r30->unk_3C, var_r29 = 0; var_r29 < var_r30->unk_26; var_r29++, var_r31++) { + var_r31->unk_30 = arg8; + } +} + +s32 fn_1_13F54(s16 arg0, char *arg1, Mtx arg2, s32 arg3) +{ + Mtx sp44; + Mtx sp14; + ModelData *var_r31; + HsfData *var_r30; + + var_r31 = &Hu3DData[arg0]; + var_r30 = var_r31->hsfData; + lbl_1_bss_130 = 0; + if (var_r31->unk_08 != -1) { + lbl_1_bss_134 = 1; + } + else { + lbl_1_bss_134 = 0; + } + mtxRot(sp14, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); + MTXScale(sp44, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(sp14, sp44, sp44); + mtxTransCat(sp44, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); + MTXConcat(sp44, var_r31->unk_F0, sp44); + if (arg3 != 0) { + MTXConcat(arg2, sp44, sp44); + } + fn_1_14088(var_r30->root, sp44, arg1, arg2); + return lbl_1_bss_130; +} + +void fn_1_14088(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) +{ + Mtx spF8; + Mtx spC8; + Mtx sp98; + Mtx sp68; + Mtx sp38; + Mtx sp8; + HsfTransform *var_r31; + HsfTransform *var_r30; + HsfTransform *var_r29; + HsfObject *var_r28; + HsfObject *var_r27; + u32 var_r25; + u32 var_r24; + u32 var_r23; + + if (lbl_1_bss_130 == 0) { + if (lbl_1_bss_134 != 0) { + var_r31 = &arg0->data.curr; + } + else { + var_r31 = &arg0->data.base; + } + if ((var_r31->scale.x <= 0.0f) && (var_r31->scale.y <= 0.0f) && (var_r31->scale.z <= 0.0f)) { + MTXCopy(arg1, spF8); + OSReport("OBJ MTX CHECK ERROR %s \n", arg0->name); + } + else { + mtxRot(spC8, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); + MTXScale(spF8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(spC8, spF8, spF8); + mtxTransCat(spF8, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); + MTXConcat(arg1, spF8, spF8); + } + if (lbl_1_bss_138 != 0) { + OSReport("%s \n", arg0->name); + } + if (strcmp(arg2, arg0->name) == 0) { + MTXCopy(spF8, arg3); + lbl_1_bss_130 = 1; + } + for (var_r25 = 0; var_r25 < arg0->data.childrenCount; var_r25++) { + var_r28 = arg0->data.children[var_r25]; + if (lbl_1_bss_130 == 0) { + if (lbl_1_bss_134 != 0) { + var_r30 = &var_r28->data.curr; + } + else { + var_r30 = &var_r28->data.base; + } + if ((var_r30->scale.x <= 0.0f) && (var_r30->scale.y <= 0.0f) && (var_r30->scale.z <= 0.0f)) { + MTXCopy(spF8, sp68); + OSReport("OBJ MTX CHECK ERROR %s \n", var_r28->name); + } + else { + mtxRot(&sp98[0], var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); + MTXScale(sp68, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); + MTXConcat(&sp98[0], sp68, sp68); + mtxTransCat(sp68, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); + MTXConcat(spF8, sp68, sp68); + } + if (lbl_1_bss_138 != 0) { + OSReport("%s \n", var_r28->name); + } + if (strcmp(arg2, var_r28->name) == 0) { + MTXCopy(sp68, arg3); + lbl_1_bss_130 = 1; + } + for (var_r24 = 0; var_r24 < var_r28->data.childrenCount; var_r24++) { + var_r27 = var_r28->data.children[var_r24]; + if (lbl_1_bss_130 == 0) { + if (lbl_1_bss_134 != 0) { + var_r29 = &var_r27->data.curr; + } + else { + var_r29 = &var_r27->data.base; + } + if ((var_r29->scale.x <= 0.0f) && (var_r29->scale.y <= 0.0f) && (var_r29->scale.z <= 0.0f)) { + MTXCopy(sp68, sp8); + OSReport("OBJ MTX CHECK ERROR %s \n", var_r27->name); + } + else { + mtxRot(sp38, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z); + MTXScale(sp8, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); + MTXConcat(sp38, sp8, sp8); + mtxTransCat(sp8, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); + MTXConcat(sp68, sp8, sp8); + } + if (lbl_1_bss_138 != 0) { + OSReport("%s \n", var_r27->name); + } + if (strcmp(arg2, var_r27->name) == 0) { + MTXCopy(sp8, arg3); + lbl_1_bss_130 = 1; + } + for (var_r23 = 0; var_r23 < var_r27->data.childrenCount; var_r23++) { + fn_1_14088(var_r27->data.children[var_r23], sp8, arg2, arg3); + } + } + } + } + } + } +} + +void fn_1_14560(s16 arg0) +{ + CameraData *var_r31 = &Hu3DCamera[arg0]; + C_MTXLookAt(lbl_1_bss_23C[arg0], &var_r31->pos, &var_r31->up, &var_r31->target); + GXGetProjectionv(&lbl_1_bss_1BC[arg0].unk_00); + GXGetViewportv(&lbl_1_bss_13C[arg0].unk_00); +} + +void fn_1_145F8(s16 var_r29, Vec *var_r31, float *var_r30) +{ + GXProject(var_r31->x, var_r31->y, var_r31->z, lbl_1_bss_23C[var_r29], &lbl_1_bss_1BC[var_r29].unk_00, &lbl_1_bss_13C[var_r29].unk_00, var_r30, + &var_r30[1], &var_r30[2]); +} diff --git a/src/REL/m429Dll/main.c b/src/REL/m429Dll/main.c index e37af222..01040112 100644 --- a/src/REL/m429Dll/main.c +++ b/src/REL/m429Dll/main.c @@ -403,9 +403,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; diff --git a/src/REL/m430Dll/main.c b/src/REL/m430Dll/main.c index f7320e52..d848689f 100644 --- a/src/REL/m430Dll/main.c +++ b/src/REL/m430Dll/main.c @@ -118,7 +118,7 @@ void ObjectSetup(void) sp8.x = sp8.z = 0.0f; sp8.y = lbl_1_data_18.z; mtxRot(sp20, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); - PSMTXMultVec(sp20, &sp8, &sp8); + MTXMultVec(sp20, &sp8, &sp8); Hu3DGLightPosAimSetV(lbl_1_bss_26, &sp8, &sp14); Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14); lbl_1_bss_24 = lbl_1_bss_22 = lbl_1_bss_20 = -1; diff --git a/src/REL/m430Dll/player.c b/src/REL/m430Dll/player.c index e42fbd99..ca486592 100644 --- a/src/REL/m430Dll/player.c +++ b/src/REL/m430Dll/player.c @@ -278,8 +278,8 @@ void fn_1_BBC4(Process *process) sp14.x = CenterM[0].x + (CZoomM[0] * (sind(CRotM[0].y) * cosd(CRotM[0].x))); sp14.y = CenterM[0].y + (CZoomM[0] * -sind(CRotM[0].x)); sp14.z = CenterM[0].z + (CZoomM[0] * (cosd(CRotM[0].y) * cosd(CRotM[0].x))); - PSVECSubtract(CenterM, &sp14, &sp8); - PSVECNormalize(&sp8, &sp8); + VECSubtract(CenterM, &sp14, &sp8); + VECNormalize(&sp8, &sp8); HuAudFXListnerSetEX(&sp14, &sp8, 100000.0f, 566.6667f, 0.0f, 300.0f, 300.0f); } @@ -296,8 +296,8 @@ void fn_1_BE24(omObjData *object) sp14.x = CenterM[0].x + (CZoomM[0] * (sind(CRotM[0].y) * cosd(CRotM[0].x))); sp14.y = CenterM[0].y + (CZoomM[0] * -sind(CRotM[0].x)); sp14.z = CenterM[0].z + (CZoomM[0] * (cosd(CRotM[0].y) * cosd(CRotM[0].x))); - PSVECSubtract(CenterM, &sp14, &sp8); - PSVECNormalize(&sp8, &sp8); + VECSubtract(CenterM, &sp14, &sp8); + VECNormalize(&sp8, &sp8); HuAudFXListnerUpdate(&sp14, &sp8); } @@ -1619,7 +1619,7 @@ void fn_1_10948(ModelData *var_r29, Mtx var_r30) Mtx sp8; M430PlayerBss170Struct *var_r31 = var_r29->unk_120; GXLoadPosMtxImm(var_r30, 0); - PSMTXInvXpose(var_r30, sp8); + MTXInvXpose(var_r30, sp8); GXLoadNrmMtxImm(sp8, 0); GXSetNumTevStages(1); GXSetNumTexGens(1); diff --git a/src/REL/m430Dll/water.c b/src/REL/m430Dll/water.c index f9b938a2..4cdcef5c 100644 --- a/src/REL/m430Dll/water.c +++ b/src/REL/m430Dll/water.c @@ -202,10 +202,13 @@ void fn_1_4CB4(omObjData *object) u32 spC[1] = { DATA_MAKE_NUM(DATADIR_M430, 0x01) }; s32 sp8[1]; - u32 sp90[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x0B), DATA_MAKE_NUM(DATADIR_M430, 0x0C), DATA_MAKE_NUM(DATADIR_M430, 0x0D), DATA_MAKE_NUM(DATADIR_M430, 0x0E) }; - u32 sp80[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x03), DATA_MAKE_NUM(DATADIR_M430, 0x03) }; + u32 sp90[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x0B), DATA_MAKE_NUM(DATADIR_M430, 0x0C), DATA_MAKE_NUM(DATADIR_M430, 0x0D), + DATA_MAKE_NUM(DATADIR_M430, 0x0E) }; + u32 sp80[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x03), + DATA_MAKE_NUM(DATADIR_M430, 0x03) }; u32 sp70[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x04), DATA_MAKE_NUM(DATADIR_M430, 0x04), 0, 0 }; - u32 sp60[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x06), DATA_MAKE_NUM(DATADIR_M430, 0x07), DATA_MAKE_NUM(DATADIR_M430, 0x08), DATA_MAKE_NUM(DATADIR_M430, 0x09) }; + u32 sp60[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x06), DATA_MAKE_NUM(DATADIR_M430, 0x07), DATA_MAKE_NUM(DATADIR_M430, 0x08), + DATA_MAKE_NUM(DATADIR_M430, 0x09) }; s32 sp50[4]; s32 sp40[4]; s32 sp30[4]; @@ -481,10 +484,10 @@ void fn_1_6180(M430DllWork *work) sp28.x = sp1C.x; sp28.y = 0.0f; sp28.z = sp1C.z - 450000.0f; - PSVECSubtract(&sp28, &sp1C, &sp10); - PSVECNormalize(&sp10, &sp10); - PSVECScale(&sp10, &sp10, 6000.0f); - PSVECAdd(&sp1C, &sp10, &sp28); + VECSubtract(&sp28, &sp1C, &sp10); + VECNormalize(&sp10, &sp10); + VECScale(&sp10, &sp10, 6000.0f); + VECAdd(&sp1C, &sp10, &sp28); Hu3DModelPosSetV(work->unk_18, &sp28); if ((fn_1_4070() >= 2) && (fn_1_4030() != 0)) { if ((lbl_1_bss_40 != 0) && (lbl_1_bss_48 >= work->unk_04.x)) { @@ -494,10 +497,10 @@ void fn_1_6180(M430DllWork *work) sp28.x = 0.0f; sp28.y = 0.0f; sp28.z = work->unk_20 - fn_1_7FBC(work->unk_00); - PSVECSubtract(&sp28, &sp1C, &sp10); - PSVECNormalize(&sp10, &sp10); - PSVECScale(&sp10, &sp10, 5000.0f); - PSVECAdd(&sp1C, &sp10, &sp28); + VECSubtract(&sp28, &sp1C, &sp10); + VECNormalize(&sp10, &sp10); + VECScale(&sp10, &sp10, 5000.0f); + VECAdd(&sp1C, &sp10, &sp28); sp28.y += 237.5f; Hu3DModelPosSet(work->unk_1A, 0.0f, 593.75f, work->unk_20); var_r30 = ((ParticleData *)Hu3DData[work->unk_1A].unk_120)->unk_48; @@ -742,8 +745,8 @@ void fn_1_732C(omObjData *object, M430DllUnkStruct2 *arg1) var_r29 = 1; } else { - PSVECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8); - var_f31 = PSVECMag(&sp8); + VECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8); + var_f31 = VECMag(&sp8); if (var_f31 < 50.0f) { var_r29 = 1; } @@ -758,7 +761,7 @@ void fn_1_732C(omObjData *object, M430DllUnkStruct2 *arg1) arg1->unk_38 = 200.0f + frandmod(0x258); arg1->unk_28 = 400.0f; } - PSVECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8); + VECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8); arg1->unk_30 = atan2d(sp8.x, sp8.z); arg1->unk_2C = fn_1_48B0(arg1->unk_2C, arg1->unk_30, 0.08f); arg1->unk_28 += 0.05f * (300.0f - arg1->unk_28); @@ -822,7 +825,7 @@ void fn_1_7848(omObjData *object) var_r31->unk_08.x = var_f31 * sind(var_f30); var_r31->unk_08.y = 0.0f; var_r31->unk_08.z = var_f31 * cosd(var_f30); - PSVECAdd(&var_r31->unk_14, &var_r31->unk_08, &var_r31->unk_08); + VECAdd(&var_r31->unk_14, &var_r31->unk_08, &var_r31->unk_08); var_r31->unk_38 = 60.0f - (0.13483146f * var_f31); var_r31->unk_28 = frandmod(0x168); if (frandmod(0x3E8) < 0x1F4) { @@ -857,7 +860,7 @@ void fn_1_7CAC(omObjData *object) if (fn_1_4070() >= 4) { for (var_r29 = 0; var_r29 < var_r28; var_r29++, work++) { sp8 = 0; - PSVECSubtract(&work->unk_14, &work->unk_08, &spC); + VECSubtract(&work->unk_14, &work->unk_08, &spC); work->unk_2C = atan2d(spC.x, spC.z); work->unk_28 = fn_1_48B0(work->unk_28, work->unk_2C + work->unk_3C, 0.08f); work->unk_24 += (0.05f * (600.0f - work->unk_24)); @@ -883,9 +886,9 @@ void fn_1_7EAC(omObjData *object, M430DllWork2 *var_r31) for (var_r30 = 0; var_r30 < var_r28; var_r30++, var_r31++) { Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_08.x, var_r31->unk_08.y, var_r31->unk_08.z + var_f31); var_r29 = &Hu3DData[var_r31->unk_00].unk_F0; - PSMTXRotRad(*var_r29, 0x59, 0.017453292f * var_r31->unk_28); - PSMTXRotRad(sp8, 0x5A, 0.017453292f * var_r31->unk_38); - PSMTXConcat(*var_r29, sp8, *var_r29); + MTXRotRad(*var_r29, 0x59, 0.017453292f * var_r31->unk_28); + MTXRotRad(sp8, 0x5A, 0.017453292f * var_r31->unk_38); + MTXConcat(*var_r29, sp8, *var_r29); Hu3DModelAttrReset(var_r31->unk_00, HU3D_ATTR_DISPOFF); } } @@ -1062,8 +1065,8 @@ void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1) sp14.z = 2000.0f + arg1->unk_24; if (lbl_1_bss_5C != 0) { for (var_r29 = 0; var_r29 < 0x1B8; var_r29++) { - PSVECSubtract(var_r28, &sp14, &sp8); - var_f31 = 0.00025f * PSVECMag(&sp8); + VECSubtract(var_r28, &sp14, &sp8); + var_f31 = 0.00025f * VECMag(&sp8); if (var_f31 < 0.3f) { var_r30->a = -1; } @@ -1080,8 +1083,8 @@ void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1) } else { for (var_r29 = 0; var_r29 < 0x1B8; var_r29++) { - PSVECSubtract(var_r28, &sp14, &sp8); - var_f31 = 0.00025f * PSVECMag(&sp8); + VECSubtract(var_r28, &sp14, &sp8); + var_f31 = 0.00025f * VECMag(&sp8); if (var_f31 < 0.25f) { var_r30->a = -0x1A; } @@ -1105,7 +1108,7 @@ void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1) var_r29 = (0x14 - var_r23) * 0x16; var_r27 = &arg1->unk_30[0x1B8 - var_r29]; while (var_r29-- != 0) { - PSVECAdd(var_r28, var_r27, var_r26); + VECAdd(var_r28, var_r27, var_r26); var_r28++; var_r27++; var_r26++; @@ -1113,7 +1116,7 @@ void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1) var_r29 = var_r23 * 0x16; var_r27 = arg1->unk_30; while (var_r29-- != 0) { - PSVECAdd(var_r28, var_r27, var_r26); + VECAdd(var_r28, var_r27, var_r26); var_r28++; var_r27++; var_r26++; @@ -1186,7 +1189,7 @@ void fn_1_8CE0(ModelData *model, Mtx matrix) } var_r31->unk_10 = 1; fn_1_963C(model, matrix, var_r31->unk_00); - PSMTXCopy(matrix, sp134); + MTXCopy(matrix, sp134); if (fn_1_4030() != 0) { var_f30 = 1.0f; var_f31 = fn_1_BB54(var_r31->unk_00); @@ -1195,12 +1198,12 @@ void fn_1_8CE0(ModelData *model, Mtx matrix) var_f30 = 1.5f; var_f31 = 0.0f; } - PSMTXTrans(sp164, var_f31 - fn_1_BB54(var_r31->unk_00), 0.0f, 0.0f); - PSMTXConcat(sp134, sp164, sp134); - PSMTXScale(sp194, var_f30, 1.0f, 1.0f); - PSMTXConcat(sp134, sp194, sp134); + MTXTrans(sp164, var_f31 - fn_1_BB54(var_r31->unk_00), 0.0f, 0.0f); + MTXConcat(sp134, sp164, sp134); + MTXScale(sp194, var_f30, 1.0f, 1.0f); + MTXConcat(sp134, sp194, sp134); GXLoadPosMtxImm(sp134, 0); - PSMTXInvXpose(sp134, sp194); + MTXInvXpose(sp134, sp194); GXLoadNrmMtxImm(sp194, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -1221,25 +1224,25 @@ void fn_1_8CE0(ModelData *model, Mtx matrix) else { C_MTXLightPerspective(sp104, 41.5f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); } - PSMTXInverse(Hu3DCameraMtx, spD4); - PSMTXConcat(spD4, sp134, spD4); - PSMTXConcat(sp104, Hu3DCameraMtx, spA4); - PSMTXConcat(spA4, spD4, spD4); + MTXInverse(Hu3DCameraMtx, spD4); + MTXConcat(spD4, sp134, spD4); + MTXConcat(sp104, Hu3DCameraMtx, spA4); + MTXConcat(spA4, spD4, spD4); GXLoadTexMtxImm(spD4, 0x1E, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); C_MTXLightPerspective(sp104, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, sp74); - PSMTXConcat(sp74, sp134, sp74); - PSMTXConcat(sp104, Hu3DCameraMtx, sp44); - PSMTXConcat(sp44, sp74, sp74); + MTXInverse(Hu3DCameraMtx, sp74); + MTXConcat(sp74, sp134, sp74); + MTXConcat(sp104, Hu3DCameraMtx, sp44); + MTXConcat(sp44, sp74, sp74); GXLoadTexMtxImm(sp74, 0x24, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX3x4, GX_TG_POS, 0x24, GX_FALSE, 0x7D); - PSMTXRotRad(sp164, 0x58, 1.5707964f); + MTXRotRad(sp164, 0x58, 1.5707964f); var_f31 = 0.00075f * var_f30; - PSMTXScale(sp194, var_f31, -0.003f, 0.00075f); - PSMTXConcat(sp164, sp194, sp164); - PSMTXTrans(sp194, (var_r31->unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f, (0.7f * var_r31->unk_28) - (0.3f * var_r31->unk_24)); - PSMTXConcat(sp164, sp194, sp164); + MTXScale(sp194, var_f31, -0.003f, 0.00075f); + MTXConcat(sp164, sp194, sp164); + MTXTrans(sp194, (var_r31->unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f, (0.7f * var_r31->unk_28) - (0.3f * var_r31->unk_24)); + MTXConcat(sp164, sp194, sp164); sp164[0][1] = -0.001f; GXLoadTexMtxImm(sp164, 0x21, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); @@ -1247,12 +1250,12 @@ void fn_1_8CE0(ModelData *model, Mtx matrix) GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 1); - PSMTXScale(sp164, -0.25f, -0.5f, 0.5f); + MTXScale(sp164, -0.25f, -0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])sp164, -4); GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(1, 1, GX_TRUE, GX_FALSE, 2); - PSMTXScale(sp164, 0.4f, 0.5f, 0.5f); + MTXScale(sp164, 0.4f, 0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_1, (float(*)[3])sp164, -1); GXSetNumTevStages(2); GXSetTevColor(GX_TEVREG0, sp14); @@ -1320,10 +1323,10 @@ void fn_1_963C(ModelData *model, Mtx matrix, u32 var_r31) var_f30 = 1.5f; var_f31 = 0.0f; } - PSMTXTrans(spD0, var_f31, 0.0f, ((lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24) - 2500.0f) - 2000.0f); - PSMTXScale(sp100, var_f30, 1.0f, 1.0f); - PSMTXConcat(spD0, sp100, spD0); - PSMTXConcat(Hu3DCameraMtx, spD0, spA0); + MTXTrans(spD0, var_f31, 0.0f, ((lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24) - 2500.0f) - 2000.0f); + MTXScale(sp100, var_f30, 1.0f, 1.0f); + MTXConcat(spD0, sp100, spD0); + MTXConcat(Hu3DCameraMtx, spD0, spA0); GXLoadPosMtxImm(spA0, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -1331,26 +1334,26 @@ void fn_1_963C(ModelData *model, Mtx matrix, u32 var_r31) HuSprTexLoad(lbl_1_bss_148, 0, 1, GX_CLAMP, GX_CLAMP, GX_LINEAR); GXSetNumTexGens(2); C_MTXLightPerspective(sp70, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, sp40); - PSMTXConcat(sp40, spA0, sp40); - PSMTXConcat(sp70, Hu3DCameraMtx, sp10); - PSMTXConcat(sp10, sp40, sp40); + MTXInverse(Hu3DCameraMtx, sp40); + MTXConcat(sp40, spA0, sp40); + MTXConcat(sp70, Hu3DCameraMtx, sp10); + MTXConcat(sp10, sp40, sp40); GXLoadTexMtxImm(sp40, 0x21, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); - PSMTXRotRad(spD0, 0x58, 1.5707964f); + MTXRotRad(spD0, 0x58, 1.5707964f); var_f31 = 0.00075f * var_f30; - PSMTXScale(sp100, var_f31, -0.003f, 0.00075f); - PSMTXConcat(spD0, sp100, spD0); - PSMTXTrans(sp100, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f, + MTXScale(sp100, var_f31, -0.003f, 0.00075f); + MTXConcat(spD0, sp100, spD0); + MTXTrans(sp100, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f, 0.3f * (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24)); - PSMTXConcat(spD0, sp100, spD0); + MTXConcat(spD0, sp100, spD0); GXLoadTexMtxImm(spD0, 0x1E, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); GXSetNumIndStages(1); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 1); - PSMTXScale(spD0, 0.5f, 0.6f, 0.6f); + MTXScale(spD0, 0.5f, 0.6f, 0.6f); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spD0, -1); GXSetNumTevStages(1); GXSetTevColor(GX_TEVREG0, spC); @@ -1432,18 +1435,18 @@ void fn_1_9C90(ModelData *model, Mtx matrix) sp28.x = sp1C.x; sp28.y = 0.0f; sp28.z = sp1C.z - 450000.0f; - PSVECSubtract(&sp28, &sp1C, &sp10); - PSVECNormalize(&sp10, &sp10); - PSVECScale(&sp10, &sp10, 8000.0f); - PSVECAdd(&sp1C, &sp10, &sp28); - PSMTXTrans(spF4, sp28.x, sp28.y, sp28.z); + VECSubtract(&sp28, &sp1C, &sp10); + VECNormalize(&sp10, &sp10); + VECScale(&sp10, &sp10, 8000.0f); + VECAdd(&sp1C, &sp10, &sp28); + MTXTrans(spF4, sp28.x, sp28.y, sp28.z); var_f31 = 1.0f; if (fn_1_4030() == 0) { var_f31 = 1.5f; - PSMTXScale(sp124, var_f31, 1.0f, 1.0f); - PSMTXConcat(spF4, sp124, spF4); + MTXScale(sp124, var_f31, 1.0f, 1.0f); + MTXConcat(spF4, sp124, spF4); } - PSMTXConcat(Hu3DCameraMtx, spF4, spC4); + MTXConcat(Hu3DCameraMtx, spF4, spC4); GXLoadPosMtxImm(spC4, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -1451,24 +1454,24 @@ void fn_1_9C90(ModelData *model, Mtx matrix) HuSprTexLoad(lbl_1_bss_148, 0, 1, GX_CLAMP, GX_CLAMP, GX_LINEAR); GXSetNumTexGens(2); C_MTXLightPerspective(sp94, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, sp64); - PSMTXConcat(sp64, spC4, sp64); - PSMTXConcat(sp94, Hu3DCameraMtx, sp34); - PSMTXConcat(sp34, sp64, sp64); + MTXInverse(Hu3DCameraMtx, sp64); + MTXConcat(sp64, spC4, sp64); + MTXConcat(sp94, Hu3DCameraMtx, sp34); + MTXConcat(sp34, sp64, sp64); GXLoadTexMtxImm(sp64, 0x21, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); var_f30 = 0.00075f * var_f31; - PSMTXScale(spF4, var_f30, -0.005f, 0.00075f); - PSMTXTrans(sp124, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f30), + MTXScale(spF4, var_f30, -0.005f, 0.00075f); + MTXTrans(sp124, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f30), 0.03f * -(lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24), 0.0f); - PSMTXConcat(spF4, sp124, spF4); + MTXConcat(spF4, sp124, spF4); GXLoadTexMtxImm(spF4, 0x1E, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); GXSetNumIndStages(1); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 1); - PSMTXScale(spF4, 0.5f, 0.6f, 0.6f); + MTXScale(spF4, 0.5f, 0.6f, 0.6f); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, -1); GXSetNumTevStages(1); GXSetTevColor(GX_TEVREG0, spC); @@ -1522,37 +1525,37 @@ void fn_1_A3A8(ModelData *model, Mtx matrix) var_f31 = 0.0f; } if (lbl_1_bss_5C != 0) { - PSMTXTrans(sp18, var_f31, 0.0f, 300.0f + (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24)); + MTXTrans(sp18, var_f31, 0.0f, 300.0f + (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24)); GXSetTevColor(GX_TEVREG0, sp10); } else { - PSMTXTrans(sp18, var_f31, -150.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24); + MTXTrans(sp18, var_f31, -150.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24); GXSetTevColor(GX_TEVREG0, sp14); } - PSMTXScale(sp48, var_f30, 1.0f, 1.0f); - PSMTXConcat(sp18, sp48, sp18); - PSMTXConcat(Hu3DCameraMtx, sp18, sp18); + MTXScale(sp48, var_f30, 1.0f, 1.0f); + MTXConcat(sp18, sp48, sp18); + MTXConcat(Hu3DCameraMtx, sp18, sp18); GXLoadPosMtxImm(sp18, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); HuSprTexLoad(lbl_1_bss_144, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); HuSprTexLoad(lbl_1_bss_140, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); GXSetNumTexGens(2); - PSMTXRotRad(sp18, 0x58, 1.5707964f); + MTXRotRad(sp18, 0x58, 1.5707964f); var_f31 = 0.004f * var_f30; - PSMTXScale(sp48, var_f31, -0.004f, 0.004f); - PSMTXConcat(sp18, sp48, sp18); - PSMTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (512.0f * var_f31), 0.0f, + MTXScale(sp48, var_f31, -0.004f, 0.004f); + MTXConcat(sp18, sp48, sp18); + MTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (512.0f * var_f31), 0.0f, (1.2499999f * (lbl_1_bss_60[var_r31].unk_1C % 400)) + (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24)); - PSMTXConcat(sp18, sp48, sp18); + MTXConcat(sp18, sp48, sp18); GXLoadTexMtxImm(sp18, 0x1E, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); - PSMTXRotRad(sp18, 0x58, 1.5707964f); + MTXRotRad(sp18, 0x58, 1.5707964f); var_f31 = 0.004f * var_f30; - PSMTXScale(sp48, var_f31, -0.004f, 0.004f); - PSMTXConcat(sp18, sp48, sp18); - PSMTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C % 300) / (150.0f * var_f31), 0.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24); - PSMTXConcat(sp18, sp48, sp18); + MTXScale(sp48, var_f31, -0.004f, 0.004f); + MTXConcat(sp18, sp48, sp18); + MTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C % 300) / (150.0f * var_f31), 0.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24); + MTXConcat(sp18, sp48, sp18); GXLoadTexMtxImm(sp18, 0x21, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); GXSetNumTevStages(2); @@ -1635,8 +1638,8 @@ void fn_1_AD04(ModelData *model, ParticleData *particle, Mtx matrix) } for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); - PSVECScale(&var_r31->unk08, &var_r31->unk08, 0.97f); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECScale(&var_r31->unk08, &var_r31->unk08, 0.97f); if (var_r31->unk00_s16 < 24.0f) { var_r31->unk40.a = 0.9f * var_r31->unk40.a; } @@ -1720,7 +1723,7 @@ void fn_1_B394(ModelData *model, ParticleData *var_r30, Mtx matrix) for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { var_r31->unk00_s16--; - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk2C += 0.5f; if (var_r31->unk00_s16 < 30.0) { var_r31->unk40.a = 0.98f * var_r31->unk40.a; @@ -1760,7 +1763,7 @@ void fn_1_B570(s32 arg0, Vec *arg1, float arg8, float arg9, Vec *arg2) if (!(frandmod(0x3E8) > (1000.0f * arg9))) { var_r27 = 2; var_f28 = 40.0f; - PSVECScale(arg2, &sp1C, 0.2f); + VECScale(arg2, &sp1C, 0.2f); sp1C.x = 0.0f; for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 == 0) { @@ -1778,7 +1781,7 @@ void fn_1_B570(s32 arg0, Vec *arg1, float arg8, float arg9, Vec *arg2) var_r31->unk08.x = sp28.x * var_f31; var_r31->unk08.z = sp28.z * var_f31; var_r31->unk08.y = 0.0f; - PSVECAdd(&var_r31->unk08, &sp1C, &var_r31->unk08); + VECAdd(&var_r31->unk08, &sp1C, &var_r31->unk08); var_f31 = 0.001f * frandmod(0x3E8); var_f31 += (1.0f - var_f31) * (0.3f * arg9); var_r31->unk30 = frandmod(0x168); diff --git a/src/REL/m431Dll/main.c b/src/REL/m431Dll/main.c index 44ae5974..4aec497d 100644 --- a/src/REL/m431Dll/main.c +++ b/src/REL/m431Dll/main.c @@ -1274,7 +1274,7 @@ void fn_1_4028(Work2110 *arg0) temp_r31->unk18++; temp_f31 = temp_r31->unk18 / (VERSION_NTSC ? 54.0f : 45.0f); if (temp_f31 >= 1.0f) { - temp_r31->unk18 = VERSION_NTSC ? 54 : 45; + temp_r31->unk18 = VERSION_NTSC ? 54 : 45; temp_f31 = 1.0f; } temp_f31 = cosd(temp_f31 * 90.0f); diff --git a/src/REL/m433Dll/main.c b/src/REL/m433Dll/main.c index df35b851..6e36fe20 100644 --- a/src/REL/m433Dll/main.c +++ b/src/REL/m433Dll/main.c @@ -395,12 +395,12 @@ void fn_1_227C(Vec *arg0, Vec *arg1) { Vec sp10; - PSVECSubtract(arg1, arg0, &sp10); + VECSubtract(arg1, arg0, &sp10); Center = *arg1; CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z))); CRot.y = atan2d(-sp10.x, -sp10.z); CRot.z = 0.0f; - CZoom = PSVECMag(&sp10); + CZoom = VECMag(&sp10); } void fn_1_2484(float arg8, float arg9, float argA, float argB, float argC, float argD) diff --git a/src/REL/m433Dll/map.c b/src/REL/m433Dll/map.c index 57695003..40aab323 100644 --- a/src/REL/m433Dll/map.c +++ b/src/REL/m433Dll/map.c @@ -779,18 +779,18 @@ void fn_1_541C(Mtx arg0, float arg8, float arg9, float argA) Mtx sp8; if (argA != 0.0f) { - PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + MTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); } else { - PSMTXIdentity(arg0); + MTXIdentity(arg0); } if (arg8 != 0.0f) { - PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); - PSMTXConcat(sp38, arg0, arg0); + MTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + MTXConcat(sp38, arg0, arg0); } if (arg9 != 0.0f) { - PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); - PSMTXConcat(sp8, arg0, arg0); + MTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + MTXConcat(sp8, arg0, arg0); } } diff --git a/src/REL/m433Dll/player.c b/src/REL/m433Dll/player.c index 21b2ff60..7b69466d 100644 --- a/src/REL/m433Dll/player.c +++ b/src/REL/m433Dll/player.c @@ -629,7 +629,7 @@ void fn_1_60C0(omObjData *object) if (work->unk_04 >= 0) { HuAudFXPlay(lbl_1_data_150[work->unk_04][0]); } - PSVECSubtract(&var_r28->unk_128, &work->unk_128, &spC); + VECSubtract(&var_r28->unk_128, &work->unk_128, &spC); work->unk_A8 = atan2d(spC.x, spC.z); work->unk_AC = 0.15f; work->unk_B0 = 0.0f; @@ -686,7 +686,7 @@ void fn_1_60C0(omObjData *object) } break; } - PSVECAdd(&work->unk_128, &work->unk_134, &work->unk_128); + VECAdd(&work->unk_128, &work->unk_134, &work->unk_128); if (fn_1_10ECC(work->unk_14) >= 2) { fn_1_B194(object); } @@ -716,7 +716,7 @@ void fn_1_682C(omObjData *object) Vec sp40[2] = { { 130.0f, 0.0f, -50.0f }, { 250.0f, 0.0f, 50.0f } }; Vec sp28[2] = { { 150.0f, 0.0f, 100.0f }, { 300.0f, 0.0f, -100.0f } }; var_r27 = work->unk_14C->data; - PSVECAdd(&work->unk_128, &work->unk_134, &work->unk_128); + VECAdd(&work->unk_128, &work->unk_134, &work->unk_128); fn_1_B194(object); fn_1_722C(object); switch (work->unk_74) { @@ -782,15 +782,15 @@ void fn_1_682C(omObjData *object) break; case 1: if (work->unk_84 == 1) { - PSVECSubtract(&work->unk_140, &work->unk_128, &sp10); + VECSubtract(&work->unk_140, &work->unk_128, &sp10); sp10.y = 0.0f; - var_f31 = PSVECMag(&sp10); + var_f31 = VECMag(&sp10); if (var_f31 < 20.0f) { var_f31 = 0.01f; work->unk_84++; } else { - if (PSVECMag(&sp10) >= 100.0f) { + if (VECMag(&sp10) >= 100.0f) { var_f31 = 100.0f; } var_f31 = 0.2f + (0.008f * var_f31); @@ -826,14 +826,14 @@ void fn_1_682C(omObjData *object) } break; case 2: - PSVECSubtract(&work->unk_140, &work->unk_128, &sp10); + VECSubtract(&work->unk_140, &work->unk_128, &sp10); sp10.y = 0.0f; - var_f31 = PSVECMag(&sp10); + var_f31 = VECMag(&sp10); if (var_f31 < 10.0f) { var_f31 = 0.01f; } else { - if (PSVECMag(&sp10) >= 100.0f) { + if (VECMag(&sp10) >= 100.0f) { var_f31 = 100.0f; } var_f31 = 0.2f + (0.008f * var_f31); @@ -875,7 +875,7 @@ void fn_1_682C(omObjData *object) sp1C.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); sp1C.y = Center.y + (CZoom * -sind(CRot.x)); sp1C.z = Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x))); - PSVECSubtract(&sp1C, &work->unk_128, &sp10); + VECSubtract(&sp1C, &work->unk_128, &sp10); work->unk_A8 = atan2d(sp10.x, sp10.z); } if (fn_1_B6E0(object) != 0) { @@ -1060,10 +1060,10 @@ void fn_1_74D4(omObjData *object) } } if ((work->unk_14 == fn_1_107B0(&sp1C)) && (fn_1_10900() >= (60.0f * (0.8f - (0.4f * work->unk_C0)))) && (work->unk_6C != 0)) { - PSVECSubtract(&sp1C, &work->unk_128, &sp10); + VECSubtract(&sp1C, &work->unk_128, &sp10); sp10.y = 0.0f; - var_f31 = PSVECMag(&sp10); - if (PSVECMag(&sp10) >= 20.0f) { + var_f31 = VECMag(&sp10); + if (VECMag(&sp10) >= 20.0f) { if (var_f31 >= 50.0f) { var_f31 = 50.0f; } @@ -1076,9 +1076,9 @@ void fn_1_74D4(omObjData *object) var_r29 = 0; } if (work->unk_F8 != 0) { - PSVECSubtract(&work->unk_108, &work->unk_128, &sp10); + VECSubtract(&work->unk_108, &work->unk_128, &sp10); sp10.y = 0.0f; - var_f31 = PSVECMag(&sp10); + var_f31 = VECMag(&sp10); if (var_f31 >= 10.0f) { if (var_f31 >= 50.0f) { var_f31 = 50.0f; @@ -1096,9 +1096,9 @@ void fn_1_74D4(omObjData *object) var_r29 = 0; } if (var_r29 != 0) { - PSVECSubtract(&work->unk_FC, &work->unk_128, &sp10); + VECSubtract(&work->unk_FC, &work->unk_128, &sp10); sp10.y = 0.0f; - var_f31 = PSVECMag(&sp10); + var_f31 = VECMag(&sp10); var_f31 -= 100.0f * (1.25f * (2.0f - work->unk_C0)); if (var_f31 >= 10.0f) { if (var_f31 >= 70.0f) { @@ -1121,9 +1121,9 @@ void fn_1_74D4(omObjData *object) if (work->unk_14 == fn_1_10740(&sp1C)) { if (work->unk_68 == 0) { if (fn_1_11004(work->unk_14, work->unk_18) != 0) { - PSVECSubtract(&sp1C, &work->unk_128, &sp10); + VECSubtract(&sp1C, &work->unk_128, &sp10); sp10.y = 0.0f; - var_f31 = PSVECMag(&sp10); + var_f31 = VECMag(&sp10); if (var_f31 >= 30.000002f) { if (var_f31 >= 70.0f) { var_f31 = 70.0f; @@ -1159,9 +1159,9 @@ void fn_1_74D4(omObjData *object) else { if (fn_1_10614(&sp1C) != 0) { if (work->unk_E8 != 0) { - PSVECSubtract(&work->unk_114, &sp1C, &sp10); + VECSubtract(&work->unk_114, &sp1C, &sp10); sp10.y = 0.0f; - var_f31 = PSVECMag(&sp10); + var_f31 = VECMag(&sp10); if (var_f31 < 0.05f) { work->unk_DC = 0.0f; work->unk_E0 = 0.0f; @@ -1219,12 +1219,12 @@ void fn_1_8408(omObjData *object) if ((work->unk_14 == fn_1_107B0(&sp14)) && (fn_1_108C4() >= 12.0f)) { if (((var_r30->unk_6C == 0) && (work->unk_6C == 0)) || (fn_1_108C4() < 0x3E8)) { if ((work->unk_30 == 0) || (var_r30->unk_30 == 0)) { - PSVECSubtract(&sp14, &work->unk_128, &sp8); + VECSubtract(&sp14, &work->unk_128, &sp8); sp8.y = 0.0f; - var_f31 = PSVECMag(&sp8) - (100.0f * (2.0f * work->unk_C0)); - PSVECSubtract(&sp14, &var_r30->unk_128, &sp8); + var_f31 = VECMag(&sp8) - (100.0f * (2.0f * work->unk_C0)); + VECSubtract(&sp14, &var_r30->unk_128, &sp8); sp8.y = 0.0f; - var_f30 = PSVECMag(&sp8) - (100.0f * (2.0f * var_r30->unk_C0)); + var_f30 = VECMag(&sp8) - (100.0f * (2.0f * var_r30->unk_C0)); if ((work->unk_30 != 0) || (work->unk_60 != 0)) { var_f31 = 2000.0f; } @@ -1333,10 +1333,10 @@ s32 fn_1_8938(u32 var_r27, Vec *var_r29) for (var_r30 = 0; var_r30 <= 0xA; var_r30++) { sp14.x = 230.0f; for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { - PSVECSubtract(&sp14, &sp2C[0], &sp20); - var_f31 = PSVECMag(&sp20); - PSVECSubtract(&sp14, &sp2C[1], &sp20); - var_f31 *= PSVECMag(&sp20); + VECSubtract(&sp14, &sp2C[0], &sp20); + var_f31 = VECMag(&sp20); + VECSubtract(&sp14, &sp2C[1], &sp20); + var_f31 *= VECMag(&sp20); if (var_f31 > var_f30) { var_f30 = var_f31; sp8 = sp14; @@ -1415,7 +1415,7 @@ void fn_1_8BD0(omObjData *object) } if ((var_r29 != 0) && (work->unk_24 == 0.0f)) { fn_1_10B20(0.0f, &sp14); - PSVECSubtract(&sp14, &work->unk_128, &sp8); + VECSubtract(&sp14, &work->unk_128, &sp8); work->unk_A8 = atan2d(sp8.x, sp8.z); work->unk_AC = 0.1f; work->unk_B0 = 0.0f; @@ -1569,9 +1569,9 @@ void fn_1_9688(omObjData *object) work->unk_140 = sp2C; var_f31 = fn_1_10848(); if ((var_f31 <= 0.8f) && (var_f31 >= 0.02f) && (var_r29->unk_64 == 0)) { - PSVECSubtract(&sp2C, &work->unk_128, &sp20); + VECSubtract(&sp2C, &work->unk_128, &sp20); sp20.y = 0.0f; - var_f30 = PSVECMag(&sp20); + var_f30 = VECMag(&sp20); work->unk_98 = var_f30; if (var_f30 <= 200.0f) { if ((var_f31 >= 0.2f) && (var_f30 <= 70.0f) && (var_f31 >= (0.2f + (0.001f * var_f30))) && (fn_1_10FDC() >= 1)) { @@ -1626,7 +1626,7 @@ void fn_1_9688(omObjData *object) } work->unk_90 = 60.0f * var_f31; } - PSVECSubtract(&sp2C, &work->unk_128, &sp20); + VECSubtract(&sp2C, &work->unk_128, &sp20); work->unk_A8 = atan2d(sp20.x, sp20.z); work->unk_AC = 0.2f; work->unk_B0 = 0.0f; @@ -1664,7 +1664,7 @@ void fn_1_9688(omObjData *object) } work->unk_64 = 0; fn_1_B4D4(object, 9); - PSVECSubtract(&sp2C, &work->unk_128, &sp20); + VECSubtract(&sp2C, &work->unk_128, &sp20); work->unk_A8 = atan2d(sp20.x, sp20.z); work->unk_AC = 0.1f; work->unk_90 = 0x186A0; @@ -1727,7 +1727,7 @@ void fn_1_9688(omObjData *object) } work->unk_64 = 0; fn_1_B4D4(object, 6); - PSVECSubtract(&sp2C, &work->unk_128, &sp20); + VECSubtract(&sp2C, &work->unk_128, &sp20); work->unk_A8 = atan2d(sp20.x, sp20.z); work->unk_AC = 0.1f; work->unk_90 = 0x186A0; @@ -1756,7 +1756,7 @@ void fn_1_9688(omObjData *object) if (work->unk_64 != 0) { sp2C = work->unk_128; sp2C.y = 11.0f; - PSVECSubtract(&var_r29->unk_128, &work->unk_128, &sp20); + VECSubtract(&var_r29->unk_128, &work->unk_128, &sp20); var_f29 = 180.0 + (atan2d(sp20.x, sp20.z)); var_f29 += frandmod(0xB4) - 90.0f; var_f30 = 200.0f * work->unk_98; @@ -1817,14 +1817,14 @@ void fn_1_A618(omObjData *object) case 0: if ((work->unk_7C == 0) && (work->unk_78 == 0) && (work->unk_80 == 0) && (work->unk_30 = 0, work->unk_68 = 0, ((work->unk_34 == 0) != 0)) && (fn_1_11004(work->unk_14, work->unk_18) != 0) && (fn_1_10FDC() < 3) && (work->unk_14 == fn_1_10740(&sp20))) { - PSVECSubtract(&sp20, &work->unk_128, &sp14); + VECSubtract(&sp20, &work->unk_128, &sp14); sp14.y = 0.0f; - if (!(PSVECMag(&sp14) > 500.0f)) { + if (!(VECMag(&sp14) > 500.0f)) { fn_1_10B20(0.5f, &sp20); sp20.y -= lbl_1_data_E0[work->unk_00]; - PSVECSubtract(&sp20, &work->unk_128, &sp14); + VECSubtract(&sp20, &work->unk_128, &sp14); sp14.y = 0.0f; - if ((PSVECMag(&sp14) < 200.0f) && (sp20.y >= 50.0f)) { + if ((VECMag(&sp14) < 200.0f) && (sp20.y >= 50.0f)) { work->unk_5C = 1; } if (((work->unk_1C & 0x200) != 0) && (work->unk_5C != 0)) { @@ -1837,7 +1837,7 @@ void fn_1_A618(omObjData *object) var_f30 = 0.5f; work->unk_124 = (2.0f * -sp20.y) / (var_f30 * var_f30); work->unk_134.y = 0.016666668f * (-work->unk_124 * var_f30); - PSVECSubtract(&sp20, &work->unk_128, &sp14); + VECSubtract(&sp20, &work->unk_128, &sp14); sp14.y = 0.0f; work->unk_134.x = 0.016666668f * (sp14.x / 0.5f); work->unk_134.z = 0.016666668f * (sp14.z / 0.5f); @@ -1967,8 +1967,8 @@ void fn_1_AB88(omObjData *object) fn_1_10B20(0.0f, &sp1C); if ((sp1C.x * work->unk_128.x) > 0.0f) { sp1C.y = work->unk_128.y; - PSVECSubtract(&sp1C, &work->unk_128, &sp10); - if (PSVECMag(&sp10) < 60.000004f) { + VECSubtract(&sp1C, &work->unk_128, &sp10); + if (VECMag(&sp10) < 60.000004f) { if (frandmod(0x64) < 0x1E) { fn_1_10740(&sp1C); sp1C.x *= -0.5f; @@ -2016,9 +2016,9 @@ void fn_1_B194(omObjData *object) for (var_r28 = 0; var_r28 < 4; var_r28++) { if (var_r29 != var_r28) { var_r30 = lbl_1_bss_7D0[var_r28]->data; - PSVECSubtract(&var_r31->unk_128, &var_r30->unk_128, &sp8); + VECSubtract(&var_r31->unk_128, &var_r30->unk_128, &sp8); sp8.y = 0.0f; - var_f31 = PSVECMag(&sp8); + var_f31 = VECMag(&sp8); if (var_f31 < (var_r31->unk_120 + var_r30->unk_120)) { if (var_f31 > 0.0f) { var_f31 = 0.5f * ((var_r31->unk_120 + var_r30->unk_120) - var_f31); @@ -2028,10 +2028,10 @@ void fn_1_B194(omObjData *object) sp8.x = frandmod(0x3E8) - 0x1F4; sp8.z = frandmod(0x3E8) - 0x1F4; } - PSVECNormalize(&sp8, &sp8); - PSVECScale(&sp8, &sp8, var_f31); - PSVECAdd(&var_r31->unk_128, &sp8, &var_r31->unk_128); - PSVECSubtract(&var_r30->unk_128, &sp8, &var_r30->unk_128); + VECNormalize(&sp8, &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&var_r31->unk_128, &sp8, &var_r31->unk_128); + VECSubtract(&var_r30->unk_128, &sp8, &var_r30->unk_128); } } } @@ -2199,7 +2199,7 @@ void fn_1_BD48(omObjData *object) work->unk_B8 = 0.0f; work->unk_BC.x = work->unk_BC.y = 0.0f; work->unk_BC.z = 1.0f; - PSMTXIdentity(work->unk_C8); + MTXIdentity(work->unk_C8); work->unk_18 = 0; object->func = fn_1_C240; } @@ -2219,7 +2219,7 @@ void fn_1_C240(omObjData *object) work->unk_B8 = 0.0f; work->unk_BC.x = work->unk_BC.y = 0.0f; work->unk_BC.z = 1.0f; - PSMTXIdentity(work->unk_C8); + MTXIdentity(work->unk_C8); work->unk_00 = 1; break; case 10: @@ -2296,14 +2296,14 @@ s32 fn_1_C6B0(omObjData *object) fn_1_D338(&work->unk_F8); fn_1_D180(&work->unk_F8); work->unk_B8 = work->unk_A8 * (8.0f * lbl_1_data_48C[work->unk_6C]); - PSVECSubtract(&work->unk_3C, &work->unk_30, &sp8); + VECSubtract(&work->unk_3C, &work->unk_30, &sp8); sp8.y = 0.0f; - if (PSVECMag(&sp8) <= 0.0f) { + if (VECMag(&sp8) <= 0.0f) { work->unk_BC.x = work->unk_BC.y = 0.0f; work->unk_BC.z = 1.0f; } else { - PSVECNormalize(&sp8, &sp8); + VECNormalize(&sp8, &sp8); work->unk_BC.x = -sp8.z; work->unk_BC.y = 0.0f; work->unk_BC.z = sp8.x; @@ -2324,9 +2324,9 @@ s32 fn_1_C6B0(omObjData *object) } work->unk_10 = 1; if (work->unk_B8 != 0.0f) { - PSMTXRotAxisRad(sp14, &work->unk_BC, 0.017453292f * work->unk_B8); - PSMTXConcat(sp14, work->unk_C8, work->unk_C8); - PSMTXCopy(work->unk_C8, Hu3DData[object->model[0]].unk_F0); + MTXRotAxisRad(sp14, &work->unk_BC, 0.017453292f * work->unk_B8); + MTXConcat(sp14, work->unk_C8, work->unk_C8); + MTXCopy(work->unk_C8, Hu3DData[object->model[0]].unk_F0); } work->unk_48 += 0.016666668f; work->unk_08 = fn_1_D4E0(&work->unk_F8, &work->unk_30, &work->unk_4C, work->unk_48); @@ -2389,15 +2389,15 @@ void fn_1_CB98(omObjData *object) var_f31 = 0.0f; } var_f31 = (var_f30 - var_f31) / 21.0f; - PSMTXCopy(work->unk_C8, sp20); + MTXCopy(work->unk_C8, sp20); var_f28 = (work->unk_B8 * (1.2f * work->unk_A8)) / 21.0f; - PSMTXRotAxisRad(sp50, &work->unk_BC, MTXDegToRad(-var_f28)); + MTXRotAxisRad(sp50, &work->unk_BC, MTXDegToRad(-var_f28)); for (var_r29 = 0; var_r29 < 0x15; var_r29++) { Hu3DModelAttrReset(object->model[var_r29 + 9], HU3D_ATTR_DISPOFF); fn_1_D4E0(&work->unk_F8, &sp14, &sp8, var_f30); Hu3DModelPosSetV(object->model[var_r29 + 9], &sp14); - PSMTXCopy(sp20, Hu3DData[object->model[var_r29 + 9]].unk_F0); - PSMTXConcat(sp50, sp20, sp20); + MTXCopy(sp20, Hu3DData[object->model[var_r29 + 9]].unk_F0); + MTXConcat(sp50, sp20, sp20); var_f30 -= var_f31; } work->unk_F8.unk_04 = var_f29; @@ -2430,19 +2430,19 @@ void fn_1_CDB8(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, u32 arg3, float a spC.x = arg1->x + (arg0->unk_08 * (arg2->x - arg1->x)); spC.y = arg0->unk_0C; spC.z = arg1->z + (arg0->unk_08 * (arg2->z - arg1->z)); - PSVECSubtract(arg2, &spC, &sp18); - var_f30 = PSVECMag(&sp18); - PSVECSubtract(&spC, arg1, &sp18); - var_f30 += PSVECMag(&sp18); + VECSubtract(arg2, &spC, &sp18); + var_f30 = VECMag(&sp18); + VECSubtract(&spC, arg1, &sp18); + var_f30 += VECMag(&sp18); } else { - PSVECSubtract(arg2, arg1, &sp18); - var_f30 = PSVECMag(&sp18); + VECSubtract(arg2, arg1, &sp18); + var_f30 = VECMag(&sp18); } } else { - PSVECSubtract(arg2, arg1, &sp18); - var_f30 = PSVECMag(&sp18); + VECSubtract(arg2, arg1, &sp18); + var_f30 = VECMag(&sp18); } var_f31 = var_f30 / (arg8 * lbl_1_data_4D4[arg3].z); arg0->unk_00 = var_f31; @@ -2452,9 +2452,9 @@ void fn_1_CDB8(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, u32 arg3, float a arg0->unk_38 = *arg2; arg0->unk_1C = arg2->y - arg1->y; arg0->unk_24 = -980.0f; - PSVECSubtract(arg2, arg1, &sp18); + VECSubtract(arg2, arg1, &sp18); sp18.y = 0.0f; - arg0->unk_10 = PSVECMag(&sp18); + arg0->unk_10 = VECMag(&sp18); arg0->unk_18 = 0.0f; if (var_f31 > 0.0f) { arg0->unk_20 = (arg0->unk_1C - (0.5f * (-980.0f * (var_f31 * var_f31)))) / var_f31; @@ -2555,9 +2555,9 @@ s32 fn_1_D4E0(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, float arg8) } arg0->unk_04 = arg8; if (arg0->unk_10 > 0.0f) { - PSVECSubtract(&arg0->unk_38, &arg0->unk_2C, &spC); + VECSubtract(&arg0->unk_38, &arg0->unk_2C, &spC); spC.y = 0.0f; - PSVECNormalize(&spC, &spC); + VECNormalize(&spC, &spC); } else { spC.x = spC.y = spC.z = 0.0f; @@ -2568,7 +2568,7 @@ s32 fn_1_D4E0(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, float arg8) arg1->x = arg0->unk_2C.x + (spC.x * var_f30); arg1->y = arg0->unk_2C.y + var_f29; arg1->z = arg0->unk_2C.z + (spC.z * var_f30); - PSVECSubtract(arg1, &sp18, arg2); + VECSubtract(arg1, &sp18, arg2); if (arg8 >= arg0->unk_00) { return 1; } @@ -2582,7 +2582,7 @@ void fn_1_D6A8(ModelData *model, ParticleData *particle, Mtx matrix) for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.x *= 0.92f; var_r31->unk08.z *= 0.92f; var_r31->unk08.y += -0.27222225f; @@ -3421,9 +3421,9 @@ float fn_1_10B20(float arg8, Vec *arg0) } var_r31->unk_04 = var_f31; if (var_r31->unk_10 > 0.0f) { - PSVECSubtract(&var_r31->unk_38, &var_r31->unk_2C, &sp14); + VECSubtract(&var_r31->unk_38, &var_r31->unk_2C, &sp14); sp14.y = 0.0f; - PSVECNormalize(&sp14, &sp14); + VECNormalize(&sp14, &sp14); } else { sp14.x = sp14.y = sp14.z = 0.0f; @@ -3434,7 +3434,7 @@ float fn_1_10B20(float arg8, Vec *arg0) arg0->x = var_r31->unk_2C.x + (sp14.x * var_f29); arg0->y = var_r31->unk_2C.y + var_f28; arg0->z = var_r31->unk_2C.z + (sp14.z * var_f29); - PSVECSubtract(arg0, &sp8, &sp20); + VECSubtract(arg0, &sp8, &sp20); var_f31 >= var_r31->unk_00; var_r31->unk_04 = var_f30; return var_f30 + arg8; @@ -3462,7 +3462,7 @@ s32 fn_1_10D24(Vec *sp8) var_r31 = lbl_1_bss_7CC->data; fn_1_10D24_inline(&spC); - PSVECSubtract(&spC, &var_r31->unk_30, &sp18); + VECSubtract(&spC, &var_r31->unk_30, &sp18); if ((spC.x * var_r31->unk_30.x) >= 0.0f) { return 0; } @@ -3470,8 +3470,8 @@ s32 fn_1_10D24(Vec *sp8) return 0; } var_f31 = fabs(var_r31->unk_30.x / sp18.x); - PSVECScale(&sp18, &sp18, var_f31); - PSVECAdd(&var_r31->unk_30, &sp18, sp8); + VECScale(&sp18, &sp18, var_f31); + VECAdd(&var_r31->unk_30, &sp18, sp8); return 1; } @@ -3535,9 +3535,9 @@ float fn_1_11098(Vec *arg0, Vec *arg1, Vec *arg2) float var_f31; float var_f30; - PSVECSubtract(arg1, arg0, &sp10); - var_f31 = PSVECDotProduct(&sp10, arg2); - var_f30 = -PSVECSquareMag(arg2); + VECSubtract(arg1, arg0, &sp10); + var_f31 = VECDotProduct(&sp10, arg2); + var_f30 = -VECSquareMag(arg2); if (var_f30 != 0.0f) { var_f31 /= var_f30; } @@ -3555,16 +3555,16 @@ float fn_1_11130(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) float var_f29; float var_f28; - PSVECSubtract(arg1, arg0, &sp28); - PSVECSubtract(arg3, arg2, &sp1C); - PSVECSubtract(&sp28, &sp1C, &sp28); - if (PSVECMag(&sp28) <= 0.0f) { + VECSubtract(arg1, arg0, &sp28); + VECSubtract(arg3, arg2, &sp1C); + VECSubtract(&sp28, &sp1C, &sp28); + if (VECMag(&sp28) <= 0.0f) { sp34 = *arg0; } else { - PSVECSubtract(arg0, arg2, &sp10); - var_f30 = PSVECDotProduct(&sp10, &sp28); - var_f29 = -PSVECSquareMag(&sp28); + VECSubtract(arg0, arg2, &sp10); + var_f30 = VECDotProduct(&sp10, &sp28); + var_f29 = -VECSquareMag(&sp28); if (var_f29 != 0.0f) { var_f30 /= var_f29; } @@ -3576,9 +3576,9 @@ float fn_1_11130(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) else if (var_f31 > 1.0f) { var_f31 = 1.0f; } - PSVECScale(&sp28, &sp1C, var_f31); - PSVECAdd(arg0, &sp1C, &sp34); + VECScale(&sp28, &sp1C, var_f31); + VECAdd(arg0, &sp1C, &sp34); } - PSVECSubtract(arg2, &sp34, &sp28); - return PSVECMag(&sp28); + VECSubtract(arg2, &sp34, &sp28); + return VECMag(&sp28); } diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index 0e2f6378..e3925d7b 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -119,7 +119,7 @@ typedef struct M438MainWork3 { float unk_170[3]; float unk_17C[3]; u16 unk_188[3]; -} M438MainWork3; /* size = */ +} M438MainWork3; /* size = 0x190 */ typedef struct M438StructBss298 { /* 0x00 */ u8 unk_00; @@ -511,88 +511,51 @@ void fn_1_1174(omObjData *object) } } -Vec lbl_1_data_68[11][8] = { - { - { -528.6f, 0.0f, 350.7f }, - { -375.7f, 0.0f, 243.0f }, - { -214.2f, 0.0f, 331.4f }, - { -173.3f, 0.0f, 523.7f }, - { 15.000001f, 0.0f, 505.7f }, - { 148.59999f, 0.0f, 393.0f }, - { 0.0f, 1.0f, 0.0f }, - }, +Vec lbl_1_data_68[11][8] = { { + { -528.6f, 0.0f, 350.7f }, + { -375.7f, 0.0f, 243.0f }, + { -214.2f, 0.0f, 331.4f }, + { -173.3f, 0.0f, 523.7f }, + { 15.000001f, 0.0f, 505.7f }, + { 148.59999f, 0.0f, 393.0f }, + { 0.0f, 1.0f, 0.0f }, + }, { { -198.7f, 0.0f, -122.899994f }, - { -11.599999f, 0.0f, -177.1f }, - { 63.4f, 0.0f, -349.7f }, - { 277.09999f, 0.0f, -296.4f }, - { 397.5f, 0.0f, -470.2f }, - { 0.0f, 1.0f, 0.0f }, + { -11.599999f, 0.0f, -177.1f }, + { 63.4f, 0.0f, -349.7f }, + { 277.09999f, 0.0f, -296.4f }, + { 397.5f, 0.0f, -470.2f }, + { 0.0f, 1.0f, 0.0f }, }, { { -421.0f, 0.0f, -471.3f }, { -270.1f, 0.0f, -460.0f }, { -153.1f, 0.0f, -356.5f }, - { 12.4f, 0.0f, -473.99997f }, - { 0.0f, 1.0f, 0.0f }, + { 12.4f, 0.0f, -473.99997f }, + { 0.0f, 1.0f, 0.0f }, }, { - { -545.10004f, 0.0f, -318.9f }, + { -545.10004f, 0.0f, -318.9f }, { -469.0f, 0.0f, -154.1f }, - { -313.4, 0.0f, -170.09999f }, + { -313.4, 0.0f, -170.09999f }, { -250.0f, 0.0f, -32.8f }, - { 0.0f, 1.0f, 0.0f }, - }, - { - { -155.6f, 0.0f, 19.5f }, - { -34.3f, 0.0f, 96.6f }, - { -63.9f, 0.0f, 240.00002f }, - { 37.5f, 0.0f, 402.8f }, - { 0.0f, 1.0f, 0.0f } - }, - { - { 207.5f, 0.0f, -163.2f }, - { 270.1f, 0.0f, -104.799995f }, - { 402.19998f, 0.0f, -102.4f }, - { 511.49997f, 0.0f, -25.099998f }, - { 627.3f, 0.0f, -142.0f }, - { 0.0f, 1.0f, 0.0f } + { 0.0f, 1.0f, 0.0f }, }, + { { -155.6f, 0.0f, 19.5f }, { -34.3f, 0.0f, 96.6f }, { -63.9f, 0.0f, 240.00002f }, { 37.5f, 0.0f, 402.8f }, { 0.0f, 1.0f, 0.0f } }, + { { 207.5f, 0.0f, -163.2f }, { 270.1f, 0.0f, -104.799995f }, { 402.19998f, 0.0f, -102.4f }, { 511.49997f, 0.0f, -25.099998f }, + { 627.3f, 0.0f, -142.0f }, { 0.0f, 1.0f, 0.0f } }, { { -601.0f, 0.0f, 97.799995f }, - { -516.80005f, 0.0f, 60.000004f }, + { -516.80005f, 0.0f, 60.000004f }, { -417.7f, 0.0f, 92.9f }, - { -309.40002f, 0.0f, 76.1f }, - { 0.0f, 1.0f, 0.0f }, + { -309.40002f, 0.0f, 76.1f }, + { 0.0f, 1.0f, 0.0f }, }, - { - { 82.8f, 0.0f, 164.2f }, - { 179.40001f, 0.0f, 179.8f }, - { 241.00002f, 0.0f, 87.1f }, - { 323.0f, 0.0f, 38.800003f }, - { 0.0f, 1.0f, 0.0f } - }, - { - { 243.4f, 0.0f, 573.5f }, - { 227.7f, 0.0f, 461.2f }, - { 319.30002f, 0.0f, 400.6f }, - { 342.30002f, 0.0f, 310.0f }, - { 0.0f, 1.0f, 0.0f } - }, - { - { 357.69998f, 0.0f, 146.8f }, - { 418.80002f, 0.0f, 225.0f }, - { 503.2f, 0.0f, 234.69998f }, - { 548.1f, 0.0f, 321.19998f }, - { 0.0f, 1.0f, 0.0f } - }, - { - { -100.0f, 0.0f, 0.0f }, - { 0.0f, 0.0f, -100.0f }, - { 100.0f, 0.0f, 0.0f }, - { 0.0f, 1.0f, 0.0f } - } -}; + { { 82.8f, 0.0f, 164.2f }, { 179.40001f, 0.0f, 179.8f }, { 241.00002f, 0.0f, 87.1f }, { 323.0f, 0.0f, 38.800003f }, { 0.0f, 1.0f, 0.0f } }, + { { 243.4f, 0.0f, 573.5f }, { 227.7f, 0.0f, 461.2f }, { 319.30002f, 0.0f, 400.6f }, { 342.30002f, 0.0f, 310.0f }, { 0.0f, 1.0f, 0.0f } }, + { { 357.69998f, 0.0f, 146.8f }, { 418.80002f, 0.0f, 225.0f }, { 503.2f, 0.0f, 234.69998f }, { 548.1f, 0.0f, 321.19998f }, { 0.0f, 1.0f, 0.0f } }, + { { -100.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, -100.0f }, { 100.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f } } }; void fn_1_1204(omObjData *object) { M438StructBss298 *var_r31; @@ -887,7 +850,8 @@ void fn_1_2070(omObjData *object) var_r31->unk_10.y = var_r31->unk_28.y + (var_f31 * (var_r31->unk_40.y - var_r31->unk_28.y)); var_r31->unk_10.z = var_r31->unk_28.z + (var_f31 * (var_r31->unk_40.z - var_r31->unk_28.z)); var_r31->unk_130 = var_r31->unk_134 + (var_f31 * (var_r31->unk_138 - var_r31->unk_134)); - } else { + } + else { fn_1_9420(2.0f * var_f31, (float *)&var_r31->unk_04, var_r31->unk_F4, (float(*)[3]) & var_r31->unk_64, var_r31->unk_88, 3); fn_1_9420(2.0f * var_f31, (float *)&var_r31->unk_10, var_r31->unk_100, (float(*)[3]) & var_r31->unk_AC, var_r31->unk_D0, 3); var_r31->unk_130 = fn_1_8EEC(2.0f * var_f31, var_r31->unk_124, var_r31->unk_10C, var_r31->unk_118, 3); @@ -1409,12 +1373,14 @@ void fn_1_35C0(omObjData *object) var_r31->unk_22 = var_r28; var_r31->unk_20 = var_r28; CharModelMotionShiftSet(var_r31->unk_01, object->motion[8], 0.0f, 8.0f, var_r27); - } else { + } + else { switch (var_r28) { case 0: case 1: case 2: - if (var_r31->unk_20 != 0 && CharModelMotionShiftIDGet(var_r31->unk_01) >= 0) break; + if (var_r31->unk_20 != 0 && CharModelMotionShiftIDGet(var_r31->unk_01) >= 0) + break; default: var_r31->unk_22 = var_r28; var_r31->unk_20 = var_r28; @@ -1526,7 +1492,6 @@ void fn_1_4724(omObjData *object) object->func = fn_1_4984; } - void fn_1_4984(omObjData *object) { Vec sp8; @@ -1581,7 +1546,7 @@ void fn_1_4984(omObjData *object) } lbl_1_bss_4 = fn_1_10258(0x3C, 1); fn_1_11018(lbl_1_bss_4, 0, 0x45000F); - lbl_1_bss_DE4.unk_40[lbl_1_bss_4].unk_30 = fn_1_5D4C; + lbl_1_bss_DE4.unk_40[lbl_1_bss_4].unk_30 = fn_1_5D4C; fn_1_11890(lbl_1_bss_4, var_r31->unk_10.x, 50.0f + var_r31->unk_10.y, var_r31->unk_10.z); fn_1_124CC(lbl_1_bss_4, 1); lbl_1_bss_8++; @@ -1644,7 +1609,7 @@ void fn_1_4F50(omObjData *object) var_r31->unk_00++; case 1: var_r31->unk_34 = var_r31->unk_10; - + for (var_r28 = 0, var_r26 = 0; var_r28 < 4; var_r28++) { var_r29 = lbl_1_bss_DC4[var_r28]->data; if ((var_r29->unk_07 != 0) && ((var_r29->unk_07 & 2) == 0)) { @@ -1659,17 +1624,20 @@ void fn_1_4F50(omObjData *object) if (var_r31->unk_1C.y <= -180.0f) { var_r31->unk_1C.y += 360.0f; } - + for (var_r28 = 0; var_r28 < var_r26; var_r28++) { var_f31 = fn_1_E5A4(sp8[var_r28], object->rot.y); if (var_f31 < 0.0f) { var_f27 = -var_f31; - } else { + } + else { var_f27 = var_f31; } - if (var_f27 > (20.0f + object->work[1])) continue; + if (var_f27 > (20.0f + object->work[1])) + continue; object->work[0]--; - if (object->work[0] != 0 && ((fn_1_7DB4() & 0xF) != 0)) continue; + if (object->work[0] != 0 && ((fn_1_7DB4() & 0xF) != 0)) + continue; var_r31->unk_04.y = sp8[var_r28]; var_r31->unk_1C.y = sp8[var_r28]; var_r31->unk_28.y = 16.333334f; @@ -1717,7 +1685,8 @@ void fn_1_4F50(omObjData *object) sp18 = var_r31->unk_10; sp18.y = 0.0f; var_f30 = VECMag(&sp18); - if (var_f30 <= 700.0f) break; + if (var_f30 <= 700.0f) + break; var_r31->unk_02 = 1; if (fn_1_DA64(atan2d(sp18.x, sp18.z)) != 0) { var_r31->unk_02 = 0x78; @@ -1740,7 +1709,8 @@ void fn_1_4F50(omObjData *object) case 4: var_r31->unk_28.y += -3.0625f; var_r31->unk_10.y += var_r31->unk_28.y; - if (var_r31->unk_10.y > 0.0f) break; + if (var_r31->unk_10.y > 0.0f) + break; var_r31->unk_10.y = 0.0f; var_r31->unk_34 = var_r31->unk_10; Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); @@ -1784,7 +1754,8 @@ void fn_1_4F50(omObjData *object) var_r29 = lbl_1_bss_DC4[var_r28]->data; VECSubtract(&var_r29->unk_6C, &var_r31->unk_10, &sp18); var_f30 = VECMag(&sp18); - if (var_f30 >= 200.0f || var_r29->unk_20 == 7) continue; + if (var_f30 >= 200.0f || var_r29->unk_20 == 7) + continue; omVibrate(var_r29->unk_00, 0xC, 4, 2); var_r29->unk_07 |= 2; var_r29->unk_0D = 0; @@ -1796,7 +1767,8 @@ void fn_1_4F50(omObjData *object) if (fabs(fn_1_E5A4(var_r29->unk_28, var_r29->unk_7C)) > 90.0) { var_r29->unk_7C = 180.0f + var_r29->unk_28; var_r29->unk_14 = 0; - } else { + } + else { var_r29->unk_7C = var_r29->unk_28; var_r29->unk_14 = 1; } @@ -1811,7 +1783,8 @@ void fn_1_4F50(omObjData *object) omSetRot(object, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); } -void fn_1_5D4C(M438UnkStruct2 *arg0) { +void fn_1_5D4C(M438UnkStruct2 *arg0) +{ s16 sp8; f32 temp_f31; f32 temp_f30; @@ -1819,13 +1792,13 @@ void fn_1_5D4C(M438UnkStruct2 *arg0) { f32 temp_f28; f32 temp_f27; s32 var_r29; - M438UnkStruct* var_r31; + M438UnkStruct *var_r31; sp8 = 0; - switch (arg0->unk_60) { /* irregular */ + switch (arg0->unk_60) { /* irregular */ case 0: temp_f27 = 360.0f / arg0->unk_02; - + var_r31 = &arg0->unk_3C[0]; for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { var_r31->unk_6C.x = sind(temp_f27 * var_r29) * (0.8f + (0.1f * (2.0f * ((1.0f / 32768.0f) * (fn_1_7DB4() - 0x8000))))); @@ -1845,7 +1818,7 @@ void fn_1_5D4C(M438UnkStruct2 *arg0) { arg0->unk_7C--; temp_f31 = (48.0f - arg0->unk_7C) / 48.0f; temp_f28 = arg0->unk_7C / 48.0f; - + var_r31 = arg0->unk_3C; for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { var_r31->unk_00.x += 12.5f * temp_f28 * var_r31->unk_6C.x; @@ -1871,7 +1844,7 @@ void fn_1_62BC(M438UnkStruct2 *arg0) s16 sp8; M438UnkStruct *var_r31; - + sp8 = 0; switch (arg0->unk_60) { case 0: @@ -1893,9 +1866,10 @@ void fn_1_62BC(M438UnkStruct2 *arg0) } } -void fn_1_63B0(M438UnkStruct2* arg0) { +void fn_1_63B0(M438UnkStruct2 *arg0) +{ Vec sp8; - M438UnkStruct* var_r31; + M438UnkStruct *var_r31; f32 var_f31; f32 temp_f30; f32 var_f29; @@ -1906,10 +1880,8 @@ void fn_1_63B0(M438UnkStruct2* arg0) { for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { switch (var_r31->unk_5C) { case 0: - var_f29 = atan2d(arg0->unk_80, arg0->unk_84) < 0 - ? -atan2d(arg0->unk_80, arg0->unk_84) - : atan2d(arg0->unk_80, arg0->unk_84); - + var_f29 = atan2d(arg0->unk_80, arg0->unk_84) < 0 ? -atan2d(arg0->unk_80, arg0->unk_84) : atan2d(arg0->unk_80, arg0->unk_84); + if (var_f29 > 90.0f) { var_f29 = 180.0f - var_f29; } @@ -1920,7 +1892,7 @@ void fn_1_63B0(M438UnkStruct2* arg0) { var_r31->unk_00.x = sp8.x; var_r31->unk_00.y = 0.0f; var_r31->unk_00.z = sp8.z; - + for (var_f31 = 0.0f, sp8.y = 0.0f; var_f31 < (arg0->unk_8C - 40.0f); var_f31 += sp8.y) { sp8.y += 0.8f; } @@ -1936,7 +1908,8 @@ void fn_1_63B0(M438UnkStruct2* arg0) { temp_f30 = 3.75f + (1.75f * ((1.0f / 65536.0f) * fn_1_7DB4())); var_r31->unk_60.x = (temp_f30 * (0.1f + ((0.9f * var_f29) / 90.0f))); var_r31->unk_60.y = var_r31->unk_60.z = temp_f30; - } else { + } + else { var_r31->unk_33 = 0; var_r31->unk_54.r = 0; var_r31->unk_54.g = 0; @@ -1980,9 +1953,10 @@ void fn_1_63B0(M438UnkStruct2* arg0) { } } -void fn_1_6A3C(M438UnkStruct2* arg0) { +void fn_1_6A3C(M438UnkStruct2 *arg0) +{ Vec sp8; - M438UnkStruct* var_r31; + M438UnkStruct *var_r31; f32 temp_f31; f32 temp_f30; f32 temp_f29; @@ -1992,7 +1966,7 @@ void fn_1_6A3C(M438UnkStruct2* arg0) { var_r31 = arg0->unk_3C; var_r28 = 0; - + for (var_r27 = 0; var_r27 < arg0->unk_02; var_r27++, var_r31++) { if ((arg0->unk_7C != 0) && (var_r31->unk_7A == 0)) { var_r31->unk_5C = 0; @@ -2013,7 +1987,8 @@ void fn_1_6A3C(M438UnkStruct2* arg0) { var_r31->unk_6C.z = 100.0f * (0.1f * sp8.z); var_r31->unk_78 = (s32)(24.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1; var_r31->unk_7A = 1; - } else { + } + else { temp_f30 = (180.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) - 90.0f; temp_f29 = 125.0f * ((1.0f / 65536.0f) * fn_1_7DB4()); sp8.x = sind(temp_f30); @@ -2039,7 +2014,8 @@ void fn_1_6A3C(M438UnkStruct2* arg0) { var_r31->unk_18.x = temp_f31; var_r31->unk_18.y = temp_f31; var_r31->unk_18.z = temp_f31; - } else if (arg0->unk_7C != 0) { + } + else if (arg0->unk_7C != 0) { var_r31->unk_33 = 0; var_r31->unk_54.r = 0; var_r31->unk_54.g = 0; @@ -2049,10 +2025,11 @@ void fn_1_6A3C(M438UnkStruct2* arg0) { var_r31->unk_18.x = temp_f31; var_r31->unk_18.y = 1.5f * temp_f31; var_r31->unk_18.z = temp_f31; - } else { + } + else { var_r29 = fn_1_10258(8, 1); fn_1_11018(var_r29, 0, 0x45000A); - lbl_1_bss_DE4.unk_40[var_r29].unk_30 = (void (*)(M438UnkStruct2*)) fn_1_7300; + lbl_1_bss_DE4.unk_40[var_r29].unk_30 = (void (*)(M438UnkStruct2 *))fn_1_7300; fn_1_11890(var_r29, arg0->unk_0C.x + var_r31->unk_00.x, arg0->unk_0C.y + var_r31->unk_00.y, arg0->unk_0C.z + var_r31->unk_00.z); fn_1_12100(var_r29, 4); fn_1_124CC(var_r29, 1); @@ -2070,7 +2047,8 @@ void fn_1_6A3C(M438UnkStruct2* arg0) { var_r31->unk_58->unk_24 = 0x11; if (var_r31->unk_7A != 0) { var_r31->unk_58->unk_28 = 0.5f; - } else { + } + else { var_r31->unk_58->unk_28 = 0.5f; } var_r31->unk_58->unk_2C = 0.0f; @@ -2092,7 +2070,8 @@ void fn_1_6A3C(M438UnkStruct2* arg0) { if ((var_r31->unk_58->unk_24 & 8) != 0) { if (var_r31->unk_7A != 0) { var_r31->unk_5C = 3; - } else { + } + else { var_r31->unk_5C = 0; } } @@ -2107,9 +2086,10 @@ void fn_1_6A3C(M438UnkStruct2* arg0) { } } -void fn_1_7300(M438UnkStruct2* arg0) { +void fn_1_7300(M438UnkStruct2 *arg0) +{ Vec sp8; - M438UnkStruct* var_r31; + M438UnkStruct *var_r31; f32 temp_f29; f32 temp_f30; f32 temp_f31; @@ -2117,33 +2097,32 @@ void fn_1_7300(M438UnkStruct2* arg0) { s32 var_r29; var_r31 = arg0->unk_3C; - + switch (arg0->unk_60) { case 0: arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z = temp_f31 = 0.01f; arg0->unk_7C = Hu3DModelCreateFile(0x45000B); arg0->unk_7E = (s32)(30.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 30; - + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { var_r31->unk_38 |= 4; } arg0->unk_60++; case 1: arg0->unk_24.z += 0.008f; - + arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z; Hu3DModelPosSetV(arg0->unk_7C, &arg0->unk_0C); Hu3DModelScaleSetV(arg0->unk_7C, &arg0->unk_24); if (--arg0->unk_7E == 0) { Hu3DModelKill(arg0->unk_7C); arg0->unk_7C = 0; - + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { var_r31->unk_5C = 1; } arg0->unk_80 = arg0->unk_24.x; - - + arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z = 1.0f; arg0->unk_60++; } @@ -2151,7 +2130,7 @@ void fn_1_7300(M438UnkStruct2* arg0) { } var_r28 = 0; var_r31 = arg0->unk_3C; - + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { switch (var_r31->unk_5C) { case 1: @@ -2386,32 +2365,36 @@ float fn_1_7EDC(float arg8, float arg9, float argA) arg8 = arg9 + (var_f31 * argA); if (arg8 > 180.0f) { arg8 -= 360.0f; - } else if (arg8 <= -180.0f) { + } + else if (arg8 <= -180.0f) { arg8 += 360.0f; } return arg8; } -void fn_1_8044(Mtx arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_8044(Mtx arg0, f32 arg8, f32 arg9, f32 argA) +{ Mtx sp38; Mtx sp8; - + if (0.0f != argA) { - PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); - } else { - PSMTXIdentity(arg0); + MTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + } + else { + MTXIdentity(arg0); } if (0.0f != arg8) { - PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); - PSMTXConcat(sp38, arg0, arg0); + MTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + MTXConcat(sp38, arg0, arg0); } if (0.0f != arg9) { - PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); - PSMTXConcat(sp8, arg0, arg0); + MTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + MTXConcat(sp8, arg0, arg0); } } -void fn_1_8164(Mtx arg0, Vec* arg1) { +void fn_1_8164(Mtx arg0, Vec *arg1) +{ f32 temp_f29; f32 var_f28; @@ -2436,7 +2419,8 @@ void fn_1_8164(Mtx arg0, Vec* arg1) { } } -void fn_1_8500(Mtx arg0, Vec* arg1) { +void fn_1_8500(Mtx arg0, Vec *arg1) +{ f32 temp_f29; f32 var_f28; @@ -2447,7 +2431,8 @@ void fn_1_8500(Mtx arg0, Vec* arg1) { arg1->x = atan2d(temp_f29, var_f28); } -f32 fn_1_8750(f32 arg8, f32 arg9, f32 argA, f32 argB) { +f32 fn_1_8750(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ f32 temp_f31; f32 var_f30; @@ -2456,22 +2441,25 @@ f32 fn_1_8750(f32 arg8, f32 arg9, f32 argA, f32 argB) { return var_f30; } -void fn_1_87C8(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) { +void fn_1_87C8(f32 *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 arg8) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 3; var_r31++) { *arg3++ = fn_1_8750(arg8, *arg0++, *arg1++, *arg2++); } } -f32 fn_1_88E4(f32 arg8, f32 arg9, f32 argA, f32 argB) { +f32 fn_1_88E4(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ f32 var_f31; var_f31 = 2.0 * ((arg8 - 1.0) * arg9 + (1.0 - (2.0 * arg8)) * argA + (arg8 * argB)); return var_f31; } -void fn_1_895C(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) { +void fn_1_895C(f32 *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 arg8) +{ f32 spC[3]; f32 var_f29; s32 var_r31; @@ -2608,7 +2596,6 @@ void fn_1_9040(float *arg0, Vec *arg1, float arg2[3][3], s32 arg3) } } - void fn_1_9420(float arg8, float *arg0, float *arg1, float arg2[3][3], float arg3[3][3], s32 arg4) { float sp48[16]; @@ -2628,7 +2615,8 @@ void fn_1_9420(float arg8, float *arg0, float *arg1, float arg2[3][3], float arg } } -f32 fn_1_9634(Vec* arg0) { +f32 fn_1_9634(Vec *arg0) +{ f32 var_f30; f32 var_f29; var_f30 = (arg0->x * arg0->x) + (arg0->y * arg0->y) + (arg0->z * arg0->z); @@ -2638,24 +2626,28 @@ f32 fn_1_9634(Vec* arg0) { arg0->x *= var_f29; arg0->y *= var_f29; arg0->z *= var_f29; - } else { + } + else { arg0->x = arg0->y = arg0->z = 0.0f; } return var_f30; } -f32 fn_1_97CC(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) { +f32 fn_1_97CC(Vec arg0, Vec arg1, Vec *arg2, f32 arg8) +{ if (arg8 <= 0.0f) { arg2->x = arg0.x; arg2->y = arg0.y; arg2->z = arg0.z; arg8 = 0.0f; - } else if (arg8 >= 1.0f) { + } + else if (arg8 >= 1.0f) { arg2->x = (arg0.x + arg1.x); arg2->y = (arg0.y + arg1.y); arg2->z = (arg0.z + arg1.z); arg8 = 1.0f; - } else { + } + else { arg2->x = (arg0.x + (arg8 * arg1.x)); arg2->y = (arg0.y + (arg8 * arg1.y)); arg2->z = (arg0.z + (arg8 * arg1.z)); @@ -2663,7 +2655,8 @@ f32 fn_1_97CC(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) { return arg8; } -f32 fn_1_98A4(Vec arg0, Vec arg1, Vec arg2) { +f32 fn_1_98A4(Vec arg0, Vec arg1, Vec arg2) +{ f32 temp_f30; f32 var_f31; @@ -2675,21 +2668,24 @@ f32 fn_1_98A4(Vec arg0, Vec arg1, Vec arg2) { return var_f31; } -f32 fn_1_9960(Vec* arg0, Vec* arg1, Vec* arg2) { +f32 fn_1_9960(Vec *arg0, Vec *arg1, Vec *arg2) +{ Vec sp44; f32 var_f31; f32 var_f30; f32 temp_f29; if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { - return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); } var_f31 = fn_1_98A4(*arg0, *arg1, *arg2); fn_1_97CC(*arg1, *arg2, &sp44, var_f31); return ((arg0->z - sp44.z) * (arg0->z - sp44.z)) + (((arg0->x - sp44.x) * (arg0->x - sp44.x)) + ((arg0->y - sp44.y) * (arg0->y - sp44.y))); } -f32 fn_1_9C9C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { +f32 fn_1_9C9C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ f32 sp44; f32 sp40; f32 sp3C; @@ -2714,7 +2710,8 @@ f32 fn_1_9C9C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { f64 temp_f31_3; if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { - return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); } var_f27 = fn_1_98A4(*arg0, *arg1, *arg2); fn_1_97CC(*arg1, *arg2, arg3, var_f27); @@ -2725,7 +2722,8 @@ f32 fn_1_9C9C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { return fn_1_9634(arg4); } -f32 fn_1_A14C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3) { +f32 fn_1_A14C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ f32 temp_f31; f32 var_f30; f32 var_f29; @@ -2745,14 +2743,17 @@ f32 fn_1_A14C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3) { if (var_f28 >= var_f27) { if (var_f28 >= var_f26) { var_r30 = 1; - } else { + } + else { var_r30 = 0x100; } var_r31 = var_r30; - } else { + } + else { if (var_f27 >= var_f26) { var_r29 = 0x10; - } else { + } + else { var_r29 = 0x100; } var_r31 = var_r29; @@ -2763,30 +2764,38 @@ f32 fn_1_A14C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3) { return var_f30; } var_f29 = ((arg3->z * (arg0->x - arg2->x)) - (arg3->x * (arg0->z - arg2->z))) / temp_f31; - } else if (0.0f == (temp_f31 = (arg3->y * arg1->x) - (arg3->x * arg1->y))) { + } + else if (0.0f == (temp_f31 = (arg3->y * arg1->x) - (arg3->x * arg1->y))) { return var_f30; - } else { + } + else { var_f29 = ((arg3->x * (arg0->y - arg2->y)) - (arg3->y * (arg0->x - arg2->x))) / temp_f31; } - } else if ((var_r31 & 0x30) != 0) { + } + else if ((var_r31 & 0x30) != 0) { if ((0.0f != arg1->x) || (0.0f != arg1->y)) { if (0.0f == (temp_f31 = (arg3->y * arg1->x) - (arg3->x * arg1->y))) { return var_f30; } var_f29 = ((arg3->x * (arg0->y - arg2->y)) - (arg3->y * (arg0->x - arg2->x))) / temp_f31; - } else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) { + } + else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) { return var_f30; - } else { + } + else { var_f29 = ((arg3->y * (arg0->z - arg2->z)) - (arg3->z * (arg0->y - arg2->y))) / temp_f31; } - } else if ((0.0f != arg1->x) || (0.0f != arg1->z)) { + } + else if ((0.0f != arg1->x) || (0.0f != arg1->z)) { if (0.0f == (temp_f31 = (arg3->x * arg1->z) - (arg3->z * arg1->x))) { return var_f30; } var_f29 = ((arg3->z * (arg0->x - arg2->x)) - (arg3->x * (arg0->z - arg2->z))) / temp_f31; - } else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) { + } + else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) { return var_f30; - } else { + } + else { var_f29 = ((arg3->y * (arg0->z - arg2->z)) - (arg3->z * (arg0->y - arg2->y))) / temp_f31; } return var_f29; @@ -2807,11 +2816,31 @@ void fn_1_A688(omObjData *object) { } Vec lbl_1_data_514 = { -850.0f, 0.0f, -850.0f }; s32 lbl_1_data_520[25] = { - -0x62, -0x61, -0x60, -0x5F, -0x5E, - -0x32, -0x31, -0x30, -0x2F, -0x2E, - -0x2, -0x1, 0x0, 0x1, 0x2, - 0x2E, 0x2F, 0x30, 0x31, 0x32, - 0x5E, 0x5F, 0x60, 0x61, 0x62, + -0x62, + -0x61, + -0x60, + -0x5F, + -0x5E, + -0x32, + -0x31, + -0x30, + -0x2F, + -0x2E, + -0x2, + -0x1, + 0x0, + 0x1, + 0x2, + 0x2E, + 0x2F, + 0x30, + 0x31, + 0x32, + 0x5E, + 0x5F, + 0x60, + 0x61, + 0x62, }; u32 lbl_1_data_584[25] = { @@ -2842,18 +2871,20 @@ u32 lbl_1_data_584[25] = { 0x50, }; -#define getData(v, off) &( &( *OM_GET_DATA_PTR(lbl_1_bss_DBC, M438UnkType) )[ (u32)(0.028235294f * (v.x - off)) ] )[ (u32)(0.028235294f * (v.z - off)) * 0x30 ] +#define getData(v, off) \ + &(&(*OM_GET_DATA_PTR(lbl_1_bss_DBC, M438UnkType))[(u32)(0.028235294f * (v.x - off))])[(u32)(0.028235294f * (v.z - off)) * 0x30] -void fn_1_A68C(ModelData* model, Mtx matrix) { +void fn_1_A68C(ModelData *model, Mtx matrix) +{ Vec sp14; Vec sp8; - M438StructBss298* var_r30; + M438StructBss298 *var_r30; f32 var_f31; - omObjData* temp_r27; + omObjData *temp_r27; s32 var_r28; s32 var_r29; - u8* temp_r26; - u8* var_r25; + u8 *temp_r26; + u8 *var_r25; M438MainWork *temp_r31; if ((u8)omPauseChk() == 0) { @@ -2865,9 +2896,9 @@ void fn_1_A68C(ModelData* model, Mtx matrix) { var_f31 = 0.0f; for (var_f31 = 0.0f; var_f31 < (35.416668f + var_r30->unk_14); var_f31 += 35.416668f) { - PSVECScale(&var_r30->unk_24, &sp8, var_f31); - PSVECAdd(&var_r30->unk_18, &sp8, &sp14); - PSVECSubtract(&sp14, &lbl_1_data_514, &sp14); + VECScale(&var_r30->unk_24, &sp8, var_f31); + VECAdd(&var_r30->unk_18, &sp8, &sp14); + VECSubtract(&sp14, &lbl_1_data_514, &sp14); // @todo make this look nicer // var_r25 = getData(sp14, 0); @@ -2882,12 +2913,12 @@ void fn_1_A68C(ModelData* model, Mtx matrix) { } } for (var_r29 = 0; var_r29 < 4; var_r29++) { - if ((omObjData* ) lbl_1_bss_DC4[var_r29]) { + if ((omObjData *)lbl_1_bss_DC4[var_r29]) { temp_r27 = lbl_1_bss_DC4[var_r29]; temp_r31 = temp_r27->data; if ((temp_r31) && (temp_r31->unk_68 != 0)) { temp_r31->unk_68 = 0; - PSVECAdd(&temp_r31->unk_6C, &temp_r31->unk_4C, &sp14); + VECAdd(&temp_r31->unk_6C, &temp_r31->unk_4C, &sp14); temp_r31->unk_64 = fn_1_AE18(temp_r27->work[0], temp_r31->unk_7C, &sp14, &temp_r31->unk_58); } } @@ -2896,7 +2927,8 @@ void fn_1_A68C(ModelData* model, Mtx matrix) { } } -u32 fn_1_A8FC(Vec* arg0, f32 arg8) { +u32 fn_1_A8FC(Vec *arg0, f32 arg8) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -2912,11 +2944,11 @@ u32 fn_1_A8FC(Vec* arg0, f32 arg8) { var_r30 = 0; var_r28 = 0; temp_f28 = 100.0f * (4.5f - (2.0f * arg8)); - var_f31 = PSVECMag(arg0); + var_f31 = VECMag(arg0); if (var_f31 > 280.0f) { if (var_f31 > 560.0f) { var_r28 = 1; - PSVECNormalize(arg0, &sp14); + VECNormalize(arg0, &sp14); } var_f31 -= 280.0f; var_f31 *= 0.12987013f; @@ -2935,17 +2967,17 @@ u32 fn_1_A8FC(Vec* arg0, f32 arg8) { sp8.x = sind(temp_r31->unk_08); sp8.y = 0.0f; sp8.z = cosd(temp_r31->unk_08); - PSVECScale(&sp8, &sp20, 600.0f + (100.0f * (8.0f * arg8))); + VECScale(&sp8, &sp20, 600.0f + (100.0f * (8.0f * arg8))); var_f30 = fn_1_B440(arg0, &sp2C, &sp20); if (var_f30 > -0.2f && var_f30 < 1.0f) { - PSVECScale(&sp20, &sp20, var_f30); - PSVECAdd(&sp2C, &sp20, &sp2C); - PSVECSubtract(&sp2C, arg0, &sp20); - var_f31 = PSVECMag(&sp20); - if (var_f31 < temp_f28) { + VECScale(&sp20, &sp20, var_f30); + VECAdd(&sp2C, &sp20, &sp2C); + VECSubtract(&sp2C, arg0, &sp20); + var_f31 = VECMag(&sp20); + if (var_f31 < temp_f28) { var_f29 = 0.0f; if (var_r28 != 0) { - var_f29 = PSVECDotProduct(&sp14, &sp8); + var_f29 = VECDotProduct(&sp14, &sp8); var_f29 = 1.0 - fabs(var_f29); } var_f31 = (1.0f / temp_f28) * (temp_f28 - var_f31); @@ -2962,8 +2994,8 @@ u32 fn_1_A8FC(Vec* arg0, f32 arg8) { } break; default: - PSVECSubtract(arg0, &sp2C, &sp20); - var_f31 = PSVECMag(&sp20); + VECSubtract(arg0, &sp2C, &sp20); + var_f31 = VECMag(&sp20); if (var_f31 < 600.0f) { var_f31 = 800.0f - var_f31; var_f31 = 20.0f + (0.1f * var_f31); @@ -3009,14 +3041,15 @@ Vec lbl_1_data_69C[9] = { s32 lbl_1_data_708[9] = { 0, -19, -18, -17, -1, 1, 0x11, 0x12, 0x13 }; s32 lbl_1_data_72C[9] = { 0, -38, -54, -34, -3, 3, 0x22, 0x36, 0x26 }; -s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { +s32 fn_1_AE18(u32 arg0, f32 arg8, Vec *arg1, Vec *arg2) +{ s32 sp58[9]; Vec sp4C; Vec sp40; Vec sp34; Vec sp28; Vec sp1C; - u8* sp18; + u8 *sp18; u32 sp14; u32 sp10; f32 var_f31; @@ -3027,16 +3060,16 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { s32 var_r30; u32 var_r29; s32 var_r28; - u16* temp_r27; + u16 *temp_r27; s32 var_r26; M438MainWork *var_r25; - u8* temp_r24; + u8 *temp_r24; s32 var_r23; - u8* var_r22; - u16* var_r21; + u8 *var_r22; + u16 *var_r21; u32 var_r19; u32 var_r18; - u8* temp_r17; + u8 *temp_r17; memset(lbl_1_bss_C, 0, 0x288); sp40 = *arg1; @@ -3049,9 +3082,9 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { temp_f28 = var_r25->unk_3C; var_r19 = 0x2710; var_r18 = 0; - + for (var_r30 = 0; var_r30 < 9; var_r30++) { - PSVECAdd(&sp40, &lbl_1_data_60C[var_r30], &sp34); + VECAdd(&sp40, &lbl_1_data_60C[var_r30], &sp34); sp18 = temp_r17 + lbl_1_data_5E8[var_r30]; (void)temp_r17; var_r21 = &(&lbl_1_bss_C[lbl_1_data_708[var_r30]])[0xAB]; @@ -3059,12 +3092,13 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { var_r29 = 0; var_r22 = sp18; sp28 = sp34; - + for (var_r23 = 0; var_r23 < 3; var_r23++) { for (var_r28 = 0; var_r28 < 9; var_r28++) { temp_r24 = var_r22 + lbl_1_data_5E8[var_r28]; - PSVECAdd(&sp28, &lbl_1_data_60C[var_r28], &sp4C); - if ((lbl_1_bss_DBC->data <= temp_r24) && (((u8*)lbl_1_bss_DBC->data + 0x900 > temp_r24) && (fabs(sp4C.x) < 850.0) && (fabs(sp4C.z) < 850.0))) { + VECAdd(&sp28, &lbl_1_data_60C[var_r28], &sp4C); + if ((lbl_1_bss_DBC->data <= temp_r24) + && (((u8 *)lbl_1_bss_DBC->data + 0x900 > temp_r24) && (fabs(sp4C.x) < 850.0) && (fabs(sp4C.z) < 850.0))) { var_f31++; temp_r27 = &var_r21[lbl_1_data_708[var_r28]]; if (*temp_r27 == 0) { @@ -3078,9 +3112,9 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { for (var_r26 = 0; var_r26 < 4; var_r26++) { if (var_r26 != arg0) { var_r25 = lbl_1_bss_DC4[var_r26]->data; - PSVECSubtract(&sp4C, &var_r25->unk_6C, &sp1C); + VECSubtract(&sp4C, &var_r25->unk_6C, &sp1C); sp1C.y = 0.0f; - var_f30 = PSVECMag(&sp1C); + var_f30 = VECMag(&sp1C); if (var_f30 < var_f29) { var_f30 = var_f29 - var_f30; var_f30 *= (40.0f / var_f29); @@ -3089,7 +3123,8 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { } } *temp_r27 = ++var_r31; - } else { + } + else { var_r31 = *temp_r27; } var_r29 += var_r31; @@ -3099,7 +3134,7 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { } } } - PSVECAdd(&sp28, &lbl_1_data_69C[var_r30], &sp28); + VECAdd(&sp28, &lbl_1_data_69C[var_r30], &sp28); var_r22 += lbl_1_data_678[var_r30]; var_r21 = &var_r21[lbl_1_data_72C[var_r30]]; var_f31 *= 2.0f; @@ -3121,14 +3156,15 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { return 0; } -f32 fn_1_B440(Vec* arg0, Vec* arg1, Vec* arg2) { +f32 fn_1_B440(Vec *arg0, Vec *arg1, Vec *arg2) +{ Vec sp10; f32 temp_f30; f32 var_f31; - - PSVECSubtract(arg1, arg0, &sp10); - var_f31 = PSVECDotProduct(&sp10, arg2); - temp_f30 = -PSVECSquareMag(arg2); + + VECSubtract(arg1, arg0, &sp10); + var_f31 = VECDotProduct(&sp10, arg2); + temp_f30 = -VECSquareMag(arg2); if (temp_f30 != 0.0f) { var_f31 /= temp_f30; } diff --git a/src/REL/m438Dll/map.c b/src/REL/m438Dll/map.c index ee37c2c3..b0da050e 100644 --- a/src/REL/m438Dll/map.c +++ b/src/REL/m438Dll/map.c @@ -1,11 +1,12 @@ #include "REL/m438Dll.h" #include "ext_math.h" -#include "string.h" #include "game/hsfanim.h" #include "game/hsfmotion.h" #include "game/sprite.h" #include "game/wipe.h" +#include "string.h" + // STRUCT typedef struct M438MapStruct { @@ -32,8 +33,8 @@ typedef struct M438MapStruct2 { Vec unk30; Vec unk3C; union { - M438MainWork4* unk48; - HsfObject* unk48o; + M438MainWork4 *unk48; + HsfObject *unk48o; }; } M438MapStruct2; @@ -45,56 +46,51 @@ typedef struct M438MapStruct3 { } M438MapStruct3; // BSS -omObjData* lbl_1_bss_108C[6]; -HsfanimStruct01* lbl_1_bss_E34[0x96]; +omObjData *lbl_1_bss_108C[6]; +HsfanimStruct01 *lbl_1_bss_E34[0x96]; s32 lbl_1_bss_E30; s32 lbl_1_bss_E2C; s32 lbl_1_bss_E28; // DATA -char* lbl_1_data_848[] = { - "iwa_s1", "iwa_s2", "iwa_s3", "iwa_s4", "iwa_s5", - "iwa_s6", "iwa_s7", "iwa_s8", "iwa_s9", - "iwa_s10", "iwa_s11", "iwa_s12", "iwa_s13", - "iwa_s14", "iwa_s15", "iwa_s16", "iwa_s17", - "iwa_s18", "iwa_s19", "iwa_s20", "iwa_s21", - "iwa_s22", "iwa_s23", "iwa_s24", "iwa_s25", - "iwa_s26", "iwa_s27", "iwa_s28", "iwa_s29", - "iwa_s30", "iwa_s31", "iwa_s32" -}; +char *lbl_1_data_848[] = { "iwa_s1", "iwa_s2", "iwa_s3", "iwa_s4", "iwa_s5", "iwa_s6", "iwa_s7", "iwa_s8", "iwa_s9", "iwa_s10", "iwa_s11", "iwa_s12", + "iwa_s13", "iwa_s14", "iwa_s15", "iwa_s16", "iwa_s17", "iwa_s18", "iwa_s19", "iwa_s20", "iwa_s21", "iwa_s22", "iwa_s23", "iwa_s24", "iwa_s25", + "iwa_s26", "iwa_s27", "iwa_s28", "iwa_s29", "iwa_s30", "iwa_s31", "iwa_s32" }; // PROTO -void fn_1_B54C(omObjData*); -void fn_1_BF20(omObjData*); +void fn_1_B54C(omObjData *); +void fn_1_BF20(omObjData *); void fn_1_CAB0(f32); -void fn_1_C764(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_C8E8(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_D57C(Vec*, f32); -void fn_1_E034(Mtx, Vec*); +void fn_1_C764(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_C8E8(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_D3FC(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_D57C(Vec *, f32); +void fn_1_E034(Mtx, Vec *); -void fn_1_B4D8(Process* arg0) { - omObjData* var_r31; +void fn_1_B4D8(Process *arg0) +{ + omObjData *var_r31; lbl_1_bss_E30 = 0; var_r31 = lbl_1_bss_108C[0] = omAddObjEx(arg0, 0x20, 8, 0, -1, fn_1_B54C); var_r31->work[0] = 0; } -void fn_1_B548(void) {} +void fn_1_B548(void) { } -void fn_1_B54C(omObjData* arg0) { +void fn_1_B54C(omObjData *arg0) +{ Vec sp20; Vec sp14; Vec sp8; s32 var_r30; s32 var_r29; - HsfObject* var_r26; + HsfObject *var_r26; s32 var_r27; - M438MapStruct2* var_r28; - HsfanimStruct01* var_r25; - M438MapStruct* var_r24; - M438MapStruct3* temp_r23; + M438MapStruct2 *var_r28; + HsfanimStruct01 *var_r25; + M438MapStruct *var_r24; + M438MapStruct3 *temp_r23; arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x108C, 0x10000000); temp_r23 = arg0->data; @@ -116,29 +112,29 @@ void fn_1_B54C(omObjData* arg0) { var_r29 = Hu3DTexScrollCreate(arg0->model[1], "lafall"); Hu3DTexScrollPosMoveSet(var_r29, 0.0f, -(1.0f / 60.0f), 0.0f); var_r29 = 0; - + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000C), 0x32); arg0->model[3] = var_r27; Hu3DModelLayerSet(var_r27, 3); Hu3DParticleHookSet(var_r27, fn_1_C764); for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) { - lbl_1_bss_E34[var_r29] = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; + lbl_1_bss_E34[var_r29] = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; } - + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000D), 0x32); arg0->model[4] = var_r27; Hu3DModelLayerSet(var_r27, 3); Hu3DParticleHookSet(var_r27, fn_1_C764); for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) { - lbl_1_bss_E34[var_r29] = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; + lbl_1_bss_E34[var_r29] = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; } - + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000E), 0x32); arg0->model[5] = var_r27; Hu3DModelLayerSet(var_r27, 3); Hu3DParticleHookSet(var_r27, fn_1_C764); for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) { - lbl_1_bss_E34[var_r29] = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; + lbl_1_bss_E34[var_r29] = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; } for (var_r30 = 0; var_r30 < 0x95; var_r30++) { for (var_r29 = 1; var_r29 < 0x96; var_r29++) { @@ -155,24 +151,24 @@ void fn_1_B54C(omObjData* arg0) { lbl_1_bss_E34[var_r30]->unk40.a = 0; lbl_1_bss_E34[var_r30]->unk00 = 0; } - + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000F), 0x32); arg0->model[6] = var_r27; Hu3DModelLayerSet(var_r27, 3); Hu3DParticleHookSet(var_r27, fn_1_C8E8); - var_r25 = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[0]; + var_r25 = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[0]; for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r25++) { var_r25->unk2C = 0.0f; var_r25->unk40.a = 0; var_r25->unk00 = 0; } - + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x450010), 0x1F4); arg0->model[7] = var_r27; Hu3DModelLayerSet(var_r27, 2); Hu3DParticleBlendModeSet(var_r27, 1); Hu3DParticleHookSet(var_r27, fn_1_D3FC); - var_r25 = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[0]; + var_r25 = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[0]; for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r25++) { var_r25->unk2C = 0.0f; var_r25->unk40.a = 0; @@ -191,27 +187,27 @@ void fn_1_B54C(omObjData* arg0) { sp8.x = sp8.y = sp8.z = 100000.0f; for (var_r29 = 0; var_r29 < var_r26->data.vertex->count; var_r29++) { - if (((Vec*)var_r26->data.vertex->data)[var_r29].x > sp14.x) { - sp14.x = ((Vec*)var_r26->data.vertex->data)[var_r29].x; + if (((Vec *)var_r26->data.vertex->data)[var_r29].x > sp14.x) { + sp14.x = ((Vec *)var_r26->data.vertex->data)[var_r29].x; } - if (((Vec*)var_r26->data.vertex->data)[var_r29].y > sp14.y) { - sp14.y = ((Vec*)var_r26->data.vertex->data)[var_r29].y; + if (((Vec *)var_r26->data.vertex->data)[var_r29].y > sp14.y) { + sp14.y = ((Vec *)var_r26->data.vertex->data)[var_r29].y; } - if (((Vec*)var_r26->data.vertex->data)[var_r29].z > sp14.z) { - sp14.z = ((Vec*)var_r26->data.vertex->data)[var_r29].z; + if (((Vec *)var_r26->data.vertex->data)[var_r29].z > sp14.z) { + sp14.z = ((Vec *)var_r26->data.vertex->data)[var_r29].z; } - if (((Vec*)var_r26->data.vertex->data)[var_r29].x < sp8.x) { - sp8.x = ((Vec*)var_r26->data.vertex->data)[var_r29].x; + if (((Vec *)var_r26->data.vertex->data)[var_r29].x < sp8.x) { + sp8.x = ((Vec *)var_r26->data.vertex->data)[var_r29].x; } - if (((Vec*)var_r26->data.vertex->data)[var_r29].y < sp8.y) { - sp8.y = ((Vec*)var_r26->data.vertex->data)[var_r29].y; + if (((Vec *)var_r26->data.vertex->data)[var_r29].y < sp8.y) { + sp8.y = ((Vec *)var_r26->data.vertex->data)[var_r29].y; } - if (((Vec*)var_r26->data.vertex->data)[var_r29].z < sp8.z) { - sp8.z = ((Vec*)var_r26->data.vertex->data)[var_r29].z; + if (((Vec *)var_r26->data.vertex->data)[var_r29].z < sp8.z) { + sp8.z = ((Vec *)var_r26->data.vertex->data)[var_r29].z; } } - PSVECAdd(&sp14, &sp8, &sp20); - PSVECScale(&sp20, &sp20, 0.5f); + VECAdd(&sp14, &sp8, &sp20); + VECScale(&sp20, &sp20, 0.5f); var_r28->unk24 = sp20; var_r28->unk30 = var_r28->unk24; var_r28->unk8 = (360.0 + atan2d(sp20.x, sp20.z)); @@ -241,7 +237,7 @@ Vec lbl_1_data_8D8[4][2] = { { -867.0f, -80.0f, -485.0f }, }, { - { -917.0f, -80.0f, -857.0f }, + { -917.0f, -80.0f, -857.0f }, { -817.0f, -80.0f, -1030.0f }, }, { @@ -249,12 +245,13 @@ Vec lbl_1_data_8D8[4][2] = { { 867.0f, -80.0f, -485.0f }, }, { - { 917.0f, -80.0f, -857.0f }, + { 917.0f, -80.0f, -857.0f }, { 817.0f, -80.0f, -1030.0f }, }, }; -void fn_1_BF20(omObjData* arg0) { +void fn_1_BF20(omObjData *arg0) +{ Mtx sp5C; Mtx sp2C; Vec sp20; @@ -264,18 +261,18 @@ void fn_1_BF20(omObjData* arg0) { f32 temp_f30; f32 temp_f31; s32 var_r29; - M438MapStruct2* var_r31; - M438MapStruct* var_r30; - M438MapStruct3* temp_r28; + M438MapStruct2 *var_r31; + M438MapStruct *var_r30; + M438MapStruct3 *temp_r28; temp_r28 = arg0->data; temp_r28->unk0++; var_r31 = &temp_r28->unk4; - + for (var_r29 = 0; var_r29 < 0x20; var_r29++, var_r31++) { if ((var_r31->unk0 == 0) && (var_r31->unk4 != 0)) { temp_f29 = var_r31->unk30.y; - PSVECAdd(&var_r31->unk30, &var_r31->unk3C, &var_r31->unk30); + VECAdd(&var_r31->unk30, &var_r31->unk3C, &var_r31->unk30); var_r31->unk3C.x *= 0.92f; var_r31->unk3C.z *= 0.92f; var_r31->unk3C.y += -0.27222225f; @@ -290,22 +287,22 @@ void fn_1_BF20(omObjData* arg0) { sp14.x = sind(90.0f + var_r31->unk8); sp14.z = cosd(90.0f + var_r31->unk8); sp14.y = 0.0f; - PSMTXRotAxisRad(sp5C, &sp14, MTXDegToRad(var_r31->unkC)); + MTXRotAxisRad(sp5C, &sp14, MTXDegToRad(var_r31->unkC)); sp14.x = sp14.z = 0.0f; sp14.y = 1.0f; - PSMTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk14)); - PSMTXConcat(sp2C, sp5C, sp5C); + MTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk14)); + MTXConcat(sp2C, sp5C, sp5C); sp14.x = sind(var_r31->unk8); sp14.z = cosd(var_r31->unk8); sp14.y = 0.0f; - PSMTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk1C)); - PSMTXConcat(sp2C, sp5C, sp5C); + MTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk1C)); + MTXConcat(sp2C, sp5C, sp5C); fn_1_E034(sp5C, &sp20); var_r31->unk48->unk_28.x = sp20.x; var_r31->unk48->unk_28.y = sp20.y; var_r31->unk48->unk_28.z = sp20.z; - PSMTXInverse(sp5C, sp5C); - PSMTXMultVec(sp5C, &var_r31->unk24, &sp8); + MTXInverse(sp5C, sp5C); + MTXMultVec(sp5C, &var_r31->unk24, &sp8); var_r31->unk48->unk_1C.x = (var_r31->unk30.x - sp8.x); var_r31->unk48->unk_1C.y = (var_r31->unk30.y - sp8.y); var_r31->unk48->unk_1C.z = (var_r31->unk30.z - sp8.z); @@ -316,16 +313,18 @@ void fn_1_BF20(omObjData* arg0) { } if ((temp_r28->unk0 & 1) == 0) { var_r30 = &temp_r28->unk984; - + for (var_r29 = 0; var_r29 < 0x32; var_r29++, var_r30++) { - if (var_r30->unk0 != 0) continue; + if (var_r30->unk0 != 0) + continue; var_r30->unk0 = 1; var_r30->unk18 = frandmod(0x168); if (frandmod(0x64) < 0x14) { var_r30->unkC.x = (0.8f * (frandmod(0x7D0) - 0x3E8)); var_r30->unkC.y = -80.0f; var_r30->unkC.z = ((-1.2f * frandmod(0x3E8)) - 1000.0f); - } else { + } + else { temp_f31 = frandmod(0x168); temp_f30 = 800.0f + (0.25f * frandmod(0x3E8)); var_r30->unkC.x = (temp_f30 * sind(temp_f31)); @@ -353,13 +352,13 @@ void fn_1_BF20(omObjData* arg0) { Hu3DModelScaleSet(var_r30->unk4, var_r30->unk1C, var_r30->unk1C, var_r30->unk1C); } } - + for (var_r29 = 0; var_r29 < 4; var_r29++) { - PSVECSubtract(&lbl_1_data_8D8[var_r29][1], &lbl_1_data_8D8[var_r29][0], &sp14); + VECSubtract(&lbl_1_data_8D8[var_r29][1], &lbl_1_data_8D8[var_r29][0], &sp14); temp_f31 = 0.001f * frandmod(0x3E8); - PSVECScale(&sp14, &sp14, temp_f31); - PSVECAdd(&lbl_1_data_8D8[var_r29][0], &sp14, &sp8); - PSVECScale(&sp8, &sp8, 0.98f); + VECScale(&sp14, &sp14, temp_f31); + VECAdd(&lbl_1_data_8D8[var_r29][0], &sp14, &sp8); + VECScale(&sp8, &sp8, 0.98f); fn_1_D57C(&sp8, 0.03f); } if ((lbl_1_bss_E30 == 0) && (WipeStatGet() == 0)) { @@ -369,16 +368,17 @@ void fn_1_BF20(omObjData* arg0) { } } -void fn_1_C764(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; +void fn_1_C764(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; s32 var_r29; u16 temp_r0; var_r31 = particle->unk_48; - + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.x *= 0.95f; var_r31->unk08.z *= 0.95f; var_r31->unk08.y += -0.27222225f; @@ -395,20 +395,21 @@ void fn_1_C764(ModelData* model, ParticleData* particle, Mtx matrix) { DCStoreRange(particle->unk_48, particle->unk_30 * 0x44); } -void fn_1_C8E8(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; +void fn_1_C8E8(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; s32 var_r29; u16 temp_r0; var_r31 = particle->unk_48; - + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.x *= 0.92f; var_r31->unk08.z *= 0.92f; var_r31->unk2C += 5.0f; - var_r31->unk40.a *= 0.99f; + var_r31->unk40.a *= 0.99f; if (var_r31->unk00_s16 < 24.0f) { var_r31->unk40.a = 0.9f * var_r31->unk40.a; } @@ -422,20 +423,21 @@ void fn_1_C8E8(ModelData* model, ParticleData* particle, Mtx matrix) { DCStoreRange(particle->unk_48, particle->unk_30 * 0x44); } -void fn_1_CAB0(f32 arg8) { +void fn_1_CAB0(f32 arg8) +{ Vec sp8; f32 temp_f31; f32 temp_f30; f32 temp_f28; f32 temp_f27; - HsfanimStruct01* var_r31; + HsfanimStruct01 *var_r31; s32 var_r30; u32 var_r29; temp_f28 = 20.0f; temp_f27 = 7.0f; var_r29 = 0x19; - + for (var_r30 = 0; var_r30 < 0x96; var_r30++) { var_r31 = lbl_1_bss_E34[var_r30]; if (var_r31->unk00_s16 == 0) { @@ -445,12 +447,12 @@ void fn_1_CAB0(f32 arg8) { sp8.x = sind(temp_f31); sp8.y = 0.0f; sp8.z = cosd(temp_f31); - + temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27; var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0; var_r31->unk34.y = 0.2f * frandmod(0x3E8); var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0; - + temp_f30 = 1.6666667f * (4.0f + (0.014f * frandmod(0x3E8))); var_r31->unk08.x = sp8.x * temp_f30; var_r31->unk08.z = sp8.z * temp_f30; @@ -462,10 +464,11 @@ void fn_1_CAB0(f32 arg8) { var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = 0xFF; var_r29--; - if (var_r29 < 1) break; + if (var_r29 < 1) + break; } } - var_r31 = ((ParticleData*)(Hu3DData[lbl_1_bss_108C[0]->model[6]].unk_120))->unk_48; + var_r31 = ((ParticleData *)(Hu3DData[lbl_1_bss_108C[0]->model[6]].unk_120))->unk_48; var_r29 = 0xF; for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r31++) { if (var_r31->unk00_s16 == 0) { @@ -475,12 +478,12 @@ void fn_1_CAB0(f32 arg8) { sp8.x = sind(temp_f31); sp8.y = 0.0f; sp8.z = cosd(temp_f31); - + temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27; var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0; var_r31->unk34.y = 0.2f * frandmod(0x3E8); var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0; - + temp_f30 = 1.6666667f * -(0.01f * frandmod(0x3E8)); var_r31->unk08.x = sp8.x * temp_f30; var_r31->unk08.z = sp8.z * temp_f30; @@ -495,13 +498,15 @@ void fn_1_CAB0(f32 arg8) { var_r31->unk40.b = (60.0f * temp_f31) + 54.0f; var_r29--; - if (var_r29 < 1) break; + if (var_r29 < 1) + break; } } } -void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; +void fn_1_D3FC(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; s32 var_r29; u16 temp_r0; @@ -509,7 +514,7 @@ void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix) { var_r31 = particle->unk_48; for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.y += -0.27222225f; if (var_r31->unk00_s16 < 12.0f) { var_r31->unk40.a = (0.8f * var_r31->unk40.a); @@ -525,17 +530,18 @@ void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix) { DCStoreRange(particle->unk_48, particle->unk_30 * 0x44); } -void fn_1_D57C(Vec* arg0, f32 arg1) { +void fn_1_D57C(Vec *arg0, f32 arg1) +{ Vec sp8; f32 temp_f31; f32 temp_f29; - HsfanimStruct01* var_r31; + HsfanimStruct01 *var_r31; s32 var_r30; u32 var_r29; - var_r31 = ((ParticleData*)(Hu3DData[lbl_1_bss_108C[0]->model[7]].unk_120))->unk_48; + var_r31 = ((ParticleData *)(Hu3DData[lbl_1_bss_108C[0]->model[7]].unk_120))->unk_48; var_r29 = (u32)(3.0f + (15.0f * arg1)); - + for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r31++) { if (var_r31->unk00_s16 == 0) { var_r31->unk00_s16 = 60.0f * (0.3f + (0.0003f * frandmod(0x3E8))); @@ -557,28 +563,30 @@ void fn_1_D57C(Vec* arg0, f32 arg1) { var_r31->unk40.a = (frandmod(0x46) + 0x64); temp_f31 = 0.001f * frandmod(0x3E8); - var_r31->unk40.r = 177.0f + (78.0f * temp_f31); - var_r31->unk40.g = 60.0f + (129.0f * temp_f31); - var_r31->unk40.b = 30.0f + (122.0f * temp_f31); + var_r31->unk40.r = 177.0f + (78.0f * temp_f31); + var_r31->unk40.g = 60.0f + (129.0f * temp_f31); + var_r31->unk40.b = 30.0f + (122.0f * temp_f31); var_r29--; - if (var_r29 < 1) break; + if (var_r29 < 1) + break; } } } -s32 fn_1_DA64(f32 arg8) { - M438MapStruct3* var_r28; +s32 fn_1_DA64(f32 arg8) +{ + M438MapStruct3 *var_r28; s32 var_r29; s32 var_r30; - M438MapStruct2* var_r31; + M438MapStruct2 *var_r31; float var_f31; float var_f29; var_r28 = lbl_1_bss_108C[0]->data; var_r29 = 0; var_r31 = &var_r28->unk4; - + for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { var_f31 = fn_1_E5A4(var_r31->unk8, arg8); if ((fabs(var_f31) < 12.0) && (var_r31->unk0 != 0)) { @@ -608,17 +616,18 @@ s32 fn_1_DA64(f32 arg8) { return var_r29; } -s32 fn_1_DEA0(f32 arg8) { - M438MapStruct3* var_r28; +s32 fn_1_DEA0(f32 arg8) +{ + M438MapStruct3 *var_r28; s32 var_r29; s32 var_r30; - M438MapStruct2* var_r31; + M438MapStruct2 *var_r31; f32 var_f31; var_r28 = lbl_1_bss_108C[0]->data; var_r29 = 0; var_r31 = &var_r28->unk4; - + for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { var_f31 = fn_1_E5A4(var_r31->unk8, arg8); if ((fabs(var_f31) < 8.0) && (var_r31->unk0 != 0)) { @@ -629,7 +638,8 @@ s32 fn_1_DEA0(f32 arg8) { return var_r29; } -f32 fn_1_DF70(f32 arg8, f32 arg9) { +f32 fn_1_DF70(f32 arg8, f32 arg9) +{ f32 temp_f30; f32 var_f31; @@ -637,13 +647,16 @@ f32 fn_1_DF70(f32 arg8, f32 arg9) { var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI); if (var_f31 < 0.0f) { var_f31 += temp_f30; - } else if (var_f31 >= temp_f30) { + + } + else if (var_f31 >= temp_f30) { var_f31 -= temp_f30; } return var_f31; } -void fn_1_E034(Mtx arg0, Vec* arg1) { +void fn_1_E034(Mtx arg0, Vec *arg1) +{ f32 var_f26; f32 temp_f25; @@ -659,7 +672,8 @@ void fn_1_E034(Mtx arg0, Vec* arg1) { arg1->y = fn_1_DF70(var_f26, temp_f25); } -f32 fn_1_E488(f32 arg8, f32 arg9, f32 argA) { +f32 fn_1_E488(f32 arg8, f32 arg9, f32 argA) +{ f32 var_f31; var_f31 = fmodf((arg9 - arg8), 360.0); @@ -676,7 +690,8 @@ f32 fn_1_E488(f32 arg8, f32 arg9, f32 argA) { return var_f31; } -f32 fn_1_E5A4(f32 arg8, f32 arg9) { +f32 fn_1_E5A4(f32 arg8, f32 arg9) +{ f32 var_f31; var_f31 = fmodf((arg9 - arg8), 360.0); diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index d7653b96..db82808e 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -1276,7 +1276,7 @@ void fn_1_57B4(unkStruct6 *arg0) var_r31->unkB8.z *= 0.5f; } } - PSMTXScale(sp14, var_r31->unk88.x, var_r31->unk88.y, var_r31->unk88.z); + MTXScale(sp14, var_r31->unk88.x, var_r31->unk88.y, var_r31->unk88.z); mtxTransCat(sp14, -var_r31->unk7C.x, -var_r31->unk7C.y, -var_r31->unk7C.z); mtxRotCat(sp14, var_r31->unkA0.x, var_r31->unkA0.y, var_r31->unkA0.z); mtxTransCat(sp14, var_r31->unk94.x + var_r31->unk7C.x, var_r31->unk94.y + var_r31->unk7C.y, var_r31->unk94.z + var_r31->unk7C.z); @@ -1288,14 +1288,14 @@ void fn_1_57B4(unkStruct6 *arg0) else { var_r29 = var_r31->unk18[var_r28]; } - PSMTXMultVec(sp14, &temp_r26[var_r29], &sp8); + MTXMultVec(sp14, &temp_r26[var_r29], &sp8); arg0->unkC[var_r29].x = sp8.x; arg0->unkC[var_r29].y = sp8.y; arg0->unkC[var_r29].z = sp8.z; } if ((arg0->unk2 & 2) != 0) { var_r29 = var_r31->unk1E; - PSMTXMultVec(sp14, &temp_r26[var_r29], &sp8); + MTXMultVec(sp14, &temp_r26[var_r29], &sp8); arg0->unkC[var_r29].x = sp8.x; arg0->unkC[var_r29].y = sp8.y; arg0->unkC[var_r29].z = sp8.z; @@ -1359,7 +1359,7 @@ void fn_1_5C2C(s16 arg0, HsfObject *arg1, unkStruct6 *arg2, u16 arg3) var_r22 = NULL; } var_r25 = &arg1->data.base; - PSMTXScale(sp68, var_r25->scale.x, var_r25->scale.y, var_r25->scale.z); + MTXScale(sp68, var_r25->scale.x, var_r25->scale.y, var_r25->scale.z); mtxRotCat(sp68, var_r25->rot.x, var_r25->rot.y, var_r25->rot.z); mtxTransCat(sp68, var_r25->pos.x, var_r25->pos.y, var_r25->pos.z); @@ -1375,7 +1375,7 @@ void fn_1_5C2C(s16 arg0, HsfObject *arg1, unkStruct6 *arg2, u16 arg3) var_r27 = arg2->unk24[var_r30].unk18[var_r28]; var_r23 = arg2->unk24[var_r30].unk0[var_r28].unk0; } - PSMTXMultVec(sp68, &((Vec *)(arg1->data.vertex->data))[var_r23], &sp38); + MTXMultVec(sp68, &((Vec *)(arg1->data.vertex->data))[var_r23], &sp38); arg2->unkC[var_r27] = sp38; sp44[var_r28] = arg2->unkC[var_r27]; arg2->unk14[var_r27] = arg2->unk18[var_r23]; @@ -1860,7 +1860,7 @@ void fn_1_806C(ModelData *arg0, Mtx arg1) temp_r27(temp_r31); } GXLoadPosMtxImm(arg1, 0); - PSMTXInvXpose(arg1, sp14); + MTXInvXpose(arg1, sp14); GXLoadNrmMtxImm(sp14, 0); fn_1_8AC4(arg1); sp10.r = (temp_r31->unk28->unkB[0] * arg0->unk_58.x); @@ -1974,7 +1974,7 @@ void fn_1_8470(unkStruct12 *arg0, unkStruct13 *arg1) if (var_f31 < 0.1) { var_f31 = 0.1f; } - PSMTXCopy(lbl_1_bss_30, sp10); + MTXCopy(lbl_1_bss_30, sp10); mtxScaleCat(sp10, var_f31, var_f31, var_f31); GXLoadTexMtxImm(sp10, 0x24, GX_MTX2x4); var_r31++; @@ -2050,31 +2050,31 @@ void fn_1_8AC4(Mtx arg0) var_r29 = &Hu3DGlobalLight[0]; sp34 = var_r29->unk_28; if ((var_r29->unk_00 & 0x8000) != 0) { - PSMTXMultVecSR(Hu3DCameraMtx, &sp34, &sp34); + MTXMultVecSR(Hu3DCameraMtx, &sp34, &sp34); } var_f30 = VECDotProduct(&sp34, &sp10); var_f30 *= 10000.0f; OSf32tos16(&var_f30, &temp_r31); if (temp_r31 == -0x2710) { - PSMTXScale(lbl_1_bss_30, 0.0f, 0.0f, 0.0f); + MTXScale(lbl_1_bss_30, 0.0f, 0.0f, 0.0f); return; } C_VECHalfAngle(&sp34, &sp10, &sp28); sp28.x = -sp28.x; sp28.y = -sp28.y; sp28.z = -sp28.z; - PSMTXInvXpose(arg0, sp70); + MTXInvXpose(arg0, sp70); if (temp_r31 == 0x2710) { - PSMTXIdentity(sp40); + MTXIdentity(sp40); } else { VECCrossProduct(&sp28, &sp10, &sp1C); var_f29 = acosf(VECDotProduct(&sp10, &sp28)); - PSMTXRotAxisRad(sp40, &sp1C, var_f29); + MTXRotAxisRad(sp40, &sp1C, var_f29); } - PSMTXConcat(sp40, sp70, spA0); - PSMTXTrans(sp40, 0.5f, 0.5f, 0.0f); - PSMTXConcat(sp40, spA0, lbl_1_bss_30); + MTXConcat(sp40, sp70, spA0); + MTXTrans(sp40, 0.5f, 0.5f, 0.0f); + MTXConcat(sp40, spA0, lbl_1_bss_30); } void fn_1_8D1C(void) @@ -2097,7 +2097,7 @@ void fn_1_8D1C(void) if (var_r30 == 5) { C_MTXOrtho(sp60, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 10.0f); GXSetProjection(sp60, GX_ORTHOGRAPHIC); - PSMTXIdentity(sp30); + MTXIdentity(sp30); GXLoadPosMtxImm(sp30, 0); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); @@ -2491,9 +2491,9 @@ void fn_1_9C04(ModelData *arg0, Mtx arg1) } else { fn_1_A328(&temp_r30->unk2C, &sp38, &var_r29->unk48, 4); - PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk44); - PSMTXConcat(sp128, spC8, sp98); - PSMTXMultVecArray(sp98, &sp38, &sp8, 4); + MTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk44); + MTXConcat(sp128, spC8, sp98); + MTXMultVecArray(sp98, &sp38, &sp8, 4); VECAdd(&sp8, &var_r29->unk54, var_r31++); VECAdd(&sp14, &var_r29->unk54, var_r31++); VECAdd(&sp20, &var_r29->unk54, var_r31++); diff --git a/src/REL/m440Dll/object.c b/src/REL/m440Dll/object.c index 00d59251..5eb6cb5c 100644 --- a/src/REL/m440Dll/object.c +++ b/src/REL/m440Dll/object.c @@ -10,12 +10,10 @@ #include "string.h" #include "version.h" - #ifdef __MWERKS__ #include "game/audio.h" #endif - // bss omObjData *lbl_1_bss_C0[4]; s16 lbl_1_bss_B8[4]; @@ -1025,7 +1023,7 @@ u8 fn_1_E8AC(omObjData *arg0, unkObjStruct *arg1) arg1->unk24.z = (1050.0 * sind(var_f31)); } arg1->unk30.y = 0.0f; - PSMTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68); + MTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68); arg1->unk60++; if (lbl_1_data_1D8 == 0) { fn_1_18E0(); @@ -1044,7 +1042,7 @@ u8 fn_1_E8AC(omObjData *arg0, unkObjStruct *arg1) arg1->unk18.y = fn_1_93D0(lbl_1_bss_78.y, 1400.0f + lbl_1_bss_78.y, 0.0f, var_f31); arg1->unk18.z = lbl_1_bss_78.z + (var_f31 * (arg1->unk24.z - lbl_1_bss_78.x)); arg1->unk30.x = 180.0f * var_f31; - PSMTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68); + MTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68); break; case 3: fn_1_F4D4(arg1, 15, 8); diff --git a/src/REL/m441Dll/main.c b/src/REL/m441Dll/main.c index e6143406..bc0d7e77 100644 --- a/src/REL/m441Dll/main.c +++ b/src/REL/m441Dll/main.c @@ -403,9 +403,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; diff --git a/src/REL/m442Dll/main.c b/src/REL/m442Dll/main.c index 28beaccd..53dd649a 100644 --- a/src/REL/m442Dll/main.c +++ b/src/REL/m442Dll/main.c @@ -1489,7 +1489,7 @@ void fn_1_485C(ModelData *model, Mtx mtx) var_r29 = Hu3DCamera; C_MTXOrtho(sp100, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 100.0f); GXSetProjection(sp100, GX_ORTHOGRAPHIC); - PSMTXIdentity(spD0); + MTXIdentity(spD0); GXLoadPosMtxImm(spD0, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -1529,7 +1529,7 @@ void fn_1_485C(ModelData *model, Mtx mtx) GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); C_MTXPerspective(sp40, var_r29->fov, var_r29->aspect, var_r29->near, var_r29->far); GXSetProjection(sp40, GX_PERSPECTIVE); - PSMTXInverse(mtx, spA0); + MTXInverse(mtx, spA0); spA0[0][3] = spA0[1][3] = spA0[2][3] = 0.0f; PSMTXReorder(spA0, sp70); PSMTXROMultVecArray(sp70, &lbl_1_data_1C0[0], &sp10, 4); @@ -1585,7 +1585,7 @@ void fn_1_54C8(ModelData *model, Mtx mtx) fn_1_8520(&lbl_1_bss_C05C[1], 0); C_MTXOrtho(sp5C, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 100.0f); GXSetProjection(sp5C, GX_ORTHOGRAPHIC); - PSMTXIdentity(sp2C); + MTXIdentity(sp2C); GXLoadPosMtxImm(sp2C, 0); GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); GXSetNumTexGens(2); @@ -1734,9 +1734,9 @@ void fn_1_5EDC(ModelData *model, float (*mtx)[4]) s32 var_r30; var_r31 = model->unk_120; - PSMTXInverse(mtx, spC); + MTXInverse(mtx, spC); spC[0][3] = spC[1][3] = spC[2][3] = 0.0f; - PSMTXConcat(mtx, &spC[0], mtx); + MTXConcat(mtx, &spC[0], mtx); GXLoadPosMtxImm(mtx, 0); GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); GXSetNumTexGens(1); diff --git a/src/REL/m443Dll/main.c b/src/REL/m443Dll/main.c index 5b22d7c6..acf8f914 100644 --- a/src/REL/m443Dll/main.c +++ b/src/REL/m443Dll/main.c @@ -495,15 +495,15 @@ void fn_1_1D8C(omObjData *object) lbl_1_bss_4 = HuAudSStreamPlay(0xB); } var_f31 = (float)object->work[0] / lbl_1_data_F0[object->work[1]]; - PSVECSubtract(&lbl_1_data_60[object->work[1] + 1], &lbl_1_data_60[object->work[1]], &sp8); - PSVECScale(&sp8, &sp8, var_f31); - PSVECAdd(&lbl_1_data_60[object->work[1]], &sp8, &sp8); + VECSubtract(&lbl_1_data_60[object->work[1] + 1], &lbl_1_data_60[object->work[1]], &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&lbl_1_data_60[object->work[1]], &sp8, &sp8); Center.x = sp8.x; Center.y = sp8.y; Center.z = sp8.z; - PSVECSubtract(&lbl_1_data_A8[object->work[1] + 1], &lbl_1_data_A8[object->work[1]], &sp8); - PSVECScale(&sp8, &sp8, var_f31); - PSVECAdd(&lbl_1_data_A8[object->work[1]], &sp8, &sp8); + VECSubtract(&lbl_1_data_A8[object->work[1] + 1], &lbl_1_data_A8[object->work[1]], &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&lbl_1_data_A8[object->work[1]], &sp8, &sp8); CRot.x = sp8.x; CRot.y = sp8.y; CRot.z = 0.0f; @@ -922,7 +922,7 @@ void fn_1_3D78(ModelData *arg0, Mtx arg1) { Mtx spC; - PSMTXIdentity(spC); + MTXIdentity(spC); GXLoadPosMtxImm(spC, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -1094,13 +1094,13 @@ void fn_1_4444(Vec *arg0, Vec *arg1) Vec sp10; float var_f30; - PSVECSubtract(arg1, arg0, &sp10); + VECSubtract(arg1, arg0, &sp10); Center = *arg1; var_f30 = (sp10.x * sp10.x) + (sp10.z * sp10.z); CRot.x = atan2d(sp10.y, sqrtf(var_f30)); CRot.y = atan2d(-sp10.x, -sp10.z); CRot.z = 0.0f; - CZoom = PSVECMag(&sp10); + CZoom = VECMag(&sp10); } void fn_1_464C(float arg8, float arg9, float argA, float argB, float argC, float argD) @@ -1116,13 +1116,13 @@ void fn_1_464C(float arg8, float arg9, float argA, float argB, float argC, float sp30.x = argB; sp30.y = argC; sp30.z = argD; - PSVECSubtract(&sp30, &sp3C, &sp24); + VECSubtract(&sp30, &sp3C, &sp24); Center = sp30; var_f30 = (sp24.x * sp24.x) + (sp24.z * sp24.z); CRot.x = atan2d(sp24.y, sqrtf(var_f30)); CRot.y = atan2d(-sp24.x, -sp24.z); CRot.z = 0.0f; - CZoom = PSVECMag(&sp24); + CZoom = VECMag(&sp24); } float fn_1_488C(float arg8, float arg9, float argA) diff --git a/src/REL/m443Dll/map.c b/src/REL/m443Dll/map.c index 48aef505..d79414dc 100644 --- a/src/REL/m443Dll/map.c +++ b/src/REL/m443Dll/map.c @@ -132,11 +132,11 @@ void fn_1_4D14(omObjData *object) var_r30 = fn_1_40AC(lbl_1_data_240[var_r29 + 1]); mtxRot(sp5C, var_r30->unk_28.x, var_r30->unk_28.y, 0.0f); sp8.z = var_r30->unk_34; - PSMTXMultVec(sp5C, &sp8, &sp14); - PSVECAdd(&var_r30->unk_1C, &sp14, &sp20); + MTXMultVec(sp5C, &sp8, &sp14); + VECAdd(&var_r30->unk_1C, &sp14, &sp20); sp2C[var_r29].y += var_f31; - PSMTXMultVec(sp5C, &sp2C[var_r29], &sp14); - PSVECAdd(&sp20, &sp14, &sp20); + MTXMultVec(sp5C, &sp2C[var_r29], &sp14); + VECAdd(&sp20, &sp14, &sp20); Hu3DModelPosSetV(object->model[var_r29 + 9], &sp20); Hu3DModelRotSet(object->model[var_r29 + 9], var_r30->unk_28.x, var_r30->unk_28.y, 0.0f); Hu3DModelScaleSet(object->model[var_r29 + 9], 0.15f, 0.15f, 0.15f); diff --git a/src/REL/m443Dll/player.c b/src/REL/m443Dll/player.c index ee7e5237..fb293d09 100644 --- a/src/REL/m443Dll/player.c +++ b/src/REL/m443Dll/player.c @@ -382,7 +382,7 @@ void fn_1_5BD4(omObjData *object) break; } fn_1_7340(object); - PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); fn_1_7130(object); fn_1_69B4(object); @@ -428,11 +428,11 @@ void fn_1_6458(omObjData *object) var_r29 = 1; } fn_1_7340(object); - PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); fn_1_7130(object); fn_1_69B4(object); temp_r31->unk100->unk_1C = temp_r31->unkDC; - PSVECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C); + VECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C); if ((fn_1_42E4() == 3) && (var_r29 != 0)) { fn_1_43AC(object->work[0]); temp_r31->unk108 = 0; @@ -451,11 +451,11 @@ void fn_1_6674(omObjData *object) temp_r31->unk14 = 0; temp_r31->unk18 = 0.0f; fn_1_7340(object); - PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); fn_1_7130(object); fn_1_69B4(object); temp_r31->unk100->unk_1C = temp_r31->unkDC; - PSVECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C); + VECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C); if (fn_1_42E4() == 5) { temp_r31->unk1C = 0; temp_r31->unk34 = 0; @@ -468,7 +468,7 @@ void fn_1_6750(omObjData *object) M443DllWorkStruct *temp_r31; temp_r31 = object->data; - PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); fn_1_7130(object); fn_1_69B4(object); switch (temp_r31->unk34) { @@ -673,9 +673,9 @@ void fn_1_7130(omObjData *object) for (var_r28 = 0; var_r28 < 4; var_r28++) { if (var_r29 != var_r28) { temp_r30 = lbl_1_bss_90[var_r28]->data; - PSVECSubtract(&temp_r31->unkC4, &temp_r30->unkC4, &sp8); + VECSubtract(&temp_r31->unkC4, &temp_r30->unkC4, &sp8); sp8.y = 0.0f; - var_f31 = PSVECMag(&sp8); + var_f31 = VECMag(&sp8); if (var_f31 < (temp_r31->unkC0 + temp_r30->unkC0)) { if (var_f31 > 0.0f) { var_f31 = 0.5f * ((temp_r31->unkC0 + temp_r30->unkC0) - var_f31); @@ -685,10 +685,10 @@ void fn_1_7130(omObjData *object) sp8.x = (frandmod(0x3E8) - 0x1F4); sp8.z = (frandmod(0x3E8) - 0x1F4); } - PSVECNormalize(&sp8, &sp8); - PSVECScale(&sp8, &sp8, var_f31); - PSVECAdd(&temp_r31->unkC4, &sp8, &temp_r31->unkC4); - PSVECSubtract(&temp_r30->unkC4, &sp8, &temp_r30->unkC4); + VECNormalize(&sp8, &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&temp_r31->unkC4, &sp8, &temp_r31->unkC4); + VECSubtract(&temp_r30->unkC4, &sp8, &temp_r30->unkC4); } } } @@ -1139,7 +1139,7 @@ void fn_1_8E34(s32 arg0) for (var_r29 = 0; var_r29 < temp_r30->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.z -= 0.3f; var_r31->unk2C += 2.0f; var_r31->unk40.a *= 0.98f; diff --git a/src/REL/m447dll/block.c b/src/REL/m447dll/block.c index fcd1280b..939c795b 100755 --- a/src/REL/m447dll/block.c +++ b/src/REL/m447dll/block.c @@ -161,13 +161,13 @@ void fn_1_9374(UnkM447Struct_01 *arg0) Mtx sp8; temp_r30 = &Hu3DData[arg0->unk58[arg0->unk00]]; - PSMTXIdentity(temp_r30->unk_F0); - PSMTXRotRad(sp8, 'x', MTXDegToRad(arg0->unk1C.x)); - PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); - PSMTXRotRad(sp8, 'y', MTXDegToRad(arg0->unk1C.y)); - PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); - PSMTXRotRad(sp8, 'z', MTXDegToRad(arg0->unk1C.z)); - PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); + MTXIdentity(temp_r30->unk_F0); + MTXRotRad(sp8, 'x', MTXDegToRad(arg0->unk1C.x)); + MTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); + MTXRotRad(sp8, 'y', MTXDegToRad(arg0->unk1C.y)); + MTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); + MTXRotRad(sp8, 'z', MTXDegToRad(arg0->unk1C.z)); + MTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); Hu3DModelPosSet(arg0->unk58[arg0->unk00], arg0->unk10.x, arg0->unk10.y, arg0->unk10.z); Hu3DModelPosSet(arg0->unk58[20], arg0->unk10.x, arg0->unk10.y - 100.0f, arg0->unk10.z); Hu3DModelPosSet(arg0->unk58[21], arg0->unk10.x, arg0->unk10.y, arg0->unk10.z + 120.0f * arg0->unk54); diff --git a/src/REL/m448Dll/main.c b/src/REL/m448Dll/main.c index 1ee1eb09..0fccc340 100755 --- a/src/REL/m448Dll/main.c +++ b/src/REL/m448Dll/main.c @@ -201,7 +201,7 @@ void fn_1_4FC(ModelData *model, Mtx matrix) GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); C_MTXOrtho(sp98, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f); GXSetProjection(sp98, GX_ORTHOGRAPHIC); - PSMTXIdentity(spC8); + MTXIdentity(spC8); GXLoadPosMtxImm(spC8, GX_PNMTX0); GXSetNumTevStages(1); GXSetNumTexGens(1); @@ -454,8 +454,8 @@ void fn_1_1338(omObjData *arg0) sp178 = lbl_1_rodata_100; sp178.x = var_f20; sp178.z = -sp118; - PSMTXRotRad(sp184, 'y', MTXDegToRad(CRot.y)); - PSMTXMultVec(sp184, &sp178, &sp178); + MTXRotRad(sp184, 'y', MTXDegToRad(CRot.y)); + MTXMultVec(sp184, &sp178, &sp178); var_f20 = sp178.x; sp118 = -sp178.z; } diff --git a/src/REL/m449Dll/main.c b/src/REL/m449Dll/main.c index be72261b..be902879 100644 --- a/src/REL/m449Dll/main.c +++ b/src/REL/m449Dll/main.c @@ -1288,19 +1288,19 @@ void fn_1_758(omObjData *var_r29) sp124 = ((-90.175 <= lbl_1_bss_18) && (lbl_1_bss_18 <= -90.0f)) != 0 ? -90.175 : ((-90.0f <= lbl_1_bss_18) && (lbl_1_bss_18 <= -89.825) ? -89.825 : lbl_1_bss_18); - PSMTXRotRad(sp304, 0x78, 0.017453292f * (10.0f * var_r31->unk_5C)); - PSMTXRotRad(sp364, 0x7A, 0.017453292f * (10.0f * -var_r31->unk_58)); - PSMTXConcat(sp364, sp304, sp364); - PSMTXRotRad(sp304, 0x79, 0.017453292f * sp124); - PSMTXRotRad(sp334, 0x78, 0.017453292f * (15.0f * var_r31->unk_5C)); - PSMTXConcat(sp334, sp304, sp334); - PSMTXRotRad(sp304, 0x7A, 0.017453292f * (15.0f * -var_r31->unk_58)); - PSMTXConcat(sp304, sp334, sp334); + MTXRotRad(sp304, 0x78, 0.017453292f * (10.0f * var_r31->unk_5C)); + MTXRotRad(sp364, 0x7A, 0.017453292f * (10.0f * -var_r31->unk_58)); + MTXConcat(sp364, sp304, sp364); + MTXRotRad(sp304, 0x79, 0.017453292f * sp124); + MTXRotRad(sp334, 0x78, 0.017453292f * (15.0f * var_r31->unk_5C)); + MTXConcat(sp334, sp304, sp334); + MTXRotRad(sp304, 0x7A, 0.017453292f * (15.0f * -var_r31->unk_58)); + MTXConcat(sp304, sp334, sp334); Hu3DMtxRotGet(sp334, &sp2A8); sp2B4.x = var_r31->unk_60[var_r30]; sp2B4.y = var_r31->unk_70[var_r30]; sp2B4.z = var_r31->unk_80[var_r30]; - PSMTXMultVec(sp364, &sp2B4, &sp2B4); + MTXMultVec(sp364, &sp2B4, &sp2B4); Hu3DModelPosSet(var_r29->model[var_r30 + 0xC], sp2D8.x + sp2B4.x, sp2D8.y + sp2B4.y, sp2D8.z + sp2B4.z); Hu3DModelRotSet(var_r29->model[var_r30 + 0xC], 10.0f * var_r31->unk_5C, 0.0f, 10.0f * -var_r31->unk_58); Hu3DModelRotSet(var_r29->model[var_r30 + 0xC], sp2A8.x, sp2A8.y, sp2A8.z); @@ -1716,7 +1716,7 @@ void fn_1_7F94(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk2C = 50.0f; } if (var_r31->unk00_s16 < 0xF0) { - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.x *= 0.9f; var_r31->unk08.z *= 0.9f; var_r31->unk08.y *= 0.9f; diff --git a/src/REL/m453Dll/main.c b/src/REL/m453Dll/main.c index f72224c2..9db313c7 100644 --- a/src/REL/m453Dll/main.c +++ b/src/REL/m453Dll/main.c @@ -941,8 +941,8 @@ void fn_1_23E0(omObjData *object) case 4: var_r24 = fn_1_82AC(sp38); for (var_r30 = 0; var_r30 < var_r24; var_r30++) { - PSVECSubtract(&sp38[var_r30], &var_r31->unk_2C, &sp8); - sp20[var_r30] = PSVECMag(&sp8); + VECSubtract(&sp38[var_r30], &var_r31->unk_2C, &sp8); + sp20[var_r30] = VECMag(&sp8); } for (var_r30 = 0; var_r30 < (var_r24 - 1); var_r30++) { for (var_r29 = var_r30 + 1; var_r29 < var_r24; var_r29++) { @@ -1144,14 +1144,14 @@ s32 fn_1_36DC(void) for (var_r29 = var_r30 + 1; var_r29 < 4; var_r29++) { var_r27 = lbl_1_bss_3C[var_r29]->data; if (var_r27->unk_07 != 0) { - PSVECSubtract(&var_r28->unk_2C, &var_r27->unk_2C, &sp8); - var_f31 = PSVECMag(&sp8); + VECSubtract(&var_r28->unk_2C, &var_r27->unk_2C, &sp8); + var_f31 = VECMag(&sp8); if (var_f31 < 80.0f) { - PSVECNormalize(&sp8, &sp8); + VECNormalize(&sp8, &sp8); var_f30 = 0.0001f + (0.5f * (80.0f - var_f31)); - PSVECScale(&sp8, &sp8, var_f30); - PSVECAdd(&sp14[var_r30], &sp8, &sp14[var_r30]); - PSVECSubtract(&sp14[var_r29], &sp8, &sp14[var_r29]); + VECScale(&sp8, &sp8, var_f30); + VECAdd(&sp14[var_r30], &sp8, &sp14[var_r30]); + VECSubtract(&sp14[var_r29], &sp8, &sp14[var_r29]); var_r28->unk_0E++; var_r27->unk_0E++; var_r26++; @@ -1164,7 +1164,7 @@ s32 fn_1_36DC(void) var_r25 = lbl_1_bss_3C[var_r30]; var_r31 = var_r25->data; if (var_r31->unk_07 != 0) { - PSVECAdd(&var_r31->unk_2C, &sp14[var_r30], &var_r31->unk_2C); + VECAdd(&var_r31->unk_2C, &sp14[var_r30], &var_r31->unk_2C); if (var_r31->unk_2C.x > 660.0f) { var_r31->unk_2C.x = 660.0f; } @@ -1237,8 +1237,8 @@ void fn_1_3BB4(Vec *arg0, Vec *arg1) var_r30 = fn_1_844C(sp18); var_f31 = 2000.0f; for (var_r31 = 0; var_r31 < var_r30; var_r31++) { - PSVECSubtract(&sp18[var_r31], arg0, &spC); - var_f30 = PSVECMag(&spC); + VECSubtract(&sp18[var_r31], arg0, &spC); + var_f30 = VECMag(&spC); if (!(var_f30 >= var_f31)) { var_f31 = var_f30; *arg1 = sp18[var_r31]; @@ -1403,18 +1403,18 @@ void fn_1_4574(Mtx arg0, float arg8, float arg9, float argA) Mtx sp38; Mtx sp8; if (argA != 0.0f) { - PSMTXRotRad(arg0, 0x5A, 0.017453292f * argA); + MTXRotRad(arg0, 0x5A, 0.017453292f * argA); } else { - PSMTXIdentity(arg0); + MTXIdentity(arg0); } if (arg8 != 0.0f) { - PSMTXRotRad(sp38, 0x58, 0.017453292f * arg8); - PSMTXConcat(sp38, arg0, arg0); + MTXRotRad(sp38, 0x58, 0.017453292f * arg8); + MTXConcat(sp38, arg0, arg0); } if (arg9 != 0.0f) { - PSMTXRotRad(sp8, 0x59, 0.017453292f * arg9); - PSMTXConcat(sp8, arg0, arg0); + MTXRotRad(sp8, 0x59, 0.017453292f * arg9); + MTXConcat(sp8, arg0, arg0); } } // TODO figue out type of arg0 @@ -1570,8 +1570,8 @@ void fn_1_5290(float *arg0, float (*arg1)[3], float (*arg2)[3], s32 arg3) arg0[0] = 0.0f; for (var_r30 = 1; var_r30 < arg3; var_r30++) { - PSVECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8); - arg0[var_r30] = arg0[var_r30 - 1] + PSVECMag(&sp8); + VECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8); + arg0[var_r30] = arg0[var_r30 - 1] + VECMag(&sp8); } for (var_r27 = 0; var_r27 < 3; var_r27++) { for (var_r30 = 0; var_r30 < arg3; var_r30++) { @@ -1630,20 +1630,7 @@ void fn_1_5670(float arg8, float *arg0, float *arg1, float (*arg2)[3], float (*a sp48[var_r30] = arg2[var_r30][var_r29]; sp8[var_r30] = arg3[var_r30][var_r29]; } - var_f30 = arg8; - var_r31 = var_f30; - var_f30 -= var_r31; - var_f31 = arg1[var_r31 + 1] - arg1[var_r31]; - var_f29 = var_f31 * var_f30; - var_f28 = sp48[var_r31] - + (var_f29 - * ((var_f29 * ((3.0f * sp8[var_r31]) + ((var_f29 * (sp8[var_r31 + 1] - sp8[var_r31])) / var_f31))) - + (((sp48[var_r31 + 1] - sp48[var_r31]) / var_f31) - (var_f31 * ((2.0f * sp8[var_r31]) + sp8[var_r31 + 1]))))); - if (var_f31 == 0.0f) { - var_f28 = sp48[var_r31]; - } - var_f27 = var_f28; - arg0[var_r29] = var_f27; + arg0[var_r29] = fn_1_513C(arg8, arg1, sp48, sp8, 3); } } diff --git a/src/REL/m453Dll/map.c b/src/REL/m453Dll/map.c index 86a363d1..6771a755 100644 --- a/src/REL/m453Dll/map.c +++ b/src/REL/m453Dll/map.c @@ -514,12 +514,12 @@ void fn_1_6EB4(omObjData *object) Mtx sp8; s32 var_r30; - PSMTXTrans(sp38, object->trans.x, object->trans.y, object->trans.z); + MTXTrans(sp38, object->trans.x, object->trans.y, object->trans.z); mtxRot(sp8, object->rot.x, object->rot.y, object->rot.z); - PSMTXConcat(sp38, sp8, sp38); + MTXConcat(sp38, sp8, sp38); for (var_r30 = 0; var_r30 < 6; var_r30++) { - PSMTXTrans(sp8, lbl_1_data_A88[var_r30].x, lbl_1_data_A88[var_r30].y, lbl_1_data_A88[var_r30].z); - PSMTXConcat(sp38, sp8, sp8); + MTXTrans(sp8, lbl_1_data_A88[var_r30].x, lbl_1_data_A88[var_r30].y, lbl_1_data_A88[var_r30].z); + MTXConcat(sp38, sp8, sp8); Hu3DModelPosSet(object->model[var_r30 + 1], sp8[0][3], sp8[1][3], sp8[2][3]); Hu3DModelRotSet(object->model[var_r30 + 1], object->rot.x, object->rot.y, object->rot.z); } @@ -685,12 +685,12 @@ void fn_1_73C4(omObjData *object) break; } } - PSMTXTrans(sp8, object->trans.x, object->trans.y, object->trans.z); + MTXTrans(sp8, object->trans.x, object->trans.y, object->trans.z); mtxRot(sp38, object->rot.x, object->rot.y, object->rot.z); - PSMTXConcat(sp8, sp38, sp8); + MTXConcat(sp8, sp38, sp8); for (var_r28 = 0; var_r28 < 6; var_r28++) { - PSMTXTrans(sp38, lbl_1_data_A88[var_r28].x, lbl_1_data_A88[var_r28].y, lbl_1_data_A88[var_r28].z); - PSMTXConcat(sp8, sp38, sp38); + MTXTrans(sp38, lbl_1_data_A88[var_r28].x, lbl_1_data_A88[var_r28].y, lbl_1_data_A88[var_r28].z); + MTXConcat(sp8, sp38, sp38); Hu3DModelPosSet(object->model[var_r28 + 1], sp38[0][3], sp38[1][3], sp38[2][3]); Hu3DModelRotSet(object->model[var_r28 + 1], object->rot.x, object->rot.y, object->rot.z); } @@ -825,16 +825,16 @@ s32 fn_1_7CE0(float arg8, float arg9, Vec *arg0) var_r28 -= 6; fn_1_7BB0(var_r27, &sp10); sp10 = lbl_1_data_A88[var_r27]; - PSMTXTrans(sp4C, var_r31->trans.x, var_r31->trans.y, var_r31->trans.z); + MTXTrans(sp4C, var_r31->trans.x, var_r31->trans.y, var_r31->trans.z); mtxRot(sp1C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - PSMTXConcat(sp4C, sp1C, sp4C); - PSMTXTrans(sp1C, sp10.x, sp10.y, sp10.z); - PSMTXConcat(sp4C, sp1C, sp4C); + MTXConcat(sp4C, sp1C, sp4C); + MTXTrans(sp1C, sp10.x, sp10.y, sp10.z); + MTXConcat(sp4C, sp1C, sp4C); var_r30 = lbl_1_data_AFC[var_r28]; var_r23 = lbl_1_data_B14[var_r28]; for (var_r24 = 0; var_r24 < var_r23; var_r24++) { - PSMTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z); - PSMTXConcat(sp4C, sp1C, sp1C); + MTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z); + MTXConcat(sp4C, sp1C, sp1C); arg0->x = sp1C[0][3]; arg0->y = sp1C[1][3]; arg0->z = sp1C[2][3]; @@ -930,17 +930,17 @@ s32 fn_1_844C(Vec *arg0) var_r30 = lbl_1_bss_A4[lbl_1_bss_9C]; var_r27 = var_r30->data; var_r23 = fn_1_8250(var_r27, sp8); - PSMTXTrans(sp50, var_r30->trans.x, var_r30->trans.y, var_r30->trans.z); + MTXTrans(sp50, var_r30->trans.x, var_r30->trans.y, var_r30->trans.z); mtxRot(sp20, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); - PSMTXConcat(sp50, sp20, sp50); + MTXConcat(sp50, sp20, sp50); for (var_r29 = 0; var_r29 < var_r23; var_r29++) { fn_1_7BB0(sp8[var_r29], arg0); var_r26 = fn_1_7BFC(var_r27, sp8[var_r29]) - 6; arg0->x += lbl_1_data_B2C[var_r26].x; arg0->y += lbl_1_data_B2C[var_r26].y; arg0->z += lbl_1_data_B2C[var_r26].z; - PSMTXTrans(sp20, arg0->x, arg0->y, arg0->z); - PSMTXConcat(sp50, sp20, sp20); + MTXTrans(sp20, arg0->x, arg0->y, arg0->z); + MTXConcat(sp50, sp20, sp20); arg0->x = sp20[0][3]; arg0->y = sp20[1][3]; arg0->z = sp20[2][3]; @@ -991,7 +991,7 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1) if ((var_r28->rot.x > 0.0f) || (var_r28->rot.x <= -90.0f)) { return 0; } - PSVECSubtract(arg0, &var_r28->trans, &sp3C); + VECSubtract(arg0, &var_r28->trans, &sp3C); sp3C.z = sp3C.z / cosd(var_r28->rot.x); var_f24 = arg0->z; var_f25 = arg0->x; @@ -1002,29 +1002,29 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1) } var_r24 -= 6; sp48 = lbl_1_data_A88[var_r19]; - PSVECSubtract(&sp3C, &sp48, &sp3C); + VECSubtract(&sp3C, &sp48, &sp3C); var_r30 = lbl_1_data_B74[var_r24][0]; var_r29 = lbl_1_data_B74[var_r24][1]; var_r21 = lbl_1_data_BA4[var_r24]; for (var_r31 = 0; var_r31 < var_r21; var_r31++) { var_r27 = (var_r31 + 1) % var_r21; - PSVECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24); - PSVECSubtract(&sp3C, var_r30 + var_r27, &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24); + VECSubtract(&sp3C, var_r30 + var_r27, &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (!(spC.y < 0.0f)) { - PSVECSubtract(var_r29 + var_r27, var_r30 + var_r27, &sp24); - PSVECSubtract(&sp3C, var_r29 + var_r27, &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(var_r29 + var_r27, var_r30 + var_r27, &sp24); + VECSubtract(&sp3C, var_r29 + var_r27, &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (!(spC.y < 0.0f)) { - PSVECSubtract(var_r29 + var_r31, var_r29 + var_r27, &sp24); - PSVECSubtract(&sp3C, var_r29 + var_r31, &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(var_r29 + var_r31, var_r29 + var_r27, &sp24); + VECSubtract(&sp3C, var_r29 + var_r31, &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (!(spC.y < 0.0f)) { - PSVECSubtract(var_r30 + var_r31, var_r29 + var_r31, &sp24); - PSVECSubtract(&sp3C, var_r30 + var_r31, &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(var_r30 + var_r31, var_r29 + var_r31, &sp24); + VECSubtract(&sp3C, var_r30 + var_r31, &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (!(spC.y < 0.0f)) { - PSVECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24); + VECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24); var_f30 = (((sp3C.z * sp24.z) + (((sp3C.y * sp24.y) + ((sp3C.x * sp24.x) - (sp24.x * var_r30[var_r31].x))) - (sp24.y * var_r30[var_r31].y))) - (sp24.z * var_r30[var_r31].z)) @@ -1032,9 +1032,9 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1) sp30.x = var_r30[var_r31].x + (var_f30 * sp24.x); sp30.y = var_r30[var_r31].y + (var_f30 * sp24.y); sp30.z = var_r30[var_r31].z + (var_f30 * sp24.z); - PSVECSubtract(&sp30, &sp3C, &spC); - var_f28 = PSVECMag(&spC); - PSVECSubtract(var_r29 + var_r27, var_r29 + var_r31, &sp18); + VECSubtract(&sp30, &sp3C, &spC); + var_f28 = VECMag(&spC); + VECSubtract(var_r29 + var_r27, var_r29 + var_r31, &sp18); var_f29 = (((sp3C.z * sp18.z) + (((sp3C.y * sp18.y) + ((sp3C.x * sp18.x) - (sp18.x * var_r29[var_r31].x))) - (sp18.y * var_r29[var_r31].y))) - (sp18.z * var_r29[var_r31].z)) @@ -1042,8 +1042,8 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1) sp30.x = var_r29[var_r31].x + (var_f29 * sp18.x); sp30.y = var_r29[var_r31].y + (var_f29 * sp18.y); sp30.z = var_r29[var_r31].z + (var_f29 * sp18.z); - PSVECSubtract(&sp30, &sp3C, &spC); - var_f27 = PSVECMag(&spC); + VECSubtract(&sp30, &sp3C, &spC); + var_f27 = VECMag(&spC); if (var_f28 == 0.0f) { var_f31 = var_f30; } diff --git a/src/REL/m455Dll/main.c b/src/REL/m455Dll/main.c index fa1c4b5b..667d1084 100644 --- a/src/REL/m455Dll/main.c +++ b/src/REL/m455Dll/main.c @@ -67,7 +67,7 @@ void ObjectSetup(void) lbl_1_bss_8.x = lbl_1_data_44.x - lbl_1_data_38.x; lbl_1_bss_8.y = lbl_1_data_44.y - lbl_1_data_38.y; lbl_1_bss_8.z = lbl_1_data_44.z - lbl_1_data_38.z; - PSVECNormalize(&lbl_1_bss_8, &lbl_1_bss_8); + VECNormalize(&lbl_1_bss_8, &lbl_1_bss_8); light = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50); Hu3DGLightInfinitytSet(light); Hu3DGLightStaticSet(light, 1); diff --git a/src/REL/m456Dll/main.c b/src/REL/m456Dll/main.c index 9c760c47..97e8ffb5 100644 --- a/src/REL/m456Dll/main.c +++ b/src/REL/m456Dll/main.c @@ -146,7 +146,7 @@ void ObjectSetup(void) lbl_1_bss_8.x = lbl_1_data_44.x - lbl_1_data_38.x; lbl_1_bss_8.y = lbl_1_data_44.y - lbl_1_data_38.y; lbl_1_bss_8.z = lbl_1_data_44.z - lbl_1_data_38.z; - PSVECNormalize(&lbl_1_bss_8, &lbl_1_bss_8); + VECNormalize(&lbl_1_bss_8, &lbl_1_bss_8); var_r29 = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50); Hu3DGLightInfinitytSet(var_r29); Hu3DGLightStaticSet(var_r29, 1); @@ -714,7 +714,7 @@ void fn_1_1304(omObjData *var_r30) var_r28 = 0x40000001; if ((fn_1_3B0() == 5) && (var_r31->unk_00_field3 == 0) && (lbl_1_bss_64 == 1)) { var_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - PSVECSubtract(&var_r25[*lbl_1_bss_70]->trans, &var_r30->trans, &sp8); + VECSubtract(&var_r25[*lbl_1_bss_70]->trans, &var_r30->trans, &sp8); var_r30->rot.y = fn_1_2090(var_r30->rot.y, atan2d(sp8.x, sp8.z), 0.1f); } if (fn_1_3B0() == 0xB) { diff --git a/src/REL/m458Dll/main.c b/src/REL/m458Dll/main.c index f7242c46..3b261cd0 100644 --- a/src/REL/m458Dll/main.c +++ b/src/REL/m458Dll/main.c @@ -329,8 +329,8 @@ void fn_1_4C8(omObjData *object) Vec sp1B0 = { 0.0f, 0.0f, 0.0f }; sp1B0.x = var_f31; sp1B0.z = var_f30; - PSMTXRotRad(sp1E0, 0x79, 0.017453292f * CRot.y); - PSMTXMultVec(sp1E0, &sp1B0, &sp1B0); + MTXRotRad(sp1E0, 0x79, 0.017453292f * CRot.y); + MTXMultVec(sp1E0, &sp1B0, &sp1B0); var_f31 = sp1B0.x; var_f30 = sp1B0.z; } diff --git a/src/REL/m460Dll/main.c b/src/REL/m460Dll/main.c index 123f1c3e..52ca989b 100644 --- a/src/REL/m460Dll/main.c +++ b/src/REL/m460Dll/main.c @@ -153,7 +153,7 @@ void ObjectSetup(void) sp8.x = sp8.z = 0.0f; sp8.y = lbl_1_data_18.z; mtxRot(sp2C, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); - PSMTXMultVec(sp2C, &sp8, &lbl_1_data_28); + MTXMultVec(sp2C, &sp8, &lbl_1_data_28); Hu3DGLightPosAimSetV(lbl_1_bss_1A[0], &lbl_1_data_28, &lbl_1_data_40); Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); lbl_1_bss_18 = lbl_1_bss_16 = lbl_1_bss_14 = lbl_1_bss_12 = lbl_1_bss_10 = -1; @@ -474,15 +474,15 @@ void fn_1_2564(omObjData *object) var_f31 *= -1.0f; } var_f31 = object->work[0] / var_f31; - PSVECSubtract(&lbl_1_data_4C[object->work[1] + var_r24], &lbl_1_data_4C[object->work[1]], &sp20); - PSVECScale(&sp20, &sp20, var_f31); - PSVECAdd(&lbl_1_data_4C[object->work[1]], &sp20, &sp20); + VECSubtract(&lbl_1_data_4C[object->work[1] + var_r24], &lbl_1_data_4C[object->work[1]], &sp20); + VECScale(&sp20, &sp20, var_f31); + VECAdd(&lbl_1_data_4C[object->work[1]], &sp20, &sp20); Center.x = sp20.x; Center.y = sp20.y; Center.z = sp20.z; - PSVECSubtract(&lbl_1_data_70[object->work[1] + var_r24], &lbl_1_data_70[object->work[1]], &sp20); - PSVECScale(&sp20, &sp20, var_f31); - PSVECAdd(&lbl_1_data_70[object->work[1]], &sp20, &sp20); + VECSubtract(&lbl_1_data_70[object->work[1] + var_r24], &lbl_1_data_70[object->work[1]], &sp20); + VECScale(&sp20, &sp20, var_f31); + VECAdd(&lbl_1_data_70[object->work[1]], &sp20, &sp20); CRot.x = sp20.x; CRot.y = sp20.y; CRot.z = 0.0f; @@ -683,8 +683,8 @@ void fn_1_3618(omObjData *var_r28) sp10[2] = var_r31->unk_44.unk_08 * var_r31->unk_40; sp10[3] = var_r31->unk_44.unk_0C * var_r31->unk_40; Hu3DCameraPerspectiveSet(var_r31->unk_3C, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18, var_f31); - Hu3DCameraViewportSet( - var_r31->unk_3C, var_r31->unk_44.unk_00 - (0.5f * sp10[2]), var_r31->unk_44.unk_04 - (0.5f * sp10[3]), sp10[2], sp10[3], 0.0f, 1.0f); + Hu3DCameraViewportSet(var_r31->unk_3C, var_r31->unk_44.unk_00 - (0.5f * sp10[2]), var_r31->unk_44.unk_04 - (0.5f * sp10[3]), sp10[2], + sp10[3], 0.0f, 1.0f); sp10[0] = var_r31->unk_44.unk_00 - (0.5f * sp10[2]); sp10[1] = var_r31->unk_44.unk_04 - (0.5f * sp10[3]); sp8[0] = var_r31->unk_44.unk_00 + (0.5f * sp10[2]); @@ -731,7 +731,7 @@ void fn_1_3BC0(ModelData *model, Mtx mtx) DCStoreRange(&lbl_1_data_B8, 4); C_MTXPerspective(spC, 41.5f, 1.2f, 100.0f, 5500.0f); GXSetProjection(spC, GX_PERSPECTIVE); - PSMTXIdentity(sp3C); + MTXIdentity(sp3C); GXLoadPosMtxImm(sp3C, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -948,12 +948,12 @@ void fn_1_4388(Vec *sp8, Vec *var_r31) float var_f30; float var_f29; - PSVECSubtract(var_r31, sp8, &sp10); + VECSubtract(var_r31, sp8, &sp10); Center = *var_r31; CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z))); CRot.y = atan2d(-sp10.x, -sp10.z); CRot.z = 0.0f; - CZoom = PSVECMag(&sp10); + CZoom = VECMag(&sp10); } void fn_1_4590(float arg8, float arg9, float argA, float argB, float argC, float argD) @@ -968,12 +968,12 @@ void fn_1_4590(float arg8, float arg9, float argA, float argB, float argC, float sp30.x = argB; sp30.y = argC; sp30.z = argD; - PSVECSubtract(&sp30, &sp3C, &sp24); + VECSubtract(&sp30, &sp3C, &sp24); Center = sp30; CRot.x = atan2d(sp24.y, sqrtf((sp24.x * sp24.x) + (sp24.z * sp24.z))); CRot.y = atan2d(-sp24.x, -sp24.z); CRot.z = 0.0f; - CZoom = PSVECMag(&sp24); + CZoom = VECMag(&sp24); } float fn_1_47D0(float arg8, float arg9, float argA) diff --git a/src/REL/m460Dll/map.c b/src/REL/m460Dll/map.c index c2fea221..609dad13 100644 --- a/src/REL/m460Dll/map.c +++ b/src/REL/m460Dll/map.c @@ -270,9 +270,9 @@ void fn_1_6C00(omObjData *object) fn_1_7DA8(object, &sp14, 1); } } - PSVECSubtract(&var_r31->unk_48, &var_r31->unk_3C, &sp8); - PSVECScale(&sp8, &sp8, 0.4f); - PSVECAdd(&var_r31->unk_3C, &sp8, &sp14); + VECSubtract(&var_r31->unk_48, &var_r31->unk_3C, &sp8); + VECScale(&sp8, &sp8, 0.4f); + VECAdd(&var_r31->unk_3C, &sp8, &sp14); sp14.y += var_r31->unk_34; Hu3DModelPosSetV(var_r31->unk_2C, &sp14); var_r31->unk_30++; @@ -366,7 +366,7 @@ void fn_1_7790(ModelData *model, Mtx mtx) DCStoreRange(&lbl_1_data_378, 4); C_MTXPerspective(sp2C, 41.5f, 1.2f, 100.0f, 5500.0f); GXSetProjection(sp2C, GX_PERSPECTIVE); - PSMTXIdentity(sp5C); + MTXIdentity(sp5C); GXLoadPosMtxImm(sp5C, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -409,7 +409,7 @@ void fn_1_7B94(s32 arg0) var_r30 = Hu3DData[arg0].unk_120; for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); switch (var_r31->unk02) { case 0: var_r31->unk2C += 1.0f; @@ -464,7 +464,7 @@ void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2) sp1C.x = 100.0f * ((0.0026f * frandmod(0x3E8)) - 1.3f); sp1C.y = 0.0f; sp1C.z = 100.0f * ((0.000100000005f * frandmod(0x3E8)) - 0.05f); - PSVECAdd(&sp1C, arg1, &var_r31->unk34); + VECAdd(&sp1C, arg1, &var_r31->unk34); var_r31->unk30 = 0.0031415902f * frandmod(0x3E8); switch (arg2) { case 0: @@ -485,7 +485,7 @@ void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2) if (frandmod(0x3E8) < 0x1F4) { sp1C.x *= -1.0f; } - PSVECAdd(&sp1C, arg1, &var_r31->unk34); + VECAdd(&sp1C, arg1, &var_r31->unk34); var_r31->unk00 = 60.0f * (0.2f + (0.0005f * frandmod(0x3E8))); var_r31->unk08.x = 1.6666667f * ((0.000100000005f * frandmod(0x3E8)) - 0.05f); var_r31->unk08.y = -1.6666667f * (0.2f + (0.0003f * frandmod(0x3E8))); diff --git a/src/REL/m460Dll/player.c b/src/REL/m460Dll/player.c index 740af4a2..ccb4b58e 100644 --- a/src/REL/m460Dll/player.c +++ b/src/REL/m460Dll/player.c @@ -218,7 +218,7 @@ void fn_1_4F6C(omObjData *object) } break; } - PSVECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); + VECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); fn_1_57D8(object); if (fn_1_414C() == 2) { var_r31->unk_2C = 0; @@ -343,7 +343,7 @@ void fn_1_5168(omObjData *object) break; } } - PSVECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); + VECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); fn_1_57D8(object); if ((fn_1_4164() == 5) && (var_r27 != 0)) { var_r31->unk_2C = 0; @@ -390,7 +390,7 @@ void fn_1_55EC(omObjData *object) fn_1_5CE0(object, 0); break; } - PSVECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); + VECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); fn_1_57D8(object); if (var_r31->unk_84 >= 0) { sp8 = var_r31->unk_60; @@ -426,15 +426,15 @@ s32 fn_1_58C8(omObjData *object, float arg8, float arg9) var_r31 = object->data; var_r30 = 0; - PSVECSubtract(&var_r31->unk_78, &var_r31->unk_60, &spC); + VECSubtract(&var_r31->unk_78, &var_r31->unk_60, &spC); spC.y = 0.0f; - var_f31 = PSVECMag(&spC); + var_f31 = VECMag(&spC); if (var_f31 < arg9) { var_f31 = 0.0f; var_r30 = 1; } else { - if (PSVECMag(&spC) >= 100.0f) { + if (VECMag(&spC) >= 100.0f) { var_f31 = 100.0f; } var_f31 = 0.2f + (0.008f * var_f31); @@ -636,12 +636,12 @@ void fn_1_61F4(omObjData *object) object->trans.z += 11.666667f; } else { - var_f31 = PSVECMag(&sp10); + var_f31 = VECMag(&sp10); if (var_f31 < 20.0f) { var_f31 = 0.0f; } else { - if (PSVECMag(&sp10) >= 100.0f) { + if (VECMag(&sp10) >= 100.0f) { var_f31 = 100.0f; } var_f31 = 0.2f + (0.008f * var_f31); diff --git a/src/REL/m461Dll/main.c b/src/REL/m461Dll/main.c index 2c18e8cd..0d20a7d3 100644 --- a/src/REL/m461Dll/main.c +++ b/src/REL/m461Dll/main.c @@ -403,9 +403,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; @@ -1186,7 +1186,8 @@ s32 lbl_1_data_128[8][5] = { s32 lbl_1_data_1C8[3] = { DATA_MAKE_NUM(DATADIR_M461, 0x02), DATA_MAKE_NUM(DATADIR_M461, 0x03), DATA_MAKE_NUM(DATADIR_M461, 0x08) }; -s32 lbl_1_data_1D4[4] = { DATA_MAKE_NUM(DATADIR_M461, 0x04), DATA_MAKE_NUM(DATADIR_M461, 0x05), DATA_MAKE_NUM(DATADIR_M461, 0x06), DATA_MAKE_NUM(DATADIR_M461, 0x07) }; +s32 lbl_1_data_1D4[4] + = { DATA_MAKE_NUM(DATADIR_M461, 0x04), DATA_MAKE_NUM(DATADIR_M461, 0x05), DATA_MAKE_NUM(DATADIR_M461, 0x06), DATA_MAKE_NUM(DATADIR_M461, 0x07) }; float lbl_1_data_1E4[3] = { 0.3f, 0.5f, 0.9f }; diff --git a/src/REL/m462Dll/main.c b/src/REL/m462Dll/main.c index 7efd0602..ff5c24f1 100755 --- a/src/REL/m462Dll/main.c +++ b/src/REL/m462Dll/main.c @@ -78,9 +78,9 @@ void fn_1_44D8(void); void fn_1_4BC4(void); void fn_1_69C0(void); void fn_1_7D40(void); -void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_594C(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_5DE4(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_545C(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_594C(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_5DE4(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_7DA0(void); s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4); @@ -93,48 +93,28 @@ s32 lbl_1_bss_3D8; StructBss340 lbl_1_bss_340[1]; StructBss70 lbl_1_bss_70[10]; StructBss70 lbl_1_bss_28; -omObjData* lbl_1_bss_24; +omObjData *lbl_1_bss_24; Vec lbl_1_bss_18; Vec lbl_1_bss_C; Vec lbl_1_bss_0; s32 lbl_1_data_0[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; -s32 lbl_1_data_20[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 79), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 22) -}; +s32 lbl_1_data_20[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 79), DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 22) }; -Vec lbl_1_data_30[] = { - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f } -}; +Vec lbl_1_data_30[] = { { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f } }; -Vec lbl_1_data_90[] = { - { -900.0f, 143.0f, -1020.0f }, - { -677.0f, 143.0f, -1020.0f }, - { 900.0f, 0.0f, -1150.0f }, - { -307.0f, 182.0f, -1575.0f } -}; +Vec lbl_1_data_90[] = { { -900.0f, 143.0f, -1020.0f }, { -677.0f, 143.0f, -1020.0f }, { 900.0f, 0.0f, -1150.0f }, { -307.0f, 182.0f, -1575.0f } }; -s32 lbl_1_data_C0[][5] = { - { 50, 80, 90, 95, 100 }, - { 5, 55, 85, 95, 100 }, - { 0, 5, 55, 90, 100 } -}; +s32 lbl_1_data_C0[][5] = { { 50, 80, 90, 95, 100 }, { 5, 55, 85, 95, 100 }, { 0, 5, 55, 90, 100 } }; float lbl_1_data_FC[] = { 0.3f, 0.5f, 0.7f, 0.9f, 1.0f }; -void ObjectSetup(void) { - Process* temp_r3; +void ObjectSetup(void) +{ + Process *temp_r3; temp_r3 = omInitObjMan(50, 0x2000); omGameSysInit(temp_r3); @@ -172,15 +152,16 @@ void ObjectSetup(void) { WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); } -void fn_1_4A0(void) { +void fn_1_4A0(void) +{ float temp_f31; float temp_f30; - void* var_r27; - StructBss340* temp_r31; - StructBss70* temp_r29; - Process* var_r25; - AnimData* var_r24; - AnimData* spC[4]; + void *var_r27; + StructBss340 *temp_r31; + StructBss70 *temp_r29; + Process *var_r25; + AnimData *var_r24; + AnimData *spC[4]; s16 var_r30; s16 var_r23; s16 sp8; @@ -292,7 +273,8 @@ void fn_1_4A0(void) { var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 12), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r27); var_r23 = var_r30; - } else { + } + else { var_r30 = Hu3DModelLink(var_r23); } temp_r29->unk00 = var_r30; @@ -389,7 +371,8 @@ void fn_1_4A0(void) { HuPrcChildCreate(fn_1_7D40, 0x1000, 0x1000, 0, HuPrcCurrentGet()); } -float fn_1_14B4(float arg0) { +float fn_1_14B4(float arg0) +{ while (arg0 >= 360.0f || arg0 < 0.0f) { if (arg0 >= 360.0f) { arg0 -= 360.0f; @@ -401,24 +384,29 @@ float fn_1_14B4(float arg0) { return arg0; } -float fn_1_1534(float arg0, float arg1) { +float fn_1_1534(float arg0, float arg1) +{ float var_f31; if (arg0 > 750.0f - arg1) { var_f31 = 750.0f; - } else if (arg0 < -(750.0f - arg1)) { + } + else if (arg0 < -(750.0f - arg1)) { var_f31 = 750.0f; - } else { + } + else { var_f31 = 750.0f; } return var_f31; } -float fn_1_15B4(float arg0, float arg1) { +float fn_1_15B4(float arg0, float arg1) +{ return fn_1_1534(arg0, arg1); } -void fn_1_1634(void) { +void fn_1_1634(void) +{ float var_f31; float temp_f30; s32 i; @@ -434,7 +422,8 @@ void fn_1_1634(void) { } } -void fn_1_16F8(void) { +void fn_1_16F8(void) +{ s32 i; for (i = 0; i < 6; i++) { @@ -442,7 +431,8 @@ void fn_1_16F8(void) { } } -void fn_1_174C(void) { +void fn_1_174C(void) +{ s32 i; for (i = 0; i < 6; i++) { @@ -450,12 +440,14 @@ void fn_1_174C(void) { } } -void fn_1_17A0(s32 arg0, s32 arg1) { +void fn_1_17A0(s32 arg0, s32 arg1) +{ s32 var_r31; if (arg1 != 0) { var_r31 = 2; - } else { + } + else { var_r31 = 4; } HuSprBankSet(lbl_1_bss_3DC, var_r31, arg0 % 10); @@ -463,13 +455,14 @@ void fn_1_17A0(s32 arg0, s32 arg1) { HuSprAttrReset(lbl_1_bss_3DC, var_r31 + 1, HUSPR_ATTR_DISPOFF); } -s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { +s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) +{ Vec sp34; Vec sp28; Vec sp1C; s32 i; - StructBss70* temp_r30; - StructBss340* var_r29; + StructBss70 *temp_r30; + StructBss340 *var_r29; if (arg3 > 10) { arg3 = 10; @@ -498,7 +491,8 @@ s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { return 0; } -s32 fn_1_1BD4(StructBss70* arg0) { +s32 fn_1_1BD4(StructBss70 *arg0) +{ float var_f31; float var_f30; s32 var_r31; @@ -525,7 +519,8 @@ s32 fn_1_1BD4(StructBss70* arg0) { return var_r31; } -void fn_1_1E10(StructBss70* arg0) { +void fn_1_1E10(StructBss70 *arg0) +{ Vec sp104; Vec spF8; Vec spEC; @@ -541,8 +536,8 @@ void fn_1_1E10(StructBss70* arg0) { float spB0; float spAC; float spA0; - StructBss70* var_r30; - StructBss70* temp_r28; + StructBss70 *var_r30; + StructBss70 *temp_r28; s32 temp_r19; s32 var_r21; s32 i; @@ -583,7 +578,8 @@ void fn_1_1E10(StructBss70* arg0) { spC0 = var_f19 - var_f26; if (spC0 > 0.0f) { spBC = -0.5f; - } else { + } + else { spBC = 0.5f; } if (ABS_INV(var_f19 - var_f26) > 180.0f) { @@ -626,13 +622,14 @@ block_end: arg0->unk14.z = spB4; } -void fn_1_2FDC(StructBss70* arg0) { +void fn_1_2FDC(StructBss70 *arg0) +{ Vec spF0; Vec spE4; Vec spD8; s32 i; - StructBss340* var_r30; - StructBss70* temp_r25; + StructBss340 *var_r30; + StructBss70 *temp_r25; float var_f31; s32 var_r23; s32 var_r20; @@ -655,12 +652,14 @@ void fn_1_2FDC(StructBss70* arg0) { var_f31 += 30.0f * frandf() - 60.0f; var_f31 = fn_1_14B4(var_f31); arg0->unk20 = var_f31; - } else if (ABS_INV(arg0->unk14.x) > 550.0f) { + } + else if (ABS_INV(arg0->unk14.x) > 550.0f) { var_f31 = fn_1_14B4(180.0 + atan2d(arg0->unk14.x, 0.0)); var_f31 += 10.0f * frandf() - 20.0f; var_f31 = fn_1_14B4(var_f31); arg0->unk20 = var_f31; - } else if (frandmod(3) != 0) { + } + else if (frandmod(3) != 0) { for (i = 0, var_r23 = 0; i < 10; i++) { if (i == arg0->unk0C) { continue; @@ -679,13 +678,15 @@ void fn_1_2FDC(StructBss70* arg0) { if (var_r23 == 1 && ABS_INV(var_r30->unk4C.x) < 650.0f) { temp_r25 = &lbl_1_bss_70[spAC[0]]; var_f31 = fn_1_14B4(atan2d(arg0->unk40 - arg0->unk14.x, arg0->unk44 - arg0->unk14.z)); - } else { + } + else { var_f31 = fn_1_14B4(180.0 + atan2d(arg0->unk14.x, arg0->unk14.z)); var_f31 += 30.0f * frandf() - 60.0f; var_f31 = fn_1_14B4(var_f31); arg0->unk20 = var_f31; } - } else { + } + else { var_f31 = 360.0f * frandf(); arg0->unk20 = var_f31; } @@ -713,15 +714,15 @@ void fn_1_2FDC(StructBss70* arg0) { var_f31 = fn_1_14B4(atan2d(arg0->unk40 - arg0->unk14.x, arg0->unk44 - arg0->unk14.z)); arg0->unk14.x += arg0->unk34 * sind(var_f31); arg0->unk14.z += arg0->unk34 * cosd(var_f31); - if (fn_1_1BD4(arg0)) { - } + if (fn_1_1BD4(arg0)) { } if (fn_1_1880(arg0->unk14.x, arg0->unk14.z, 50.0f, 10, arg0->unk0C) != 0) { arg0->unk14.x = arg0->unk24; arg0->unk14.z = arg0->unk28; arg0->unk38 = 100; arg0->unk3C = 0; } - } else { + } + else { arg0->unk38 = 100; arg0->unk3C = 0; } @@ -735,8 +736,9 @@ void fn_1_2FDC(StructBss70* arg0) { } } -void fn_1_44D8(void) { - StructBss70* temp_r31; +void fn_1_44D8(void) +{ + StructBss70 *temp_r31; float temp_f30; float var_f31; s32 i; @@ -763,7 +765,8 @@ void fn_1_44D8(void) { } } -void fn_1_4644(StructBss70* arg0) { +void fn_1_4644(StructBss70 *arg0) +{ float temp_f26; float temp_f25; float var_f27; @@ -778,7 +781,8 @@ void fn_1_4644(StructBss70* arg0) { arg0->unk20 = 90.0f; var_f27 = -700.0f + temp_f26 - 500.0f; var_f24 = 8.333333f; - } else { + } + else { arg0->unk14.x = 700.0f - temp_f26; arg0->unk20 = 270.0f; var_f27 = 700.0f - temp_f26 + 500.0f; @@ -808,7 +812,8 @@ void fn_1_4644(StructBss70* arg0) { Hu3DModelPosSet(arg0->unk00, arg0->unk14.x, 0.0f, arg0->unk14.z); } -void fn_1_4BC4(void) { +void fn_1_4BC4(void) +{ s32 spC; float sp8; float temp_f23; @@ -816,9 +821,9 @@ void fn_1_4BC4(void) { float var_f28; float var_f30; float var_f29; - StructBss70* temp_r31; - StructBss340* var_r28; - StructBss340* var_r30; + StructBss70 *temp_r31; + StructBss340 *var_r28; + StructBss340 *var_r30; s32 temp_r27; s32 temp_r24; s32 var_r26; @@ -843,7 +848,8 @@ loop_1: } } if (i > 4) { - while (TRUE); + while (TRUE) + ; } temp_r31->unk34 = 6.75f * lbl_1_data_FC[i]; temp_r31->unk38 = 0; @@ -854,8 +860,8 @@ loop_1: fn_1_4644(temp_r31); temp_r31->unk10 = 0; if (FALSE) { - default: - fn_1_2FDC(temp_r31); + default: + fn_1_2FDC(temp_r31); } Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z); Hu3DModelRotSet(temp_r31->unk00, 0.0f, temp_r31->unk20, 0.0f); @@ -869,19 +875,23 @@ loop_1: if (ABS_INV(var_r28->unk4C.z - temp_r31->unk14.z) > 250.0f) { if (temp_r31->unk14.x > 0.0f) { var_f30 = 10.0f; - } else { + } + else { var_f30 = -10.0f; } - } else { + } + else { if (var_r28->unk4C.x > temp_r31->unk14.x) { var_f30 = -10.0f; - } else { + } + else { var_f30 = 10.0f; } } if (var_f30 > 0.0f) { Hu3DModelRotSet(temp_r31->unk00, 0.0f, 90.0f, 0.0f); - } else { + } + else { Hu3DModelRotSet(temp_r31->unk00, 0.0f, 270.0f, 0.0f); } Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04[1]); @@ -911,7 +921,8 @@ loop_1: temp_r31->unk2C = fn_1_14B4(atan2d(temp_r31->unk14.x - var_r30->unk4C.x, temp_r31->unk14.z - var_r30->unk4C.z)); Hu3DMotionTimeSet(temp_r31->unk02, 0.0f); Hu3DModelAttrReset(temp_r31->unk02, HU3D_ATTR_DISPOFF); - Hu3DModelPosSet(temp_r31->unk02, var_r30->unk4C.x + var_r30->unk84 * sind(temp_r31->unk2C), temp_r31->unk14.y + 50.0f, var_r30->unk4C.z + var_r30->unk84 * cosd(temp_r31->unk2C)); + Hu3DModelPosSet(temp_r31->unk02, var_r30->unk4C.x + var_r30->unk84 * sind(temp_r31->unk2C), temp_r31->unk14.y + 50.0f, + var_r30->unk4C.z + var_r30->unk84 * cosd(temp_r31->unk2C)); i = 0; var_f29 = temp_r31->unk14.x; var_f28 = temp_r31->unk14.z; @@ -943,9 +954,10 @@ loop_1: } } -void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; - StructBss340* temp_r28; +void fn_1_545C(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + StructBss340 *temp_r28; float var_f30; float var_f31; float temp_f29; @@ -996,7 +1008,7 @@ void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix) { if (var_r31->unk14.x == 0.0f) { continue; } - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.x *= 0.95f; var_r31->unk08.z *= 0.95f; if (var_r31->unk08.y > 0.1f) { @@ -1025,9 +1037,10 @@ void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix) { } } -void fn_1_594C(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; - StructBss340* temp_r28; +void fn_1_594C(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + StructBss340 *temp_r28; float temp_f31; float temp_f30; s32 var_r27; @@ -1088,7 +1101,7 @@ void fn_1_594C(ModelData* model, ParticleData* particle, Mtx matrix) { if (var_r31->unk14.x == 0.0f || var_r31->unk24 == 0.0f) { continue; } - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); if (var_r31->unk08.y > 1.0f) { var_r31->unk08.y -= 0.3f; } @@ -1112,9 +1125,10 @@ void fn_1_594C(ModelData* model, ParticleData* particle, Mtx matrix) { } } -void fn_1_5DE4(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; - StructBss340* temp_r28; +void fn_1_5DE4(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + StructBss340 *temp_r28; float temp_f31; float temp_f30; s32 var_r27; @@ -1175,7 +1189,7 @@ void fn_1_5DE4(ModelData* model, ParticleData* particle, Mtx matrix) { if (var_r31->unk14.x == 0.0f || var_r31->unk24 == 0.0f) { continue; } - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); if (var_r31->unk08.y > 1.0f) { var_r31->unk08.y -= 0.3f; } @@ -1199,8 +1213,9 @@ void fn_1_5DE4(ModelData* model, ParticleData* particle, Mtx matrix) { } } -s8 fn_1_627C(s32 arg0, s32 arg1) { - StructBss340* temp_r31; +s8 fn_1_627C(s32 arg0, s32 arg1) +{ + StructBss340 *temp_r31; s8 var_r30; temp_r31 = &lbl_1_bss_340[arg0]; @@ -1208,8 +1223,9 @@ s8 fn_1_627C(s32 arg0, s32 arg1) { return var_r30; } -u8 fn_1_62F0(s32 arg0, s32 arg1) { - StructBss340* temp_r31; +u8 fn_1_62F0(s32 arg0, s32 arg1) +{ + StructBss340 *temp_r31; s8 var_r30; temp_r31 = &lbl_1_bss_340[arg0]; @@ -1217,8 +1233,9 @@ u8 fn_1_62F0(s32 arg0, s32 arg1) { return var_r30; } -u16 fn_1_636C(s32 arg0) { - StructBss340* temp_r31; +u16 fn_1_636C(s32 arg0) +{ + StructBss340 *temp_r31; u16 var_r30; temp_r31 = &lbl_1_bss_340[arg0]; @@ -1226,8 +1243,9 @@ u16 fn_1_636C(s32 arg0) { return var_r30; } -u16 fn_1_63B4(s32 arg0) { - StructBss340* temp_r31; +u16 fn_1_63B4(s32 arg0) +{ + StructBss340 *temp_r31; u16 var_r30; temp_r31 = &lbl_1_bss_340[arg0]; @@ -1235,11 +1253,12 @@ u16 fn_1_63B4(s32 arg0) { return var_r30; } -s32 fn_1_63FC(StructBss340* arg0) { +s32 fn_1_63FC(StructBss340 *arg0) +{ Vec sp24; Vec sp18; Vec spC; - StructBss70* temp_r31; + StructBss70 *temp_r31; s32 var_r28; s32 i; @@ -1257,7 +1276,8 @@ s32 fn_1_63FC(StructBss340* arg0) { return var_r28; } -s32 fn_1_65D0(StructBss340* arg0) { +s32 fn_1_65D0(StructBss340 *arg0) +{ float var_f31; float var_f30; s32 sp8; @@ -1279,7 +1299,8 @@ s32 fn_1_65D0(StructBss340* arg0) { return sp8; } -float fn_1_67F0(float arg0, float arg1, float arg2) { +float fn_1_67F0(float arg0, float arg1, float arg2) +{ float var_f30; float var_f31; @@ -1297,8 +1318,9 @@ float fn_1_67F0(float arg0, float arg1, float arg2) { return var_f30; } -void fn_1_68F4(void) { - StructBss340* temp_r31; +void fn_1_68F4(void) +{ + StructBss340 *temp_r31; s32 i; temp_r31 = HuPrcCurrentGet()->user_data; @@ -1313,19 +1335,21 @@ void fn_1_68F4(void) { } } -s32 fn_1_6964(StructBss340* arg0) { +s32 fn_1_6964(StructBss340 *arg0) +{ return (arg0->unk2C == 4 || arg0->unk2C == 5 || arg0->unk2C == 6); } -void fn_1_69C0(void) { +void fn_1_69C0(void) +{ float var_f23; float var_f27; float var_f26; - StructBss340* temp_r31; + StructBss340 *temp_r31; s16 var_r29; s32 var_r24; s32 var_r23; - Process* var_r22; + Process *var_r22; s32 var_r26; s32 var_r25; s32 var_r28; @@ -1353,7 +1377,8 @@ void fn_1_69C0(void) { case 8: if (temp_r31->unk3C != 0) { temp_r31->unk3C--; - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); temp_r31->unk2C = 0; } @@ -1374,7 +1399,8 @@ void fn_1_69C0(void) { } if (temp_r31->unk3C != 0) { temp_r31->unk3C--; - } else { + } + else { Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[5]); Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); temp_r31->unk2C = 6; @@ -1416,7 +1442,8 @@ void fn_1_69C0(void) { if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_A) { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); } @@ -1424,14 +1451,16 @@ void fn_1_69C0(void) { HuAudFXStop(var_r29); } } - } else { + } + else { if (temp_r31->unk2C != 3) { temp_r31->unk2C = 3; temp_r31->unk48 = 0; if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_A) { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); } @@ -1443,7 +1472,8 @@ void fn_1_69C0(void) { if (temp_r31->unk34 != 1) { var_r24 = 8; var_r23 = 32; - } else { + } + else { var_r24 = 7; var_r23 = 22; } @@ -1458,12 +1488,14 @@ void fn_1_69C0(void) { if (temp_r31->unk48 >= 50) { temp_r31->unk48 -= 50; } - } else { + } + else { if (temp_r31->unk48 >= 30) { temp_r31->unk48 -= 30; } } - } else { + } + else { if (ABS_INV(fn_1_627C(temp_r31->unk20, 0)) <= 20) { if (temp_r31->unk2C != 0) { temp_r31->unk2C = 0; @@ -1472,7 +1504,8 @@ void fn_1_69C0(void) { HuAudFXStop(var_r29); } } - } else { + } + else { if (temp_r31->unk2C != 1) { temp_r31->unk2C = 1; Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); @@ -1481,10 +1514,8 @@ void fn_1_69C0(void) { } } } - if (fn_1_63FC(temp_r31) != -1) { - } - if ((spA4 = fn_1_65D0(temp_r31)) != -1) { - } + if (fn_1_63FC(temp_r31) != -1) { } + if ((spA4 = fn_1_65D0(temp_r31)) != -1) { } break; } Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); @@ -1522,7 +1553,8 @@ void fn_1_69C0(void) { if (var_r25 & 1) { Hu3DModelAttrReset(temp_r31->unk00, HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(temp_r31->unk04, HU3D_ATTR_DISPOFF); - } else { + } + else { Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(temp_r31->unk04, HU3D_ATTR_DISPOFF); } @@ -1542,7 +1574,8 @@ void fn_1_69C0(void) { Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF); HuAudSStreamPlay(4); HuPrcSleep(180); - } else { + } + else { var_f26 = temp_r31->unk90; Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); if (fn_1_14B4(temp_r31->unk60.y) != 0.0f) { @@ -1576,10 +1609,10 @@ void fn_1_69C0(void) { } } -void fn_1_7D3C(void) { -} +void fn_1_7D3C(void) { } -void fn_1_7D40(void) { +void fn_1_7D40(void) +{ while (TRUE) { if (omSysExitReq == 1) { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); @@ -1595,7 +1628,8 @@ void fn_1_7D40(void) { } } -void fn_1_7DA0(void) { +void fn_1_7DA0(void) +{ s16 temp_r31; s16 var_r30; s16 temp_r26; @@ -1644,7 +1678,8 @@ void fn_1_7DA0(void) { HuPrcVSleep(); } lbl_1_bss_3E4 = 5; - } else { + } + else { lbl_1_bss_3E4 = 5; } while (lbl_1_bss_3E4 < 6) { diff --git a/src/REL/m463Dll/main.c b/src/REL/m463Dll/main.c index a964b9ca..8304c1b3 100755 --- a/src/REL/m463Dll/main.c +++ b/src/REL/m463Dll/main.c @@ -68,14 +68,14 @@ typedef struct { } StructData134; // Size 0x18 s16 fn_1_4474(void); -void fn_1_659C(omObjData* arg0); +void fn_1_659C(omObjData *arg0); StructBss51C lbl_1_bss_51C[9]; StructBss35C lbl_1_bss_35C[28]; -omObjData* lbl_1_bss_358; -omObjData* lbl_1_bss_354; -omObjData* lbl_1_bss_330[9]; -omObjData* lbl_1_bss_32C; +omObjData *lbl_1_bss_358; +omObjData *lbl_1_bss_354; +omObjData *lbl_1_bss_330[9]; +omObjData *lbl_1_bss_32C; HsfanimStruct00 lbl_1_bss_5C[9]; s32 lbl_1_bss_58; s32 lbl_1_bss_54; @@ -83,7 +83,7 @@ s32 lbl_1_bss_50; char lbl_1_bss_4C[4]; // unused s32 lbl_1_bss_48; s32 lbl_1_bss_44; -Process* lbl_1_bss_40; +Process *lbl_1_bss_40; s32 lbl_1_bss_3C; s32 lbl_1_bss_38; s32 lbl_1_bss_34; @@ -101,17 +101,9 @@ char lbl_1_bss_8[4]; // unused s32 lbl_1_bss_4; s32 lbl_1_bss_0; -s32 lbl_1_data_0[9] = { - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38) -}; +s32 lbl_1_data_0[9] = { DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), + DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), + DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38) }; s32 lbl_1_data_24[9] = { 0 }; @@ -129,17 +121,8 @@ s32 lbl_1_data_48[9] = { u32 lbl_1_data_6C[9] = { 0, 0, 0, 0, 0, 0, 0, 1, 0 }; -u32 lbl_1_data_90[] = { - DATA_MAKE_NUM(DATADIR_BKOOPA, 8), - 0, - 0, - DATA_MAKE_NUM(DATADIR_BKOOPA, 10), - 0, - DATA_MAKE_NUM(DATADIR_M458, 42), - DATA_MAKE_NUM(DATADIR_M458, 40), - DATA_MAKE_NUM(DATADIR_M458, 41), - DATA_MAKE_NUM(DATADIR_M458, 39) -}; +u32 lbl_1_data_90[] = { DATA_MAKE_NUM(DATADIR_BKOOPA, 8), 0, 0, DATA_MAKE_NUM(DATADIR_BKOOPA, 10), 0, DATA_MAKE_NUM(DATADIR_M458, 42), + DATA_MAKE_NUM(DATADIR_M458, 40), DATA_MAKE_NUM(DATADIR_M458, 41), DATA_MAKE_NUM(DATADIR_M458, 39) }; u8 lbl_1_data_B4[9] = { 0, 0, 0, 1, 1, 1, 0, 1, 1 }; u8 lbl_1_data_BD[9] = { 0, 0, 0, 1, 1, 1, 0, 1, 1 }; @@ -157,7 +140,8 @@ s32 lbl_1_data_154 = -1; // unused float lbl_1_data_158[] = { -90.0f, 0.0f, 525.0f, 180.0f, 90.0f, 0.0f, 525.0f, 180.0f }; -void fn_1_A0(void) { +void fn_1_A0(void) +{ if (HuPadBtnDown[0] & PAD_BUTTON_B) { Center.x = lbl_1_bss_330[0]->trans.x; Center.y = lbl_1_bss_330[0]->trans.y; @@ -176,9 +160,10 @@ void fn_1_A0(void) { s32 lbl_1_data_184 = -1; -void fn_1_4C8(omObjData* arg0) { - ModelData* temp_r24; - ModelData* temp_r29; +void fn_1_4C8(omObjData *arg0) +{ + ModelData *temp_r24; + ModelData *temp_r29; float temp_f31; float temp_f30; float var_f28; @@ -190,17 +175,17 @@ void fn_1_4C8(omObjData* arg0) { float var_f22; float var_f21; float var_f20; - StructBss330Data* temp_r31; + StructBss330Data *temp_r31; s16 var_r28; s32 temp_r27; s32 var_r26; s32 var_r25; s32 var_r23; s32 var_r22; - StructBss330Data* temp_r21; + StructBss330Data *temp_r21; s32 var_r20; s32 var_r19; - StructBss330Data* temp_r18; + StructBss330Data *temp_r18; s32 var_r17; float sp180[2]; s32 spE0; @@ -210,18 +195,18 @@ void fn_1_4C8(omObjData* arg0) { s32 spD0; s32 spCC; s32 spC8; - StructBss330Data* spC4; + StructBss330Data *spC4; s32 spC0; s32 spBC; - StructBss330Data* spB8; + StructBss330Data *spB8; s32 spB4; u32 spB0; float spAC; s32 spA8; s32 spA4; s32 spA0; - StructBss330Data* sp9C; - ModelData* sp98; + StructBss330Data *sp9C; + ModelData *sp98; float sp94; float sp90; s32 sp8C; @@ -240,7 +225,8 @@ void fn_1_4C8(omObjData* arg0) { } if (temp_r31->unk0C != -1) { var_r22 = (HuPadBtnDown[temp_r31->unk0C] & PAD_BUTTON_A) ? 1 : 0; - } else { + } + else { temp_r31->unk14 += (temp_r31->unk14 < 0x10000); if (temp_r31->unk14 == 30) { var_r22 = 1; @@ -251,12 +237,11 @@ void fn_1_4C8(omObjData* arg0) { var_r26 = 0; var_r25 = 0; if (temp_r31->unk0C != -1) { - var_r26 = (HuPadStkX[temp_r31->unk0C] < -20) ? -1 - : (HuPadStkX[temp_r31->unk0C] > 20) ? 1 : 0; - var_r25 = (-HuPadStkY[temp_r31->unk0C] < -20) ? -1 - : (-HuPadStkY[temp_r31->unk0C] > 20) ? 1 : 0; + var_r26 = (HuPadStkX[temp_r31->unk0C] < -20) ? -1 : (HuPadStkX[temp_r31->unk0C] > 20) ? 1 : 0; + var_r25 = (-HuPadStkY[temp_r31->unk0C] < -20) ? -1 : (-HuPadStkY[temp_r31->unk0C] > 20) ? 1 : 0; var_r22 = (HuPadBtnDown[temp_r31->unk0C] & PAD_BUTTON_A) ? 1 : 0; - } else { + } + else { if (lbl_1_bss_54 == 1) { temp_r31->unk14 = rand8() % 64 + 30; } @@ -278,16 +263,16 @@ void fn_1_4C8(omObjData* arg0) { spCC = 0; if (var_r17 != temp_r31->unk00) { if (fabs(500.0 * temp_r31->unk3C - arg0->trans.x) < 10.0) { - spE0 = spDC = (arg0->trans.x < -250.0) ? -1 - : (arg0->trans.x > 250.0) ? 1 : 0; - } else { + spE0 = spDC = (arg0->trans.x < -250.0) ? -1 : (arg0->trans.x > 250.0) ? 1 : 0; + } + else { spE0 = (arg0->trans.x < 0.0f) ? -1 : 0; spDC = spE0 + 1; } if (fabs(500.0 * temp_r31->unk40 - arg0->trans.z) < 10.0) { - spD8 = spD4 = (arg0->trans.z < -250.0) ? -1 - : (arg0->trans.z > 250.0) ? 1 : 0; - } else { + spD8 = spD4 = (arg0->trans.z < -250.0) ? -1 : (arg0->trans.z > 250.0) ? 1 : 0; + } + else { spD8 = (arg0->trans.z < 0.0f) ? -1 : 0; spD4 = spD8 + 1; } @@ -309,14 +294,16 @@ void fn_1_4C8(omObjData* arg0) { if (var_r26 * (500.0 * temp_r31->unk3C - arg0->trans.x) < 0.0) { temp_r31->unk3C += var_r26; } - if (fabs(500.0 * temp_r31->unk3C - arg0->trans.x) < 10.0 && var_r26 != 0 && temp_r31->unk3C + var_r26 >= -1 && temp_r31->unk3C + var_r26 <= 1) { + if (fabs(500.0 * temp_r31->unk3C - arg0->trans.x) < 10.0 && var_r26 != 0 && temp_r31->unk3C + var_r26 >= -1 + && temp_r31->unk3C + var_r26 <= 1) { temp_r31->unk3C += var_r26; } var_f23 = ((500.0 * temp_r31->unk3C - arg0->trans.x) / 0.25) / 1.75; if (var_r25 * (500.0 * temp_r31->unk40 - arg0->trans.z) < 0.0) { temp_r31->unk40 += var_r25; } - if (fabs(500.0 * temp_r31->unk40 - arg0->trans.z) < 10.0 && var_r25 != 0 && temp_r31->unk40 + var_r25 >= -1 && temp_r31->unk40 + var_r25 <= 1) { + if (fabs(500.0 * temp_r31->unk40 - arg0->trans.z) < 10.0 && var_r25 != 0 && temp_r31->unk40 + var_r25 >= -1 + && temp_r31->unk40 + var_r25 <= 1) { temp_r31->unk40 += var_r25; } var_f22 = ((500.0 * temp_r31->unk40 - arg0->trans.z) / -0.25) / 1.75; @@ -332,8 +319,8 @@ void fn_1_4C8(omObjData* arg0) { sp1A0.x = temp_f31; sp1A0.z = temp_f30; - PSMTXRotRad(sp1D0, 'y', MTXDegToRad(CRot.y)); - PSMTXMultVec(sp1D0, &sp1A0, &sp1A0); + MTXRotRad(sp1D0, 'y', MTXDegToRad(CRot.y)); + MTXMultVec(sp1D0, &sp1A0, &sp1A0); temp_f31 = sp1A0.x; temp_f30 = sp1A0.z; var_f28 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30); @@ -341,7 +328,8 @@ void fn_1_4C8(omObjData* arg0) { if (var_f28 < 10.0f) { temp_r31->unk2C = temp_f31; temp_r31->unk34 += temp_f30; - } else { + } + else { temp_f31 /= var_f28; temp_f30 /= var_f28; var_f28 = 10.0f; @@ -352,10 +340,12 @@ void fn_1_4C8(omObjData* arg0) { arg0->rot.y = atan2d(temp_r31->unk2C, temp_r31->unk34); if (temp_r31->unk28 >= 8.0f) { var_r28 = 2; - } else { + } + else { var_r28 = 2; } - } else { + } + else { var_r28 = 0; } } @@ -372,14 +362,13 @@ void fn_1_4C8(omObjData* arg0) { if (lbl_1_bss_54 == 0) { Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); if (temp_r31->unk00 < 4) { - temp_r31->unk38 = (temp_r31->unk00 == 0) ? 0 - : (temp_r31->unk00 == 1) ? 2 - : (temp_r31->unk00 == 2) ? 6 : 8; + temp_r31->unk38 = (temp_r31->unk00 == 0) ? 0 : (temp_r31->unk00 == 1) ? 2 : (temp_r31->unk00 == 2) ? 6 : 8; temp_r31->unk3C = temp_r31->unk38 % 3 - 1; temp_r31->unk40 = temp_r31->unk38 / 3 - 1; arg0->trans.x = 500.0 * temp_r31->unk3C; arg0->trans.z = 500.0 * temp_r31->unk40; - } else { + } + else { do { temp_r31->unk38 = rand8() % 9; for (spC8 = 0; spC8 < temp_r31->unk00; spC8++) { @@ -446,9 +435,7 @@ void fn_1_4C8(omObjData* arg0) { for (var_r23 = 0; var_r23 < 4; var_r23++) { temp_r18 = lbl_1_bss_330[var_r23]->data; if (!(fabs(500.0 * temp_r18->unk3C - lbl_1_bss_330[var_r23]->trans.x) < 1.0) - || !(fabs(500.0 * temp_r18->unk40 - lbl_1_bss_330[var_r23]->trans.z) < 1.0) - || temp_r18->unk20 != 0) - { + || !(fabs(500.0 * temp_r18->unk40 - lbl_1_bss_330[var_r23]->trans.z) < 1.0) || temp_r18->unk20 != 0) { break; } } @@ -461,7 +448,8 @@ void fn_1_4C8(omObjData* arg0) { if (temp_r31->unk5C != 0) { if (arg0->trans.y < -15000.0f) { Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); - } else { + } + else { arg0->trans.y -= 77.0f; } } @@ -503,8 +491,7 @@ void fn_1_4C8(omObjData* arg0) { temp_f26 = (lbl_1_bss_54 - 210) / 4.0; temp_f26 = (temp_f26 > 1.0f) ? 1.0f : temp_f26; espAttrReset(lbl_1_data_24[temp_r31->unk38], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_data_24[temp_r31->unk38], - 290.0f + spB4 * sp194[spB0], + espPosSet(lbl_1_data_24[temp_r31->unk38], 290.0f + spB4 * sp194[spB0], sp188[spB0] + 0.5 * (64.0f * (1.0f - spAC) * 0.5 + sp1AC[temp_r31->unk08 != -1 ? temp_r31->unk08 : 8])); espScaleSet(lbl_1_data_24[temp_r31->unk38], 0.5 * temp_f26, 0.5 * temp_f26); } @@ -534,9 +521,11 @@ void fn_1_4C8(omObjData* arg0) { if (temp_r31->unk08 == -1 && lbl_1_bss_54 == 1) { HuAudFXPlay(0x3A); } - } else if (arg0->trans.y < -40000.0f) { + } + else if (arg0->trans.y < -40000.0f) { Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); - } else { + } + else { arg0->trans.y -= 77.0f; } break; @@ -549,7 +538,8 @@ void fn_1_4C8(omObjData* arg0) { temp_r31->unk1C++; if (temp_r31->unk1C <= 60) { arg0->rot.y = -180.0 * (temp_r31->unk1C / 60.0); - } else { + } + else { Hu3DMotionTimeSet(arg0->model[0], 120.0f); var_r28 = 0; temp_r31->unk18 = 0; @@ -583,22 +573,25 @@ void fn_1_4C8(omObjData* arg0) { if (temp_r31->unk1C < 180) { var_f20 = 0.0f; var_f21 = 1.0f; - } else { + } + else { var_f20 = 1.0f; var_f21 = 0.5f; } - temp_r24->scale.x = var_f20 + var_f21 * sind((float) (temp_r31->unk1C % 180)); + temp_r24->scale.x = var_f20 + var_f21 * sind((float)(temp_r31->unk1C % 180)); temp_r24->scale.y = temp_r24->scale.z = temp_r24->scale.x; if (temp_r31->unk1C < 180) { temp_r31->unk1C += 6; - } else { + } + else { temp_r31->unk1C += 18; } if (temp_r31->unk1C >= 360) { temp_r31->unk1C = 360; Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); } - } else { + } + else { sp98 = &Hu3DData[arg0->model[1]]; temp_r31->unk1C += 4; if (temp_r31->unk1C > 720) { @@ -640,7 +633,8 @@ void fn_1_4C8(omObjData* arg0) { temp_r31->unk58 = 150; } Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); - } else if (temp_r27 > 8) { + } + else if (temp_r27 > 8) { if (temp_r31->unk20 == 5) { if (Hu3DMotionTimeGet(arg0->model[0]) >= Hu3DMotionMaxTimeGet(arg0->model[0])) { var_r28 = 0; @@ -667,12 +661,14 @@ void fn_1_4C8(omObjData* arg0) { temp_r31->unk18 = 0; temp_r31->unk1C = 0; } - } else { + } + else { if (temp_r27 < 4) { temp_r29->pos.y += 10.0f + 0.5f * temp_r27; temp_r29->scale.x += 0.1f * sind(4.0f * temp_r27); temp_r29->scale.y = temp_r29->scale.z = temp_r29->scale.x; - } else { + } + else { var_f24 = 255 - (temp_r27 << 5); var_f24 = var_f24 * (1.0f / 255); Hu3DModelTPLvlSet(arg0->model[1], var_f24); @@ -734,13 +730,11 @@ void fn_1_4C8(omObjData* arg0) { var_r28 = temp_r31->unk24; } if (var_r28 >= 0 && var_r28 != temp_r31->unk20) { - Hu3DMotionShiftSet(arg0->model[0], - arg0->motion[var_r28], - lbl_1_data_EC[var_r28], + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r28], lbl_1_data_EC[var_r28], (temp_r31->unk08 != -1) ? lbl_1_data_C8[var_r28] : lbl_1_data_110[var_r28], - (var_r28 == 7) ? HU3D_MOTATTR_PAUSE + (var_r28 == 7) ? HU3D_MOTATTR_PAUSE : (temp_r31->unk08 != -1 ? lbl_1_data_B4[var_r28] : lbl_1_data_BD[var_r28]) ? 0 - : HU3D_MOTATTR_LOOP); + : HU3D_MOTATTR_LOOP); temp_r31->unk20 = var_r28; } temp_r31->unk58 -= (temp_r31->unk58 > -1); @@ -759,15 +753,16 @@ float lbl_1_data_1B8 = 3500.0f; float lbl_1_data_1BC = 100.0f; float lbl_1_data_1C0 = -59.0f; -void fn_1_3264(omObjData* arg0) { +void fn_1_3264(omObjData *arg0) +{ float temp_f29; float var_f31; float temp_f26; float temp_f27; float temp_f28; - StructBss330Data* spC[9]; - ModelData* temp_r29; - ModelData* temp_r28; + StructBss330Data *spC[9]; + ModelData *temp_r29; + ModelData *temp_r28; s32 var_r27; s32 i; s32 j; @@ -807,10 +802,8 @@ void fn_1_3264(omObjData* arg0) { } for (i = 0; i < 9; i++) { temp_r28 = &Hu3DData[lbl_1_bss_32C->model[i + 1]]; - Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1], - (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk00 - 1), - 0.9 * temp_r28->pos.y + 0.1 * lbl_1_bss_51C[spC[0]->unk38].unk08, - (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk04 - 1)); + Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1], (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk00 - 1), + 0.9 * temp_r28->pos.y + 0.1 * lbl_1_bss_51C[spC[0]->unk38].unk08, (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk04 - 1)); for (j = 0; j < 9; j++) { if (i == spC[j]->unk38) { lbl_1_bss_330[j]->trans.x = (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk00 - 1); @@ -824,14 +817,9 @@ void fn_1_3264(omObjData* arg0) { } { s32 var_r26 = lbl_1_data_1B4; - float sp30[][6] = { - { 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f }, - { 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, - { 3800.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, - { 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, - { 4000.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f }, - { 2700.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f } - }; + float sp30[][6] = { { 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f }, { 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, + { 3800.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, { 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, + { 4000.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f }, { 2700.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f } }; if (lbl_1_bss_38 != -1 && lbl_1_bss_38 != 9) { sp30[5][1] = lbl_1_bss_330[lbl_1_bss_38]->trans.x; @@ -878,7 +866,8 @@ void fn_1_3264(omObjData* arg0) { if (lbl_1_bss_1C == 0) { lbl_1_bss_20 = 1.0 - 0.95 * (1.0f - lbl_1_bss_20); var_f31 = lbl_1_bss_20; - } else { + } + else { lbl_1_bss_20 += 0.008333333333333333; lbl_1_bss_20 = (lbl_1_bss_20 > 1.0f) ? 1.0f : lbl_1_bss_20; var_f31 = 0.5 + -0.5 * cosd(180.0f * lbl_1_bss_20); @@ -902,53 +891,31 @@ void fn_1_3264(omObjData* arg0) { lbl_1_data_134.unk10 = 2.0 * (rand8() / 255.0) - 1.0; lbl_1_data_134.unk14 = 2.0 * (rand8() / 255.0) - 1.0; lbl_1_data_134.unk10 = 0.0f; - temp_f28 = (lbl_1_data_134.unk10 - lbl_1_data_134.unk08) * (lbl_1_data_134.unk10 - lbl_1_data_134.unk08) + (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C) * (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C); + temp_f28 = (lbl_1_data_134.unk10 - lbl_1_data_134.unk08) * (lbl_1_data_134.unk10 - lbl_1_data_134.unk08) + + (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C) * (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C); } while (sqrtf(temp_f28) < 0.75); } - lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 24 - : (lbl_1_data_134.unk04 > 0) ? lbl_1_data_134.unk04 : 0; + lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 24 : (lbl_1_data_134.unk04 > 0) ? lbl_1_data_134.unk04 : 0; temp_f26 = lbl_1_data_134.unk08; temp_f27 = lbl_1_data_134.unk0C; temp_f26 *= lbl_1_data_134.unk04 * 2; temp_f27 *= lbl_1_data_134.unk04 * 2; lbl_1_data_134.unk00 = !lbl_1_data_134.unk00; - lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 23 - : (lbl_1_data_134.unk04 - 1 > 0) ? (lbl_1_data_134.unk04 - 1) : 0; + lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 23 : (lbl_1_data_134.unk04 - 1 > 0) ? (lbl_1_data_134.unk04 - 1) : 0; Center.x = 0.0f; Center.y = 100.0f + temp_f27; } } -s16 fn_1_4474(void) { - AnimData* var_r29; - void* var_r28; +s16 fn_1_4474(void) +{ + AnimData *var_r29; + void *var_r28; s16 var_r31; s16 var_r30; - HsfanimStruct00 sp8 = { - 0x96, - { 0x00, 0x00 }, - 50.0f, - 0.0f, - 65.0f, - { 0.0f, -0.195f, 0.0f }, - 80.0f, - 0.99f, - 40.0f, - 0.999f, - 4, - { - { 0xFF, 0xFF, 0x20, 0xFF }, - { 0xFF, 0xFF, 0x00, 0xFF }, - { 0xFF, 0xFF, 0x80, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF } - }, - { - { 0xFF, 0xFF, 0xFF, 0x00 }, - { 0xFF, 0xFF, 0xFF, 0x00 }, - { 0xFF, 0xFF, 0xFF, 0x00 }, - { 0xFF, 0xFF, 0xFF, 0x00 } - } - }; + HsfanimStruct00 sp8 = { 0x96, { 0x00, 0x00 }, 50.0f, 0.0f, 65.0f, { 0.0f, -0.195f, 0.0f }, 80.0f, 0.99f, 40.0f, 0.999f, 4, + { { 0xFF, 0xFF, 0x20, 0xFF }, { 0xFF, 0xFF, 0x00, 0xFF }, { 0xFF, 0xFF, 0x80, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 } } }; lbl_1_bss_5C[lbl_1_bss_58] = sp8; var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_BOARD, 107), MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -963,8 +930,9 @@ s16 fn_1_4474(void) { return var_r31; } -void fn_1_45F8(omObjData* arg0) { - StructBss330Data* sp14[9]; +void fn_1_45F8(omObjData *arg0) +{ + StructBss330Data *sp14[9]; float spC[2]; s32 sp8; s32 var_r29; @@ -974,15 +942,8 @@ void fn_1_45F8(omObjData* arg0) { s32 i; for (i = 0; i < 28; i++) { - s32 sp38[] = { - 0x7F1, 0x7F2, 0x7F7, 0x7F8, - 0x7F9, 0x7FA, 0x7FB, 0x7FC, - 0x7FD, 0x7FE, 0x7FF, 0x800, - 0x801, 0x802, 0x803, 0x804, - 0x7FB, 0x7FC, 0x7FD, 0x7FE, - 0x7FF, 0x800, 0x801, 0x802, - 0x803, 0x804, 0x7FB, 0x7FC - }; + s32 sp38[] = { 0x7F1, 0x7F2, 0x7F7, 0x7F8, 0x7F9, 0x7FA, 0x7FB, 0x7FC, 0x7FD, 0x7FE, 0x7FF, 0x800, 0x801, 0x802, 0x803, 0x804, 0x7FB, 0x7FC, + 0x7FD, 0x7FE, 0x7FF, 0x800, 0x801, 0x802, 0x803, 0x804, 0x7FB, 0x7FC }; if (lbl_1_bss_35C[i].unk00 > 3) { lbl_1_bss_35C[i].unk00 = 3; @@ -1056,7 +1017,8 @@ void fn_1_45F8(omObjData* arg0) { if (lbl_1_bss_51C[sp14[i]->unk38].unk0C != 0) { sp14[i]->unk18 = 3; sp14[i]->unk1C = 0; - } else { + } + else { sp14[i]->unk5C = 1; } } @@ -1082,7 +1044,8 @@ void fn_1_45F8(omObjData* arg0) { if (var_r29 >= 9 || lbl_1_bss_0 == 0) { MGSeqParamSet(lbl_1_data_14E, 2, -1); lbl_1_data_14E = -1; - } else { + } + else { lbl_1_bss_0 -= (lbl_1_bss_0 > 0); MGSeqParamSet(lbl_1_data_14E, 1, (lbl_1_bss_0 + 59) / 60); } @@ -1140,7 +1103,8 @@ void fn_1_45F8(omObjData* arg0) { lbl_1_bss_50 = 1007; lbl_1_bss_54 = 0; } - } else { + } + else { lbl_1_bss_50 = 1005; lbl_1_bss_54 = 0; } @@ -1152,13 +1116,15 @@ void fn_1_45F8(omObjData* arg0) { if (lbl_1_bss_38 != 9) { if (lbl_1_bss_38 < 9) { HuAudSStreamPlay(1); - } else { + } + else { HuAudSStreamPlay(1); } if (lbl_1_bss_38 < 4 && sp14[lbl_1_bss_38]->unk04 != -1) { GWPlayerCoinWinSet(sp14[lbl_1_bss_38]->unk04, 10); } - } else if (lbl_1_bss_38 == 9) { + } + else if (lbl_1_bss_38 == 9) { HuAudSStreamPlay(4); } } @@ -1175,8 +1141,9 @@ void fn_1_45F8(omObjData* arg0) { } } -void fn_1_53A0(omObjData* arg0) { - StructBss330Data* sp50[9]; +void fn_1_53A0(omObjData *arg0) +{ + StructBss330Data *sp50[9]; s32 i; for (i = 0; i < 9; i++) { @@ -1191,10 +1158,7 @@ void fn_1_53A0(omObjData* arg0) { lbl_1_bss_51C[i].unk04 = i / 3; lbl_1_bss_51C[i].unk08 = 0.0f; lbl_1_bss_51C[i].unk0C = 1; - Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1], - 500.0 * (lbl_1_bss_51C[i].unk00 - 1), - -16.666666f, - 500.0 * (lbl_1_bss_51C[i].unk04 - 1)); + Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1], 500.0 * (lbl_1_bss_51C[i].unk00 - 1), -16.666666f, 500.0 * (lbl_1_bss_51C[i].unk04 - 1)); Hu3DModelScaleSet(lbl_1_bss_32C->model[i + 1], 1.6666666f, 1.6666666f, 1.6666666f); Hu3DModelAttrSet(arg0->model[i + 1], HU3D_MOTATTR_PAUSE); Hu3DModelShadowMapSet(arg0->model[i + 1]); @@ -1215,22 +1179,13 @@ void fn_1_53A0(omObjData* arg0) { arg0->func = fn_1_3264; } -s32 lbl_1_data_1E4[] = { - DATA_MAKE_NUM(DATADIR_M458, 19), - DATA_MAKE_NUM(DATADIR_M458, 20), - DATA_MAKE_NUM(DATADIR_M458, 21), - DATA_MAKE_NUM(DATADIR_M458, 22), - DATA_MAKE_NUM(DATADIR_M458, 23), - DATA_MAKE_NUM(DATADIR_M458, 24), - DATA_MAKE_NUM(DATADIR_M458, 25), - DATA_MAKE_NUM(DATADIR_M458, 26), - DATA_MAKE_NUM(DATADIR_M458, 27), - DATA_MAKE_NUM(DATADIR_M458, 28), - DATA_MAKE_NUM(DATADIR_M458, 29) -}; +s32 lbl_1_data_1E4[] = { DATA_MAKE_NUM(DATADIR_M458, 19), DATA_MAKE_NUM(DATADIR_M458, 20), DATA_MAKE_NUM(DATADIR_M458, 21), + DATA_MAKE_NUM(DATADIR_M458, 22), DATA_MAKE_NUM(DATADIR_M458, 23), DATA_MAKE_NUM(DATADIR_M458, 24), DATA_MAKE_NUM(DATADIR_M458, 25), + DATA_MAKE_NUM(DATADIR_M458, 26), DATA_MAKE_NUM(DATADIR_M458, 27), DATA_MAKE_NUM(DATADIR_M458, 28), DATA_MAKE_NUM(DATADIR_M458, 29) }; -void fn_1_5850(omObjData* arg0) { - StructBss330Data* temp_r31; +void fn_1_5850(omObjData *arg0) +{ + StructBss330Data *temp_r31; s32 sp10[] = { 0, 1, 2, 3 }; s32 var_r25; s32 var_r28; @@ -1246,13 +1201,15 @@ void fn_1_5850(omObjData* arg0) { for (i = 0; i <= temp_r31->unk00 - 4; i++) { do { var_r28++; - } while (GWPlayerCfg[0].character == var_r28 || GWPlayerCfg[1].character == var_r28 || GWPlayerCfg[2].character == var_r28 || GWPlayerCfg[3].character == var_r28); + } while (GWPlayerCfg[0].character == var_r28 || GWPlayerCfg[1].character == var_r28 || GWPlayerCfg[2].character == var_r28 + || GWPlayerCfg[3].character == var_r28); } temp_r31->unk08 = (var_r28 == 8) ? -1 : var_r28; temp_r31->unk0C = -1; temp_r31->unk04 = -1; temp_r31->unk10 = 0; - } else { + } + else { for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { if (i == GWPlayerCfg[j].group) { @@ -1277,13 +1234,15 @@ void fn_1_5850(omObjData* arg0) { temp_r31->unk48 = -1; if (temp_r31->unk08 != -1) { arg0->model[0] = CharModelCreate(temp_r31->unk08, 4); - } else { + } + else { arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 7)); } omSetTra(arg0, 0.0f, temp_r31->unk00 == 0 ? 0 : 300, 0.0f); if (temp_r31->unk08 != -1) { omSetSca(arg0, 2.5f, 2.5f, 2.5f); - } else { + } + else { omSetSca(arg0, 2.0f, 2.0f, 2.0f); } for (i = 0; i < 9; i++) { @@ -1291,7 +1250,8 @@ void fn_1_5850(omObjData* arg0) { if (temp_r31->unk00 < 4 || (i != 1 && i != 2)) { arg0->motion[i] = CharModelMotionCreate(temp_r31->unk08, lbl_1_data_48[i] + (lbl_1_data_6C[i] ? temp_r31->unk08 : 0)); } - } else if (lbl_1_data_90[i] != 0) { + } + else if (lbl_1_data_90[i] != 0) { arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_90[i]); } } @@ -1314,7 +1274,8 @@ void fn_1_5850(omObjData* arg0) { for (i = 0; i < 9; i++) { if (temp_r31->unk00 == 0) { arg0->model[i + 2] = Hu3DModelCreateFile(lbl_1_data_1E4[i]); - } else { + } + else { arg0->model[i + 2] = Hu3DModelLink(lbl_1_bss_330[0]->model[i + 2]); } Hu3DMotionTimeSet(arg0->model[i + 2], 10.0f); @@ -1328,7 +1289,8 @@ void fn_1_5850(omObjData* arg0) { arg0->func = fn_1_4C8; } -void fn_1_60A4(omObjData* arg0) { +void fn_1_60A4(omObjData *arg0) +{ lbl_1_bss_50 = 1000; lbl_1_bss_54 = 0; lbl_1_bss_48 = 0; @@ -1338,8 +1300,9 @@ void fn_1_60A4(omObjData* arg0) { arg0->func = fn_1_45F8; } -void ObjectSetup(void) { - omObjData* var_r30; +void ObjectSetup(void) +{ + omObjData *var_r30; s32 i; OSReport("******* M463 ObjectSetup *********\n"); @@ -1396,9 +1359,10 @@ void ObjectSetup(void) { lbl_1_bss_358 = omAddObjEx(lbl_1_bss_40, 103, 0, 0, -1, fn_1_60A4); } -void fn_1_659C(omObjData* arg0) { - StructBss330Data* spC[9]; - void* sp8; +void fn_1_659C(omObjData *arg0) +{ + StructBss330Data *spC[9]; + void *sp8; s32 var_r31; s32 var_r30; diff --git a/src/REL/modeltestDll/main.c b/src/REL/modeltestDll/main.c index b2887739..2b99a635 100644 --- a/src/REL/modeltestDll/main.c +++ b/src/REL/modeltestDll/main.c @@ -308,8 +308,7 @@ void fn_1_29C(omObjData *arg0) lbl_1_bss_864[var_r31] = Hu3DParManCreate(temp_r28, 0x1F4, &lbl_1_data_168[0]); Hu3DParManAttrSet(lbl_1_bss_864[var_r31], 0x864); Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_864[var_r31]), 1U); - Hu3DParManPosSet( - lbl_1_bss_864[var_r31], (100.0 * sind(36.0f * var_r31)), 0.0f, 100.0 * cosd(36.0f * var_r31)); + Hu3DParManPosSet(lbl_1_bss_864[var_r31], (100.0 * sind(36.0f * var_r31)), 0.0f, 100.0 * cosd(36.0f * var_r31)); Hu3DParManRotSet(lbl_1_bss_864[var_r31], -90.0f, 0.0f, 0.0f); } @@ -596,10 +595,10 @@ void fn_1_20F4(void) Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0); Hu3DMtxTransGet(spC0, &sp18); - PSMTXInverse(sp30, sp60); + MTXInverse(sp30, sp60); Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0); Hu3DMtxTransGet(spC0, &sp18); - PSMTXMultVec(sp60, &sp18, &sp18); + MTXMultVec(sp60, &sp18, &sp18); temp_f27 = atan2d(sp18.z, sp18.x); temp_r31 = &lbl_1_bss_40[var_r29 * 2]; @@ -654,7 +653,7 @@ void fn_1_28F8(Point3d *arg0, Point3d *arg1) cam = &Hu3DCamera[0]; C_MTXLookAt(sp18, &cam->pos, &cam->up, &cam->target); - PSMTXMultVec(sp18, arg0, &spC); + MTXMultVec(sp18, arg0, &spC); temp_f31 = (1.2f * (spC.z * (sind(cam->fov / 2) / (cosd(cam->fov / 2))))); temp_f30 = (spC.z * (sind(cam->fov / 2) / (cosd(cam->fov / 2)))); @@ -795,10 +794,10 @@ void fn_1_2B68(ModelData *mdl, Mtx arg1) GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); GXSetAlphaCompare(GX_GEQUAL, 1U, GX_AOP_AND, GX_GEQUAL, 1U); GXSetZCompLoc(0U); - PSMTXIdentity(arg1); + MTXIdentity(arg1); GXLoadPosMtxImm(arg1, 0U); - PSMTXInvXpose(arg1, sp90); + MTXInvXpose(arg1, sp90); GXLoadNrmMtxImm(sp90, 0); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); @@ -812,7 +811,7 @@ void fn_1_2B68(ModelData *mdl, Mtx arg1) GXLoadTexObj(&sp30, GX_TEXMAP0); GXSetNumIndStages(1U); - PSMTXScale(sp150, 0.1f, 0.1f, 0.0f); + MTXScale(sp150, 0.1f, 0.1f, 0.0f); sp18[0][0] = sp150[0][0]; sp18[0][1] = sp150[0][1]; sp18[0][2] = 0.0f; @@ -820,12 +819,12 @@ void fn_1_2B68(ModelData *mdl, Mtx arg1) sp18[1][1] = sp150[1][1]; sp18[1][2] = 0.0f; - PSMTXRotRad(spF0, 0x58, -1.5707964f); + MTXRotRad(spF0, 0x58, -1.5707964f); mtxRot(spF0, 0.0f, 0.0f, 0.0f); temp_f31 = 0.0015625f; - PSMTXScale(sp120, temp_f31, temp_f31, temp_f31); - PSMTXConcat(sp120, spF0, sp150); - PSMTXTrans(spC0, 0.5f, 0.0f, 0.5f); + MTXScale(sp120, temp_f31, temp_f31, temp_f31); + MTXConcat(sp120, spF0, sp150); + MTXTrans(spC0, 0.5f, 0.0f, 0.5f); GXLoadTexMtxImm(sp150, 0x1EU, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1EU, 0U, 0x7DU); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP1); diff --git a/src/REL/mstory3Dll/main.c b/src/REL/mstory3Dll/main.c new file mode 100755 index 00000000..c1e4f1bf --- /dev/null +++ b/src/REL/mstory3Dll/main.c @@ -0,0 +1,1044 @@ +#include "REL/mstory3Dll.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "ext_math.h" + +u8 lbl_1_bss_48[0x10]; // unused +StructBss4 lbl_1_bss_4; +Process* lbl_1_bss_0; + +s32 lbl_1_data_0[][4] = { + { 0x37, 0x38, 0x36, 0x39 }, + { 0x43, 0x45, 0x44, 0x43 }, + { 0x40, 0x42, 0x41, 0x40 }, + { 0x4B, 0x4D, 0x4C, 0x4B }, + { 0x46, 0x48, 0x47, 0x46 }, + { 0x3E, 0x3F, 0x3E, 0x3E }, + { 0x3A, 0x3B, 0x3C, -1 } +}; + +char* lbl_1_data_A4[] = { + "S-1 : ALL STORY - BOARD RESULT EVENT", + "--- : RESULT" +}; + +void fn_1_0(omObjData* arg0) { + if (WipeStatGet() == 0) { + arg0->func = NULL; + omOvlReturnEx(1, 1); + } +} + +void fn_1_4C(omObjData* arg0) { + if (omSysExitReq != 0) { + arg0->func = fn_1_0; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + } +} + +void fn_1_A4(void) { + s32 sp14; + s32 sp10; + s32 spC; + s32 sp8; + s32 var_r29; + s32 var_r30; + s32 var_r31; + + sp14 = 0; + var_r30 = 0; + var_r31 = 0; + sp10 = 1; + spC = 1; + sp8 = 1; + omAddObjEx(lbl_1_bss_0, 0x2000, 0, 0, -1, fn_1_4C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + while (TRUE) { + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + break; + } + if (HuPadBtnDown[0] & PAD_BUTTON_DOWN) { + var_r30++; + if (var_r30 >= 2) { + var_r30 = 0; + } + } + if (HuPadBtnDown[0] & PAD_BUTTON_UP) { + var_r30--; + if (var_r30 < 0) { + var_r30 = 1; + } + } + if (HuPadStkX[0] <= -30) { + var_r31++; + if (var_r31 > 6) { + var_r31 = 0; + } + } + if (HuPadStkX[0] >= 30) { + var_r31--; + if (var_r31 < 0) { + var_r31 = 5; + } + } + fontcolor = FONT_COLOR_WHITE; + print8(24, 100, 1.5f, ">>>>> MPGC STORY 3 - EVENT SELECT <<<<<"); + print8(24, 130, 1.5f, "MAP NUMBER : %d", var_r31 + 1); + for (var_r29 = 0; var_r29 < 2; var_r29++) { + fontcolor = FONT_COLOR_WHITE; + if (var_r30 == var_r29) { + fontcolor = FONT_COLOR_CYAN; + } + print8(24, 160 + var_r29 * 15, 1.5f, "%s", lbl_1_data_A4[var_r29]); + } + fn_1_938(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + GWSystem.board = var_r31; + switch (var_r30) { + case 0: + fn_1_6E34(lbl_1_bss_0, var_r31, 1, 0, 0); + break; + case 1: + fn_1_157F0(lbl_1_bss_0, var_r31, 0, 0); + break; + } + while (TRUE) { + fn_1_938(); + } +} + +#include "src/REL/executor.c" + +void fn_1_40C(void) { + lbl_1_bss_0 = omInitObjMan(62, 0x2000); + omGameSysInit(lbl_1_bss_0); + switch (omovlevtno) { + case 0: + fn_1_6E34(lbl_1_bss_0, GWSystem.board, GWSystem.bonus_star, GWSystem.party, 0); + break; + case 1: + fn_1_157F0(lbl_1_bss_0, GWSystem.board, GWSystem.party, 0); + break; + } +} + +void ObjectSetup(void) { + fn_1_40C(); +} + +float fn_1_5D4(float arg8, float arg9, float argA, float argB) { + if (argB <= argA) { + return arg9; + } + return arg8 + (argA / argB) * (arg9 - arg8); +} + +float fn_1_5FC(float arg8, float arg9, float argA) { + return (arg9 + arg8 * (argA - 1.0f)) / argA; +} + +float fn_1_61C(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * (1.0 - cosd((90.0f / arg3) * arg2)); +} + +float fn_1_6F4(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * sind((90.0f / arg3) * arg2); +} + +float fn_1_7BC(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((180.0f / arg3) * arg2); +} + +float fn_1_878(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((360.0f / arg3) * arg2); +} + +void fn_1_934(void) { +} + +void fn_1_938(void) { + HuPrcVSleep(); +} + +void fn_1_958(s32 arg0) { + HuPrcSleep(arg0); +} + +void fn_1_980(void) { + HuPrcEnd(); +} + +void fn_1_9A0(void) { + HuWinInit(1); +} + +void fn_1_9C4(void) { + HuWinAllKill(); +} + +void fn_1_9E4(s32 arg0, float arg1, float arg2, s32 arg3) { + WindowData* temp_r29; + float temp_f29; + float temp_f28; + float temp_f25; + float temp_f24; + float temp_f31; + float temp_f27; + float temp_f30; + float temp_f26; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + s32 i; + + temp_r29 = &winData[arg0]; + temp_f29 = temp_r29->pos_x; + temp_f28 = temp_r29->pos_y; + temp_f25 = temp_r29->w; + temp_f24 = temp_r29->h; + temp_f31 = temp_f29 + temp_f25 * arg1; + temp_f27 = 4.0f / temp_f25; + if (temp_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) { + temp_f31 = (temp_f29 + temp_f25) - 4.0f; + } else if (temp_f29 - (temp_f31 - 2.0f) >= 0.0f) { + temp_f31 = temp_f29; + } else { + temp_f31 -= 2.0f; + } + temp_f30 = temp_f28 + temp_f24 * arg2; + temp_f26 = 4.0f / temp_f24; + if (temp_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) { + temp_f30 = (temp_f28 + temp_f24) - 4.0f; + } else if (temp_f28 - (temp_f30 - 2.0f) >= 0.0f) { + temp_f30 = temp_f28; + } else { + temp_f30 -= 2.0f; + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f31, temp_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + var_f23 = temp_f31; + var_f21 = temp_f27; + var_f22 = temp_f30; + var_f20 = temp_f26; + } else { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + var_f23 = temp_f29; + var_f21 = 1.0f; + var_f22 = temp_f28; + var_f20 = 1.0f; + } + HuWinDispOn(arg0); + for (i = 0; i <= 15; i++) { + HuPrcVSleep(); + if (arg3 != 0) { + if (i <= 10) { + var_f23 = fn_1_6F4(temp_f31, temp_f29, i, 10.0f); + var_f21 = fn_1_6F4(temp_f27, 1.0f, i, 10.0f);; + } else { + var_f22 = fn_1_6F4(temp_f30, temp_f28, i - 10, 5.0f); + var_f20 = fn_1_6F4(temp_f26, 1.0f, i - 10, 5.0f); + } + } else { + if (i <= 10) { + var_f22 = fn_1_6F4(temp_f28, temp_f30, i, 10.0f); + var_f20 = fn_1_6F4(1.0f, temp_f26, i, 10.0f); + } else { + var_f23 = fn_1_6F4(temp_f29, temp_f31, i - 10, 5.0f); + var_f21 = fn_1_6F4(1.0f, temp_f27, i - 10, 5.0f); + } + } + HuWinPosSet(arg0, var_f23, var_f22); + HuWinScaleSet(arg0, var_f21, var_f20); + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + } else { + HuWinPosSet(arg0, temp_f31, temp_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + } + HuPrcVSleep(); +} + +s32 fn_1_142C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, float arg8, float arg9, s32 arg4) { + s32 temp_r3; + + arg2 = arg2 * 21 + 16; + arg3 = arg3 * 26 + 16; + if (arg0 == 0) { + arg0 = 550 - arg2; + } else { + arg0 = 1.0f + (576.0f - arg2) / 2; + } + if (arg1 == 0) { + arg1 = 430 - arg3; + } else { + arg1 = 445 - arg3; + } + temp_r3 = HuWinExCreateStyled(arg0, arg1, arg2, arg3, -1, 1); + HuWinMesPalSet(temp_r3, 7, 0, 0, 0); + if (arg4 != -1) { + if (GWSystem.party != 1) { + winData[temp_r3].active_pad = 1; + } else { + winData[temp_r3].active_pad = 0xF; + } + } else { + winData[temp_r3].active_pad = 0xFF; + } + fn_1_9E4(temp_r3, arg8, arg9, 1); + if (arg1 != 0) { + HuWinPriSet(temp_r3, 50); + } + return temp_r3; +} + +s32 fn_1_1624(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + return fn_1_142C(arg0, arg1, arg2, arg3, 0.5f, 0.5f, arg4); +} + +s32 fn_1_1834(u32 arg0, s32 arg1) { + float sp8[2]; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + s32 temp_r3; + + if (arg1 == 0) { + HuWinMesMaxSizeGet(1, sp8, arg0); + } + var_f31 = sp8[0]; + var_f30 = sp8[1]; + var_f29 = (576.0f - var_f31) / 2; + var_f28 = 445.0f - var_f30; + if (arg1 != 0) { + var_f31 = 352.0f; + var_f30 = 94.0f; + var_f29 = 550.0f - var_f31; + var_f28 = 445.0f - var_f30; + } + temp_r3 = HuWinExCreateStyled(var_f29, var_f28, var_f31, var_f30, -1, 1); + HuWinMesPalSet(temp_r3, 7, 0, 0, 0); + if (arg1 == 0) { + HuWinBGTPLvlSet(temp_r3, 0.0f); + HuWinMesSet(temp_r3, arg0); + HuWinMesSpeedSet(temp_r3, 0); + HuWinDispOn(temp_r3); + HuWinMesPalSet(temp_r3, 7, 0xFF, 0xFF, 0xFF); + } else { + HuWinPriSet(temp_r3, 50); + fn_1_9E4(temp_r3, 0.5f, 0.5f, 1); + HuWinMesSpeedSet(temp_r3, 0); + } + return temp_r3; +} + +void fn_1_1A24(s32 arg0) { + HuWinExCleanup(arg0); +} + +void fn_1_1A50(s32 arg0, float arg1, float arg2) { + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuPrcVSleep(); + fn_1_9E4(arg0, arg1, arg2, 0); + HuWinExCleanup(arg0); +} + +void fn_1_1AB0(s32 arg0) { + fn_1_1A50(arg0, 0.5f, 0.5f); +} + +void fn_1_1B18(s32 arg0, s32 arg1) { + s32 i; + + if (arg1 > 0) { + HuPrcSleep(arg1); + return; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xFF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesWait(arg0); + HuWinComKeyReset(); +} + +s32 fn_1_1BC4(s32 arg0, s32 arg1) { + s32 spC; + s32 temp_r31; + s32 var_r30; + + spC = 0; + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xFF) { + for (var_r30 = 0; var_r30 < 10; var_r30++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + temp_r31 = HuWinChoiceGet(arg0, arg1); + HuWinComKeyReset(); + if (temp_r31 != 0) { + temp_r31 = 0; + } else { + temp_r31 = 1; + } + return temp_r31; +} + +s32 fn_1_1C88(s32 arg0) { + return fn_1_1BC4(arg0, 0); +} + +void fn_1_1D44(s32 arg0, s32 arg1) { + HuWinMesSet(arg0, arg1); +} + +void fn_1_1D78(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_1DB8(s16 arg0) { + ModelData* var_r28; + HsfMaterial* var_r31; + HsfData* temp_r30; + s16 var_r27; + s32 i; + + var_r28 = &Hu3DData[arg0]; + temp_r30 = var_r28->hsfData; + var_r27 = temp_r30->materialCnt; + var_r31 = temp_r30->material; + for (i = 0; i < var_r27; var_r31++, i++) { + var_r31->vtxMode = 1; + } +} + +void fn_1_1E28(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + switch (arg4) { + case 0: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_NONE); + break; + case 1: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_LOOP); + break; + case 2: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_PAUSE); + break; + } +} + +void fn_1_1FA0(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->motion[arg2] == Hu3DMotionIDGet(arg0->model[arg1])) { + return; + } + if (arg0->motion[arg2] == Hu3DMotionShiftIDGet(arg0->model[arg1])) { + return; + } + fn_1_1FA0(arg0, arg1, arg2, arg3, arg4); +} + +void fn_1_2280(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3) { + HuPrcSleep(arg3 + 1); + do { + HuPrcVSleep(); + } while (arg0->motion[arg2] != Hu3DMotionIDGet(arg0->model[arg1]) || !Hu3DMotionEndCheck(arg0->model[arg1])); +} + +void fn_1_2310(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3) { + HuPrcSleep(arg3 + 1); + do { + HuPrcVSleep(); + } while (arg0->motion[arg2] != Hu3DMotionIDGet(arg0->model[arg1]) || !(Hu3DMotionMaxTimeGet(arg0->model[arg1]) - 20.0f <= Hu3DMotionTimeGet(arg0->model[arg1]))); +} + +s32 fn_1_23D8(s32 arg0) { + s32 i; + + for (i = 0; i < 4; i++) { + if (arg0 == GWPlayerCfg[i].group) { + break; + } + } + return i; +} + +void fn_1_2420(s32 arg0, s32 arg1) { + while (TRUE) { + if (arg1 & HuPadBtnDown[arg0]) { + break; + } + HuPrcVSleep(); + } +} + +void fn_1_2474(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + if (HuPadBtn[0] & PAD_BUTTON_B) { + if (HuPadBtn[0] & PAD_TRIGGER_R) { + var_r31->unk08.z -= HuPadStkY[0] / 10.0f; + } else { + var_r31->unk08.x += HuPadStkX[0] / 10.0f; + var_r31->unk08.y += HuPadStkY[0] / 10.0f; + } + } + if (HuPadBtn[0] & PAD_BUTTON_Y) { + var_r31->unk20.x -= HuPadStkY[0] / 100.0f; + var_r31->unk20.y += HuPadStkX[0] / 100.0f; + if (var_r31->unk20.x < 0.0f) { + var_r31->unk20.x += 360.0f; + } + if (var_r31->unk20.x >= 360.0f) { + var_r31->unk20.x -= 360.0f; + } + if (var_r31->unk20.y < 0.0f) { + var_r31->unk20.y += 360.0f; + } + if (var_r31->unk20.y >= 360.0f) { + var_r31->unk20.y -= 360.0f; + } + } + if (HuPadBtn[0] & PAD_BUTTON_X) { + var_r31->unk38 -= HuPadStkY[0] / 10.0f; + } + print8(24, 40, 1.5f, "CENTER : %.2f, %.2f, %.2f", var_r31->unk08.x, var_r31->unk08.y, var_r31->unk08.z); + print8(24, 55, 1.5f, "ROT : %.2f, %.2f, %.2f", var_r31->unk20.x, var_r31->unk20.y, var_r31->unk20.z); + print8(24, 70, 1.5f, "ZOOM : %.2f", var_r31->unk38); +} + +void fn_1_2834(void (*arg0)(void)) { + lbl_1_bss_4.unk00 = arg0; +} + +void fn_1_2844(void (*arg0)(void)) { + lbl_1_bss_4.unk04 = arg0; +} + +void fn_1_2854(omObjData* arg0) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + if (var_r31->unk00 != NULL) { + var_r31->unk00(); + } + Center.x = var_r31->unk08.x; + Center.y = var_r31->unk08.y; + Center.z = var_r31->unk08.z; + CRot.x = var_r31->unk20.x; + CRot.y = var_r31->unk20.y; + CRot.z = var_r31->unk20.z; + CZoom = var_r31->unk38; +} + +void fn_1_290C(Process* arg0, void (*arg1)(void)) { + Hu3DCameraCreate(1); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 42.0f, 1.0f, 2000.0f, 1.2f); + lbl_1_bss_4.unk00 = arg1; + lbl_1_bss_4.unk04 = fn_1_2474; + omAddObjEx(arg0, 0x7FDA, 0, 0, -1, omOutView); + omAddObjEx(arg0, 0x7FD9, 0, 0, -1, fn_1_2854); +} + +void fn_1_2A2C(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5) { + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + float sp24; + float sp20; + float sp1C; + s32 sp18; + s32 sp14; + float var_f31; + + sp40.x = Hu3DData[arg0->model[arg1]].pos.x; + sp4C.y = sp40.y = Hu3DData[arg0->model[arg1]].pos.y; + sp40.z = Hu3DData[arg0->model[arg1]].pos.z; + sp34.x = arg2.x; + sp34.y = arg2.y; + sp34.z = arg2.z; + sp18 = arg4; + sp28.x = Hu3DData[arg0->model[arg1]].rot.x; + sp28.y = Hu3DData[arg0->model[arg1]].rot.y; + sp28.z = Hu3DData[arg0->model[arg1]].rot.z; + sp1C = 0.0f; + sp20 = arg3; + sp24 = 0.0f; + sp14 = arg5; + var_f31 = -1.1025f; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[3], 0.0f, 5.0f, 0U); + HuPrcSleep(10); + while (TRUE) { + if (var_f31 >= 1.7f) { + var_f31 = 1.7f; + } + sp4C.y += var_f31 * var_f31 * (var_f31 >= 0.0f ? -17.5f : 17.5f); + if (sp4C.y <= 0.0f && var_f31 > 0.0f) { + sp4C.y = 0.0f; + } + sp4C.x = sp40.x += 6.0 * sind(sp28.y); + sp4C.z = sp40.z += 6.0 * cosd(sp28.y); + Hu3DModelPosSet(arg0->model[1], sp4C.x, sp4C.y, sp4C.z); + Hu3DModelRotSet(arg0->model[1], sp28.x, sp28.y, sp28.z); + HuPrcVSleep(); + if (sp4C.y <= arg2.y && var_f31 > 0.0f) { + break; + } + var_f31 += 0.11f; + } +} + +void fn_1_2DD4(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5) { + Vec sp54; + Vec sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + s32 sp14; + s32 temp_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 i; + + var_r26 = 0; + var_r25 = 0; + sp48.x = Hu3DData[arg0->model[arg1]].pos.x; + sp48.y = Hu3DData[arg0->model[arg1]].pos.y; + sp48.z = Hu3DData[arg0->model[arg1]].pos.z; + sp3C.x = arg2.x; + sp3C.y = arg2.y; + sp3C.z = arg2.z; + sp14 = arg4; + sp24.x = Hu3DData[arg0->model[arg1]].rot.x; + sp24.y = Hu3DData[arg0->model[arg1]].rot.y; + sp24.z = Hu3DData[arg0->model[arg1]].rot.z; + sp18.x = 0.0f; + sp18.y = arg3; + sp18.z = 0.0f; + if (sp3C.x - sp48.x >= 0.0f) { + var_r24 = 1; + } else { + var_r24 = 0; + } + if (sp3C.z - sp48.z >= 0.0f) { + var_r23 = 1; + } else { + var_r23 = 0; + } + temp_r27 = arg5; + do { + sp30.y = -(atan2d(sp3C.z - sp48.z, sp3C.x - sp48.x) - 90.0); + if (sp30.y < 0.0f) { + sp30.y += 360.0f; + } else if (sp30.y >= 360.0f) { + sp30.y -= 360.0f; + } + if (sp30.y >= 180.0f) { + if (sp24.y - sp30.y >= 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp30.y < -180.0f) { + sp24.y += 360.0f; + } + } else { + if (sp24.y - sp30.y > 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp30.y <= -180.0f) { + sp24.y += 360.0f; + } + } + sp54.x = sp48.x += 6.0 * sind(sp30.y); + sp54.z = sp48.z += 6.0 * cosd(sp30.y); + if (var_r24 != 0) { + if (sp48.x >= sp3C.x) { + sp54.x = sp48.x = sp3C.x; + var_r26 = 1; + } + } else { + if (sp48.x <= sp3C.x) { + sp54.x = sp48.x = sp3C.x; + var_r26 = 1; + } + } + if (var_r23 != 0) { + if (sp48.z >= sp3C.z) { + sp54.z = sp48.z = sp3C.z; + var_r25 = 1; + } + } else { + if (sp48.z <= sp3C.z) { + sp54.z = sp48.z = sp3C.z; + var_r25 = 1; + } + } + sp24.y = fn_1_5FC(sp24.y, sp30.y, 10.0f); + Hu3DModelPosSet(arg0->model[1], sp54.x, sp48.y, sp54.z); + Hu3DModelRotSet(arg0->model[1], sp24.x, sp24.y, sp24.z); + HuPrcVSleep(); + } while (var_r25 != 1 || var_r26 != 1); + sp24.y = Hu3DData[arg0->model[arg1]].rot.y; + for (i = 0; i <= temp_r27; i++) { + if (sp18.y >= 180.0f) { + if (sp24.y - sp18.y >= 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp18.y < -180.0f) { + sp24.y += 360.0f; + } + } else { + if (sp24.y - sp18.y > 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp18.y <= -180.0f) { + sp24.y += 360.0f; + } + } + sp24.y = fn_1_5D4(sp24.y, sp18.y, i, temp_r27); + Hu3DModelRotSet(arg0->model[1], sp24.x, sp24.y, sp24.z); + HuPrcVSleep(); + } +} + +void fn_1_35C8(s16 arg0) { + ModelData* var_r28; + HsfData* temp_r30; + HsfMaterial* var_r31; + s16 var_r27; + s32 i; + + var_r28 = &Hu3DData[arg0]; + temp_r30 = var_r28->hsfData; + var_r27 = temp_r30->materialCnt; + var_r31 = temp_r30->material; + for (i = 0; i < var_r27; var_r31++, i++) { + var_r31->vtxMode = 1; + var_r31->litColor[0] = 0xFF; + var_r31->litColor[1] = 0xFF; + var_r31->litColor[2] = 0xFF; + } +} + +void fn_1_3650(StructFn352C* arg0, s32 arg1) { + arg0->unk00 = arg1; + arg0->unk04 = GWPlayerCfg[arg0->unk00].group; + arg0->unk08 = GWPlayerCfg[arg0->unk00].iscom; + arg0->unk0C = GWPlayerCfg[arg0->unk00].diff; + arg0->unk10 = GWPlayerCfg[arg0->unk00].character; + arg0->unk14 = GWPlayerCfg[arg0->unk00].pad_idx; +} + +s32 fn_1_36E4(void) { + s32 i; + + for (i = 0; i < 4; i++) { + if (!GWPlayerCfg[i].iscom) { + break; + } + } + if (i == 4) { + return -1; + } + return i; +} + +s32 fn_1_373C(void) { + s32 var_r30; + s32 var_r31; + + var_r30 = 0; + do { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r30 == GWPlayerCfg[var_r31].pad_idx) { + break; + } + } + if (!GWPlayerCfg[var_r31].iscom) { + break; + } + var_r30++; + } while (var_r30 != 5); + if (var_r30 == 5) { + return -1; + } + return var_r31; +} + +s32 fn_1_37C8(s32 arg0) { + s32 temp_r3 = 0; + + temp_r3 = Hu3DGLightCreate(0.0f, 700.0f, 1200.0f, 0.0f, -1.0f, 0.0f, arg0, arg0, arg0); + Hu3DGLightPosAimSet(temp_r3, 0.0f, 700.0f, 1200.0f, 0.0f, 0.0f, 640.0f); + Hu3DGLightInfinitytSet(temp_r3); + return temp_r3; +} + +void fn_1_38B4(void) { + Vec sp20 = { 0.0f, 3000.0f, 800.0f }; + Vec sp14 = { 0.0f, 0.0f, 640.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.8f); + Hu3DShadowPosSet(&sp20, &sp8, &sp14); +} + +void fn_1_3978(StructBss4* arg0) { + arg0->unk08.x = arg0->unk14; + arg0->unk08.y = arg0->unk18; + arg0->unk08.z = arg0->unk1C; + arg0->unk20.x = arg0->unk2C; + arg0->unk20.y = arg0->unk30; + arg0->unk20.z = arg0->unk34; + arg0->unk38 = arg0->unk3C; +} + +void fn_1_39B4(StructBss4* arg0) { + arg0->unk40 = 0; + arg0->unk14 = arg0->unk08.x; + arg0->unk18 = arg0->unk08.y; + arg0->unk1C = arg0->unk08.z; + arg0->unk2C = arg0->unk20.x; + arg0->unk30 = arg0->unk20.y; + arg0->unk34 = arg0->unk20.z; + arg0->unk3C = arg0->unk38; +} + +void fn_1_39F8(StructBss4* arg0, StructBss4* arg1, float arg2) { + arg0->unk08.x = fn_1_5FC(arg0->unk08.x, arg1->unk14, arg2); + arg0->unk08.y = fn_1_5FC(arg0->unk08.y, arg1->unk18, arg2); + arg0->unk08.z = fn_1_5FC(arg0->unk08.z, arg1->unk1C, arg2); + arg0->unk20.x = fn_1_5FC(arg0->unk20.x, arg1->unk2C, arg2); + arg0->unk20.y = fn_1_5FC(arg0->unk20.y, arg1->unk30, arg2); + arg0->unk20.z = fn_1_5FC(arg0->unk20.z, arg1->unk34, arg2); + arg0->unk38 = fn_1_5FC(arg0->unk38, arg1->unk3C, arg2); +} + +void fn_1_3C64(StructBss4* arg0, float arg1) { + fn_1_39F8(arg0, arg0, arg1); +} + +void fn_1_3ED0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_5D4(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_5D4(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_5D4(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_5D4(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_5D4(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_5D4(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_5D4(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_414C(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + fn_1_3ED0(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_4400(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4) { + fn_1_3ED0(arg0, arg1, arg2, arg3); + fn_1_39F8(arg0, arg1, arg4); +} + +void fn_1_486C(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_6F4(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_6F4(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_6F4(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_6F4(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_6F4(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_6F4(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_6F4(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_4CC0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + fn_1_486C(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_514C(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4) { + fn_1_486C(arg0, arg1, arg2, arg3); + fn_1_39F8(arg0, arg1, arg4); +} + +void fn_1_57A4(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_61C(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_61C(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_61C(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_61C(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_61C(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_61C(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_61C(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_5C68(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + fn_1_57A4(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_6164(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4) { + fn_1_57A4(arg0, arg1, arg2, arg3); + fn_1_39F8(arg0, arg1, arg4); +} + +void fn_1_682C(omObjData* arg0) { + s32 var_r30; + + if (arg0->work[0] == 0) { + return; + } + if (arg0->work[2] != 0) { + arg0->work[2]--; + return; + } + if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[1])) { + var_r30 = arg0->work[1]; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[var_r30], 0.0f, 15.0f, HU3D_MOTATTR_LOOP); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } +} + +void fn_1_68F0(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + fn_1_1E28(arg0, 1, arg1, arg3, arg4); + if (arg4 == 0) { + arg0->work[0] = 1; + arg0->work[1] = arg2; + arg0->work[2] = arg3 + 1; + } +} + +void fn_1_6A78(s32 arg0, s32 arg1) { + HuWinMesSet(arg0, arg1); +} + +void fn_1_6AAC(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_6AEC(s32 arg0, s32 arg1) { + fn_1_1B18(arg0, arg1); +} + +void fn_1_6B98(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + s32 temp_r28 = 0; + s32 var_r29 = 0; + s32 i; + + temp_r28 = HuWinKeyWaitNumGet(arg1); + if (arg2 == -1 || arg2 >= temp_r28 - 1) { + arg2 = temp_r28 - 1; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xFF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesSet(arg0, arg1); + for (i = 0; i < temp_r28; i++) { + var_r29 = 0; + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) != 1); + if (i == arg2) { + HuWinAttrSet(arg0, 0x400); + var_r29 = 1; + } + while (TRUE) { + HuPrcVSleep(); + if (var_r29 != 0) { + if (var_r29 == 1 && HuWinStatGet(arg0) != 1) { + var_r29 = 2; + } else if (var_r29 == 2) { + HuPrcSleep(arg3); + HuWinAttrReset(arg0, 0x400); + HuWinKeyWaitEntry(arg0); + break; + } + } else if (HuWinStatGet(arg0) != 1) { + break; + } + } + } + fn_1_6AEC(arg0, 0); + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuWinComKeyReset(); +} + +BOOL fn_1_6D80(s32 arg0) { + s32 var_r31; + s32 i; + + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xFF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + var_r31 = HuWinChoiceGet(arg0, 0); + HuWinComKeyReset(); + if (var_r31 != 0) { + var_r31 = FALSE; + } else { + var_r31 = TRUE; + } + return var_r31; +} diff --git a/src/REL/mstory3Dll/result.c b/src/REL/mstory3Dll/result.c new file mode 100755 index 00000000..f9fb785b --- /dev/null +++ b/src/REL/mstory3Dll/result.c @@ -0,0 +1,1617 @@ +#include "REL/mstory3Dll.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/saveload.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ char unk1C[0x18]; + /* 0x34 */ s32 unk34[4][2]; + /* 0x54 */ s32 unk54; + /* 0x58 */ char unk58[4]; + /* 0x5C */ s32 unk5C; + /* 0x60 */ char unk60[4]; + /* 0x64 */ s32 unk64; + /* 0x68 */ char unk68[4]; + /* 0x6C */ s32 unk6C; + /* 0x70 */ char unk70[4]; + /* 0x74 */ s32 unk74; + /* 0x78 */ char unk78[4]; + /* 0x7C */ s32 unk7C; + /* 0x80 */ char unk80[4]; + /* 0x84 */ s32 unk84; + /* 0x88 */ char unk88[4]; + /* 0x8C */ s32 unk8C; + /* 0x90 */ char unk90[4]; +} StructUnk38Bss1A0C; // Size 0x94 + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ s32 unk18; + /* 0x01C */ char unk1C[8]; + /* 0x024 */ s32 unk24; + /* 0x028 */ char unk28[0x10]; + /* 0x038 */ StructUnk38Bss1A0C unk38[4]; + /* 0x288 */ Vec unk288[5]; + /* 0x2C4 */ s32 unk2C4; + /* 0x2C8 */ s32 unk2C8; + /* 0x2CC */ s32 unk2CC; + /* 0x2D0 */ s32 unk2D0; + /* 0x2D4 */ s32 unk2D4; +} StructBss1A0C; // Size 0x2D8 + +void fn_1_15C0C(void); +void fn_1_16ED4(void); +void fn_1_18080(void); +void fn_1_184E8(void); +void fn_1_18558(void); +void fn_1_18F98(void); +void fn_1_19144(void); +void fn_1_19214(void); +void fn_1_194A0(void); +void fn_1_197B4(s32 arg0); +void fn_1_1C2F4(void); +void fn_1_1C460(void); +void fn_1_1CA98(void); +void fn_1_1CB7C(void); +void fn_1_1CC5C(void); +void fn_1_1CD60(void); +void fn_1_1D63C(void); +void fn_1_1D77C(void); +void fn_1_1D964(void); +void fn_1_1DA64(void); +void fn_1_1DAAC(void); +void fn_1_1DE4C(void); + +StructBss1A0C lbl_1_bss_1A0C; +StructBss1530 lbl_1_bss_19E4; +StructBss1530 lbl_1_bss_19BC; +StructBss1530 lbl_1_bss_1994; +StructBss1530 lbl_1_bss_18F4[4]; +AnimData* lbl_1_bss_18EC[2]; +AnimData* lbl_1_bss_18E4[2]; +AnimData* lbl_1_bss_18D8[3]; +s32 lbl_1_bss_18D4; +Process* lbl_1_bss_18D0; + +void fn_1_157F0(Process* arg0, s32 arg1, s32 arg2, s32 arg3) { + s32 var_r31; + + lbl_1_bss_18D0 = arg0; + lbl_1_bss_1A0C.unk00 = arg1; + lbl_1_bss_1A0C.unk08 = GWSystem.max_turn; + arg3 = lbl_1_bss_1A0C.unk14 = fn_1_373C(); + lbl_1_bss_1A0C.unk2D4 = arg2; + lbl_1_bss_1A0C.unk2CC = GWSystem.team; + if (_CheckFlag(FLAG_ID_MAKE(1, 29))) { + lbl_1_bss_1A0C.unk2D0 = 0; + } else { + lbl_1_bss_1A0C.unk2D0 = 1; + } + fn_1_9A0(); + fn_1_37C8(0xFF); + fn_1_290C(lbl_1_bss_18D0, fn_1_1DE4C); + fn_1_15C0C(); + fn_1_197B4(arg3); + fn_1_194A0(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuPrcChildCreate(fn_1_1CC5C, 100, 0x2000, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_19214, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_1DAAC, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_18080, 90, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_159A4(void) { + s32 var_r29; + s32 var_r30; + s32 i; + + for (i = 0; i < 4; i++) { + var_r29 = GWPlayer[i].stars - GWPlayerHandicapGet(i); + if (var_r29 <= 0) { + var_r29 = 0; + } + GWTotalStarsAdd(var_r29); + } + GWBoardPlayCountAdd(lbl_1_bss_1A0C.unk00, 1); + if (lbl_1_bss_1A0C.unk2CC == 1) { + if (lbl_1_bss_1A0C.unk38[0].unk08 == 0) { + GWBoardWinCountInc(lbl_1_bss_1A0C.unk38[0].unk10, lbl_1_bss_1A0C.unk00); + } + if (lbl_1_bss_1A0C.unk38[1].unk08 == 0) { + GWBoardWinCountInc(lbl_1_bss_1A0C.unk38[1].unk10, lbl_1_bss_1A0C.unk00); + } + } else if (lbl_1_bss_1A0C.unk38[0].unk08 == 0) { + GWBoardWinCountInc(lbl_1_bss_1A0C.unk38[0].unk10, lbl_1_bss_1A0C.unk00); + } + for (i = 0; i < 4; i++) { + var_r30 = GWPlayer[i].stars_max - GWPlayerHandicapGet(i); + if (var_r30 <= 0) { + var_r30 = 0; + } + if (GWBoardMaxStarsGet(lbl_1_bss_1A0C.unk00) <= var_r30 && !GWPlayer[i].com) { + GWBoardMaxStarsSet(lbl_1_bss_1A0C.unk00, var_r30); + } + } + for (i = 0; i < 4; i++) { + if (GWBoardMaxCoinsGet(lbl_1_bss_1A0C.unk00) <= GWPlayer[i].coins_max && !GWPlayer[i].com) { + GWBoardMaxCoinsSet(lbl_1_bss_1A0C.unk00, GWPlayer[i].coins_max); + } + } +} + +void fn_1_15C0C(void) { + lbl_1_bss_18EC[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 95), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18EC[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 96), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18D8[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 93), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18D8[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 94), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18D8[2] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 97), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18E4[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 136), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18E4[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 137), MEMORY_DEFAULT_NUM)); +} + +void fn_1_15D08(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { + HuSprPosSet(arg0, arg1, arg2 + arg4 / 2, arg3 + arg5 / 2); +} + +void fn_1_15DC8(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7) { + s32 var_r31; + s32 temp_r28; + + var_r31 = 0; + if (arg7 < 2) { + if ((temp_r28 = arg2 / 100) == 0) { + if (arg7 != 0) { + var_r31++; + } + HuSprBankSet(arg0, arg1, temp_r28); + fn_1_15D08(arg0, arg1, -1000, -1000, arg5, arg6); + } else { + HuSprBankSet(arg0, arg1, temp_r28); + fn_1_15D08(arg0, arg1, arg3 + arg5 * var_r31, arg4, arg5, arg6); + var_r31++; + } + } else { + arg1--; + } + if ((temp_r28 = (arg2 % 100) / 10) == 0 && arg2 / 100 == 0) { + if (arg7 != 0) { + var_r31++; + } + HuSprBankSet(arg0, arg1 + 1, temp_r28); + fn_1_15D08(arg0, arg1 + 1, -1000, -1000, arg5, arg6); + } else { + HuSprBankSet(arg0, arg1 + 1, temp_r28); + fn_1_15D08(arg0, arg1 + 1, arg3 + arg5 * var_r31, arg4, arg5, arg6); + var_r31++; + } + temp_r28 = arg2 % 10; + HuSprBankSet(arg0, arg1 + 2, temp_r28); + fn_1_15D08(arg0, arg1 + 2, arg3 + arg5 * var_r31, arg4, arg5, arg6); + var_r31++; +} + +void fn_1_161B8(void) { + s32 var_r30 = 16; + s32 var_r29 = 40; + s32 var_r28 = 0; + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + s32 i; + + while (TRUE) { + fn_1_938(); + if (HuPadBtnDown[0] & PAD_TRIGGER_R) { + var_r28++; + var_r28 %= 2; + } + if (var_r28 == 0) { + continue; + } + printWin(var_r30, var_r29, 220, 150, &sp10); + if (lbl_1_bss_19E4.unk04 == NULL) { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE"); + } else { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_19BC.unk04 == NULL) { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE"); + } else { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_1994.unk04 == NULL) { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> FALSE"); + } else { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> TRUE"); + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_18F4[i].unk04 == NULL) { + print8(var_r30, var_r29 + 30 + i * 10, 1.0f, "PROC_PLAYER%d -> FALSE", i); + } else { + print8(var_r30, var_r29 + 30 + i * 10, 1.0f, "PROC_PLAYER%d -> TRUE", i); + } + } + print8(var_r30, var_r29 + 80, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_1A0C.unk00, lbl_1_bss_1A0C.unk04, lbl_1_bss_1A0C.unk14); + print8(var_r30, var_r29 + 100, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(var_r30, var_r29 + 110 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, + lbl_1_bss_1A0C.unk38[i].unk00, lbl_1_bss_1A0C.unk38[i].unk04, lbl_1_bss_1A0C.unk38[i].unk08, + lbl_1_bss_1A0C.unk38[i].unk0C, lbl_1_bss_1A0C.unk38[i].unk14, lbl_1_bss_1A0C.unk38[i].unk10); + } + } +} + +void fn_1_16574(void) { + fn_1_958(30); + fn_1_16ED4(); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_938(); + } while (WipeStatGet() != 0); + fn_1_958(60); +} + +void fn_1_165C8(void) { + s32 sp8[5]; + s32 i; + + for (i = 0; i < 5; i++) { + sp8[i] = 0; + fn_1_1E28(lbl_1_bss_1994.unk00, i * 3 + 1, i * 3 + 2, 0, 1); + Hu3DData[lbl_1_bss_1994.unk00->model[i * 3 + 1]].rot.y = -90.0f; + } + do { + fn_1_938(); + for (i = 0; i < 5; i++) { + if (sp8[i] == 0) { + lbl_1_bss_1A0C.unk288[i].x -= 5.0f; + if (i == 0) { + if (lbl_1_bss_1A0C.unk288[i].x <= -175.0f) { + sp8[i] = 1; + lbl_1_bss_1A0C.unk288[i].x = -175.0f; + fn_1_1E28(lbl_1_bss_1994.unk00, i * 3 + 1, i * 3 + 1, 15, 1); + } + } else { + if (lbl_1_bss_1A0C.unk288[i].x <= -240.0f) { + sp8[i] = 1; + lbl_1_bss_1A0C.unk288[i].x = -240.0f; + fn_1_1E28(lbl_1_bss_1994.unk00, i * 3 + 1, i * 3 + 1, 15, 1); + } + } + } else if (sp8[i] == 1) { + Hu3DData[lbl_1_bss_1994.unk00->model[i * 3 + 1]].rot.y = fn_1_5FC(Hu3DData[lbl_1_bss_1994.unk00->model[i * 3 + 1]].rot.y, 17.5f, 10.0f); + if (Hu3DData[lbl_1_bss_1994.unk00->model[i * 3 + 1]].rot.y >= 14.9f) { + sp8[i] = 2; + } + } + } + for (i = 0; i < 5; i++) { + if (sp8[i] != 2) { + break; + } + } + } while (i != 5); + lbl_1_bss_1A0C.unk0C = fn_1_1834(MAKE_MESSID(38, 12), 0); +} + +s32 fn_1_16924(void) { + s32 var_r31; + s32 var_r30; + + var_r31 = 0; + var_r30 = 0; + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1A0C.unk14 != -1) { + if (HuPadBtnDown[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] & PAD_BUTTON_A) { + HuAudFXPlay(0x1C); + break; + } else if (HuPadBtnDown[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] & PAD_BUTTON_MENU) { + HuAudFXPlay(1); + var_r31 = 1; + break; + } + } else if (var_r30++ >= 300) { + var_r31 = 1; + break; + } + } + if (var_r31 == 0) { + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + fn_1_1A24(lbl_1_bss_1A0C.unk0C); + fn_1_1C460(); + fn_1_1CA98(); + fn_1_18558(); + fn_1_18F98(); + fn_1_1D77C(); + fn_1_1D964(); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_CROSS, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + lbl_1_bss_1A0C.unk10 = fn_1_1834(-1, 1); + } +} + +void fn_1_16AD4(void) { + lbl_1_bss_1A0C.unk24 = 1; + fn_1_1D44(lbl_1_bss_1A0C.unk10, MAKE_MESSID(38, lbl_1_bss_1A0C.unk2C8)); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1A0C.unk24++ > 5 && (HuPadBtnDown[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] & PAD_BUTTON_B)) { + HuAudFXPlay(3); + break; + } + if (HuPadStkX[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] >= 5 || (HuPadBtn[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] & PAD_BUTTON_RIGHT)) { + if (lbl_1_bss_1A0C.unk2C8 != 11) { + lbl_1_bss_1A0C.unk24 = 0; + } + lbl_1_bss_1A0C.unk2C4++; + if (lbl_1_bss_1A0C.unk2C4 >= 6) { + lbl_1_bss_1A0C.unk2C4 = 5; + } + lbl_1_bss_1A0C.unk2C8++; + if (lbl_1_bss_1A0C.unk2C8 >= 12) { + lbl_1_bss_1A0C.unk2C8 = 11; + } else { + fn_1_1CD60(); + fn_1_1D44(lbl_1_bss_1A0C.unk10, MAKE_MESSID(38, lbl_1_bss_1A0C.unk2C8)); + HuAudFXPlay(0); + fn_1_958(10); + } + } + if (HuPadStkX[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] <= -5 || (HuPadBtn[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] & PAD_BUTTON_LEFT)) { + if (lbl_1_bss_1A0C.unk2C8 != 0) { + lbl_1_bss_1A0C.unk24 = 0; + } + lbl_1_bss_1A0C.unk2C4--; + if (lbl_1_bss_1A0C.unk2C4 < 0) { + lbl_1_bss_1A0C.unk2C4 = 0; + } + lbl_1_bss_1A0C.unk2C8--; + if (lbl_1_bss_1A0C.unk2C8 < 0) { + lbl_1_bss_1A0C.unk2C8 = 0; + } else { + fn_1_1CD60(); + fn_1_1D44(lbl_1_bss_1A0C.unk10, MAKE_MESSID(38, lbl_1_bss_1A0C.unk2C8)); + HuAudFXPlay(0); + fn_1_958(10); + } + } + } + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + fn_1_1A24(lbl_1_bss_1A0C.unk10); + fn_1_1CB7C(); + fn_1_1C2F4(); + fn_1_19144(); + fn_1_184E8(); + fn_1_1DA64(); + fn_1_1D63C(); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_CROSS, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + lbl_1_bss_1A0C.unk0C = fn_1_1834(MAKE_MESSID(38, 12), 0); +} + +void fn_1_16ED4(void) { + s32 var_r30; + s32 i; + + for (i = 0; i < 5; i++) { + if (i == 0) { + lbl_1_bss_1A0C.unk288[i].x = 1800.0f; + lbl_1_bss_1A0C.unk288[i].y = 157.5f; + } else if (lbl_1_bss_1A0C.unk2CC == 1) { + if (i <= 2) { + var_r30 = 0; + } else { + var_r30 = 2; + } + lbl_1_bss_1A0C.unk288[i].x = 900.0f - 100.0f * var_r30; + lbl_1_bss_1A0C.unk288[i].y = 75.0f - 82.5f * (i - 1); + } else { + lbl_1_bss_1A0C.unk288[i].x = 900.0f - 100.0f * i; + lbl_1_bss_1A0C.unk288[i].y = 75.0f - 82.5f * (i - 1); + } + } + lbl_1_bss_1A0C.unk2C4 = 0; + lbl_1_bss_1A0C.unk2C8 = 0; + fn_1_1CB7C(); + fn_1_1C2F4(); + fn_1_19144(); + fn_1_184E8(); + fn_1_1DA64(); + fn_1_1D63C(); +} + +void fn_1_1712C(void) { + s32 temp_r3; + + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + if (SLSaveFlagGet() == 0) { + saveExecF = 0; + lbl_1_bss_18D4 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } + } + espInit(); + HuPrcVSleep(); + temp_r3 = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 32), 5000, 0); + espPosSet(temp_r3, 288.0f, 240.0f); + espAttrReset(temp_r3, 4); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_159A4(); + if (saveExecF == 1) { + GWGameStat.party_continue = 0; + } + SLCommonSet(); + if (SLSaveFlagGet() == 1) { + SLSave(); + } + saveExecF = 0; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_18D4 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_1728C(void) { + float sp8[2]; + s32 temp_r30 = 1; + s32 var_r29; + s32 var_r31; + + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + if (SLSaveFlagGet() == 0) { + lbl_1_bss_18D4 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } + } + espInit(); + HuPrcVSleep(); + espPosSet(var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 32), 5000, 0), 288.0f, 240.0f); + espAttrReset(var_r29, HUSPR_ATTR_DISPOFF); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + if (SLSaveFlagGet() == 1) { + HuWinInit(1); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(30, 22)); + var_r31 = HuWinExCreateStyled(-10000.0f, 150.0f, sp8[0], sp8[1], -1, 2); + winData[var_r31].active_pad = 1; + HuWinAttrSet(var_r31, 0x10); + HuWinExAnimIn(var_r31); + HuWinMesSet(var_r31, MAKE_MESSID(30, 22)); + temp_r30 = HuWinChoiceGet(var_r31, 0); + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + if (SLSaveFlagGet() == 1 && temp_r30 == 0) { + SLCommonSet(); + SLSaveBoardStory(); + SLSave(); + } + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_18D4 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +s32 fn_1_17484(s32 arg0) { + if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2))) { + return 1; + } + if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3))) { + return 1; + } + if (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4))) { + return 1; + } + if (arg0 == 3 && _CheckFlag(FLAG_ID_MAKE(0, 5))) { + return 1; + } + if (arg0 == 4 && _CheckFlag(FLAG_ID_MAKE(0, 6))) { + return 1; + } + if (arg0 == 5 && _CheckFlag(FLAG_ID_MAKE(0, 7))) { + return 1; + } + return 0; +} + +void fn_1_17570(void) { + s32 var_r30; + s32 i; + + var_r30 = 0; + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + do { + fn_1_938(); + } while (WipeStatGet() != 0); + CharModelKill(-1); + HuAudSeqAllFadeOut(1000); + HuAudSStreamAllFadeOut(1000); + lbl_1_bss_19E4.unk04 = NULL; + lbl_1_bss_19BC.unk04 = NULL; + lbl_1_bss_1994.unk04 = NULL; + for (i = 0; i < 4; i++) { + lbl_1_bss_18F4[i].unk04 = NULL; + } + if (GWPartyGet() == 1) { + HuPrcChildCreate(fn_1_1712C, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_938(); + } while (lbl_1_bss_18D4 != 1); + fn_1_958(30); + omOvlReturnEx(1, 1); + } else { + fn_1_159A4(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1A0C.unk38[i].unk10 != GWUnkB1Get()) { + continue; + } + _SetFlag(9); + switch (lbl_1_bss_1A0C.unk00) { + case 0: + if (_CheckFlag(2) == 0) { + _SetFlag(2); + var_r30 = 1; + } + break; + case 1: + if (_CheckFlag(3) == 0) { + _SetFlag(3); + var_r30 = 1; + } + break; + case 2: + if (_CheckFlag(4) == 0) { + _SetFlag(4); + var_r30 = 1; + } + break; + case 3: + if (_CheckFlag(5) == 0) { + _SetFlag(5); + var_r30 = 1; + } + break; + case 4: + if (_CheckFlag(6) == 0) { + _SetFlag(6); + var_r30 = 1; + } + break; + case 5: + if (_CheckFlag(7) == 0) { + _SetFlag(7); + var_r30 = 1; + } + break; + } + if (var_r30 == 1) { + if (lbl_1_bss_1A0C.unk38[i].unk18 == 0) { + if (lbl_1_bss_1A0C.unk00 == 5) { + GWGameStat.open_w06 = 1; + } + _ClearFlag(9); + OSReport("########## Next to BoardClear Event 10 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, _CheckFlag(2), _CheckFlag(9)); + fn_1_958(120); + HuPrcChildCreate(fn_1_1728C, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_938(); + } while (lbl_1_bss_18D4 != 1); + if (lbl_1_bss_1A0C.unk00 != 5) { + omOvlGotoEx(OVL_MSTORY, 1, 0, 0); + } else { + omOvlGotoEx(OVL_MSTORY2, 1, 1, 0); + } + } else { + switch (lbl_1_bss_1A0C.unk00) { + case 0: + _ClearFlag(2); + break; + case 1: + _ClearFlag(3); + break; + case 2: + _ClearFlag(4); + break; + case 3: + _ClearFlag(5); + break; + case 4: + _ClearFlag(6); + break; + case 5: + _ClearFlag(7); + break; + } + OSReport("########## Next to BoardMiss Event 01 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_17484(GWSystem.board), _CheckFlag(9)); + fn_1_958(120); + HuPrcChildCreate(fn_1_1728C, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_938(); + } while (lbl_1_bss_18D4 != 1); + if (lbl_1_bss_1A0C.unk00 != 5) { + omOvlGotoEx(OVL_MSTORY, 1, 1, 0); + } else { + omOvlGotoEx(OVL_MSTORY2, 1, 2, 0); + } + } + } else { + GWPlayerCfg->group = 0; + GWPlayerCfg->character = lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk10; + GWPlayerCfg->pad_idx = lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14; + GWPlayerCfg->iscom = 0; + for (i = 0; i < 4; i++) { + GWPlayer[i].character = GWPlayerCfg[i].character; + GWPlayer[i].port = GWPlayerCfg[i].pad_idx; + GWPlayer[i].com = GWPlayerCfg[i].iscom; + GWPlayer[i].team = GWPlayerCfg[i].group; + } + OSReport("########## Next to MapSelect Event 11 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_17484(GWSystem.board), _CheckFlag(9)); + fn_1_958(120); + HuPrcChildCreate(fn_1_1728C, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_938(); + } while (lbl_1_bss_18D4 != 1); + omOvlGotoEx(OVL_MENT, 1, 10, 0); + } + } + } + while (TRUE) { + fn_1_938(); + } +} + +void fn_1_17DC0(omObjData* arg0, StructBss1530* arg1) { + fn_1_16574(); + fn_1_165C8(); + while (TRUE) { + fn_1_938(); + if (fn_1_16924() != 0) { + break; + } + fn_1_16AD4(); + } + fn_1_17570(); + arg1->unk04 = 0; +} + +void fn_1_18080(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_18D0, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_19E4.unk00 = temp_r3; + lbl_1_bss_19E4.unk04 = (void*) fn_1_17DC0; + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_19E4.unk04 != NULL) { + lbl_1_bss_19E4.unk04(temp_r3, &lbl_1_bss_19E4); + } + } +} + +void fn_1_1811C(omObjData* arg0, s32 arg1) { + s32 var_r29; + s32 i; + + arg0->work[0] = HuSprGrpCreate(1); + var_r29 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 75) + arg1, MEMORY_DEFAULT_NUM)), 1000, 0); + HuSprGrpMemberSet(arg0->work[0], 0, var_r29); + // TODO: figure out the actual args of this fn_1_15D08 call. + // It will match as long as the values (arg2 + arg4 / 2) and (arg3 + arg5 / 2) are preserved. + fn_1_15D08(arg0->work[0], 0, 288, 240, 0, 0); + HuSprGrpPosSet(arg0->work[0], 0.0f, 0.0f); + HuSprGrpDrawNoSet(arg0->work[0], 0x7F); + { + s32 spC[] = { + DATA_MAKE_NUM(DATADIR_MSTORY3, 104), + DATA_MAKE_NUM(DATADIR_MSTORY3, 105), + DATA_MAKE_NUM(DATADIR_MSTORY3, 106), + DATA_MAKE_NUM(DATADIR_MSTORY3, 107), + DATA_MAKE_NUM(DATADIR_MSTORY3, 108), + DATA_MAKE_NUM(DATADIR_MSTORY3, 109), + DATA_MAKE_NUM(DATADIR_MSTORY3, 106) + }; + + for (i = 0; i < 7; i++) { + arg0->model[i + 1] = Hu3DModelCreateFile(spC[i]); + Hu3DModelPosSet(arg0->model[i + 1], -122.5 + 42.5 * i, 185.0f, -10.0f); + Hu3DModelRotSet(arg0->model[i + 1], 0.0f, 1980.0f, 0.0f); + } + } +} + +void fn_1_18334(omObjData* arg0, s32* arg1) { + s32 sp8 = 0; + s32 i; + + for (i = 0; i < 7; i++) { + if (arg1[2] == 0 && Hu3DData[arg0->model[i + 1]].pos.x >= lbl_1_bss_1A0C.unk288[0].x) { + Hu3DData[arg0->model[i + 1]].rot.y = fn_1_5FC(Hu3DData[arg0->model[i + 1]].rot.y, 0.0f, 20.0f); + } else if (arg1[2] == 1 && Hu3DData[arg0->model[i + 1]].pos.x <= lbl_1_bss_1A0C.unk288[0].x) { + Hu3DData[arg0->model[i + 1]].rot.y = fn_1_5FC(Hu3DData[arg0->model[i + 1]].rot.y, 1980.0f, 20.0f); + } + } +} + +void fn_1_184E8(void) { + s32 i; + + for (i = 0; i < 7; i++) { + Hu3DModelAttrReset(lbl_1_bss_19BC.unk00->model[i + 1], HU3D_ATTR_DISPOFF); + } + lbl_1_bss_19BC.unk04 = (void*) fn_1_18334; +} + +void fn_1_18558(void) { + s32 i; + + for (i = 0; i < 7; i++) { + Hu3DModelAttrSet(lbl_1_bss_19BC.unk00->model[i + 1], HU3D_ATTR_DISPOFF); + } + for (i = 0; i < 7; i++) { + if (lbl_1_bss_19BC.unk08 != 0) { + Hu3DData[lbl_1_bss_19BC.unk00->model[i + 1]].rot.y = 1980.0f; + } else { + Hu3DData[lbl_1_bss_19BC.unk00->model[i + 1]].rot.y = 0.0f; + } + } + lbl_1_bss_19BC.unk04 = NULL; +} + +void fn_1_18668(omObjData* arg0, s32 arg1) { + s32 var_r30; + s32 i; + + // TODO: figure out the actual args of fn_1_15D08 calls. + // It will match as long as the values (arg2 + arg4 / 2) and (arg3 + arg5 / 2) are preserved. + arg0->work[1] = HuSprGrpCreate(8); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 116), MEMORY_DEFAULT_NUM)), 900, 0); + HuSprGrpMemberSet(arg0->work[1], 0, var_r30); + fn_1_15D08(arg0->work[1], 0, 368, 171, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 117), MEMORY_DEFAULT_NUM)), 600, 0); + HuSprGrpMemberSet(arg0->work[1], 1, var_r30); + fn_1_15D08(arg0->work[1], 1, 292, 168, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 118), MEMORY_DEFAULT_NUM)), 500, 0); + HuSprGrpMemberSet(arg0->work[1], 2, var_r30); + fn_1_15D08(arg0->work[1], 2, 292, 168, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 119), MEMORY_DEFAULT_NUM)), 500, 0); + HuSprGrpMemberSet(arg0->work[1], 3, var_r30); + fn_1_15D08(arg0->work[1], 3, 292, 168, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(arg1 + DATA_MAKE_NUM(DATADIR_MSTORY3, 110), MEMORY_DEFAULT_NUM)), 500, 0); + HuSprGrpMemberSet(arg0->work[1], 4, var_r30); + fn_1_15D08(arg0->work[1], 4, 96, 53, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 138), MEMORY_DEFAULT_NUM)), 500, 0); + HuSprGrpMemberSet(arg0->work[1], 5, var_r30); + fn_1_15D08(arg0->work[1], 5, 407, 37, 0, 0); + for (i = 0; i < 2; i++) { + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 139), MEMORY_DEFAULT_NUM)), 500, 0); + HuSprGrpMemberSet(arg0->work[1], i + 6, var_r30); + } + // TODO: figure out the actual value of arg7. It will match as long as arg7 >= 2. + fn_1_15DC8(arg0->work[1], 6, lbl_1_bss_1A0C.unk08, 293, 19, 36, 36, 2); + arg0->work[2] = HuSprGrpCreate(2); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 120), MEMORY_DEFAULT_NUM)), 800, 0); + HuSprGrpMemberSet(arg0->work[2], 0, var_r30); + fn_1_15D08(arg0->work[2], 0, 34, 119, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 121), MEMORY_DEFAULT_NUM)), 400, 0); + HuSprGrpMemberSet(arg0->work[2], 1, var_r30); + fn_1_15D08(arg0->work[2], 1, 36, 121, 0, 0); + arg0->work[3] = HuSprGrpCreate(12); + for (i = 0; i < 12; i++) { + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(i + DATA_MAKE_NUM(DATADIR_MSTORY3, 124), MEMORY_DEFAULT_NUM)), 700, 0); + HuSprGrpMemberSet(arg0->work[3], i, var_r30); + fn_1_15D08(arg0->work[3], i, i * 66, 16, 58, 0); + } + HuSprGrpPosSet(arg0->work[2], 164 + lbl_1_bss_1A0C.unk2C4 * 66, 78.0f); + HuSprGrpDrawNoSet(arg0->work[1], 0x7F); + HuSprGrpDrawNoSet(arg0->work[2], 0x7F); + HuSprGrpDrawNoSet(arg0->work[3], 0x7F); +} + +void fn_1_18CFC(omObjData* arg0) { + float temp_f31; + float var_f30; + s32 var_r29; + s32 var_r28; + s32 var_r30; + + var_r28 = lbl_1_bss_1A0C.unk2C8 - lbl_1_bss_1A0C.unk2C4; + if (var_r28 < 0) { + var_r28 = 0; + } + temp_f31 = HuSprGrpData[arg0->work[2]].x; + var_f30 = 164 + lbl_1_bss_1A0C.unk2C4 * 66; + temp_f31 = fn_1_5FC(temp_f31, var_f30, 2.0f); + HuSprGrpPosSet(arg0->work[1], -5.0f, 25.0f); + HuSprGrpPosSet(arg0->work[2], temp_f31, 78.0f); + HuSprGrpPosSet(arg0->work[3], 169 - var_r28 * 66, 82.0f); + for (var_r30 = 0; var_r30 < 12; var_r30++) { + if (var_r30 < var_r28 || var_r30 > var_r28 + 5) { + HuSprAttrSet(arg0->work[3], var_r30, HUSPR_ATTR_DISPOFF); + } else { + HuSprAttrReset(arg0->work[3], var_r30, HUSPR_ATTR_DISPOFF); + } + } + var_r29 = lbl_1_bss_1A0C.unk2C8 - lbl_1_bss_1A0C.unk2C4; + if (var_r29 < 0) { + var_r29 = 0; + } + if (var_r29 == 0) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 2, 2); + } else if (var_r29 == 1) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 2, 0); + } + if (var_r29 == 6) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 3, 2); + } else if (var_r29 == 5) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 3, 0); + } +} + +void fn_1_18F98(void) { + s32 var_r30; + s32 i; + + for (i = 0; i < 8; i++) { + HuSprAttrReset(lbl_1_bss_19BC.unk00->work[1], i, HUSPR_ATTR_DISPOFF); + } + for (i = 0; i < 2; i++) { + HuSprAttrReset(lbl_1_bss_19BC.unk00->work[2], i, HUSPR_ATTR_DISPOFF); + } + for (i = 0; i < 12; i++) { + HuSprAttrReset(lbl_1_bss_19BC.unk00->work[3], i, HUSPR_ATTR_DISPOFF); + } + var_r30 = lbl_1_bss_1A0C.unk2C8 - lbl_1_bss_1A0C.unk2C4; + if (var_r30 < 0) { + var_r30 = 0; + } + if (var_r30 == 0) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 2, 2); + } else if (var_r30 == 1) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 2, 0); + } + if (var_r30 == 6) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 3, 2); + } else if (var_r30 == 5) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 3, 0); + } + lbl_1_bss_19BC.unk04 = (void*) fn_1_18CFC; +} + +void fn_1_19144(void) { + s32 i; + + for (i = 0; i < 8; i++) { + HuSprAttrSet(lbl_1_bss_19BC.unk00->work[1], i, HUSPR_ATTR_DISPOFF); + } + for (i = 0; i < 2; i++) { + HuSprAttrSet(lbl_1_bss_19BC.unk00->work[2], i, HUSPR_ATTR_DISPOFF); + } + for (i = 0; i < 12; i++) { + HuSprAttrSet(lbl_1_bss_19BC.unk00->work[3], i, HUSPR_ATTR_DISPOFF); + } + lbl_1_bss_19BC.unk04 = NULL; +} + +void fn_1_19214(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_18D0, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_19BC.unk00 = temp_r3; + lbl_1_bss_19BC.unk04 = NULL; + fn_1_1811C(temp_r3, lbl_1_bss_1A0C.unk00); + fn_1_18668(temp_r3, lbl_1_bss_1A0C.unk00); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_19BC.unk04 != NULL) { + lbl_1_bss_19BC.unk04(temp_r3, &lbl_1_bss_19BC); + } + } +} + +void fn_1_194A0(void) { + s32 var_r29; + s32 i; + s32 j; + + for (i = 0; i < 12; i++) { + var_r29 = 0; + for (j = 0; j < 4; j++) { + if (var_r29 <= lbl_1_bss_1A0C.unk38[j].unk34[i][0]) { + var_r29 = lbl_1_bss_1A0C.unk38[j].unk34[i][0]; + } + } + if (var_r29 > 0) { + for (j = 0; j < 4; j++) { + if (var_r29 == lbl_1_bss_1A0C.unk38[j].unk34[i][0]) { + lbl_1_bss_1A0C.unk38[j].unk34[i][1] = 1; + } + } + } + } +} + +void fn_1_19590(StructUnk38Bss1A0C* arg0, s32 arg1, s32 arg2) { + arg0->unk00 = arg1; + arg0->unk04 = GWPlayerCfg[arg0->unk00].group; + arg0->unk08 = GWPlayerCfg[arg0->unk00].iscom; + arg0->unk0C = GWPlayerCfg[arg0->unk00].diff; + arg0->unk10 = GWPlayerCfg[arg0->unk00].character; + arg0->unk14 = GWPlayerCfg[arg0->unk00].pad_idx; + arg0->unk18 = GWPlayer[arg0->unk00].rank; + arg0->unk34[0][0] = GWPlayer[arg0->unk00].stars; + arg0->unk34[1][0] = GWPlayer[arg0->unk00].coins; + arg0->unk34[2][0] = GWPlayer[arg0->unk00].coins_mg; + arg0->unk34[3][0] = GWPlayer[arg0->unk00].coins_max; + arg0->unk54 = GWPlayer[arg0->unk00].blue_count; + arg0->unk5C = GWPlayer[arg0->unk00].red_count; + arg0->unk64 = GWPlayer[arg0->unk00].question_count; + arg0->unk6C = GWPlayer[arg0->unk00].fortune_count; + arg0->unk74 = GWPlayer[arg0->unk00].bowser_count; + arg0->unk7C = GWPlayer[arg0->unk00].battle_count; + arg0->unk84 = GWPlayer[arg0->unk00].mushroom_count; + arg0->unk8C = GWPlayer[arg0->unk00].warp_count; +} + +void fn_1_197B4(s32 arg0) { + s32 sp74[4][2]; + s32 sp54[4][2]; + s32 sp44[4]; + s32 sp34[4]; + s32 sp24[4]; + s32 var_r28; + s32 var_r29; + s32 j; + s32 i; + + var_r28 = 0; + sp44[0] = 0; + for (i = 1; i < 4; i++) { + sp44[i] = sp44[i - 1] + 1; + if (sp44[i] >= 4) { + sp44[i] = 0; + } + } + for (i = 0; i < 4; i++) { + sp34[i] = GWPlayer[sp44[i]].rank; + } + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (i == sp34[j]) { + sp74[var_r28][0] = sp44[j]; + sp74[var_r28][1] = sp34[j]; + var_r28++; + } + } + } + if (lbl_1_bss_1A0C.unk2CC == 1) { + var_r29 = lbl_1_bss_1A0C.unk2D0; + for (i = 0; i < 4; i++) { + sp24[0] = GWPlayer[sp74[0][0]].team; + sp24[1] = GWPlayer[sp74[1][0]].team; + sp24[2] = GWPlayer[sp74[2][0]].team; + sp24[3] = GWPlayer[sp74[3][0]].team; + sp54[i][0] = sp74[i][0]; + sp54[i][1] = sp74[i][1]; + } + OSReport("########## Sort Start WIN:%d IDX (%d,%d,%d), (%d,%d,%d), (%d,%d,%d), (%d,%d,%d)\n", var_r29, + sp24[0], sp74[0][0], sp74[0][1], sp24[1], sp74[1][0], sp74[1][1], + sp24[2], sp74[2][0], sp74[2][1], sp24[3], sp74[3][0], sp74[3][1]); + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (sp24[j] != -1 && var_r29 == sp24[j]) { + sp24[j] = -1; + sp74[i][0] = sp54[j][0]; + sp74[i][1] = sp54[j][1]; + break; + } + } + if (i == 1) { + var_r29++; + var_r29 %= 2; + } + } + OSReport("########## Sort End WIN:%d IDX %d, %d, %d, %d\n", var_r29, sp74[0][0], sp74[1][0], sp74[2][0], sp74[3][0]); + OSReport("########## Sort End RANK %d, %d, %d, %d,\n", sp74[0][1], sp74[1][1], sp74[2][1], sp74[3][1]); + } + for (i = 0; i < 4; i++) { + fn_1_19590(&lbl_1_bss_1A0C.unk38[i], sp74[i][0], sp74[i][1]); + if (arg0 == sp74[i][0]) { + lbl_1_bss_1A0C.unk04 = i; + } + } +} + +void fn_1_1A008(omObjData* arg0, s32 arg1) { + s32 spDC; + s32 spD8; + s32 spD4; + s32 spD0; + s32 spCC; + s32 spC8; + StructUnk38Bss1A0C* temp_r27; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + // TODO: figure out the actual args of fn_1_15D08 calls. + // It will match as long as the values (arg2 + arg4 / 2) and (arg3 + arg5 / 2) are preserved. + temp_r27 = &lbl_1_bss_1A0C.unk38[arg1]; + if (lbl_1_bss_1A0C.unk2CC == 1) { + spD4 = lbl_1_bss_1A0C.unk2D0; + if (arg1 > 1) { + spD4++; + spD4 %= 2; + } + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 140) + spD4); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 142) + spD4); + arg0->motion[2] = Hu3DMotionIDGet(arg0->model[2]); + if (arg1 <= 1) { + spD4 = 0; + } else { + spD4 = 1; + } + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 100) + spD4); + Hu3DModelHookSet(arg0->model[1], "results_flag04-hook_cubes", arg0->model[3]); + } else { + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 98)); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 99)); + arg0->motion[2] = Hu3DMotionIDGet(arg0->model[2]); + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 100) + temp_r27->unk18); + Hu3DModelHookSet(arg0->model[1], "results_flag04-hook_cubes", arg0->model[3]); + } + arg0->work[0] = HuSprGrpCreate(12); + if (lbl_1_bss_1A0C.unk2CC == 1) { + spD0 = 35; + spCC = 10; + spC8 = 65; + if (arg1 <= 1) { + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 81), MEMORY_DEFAULT_NUM)), 900, 0); + } else { + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 82), MEMORY_DEFAULT_NUM)), 900, 0); + } + HuSprGrpMemberSet(arg0->work[0], 0, var_r30); + fn_1_15D08(arg0->work[0], 0, 40, spD0 + 36, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 85) + temp_r27->unk10, MEMORY_DEFAULT_NUM)), 900, 0); + HuSprGrpMemberSet(arg0->work[0], 1, var_r30); + if (arg1 % 2 == 0) { + fn_1_15D08(arg0->work[0], 1, 119, spD0 + 34, 0, 0); + } else { + fn_1_15D08(arg0->work[0], 1, 189, -spD0 + 24, 0, 0); + } + var_r30 = HuSprCreate(lbl_1_bss_18D8[0], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 2, var_r30); + fn_1_15D08(arg0->work[0], 2, 262, spCC + 29, 0, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[2], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 3, var_r30); + fn_1_15D08(arg0->work[0], 3, 312, spCC + 29, 0, 0); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + spDC = lbl_1_bss_1A0C.unk38[0].unk34[0][0] + lbl_1_bss_1A0C.unk38[1].unk34[0][0]; + spD8 = lbl_1_bss_1A0C.unk38[2].unk34[0][0] + lbl_1_bss_1A0C.unk38[3].unk34[0][0]; + if (arg1 <= 1) { + if (spDC >= spD8) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[1], 900, 0); + } else { + var_r30 = HuSprCreate(lbl_1_bss_18EC[0], 900, 0); + } + } else { + if (spDC <= spD8) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[1], 900, 0); + } else { + var_r30 = HuSprCreate(lbl_1_bss_18EC[0], 900, 0); + } + } + HuSprGrpMemberSet(arg0->work[0], var_r28 + 4, var_r30); + } + if (arg1 <= 1) { + var_r29 = lbl_1_bss_1A0C.unk38[0].unk34[0][0] + lbl_1_bss_1A0C.unk38[1].unk34[0][0]; + if (var_r29 >= 999) { + var_r29 = 999; + } + fn_1_15DC8(arg0->work[0], 4, var_r29, 340, spCC + 11, 26, 36, 0); + } else { + var_r29 = lbl_1_bss_1A0C.unk38[2].unk34[0][0] + lbl_1_bss_1A0C.unk38[3].unk34[0][0]; + if (var_r29 >= 999) { + var_r29 = 999; + } + fn_1_15DC8(arg0->work[0], 4, var_r29, 340, spCC + 11, 26, 36, 0); + } + var_r30 = HuSprCreate(lbl_1_bss_18D8[1], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 7, var_r30); + fn_1_15D08(arg0->work[0], 7, 262, spC8 + 29, 0, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[2], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 8, var_r30); + fn_1_15D08(arg0->work[0], 8, 312, spC8 + 29, 0, 0); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + spDC = lbl_1_bss_1A0C.unk38[0].unk34[1][0] + lbl_1_bss_1A0C.unk38[1].unk34[1][0]; + spD8 = lbl_1_bss_1A0C.unk38[2].unk34[1][0] + lbl_1_bss_1A0C.unk38[3].unk34[1][0]; + if (arg1 <= 1) { + if (spDC >= spD8) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[1], 900, 0); + } else { + var_r30 = HuSprCreate(lbl_1_bss_18EC[0], 900, 0); + } + } else { + if (spDC <= spD8) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[1], 900, 0); + } else { + var_r30 = HuSprCreate(lbl_1_bss_18EC[0], 900, 0); + } + } + HuSprGrpMemberSet(arg0->work[0], var_r28 + 9, var_r30); + } + if (arg1 <= 1) { + var_r29 = lbl_1_bss_1A0C.unk38[0].unk34[1][0] + lbl_1_bss_1A0C.unk38[1].unk34[1][0]; + if (var_r29 >= 999) { + var_r29 = 999; + } + fn_1_15DC8(arg0->work[0], 9, var_r29, 340, spC8 + 11, 26, 36, 0); + } else { + var_r29 = lbl_1_bss_1A0C.unk38[2].unk34[1][0] + lbl_1_bss_1A0C.unk38[3].unk34[1][0]; + if (var_r29 >= 999) { + var_r29 = 999; + } + fn_1_15DC8(arg0->work[0], 9, var_r29, 340, spC8 + 11, 26, 36, 0); + } + } else { + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 81) + temp_r27->unk18, MEMORY_DEFAULT_NUM)), 900, 0); + HuSprGrpMemberSet(arg0->work[0], 0, var_r30); + fn_1_15D08(arg0->work[0], 0, 25, 37, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 85) + temp_r27->unk10, MEMORY_DEFAULT_NUM)), 900, 0); + HuSprGrpMemberSet(arg0->work[0], 1, var_r30); + fn_1_15D08(arg0->work[0], 1, 87, 29, 0, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[0], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 2, var_r30); + fn_1_15D08(arg0->work[0], 2, 144, 29, 0, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[2], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 3, var_r30); + fn_1_15D08(arg0->work[0], 3, 178, 29, 0, 0); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[temp_r27->unk34[0][1]], 900, 0); + HuSprGrpMemberSet(arg0->work[0], (var_r28 + 4), var_r30); + } + fn_1_15DC8(arg0->work[0], 4, temp_r27->unk34[0][0], 190, 11, 26, 36, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[1], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 7, var_r30); + fn_1_15D08(arg0->work[0], 7, 304, 29, 0, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[2], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 8, var_r30); + fn_1_15D08(arg0->work[0], 8, 338, 29, 0, 0); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[temp_r27->unk34[1][1]], 900, 0); + HuSprGrpMemberSet(arg0->work[0], var_r28 + 9, var_r30); + } + fn_1_15DC8(arg0->work[0], 9, temp_r27->unk34[1][0], 350, 11, 26, 36, 0); + } + lbl_1_bss_18F4[var_r28].unk14 = 1000 + rand8() * 5; +} + +void fn_1_1BEFC(omObjData* arg0, StructBss1530* arg1) { + Mtx sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + s32 var_r29; + + if (lbl_1_bss_1A0C.unk2CC == 1) { + if (arg1->unk08 % 2 == 1) { + Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); + for (var_r29 = 0; var_r29 < 12; var_r29++) { + HuSprAttrSet(arg0->work[0], var_r29, 4); + } + } + HuSprAttrReset(arg0->work[0], 1, HUSPR_ATTR_DISPOFF); + Hu3DModelPosSet(arg0->model[1], lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].x + 15.0f, lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].y + 25.0f - 35.0f, lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].z); + } else { + Hu3DModelPosSet(arg0->model[1], lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].x + 15.0f, lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].y + 25.0f, lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].z); + } + if (Hu3DData[arg0->model[1]].pos.x <= -195.0f) { + Hu3DData[arg0->model[1]].pos.x = -195.0f; + } + Hu3DModelObjMtxGet(arg0->model[1], "results_flag04-hook_flag", sp2C); + Hu3DModelPosSet(arg0->model[2], sp2C[0][3], sp2C[1][3], sp2C[2][3]); + if (arg1->unk0C++ >= arg1->unk14) { + arg1->unk0C = 0; + arg1->unk14 = rand8() * 5 + 1000; + fn_1_1E28(arg0, 2, 2, 0, 0); + } + Hu3DModelRotSet(arg0->model[3], 0.0f, arg1->unk10 += 3, 0.0f); + if (arg1->unk10 >= 360) { + arg1->unk10 -= 360; + } + sp8.x = Hu3DData[arg0->model[1]].pos.x; + sp8.y = lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].y + 25.0f; + sp8.z = Hu3DData[arg0->model[1]].pos.z; + sp20.x = sp8.x + 24.0f; + sp20.y = sp8.y + 40.0f; + sp20.z = sp8.z; + Hu3D3Dto2D(&sp20, 1, &sp14); + HuSprGrpPosSet(arg0->work[0], sp14.x, sp14.y); +} + +void fn_1_1C2F4(void) { + s32 var_r30; + s32 var_r31; + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + for (var_r31 = 0; var_r31 < 3; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_18F4[var_r30].unk00->model[var_r31 + 1], HU3D_ATTR_DISPOFF); + } + if (lbl_1_bss_1A0C.unk2CC == 1) { + if (var_r30 % 2 == 0) { + for (var_r31 = 0; var_r31 < 12; var_r31++) { + HuSprAttrReset(lbl_1_bss_18F4[var_r30].unk00->work[0], var_r31, HUSPR_ATTR_DISPOFF); + } + } + HuSprAttrReset(lbl_1_bss_18F4[var_r30].unk00->work[0], 1, HUSPR_ATTR_DISPOFF); + } else { + for (var_r31 = 0; var_r31 < 12; var_r31++) { + HuSprAttrReset(lbl_1_bss_18F4[var_r30].unk00->work[0], var_r31, HUSPR_ATTR_DISPOFF); + } + } + lbl_1_bss_18F4[var_r30].unk04 = (void*) fn_1_1BEFC; + } +} + +void fn_1_1C460(void) { + s32 var_r30; + s32 var_r31; + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + for (var_r31 = 0; var_r31 < 3; var_r31++) { + Hu3DModelAttrSet(lbl_1_bss_18F4[var_r30].unk00->model[var_r31 + 1], HU3D_ATTR_DISPOFF); + } + for (var_r31 = 0; var_r31 < 12; var_r31++) { + HuSprAttrSet(lbl_1_bss_18F4[var_r30].unk00->work[0], var_r31, HUSPR_ATTR_DISPOFF); + } + lbl_1_bss_18F4[var_r30].unk04 = NULL; + } +} + +void fn_1_1C534(omObjData* arg0, s32 arg1) { + StructUnk38Bss1A0C* temp_r25; + s32 var_r22; + s32 i; + s32 j; + + temp_r25 = &lbl_1_bss_1A0C.unk38[arg1]; + arg0->work[1] = HuSprGrpCreate(1); + var_r22 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 122), MEMORY_DEFAULT_NUM)), 700, 0); + HuSprGrpMemberSet(arg0->work[1], 0, var_r22); + HuSprBankSet(arg0->work[1], 0, temp_r25->unk10); + // TODO: figure out the actual args of this fn_1_15D08 call. + // It will match as long as the values (arg2 + arg4 / 2) and (arg3 + arg5 / 2) are preserved. + fn_1_15D08(arg0->work[1], 0, 66, 21, 0, 0); + arg0->work[2] = HuSprGrpCreate(0x24); + for (i = 0; i < 12; i++) { + for (j = 0; j < 3; j++) { + var_r22 = HuSprCreate(lbl_1_bss_18E4[temp_r25->unk34[i][1]], 700, 0); + HuSprGrpMemberSet(arg0->work[2], j + i * 3, var_r22); + } + fn_1_15DC8(arg0->work[2], i * 3, temp_r25->unk34[i][0], i * 66, 0, 20, 32, 1); + } + HuSprGrpDrawNoSet(arg0->work[1], 0x7F); + HuSprGrpDrawNoSet(arg0->work[2], 0x7F); +} + +void fn_1_1C914(omObjData* arg0, StructBss1530* arg1) { + s32 i; + s32 j; + s32 var_r28; + + var_r28 = lbl_1_bss_1A0C.unk2C8 - lbl_1_bss_1A0C.unk2C4; + if (var_r28 < 0) { + var_r28 = 0; + } + HuSprGrpPosSet(arg0->work[1], 17.0f, arg1->unk08 * 48 + 118); + HuSprGrpPosSet(arg0->work[2], 169 - var_r28 * 66, arg1->unk08 * 48 + 123); + for (i = 0; i < 12; i++) { + for (j = 0; j < 3; j++) { + if (i < var_r28 || i > var_r28 + 5) { + HuSprAttrSet(arg0->work[2], j + i * 3, HUSPR_ATTR_DISPOFF); + } else { + HuSprAttrReset(arg0->work[2], j + i * 3, HUSPR_ATTR_DISPOFF); + } + } + } +} + +void fn_1_1CA98(void) { + s32 i, j, k; + + for (i = 0; i < 4; i++) { + HuSprAttrReset(lbl_1_bss_18F4[i].unk00->work[1], 0, HUSPR_ATTR_DISPOFF); + for (j = 0; j < 12; j++) { + for (k = 0; k < 3; k++) { + HuSprAttrReset(lbl_1_bss_18F4[i].unk00->work[2], k + j * 3, HUSPR_ATTR_DISPOFF); + } + } + lbl_1_bss_18F4[i].unk04 = (void*) fn_1_1C914; + } +} + +void fn_1_1CB7C(void) { + s32 i, j, k; + + for (i = 0; i < 4; i++) { + HuSprAttrSet(lbl_1_bss_18F4[i].unk00->work[1], 0, HUSPR_ATTR_DISPOFF); + for (j = 0; j < 12; j++) { + for (k = 0; k < 3; k++) { + HuSprAttrSet(lbl_1_bss_18F4[i].unk00->work[2], k + j * 3, HUSPR_ATTR_DISPOFF); + } + } + lbl_1_bss_18F4[i].unk04 = NULL; + } +} + +void fn_1_1CC5C(void) { + omObjData* temp_r3; + s32 temp_r31; + + temp_r31 = lbl_1_bss_1A0C.unk18++; + temp_r3 = omAddObjEx(lbl_1_bss_18D0, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_18F4[temp_r31].unk00 = temp_r3; + lbl_1_bss_18F4[temp_r31].unk04 = NULL; + lbl_1_bss_18F4[temp_r31].unk08 = temp_r31; + fn_1_1A008(temp_r3, temp_r31); + fn_1_1C534(temp_r3, temp_r31); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_18F4[temp_r31].unk04 != NULL) { + lbl_1_bss_18F4[temp_r31].unk04(temp_r3, &lbl_1_bss_18F4[temp_r31]); + } + } +} + +void fn_1_1CD60(void) { + if (lbl_1_bss_1994.unk00->work[0] != 1) { + fn_1_1E28(lbl_1_bss_1994.unk00, 4, 6, 15, 0); + lbl_1_bss_1994.unk00->work[0] = 1; + lbl_1_bss_1994.unk00->work[1] = 4; + lbl_1_bss_1994.unk00->work[2] = 16; + } +} + +void fn_1_1CDF0(omObjData* arg0) { + s32 sp20[] = { + DATA_MAKE_NUM(DATADIR_MSTORY3, 46), + DATA_MAKE_NUM(DATADIR_MSTORY3, 40), + DATA_MAKE_NUM(DATADIR_MSTORY3, 52), + DATA_MAKE_NUM(DATADIR_MSTORY3, 58), + DATA_MAKE_NUM(DATADIR_MSTORY3, 64) + }; + s32 sp34[][3] = { + { DATA_MAKE_NUM(DATADIR_MSTORY3, 47), DATA_MAKE_NUM(DATADIR_MSTORY3, 48), DATA_MAKE_NUM(DATADIR_MSTORY3, 49) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 41), DATA_MAKE_NUM(DATADIR_MSTORY3, 42), DATA_MAKE_NUM(DATADIR_MSTORY3, 43) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 53), DATA_MAKE_NUM(DATADIR_MSTORY3, 54), DATA_MAKE_NUM(DATADIR_MSTORY3, 55) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 59), DATA_MAKE_NUM(DATADIR_MSTORY3, 60), DATA_MAKE_NUM(DATADIR_MSTORY3, 61) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 65), DATA_MAKE_NUM(DATADIR_MSTORY3, 66), DATA_MAKE_NUM(DATADIR_MSTORY3, 67) } + }; + s32 i; + + for (i = 0; i < 5; i++) { + arg0->model[i * 3 + 1] = Hu3DModelCreateFile(sp20[i]); + arg0->motion[i * 3 + 1] = Hu3DJointMotionFile(arg0->model[i * 3 + 1], sp34[i][0]); + arg0->motion[i * 3 + 2] = Hu3DJointMotionFile(arg0->model[i * 3 + 1], sp34[i][1]); + arg0->motion[i * 3 + 3] = Hu3DJointMotionFile(arg0->model[i * 3 + 1], sp34[i][2]); + Hu3DModelRotSet(arg0->model[i * 3 + 1], 17.5f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[i * 3 + 1], 0.575f, 0.575f, 0.575f); + fn_1_1E28(arg0, i * 3 + 1, i * 3 + 1, 0, 1); + { + s32 sp8[] = { 9, 14, 10, 11, 12, 13 }; + + if (i != 3) { + CharModelEffectNpcInit(arg0->model[i * 3 + 1], arg0->motion[i * 3 + 2], 1, sp8[i]); + CharModelEffectEnableSet(sp8[i], 0); + } + } + } +} + +void fn_1_1D124(omObjData* arg0, StructBss1530* arg1) { + s32 i; + + for (i = 0; i < 5; i++) { + Hu3DModelPosSet(arg0->model[i * 3 + 1], lbl_1_bss_1A0C.unk288[i].x, lbl_1_bss_1A0C.unk288[i].y, lbl_1_bss_1A0C.unk288[i].z); + if (i == 3) { + Hu3DData[arg0->model[i * 3 + 1]].pos.y += 20.0f; + } + } + if (arg1->unk08++ >= 3000) { + arg1->unk08 = 0; + arg1->unk0C = 1; + lbl_1_bss_19BC.unk08++; + lbl_1_bss_19BC.unk08 %= 2; + fn_1_1E28(lbl_1_bss_1994.unk00, 1, 2, 15, 1); + } + if (arg1->unk0C == 1) { + lbl_1_bss_1A0C.unk288[0].x += -5.0f + 10.0f * lbl_1_bss_19BC.unk08; + if (lbl_1_bss_19BC.unk08 != 0) { + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = fn_1_5FC(Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y, 90.0f, 5.0f); + if (lbl_1_bss_1A0C.unk288[0].x >= 185.0f) { + arg1->unk0C = 2; + lbl_1_bss_1A0C.unk288[0].x = 185.0f; + fn_1_1E28(lbl_1_bss_1994.unk00, 1, 1, 15, 1); + } + } else { + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = fn_1_5FC(Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y, -90.0f, 5.0f); + if (lbl_1_bss_1A0C.unk288[0].x <= -175.0f) { + arg1->unk0C = 2; + lbl_1_bss_1A0C.unk288[0].x = -175.0f; + fn_1_1E28(lbl_1_bss_1994.unk00, 1, 1, 15, 1); + } + } + } else if (arg1->unk0C == 2) { + if (lbl_1_bss_19BC.unk08 != 0) { + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = fn_1_5FC(Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y, -15.0f, 15.0f); + if (Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y <= -14.9f) { + arg1->unk0C = 0; + } + } else { + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = fn_1_5FC(Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y, 15.0f, 15.0f); + if (Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y >= 14.9f) { + arg1->unk0C = 0; + } + } + } +} + +void fn_1_1D63C(void) { + s32 i; + + for (i = 0; i < 5; i++) { + Hu3DModelAttrReset(lbl_1_bss_1994.unk00->model[(i * 3) + 1], HU3D_ATTR_DISPOFF); + } + Hu3DModelRotSet(lbl_1_bss_1994.unk00->model[4], 17.5f, 15.0f, 0.0f); + Hu3DModelScaleSet(lbl_1_bss_1994.unk00->model[4], 0.575f, 0.575f, 0.575f); + fn_1_1E28(lbl_1_bss_1994.unk00, 4, 4, 0, 1); + lbl_1_bss_1994.unk00->work[0] = lbl_1_bss_1994.unk00->work[1] = lbl_1_bss_1994.unk00->work[2] = 0; + lbl_1_bss_1994.unk04 = (void*) fn_1_1D124; +} + +void fn_1_1D77C(void) { + s32 i; + + for (i = 0; i < 5; i++) { + Hu3DModelAttrSet(lbl_1_bss_1994.unk00->model[i * 3 + 1], HU3D_ATTR_DISPOFF); + } + fn_1_1E28(lbl_1_bss_1994.unk00, 1, 1, 0, 1); + if (lbl_1_bss_19BC.unk08 != 0) { + lbl_1_bss_1A0C.unk288[0].x = 185.0f; + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = -15.0f; + } else { + lbl_1_bss_1A0C.unk288[0].x = -175.0f; + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = 15.0f; + } + lbl_1_bss_1994.unk0C = 0; + lbl_1_bss_1994.unk04 = NULL; +} + +void fn_1_1D8CC(omObjData* arg0, StructBss1530* arg1) { + if (arg0->work[0] != 0) { + if (arg0->work[2] != 0) { + arg0->work[2]--; + return; + } + if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[4])) { + fn_1_1E28(arg0, 4, arg0->work[1], 15, 1); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } + } +} + +void fn_1_1D964(void) { + Hu3DModelAttrReset(lbl_1_bss_1994.unk00->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(lbl_1_bss_1994.unk00->model[4], -185.0f, -225.0f, 0.0f); + Hu3DModelRotSet(lbl_1_bss_1994.unk00->model[4], 0.0f, 15.0f, 0.0f); + Hu3DModelScaleSet(lbl_1_bss_1994.unk00->model[4], 1.0f, 1.0f, 1.0f); + lbl_1_bss_1994.unk04 = (void*) fn_1_1D8CC; +} + +void fn_1_1DA64(void) { + Hu3DModelAttrSet(lbl_1_bss_1994.unk00->model[4], HU3D_ATTR_DISPOFF); + lbl_1_bss_1994.unk04 = NULL; +} + +void fn_1_1DAAC(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_18D0, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_1994.unk00 = temp_r3; + lbl_1_bss_1994.unk04 = NULL; + fn_1_1CDF0(temp_r3); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1994.unk04 != NULL) { + lbl_1_bss_1994.unk04(temp_r3, &lbl_1_bss_1994); + } + } +} + +void fn_1_1DE4C(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 0.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20.x = 0.0f; + var_r31->unk20.y = 0.0f; + var_r31->unk20.z = 0.0f; + var_r31->unk38 = 650.0f; +} diff --git a/src/REL/mstory3Dll/result_seq.c b/src/REL/mstory3Dll/result_seq.c new file mode 100755 index 00000000..b4aa06c9 --- /dev/null +++ b/src/REL/mstory3Dll/result_seq.c @@ -0,0 +1,2928 @@ +#include "REL/mstory3Dll.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "msm/msmse.h" + +#include "ext_math.h" + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ char unk08[0xC]; +} StructUnk24Bss1580; // Size 0x14 + +typedef struct { + /* 0x00 */ StructFn352C unk00; + /* 0x34 */ char unk34[0x60]; +} StructUnkC4Bss1580; // Size 0x94 + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ s32 unk18; + /* 0x01C */ s32 unk1C; + /* 0x020 */ s32 unk20; + /* 0x024 */ StructUnk24Bss1580 unk24[4]; + /* 0x074 */ char unk74[0x50]; + /* 0x0C4 */ StructUnkC4Bss1580 unkC4[4]; + /* 0x314 */ s32 unk314; + /* 0x318 */ char unk318[0xC]; + /* 0x324 */ s32 unk324; + /* 0x328 */ char unk328[0xC]; + /* 0x334 */ s32 unk334[1]; // array length unknown + /* 0x338 */ char unk338[0xC]; + /* 0x344 */ s32 unk344; + /* 0x348 */ s32 unk348; + /* 0x34C */ char unk34C[4]; +} StructBss1580; // Size 0x350 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ char unk0C[4]; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ char unk1C[4]; + /* 0x20 */ float unk20; + /* 0x24 */ float unk24; + /* 0x28 */ float unk28; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; +} StructBssC8; // Size 0x38 + +void fn_1_7E88(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_82E0(void); +s32 fn_1_B670(void); +void fn_1_D48C(void); +void fn_1_D718(omObjData* arg0); +void fn_1_D7D8(omObjData* arg0); +void fn_1_FE80(void); +void fn_1_FF7C(s32 arg0); +void fn_1_1036C(omObjData* arg0); +void fn_1_10D74(omObjData* arg0); +void fn_1_11794(omObjData* arg0); +void fn_1_11834(omObjData* arg0); +void fn_1_123D8(omObjData* arg0); +void fn_1_1241C(omObjData* arg0); +void fn_1_12420(omObjData* arg0); +void fn_1_12A98(s32 arg0); +void fn_1_12C08(s32 arg0); +void fn_1_12DAC(void); +void fn_1_13908(void); +void fn_1_130A8(void); +void fn_1_1317C(void); +void fn_1_13A38(omObjData* arg0); +void fn_1_13A3C(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_13C78(s32 arg0, s32 arg1, s32 arg2); +void fn_1_13D38(s32 arg0, s32 arg1, s32 arg2); +void fn_1_140A0(void); +void fn_1_15450(s32 arg0); + +StructBss1580 lbl_1_bss_1580; +StructBss1530 lbl_1_bss_1558; +StructBss1530 lbl_1_bss_1530; +StructBss1530 lbl_1_bss_1490[4]; +StructBss1530 lbl_1_bss_1468; +s32 lbl_1_bss_1458[4]; +s32 lbl_1_bss_1448[4]; +s32 lbl_1_bss_1438[4]; +s32 lbl_1_bss_1428[4]; +float lbl_1_bss_1424; +s32 lbl_1_bss_1420; +float lbl_1_bss_1408[3][2]; +StructBssC8 lbl_1_bss_C8[88]; +float lbl_1_bss_C4; +float lbl_1_bss_C0; +float lbl_1_bss_BC; +s32 lbl_1_bss_B8; +s32 lbl_1_bss_B4; +float lbl_1_bss_B0; +float lbl_1_bss_AC; +Process* lbl_1_bss_A8; +s32 lbl_1_bss_68[16]; +u8 lbl_1_bss_5C[0xC]; // unused +s32 lbl_1_bss_58; + +Vec lbl_1_data_130[] = { + { -300.0f, 0.0f, 460.0f }, + { -100.0f, 0.0f, 460.0f }, + { 100.0f, 0.0f, 460.0f }, + { 300.0f, 0.0f, 460.0f } +}; + +HsfanimStruct00 lbl_1_data_160 = { + 60, { 0, 0 }, + 1000.0f, 0.0f, 180.0f, + { 0.0f, -0.009f, 0.0f }, + 30.0f, 0.9f, 20.0f, 0.99f, 4, + { + { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xFF, 0x80, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }, + { + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 } + } +}; + +HsfanimStruct00 lbl_1_data_1B0 = { + 60, { 0, 0 }, + 1000.0f, 0.0f, 180.0f, + { 0.0f, -0.009f, 0.0f }, + 30.0f, 0.9f, 20.0f, 0.99f, 4, + { + { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xFF, 0x80, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }, + { + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 } + } +}; + +HsfanimStruct00 lbl_1_data_200 = { + 500, { 0, 0 }, + 0.25f, 0.0f, 30.0f, + { 0.0f, -0.009f, 0.001f }, + 30.0f, 0.9f, 20.0f, 0.999f, 4, + { + { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xFF, 0x80, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }, + { + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 } + } +}; + +void fn_1_6E34(Process* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + s32 var_r31; + + lbl_1_bss_A8 = arg0; + lbl_1_bss_1580.unk00 = arg1; + lbl_1_bss_1580.unk04 = arg2; + if (arg3 == 1) { + lbl_1_bss_1580.unk08 = 0; + } else { + lbl_1_bss_1580.unk08 = 1; + lbl_1_bss_1580.unk04 = 1; + } + lbl_1_bss_1580.unk14 = fn_1_36E4(); + lbl_1_bss_1580.unk344 = GWSystem.team; + _ClearFlag(FLAG_ID_MAKE(1, 29)); + lbl_1_bss_1580.unk348 = -1; + fn_1_9A0(); + fn_1_290C(lbl_1_bss_A8, fn_1_82E0); + lbl_1_bss_1580.unk1C = fn_1_37C8(lbl_1_bss_1580.unk20 = 0xFF); + fn_1_FF7C(arg4); + fn_1_38B4(); + fn_1_12DAC(); + HuPrcChildCreate(fn_1_FE80, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_140A0, 100, 0x2000, 0, HuPrcCurrentGet()); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuPrcChildCreate(fn_1_13908, 200, 0x2000, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_D48C, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_7004(s32 arg0, s32 arg1, s32 arg2) { + s32 sp1C[4]; + s32 spC[4]; + s32 temp_r27; + s32 var_r26; + s32 var_r30; + s32 var_r31; + + temp_r27 = lbl_1_bss_1580.unk20; + var_r26 = arg0; + lbl_1_bss_1530.unk04 = (void*) fn_1_D718; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + lbl_1_bss_1490[var_r30].unk04 = (void*) fn_1_1241C; + } + lbl_1_bss_1468.unk04 = (void*) fn_1_13A38; + if (arg2 != 0) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + sp1C[var_r31] = lbl_1_bss_1490[var_r31].unk00->work[0]; + spC[var_r31] = 0xFF; + } + } + for (var_r30 = 0; var_r30 < arg1; var_r30++) { + fn_1_938(); + lbl_1_bss_1580.unk20 = fn_1_5D4(temp_r27, var_r26, var_r30, arg1); + Hu3DGLightColorSet(lbl_1_bss_1580.unk1C, lbl_1_bss_1580.unk20, lbl_1_bss_1580.unk20, lbl_1_bss_1580.unk20, 0xFF); + if (arg2 != 0) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_7E88(sp1C[var_r31], spC[var_r31], var_r30, arg1, var_r31); + } + } + } + if (arg2 != 0) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk00->work[0] = 0; + lbl_1_bss_1490[var_r31].unk00->work[1] = 0; + Hu3DModelAttrSet(lbl_1_bss_1490[var_r31].unk00->model[6], 1); + Hu3DLLightColorSet(lbl_1_bss_1490[var_r31].unk00->model[1], lbl_1_bss_1580.unk24[var_r31].unk00, 0, 0, 0, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[var_r31].unk00->model[2], lbl_1_bss_1580.unk24[var_r31].unk04, 0, 0, 0, 0xFF); + } + } + lbl_1_bss_1530.unk04 = NULL; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + lbl_1_bss_1490[var_r30].unk04 = NULL; + } + lbl_1_bss_1468.unk04 = NULL; +} + +void fn_1_7398(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + float temp_f31; + float temp_f30; + s32 sp10; + s32 spC; + s32 temp_r29; + s32 var_r28; + + sp10 = lbl_1_bss_1490[arg2].unk00->work[0]; + spC = arg0; + Hu3DModelPosSet(lbl_1_bss_1490[arg2].unk00->model[6], lbl_1_data_130[arg2].x, 500.0f + lbl_1_data_130[arg2].y + lbl_1_bss_AC, lbl_1_data_130[arg2].z + 0.1f * lbl_1_bss_AC); + Hu3DModelScaleSet(lbl_1_bss_1490[arg2].unk00->model[6], 0.0f, 1.25f, 0.0f); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg2].unk00->model[6], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1490[arg2].unk00->model[6], 1); + Hu3DModelPosSet(lbl_1_bss_1490[arg3].unk00->model[6], lbl_1_data_130[arg3].x, 500.0f + lbl_1_data_130[arg3].y + lbl_1_bss_AC, lbl_1_data_130[arg3].z + 0.1f * lbl_1_bss_AC); + Hu3DModelScaleSet(lbl_1_bss_1490[arg3].unk00->model[6], 0.0f, 1.25f, 0.0f); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg3].unk00->model[6], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1490[arg3].unk00->model[6], 1); + for (var_r28 = 0; var_r28 <= arg1; var_r28++) { + fn_1_938(); + temp_f31 = fn_1_6F4(0.0f, 1.5f, var_r28, arg1); + temp_f30 = fn_1_6F4(0.0f, 0.5f, var_r28, arg1); + temp_r29 = fn_1_6F4(0.0f, 128.0f, var_r28, arg1); + Hu3DModelScaleSet(lbl_1_bss_1490[arg2].unk00->model[6], temp_f31, 1.25f, temp_f31); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg2].unk00->model[6], temp_f30); + Hu3DModelScaleSet(lbl_1_bss_1490[arg3].unk00->model[6], temp_f31, 1.25f, temp_f31); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg3].unk00->model[6], temp_f30); + Hu3DLLightColorSet(lbl_1_bss_1490[arg2].unk00->model[1], lbl_1_bss_1580.unk24[arg2].unk00, temp_r29, temp_r29, temp_r29, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[arg2].unk00->model[2], lbl_1_bss_1580.unk24[arg2].unk04, temp_r29, temp_r29, temp_r29, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[arg3].unk00->model[1], lbl_1_bss_1580.unk24[arg3].unk00, temp_r29, temp_r29, temp_r29, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[arg3].unk00->model[2], lbl_1_bss_1580.unk24[arg3].unk04, temp_r29, temp_r29, temp_r29, 0xFF); + } + lbl_1_bss_1490[arg2].unk00->work[1] = 1; + lbl_1_bss_1490[arg3].unk00->work[1] = 1; +} + +void fn_1_79D8(s32 arg0, s32 arg1, s32 arg2) { + float temp_f31; + float temp_f30; + s32 temp_r27; + s32 var_r26; + s32 temp_r29; + s32 var_r30; + + temp_r27 = lbl_1_bss_1490[arg2].unk00->work[0]; + var_r26 = arg0; + Hu3DModelPosSet(lbl_1_bss_1490[arg2].unk00->model[6], lbl_1_data_130[arg2].x, 500.0f + lbl_1_data_130[arg2].y + lbl_1_bss_AC, lbl_1_data_130[arg2].z + 0.1f * lbl_1_bss_AC); + Hu3DModelScaleSet(lbl_1_bss_1490[arg2].unk00->model[6], 0.0f, 1.25f, 0.0f); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg2].unk00->model[6], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1490[arg2].unk00->model[6], 1); + for (var_r30 = 0; var_r30 <= arg1; var_r30++) { + fn_1_938(); + lbl_1_bss_1490[arg2].unk00->work[0] = fn_1_6F4(temp_r27, var_r26, var_r30, arg1); + temp_f31 = fn_1_6F4(0.0f, 1.5f, var_r30, arg1); + temp_f30 = fn_1_6F4(0.0f, 0.5f, var_r30, arg1); + temp_r29 = fn_1_6F4(0.0f, 128.0f, var_r30, arg1); + Hu3DModelScaleSet(lbl_1_bss_1490[arg2].unk00->model[6], temp_f31, 1.25f, temp_f31); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg2].unk00->model[6], temp_f30); + Hu3DLLightColorSet(lbl_1_bss_1490[arg2].unk00->model[1], lbl_1_bss_1580.unk24[arg2].unk00, temp_r29, temp_r29, temp_r29, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[arg2].unk00->model[2], lbl_1_bss_1580.unk24[arg2].unk04, temp_r29, temp_r29, temp_r29, 0xFF); + } + lbl_1_bss_1490[arg2].unk00->work[1] = 1; +} + +void fn_1_7E88(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + float var_f31; + s32 temp_r31; + + if (lbl_1_bss_1490[arg4].unk00->work[1] != 0) { + lbl_1_bss_1490[arg4].unk00->work[0] = fn_1_5D4(arg0, arg1, arg2, arg3); + var_f31 = fn_1_5D4(0.5f, 0.0f, arg2, arg3); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg4].unk00->model[6], var_f31); + temp_r31 = fn_1_5D4(128.0f, 0.0f, arg2, arg3); + Hu3DLLightColorSet(lbl_1_bss_1490[arg4].unk00->model[1], lbl_1_bss_1580.unk24[arg4].unk00, temp_r31, temp_r31, temp_r31, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[arg4].unk00->model[2], lbl_1_bss_1580.unk24[arg4].unk04, temp_r31, temp_r31, temp_r31, 0xFF); + } +} + +s32 fn_1_814C(s32 arg0) { + s32 var_r31; + + if (arg0 == 0) { + var_r31 = Hu3DParManCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 1)), 100, &lbl_1_data_160); + } else if (arg0 == 1) { + var_r31 = Hu3DParManCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 1)), 500, &lbl_1_data_1B0); + } else if (arg0 == 2) { + var_r31 = Hu3DParManCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 1)), 250, &lbl_1_data_200); + } + if (arg0 != 2) { + Hu3DParManTimeLimitSet(var_r31, 60); + Hu3DParManAttrSet(var_r31, 4 | 0x40); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(var_r31), 1); + } else { + Hu3DParManAttrSet(var_r31, 4 | 0x40); + } + return var_r31; +} + +s32 fn_1_8264(void) { + return fn_1_814C(0); +} + +void fn_1_82E0(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 125.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20.x = -5.0f; + var_r31->unk20.y = 0.0f; + var_r31->unk20.z = 0.0f; + var_r31->unk38 = 1750.0f; +} + +void fn_1_836C(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 170.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1700.0f; + fn_1_514C(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f); +} + +void fn_1_845C(void) { + StructBss4* var_r31 = &lbl_1_bss_4; + StructBss4 sp28; + float sp8[] = { + 530.0f, 530.0f, 540.0f, 530.0f, + 530.0f, 580.0f, 540.0f, 630.0f + }; + + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + sp28.unk08.x = 100.0f + Hu3DData[lbl_1_bss_1490[0].unk00->model[1]].pos.x; + } else { + sp28.unk08.x = 100.0f + Hu3DData[lbl_1_bss_1490[2].unk00->model[1]].pos.x; + } + } else { + sp28.unk08.x = Hu3DData[lbl_1_bss_1490[lbl_1_bss_1458[1]].unk00->model[1]].pos.x; + lbl_1_bss_B4 = lbl_1_bss_1580.unkC4[lbl_1_bss_1458[1]].unk00.unk10; + } + if (lbl_1_bss_1580.unk344 == 1) { + sp28.unk08.y = 570.0f; + sp28.unk08.z = -700.0f; + sp28.unk20.x = 15.0f; + sp28.unk20.y = 0.0f; + sp28.unk20.z = 0.0f; + sp28.unk38 = 1750.0f; + fn_1_4CC0(var_r31, &sp28, var_r31->unk40++, 120.0f); + } else { + sp28.unk08.y = sp8[lbl_1_bss_B4]; + sp28.unk08.z = -700.0f; + sp28.unk20.x = 15.0f; + sp28.unk20.y = 0.0f; + sp28.unk20.z = 0.0f; + sp28.unk38 = 1600.0f; + fn_1_4CC0(var_r31, &sp28, var_r31->unk40++, 120.0f); + } +} + +void fn_1_8758(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = lbl_1_bss_1424; + sp8.unk08.y = 125.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1250.0f; + sp8.unk38 = 1350.0f; + fn_1_514C(var_r31, &sp8, var_r31->unk40++, 10.0f, 5.0f); +} + +void fn_1_8858(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 170.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1700.0f; + fn_1_514C(var_r31, &sp8, var_r31->unk40++, 30.0f, 10.0f); +} + +void fn_1_8948(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 300.0f; + sp8.unk08.y = 100.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1000.0f; + fn_1_4400(var_r31, &sp8, var_r31->unk40++, 60.0f, 10.0f); +} + +void fn_1_8A38(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = -300.0f; + sp8.unk08.y = 100.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1000.0f; + fn_1_4400(var_r31, &sp8, var_r31->unk40++, 180.0f, 10.0f); +} + +void fn_1_8B28(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 170.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1700.0f; + fn_1_4400(var_r31, &sp8, var_r31->unk40++, 120.0f, 10.0f); +} + +void fn_1_8C18(void) { + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_8948); + fn_1_958(120); + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_8A38); + fn_1_958(210); + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_8B28); + fn_1_958(120); +} + +void fn_1_8C94(void) { + s32 var_r30 = 16; + s32 var_r29 = 40; + s32 var_r28 = 0; + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + s32 var_r31; + + while (TRUE) { + fn_1_938(); + if (HuPadBtnDown[0] & PAD_TRIGGER_R) { + var_r28++; + var_r28 %= 2; + } + if (var_r28 == 0) { + continue; + } + printWin(var_r30, var_r29, 220, 200, &sp10); + if (lbl_1_bss_1558.unk04 == NULL) { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE"); + } else { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_1530.unk04 == NULL) { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE"); + } else { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_1468.unk04 == NULL) { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> FALSE"); + } else { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> TRUE"); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk04 == NULL) { + print8(var_r30, var_r29 + 30 + var_r31 * 10, 1.0f, "PROC_PLAYER%d -> FALSE", var_r31); + } else { + print8(var_r30, var_r29 + 30 + var_r31 * 10, 1.0f, "PROC_PLAYER%d -> TRUE", var_r31); + } + } + print8(var_r30, var_r29 + 80, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_1580.unk00, lbl_1_bss_1580.unk0C, lbl_1_bss_1580.unk14); + print8(var_r30, var_r29 + 100, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + print8(var_r30, var_r29 + 110 + var_r31 * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", var_r31, + lbl_1_bss_1580.unkC4[var_r31].unk00.unk00, lbl_1_bss_1580.unkC4[var_r31].unk00.unk04, lbl_1_bss_1580.unkC4[var_r31].unk00.unk08, + lbl_1_bss_1580.unkC4[var_r31].unk00.unk0C, lbl_1_bss_1580.unkC4[var_r31].unk00.unk14, lbl_1_bss_1580.unkC4[var_r31].unk00.unk10); + } + print8(var_r30, var_r29 + 150, 1.0f, "NO) RNK:STA:COI:MGS:COS:HAS"); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + print8(var_r30, var_r29 + 160 + var_r31 * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", var_r31, + lbl_1_bss_1580.unkC4[var_r31].unk00.unk18, lbl_1_bss_1580.unkC4[var_r31].unk00.unk20, lbl_1_bss_1580.unkC4[var_r31].unk00.unk1C, + lbl_1_bss_1580.unkC4[var_r31].unk00.unk24, lbl_1_bss_1580.unkC4[var_r31].unk00.unk28, lbl_1_bss_1580.unkC4[var_r31].unk00.unk2C); + } + } +} + +void fn_1_9140(void) { + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + fn_1_9C4(); + CharModelKill(-1); + MGSeqKillAll(); + HuAudSStreamAllStop(); + msmSeStopAll(0, 1000); + omOvlGotoEx(OVL_MSTORY3, 1, 1, 0); +} + +void fn_1_91C8(void) { + lbl_1_bss_58 = HuAudSeqPlay(0x31); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } +} + +void fn_1_9220(void) { + Vec sp14 = { -320.0f, 0.0f, 910.0f }; + + fn_1_958(60); + lbl_1_bss_1580.unk10 = fn_1_1624(1, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][0]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_836C); + fn_1_1E28(lbl_1_bss_1530.unk00, 2, 2, 0, 0); + fn_1_1E28(lbl_1_bss_1468.unk00, 1, 2, 15, 1); + fn_1_2DD4(lbl_1_bss_1468.unk00, 1, sp14, 30.0f, 60.0f, 10.0f); + fn_1_1E28(lbl_1_bss_1468.unk00, 1, 1, 15, 1); + fn_1_2280(lbl_1_bss_1530.unk00, 2, 2, 0); +} + +void fn_1_93D0(omObjData* arg0) { + StructBss1530* temp_r31; + + temp_r31 = arg0->data; + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + fn_1_13A3C(lbl_1_bss_1580.unk10, 1, -1, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + temp_r31->unk04 = 0; +} + +void fn_1_9488(void) { + s32 var_r31; + + lbl_1_bss_1530.unk04 = (void*) fn_1_93D0; + do { + fn_1_938(); + } while (lbl_1_bss_1580.unk18 != 99); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_1036C; + lbl_1_bss_1490[var_r31].unk18 = lbl_1_bss_1490[var_r31].unk1C = 0; + } + fn_1_12A98(0); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1580.unkC4[lbl_1_bss_1448[var_r31]].unk00.unk20 != 0) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk1C = 1; + } + } + HuAudFXPlay(0xB9); + do { + fn_1_938(); + } while (lbl_1_bss_1530.unk04 != NULL); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk18 = 1; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk18 != 2) { + break; + } + } + } while (var_r31 < 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk18 = 3; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk04 != NULL) { + break; + } + } + } while (var_r31 < 4); +} + +void fn_1_96B0(omObjData* arg0) { + StructBss1530* temp_r31; + + temp_r31 = arg0->data; + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + fn_1_13A3C(lbl_1_bss_1580.unk10, 2, -1, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + temp_r31->unk04 = 0; +} + +void fn_1_9768(void) { + s32 var_r31; + + lbl_1_bss_1530.unk04 = (void*) fn_1_96B0; + do { + fn_1_938(); + } while (lbl_1_bss_1580.unk18 != 99); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_10D74; + lbl_1_bss_1490[var_r31].unk18 = lbl_1_bss_1490[var_r31].unk1C = 0; + } + fn_1_12A98(1); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1580.unkC4[lbl_1_bss_1448[var_r31]].unk00.unk1C != 0) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk1C = 1; + } + } + HuAudFXPlay(0xB8); + do { + fn_1_938(); + } while (lbl_1_bss_1530.unk04 != NULL); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk18 = 1; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk18 != 2) { + break; + } + } + } while (var_r31 < 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk18 = 3; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk04 != NULL) { + break; + } + } + } while (var_r31 < 4); +} + +void fn_1_9990(omObjData* arg0) { + StructBss1530* temp_r31; + + temp_r31 = arg0->data; + HuAudFXPlay(0x9A); + fn_1_13A3C(lbl_1_bss_1580.unk10, lbl_1_bss_1420, -1, 4); + fn_1_1AB0(lbl_1_bss_1580.unk10); + temp_r31->unk04 = 0; +} + +void fn_1_9A08(omObjData* arg0) { + StructBss1530* temp_r31; + + temp_r31 = arg0->data; + fn_1_958(60); + HuAudSeqPause(lbl_1_bss_58, 0, 1000); + temp_r31->unk04 = 0; +} + +void fn_1_9A64(s32 arg0) { + s32 var_r28; + s32 var_r27; + s32 var_r30; + s32 var_r31; + + var_r28 = 9999; + var_r27 = -1; + lbl_1_bss_1420 = arg0; + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + fn_1_13C78(lbl_1_bss_1580.unk10, arg0 * 3 + 3, 3); + fn_1_12C08(arg0); + lbl_1_bss_1424 = 0.0f; + switch (lbl_1_bss_1458[0]) { + case 1: + lbl_1_bss_1424 = lbl_1_data_130[lbl_1_bss_1448[0]].x; + break; + case 2: + lbl_1_bss_1424 = (lbl_1_data_130[lbl_1_bss_1448[0]].x + lbl_1_data_130[lbl_1_bss_1448[1]].x) / 2; + fn_1_13C78(lbl_1_bss_1580.unk10, arg0 * 3 + 4, 3); + break; + case 3: + for (var_r31 = 0; var_r31 < 3; var_r31++) { + if (var_r28 >= lbl_1_bss_1448[var_r31]) { + var_r28 = lbl_1_bss_1448[var_r31]; + } + if (var_r27 <= lbl_1_bss_1448[var_r31]) { + var_r27 = lbl_1_bss_1448[var_r31]; + } + } + lbl_1_bss_1424 = (lbl_1_data_130[var_r27].x + lbl_1_data_130[var_r28].x) / 2; + fn_1_13C78(lbl_1_bss_1580.unk10, arg0 * 3 + 5, 3); + break; + case 4: + break; + } + fn_1_1AB0(lbl_1_bss_1580.unk10); + HuAudSeqPause(lbl_1_bss_58, 1, 1000); + lbl_1_bss_68[0] = HuAudFXPlay(0x9E); + fn_1_7004(0x40, 30, 0); + fn_1_958(60); + if (lbl_1_bss_1458[0] < 4) { + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_8758); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r31 == lbl_1_bss_1448[var_r30]) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_11834; + lbl_1_bss_1490[var_r31].unk18 = 0; + break; + } + } + if (var_r30 == 4) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_11794; + lbl_1_bss_1490[var_r31].unk18 = 0; + } + } + } else { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_11794; + lbl_1_bss_1490[var_r31].unk18 = 0; + } + } + if (lbl_1_bss_1458[0] != 4) { + lbl_1_bss_1580.unk10 = fn_1_1624(1, 0, 21, 2, lbl_1_bss_1580.unk14); + } else { + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + } + if (lbl_1_bss_1458[0] <= 3) { + HuAudFXPlay(0x9F); + } + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + switch (lbl_1_bss_1458[0]) { + case 1: + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[0], 0); + lbl_1_bss_1420 = 12; + lbl_1_bss_1530.unk04 = (void*) fn_1_9990; + lbl_1_bss_1468.unk04 = (void*) fn_1_9A08; + break; + case 2: + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[0], 0); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[1], 1); + lbl_1_bss_1420 = 13; + lbl_1_bss_1530.unk04 = (void*) fn_1_9990; + lbl_1_bss_1468.unk04 = (void*) fn_1_9A08; + break; + case 3: + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[0], 0); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[1], 1); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[2], 2); + lbl_1_bss_1420 = 14; + lbl_1_bss_1530.unk04 = (void*) fn_1_9990; + lbl_1_bss_1468.unk04 = (void*) fn_1_9A08; + break; + case 4: + HuAudFXFadeOut(lbl_1_bss_68[0], 500); + lbl_1_bss_1468.unk04 = (void*) fn_1_9A08; + if (lbl_1_bss_1580.unkC4[lbl_1_bss_1448[0]].unk00.unk2C == 0 && arg0 == 2) { + fn_1_13C78(lbl_1_bss_1580.unk10, 26, 3); + } else { + fn_1_13C78(lbl_1_bss_1580.unk10, 15, 3); + } + fn_1_1AB0(lbl_1_bss_1580.unk10); + break; + } + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 = 1; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk04 != NULL) { + break; + } + } + } while (var_r31 < lbl_1_bss_1458[0]); + lbl_1_bss_1580.unk18 = 1; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_1490[var_r31].unk00->model[1], HU3D_MOTATTR_PAUSE); + } + fn_1_958(10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 1, 15, 1); + } + do { + fn_1_938(); + } while (lbl_1_bss_1530.unk04 != NULL); + fn_1_12DAC(); + HuAudSeqPause(lbl_1_bss_58, 0, 1000); + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_8858); + fn_1_7004(0xFF, 30, 1); + fn_1_958(60); +} + +s32 fn_1_A314(void) { + s32 var_r31 = 0; + + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x10, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + fn_1_12DAC(); + fn_1_130A8(); + if (lbl_1_bss_1580.unk344 == 1) { + var_r31 = fn_1_B670(); + } + if (var_r31 != -1 && lbl_1_bss_1458[0] <= 1) { + HuAudSeqFadeOut(lbl_1_bss_58, 1000); + } else { + HuAudSeqPause(lbl_1_bss_58, 1, 1000); + } + lbl_1_bss_68[0] = HuAudFXPlay(0x9E); + lbl_1_bss_B0 = 1.0f; + lbl_1_bss_1530.unk04 = (void*) fn_1_D7D8; + fn_1_7004(0x40, 30, 0); + fn_1_8C18(); + lbl_1_bss_AC = 125.0f; + return var_r31; +} + +void fn_1_A4F0(void) { + s32 var_r31; + + HuAudSeqPause(lbl_1_bss_58, 0, 1000); + HuAudFXFadeOut(lbl_1_bss_68[0], 1000); + lbl_1_bss_B0 = 0.0f; + fn_1_7004(0xFF, 30, 1); + fn_1_958(60); + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][1]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x11, 3); + switch (lbl_1_bss_1458[0]) { + case 1: + break; + case 2: + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[0], 0); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[1], 1); + fn_1_13C78(lbl_1_bss_1580.unk10, 13, 3); + break; + case 3: + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[0], 0); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[1], 1); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[2], 2); + fn_1_13C78(lbl_1_bss_1580.unk10, 14, 3); + break; + case 4: + fn_1_13C78(lbl_1_bss_1580.unk10, 0x12, 3); + break; + } + fn_1_13C78(lbl_1_bss_1580.unk10, 0x13, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1438[var_r31] = lbl_1_bss_1428[var_r31] = -1; + } + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk04 = (void*) fn_1_123D8; + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 = 0; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 != 1) { + break; + } + } + } while (var_r31 < lbl_1_bss_1458[0]); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 = 2; + } + fn_1_958(0x96); + fn_1_1317C(); + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1458[1], 0); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x14, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1458[1] == lbl_1_bss_1448[var_r31]) { + fn_1_1E28(lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk00, 1, 14, 15, 0); + } else { + fn_1_1E28(lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk00, 1, 15, 15, 0); + } + } + fn_1_958(0x23); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 1, 15, 1); + } + fn_1_958(0x55); + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][3]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x15, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 1, 15, 1); + } + HuAudSeqFadeOut(lbl_1_bss_58, 1000); + lbl_1_bss_68[0] = HuAudFXPlay(0x9E); + lbl_1_bss_B0 = 1.0f; + fn_1_7004(0x40, 30, 0); + fn_1_8C18(); +} + +void fn_1_ABAC(void) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_12420; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk04 != NULL) { + break; + } + } + } while (var_r31 < 4); + lbl_1_bss_B0 = 0.0f; + fn_1_958(15); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1580.unkC4[var_r31].unk00.unk18 == 1) { + break; + } + } + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + fn_1_7398(0xFF, 5, 0, 1); + } else { + fn_1_7398(0xFF, 5, 2, 3); + } + } else { + fn_1_79D8(0xFF, 5.0f, var_r31); + } + HuAudFXPlay(0x9F); + HuAudSeqPlay(0x32); + fn_1_958(30); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[0].unk00.unk10, lbl_1_bss_1490[0].unk00->motion[3], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[1].unk00.unk10, lbl_1_bss_1490[1].unk00->motion[3], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[2].unk00.unk10, lbl_1_bss_1490[2].unk00->motion[4], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[3].unk00.unk10, lbl_1_bss_1490[3].unk00->motion[4], 0); + fn_1_1E28(lbl_1_bss_1490[0].unk00, 1, 3, 15, 0); + fn_1_1E28(lbl_1_bss_1490[1].unk00, 1, 3, 15, 0); + fn_1_1E28(lbl_1_bss_1490[2].unk00, 1, 4, 15, 0); + fn_1_1E28(lbl_1_bss_1490[3].unk00, 1, 4, 15, 0); + lbl_1_bss_1580.unk0C = 0; + } else { + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[0].unk00.unk10, lbl_1_bss_1490[0].unk00->motion[4], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[1].unk00.unk10, lbl_1_bss_1490[1].unk00->motion[4], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[2].unk00.unk10, lbl_1_bss_1490[2].unk00->motion[3], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[3].unk00.unk10, lbl_1_bss_1490[3].unk00->motion[3], 0); + fn_1_1E28(lbl_1_bss_1490[0].unk00, 1, 4, 15, 0); + fn_1_1E28(lbl_1_bss_1490[1].unk00, 1, 4, 15, 0); + fn_1_1E28(lbl_1_bss_1490[2].unk00, 1, 3, 15, 0); + fn_1_1E28(lbl_1_bss_1490[3].unk00, 1, 3, 15, 0); + lbl_1_bss_1580.unk0C = 2; + } + } else if (lbl_1_bss_1580.unkC4[var_r31].unk00.unk18 == 1) { + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[var_r31].unk00.unk10, lbl_1_bss_1490[var_r31].unk00->motion[3], 0); + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 3, 15, 0); + lbl_1_bss_1580.unk0C = var_r31; + } else { + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[var_r31].unk00.unk10, lbl_1_bss_1490[var_r31].unk00->motion[4], 0); + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 4, 15, 0); + } + GWPlayer[lbl_1_bss_1580.unkC4[var_r31].unk00.unk00].rank = lbl_1_bss_1580.unkC4[var_r31].unk00.unk18 - 1; + } + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + fn_1_13D38(lbl_1_bss_1580.unk10, 0, 0); + fn_1_13D38(lbl_1_bss_1580.unk10, 1, 1); + _SetFlag(FLAG_ID_MAKE(1, 29)); + } else { + fn_1_13D38(lbl_1_bss_1580.unk10, 2, 0); + fn_1_13D38(lbl_1_bss_1580.unk10, 3, 1); + } + fn_1_13C78(lbl_1_bss_1580.unk10, 0x19, 5); + } else { + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1458[1], 0); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x16, 5); + } + fn_1_1AB0(lbl_1_bss_1580.unk10); +} + +s32 fn_1_B670(void) { + s32 var_r31; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + + var_r31 = 1; + temp_r30 = lbl_1_bss_1580.unkC4[0].unk00.unk20 + lbl_1_bss_1580.unkC4[1].unk00.unk20; + temp_r29 = lbl_1_bss_1580.unkC4[2].unk00.unk20 + lbl_1_bss_1580.unkC4[3].unk00.unk20; + temp_r28 = lbl_1_bss_1580.unkC4[0].unk00.unk1C + lbl_1_bss_1580.unkC4[1].unk00.unk1C; + temp_r27 = lbl_1_bss_1580.unkC4[2].unk00.unk1C + lbl_1_bss_1580.unkC4[3].unk00.unk1C; + if (temp_r30 > temp_r29) { + lbl_1_bss_1580.unk348 = 0; + } else if (temp_r30 < temp_r29) { + lbl_1_bss_1580.unk348 = 1; + } else if (temp_r28 > temp_r27) { + lbl_1_bss_1580.unk348 = 0; + } else if (temp_r28 < temp_r27) { + lbl_1_bss_1580.unk348 = 1; + } else { + var_r31 = -1; + } + return var_r31; +} + +void fn_1_B788(void) { + s32 var_r31; + + HuAudSeqPause(lbl_1_bss_58, 0, 1000); + HuAudFXFadeOut(lbl_1_bss_68[0], 1000); + lbl_1_bss_B0 = 0.0f; + fn_1_7004(0xFF, 30, 1); + fn_1_958(60); + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][1]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x17, 3); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x13, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1438[var_r31] = lbl_1_bss_1428[var_r31] = -1; + } + lbl_1_bss_1458[0] = 2; + lbl_1_bss_1448[0] = 0; + lbl_1_bss_1448[1] = 2; + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk04 = (void*) fn_1_123D8; + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 = 0; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 != 1) { + break; + } + } + } while (var_r31 < lbl_1_bss_1458[0]); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 = 2; + } + fn_1_958(150); + if (lbl_1_bss_1428[0] > lbl_1_bss_1428[2]) { + lbl_1_bss_1580.unk348 = 0; + } else { + lbl_1_bss_1580.unk348 = 1; + } + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + if (lbl_1_bss_1580.unk348 == 0) { + fn_1_13D38(lbl_1_bss_1580.unk10, 0, 0); + fn_1_13D38(lbl_1_bss_1580.unk10, 1, 1); + } else { + fn_1_13D38(lbl_1_bss_1580.unk10, 2, 0); + fn_1_13D38(lbl_1_bss_1580.unk10, 3, 1); + } + fn_1_13C78(lbl_1_bss_1580.unk10, 0x18, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1580.unk348 == 0) { + fn_1_1E28(lbl_1_bss_1490[0].unk00, 1, 14, 15, 0); + fn_1_1E28(lbl_1_bss_1490[1].unk00, 1, 14, 15, 0); + fn_1_1E28(lbl_1_bss_1490[2].unk00, 1, 15, 15, 0); + fn_1_1E28(lbl_1_bss_1490[3].unk00, 1, 15, 15, 0); + } else { + fn_1_1E28(lbl_1_bss_1490[0].unk00, 1, 15, 15, 0); + fn_1_1E28(lbl_1_bss_1490[1].unk00, 1, 15, 15, 0); + fn_1_1E28(lbl_1_bss_1490[2].unk00, 1, 14, 15, 0); + fn_1_1E28(lbl_1_bss_1490[3].unk00, 1, 14, 15, 0); + } + } + fn_1_958(35); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 1, 15, 1); + } + fn_1_958(85); + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][3]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x15, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 1, 15, 1); + } + HuAudSeqFadeOut(lbl_1_bss_58, 1000); + lbl_1_bss_68[0] = HuAudFXPlay(0x9E); + lbl_1_bss_B0 = 1.0f; + fn_1_7004(0x40, 30, 0); + fn_1_8C18(); +} + +void fn_1_BE5C(void) { + float var_f31; + + var_f31 = fn_1_878(0.0f, 0.1f, lbl_1_bss_B8, 180.0f); + Hu3DData[lbl_1_bss_1530.unk00->model[20]].pos.y += var_f31; + lbl_1_bss_B8++; + if (lbl_1_bss_B8 >= 180) { + lbl_1_bss_B8 -= 180; + } +} + +void fn_1_BF60(void) { + float temp_f1; + + temp_f1 = fn_1_878(1.0f, 1.1f, lbl_1_bss_B8, 60.0f); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[23], temp_f1, temp_f1, 1.0f); + lbl_1_bss_B8++; + if (lbl_1_bss_B8 >= 60) { + lbl_1_bss_B8 -= 60; + } +} + +s32 lbl_1_data_364 = -1; +s32 lbl_1_data_368 = -1; // unused + +void fn_1_C060(float arg8) { + float sp20[] = { + 50.0f, 50.0f, 60.0f, 50.0f, + 50.0f, 80.0f, 60.0f, 120.0f + }; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float temp_f29; + float var_f28; + float temp_f27; + float var_f26; + s32 var_r31; + + lbl_1_bss_BC = arg8; + fn_1_938(); + var_f31 = arg8; + var_f30 = 0.0f; + temp_f29 = 3600.0f; + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[20], var_f31, 1000.0f, 460.0f); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[20], 0.5f, 0.5f, 0.5f); + Hu3DModelAttrReset(lbl_1_bss_1530.unk00->model[20], HU3D_ATTR_DISPOFF); + fn_1_1E28(lbl_1_bss_1530.unk00, 20, 20, 0, 2); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[21], var_f31, 1000.0f, 460.0f); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[21], 0.5f, 0.5f, 0.5f); + fn_1_1E28(lbl_1_bss_1530.unk00, 21, 21, 0, 2); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[22], var_f31, 1000.0f, 460.0f); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[22], 0.5f, 0.5f, 0.5f); + Hu3DMotionShapeSpeedSet(lbl_1_bss_1530.unk00->model[22], 2.0f); + Hu3DMotionSpeedSet(lbl_1_bss_1530.unk00->model[22], 2.0f); + Hu3DMotionShiftSpeedSet(lbl_1_bss_1530.unk00->model[22], 2.0f); + fn_1_1E28(lbl_1_bss_1530.unk00, 22, 22, 0, 2); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[23], 0.0f, 0.0f, 1.0f); + Hu3DModelAttrSet(lbl_1_bss_1530.unk00->model[23], HU3D_ATTR_DISPOFF); + fn_1_958(60); + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_845C); + for (var_r31 = 0; var_r31 <= 120; var_r31++) { + fn_1_938(); + if (lbl_1_bss_1580.unk344 == 0) { + var_f30 = fn_1_6F4(1000.0f, 250.0f + sp20[lbl_1_bss_1580.unkC4[lbl_1_bss_1458[1]].unk00.unk10], var_r31, 120.0f); + } else { + var_f30 = fn_1_6F4(1000.0f, 350.0f, var_r31, 120.0f); + } + temp_f29 = fn_1_6F4(1800.0f, 0.0f, var_r31, 120.0f); + var_f28 = fn_1_6F4(1.0f, 0.0f, var_r31, 120.0f); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[20], var_f31, var_f30, 460.0f); + Hu3DModelRotSet(lbl_1_bss_1530.unk00->model[20], 0.0f, temp_f29, 0.0f); + } + lbl_1_bss_1530.unk04 = (void*) fn_1_BE5C; + fn_1_958(30); + fn_1_1E28(lbl_1_bss_1530.unk00, 20, 20, 0, 0); + fn_1_958(30); + HuAudFXPlay(0x33B); + fn_1_958(30); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[22], var_f31, Hu3DData[lbl_1_bss_1530.unk00->model[20]].pos.y - 10.0f, 460.0f); + Hu3DModelAttrReset(lbl_1_bss_1530.unk00->model[22], HU3D_ATTR_DISPOFF); + fn_1_1E28(lbl_1_bss_1530.unk00, 22, 22, 0, 0); + sp14.x = var_f31; + sp14.y = Hu3DData[lbl_1_bss_1530.unk00->model[20]].pos.y; + sp14.z = 460.0f; + sp8.x = 288.0f; + sp8.y = 100.0f; + sp8.z = 500.0f; + fn_1_1DED8(DATA_MAKE_NUM(DATADIR_MSTORY3, 0), &sp14, &sp8, 100); + fn_1_1E0F4(); + fn_1_958(15); + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + HuAudCharVoicePlay(lbl_1_bss_1580.unkC4[0].unk00.unk10, 0x12B); + HuAudCharVoicePlay(lbl_1_bss_1580.unkC4[1].unk00.unk10, 0x12B); + } else { + HuAudCharVoicePlay(lbl_1_bss_1580.unkC4[2].unk00.unk10, 0x12B); + HuAudCharVoicePlay(lbl_1_bss_1580.unkC4[3].unk00.unk10, 0x12B); + } + } else { + HuAudCharVoicePlay(lbl_1_bss_1580.unkC4[lbl_1_bss_1458[1]].unk00.unk10, 0x12B); + } + HuAudFXPlay(0xBA); + HuAudFXPlay(0x9A); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[21], var_f31, Hu3DData[lbl_1_bss_1530.unk00->model[20]].pos.y, 510.0f); + Hu3DModelAttrReset(lbl_1_bss_1530.unk00->model[21], HU3D_ATTR_DISPOFF); + fn_1_1E28(lbl_1_bss_1530.unk00, 21, 21, 0, 0); + fn_1_958(5); + lbl_1_data_364 = fn_1_814C(1); + Hu3DParManPosSet(lbl_1_data_364, var_f31, Hu3DData[lbl_1_bss_1530.unk00->model[21]].pos.y, 510.0f); + Hu3DModelAttrSet(lbl_1_bss_1530.unk00->model[20], HU3D_ATTR_DISPOFF); + lbl_1_bss_C0 = 1.0f; + for (var_r31 = 0; var_r31 <= 30; var_r31++) { + fn_1_938(); + temp_f27 = fn_1_5D4(0.0f, 1.0f, var_r31, 30.0f); + var_f30 = fn_1_5D4(0.0f, 75.0f, var_r31, 30.0f); + var_f26 = fn_1_5D4(550.0f, 640.0f, var_r31, 30.0f); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[23], var_f31, Hu3DData[lbl_1_bss_1530.unk00->model[20]].pos.y - var_f30, var_f26); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[23], temp_f27, temp_f27, 1.0f); + var_f28 = fn_1_5D4(1.0f, 0.0f, var_r31, 30.0f); + Hu3DModelTPLvlSet(lbl_1_bss_1530.unk00->model[22], var_f28); + } + lbl_1_bss_B8 = 0; + lbl_1_bss_1530.unk04 = (void*) fn_1_BF60; + fn_1_958(30); + Hu3DParManKill(lbl_1_data_364); + lbl_1_data_364 = -1; + fn_1_958(240); + fn_1_1834(MAKE_MESSID(36, 7), 0); + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + if (lbl_1_bss_1580.unkC4[0].unk00.unk08 == 1 && lbl_1_bss_1580.unkC4[1].unk00.unk08 == 1) { + fn_1_958(30); + } else { + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1580.unkC4[0].unk00.unk08 == 0 && (HuPadBtnDown[lbl_1_bss_1580.unkC4[0].unk00.unk14] & PAD_BUTTON_A)) { + break; + } + if (lbl_1_bss_1580.unkC4[1].unk00.unk08 == 0 && (HuPadBtnDown[lbl_1_bss_1580.unkC4[1].unk00.unk14] & PAD_BUTTON_A)) { + break; + } + } + } + } else { + if (lbl_1_bss_1580.unkC4[2].unk00.unk08 == 1 && lbl_1_bss_1580.unkC4[3].unk00.unk08 == 1) { + fn_1_958(30); + } else { + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1580.unkC4[0].unk00.unk08 == 0 && (HuPadBtnDown[lbl_1_bss_1580.unkC4[0].unk00.unk14] & PAD_BUTTON_A)) { + break; + } + if (lbl_1_bss_1580.unkC4[1].unk00.unk08 == 0 && (HuPadBtnDown[lbl_1_bss_1580.unkC4[1].unk00.unk14] & PAD_BUTTON_A)) { + break; + } + } + } + } + } else if (lbl_1_bss_1580.unk08 == 0) { + if (lbl_1_bss_1580.unkC4[lbl_1_bss_1580.unk0C].unk00.unk08 != 1) { + fn_1_2420(lbl_1_bss_1580.unkC4[lbl_1_bss_1580.unk0C].unk00.unk14, PAD_BUTTON_A); + } else { + fn_1_958(30); + } + } else { + fn_1_2420(0, PAD_BUTTON_A); + } + HuAudFXPlay(0x1C); +} + +void fn_1_CE6C(omObjData* arg0) { + StructBss1530* sp8 = arg0->data; + s32 var_r31; + + fn_1_91C8(); + fn_1_9220(); + fn_1_9488(); + fn_1_9768(); + if (lbl_1_bss_1580.unk04 != 0) { + fn_1_9A64(0); + fn_1_9A64(1); + fn_1_9A64(2); + } + var_r31 = fn_1_A314(); + if (lbl_1_bss_1580.unk344 == 1) { + if (var_r31 == -1) { + fn_1_B788(); + } + } else if (lbl_1_bss_1458[0] > 1) { + fn_1_A4F0(); + } + fn_1_ABAC(); + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + fn_1_C060(lbl_1_data_130[0].x + 100.0f); + } else { + fn_1_C060(lbl_1_data_130[2].x + 100.0f); + } + } else { + fn_1_C060(lbl_1_data_130[lbl_1_bss_1458[1]].x); + } + fn_1_958(60); + fn_1_9140(); +} + +void fn_1_D48C(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_1558.unk00 = temp_r3; + lbl_1_bss_1558.unk04 = (void*) fn_1_CE6C; + lbl_1_bss_1558.unk00->data = &lbl_1_bss_1558; + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1558.unk04 != NULL) { + lbl_1_bss_1558.unk04(temp_r3); + } + } +} + +void fn_1_D538(omObjData* arg0) { + float sp8; + float var_f30; + float var_f31; + StructBss1530* temp_r31; + s32 var_r30; + s32 var_r29; + + temp_r31 = arg0->data; + var_f31 = 1.75f; + sp8 = 0.5f; + var_r29 = 0; + HuAudFXPlay(0xBA); + HuAudFXPlay(0x9A); + lbl_1_bss_1580.unk324 = 1; + espDispOn(temp_r31->unk14); + espScaleSet(temp_r31->unk14, 0.0f, 0.0f); + for (var_r30 = 0; var_r30 < 120; var_r30++) { + fn_1_938(); + if (var_r30 < 60) { + var_f30 = fn_1_6F4(0.0f, 1.75f, var_r30, 60.0f); + } else { + var_f30 = fn_1_7BC(var_f31, 1.0f, var_r29, 15.0f); + var_r29++; + if (var_r29 == 15) { + if (var_f31 > 1.25f) { + var_f31 -= 0.1f; + } + var_r29 = 0; + } + } + espScaleSet(temp_r31->unk14, var_f30, var_f30); + } + temp_r31->unk04 = 0; +} + +void fn_1_D718(omObjData* arg0) { + float temp_f31; + + temp_f31 = lbl_1_bss_1580.unk20 / 255.0f; + Hu3DModelAmbSet(arg0->model[1], temp_f31, temp_f31, temp_f31); + Hu3DModelAmbSet(arg0->model[2], temp_f31, temp_f31, temp_f31); + Hu3DModelAmbSet(arg0->model[3], temp_f31, temp_f31, temp_f31); +} + +float lbl_1_data_36C[] = { 0.0f, 120.0f, 240.0f }; + +void fn_1_D7D8(omObjData* arg0) { + s32 var_r30; + + if (lbl_1_bss_B0 == 1.0f) { + Hu3DModelAttrReset(arg0->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(arg0->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(arg0->model[6], HU3D_ATTR_DISPOFF); + lbl_1_bss_C4 += 0.033333335f; + if (lbl_1_bss_C4 >= 0.5f) { + lbl_1_bss_C4 = 0.5f; + } + } else { + if (lbl_1_bss_B0 == 0.0f) { + lbl_1_bss_C4 -= 0.033333335f; + if (lbl_1_bss_C4 <= 0.0f) { + lbl_1_bss_C4 = 0.0f; + Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); + return; + } + } else { + Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); + return; + } + } + for (var_r30 = 0; var_r30 < 3; var_r30++) { + Hu3DModelTPLvlSet(arg0->model[var_r30 + 4], lbl_1_bss_C4); + Hu3DModelRotSet(arg0->model[var_r30 + 4], 0.0f, 0.0f, lbl_1_bss_1408[var_r30][1]); + lbl_1_bss_1408[var_r30][0] = 10.0 * cosd(11.0f * lbl_1_data_36C[var_r30]); + lbl_1_bss_1408[var_r30][1] = 30.0 * sind(8.0f * lbl_1_data_36C[var_r30]); + if ((lbl_1_data_36C[var_r30] += 0.4f) >= 360.0f) { + lbl_1_data_36C[var_r30] -= 360.0f; + } + } +} + +void fn_1_DB68(omObjData* arg0, s32 arg1, s32 arg2) { + s32 sp8[] = { DATA_MAKE_NUM(DATADIR_MSTORY3, 6), DATA_MAKE_NUM(DATADIR_MSTORY3, 5) }; + s32 var_r30; + + if (arg2 < 5) { + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 4)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]); + fn_1_1E28(arg0, 1, 0, 0, 2); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 8)); + arg0->model[3] = Hu3DModelCreateFile(sp8[arg1]); + arg0->motion[3] = Hu3DMotionIDGet(arg0->model[3]); + fn_1_1E28(arg0, 3, 3, 0, 1); + Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base"); + } else { + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 7)); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 8)); + arg0->model[3] = Hu3DModelCreateFile(sp8[arg1]); + Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); + arg0->motion[3] = Hu3DMotionIDGet(arg0->model[1]); + fn_1_1E28(arg0, 1, 3, 0, 1); + Hu3DModelShadowMapObjSet(arg0->model[1], "base_story-base"); + } + for (var_r30 = 4; var_r30 < 7; var_r30++) { + arg0->model[var_r30] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 11)); + Hu3DModelTPLvlSet(arg0->model[var_r30], 0.0f); + Hu3DModelPosSet(arg0->model[var_r30], -200.0f + 200.0f * (var_r30 - 4), 750.0f, 500.0f); + Hu3DModelScaleSet(arg0->model[var_r30], 1.25f, 2.0f, 1.25f); + Hu3DModelAttrSet(arg0->model[var_r30], HU3D_ATTR_DISPOFF); + } + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY3, 9)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY3, 10)); + lbl_1_bss_1530.unk14 = espEntry(DATA_MAKE_NUM(DATADIR_MSTORY3, 30), 0, 0); + espPosSet(lbl_1_bss_1530.unk14, 288.0f, 110.0f); + espDispOff(lbl_1_bss_1530.unk14); + fn_1_1E28(arg0, 2, 2, 0, 2); + fn_1_35C8(arg0->model[1]); + fn_1_35C8(arg0->model[2]); + fn_1_35C8(arg0->model[3]); + arg0->model[20] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 31) + arg2); + arg0->motion[20] = Hu3DMotionIDGet(arg0->model[20]); + Hu3DModelPosSet(arg0->model[20], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[20], HU3D_ATTR_DISPOFF); + fn_1_1E28(arg0, 20, 20, 0, 2); + arg0->model[21] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 37)); + arg0->motion[21] = Hu3DMotionIDGet(arg0->model[21]); + Hu3DModelPosSet(arg0->model[21], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[21], HU3D_ATTR_DISPOFF); + fn_1_1E28(arg0, 21, 21, 0, 2); + arg0->model[22] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 38)); + arg0->motion[22] = Hu3DMotionIDGet(arg0->model[22]); + Hu3DModelPosSet(arg0->model[22], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[22], HU3D_ATTR_DISPOFF); + fn_1_1E28(arg0, 22, 22, 0, 2); + arg0->model[23] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 39)); + Hu3DModelPosSet(arg0->model[23], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[23], HU3D_ATTR_DISPOFF); +} + +void fn_1_E160(omObjData* arg0) { + s32 var_r28; + s32 var_r29; + s32 var_r31; + + if (lbl_1_bss_C0 == 0.0f) { + return; + } + Hu3DGLightColorSet(lbl_1_bss_1580.unk1C, lbl_1_bss_1580.unk20, lbl_1_bss_1580.unk20, lbl_1_bss_1580.unk20, 0xFF); + lbl_1_bss_1580.unk20++; + if (lbl_1_bss_1580.unk20 >= 128) { + lbl_1_bss_1580.unk20 = 128; + } + for (var_r31 = 1; var_r31 < 80; var_r31++) { + switch (lbl_1_bss_C8[var_r31].unk00) { + case 0: + lbl_1_bss_C8[var_r31].unk30 = Hu3DData[arg0->model[var_r31]].pos.y = 450.0f + rand8() % 150; + lbl_1_bss_C8[var_r31].unk00 = 1; + break; + case 3: + lbl_1_bss_C8[var_r31].unk30 = Hu3DData[arg0->model[var_r31]].pos.y = 500.0f; + /* fallthrough */ + case 1: + if (var_r31 % 3 != 0) { + var_r28 = rand8() % 4; + } else { + var_r28 = 5; + } + switch (var_r28) { + case 0: + Hu3DModelAmbSet(arg0->model[var_r31], 1.0f, 1.0f, 1.0f); + break; + case 1: + Hu3DModelAmbSet(arg0->model[var_r31], 1.0f, 0.0f, 0.0f); + break; + case 2: + Hu3DModelAmbSet(arg0->model[var_r31], 0.0f, 1.0f, 0.0f); + break; + case 3: + Hu3DModelAmbSet(arg0->model[var_r31], 0.0f, 0.0f, 1.0f); + break; + case 5: + break; + } + Hu3DModelAttrReset(arg0->model[var_r31], HU3D_ATTR_DISPOFF); + if (lbl_1_bss_1580.unk344 == 0) { + lbl_1_bss_C8[var_r31].unk2C = Hu3DData[arg0->model[var_r31]].pos.x = -50.0f + lbl_1_bss_BC + rand8() % 100; + } else { + lbl_1_bss_C8[var_r31].unk2C = Hu3DData[arg0->model[var_r31]].pos.x = -100.0f + lbl_1_bss_BC + rand8() % 200; + } + lbl_1_bss_C8[var_r31].unk34 = Hu3DData[arg0->model[var_r31]].pos.z = 460.0f; + Hu3DData[arg0->model[var_r31]].rot.x = rand8(); + Hu3DData[arg0->model[var_r31]].rot.y = rand8(); + Hu3DData[arg0->model[var_r31]].rot.z = rand8(); + lbl_1_bss_C8[var_r31].unk20 = (rand8() % 50 + -1.0f) / 100.0f; + if (var_r31 % 2 == 0) { + lbl_1_bss_C8[var_r31].unk20 *= -1.0f; + } + lbl_1_bss_C8[var_r31].unk24 = ((rand8() % 100 + 100) / 100.0f) * -1.0f; + lbl_1_bss_C8[var_r31].unk28 = (rand8() % 100 - 1) / 100; + lbl_1_bss_C8[var_r31].unk10 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk14 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk18 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk00 = 2; + break; + case 2: + if (lbl_1_bss_C8[var_r31].unk04-- <= 0) { + lbl_1_bss_C8[var_r31].unk04 = rand8() % 30 + 30; + lbl_1_bss_C8[var_r31].unk20 = (rand8() % 50 + -1.0f) / 100.0f; + if (var_r31 % 2 == 0) { + lbl_1_bss_C8[var_r31].unk20 *= -1.0f; + } + lbl_1_bss_C8[var_r31].unk24 = ((rand8() % 100 + 100) / 100.0f) *-1.0f; + lbl_1_bss_C8[var_r31].unk28 = (rand8() % 100 - 1) / 100; + lbl_1_bss_C8[var_r31].unk10 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk14 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk18 = (rand8() % 100 - 50) / 5; + } + lbl_1_bss_C8[var_r31].unk2C += lbl_1_bss_C8[var_r31].unk20; + lbl_1_bss_C8[var_r31].unk30 += lbl_1_bss_C8[var_r31].unk24; + lbl_1_bss_C8[var_r31].unk34 += lbl_1_bss_C8[var_r31].unk28; + Hu3DData[arg0->model[var_r31]].rot.x += lbl_1_bss_C8[var_r31].unk10; + Hu3DData[arg0->model[var_r31]].rot.y += lbl_1_bss_C8[var_r31].unk14; + Hu3DData[arg0->model[var_r31]].rot.z += lbl_1_bss_C8[var_r31].unk18; + if (Hu3DData[arg0->model[var_r31]].pos.y <= 0.0f) { + lbl_1_bss_C8[var_r31].unk00 = 3; + } + break; + case 10: + Hu3DModelAttrReset(arg0->model[var_r31], HU3D_ATTR_DISPOFF); + if (var_r31 % 3 != 0) { + var_r28 = rand8() % 4; + } else { + var_r28 = 5; + } + switch (var_r28) { + case 0: + Hu3DModelAmbSet(arg0->model[var_r31], 1.0f, 1.0f, 1.0f); + break; + case 1: + Hu3DModelAmbSet(arg0->model[var_r31], 1.0f, 0.0f, 0.0f); + break; + case 2: + Hu3DModelAmbSet(arg0->model[var_r31], 0.0f, 1.0f, 0.0f); + break; + case 3: + Hu3DModelAmbSet(arg0->model[var_r31], 0.0f, 0.0f, 1.0f); + break; + case 5: + break; + } + lbl_1_bss_C8[var_r31].unk2C = Hu3DData[arg0->model[var_r31]].pos.x = lbl_1_bss_BC; + lbl_1_bss_C8[var_r31].unk30 = Hu3DData[arg0->model[var_r31]].pos.y = 375.0f; + lbl_1_bss_C8[var_r31].unk34 = Hu3DData[arg0->model[var_r31]].pos.z = 460.0f; + var_r29 = rand8(); + if (rand8() % 2 == 0) { + var_r29 *= -1; + } + lbl_1_bss_C8[var_r31].unk2C += var_r29; + var_r29 = rand8(); + if (rand8() % 2 == 0) { + var_r29 *= -1; + } + lbl_1_bss_C8[var_r31].unk30 += var_r29; + var_r29 = rand8() % 50; + if (rand8() % 2 == 0) { + var_r29 *= -1; + } + lbl_1_bss_C8[var_r31].unk34 += var_r29; + lbl_1_bss_C8[var_r31].unk20 = (rand8() % 50 + -1.0f) / 100.0f; + if (var_r31 % 2 == 0) { + lbl_1_bss_C8[var_r31].unk20 *= -1.0f; + } + lbl_1_bss_C8[var_r31].unk24 = ((rand8() % 100 + 100) / 100.0f) * -1.0f; + lbl_1_bss_C8[var_r31].unk28 = (rand8() % 100 - 1) / 100; + lbl_1_bss_C8[var_r31].unk10 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk14 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk18 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk08 = 0; + lbl_1_bss_C8[var_r31].unk04 = rand8() % 30 + 30; + lbl_1_bss_C8[var_r31].unk00 = 11; + break; + case 11: + if (lbl_1_bss_C8[var_r31].unk04-- <= 0) { + lbl_1_bss_C8[var_r31].unk04 = rand8() % 30 + 30; + lbl_1_bss_C8[var_r31].unk20 = (rand8() % 50 + -1.0f) / 100.0f; + if (var_r31 % 2 == 0) { + lbl_1_bss_C8[var_r31].unk20 *= -1.0f; + } + lbl_1_bss_C8[var_r31].unk24 = ((rand8() % 100 + 100) / 100.0f) * -1.0f; + lbl_1_bss_C8[var_r31].unk28 = (rand8() % 100 - 1) / 100; + lbl_1_bss_C8[var_r31].unk10 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk14 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk18 = (rand8() % 100 - 50) / 5; + } + lbl_1_bss_C8[var_r31].unk2C += lbl_1_bss_C8[var_r31].unk20; + lbl_1_bss_C8[var_r31].unk30 += lbl_1_bss_C8[var_r31].unk24 / 2; + lbl_1_bss_C8[var_r31].unk34 += lbl_1_bss_C8[var_r31].unk28; + Hu3DData[arg0->model[var_r31]].rot.x += lbl_1_bss_C8[var_r31].unk10; + Hu3DData[arg0->model[var_r31]].rot.y += lbl_1_bss_C8[var_r31].unk14; + Hu3DData[arg0->model[var_r31]].rot.z += lbl_1_bss_C8[var_r31].unk18; + if (lbl_1_bss_C8[var_r31].unk08++ >= 50) { + lbl_1_bss_C8[var_r31].unk00 = 2; + } + break; + } + Hu3DData[arg0->model[var_r31]].pos.x = fn_1_5FC(Hu3DData[arg0->model[var_r31]].pos.x, lbl_1_bss_C8[var_r31].unk2C, 30.0f); + Hu3DData[arg0->model[var_r31]].pos.y = fn_1_5FC(Hu3DData[arg0->model[var_r31]].pos.y, lbl_1_bss_C8[var_r31].unk30, 30.0f); + Hu3DData[arg0->model[var_r31]].pos.z = fn_1_5FC(Hu3DData[arg0->model[var_r31]].pos.z, lbl_1_bss_C8[var_r31].unk34, 30.0f); + } +} + +void fn_1_FD30(omObjData* arg0) { + s32 var_r30; + + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 17)); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 18)); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); + for (var_r30 = 2; var_r30 < 80; var_r30++) { + if (var_r30 % 3 == 0) { + arg0->model[var_r30] = Hu3DModelLink(arg0->model[1]); + } else { + arg0->model[var_r30] = Hu3DModelLink(arg0->model[0]); + } + Hu3DModelAttrSet(arg0->model[var_r30], HU3D_ATTR_DISPOFF); + lbl_1_bss_C8[var_r30].unk04 = lbl_1_bss_C8[var_r30].unk08 = 0; + lbl_1_bss_C8[var_r30].unk00 = 10; + } + arg0->func = fn_1_E160; +} + +void fn_1_FE80(void) { + omObjData* temp_r31; + omObjData* sp8; + + temp_r31 = omAddObjEx(lbl_1_bss_A8, 0x100, 0x20, 0x20, -1, NULL); + sp8 = omAddObjEx(lbl_1_bss_A8, 0x100, 0x80, 0, -1, fn_1_FD30); + lbl_1_bss_1530.unk00 = temp_r31; + lbl_1_bss_1530.unk04 = NULL; + lbl_1_bss_1530.unk00->data = &lbl_1_bss_1530; + fn_1_DB68(temp_r31, lbl_1_bss_1580.unk08, lbl_1_bss_1580.unk00); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1530.unk04 != NULL) { + lbl_1_bss_1530.unk04(temp_r31); + } + fn_1_D7D8(temp_r31); + } +} + +void fn_1_FF7C(s32 arg0) { + s32 sp30[4]; + s32 sp20[4]; + s32 sp10[4]; + s32 i, j; + s32 var_r29; + + sp30[0] = 0; + for (i = 1; i < 4; i++) { + sp30[i] = sp30[i - 1] + 1; + if (sp30[i] >= 4) { + sp30[i] = 0; + } + if (arg0 == sp30[i]) { + lbl_1_bss_1580.unk0C = i; + } + } + if (lbl_1_bss_1580.unk08 != 0) { + lbl_1_bss_1580.unk14 = arg0; + } + if (lbl_1_bss_1580.unk344 == 1) { + var_r29 = 0; + for (i = 0; i < 4; i++) { + sp10[0] = GWPlayer[sp30[0]].team; + sp10[1] = GWPlayer[sp30[1]].team; + sp10[2] = GWPlayer[sp30[2]].team; + sp10[3] = GWPlayer[sp30[3]].team; + sp20[i] = sp30[i]; + } + OSReport("########## Sort Start WIN:%d IDX (%d,%d), (%d,%d), (%d,%d), (%d,%d)\n", + var_r29, sp10[0], sp30[0], sp10[1], sp30[1], sp10[2], sp30[2], sp10[3], sp30[3]); + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (sp10[j] != -1 && var_r29 == sp10[j]) { + sp10[j] = -1; + sp30[i] = sp20[j]; + break; + } + } + if (i == 1) { + var_r29++; + var_r29 %= 2; + } + } + OSReport("########## Sort End WIN:%d IDX %d, %d, %d, %d\n", var_r29, sp30[0], sp30[1], sp30[2], sp30[3]); + } + for (i = 0; i < 4; i++) { + fn_1_3650(&lbl_1_bss_1580.unkC4[i].unk00, sp30[i]); + } + for (i = 0; i < 4; i++) { + lbl_1_bss_1580.unkC4[i].unk00.unk1C = GWPlayer[sp30[i]].coins; + lbl_1_bss_1580.unkC4[i].unk00.unk20 = GWPlayer[sp30[i]].stars; + lbl_1_bss_1580.unkC4[i].unk00.unk24 = GWPlayer[sp30[i]].coins_mg; + lbl_1_bss_1580.unkC4[i].unk00.unk28 = GWPlayer[sp30[i]].coins_max; + lbl_1_bss_1580.unkC4[i].unk00.unk2C = GWPlayer[sp30[i]].question_count; + } +} + +void fn_1_1036C(omObjData* arg0) { + float var_f29; + float var_f30; + float temp_f31; + s32 temp_r25; + s32 var_r26; + s32 var_r27 = 3; + StructBss1530* temp_r30 = arg0->data; + char* sp98[][3] = { + { "submit07-star_null3", "submit07-star_null1", "submit07-star_null1" }, + { "submit07-star_null4", "submit07-star_null2", "submit07-star_null1" }, + { "submit07-star_null5", "submit07-star_null3", "submit07-star_null1" } + }; + Mtx sp68; + Mtx sp38; + Mtx sp8; + s32 var_r28; + s32 var_r29; + + Hu3DModelPosSet(arg0->model[3], lbl_1_data_130[temp_r30->unk08].x, 100.0f, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[3], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[3], 0.0f, 0.0f, 0.0f); + if ((temp_r25 = lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk20 / 100) == 0) { + var_r27 = 2; + } else { + Hu3DMotionTimeSet(arg0->model[9], (temp_r25 + 1) % 10); + } + if ((temp_r25 = (lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk20 % 100) / 10) == 0 && var_r27 == 2) { + var_r27 = 1; + } else { + Hu3DMotionTimeSet(arg0->model[8], (temp_r25 + 1) % 10); + } + temp_r25 = lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk20 % 10; + Hu3DMotionTimeSet(arg0->model[7], (temp_r25 + 1) % 10); + Hu3DModelAttrReset(arg0->model[3], HU3D_ATTR_DISPOFF); + for (var_r28 = 0; var_r28 < 90; var_r28++) { + fn_1_938(); + var_f29 = fn_1_6F4(100.0f, 300.0f, var_r28, 90.0f); + var_f30 = fn_1_6F4(0.0f, 1080.0f, var_r28, 90.0f); + temp_f31 = fn_1_6F4(0.0f, 0.75f, var_r28, 90.0f); + Hu3DModelPosSet(arg0->model[3], lbl_1_data_130[temp_r30->unk08].x, var_f29, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[3], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[3], temp_f31, temp_f31, temp_f31); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + if (var_f30 >= 900.0f) { + Hu3DModelAttrReset(arg0->model[var_r29 + 7], HU3D_ATTR_DISPOFF); + } + Hu3DModelObjMtxGet(arg0->model[3], sp98[var_r27 - 1][var_r29], sp68); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp68[0][3], sp68[1][3], sp68[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[var_r29 + 7], temp_f31, temp_f31, temp_f31); + } + } + var_r28 = var_r29 = var_r26 = 0; + if (temp_r30->unk1C == 1) { + fn_1_1E28(arg0, 1, 14, 5, 0); + } else { + fn_1_1E28(arg0, 1, 15, 5, 0); + } + do { + fn_1_938(); + if (temp_r30->unk1C == 1) { + temp_f31 = fn_1_878(0.75f, 1.0f, var_r26, 30.0f); + if (var_r26++ >= 29) { + var_r26 = 0; + } + Hu3DModelScaleSet(arg0->model[3], temp_f31, temp_f31, temp_f31); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + Hu3DModelObjMtxGet(arg0->model[3], sp98[var_r27 - 1][var_r29], sp38); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp38[0][3], sp38[1][3], sp38[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[var_r29 + 7], temp_f31, temp_f31, temp_f31); + } + } + if (var_r28 == 60) { + fn_1_1E28(arg0, 1, 1, 15, 1); + } + if (var_r28 == 120) { + lbl_1_bss_1580.unk18 = 1; + } + if (var_r28++ >= 120 && (var_r26 == 0 || var_r26 == 15) && temp_r30->unk18 == 1) { + temp_r30->unk18 = 2; + } + } while (temp_r30->unk18 != 3); + HuAudFXPlay(0xBB); + for (var_r28 = 0; var_r28 < 60; var_r28++) { + fn_1_938(); + if (var_r28 > 30) { + var_f29 = fn_1_61C(300.0f, 600.0f, var_r28 - 30, 30.0f); + } + var_f30 = fn_1_61C(0.0f, 360.0f, var_r28, 60.0f); + Hu3DModelPosSet(arg0->model[3], lbl_1_data_130[temp_r30->unk08].x, var_f29, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[3], 0.0f, var_f30, 0.0f); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + if (var_f30 >= 180.0f) { + Hu3DModelAttrSet(arg0->model[var_r29 + 7], HU3D_ATTR_DISPOFF); + } + Hu3DModelObjMtxGet(arg0->model[3], sp98[var_r27 - 1][var_r29], sp8); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp8[0][3], sp8[1][3], sp8[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + } + } + Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + Hu3DModelAttrSet(arg0->model[var_r28 + 7], HU3D_ATTR_DISPOFF); + } + temp_r30->unk04 = 0; +} + +void fn_1_10D74(omObjData* arg0) { + float var_f29; + float var_f30; + float temp_f31; + s32 temp_r25; + s32 var_r26; + s32 var_r27 = 3; + StructBss1530* temp_r30 = arg0->data; + char* sp98[][3] = { + { "coin-coin-null3", "coin-coin_null1", "coin-coin-null1" }, + { "coin-coin-null4", "coin-coin-null2", "coin-coin-null1" }, + { "coin-coin-null5", "coin-coin-null3", "coin-coin-null1" } + }; + Mtx sp68; + Mtx sp38; + Mtx sp8; + s32 var_r28; + s32 var_r29; + + Hu3DModelPosSet(arg0->model[4], lbl_1_data_130[temp_r30->unk08].x, 100.0f, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[4], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[4], 0.0f, 0.0f, 0.0f); + if ((temp_r25 = lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk1C / 100) == 0) { + var_r27 = 2; + } else { + Hu3DMotionTimeSet(arg0->model[9], (temp_r25 + 1) % 10); + } + if ((temp_r25 = (lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk1C % 100) / 10) == 0 && var_r27 == 2) { + var_r27 = 1; + } else { + Hu3DMotionTimeSet(arg0->model[8], (temp_r25 + 1) % 10); + } + temp_r25 = lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk1C % 10; + Hu3DMotionTimeSet(arg0->model[7], (temp_r25 + 1) % 10); + Hu3DModelAttrReset(arg0->model[4], HU3D_ATTR_DISPOFF); + for (var_r28 = 0; var_r28 < 90; var_r28++) { + fn_1_938(); + var_f29 = fn_1_6F4(100.0f, 300.0f, var_r28, 90.0f); + var_f30 = fn_1_6F4(0.0f, 1080.0f, var_r28, 90.0f); + temp_f31 = fn_1_6F4(0.0f, 0.75f, var_r28, 90.0f); + Hu3DModelPosSet(arg0->model[4], lbl_1_data_130[temp_r30->unk08].x, var_f29, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[4], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[4], temp_f31, temp_f31, temp_f31); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + if (var_f30 >= 900.0f) { + Hu3DModelAttrReset(arg0->model[var_r29 + 7], HU3D_ATTR_DISPOFF); + } + Hu3DModelObjMtxGet(arg0->model[4], sp98[var_r27 - 1][var_r29], sp68); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp68[0][3], sp68[1][3], sp68[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[var_r29 + 7], temp_f31, temp_f31, temp_f31); + } + } + var_r28 = var_r29 = var_r26 = 0; + if (temp_r30->unk1C == 1) { + fn_1_1E28(arg0, 1, 14, 5, 0); + } else { + fn_1_1E28(arg0, 1, 15, 5, 0); + } + do { + fn_1_938(); + if (temp_r30->unk1C == 1) { + temp_f31 = fn_1_878(0.75f, 1.0f, var_r26, 30.0f); + if (var_r26++ >= 29) { + var_r26 = 0; + } + Hu3DModelScaleSet(arg0->model[4], temp_f31, temp_f31, temp_f31); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + Hu3DModelObjMtxGet(arg0->model[4], sp98[var_r27 - 1][var_r29], sp38); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp38[0][3], sp38[1][3], sp38[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[var_r29 + 7], temp_f31, temp_f31, temp_f31); + } + } + if (var_r28 == 60) { + fn_1_1E28(arg0, 1, 1, 15, 1); + } + if (var_r28 == 120) { + lbl_1_bss_1580.unk18 = 1; + } + if (var_r28++ >= 120 && (var_r26 == 0 || var_r26 == 15) && temp_r30->unk18 == 1) { + temp_r30->unk18 = 2; + } + } while (temp_r30->unk18 != 3); + fn_1_1E28(arg0, 1, 1, 15, 1); + HuAudFXPlay(0xBC); + for (var_r28 = 0; var_r28 < 60; var_r28++) { + fn_1_938(); + if (var_r28 > 30) { + var_f29 = fn_1_61C(300.0f, 600.0f, var_r28 - 30, 30.0f); + } + var_f30 = fn_1_61C(0.0f, 360.0f, var_r28, 60.0f); + Hu3DModelPosSet(arg0->model[4], lbl_1_data_130[temp_r30->unk08].x, var_f29, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[4], 0.0f, var_f30, 0.0f); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + if (var_f30 >= 180.0f) { + Hu3DModelAttrSet(arg0->model[var_r29 + 7], HU3D_ATTR_DISPOFF); + } + Hu3DModelObjMtxGet(arg0->model[4], sp98[var_r27 - 1][var_r29], sp8); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp8[0][3], sp8[1][3], sp8[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + } + } + Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + Hu3DModelAttrSet(arg0->model[var_r28 + 7], HU3D_ATTR_DISPOFF); + } + temp_r30->unk04 = 0; +} + +void fn_1_11794(omObjData* arg0) { + StructBss1530* temp_r30; + + temp_r30 = arg0->data; + fn_1_958(25); + fn_1_1E28(arg0, 1, 15, 5, 0); + fn_1_958(10); + while (TRUE) { + fn_1_938(); + if (Hu3DMotionTimeGet(arg0->model[1]) >= 40.0f) { + break; + } + } + Hu3DModelAttrSet(arg0->model[1], HU3D_MOTATTR_PAUSE); + temp_r30->unk04 = 0; +} + +void fn_1_11834(omObjData* arg0) { + float var_f31; + float var_f30; + float temp_f26; + float temp_f27; + float temp_f25; + float temp_f29; + float temp_f28; + StructBss1530* temp_r31; + s32 temp_r29; + s32 var_r24; + s32 temp_r23; + s32 var_r27; + s32 temp_r25; + s32 var_r28; + + var_f30 = 0.0f; + temp_r31 = arg0->data; + temp_r29 = temp_r31->unk08; + temp_r23 = lbl_1_bss_1490[temp_r29].unk00->work[0]; + var_r24 = 0xFF; + Hu3DModelPosSet(lbl_1_bss_1490[temp_r29].unk00->model[6], lbl_1_data_130[temp_r29].x, 500.0f + lbl_1_data_130[temp_r29].y + lbl_1_bss_AC, lbl_1_data_130[temp_r29].z + 0.1f * lbl_1_bss_AC); + Hu3DModelScaleSet(lbl_1_bss_1490[temp_r29].unk00->model[6], 0.0f, 1.25f, 0.0f); + Hu3DModelTPLvlSet(lbl_1_bss_1490[temp_r29].unk00->model[6], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1490[temp_r29].unk00->model[6], HU3D_ATTR_DISPOFF); + for (var_r27 = 0; var_r27 <= 5; var_r27++) { + fn_1_938(); + lbl_1_bss_1490[temp_r29].unk00->work[0] = fn_1_6F4(temp_r23, var_r24, var_r27, 5.0f); + temp_f27 = fn_1_6F4(0.0f, 1.5f, var_r27, 5.0f); + temp_f25 = fn_1_6F4(0.0f, 0.5f, var_r27, 5.0f); + temp_r25 = fn_1_6F4(0.0f, 128.0f, var_r27, 5.0f); + Hu3DModelScaleSet(lbl_1_bss_1490[temp_r29].unk00->model[6], temp_f27, 1.25f, temp_f27); + Hu3DModelTPLvlSet(lbl_1_bss_1490[temp_r29].unk00->model[6], temp_f25); + Hu3DLLightColorSet(lbl_1_bss_1490[temp_r29].unk00->model[1], lbl_1_bss_1580.unk24[temp_r29].unk00, temp_r25, temp_r25, temp_r25, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[temp_r29].unk00->model[2], lbl_1_bss_1580.unk24[temp_r29].unk04, temp_r25, temp_r25, temp_r25, 0xFF); + } + lbl_1_bss_1490[temp_r29].unk00->work[1] = 1; + fn_1_958(20); + fn_1_1E28(arg0, 1, 3, 15, 0); + fn_1_2310(arg0, 1, 3, 15); + do { + fn_1_938(); + } while (temp_r31->unk18 == 0); + Hu3DModelPosSet(arg0->model[5], lbl_1_data_130[temp_r31->unk08].x, 300.0f, lbl_1_data_130[temp_r31->unk08].z - 50.0f); + Hu3DModelRotSet(arg0->model[5], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[5], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrReset(arg0->model[5], HU3D_ATTR_DISPOFF); + HuAudFXPlay(0x338); + for (var_r28 = 0; var_r28 < 60; var_r28++) { + fn_1_938(); + temp_f29 = 10.0 + 10.0 * sind(var_f30); + temp_f28 = 10.0 * sind(2.0f * var_f30); + if (var_r28 < 10) { + var_f31 = fn_1_61C(0.0f, 1.0f, var_r28, 10.0f); + } else { + var_f31 = fn_1_61C(1.0f, 0.5f, var_r28 - 10, 5.0f); + } + if (var_r28 == 10) { + lbl_1_bss_1580.unk334[temp_r31->unk08] = fn_1_8264(); + Hu3DParManPosSet(lbl_1_bss_1580.unk334[temp_r31->unk08], lbl_1_data_130[temp_r31->unk08].x, 300.0f + temp_f29, lbl_1_data_130[temp_r31->unk08].z); + } + if ((var_f30 += 2.0f) >= 360.0f) { + var_f30 -= 360.0f; + } + Hu3DModelPosSet(arg0->model[5], lbl_1_data_130[temp_r31->unk08].x, 300.0f + temp_f29, lbl_1_data_130[temp_r31->unk08].z - 50.0f); + Hu3DModelRotSet(arg0->model[5], 0.0f, temp_f28, 0.0f); + Hu3DModelScaleSet(arg0->model[5], var_f31, var_f31, var_f31); + } + Hu3DParManKill(lbl_1_bss_1580.unk334[temp_r31->unk08]); + lbl_1_bss_1580.unk334[temp_r31->unk08] = -1; + temp_f29 = Hu3DData[arg0->model[5]].pos.y; + temp_f26 = temp_f29; + temp_f28 = Hu3DData[arg0->model[5]].rot.y; + var_f31 = 0.5f; + var_f30 = 0.0f; + for (var_r28 = 0; var_r28 < 90; var_r28++) { + fn_1_938(); + if (var_r28 == 45) { + HuAudFXPlay(0x339); + } + if (var_r28 > 45) { + temp_f29 = fn_1_61C(temp_f26, 100.0f, var_r28 - 45, 45.0f); + var_f31 = fn_1_61C(0.5f, 0.0f, var_r28 - 45, 45.0f); + } + temp_f28 += var_f30 += 0.25f; + Hu3DModelPosSet(arg0->model[5], lbl_1_data_130[temp_r31->unk08].x, temp_f29, lbl_1_data_130[temp_r31->unk08].z - 50.0f); + Hu3DModelRotSet(arg0->model[5], 0.0f, temp_f28, 0.0f); + Hu3DModelScaleSet(arg0->model[5], var_f31, var_f31, var_f31); + } + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + HuAudFXPlay(8); + lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk20++; + GWPlayer[lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk00].stars++; + if (GWPlayer[lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk00].stars >= 999) { + GWPlayer[lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk00].stars = 999; + } + temp_r31->unk04 = 0; +} + +void fn_1_123D8(omObjData* arg0) { + StructBss1530* temp_r31; + + temp_r31 = arg0->data; + fn_1_15450(temp_r31->unk08); + temp_r31->unk04 = 0; +} + +void fn_1_1241C(omObjData* arg0) { +} + +void fn_1_12420(omObjData* arg0) { + float sp8[] = { 0.0f, -30.0f, -60.0f, -90.0f }; + float temp_f31; + StructBss1530* temp_r31; + s32 var_r27; + s32 var_r29; + s32 var_r28; + + temp_r31 = arg0->data; + if (lbl_1_bss_1580.unk344 == 1) { + var_r27 = 0; + if (lbl_1_bss_1580.unk348 == 1) { + var_r27 = 2; + } + if ((lbl_1_bss_1580.unk348 == 0 && temp_r31->unk08 <= 1) || (lbl_1_bss_1580.unk348 == 1 && temp_r31->unk08 >= 2)) { + Hu3DModelPosSet(arg0->model[2], 100.0f + lbl_1_data_130[temp_r31->unk08].x, -90.0f, lbl_1_data_130[temp_r31->unk08].z); + fn_1_958(90); + if (temp_r31->unk08 == var_r27) { + Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); + } + if (arg0->work[0] == 0) { + HuAudFXPlay(0xA8); + } + for (var_r28 = 0; var_r28 <= 30; var_r28++) { + fn_1_938(); + temp_f31 = fn_1_6F4(-90.0f, 0.0f, var_r28, 30.0f); + Hu3DModelPosSet(arg0->model[1], lbl_1_data_130[temp_r31->unk08].x, 90.0f + temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + Hu3DModelPosSet(arg0->model[2], 100.0f + lbl_1_data_130[temp_r31->unk08].x, temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + } + } + } else { + Hu3DModelPosSet(arg0->model[2], lbl_1_data_130[temp_r31->unk08].x, -90.0f, lbl_1_data_130[temp_r31->unk08].z); + if (lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk18 != 4) { + } + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (arg0->work[0] == 0 && var_r29 >= 1) { + HuAudFXPlay(0xA5 + var_r29); + } + if (var_r29 != 3) { + for (var_r28 = 0; var_r28 < 30; var_r28++) { + fn_1_938(); + if (sp8[lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk18 - 1] >= sp8[3 - var_r29] && 4 - var_r29 < 4) { + temp_f31 = fn_1_6F4(sp8[4 - var_r29], sp8[3 - var_r29], var_r28, 30.0f); + if (var_r29 == 1) { + Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); + } + Hu3DModelPosSet(arg0->model[1], lbl_1_data_130[temp_r31->unk08].x, 90.0f + temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + Hu3DModelPosSet(arg0->model[2], lbl_1_data_130[temp_r31->unk08].x, temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + } + } + } else { + for (var_r28 = 0; var_r28 < 10; var_r28++) { + fn_1_938(); + if ((sp8[lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk18 - 1] >= sp8[3 - var_r29]) && ((4 - var_r29) < 4)) { + temp_f31 = fn_1_6F4(sp8[4 - var_r29], sp8[3 - var_r29], var_r28, 10.0f); + if (var_r29 == 1) { + Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); + } + Hu3DModelPosSet(arg0->model[1], lbl_1_data_130[temp_r31->unk08].x, 90.0f + temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + Hu3DModelPosSet(arg0->model[2], lbl_1_data_130[temp_r31->unk08].x, temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + } + } + } + if (var_r29 == 2) { + fn_1_958(120); + } else if (var_r29 != 3) { + fn_1_958(60); + } + } + } + temp_r31->unk04 = 0; +} + +void fn_1_12A98(s32 arg0) { + s32 sp8[4]; + s32 var_r29; + s32 var_r30; + s32 i; + + var_r29 = 0; + var_r30 = -1; + for (i = 0; i < 4; i++) { + lbl_1_bss_1458[i] = lbl_1_bss_1448[i] = 0; + } + for (i = 0; i < 4; i++) { + switch (arg0) { + case 0: + sp8[i] = lbl_1_bss_1580.unkC4[i].unk00.unk20; + break; + case 1: + sp8[i] = lbl_1_bss_1580.unkC4[i].unk00.unk1C; + break; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 <= sp8[i]) { + var_r30 = sp8[i]; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 == sp8[i]) { + lbl_1_bss_1458[0]++; + lbl_1_bss_1448[var_r29++] = i; + } + } +} + +void fn_1_12C08(s32 arg0) { + s32 sp8[4]; + s32 var_r29; + s32 var_r30; + s32 i; + + var_r29 = 0; + var_r30 = -1; + for (i = 0; i < 4; i++) { + lbl_1_bss_1458[i] = 0; + lbl_1_bss_1448[i] = -1; + } + for (i = 0; i < 4; i++) { + switch (arg0) { + case 0: + sp8[i] = lbl_1_bss_1580.unkC4[i].unk00.unk24; + break; + case 1: + sp8[i] = lbl_1_bss_1580.unkC4[i].unk00.unk28; + break; + case 2: + sp8[i] = lbl_1_bss_1580.unkC4[i].unk00.unk2C; + break; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 <= sp8[i]) { + var_r30 = sp8[i]; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 == sp8[i]) { + lbl_1_bss_1458[0]++; + lbl_1_bss_1448[var_r29++] = i; + } + } +} + +void fn_1_12DAC(void) { + s32 sp8[4]; + s32 var_r29; + s32 i; + s32 j; + + for (i = 0; i < 4; i++) { + sp8[i] = i; + } + for (i = 0; i < 4; i++) { + for (j = i; j < 4; j++) { + if (lbl_1_bss_1580.unkC4[sp8[j]].unk00.unk20 >= lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk20) { + var_r29 = sp8[i]; + sp8[i] = sp8[j]; + sp8[j] = var_r29; + } + } + } + for (i = 0; i < 4; i++) { + for (j = i; j < 4; j++) { + if ((lbl_1_bss_1580.unkC4[sp8[j]].unk00.unk20 == lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk20) && (lbl_1_bss_1580.unkC4[sp8[j]].unk00.unk1C >= lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk1C)) { + var_r29 = sp8[i]; + sp8[i] = sp8[j]; + sp8[j] = var_r29; + } + } + } + lbl_1_bss_1580.unkC4[sp8[0]].unk00.unk18 = j = 1; + for (i = 1; i < 4; i++) { + j++; + lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk18 = j; + if ((lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk20 == lbl_1_bss_1580.unkC4[sp8[i - 1]].unk00.unk20) && (lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk1C == lbl_1_bss_1580.unkC4[sp8[i - 1]].unk00.unk1C)) { + lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk18 = lbl_1_bss_1580.unkC4[sp8[i - 1]].unk00.unk18; + } + } +} + +void fn_1_130A8(void) { + s32 var_r30; + s32 i; + + var_r30 = 0; + for (i = 0; i < 4; i++) { + lbl_1_bss_1458[i] = lbl_1_bss_1448[i] = 0; + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1580.unkC4[i].unk00.unk18 == 1) { + lbl_1_bss_1458[0]++; + lbl_1_bss_1448[var_r30++] = i; + lbl_1_bss_1458[1] = i; + } + } +} + +void fn_1_1317C(void) { + s32 sp8[4]; + s32 var_r30; + s32 i; + + var_r30 = -1; + for (i = 0; i < 4; i++) { + sp8[i] = lbl_1_bss_1428[i]; + } + for (i = 0; i < 4; i++) { + if (var_r30 <= sp8[i]) { + var_r30 = sp8[i]; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 == sp8[i]) { + lbl_1_bss_1458[1] = i; + } + } + for (i = 0; i < lbl_1_bss_1458[0]; i++) { + if (lbl_1_bss_1458[1] != lbl_1_bss_1448[i]) { + lbl_1_bss_1580.unkC4[lbl_1_bss_1448[i]].unk00.unk18 = 2; + } + } +} + +void fn_1_132AC(omObjData* arg0, s32 arg1) { + StructFn352C* temp_r30; + s32 var_r28; + + temp_r30 = &lbl_1_bss_1580.unkC4[arg1].unk00; + arg0->model[1] = CharModelCreate(temp_r30->unk10, 4); + arg0->motion[1] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[2] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 72)); + arg0->motion[5] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 47)); + arg0->motion[3] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 23)); + arg0->motion[4] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 24)); + arg0->motion[14] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 72)); + arg0->motion[15] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 73)); + CharModelMotionDataClose(temp_r30->unk10); + Hu3DModelPosSet(arg0->model[1], lbl_1_data_130[arg1].x, lbl_1_data_130[arg1].y, lbl_1_data_130[arg1].z - 20.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1E28(arg0, 1, 1, 0, 1); + if (lbl_1_bss_1580.unk344 == 1) { + var_r28 = 0; + if (arg1 > 1) { + var_r28 = 1; + } + arg0->model[2] = Hu3DModelCreateFile(var_r28 + DATA_MAKE_NUM(DATADIR_MSTORY3, 144)); + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(arg0->model[2], 1.25f, 1.0f, 1.5f); + Hu3DModelShadowMapSet(arg0->model[2]); + } else { + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 12)); + Hu3DModelScaleSet(arg0->model[2], 1.5f, 1.0f, 1.5f); + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelShadowMapSet(arg0->model[2]); + } + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 14)); + Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 15)); + Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 13)); + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 11)); + Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); + for (arg1 = 0; arg1 < 3; arg1++) { + arg0->model[arg1 + 7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 16)); + Hu3DModelAttrSet(arg0->model[arg1 + 7], HU3D_ATTR_DISPOFF); + Hu3DMotionSpeedSet(arg0->model[arg1 + 7], 0.0f); + } + lbl_1_bss_1580.unk24[arg1].unk00 = Hu3DLLightCreate(arg0->model[1], 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, 0, 0); + Hu3DLLightInfinitytSet(arg0->model[1], lbl_1_bss_1580.unk24[arg1].unk00); + Hu3DLLightPosAimSet(arg0->model[1], lbl_1_bss_1580.unk24[arg1].unk00, 0.0f, 700.0f, 1200.0f, 0.0f, 0.0f, 640.0f); + lbl_1_bss_1580.unk24[arg1].unk04 = Hu3DLLightCreate(arg0->model[2], 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, 0, 0); + Hu3DLLightInfinitytSet(arg0->model[2], lbl_1_bss_1580.unk24[arg1].unk04); + Hu3DLLightPosAimSet(arg0->model[2], lbl_1_bss_1580.unk24[arg1].unk04, 0.0f, 700.0f, 1200.0f, 0.0f, 0.0f, 640.0f); +} + +void fn_1_13908(void) { + omObjData* var_r30; + s32 temp_r31; + + temp_r31 = lbl_1_bss_1580.unk314++; + var_r30 = omAddObjEx(lbl_1_bss_A8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_1490[temp_r31].unk00 = var_r30; + lbl_1_bss_1490[temp_r31].unk04 = NULL; + lbl_1_bss_1490[temp_r31].unk08 = temp_r31; + lbl_1_bss_1490[temp_r31].unk00->data = &lbl_1_bss_1490[temp_r31]; + fn_1_132AC(lbl_1_bss_1490[temp_r31].unk00, temp_r31); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1490[temp_r31].unk04 != NULL) { + lbl_1_bss_1490[temp_r31].unk04(lbl_1_bss_1490[temp_r31].unk00); + } + } +} + +void fn_1_13A38(omObjData* arg0) { +} + +s32 lbl_1_data_504[][27] = { + { + MAKE_MESSID(37, 0x00), MAKE_MESSID(37, 0x01), MAKE_MESSID(37, 0x02), + MAKE_MESSID(37, 0x03), MAKE_MESSID(37, 0x05), MAKE_MESSID(37, 0x06), + MAKE_MESSID(37, 0x0B), MAKE_MESSID(37, 0x0C), MAKE_MESSID(37, 0x0D), + MAKE_MESSID(37, 0x0E), MAKE_MESSID(37, 0x0F), MAKE_MESSID(37, 0x10), + MAKE_MESSID(37, 0x07), MAKE_MESSID(37, 0x08), MAKE_MESSID(37, 0x09), + MAKE_MESSID(37, 0x0A), MAKE_MESSID(37, 0x11), MAKE_MESSID(37, 0x12), + MAKE_MESSID(37, 0x13), MAKE_MESSID(37, 0x14), MAKE_MESSID(37, 0x15), + MAKE_MESSID(37, 0x16), MAKE_MESSID(37, 0x17), MAKE_MESSID(37, 0x8C), + MAKE_MESSID(37, 0x8D), MAKE_MESSID(37, 0x8E), MAKE_MESSID(37, 0x9E) + }, + { + MAKE_MESSID(37, 0x19), MAKE_MESSID(37, 0x1A), MAKE_MESSID(37, 0x1B), + MAKE_MESSID(37, 0x1C), MAKE_MESSID(37, 0x1D), MAKE_MESSID(37, 0x1E), + MAKE_MESSID(37, 0x23), MAKE_MESSID(37, 0x24), MAKE_MESSID(37, 0x25), + MAKE_MESSID(37, 0x26), MAKE_MESSID(37, 0x27), MAKE_MESSID(37, 0x28), + MAKE_MESSID(37, 0x1F), MAKE_MESSID(37, 0x20), MAKE_MESSID(37, 0x21), + MAKE_MESSID(37, 0x22), MAKE_MESSID(37, 0x29), MAKE_MESSID(37, 0x2A), + MAKE_MESSID(37, 0x2B), MAKE_MESSID(37, 0x2C), MAKE_MESSID(37, 0x2D), + MAKE_MESSID(37, 0x2E), MAKE_MESSID(37, 0x2F), MAKE_MESSID(37, 0x8F), + MAKE_MESSID(37, 0x90), MAKE_MESSID(37, 0x91), MAKE_MESSID(37, 0x9F) + }, + { + MAKE_MESSID(37, 0x30), MAKE_MESSID(37, 0x31), MAKE_MESSID(37, 0x32), + MAKE_MESSID(37, 0x33), MAKE_MESSID(37, 0x34), MAKE_MESSID(37, 0x35), + MAKE_MESSID(37, 0x3A), MAKE_MESSID(37, 0x3B), MAKE_MESSID(37, 0x3C), + MAKE_MESSID(37, 0x3D), MAKE_MESSID(37, 0x3E), MAKE_MESSID(37, 0x3F), + MAKE_MESSID(37, 0x36), MAKE_MESSID(37, 0x37), MAKE_MESSID(37, 0x38), + MAKE_MESSID(37, 0x39), MAKE_MESSID(37, 0x40), MAKE_MESSID(37, 0x41), + MAKE_MESSID(37, 0x42), MAKE_MESSID(37, 0x43), MAKE_MESSID(37, 0x44), + MAKE_MESSID(37, 0x45), MAKE_MESSID(37, 0x46), MAKE_MESSID(37, 0x92), + MAKE_MESSID(37, 0x93), MAKE_MESSID(37, 0x94), MAKE_MESSID(37, 0xA0) + }, + { + MAKE_MESSID(37, 0x47), MAKE_MESSID(37, 0x48), MAKE_MESSID(37, 0x49), + MAKE_MESSID(37, 0x4A), MAKE_MESSID(37, 0x4B), MAKE_MESSID(37, 0x4C), + MAKE_MESSID(37, 0x51), MAKE_MESSID(37, 0x52), MAKE_MESSID(37, 0x53), + MAKE_MESSID(37, 0x54), MAKE_MESSID(37, 0x55), MAKE_MESSID(37, 0x56), + MAKE_MESSID(37, 0x4D), MAKE_MESSID(37, 0x4E), MAKE_MESSID(37, 0x4F), + MAKE_MESSID(37, 0x50), MAKE_MESSID(37, 0x57), MAKE_MESSID(37, 0x58), + MAKE_MESSID(37, 0x59), MAKE_MESSID(37, 0x5A), MAKE_MESSID(37, 0x5B), + MAKE_MESSID(37, 0x5C), MAKE_MESSID(37, 0x5D), MAKE_MESSID(37, 0x95), + MAKE_MESSID(37, 0x96), MAKE_MESSID(37, 0x97), MAKE_MESSID(37, 0xA1) + }, + { + MAKE_MESSID(37, 0x5E), MAKE_MESSID(37, 0x5F), MAKE_MESSID(37, 0x60), + MAKE_MESSID(37, 0x61), MAKE_MESSID(37, 0x62), MAKE_MESSID(37, 0x63), + MAKE_MESSID(37, 0x68), MAKE_MESSID(37, 0x69), MAKE_MESSID(37, 0x6A), + MAKE_MESSID(37, 0x6B), MAKE_MESSID(37, 0x6C), MAKE_MESSID(37, 0x6D), + MAKE_MESSID(37, 0x64), MAKE_MESSID(37, 0x65), MAKE_MESSID(37, 0x66), + MAKE_MESSID(37, 0x67), MAKE_MESSID(37, 0x6E), MAKE_MESSID(37, 0x6F), + MAKE_MESSID(37, 0x70), MAKE_MESSID(37, 0x71), MAKE_MESSID(37, 0x72), + MAKE_MESSID(37, 0x73), MAKE_MESSID(37, 0x74), MAKE_MESSID(37, 0x98), + MAKE_MESSID(37, 0x99), MAKE_MESSID(37, 0x9A), MAKE_MESSID(37, 0xA2) + }, + { + MAKE_MESSID(37, 0x75), MAKE_MESSID(37, 0x76), MAKE_MESSID(37, 0x77), + MAKE_MESSID(37, 0x78), MAKE_MESSID(37, 0x79), MAKE_MESSID(37, 0x7A), + MAKE_MESSID(37, 0x7F), MAKE_MESSID(37, 0x80), MAKE_MESSID(37, 0x81), + MAKE_MESSID(37, 0x82), MAKE_MESSID(37, 0x83), MAKE_MESSID(37, 0x84), + MAKE_MESSID(37, 0x7B), MAKE_MESSID(37, 0x7C), MAKE_MESSID(37, 0x7D), + MAKE_MESSID(37, 0x7E), MAKE_MESSID(37, 0x85), MAKE_MESSID(37, 0x86), + MAKE_MESSID(37, 0x87), MAKE_MESSID(37, 0x88), MAKE_MESSID(37, 0x89), + MAKE_MESSID(37, 0x8A), MAKE_MESSID(37, 0x8B), MAKE_MESSID(37, 0x9B), + MAKE_MESSID(37, 0x9C), MAKE_MESSID(37, 0x9D), MAKE_MESSID(37, 0xA3) + } +}; + +void fn_1_13A3C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + s32 var_r29 = 0; + s32 temp_r28 = 0; + s32 i; + + lbl_1_bss_1580.unk18 = 0; + fn_1_1E28(lbl_1_bss_1468.unk00, 1, arg3, 15, 1); + temp_r28 = (s16) HuWinKeyWaitNumGet(lbl_1_data_504[lbl_1_bss_1580.unk00][arg1]); + if (arg2 == -1) { + arg2 = temp_r28 - 1; + } + HuWinComKeyReset(); + if (lbl_1_bss_1580.unk14 == -1) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesSet(arg0, lbl_1_data_504[lbl_1_bss_1580.unk00][arg1]); + for (i = 0; i < temp_r28; i++) { + var_r29 = 0; + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) != 1); + if (i == arg2) { + HuWinAttrSet(arg0, 0x400); + var_r29 = 1; + lbl_1_bss_1580.unk18 = 99; + } + while (TRUE) { + HuPrcVSleep(); + if (var_r29 != 0) { + if (var_r29 == 1) { + if (HuWinStatGet(arg0) != 1) { + var_r29 = 2; + continue; + } + } + if (var_r29 == 2) { + do { + fn_1_938(); + } while (lbl_1_bss_1580.unk18 != 1); + HuWinAttrReset(arg0, 0x400); + HuWinKeyWaitEntry(arg0); + break; + } + } else if (HuWinStatGet(arg0) != 1) { + break; + } + } + } + fn_1_1B18(arg0, -1); + fn_1_1D44(arg0, MAKE_MESSID(37, 4)); + HuWinComKeyReset(); + fn_1_1E28(lbl_1_bss_1468.unk00, 1, 1, 15, 1); +} + +void fn_1_13C78(s32 arg0, s32 arg1, s32 arg2) { + fn_1_1E28(lbl_1_bss_1468.unk00, 1, arg2, 15, 1); + fn_1_1D44(arg0, lbl_1_data_504[lbl_1_bss_1580.unk00][arg1]); + fn_1_1B18(arg0, -1); + fn_1_1D44(arg0, MAKE_MESSID(37, 4)); + fn_1_1E28(lbl_1_bss_1468.unk00, 1, 1, 15, 1); +} + +void fn_1_13D38(s32 arg0, s32 arg1, s32 arg2) { + s32 var_r31; + + var_r31 = lbl_1_bss_1580.unkC4[arg1].unk00.unk10; + HuWinInsertMesSet(arg0, var_r31, arg2); +} + +void fn_1_13D98(omObjData* arg0, s32 arg1) { + s32 sp20[] = { + DATA_MAKE_NUM(DATADIR_MSTORY3, 40), + DATA_MAKE_NUM(DATADIR_MSTORY3, 46), + DATA_MAKE_NUM(DATADIR_MSTORY3, 52), + DATA_MAKE_NUM(DATADIR_MSTORY3, 58), + DATA_MAKE_NUM(DATADIR_MSTORY3, 64), + DATA_MAKE_NUM(DATADIR_MSTORY3, 70) + }; + s32 sp38[][5] = { + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x29), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x2A), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x2B), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x2C), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x2D) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x2F), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x30), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x31), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x32), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x33) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x35), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x36), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x37), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x38), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x39) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x3B), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x3C), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x3D), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x3E), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x3F) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x41), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x42), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x43), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x44), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x45) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x47), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x48), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x49), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x4A), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x4A) } + }; + + arg0->model[1] = Hu3DModelCreateFile(sp20[arg1]); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp38[arg1][0]); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp38[arg1][1]); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp38[arg1][2]); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp38[arg1][3]); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp38[arg1][4]); + Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 670.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + if (arg1 == 3) { + Hu3DData[arg0->model[1]].pos.y = 50.0f; + } + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1E28(arg0, 1, 1, 0, 1); + { + s32 sp8[] = { 9, 14, 10, 11, 12, 13 }; + + if (arg1 != 3) { + CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]); + } + } +} + +void fn_1_140A0(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_1468.unk00 = temp_r3; + lbl_1_bss_1468.unk04 = NULL; + lbl_1_bss_1468.unk00->data = &lbl_1_bss_1468; + fn_1_13D98(temp_r3, lbl_1_bss_1580.unk00); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1468.unk04 != NULL) { + lbl_1_bss_1468.unk04(temp_r3); + } + } +} + +void fn_1_1442C(s32 arg0) { + s32 var_r31; + + var_r31 = -1; + if (GWPlayerCfg[lbl_1_bss_1580.unkC4[arg0].unk00.unk00].iscom) { + var_r31 = rand8() % 120 + 60; + } + do { + fn_1_938(); + if (!GWPlayerCfg[lbl_1_bss_1580.unkC4[arg0].unk00.unk00].iscom && (HuPadBtnDown[GWPlayerCfg[lbl_1_bss_1580.unkC4[arg0].unk00.unk00].pad_idx] & PAD_BUTTON_A)) { + break; + } + } while (var_r31-- != 0); + fn_1_1E28(lbl_1_bss_1490[arg0].unk00, 1, 5, 15, 0); +} + +void fn_1_1456C(s32 arg0) { + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1490[arg0].unk00->motion[5] != Hu3DMotionShiftIDGet(lbl_1_bss_1490[arg0].unk00->model[1]) + && lbl_1_bss_1490[arg0].unk00->motion[5] == Hu3DMotionIDGet(lbl_1_bss_1490[arg0].unk00->model[1]) + && Hu3DMotionTimeGet(lbl_1_bss_1490[arg0].unk00->model[1]) >= 27.0f) + { + break; + } + } + HuAudFXStop(lbl_1_bss_68[arg0 + 1]); + HuAudFXPlay(0x303); +} + +HsfanimStruct00 lbl_1_data_78C = { + 60, { 0, 0 }, + 1000.0f, 0.0f, 180.0f, + { 0.0f, 0.0f, 0.0f }, + 50.0f, 0.9f, 20.0f, 0.99f, 4, + { + { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xFF, 0x80, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }, + { + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 } + } +}; + +s32 fn_1_14684(void) { + s32 temp_r3; + + temp_r3 = Hu3DParManCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 1)), 250, &lbl_1_data_78C); + Hu3DParManTimeLimitSet(temp_r3, 60); + Hu3DParManAttrSet(temp_r3, 4 | 0x40); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(temp_r3), 1); + return temp_r3; +} + +void fn_1_14700(omObjData* arg0) { + Hu3DModelKill(arg0->model[0]); + omDelObjEx(lbl_1_bss_A8, arg0); +} + +void fn_1_14748(omObjData* arg0) { + float temp_f31; + s32 sp8[3]; + s32 temp_r27; + s32 var_r26; + s32 var_r30; + s32 temp_r25; + s32 var_r29; + + switch (arg0->work[1]) { + case 0: + if (arg0->work[2] >= 1080) { + arg0->work[1] = 1; + arg0->rot.y = 0.0f; + arg0->scale.x = arg0->scale.y = arg0->scale.z = 1.0f; + arg0->work[2] = arg0->work[3] = 0; + lbl_1_bss_68[arg0->work[0] + 1] = HuAudFXPlay(0x300); + } else { + arg0->rot.y = arg0->work[2] % 360; + arg0->work[2] += 25; + if (arg0->work[3] < 180) { + arg0->scale.x = sind(arg0->work[3] % 180); + arg0->work[3] += 6; + } else { + arg0->scale.x = 1.0 + 0.5 * sind(arg0->work[3] % 180); + arg0->work[3] += 18; + } + arg0->scale.y = arg0->scale.z = arg0->scale.x; + if (arg0->work[3] > 360) { + arg0->work[3] = 360; + } + } + break; + case 1: + if (arg0->work[2] >= 40) { + arg0->work[1] = 2; + } + /* fallthrough */ + case 2: + arg0->trans.y += 0.2f * sind(arg0->work[2]); + if ((arg0->work[2] += 4) > 360) { + arg0->work[2] -= 360; + } + break; + case 3: + if (arg0->work[3]++ >= 8) { + arg0->work[1] = 4; + arg0->work[3] = 0; + Hu3DModelAttrSet(arg0->model[0], 1); + } else { + temp_f31 = fn_1_5D4(1.0f, 0.0f, arg0->work[3], 8.0f); + if (arg0->work[3] == 1) { + arg0->work[2] = fn_1_14684(); + Hu3DParManPosSet(arg0->work[2], arg0->trans.x, 275.0f, arg0->trans.z); + } + arg0->trans.y = 250.0f + fn_1_5D4(0.0f, 25.0f, arg0->work[3], 4.0f); + arg0->scale.x = 1.0f + 0.5f * (1.0f - temp_f31); + arg0->scale.y = arg0->scale.z = arg0->scale.x; + Hu3DModelTPLvlSet(arg0->model[0], temp_f31); + } + break; + case 4: + if (arg0->work[3]++ >= 60) { + Hu3DParManKill(arg0->work[2]); + arg0->work[2] = -1; + arg0->func = NULL; + } + break; + } + if (arg0->work[1] >= 3) { + var_r26 = 0; + if (lbl_1_bss_1428[arg0->work[0]] == -1) { + var_r30 = lbl_1_bss_1438[arg0->work[0]]; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r29 != arg0->work[0]) { + sp8[var_r26++] = lbl_1_bss_1428[var_r29]; + } + } + while (TRUE) { + if (var_r30 != sp8[0] && var_r30 != sp8[1] && var_r30 != sp8[2]) { + lbl_1_bss_1428[arg0->work[0]] = var_r30; + break; + } + var_r30 = rand8() % 10 + 1; + } + Hu3DMotionTimeSet(arg0->model[0], lbl_1_bss_1428[arg0->work[0]] - 1 + 0.5f); + } + } else { + temp_r25 = lbl_1_bss_1438[arg0->work[0]] - 1; + do { + temp_r27 = rand8() % 10; + } while (temp_r25 == temp_r27); + lbl_1_bss_1438[arg0->work[0]] = temp_r27 + 1; + Hu3DMotionTimeSet(arg0->model[0], temp_r27 + 0.5f); + } +} + +void fn_1_14E6C(omObjData* arg0) { + s32 temp_r30; + + temp_r30 = arg0->work[0]; + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 19)); + omSetTra(arg0, lbl_1_data_130[temp_r30].x, 250.0f, lbl_1_data_130[temp_r30].z); + omSetRot(arg0, 0.0f, 0.0f, 0.0f); + omSetSca(arg0, 0.0f, 0.0f, 0.0f); + Hu3DMotionSpeedSet(arg0->model[0], 0.0f); + HuAudFXPlay(0x302); + arg0->func = fn_1_14748; +} + +void fn_1_14F80(omObjData* arg0) { + Hu3DModelKill(arg0->model[1]); + Hu3DModelKill(arg0->model[2]); + omDelObjEx(lbl_1_bss_A8, arg0); +} + +void fn_1_14FD4(omObjData* arg0) { + s32 temp_r29; + s32 var_r30; + + temp_r29 = arg0->work[0]; + for (var_r30 = 1; var_r30 < 3; var_r30++) { + if (arg0->work[3] <= 40) { + Hu3DData[arg0->model[var_r30]].rot.y = fn_1_6F4(0.0f, 360.0f, arg0->work[3], 40.0f); + } else { + Hu3DData[arg0->model[var_r30]].rot.y = fn_1_61C(360.0f, 0.0f, arg0->work[3] - 40, 20.0f); + } + if (arg0->work[1] / 10 == 0) { + Hu3DData[arg0->model[var_r30]].pos.x = lbl_1_data_130[temp_r29].x; + } else { + Hu3DData[arg0->model[var_r30]].pos.x = lbl_1_data_130[temp_r29].x + fn_1_5D4(0.0f, 40.0f + -80.0f * (var_r30 - 1), arg0->work[3], 20.0f); + } + Hu3DData[arg0->model[var_r30]].pos.y = 275.0f + fn_1_5D4(0.0f, 50.0f, arg0->work[3], 20.0f); + Hu3DData[arg0->model[var_r30]].pos.z = lbl_1_data_130[temp_r29].z; + } + if (arg0->work[3]++ >= 60) { + arg0->func = NULL; + } +} + +void fn_1_152F0(omObjData* arg0) { + s32 sp8[] = { + DATA_MAKE_NUM(DATADIR_MSTORY3, 20), + DATA_MAKE_NUM(DATADIR_MSTORY3, 21), + DATA_MAKE_NUM(DATADIR_MSTORY3, 22), + DATA_MAKE_NUM(DATADIR_MSTORY3, 23), + DATA_MAKE_NUM(DATADIR_MSTORY3, 24), + DATA_MAKE_NUM(DATADIR_MSTORY3, 25), + DATA_MAKE_NUM(DATADIR_MSTORY3, 26), + DATA_MAKE_NUM(DATADIR_MSTORY3, 27), + DATA_MAKE_NUM(DATADIR_MSTORY3, 28), + DATA_MAKE_NUM(DATADIR_MSTORY3, 29) + }; + + arg0->model[1] = Hu3DModelCreateFile(sp8[arg0->work[1] % 10]); + arg0->model[2] = Hu3DModelCreateFile(sp8[arg0->work[1] / 10]); + Hu3DMotionSpeedSet(arg0->model[1], 0.0f); + Hu3DMotionSpeedSet(arg0->model[2], 0.0f); + if (arg0->work[1] / 10 == 0) { + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + } + arg0->func = fn_1_14FD4; +} + +void fn_1_15450(s32 arg0) { + omObjData* temp_r3; + omObjData* temp_r3_2; + + temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x2000, 0x10, 0x10, -1, fn_1_14E6C); + temp_r3->work[0] = arg0; + do { + fn_1_938(); + } while (temp_r3->work[1] != 2); + fn_1_1442C(arg0); + fn_1_1456C(arg0); + temp_r3->work[1] = 3; + fn_1_938(); + temp_r3_2 = omAddObjEx(lbl_1_bss_A8, 0x2000, 0x10, 0x10, -1, fn_1_152F0); + temp_r3_2->work[0] = arg0; + temp_r3_2->work[1] = lbl_1_bss_1428[arg0]; + fn_1_958(10); + fn_1_1E28(lbl_1_bss_1490[arg0].unk00, 1, 1, 15, 1); + do { + fn_1_938(); + } while (temp_r3_2->func); + lbl_1_bss_1490[arg0].unk18 = 1; + do { + fn_1_938(); + } while (lbl_1_bss_1490[arg0].unk18 != 2); + fn_1_958(150); + fn_1_14700(temp_r3); + fn_1_14F80(temp_r3_2); +} diff --git a/src/REL/mstory3Dll/win_effect.c b/src/REL/mstory3Dll/win_effect.c new file mode 100755 index 00000000..48590c1b --- /dev/null +++ b/src/REL/mstory3Dll/win_effect.c @@ -0,0 +1,322 @@ +#include "REL/mstory3Dll.h" +#include "game/data.h" +#include "game/hsfanim.h" +#include "game/hsfex.h" +#include "game/hsfman.h" +#include "game/memory.h" +#include "game/sprite.h" + +#include "ext_math.h" + +#define frand5() (((s32)frand() & 0x1F)) +#define frand8() (((s32)frand() & 0xFF)) + +typedef struct { + /* 0x00 */ Vec* unk00; + /* 0x04 */ Vec unk04; + /* 0x10 */ Vec unk10; + /* 0x1C */ u16 unk1C; + /* 0x1E */ u16 unk1E; + /* 0x20 */ u16 unk20; + /* 0x22 */ s16 unk22; + /* 0x24 */ float unk24; + /* 0x28 */ AnimData* unk28; +} StructBss1CF8; // Size 0x2C + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ char unk02[0x1A]; + /* 0x1C */ StructBss1CF8* unk1C; +} StructFn1E13C; // Size unknown + +void fn_1_1E13C(s32 arg0, s32 arg1, StructBss1CF8* arg2, Vec* arg3); +void fn_1_1E558(void); +void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix); + +StructBss1CF8 lbl_1_bss_1CF8[2]; +s32 lbl_1_bss_1CF4; +s32 lbl_1_bss_1CF0; +s32 lbl_1_bss_1CEC; +s16 lbl_1_bss_1CE8; + +void fn_1_1DED8(s32 arg0, Vec* arg1, Vec* arg2, s16 arg3) { + AnimData* temp_r28; + s16 var_r27; + + fn_1_1E13C(arg0 + 1, arg0 + 3, &lbl_1_bss_1CF8[0], arg2); + lbl_1_bss_1CF8[0].unk04 = *arg1; + lbl_1_bss_1CF8[0].unk24 = arg3 - 20; + fn_1_1E13C(arg0 + 2, arg0 + 3, &lbl_1_bss_1CF8[1], arg2); + lbl_1_bss_1CF8[1].unk04 = *arg1; + lbl_1_bss_1CF8[1].unk24 = arg3 - 20; + temp_r28 = HuSprAnimReadFile(arg0); + lbl_1_bss_1CE8 = HuSprGrpCreate(1); + var_r27 = HuSprCreate(temp_r28, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_1CE8, 0, var_r27); + HuSprPosSet(lbl_1_bss_1CE8, 0, arg2->x, arg2->y); + HuSprTPLvlSet(lbl_1_bss_1CE8, 0, 0.0f); + HuSprAttrSet(lbl_1_bss_1CE8, 0, 8); + HuPrcChildCreate(fn_1_1E558, 100, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_1CF4 = 0; + lbl_1_bss_1CF0 = 0; + lbl_1_bss_1CEC = 0; +} + +void fn_1_1E0F4(void) { + lbl_1_bss_1CF4 = 1; +} + +s32 fn_1_1E108(void) { + return lbl_1_bss_1CF0; +} + +void fn_1_1E118(void) { + lbl_1_bss_1CEC = 1; +} + +s32 fn_1_1E12C(void) { + return lbl_1_bss_1CE8; +} + +void fn_1_1E13C(s32 arg0, s32 arg1, StructBss1CF8* arg2, Vec* arg3) { + Vec sp14; + AnimBmpData* temp_r31; + s32 sp10; + s32 var_r27; + s32 var_r26; + u16* var_r25; + AnimData* var_r24; + Vec* var_r22; + StructFn1E13C* temp_r23; + s16 var_r29; + s16 var_r28; + + var_r24 = HuSprAnimReadFile(arg0); + arg2->unk28 = var_r24; + temp_r31 = var_r24->bmp; + sp10 = temp_r31->sizeX * temp_r31->sizeY; + var_r25 = temp_r31->data; + for (var_r28 = var_r26 = 0; var_r28 < temp_r31->sizeY; var_r28 += 2) { + for (var_r29 = 0; var_r29 < temp_r31->sizeX; var_r29 += 2) { + var_r25 = (u16*) temp_r31->data + ((var_r28 % 4) * 4 + (var_r28 / 4) * temp_r31->sizeX * 4 + (var_r29 / 4) * 16 + var_r29 % 4); + if (*var_r25 != 0x8000) { + var_r26++; + } + } + } + arg2->unk20 = var_r26; + var_r22 = arg2->unk00 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r26 * sizeof(*var_r22), MEMORY_DEFAULT_NUM); + arg2->unk1C = temp_r31->sizeX; + arg2->unk1E = temp_r31->sizeY; + Hu3D2Dto3D(arg3, 1, &arg2->unk10); + for (var_r28 = 0; var_r28 < temp_r31->sizeY; var_r28 += 2) { + for (var_r29 = 0; var_r29 < temp_r31->sizeX; var_r29 += 2) { + var_r25 = (u16*) temp_r31->data + ((var_r28 % 4) * 4 + (var_r28 / 4) * temp_r31->sizeX * 4 + (var_r29 / 4) * 16 + var_r29 % 4); + if (*var_r25 != 0x8000) { + sp14 = *arg3; + sp14.x = sp14.x + var_r29 - temp_r31->sizeX / 2; + sp14.y = sp14.y + var_r28 - temp_r31->sizeY / 2; + Hu3D2Dto3D(&sp14, 1, var_r22); + var_r22++; + } + } + } + HuSprAnimKill(var_r24); + var_r24 = HuSprAnimRead(HuDataRead(arg1)); + var_r27 = Hu3DParticleCreate(var_r24, var_r26); + arg2->unk22 = var_r27; + Hu3DModelPosSet(var_r27, 0.0f, 0.0f, 0.0f); + Hu3DModelLayerSet(var_r27, 1); + Hu3DParticleColSet(var_r27, 0xFF, 0xFF, 0xA); + Hu3DParticleScaleSet(var_r27, 20.0f); + Hu3DParticleHookSet(var_r27, fn_1_1E820); + Hu3DParticleBlendModeSet(var_r27, 1); + Hu3DParticleAttrSet(var_r27, 2); + temp_r23 = Hu3DData[var_r27].unk_120; + temp_r23->unk1C = arg2; + temp_r23->unk00 = 0; + OSReport("Particle Count %d\n", var_r26); +} + +void fn_1_1E558(void) { + float var_f31; + float var_f30; + float temp_f29; + s16* temp_r30; + s16* temp_r29; + s16 i; + + var_f31 = 0.0f; + var_f30 = 0.0f; + while (lbl_1_bss_1CF4 == 0) { + HuPrcVSleep(); + } + Hu3DParticleAttrReset(lbl_1_bss_1CF8->unk22, 2); + HuPrcSleep(20); + Hu3DParticleAttrReset(lbl_1_bss_1CF8[1].unk22, 2); + temp_r30 = Hu3DData[lbl_1_bss_1CF8[0].unk22].unk_120; + temp_r29 = Hu3DData[lbl_1_bss_1CF8[1].unk22].unk_120; + while (*temp_r30 == 0 || *temp_r29 == 0) { + HuPrcVSleep(); + } + for (i = 0; i <= 20; i++) { + temp_f29 = i / 20.0f; + HuSprTPLvlSet(lbl_1_bss_1CE8, 0, temp_f29); + HuPrcVSleep(); + } + OSReport("Finish\n"); + for (i = 0; i < 2; i++) { + Hu3DModelKill(lbl_1_bss_1CF8[i].unk22); + HuSprAnimKill(lbl_1_bss_1CF8[i].unk28); + } + lbl_1_bss_1CF0 = 1; + while (TRUE) { + if (lbl_1_bss_1CEC != 0) { + break; + } + var_f31 += var_f30; + if (var_f31 > 360.0f) { + var_f31 -= 360.0f; + } + var_f30 += 0.5; + if (var_f30 > 10.0f) { + var_f30 = 10.0f; + } + temp_f29 = 1.0 + 0.25 * sind(var_f31); + HuSprScaleSet(lbl_1_bss_1CE8, 0, temp_f29, temp_f29); + HuPrcVSleep(); + } + HuSprGrpKill(lbl_1_bss_1CE8); + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) { + Vec sp8; + float temp_f30; + float temp_f31; + s16 var_r22; + s16 var_r29; + StructBss1CF8* temp_r28; + HsfanimStruct01* var_r31; + s16 var_r27; + s16 temp_r25; + s16 temp_r24; + s16 temp_r21; + s16 temp_r26; + s16 temp_r20; + s16 var_r23; + + temp_r28 = particle->unk_1C; + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + var_r31->unk2C = 0.0f; + } + } + if (particle->unk_2D & 2) { + return; + } + temp_r21 = temp_r28->unk24 - (temp_r28->unk24 / 5.0f); + temp_r26 = temp_r21 / 2; + temp_r20 = temp_r21 - temp_r26; + PSVECSubtract(&temp_r28->unk04, &temp_r28->unk10, &sp8); + temp_f31 = PSVECMag(&sp8) / temp_r20; + for (var_r22 = 0; var_r22 < particle->unk_30 / (temp_r28->unk24 / 5.0f); var_r22++) { + var_r31 = particle->unk_48; + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (!var_r31->unk2C) { + break; + } + } + if (var_r29 == particle->unk_30) { + break; + } + var_r31->unk34 = temp_r28->unk04; + var_r27 = (frand8() * 360) >> 8; + temp_f30 = 0.2 * frand5(); + var_r31->unk08.x = temp_f30 * sind(var_r27); + var_r31->unk08.y = 0.1 * (frand5() + 100); + var_r31->unk08.z = temp_f30 * cosd(var_r27); + var_r31->unk40.r = 0xF0; + var_r31->unk40.g = 0x80; + var_r31->unk40.b = 0x60; + var_r31->unk2C = 10.0f; + var_r31->unk00 = 0; + var_r31->unk02 = 0; + var_r31->unk14.x = frandmod(360); + } + var_r31 = particle->unk_48; + for (var_r29 = var_r23 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (!var_r31->unk2C) { + continue; + } + if (var_r31->unk00_s16 == 0) { + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk08.x *= 0.999f; + var_r31->unk08.y -= 0.5f; + var_r31->unk08.z *= 0.999f; + if (var_r31->unk02 > temp_r26 - (temp_r26 / 5.0)) { + PSVECScale(&var_r31->unk08, &var_r31->unk08, 1.0 - ((var_r31->unk02 - (temp_r26 - temp_r26 / 5.0)) / (temp_r26 / 5.0))); + } + if (var_r31->unk02 == temp_r26) { + var_r31->unk00_s16++; + } + if (var_r31->unk34.y <= 0.0f) { + var_r31->unk08.y = 0.5f * -var_r31->unk08.y; + var_r31->unk34.y = 0.0f; + } + } else if (var_r31->unk00_s16 == 1) { + sp8 = temp_r28->unk00[var_r29]; + PSVECSubtract(&sp8, &var_r31->unk34, &sp8); + if (PSVECMag(&sp8) <= 1.0 + temp_f31) { + var_r23++; + var_r31->unk34 = temp_r28->unk00[var_r29]; + var_r31->unk00_s16++; + continue; + } + PSVECNormalize(&sp8, &sp8); + var_r31->unk08.x = sp8.x * temp_f31 + sind(var_r31->unk14.x); + var_r31->unk08.y = sp8.y * temp_f31; + var_r31->unk08.z = sp8.z * temp_f31; + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk14.x += 20.0f; + } else { + var_r23++; + } + if (var_r31->unk00_s16 >= 1) { + var_r27 = var_r31->unk40.r; + var_r27 += (var_r27 - 0xFF) / 20; + if (var_r27 > 0xFF) { + var_r31->unk40.r = 0xFF; + } else { + var_r31->unk40.r = var_r27; + } + temp_r25 = var_r31->unk40.g; + temp_r25 += (temp_r25 - 0xFF) / 20; + if (temp_r25 > 0xFF) { + var_r31->unk40.g = 0xFF; + } else { + var_r31->unk40.g = temp_r25; + } + temp_r24 = var_r31->unk40.b; + temp_r24 += (temp_r24 - 0x80) / 20; + if (temp_r24 > 0x80) { + var_r31->unk40.b = 0x80; + } else { + var_r31->unk40.b = temp_r24; + } + } + var_r31->unk2C -= 0.2f; + if (var_r31->unk2C < 5.0f) { + var_r31->unk2C = 5.0f; + } + var_r31->unk02++; + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + if (var_r23 >= particle->unk_30) { + particle->unk_00++; + } +} diff --git a/src/REL/option/rumble.c b/src/REL/option/rumble.c index 4a52323d..aeae0f72 100755 --- a/src/REL/option/rumble.c +++ b/src/REL/option/rumble.c @@ -197,12 +197,12 @@ static omObjData *CreateHand(void) return hand; } -static void KillHand(omObjData *hand) +static void KillHand(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(hand->model[i]); + Hu3DModelKill(object->model[i]); } } @@ -222,21 +222,21 @@ static omObjData *CreateSystem(void) return system; } -static void KillSystem(omObjData *system) +static void KillSystem(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(system->model[i]); + Hu3DModelKill(object->model[i]); } } -static void StartSystemMotion(omObjData *system, s32 rumbleF, BOOL slowF) +static void StartSystemMotion(omObjData *object, s32 rumbleF, BOOL slowF) { - s16 model = system->model[0]; + s16 model = object->model[0]; - Hu3DModelAttrReset(system->model[0], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(system->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); if (rumbleF) { Hu3DMotionStartEndSet(model, 60.0f, 120.0f); if (slowF) { @@ -267,24 +267,24 @@ static omObjData *CreatePad(void) return pad; } -static void KillPad(omObjData *pad) +static void KillPad(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(pad->model[i]); + Hu3DModelKill(object->model[i]); } } -static void ShakePad(omObjData *pad, BOOL on) +static void ShakePad(omObjData *object, BOOL on) { if (on) { - Hu3DModelAttrReset(pad->model[0], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrSet(pad->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); } else { - Hu3DModelAttrSet(pad->model[0], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(pad->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); } } diff --git a/src/REL/w01Dll/main.c b/src/REL/w01Dll/main.c index 350880e2..6cf2beb7 100755 --- a/src/REL/w01Dll/main.c +++ b/src/REL/w01Dll/main.c @@ -1,6 +1,20 @@ -#include "REL/w01Dll.h" +#include "game/board/main.h" #include "REL/board_executor.h" +#include "REL/w01Dll.h" #include "game/audio.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/map_object.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/shop.h" +#include "game/board/space.h" +#include "game/board/star.h" +#include "game/board/ui.h" +#include "game/board/view.h" +#include "game/board/window.h" #include "game/chrman.h" #include "game/data.h" #include "game/gamework_data.h" @@ -13,20 +27,6 @@ #include "game/process.h" #include "game/window.h" #include "game/wipe.h" -#include "game/board/audio.h" -#include "game/board/boo_house.h" -#include "game/board/com.h" -#include "game/board/lottery.h" -#include "game/board/main.h" -#include "game/board/model.h" -#include "game/board/player.h" -#include "game/board/shop.h" -#include "game/board/space.h" -#include "game/board/star.h" -#include "game/board/ui.h" -#include "game/board/view.h" -#include "game/board/window.h" -#include "game/board/map_object.h" #include "dolphin.h" #include "ext_math.h" @@ -162,42 +162,40 @@ static void fn_1_9920(omObjData *arg0); static void fn_1_9A24(Bss20Work *arg0); static void fn_1_9BBC(Bss20Work *arg0); - -static BoardMapObject lbl_1_data_0[MAPOBJ_MAX] = { - { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 8) }, - { { 0.0f, 700.0f, 300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 9) }, - { { -2025.0f, 100.0f, 1950.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { 1725.0f, 200.0f, -1650.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { 2757.974f, 200.0f, -536.781f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { -2750.0f, 300.0f, -2150.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 12) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 13) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 14) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 15) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 17) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 21) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 22) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 23) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 24) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 25) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 26) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 27) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) } -}; +static BoardMapObject lbl_1_data_0[MAPOBJ_MAX] + = { { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 8) }, + { { 0.0f, 700.0f, 300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 9) }, + { { -2025.0f, 100.0f, 1950.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { 1725.0f, 200.0f, -1650.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { 2757.974f, 200.0f, -536.781f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { -2750.0f, 300.0f, -2150.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 12) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 13) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 14) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 15) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 17) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 21) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 22) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 23) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 24) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 25) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 26) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 27) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) } }; s16 lbl_1_bss_6C4[MAPOBJ_MAX]; @@ -249,23 +247,18 @@ 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_534[] = { DATA_MAKE_NUM(DATADIR_W01, 30), -1 }; -static s32 lbl_1_data_53C[] = { - DATA_MAKE_NUM(DATADIR_BGUEST, 1), - -1 -}; +static s32 lbl_1_data_53C[] = { DATA_MAKE_NUM(DATADIR_BGUEST, 1), -1 }; -void BoardCreate(void) { +void BoardCreate(void) +{ BoardMapObject *temp_r30; s32 sp8; s32 i; sp8 = GWBoardGet(); - lbl_1_bss_0 = (UnkBoardDataStruct*) GWSystem.board_data; + 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); @@ -289,7 +282,8 @@ void BoardCreate(void) { if (temp_r30->data_num != -1) { if (i == 2 || i == 3 || i == 4 || i == 5) { lbl_1_bss_6C0 = lbl_1_data_53C; - } else { + } + else { lbl_1_bss_6C0 = NULL; } lbl_1_bss_6C4[i] = BoardModelCreate(temp_r30->data_num, lbl_1_bss_6C0, 0); @@ -317,7 +311,8 @@ void BoardCreate(void) { BoardJunctionMaskSet(0x3000); } -void BoardDestroy(void) { +void BoardDestroy(void) +{ s32 i; fn_1_4864(); @@ -351,17 +346,18 @@ void BoardDestroy(void) { BoardSpaceDestroy(); } -static void fn_1_730(void) { +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 void fn_1_774(void) { } -static s32 fn_1_778(void) { +static s32 fn_1_778(void) +{ s32 temp_r31; s32 temp_r30; u32 temp_r29; @@ -371,12 +367,14 @@ static s32 fn_1_778(void) { temp_r29 = BoardSpaceFlagGet(0, temp_r30); if (temp_r29 & 0x800) { fn_1_77EC(temp_r31, temp_r30); - } else if (temp_r29 & 0x400) { + } + else if (temp_r29 & 0x400) { fn_1_7528(temp_r31, temp_r30); } } -static s32 fn_1_814(void) { +static s32 fn_1_814(void) +{ s32 temp_r27; s32 var_r30; s32 var_r29; @@ -394,7 +392,8 @@ static s32 fn_1_814(void) { if (lbl_1_bss_0->unk00_field0 != 0) { return 0; } - } else if (temp_r31->flag & 0x1000) { + } + else if (temp_r31->flag & 0x1000) { if (lbl_1_bss_0->unk00_field0 != 1) { return 0; } @@ -410,7 +409,8 @@ static s32 fn_1_814(void) { var_r29 = 0; var_r26 = temp_r31->link[var_r30]; break; - } else if (temp_r28->flag & 0x4000) { + } + else if (temp_r28->flag & 0x4000) { var_r29 = 1; var_r26 = temp_r31->link[var_r30]; break; @@ -424,7 +424,8 @@ static s32 fn_1_814(void) { return 0; } -static void fn_1_9E8(void) { +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); @@ -459,10 +460,10 @@ static void fn_1_9E8(void) { 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_D00(void) { } -static void fn_1_D04(void) { +static void fn_1_D04(void) +{ Vec sp3C; Vec sp30; Vec sp24; @@ -526,7 +527,8 @@ static void fn_1_D04(void) { if (GWPlayer[temp_r30].com) { if (var_r26 != 0) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } @@ -578,13 +580,15 @@ static void fn_1_D04(void) { HuPrcEnd(); } -static void fn_1_1254(void) { +static void fn_1_1254(void) +{ BoardWinKill(); CharModelDataClose(-1); lbl_1_bss_4 = NULL; } -static void fn_1_128C(void) { +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) { @@ -592,7 +596,8 @@ static void fn_1_128C(void) { } } -static void fn_1_130C(void) { +static void fn_1_130C(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -644,7 +649,8 @@ static void fn_1_130C(void) { BoardPlayerMotionStart(temp_r31, 1, 0x40000001); } -static s32 fn_1_157C(void) { +static s32 fn_1_157C(void) +{ s32 temp_r31; s16 temp_curr; @@ -653,23 +659,27 @@ static s32 fn_1_157C(void) { BoardRollDispSet(0); if (temp_r31 == 0x200000) { fn_1_130C(); - } else if (temp_r31 == 0x400000) { + } + else if (temp_r31 == 0x400000) { fn_1_128C(); } BoardRollDispSet(1); } -static void fn_1_1670(void) { +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 { + } + else { BoardModelVisibilitySet(lbl_1_bss_6C4[2], 0); BoardModelVisibilitySet(lbl_1_bss_6C4[3], 1); } } -static void fn_1_1700(void) { +static void fn_1_1700(void) +{ Vec sp8; Mtx sp14; @@ -683,7 +693,8 @@ static void fn_1_1700(void) { BoardSpaceFlagPosGet(1, 0x2000, &sp8); BoardModelMotionTimeSet(lbl_1_bss_6AE, lbl_1_bss_644); lbl_1_bss_63C = -90.0f; - } else { + } + else { BoardSpaceFlagPosGet(1, 0x1000, &sp8); BoardModelMotionTimeSet(lbl_1_bss_6AE, 0.0f); lbl_1_bss_63C = 90.0f; @@ -694,13 +705,14 @@ static void fn_1_1700(void) { 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); + MTXIdentity(sp14); BoardModelMtxSet(lbl_1_bss_6C4[0], &sp14); fn_1_1670(); } } -static void fn_1_1990(void) { +static void fn_1_1990(void) +{ Vec sp10; float var_f31; s32 var_r29; @@ -715,7 +727,8 @@ static void fn_1_1990(void) { temp_r31 = BoardSpaceGet(1, var_r29); if (lbl_1_bss_0->unk00_field0 == 0) { var_r30 = temp_r31->link[0]; - } else { + } + else { BoardSpaceLinkTargetListGet(1, var_r29, sp8); var_r30 = sp8[0]; } @@ -736,18 +749,21 @@ static void fn_1_1990(void) { } if (temp_r31->flag & 8) { lbl_1_bss_6B3 = 1; - } else { + } + else { lbl_1_bss_6B3 = 0; } } -static void fn_1_1AD8(BoardCameraData *camera) { +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) { +static void fn_1_1B3C(void) +{ Vec sp3C; Vec sp30; Vec sp24; @@ -763,25 +779,28 @@ static void fn_1_1B3C(void) { 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 { + MTXTranspose(sp48, lbl_1_bss_678); + MTXRotRad(sp48, 'z', MTXDegToRad(lbl_1_bss_660.z)); + MTXConcat(lbl_1_bss_678, sp48, lbl_1_bss_678); + } + else { if (sp30.z != 0.0f || sp30.x != 0.0f) { lbl_1_bss_660.y = atan2d(sp30.x, sp30.z); lbl_1_bss_660.x = -atan2d(sp30.y, VECMagXZ(&sp30)); - } else { + } + 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); + MTXRotRad(lbl_1_bss_678, 'z', MTXDegToRad(lbl_1_bss_660.z)); + MTXRotRad(sp48, 'x', MTXDegToRad(lbl_1_bss_660.x)); + MTXConcat(sp48, lbl_1_bss_678, lbl_1_bss_678); + MTXRotRad(sp48, 'y', MTXDegToRad(lbl_1_bss_660.y)); + MTXConcat(sp48, lbl_1_bss_678, lbl_1_bss_678); } } -static void fn_1_1EE4(void) { +static void fn_1_1EE4(void) +{ Bss10Work *temp_r31; if (lbl_1_bss_10) { @@ -790,7 +809,8 @@ static void fn_1_1EE4(void) { } } -static void fn_1_1F2C(omObjData *arg0) { +static void fn_1_1F2C(omObjData *arg0) +{ Bss10Work *temp_r31 = OM_GET_WORK_PTR(arg0, Bss10Work); if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { @@ -801,7 +821,8 @@ static void fn_1_1F2C(omObjData *arg0) { fn_1_1FA4(); } -static void fn_1_1FA4(void) { +static void fn_1_1FA4(void) +{ Vec sp18; Vec spC; float temp_f28; @@ -818,7 +839,8 @@ static void fn_1_1FA4(void) { if (spC.x != 0.0f || spC.z != 0.0f) { temp_f29 = atan2f(spC.y, VECMagXZ(&spC)); temp_f28 = atan2f(-spC.x, -spC.z); - } else { + } + else { temp_f29 = temp_f28 = 0.0f; return; } @@ -830,7 +852,8 @@ static void fn_1_1FA4(void) { BoardModelPosGet(lbl_1_bss_6C4[1], &sp18); if (lbl_1_bss_0->unk00_field0 == 0) { var_f27 = -2500.0f; - } else { + } + else { var_f27 = 2500.0f; } sp18.x = sp18.x + var_f27 * sin(1.4137166738510132); // TODO: should be sind(81) @@ -839,7 +862,8 @@ static void fn_1_1FA4(void) { VECSubtract(&sp18, &lbl_1_bss_630, &spC); VECScale(&spC, &spC, lbl_1_bss_66C); VECAdd(&spC, &lbl_1_bss_630, &lbl_1_bss_630); - } else { + } + else { if (lbl_1_bss_66C < 0.08f) { lbl_1_bss_66C += 0.00066666666f; } @@ -853,7 +877,8 @@ static void fn_1_1FA4(void) { } } -static float fn_1_2524(void) { +static float fn_1_2524(void) +{ Vec sp24; Vec sp18; Vec spC; @@ -883,10 +908,12 @@ static float fn_1_2524(void) { var_f30 = atan2d(spC.x, spC.z); if (var_f30 > 0.0f) { var_f30 = 45.0f; - } else { + } + else { var_f30 = -45.0f; } - } else { + } + else { var_r29 = GWPlayer[lbl_1_bss_6B4].port; sp8 = HuPadStkX[var_r29]; OSs16tof32(&sp8, &var_f30); @@ -895,7 +922,8 @@ static float fn_1_2524(void) { return var_f30; } -static void fn_1_276C(void) { +static void fn_1_276C(void) +{ Vec sp58; Vec sp40; Vec sp34; @@ -916,16 +944,19 @@ static void fn_1_276C(void) { 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) { + } + 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 { + } + else { BoardPlayerMotionShiftSet(lbl_1_bss_6B4, lbl_1_bss_5CC[0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); } fn_1_2F18(); } -static void fn_1_2F18(void) { +static void fn_1_2F18(void) +{ Vec sp3C; Vec sp30; Vec sp24; @@ -948,16 +979,17 @@ static void fn_1_2F18(void) { if (sp18.z != 0.0f || sp18.x != 0.0f) { sp24.y = atan2d(sp18.x, sp18.z); sp24.x = -atan2d(sp18.y, VECMagXZ(&sp18)); - } else { + } + 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); + MTXTrans(spD8, 0.0f, 180.0f, 0.0f); + MTXRotRad(spA8, 'x', MTXDegToRad(sp24.x)); + MTXRotRad(sp78, 'y', MTXDegToRad(sp24.y)); + MTXRotRad(sp48, 'z', MTXDegToRad(var_f29)); + MTXConcat(spA8, sp48, sp48); + MTXConcat(sp78, sp48, sp48); + MTXConcat(sp48, spD8, spD8); sp30.x = spD8[0][3]; sp30.y = spD8[1][3]; sp30.z = spD8[2][3]; @@ -984,7 +1016,8 @@ static void fn_1_2F18(void) { static s16 lbl_1_data_580 = -1; -static void fn_1_3350(void) { +static void fn_1_3350(void) +{ Vec sp8; s16 temp_r3; ModelData *temp_r30; @@ -993,7 +1026,8 @@ static void fn_1_3350(void) { 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) { + } + else if (lbl_1_bss_670 < 0.18f) { lbl_1_bss_670 += lbl_1_bss_674; } temp_r3 = BoardModelIDGet(lbl_1_bss_6AE); @@ -1008,18 +1042,14 @@ static void fn_1_3350(void) { lbl_1_bss_640 += VECMag(&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 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) { +static void fn_1_3514(s32 arg0) +{ s32 temp_r30; s32 i; @@ -1029,7 +1059,8 @@ static void fn_1_3514(s32 arg0) { } } -static void fn_1_35B4(s32 arg0) { +static void fn_1_35B4(s32 arg0) +{ s32 i; for (i = 0; i < 2; i++) { @@ -1038,7 +1069,8 @@ static void fn_1_35B4(s32 arg0) { } } -static void fn_1_3624(void) { +static void fn_1_3624(void) +{ Mtx sp48; Vec sp3C; Vec sp30; @@ -1075,7 +1107,8 @@ static void fn_1_3624(void) { lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x2000, &sp3C); var_r25 = BoardSpaceFlagSearch(0, 0x1000); var_f30 = -1.0f; - } else { + } + else { BoardModelMotionTimeSet(lbl_1_bss_6AE, 0.0f); lbl_1_bss_63C = 90.0f; lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x1000, &sp3C); @@ -1099,7 +1132,7 @@ static void fn_1_3624(void) { lbl_1_bss_630.x = lbl_1_bss_618.x + 1000.0 * (sind(sp30.y) * cosd(sp30.x)); lbl_1_bss_630.y = lbl_1_bss_618.y + 1000.0 * -sind(sp30.x); lbl_1_bss_630.z = lbl_1_bss_618.z + 1000.0 * (cosd(sp30.y) * cosd(sp30.x)); - PSMTXRotRad(lbl_1_bss_678, 'y', MTXDegToRad(lbl_1_bss_63C)); + MTXRotRad(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); @@ -1124,16 +1157,18 @@ static void fn_1_3624(void) { 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); + MTXTrans(sp48, 0.0f, 30.0f, 0.0f); + } + else { + MTXTrans(sp48, 0.0f, 400.0f, 250.0f); } BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); - PSMTXConcat(lbl_1_bss_678, sp48, sp48); + MTXConcat(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 { + } + else { var_f29 = lbl_1_bss_670; } BoardModelMotionSpeedSet(lbl_1_bss_6AE, var_f29); @@ -1141,22 +1176,24 @@ static void fn_1_3624(void) { if (BoardModelMotionTimeGet(lbl_1_bss_6AE) <= 0.0f) { break; } - } else { + } + else { if (BoardModelMotionTimeGet(lbl_1_bss_6AE) >= lbl_1_bss_644) { break; } } HuPrcVSleep(); } - PSMTXIdentity(lbl_1_bss_678); + MTXIdentity(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); + MTXTrans(sp48, 0.0f, 400.0f, 250.0f); + } + else { + MTXTrans(sp48, 0.0f, 30.0f, 0.0f); } BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); BoardPlayerMtxSet(lbl_1_bss_6B4, &sp48); @@ -1196,11 +1233,13 @@ static void fn_1_3624(void) { lbl_1_bss_6B2 = 1; } -static void fn_1_45F4(void) { +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 { + } + else { lbl_1_bss_0->unk00_field0 = 0; } lbl_1_bss_6B2 = 0; @@ -1220,7 +1259,8 @@ static void fn_1_45F4(void) { BoardStatusShowSetAll(1); } -static void fn_1_4774(void) { +static void fn_1_4774(void) +{ float sp8[2]; float var_f31; float var_f30; @@ -1234,14 +1274,16 @@ static void fn_1_4774(void) { HuWinMesSet(lbl_1_data_580, MAKE_MESSID(13, 5)); } -static void fn_1_4864(void) { +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) { +static s32 fn_1_48B4(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -1286,7 +1328,8 @@ static s32 fn_1_48B4(void) { if (GWPlayer[lbl_1_bss_6B4].com) { if (BoardPlayerCoinsGet(lbl_1_bss_6B4) >= 5) { BoardComKeySetUp(); - } else { + } + else { BoardComKeySetDown(); } } @@ -1340,7 +1383,8 @@ static s32 fn_1_48B4(void) { return 0; } -static void fn_1_4E14(void) { +static void fn_1_4E14(void) +{ if (fn_1_48B4() != 0) { fn_1_3624(); fn_1_45F4(); @@ -1348,12 +1392,14 @@ static void fn_1_4E14(void) { HuPrcEnd(); } -static void fn_1_4FA8(void) { +static void fn_1_4FA8(void) +{ BoardWinKill(); lbl_1_bss_8 = NULL; } -static void fn_1_4FD8(void) { +static void fn_1_4FD8(void) +{ lbl_1_bss_6B4 = GWSystem.player_curr; BoardRollDispSet(0); if (BoardPlayerSizeGet(lbl_1_bss_6B4) == 2 || GWPlayer[lbl_1_bss_6B4].bowser_suit) { @@ -1367,7 +1413,8 @@ static void fn_1_4FD8(void) { BoardRollDispSet(1); } -static void fn_1_50D4(void) { +static void fn_1_50D4(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -1398,11 +1445,13 @@ static void fn_1_50D4(void) { } if (!(temp_r31->flag & 0x80)) { sp14 = temp_r31->pos; - } else { + } + else { if (var_r29 >= 3) { if (BoardRandFloat() < 0.5f) { var_r26 = 1; - } else { + } + else { var_r26 = 0; } var_r27 = var_r26; @@ -1426,7 +1475,8 @@ static void fn_1_50D4(void) { } } -static void fn_1_53B8(void) { +static void fn_1_53B8(void) +{ s32 i; for (i = 0; i < 24; i++) { @@ -1440,21 +1490,14 @@ static void fn_1_53B8(void) { 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 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 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 float lbl_1_data_610[2][2] = { { 90.0f, 0.0f }, { 0.0f, 270.0f } }; -static void fn_1_543C(void) { +static void fn_1_543C(void) +{ float var_f31; s16 temp_r28; s16 temp_r29; @@ -1477,19 +1520,22 @@ static void fn_1_543C(void) { } if (lbl_1_bss_0->unk01[0] != 0) { var_f31 = 0.0f; - } else { + } + 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 { + } + else { var_f31 = 0.0f; } BoardModelRotSet(lbl_1_bss_6C4[32], 0.0f, var_f31, 0.0f); } -static void fn_1_5694(s32 arg0) { +static void fn_1_5694(s32 arg0) +{ s16 temp_r29; s16 temp_r30; s16 i; @@ -1504,7 +1550,8 @@ static void fn_1_5694(s32 arg0) { BoardModelMotionSpeedSet(temp_r30, 1.0f); BoardModelAttrReset(temp_r30, 0x40000002); } - } else { + } + else { BoardModelMotionSpeedSet(temp_r29, 0.0f); BoardModelAttrSet(temp_r29, 0x40000002); for (i = 0; i < 3; i++) { @@ -1515,7 +1562,8 @@ static void fn_1_5694(s32 arg0) { } } -static void fn_1_586C(s32 arg0, s32 arg1) { +static void fn_1_586C(s32 arg0, s32 arg1) +{ lbl_1_bss_29 = arg0; lbl_1_bss_26 = arg1; BoardRollDispSet(0); @@ -1527,7 +1575,8 @@ static void fn_1_586C(s32 arg0, s32 arg1) { BoardRollDispSet(1); } -static void fn_1_592C(void) { +static void fn_1_592C(void) +{ s16 temp_r30; s16 var_r28; @@ -1536,7 +1585,8 @@ static void fn_1_592C(void) { BoardPlayerIdleSet(GWSystem.player_curr); if (lbl_1_bss_29 == 0) { var_r28 = lbl_1_bss_6C4[23]; - } else { + } + else { var_r28 = lbl_1_bss_6C4[28]; } BoardCameraTargetModelSet(var_r28); @@ -1553,11 +1603,13 @@ static void fn_1_592C(void) { HuPrcEnd(); } -static void fn_1_5B2C(void) { +static void fn_1_5B2C(void) +{ lbl_1_bss_14 = NULL; } -static void fn_1_5B40(void) { +static void fn_1_5B40(void) +{ s16 spC[] = { 27, 32 }; s16 temp_r30; s32 temp_r31; @@ -1579,11 +1631,13 @@ static void fn_1_5B40(void) { } } -static BOOL fn_1_5CD0(void) { +static BOOL fn_1_5CD0(void) +{ return lbl_1_bss_18 ? FALSE : TRUE; } -static void fn_1_5D08(void) { +static void fn_1_5D08(void) +{ Bss18Work *temp_r31; float var_f30; float var_f31; @@ -1593,7 +1647,8 @@ static void fn_1_5D08(void) { if (lbl_1_bss_29 == 0) { var_r28 = lbl_1_bss_6C4[23]; - } else { + } + else { var_r28 = lbl_1_bss_6C4[28]; } while (TRUE) { @@ -1632,12 +1687,14 @@ static void fn_1_5D08(void) { temp_r31->unk04 = var_r28; if (BoardPlayerSizeGet(GWSystem.player_curr) == 2) { temp_r31->unk00_field3 = 1; - } else { + } + else { temp_r31->unk00_field3 = 0; } } -static void fn_1_6098(omObjData *arg0) { +static void fn_1_6098(omObjData *arg0) +{ Bss18Work *temp_r31 = OM_GET_WORK_PTR(arg0, Bss18Work); s32 temp_r0; @@ -1666,7 +1723,8 @@ static void fn_1_6098(omObjData *arg0) { } } -static void fn_1_6194(Bss18Work *arg0, omObjData *arg1) { +static void fn_1_6194(Bss18Work *arg0, omObjData *arg1) +{ Mtx sp38; Vec sp2C; Vec sp20; @@ -1704,7 +1762,8 @@ static void fn_1_6194(Bss18Work *arg0, omObjData *arg1) { arg0->unk01 = 0; } -static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1) { +static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1) +{ Vec sp10; float temp_f29; float var_f27; @@ -1716,7 +1775,8 @@ static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1) { BoardPlayerIdleSet(GWSystem.player_curr); if (GWPlayer[GWSystem.player_curr].bowser_suit) { BoardModelHookSet(arg0->unk04, lbl_1_data_604[lbl_1_bss_28], BoardBowserSuitModelGet()); - } else { + } + else { BoardModelHookSet(arg0->unk04, lbl_1_data_604[lbl_1_bss_28], BoardPlayerModelGet(GWSystem.player_curr)); } var_r24 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][lbl_1_bss_28]]; @@ -1763,7 +1823,8 @@ static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1) { arg0->unk01++; } -static void fn_1_6A14(Bss18Work *arg0, omObjData *arg1) { +static void fn_1_6A14(Bss18Work *arg0, omObjData *arg1) +{ Vec sp20; Vec sp14; Vec sp8; @@ -1784,7 +1845,8 @@ static void fn_1_6A14(Bss18Work *arg0, omObjData *arg1) { arg0->unk01 = 0; } -static void fn_1_6BC0(Bss18Work *arg0, omObjData *arg1) { +static void fn_1_6BC0(Bss18Work *arg0, omObjData *arg1) +{ Vec sp14; Vec sp8; float var_f28; @@ -1831,7 +1893,8 @@ static void fn_1_6BC0(Bss18Work *arg0, omObjData *arg1) { arg0->unk01++; } -static void fn_1_6FB4(Bss18Work *arg0, omObjData *arg1) { +static void fn_1_6FB4(Bss18Work *arg0, omObjData *arg1) +{ Vec sp40; Vec sp34; Vec sp28; @@ -1864,7 +1927,8 @@ static void fn_1_6FB4(Bss18Work *arg0, omObjData *arg1) { } if (lbl_1_bss_29 == 0) { var_r24 = lbl_1_bss_0->unk01[lbl_1_bss_29] ^ 1; - } else { + } + else { var_r24 = lbl_1_bss_0->unk01[lbl_1_bss_29]; } temp_r29 = BoardSpaceGet(0, lbl_1_bss_26); @@ -1889,7 +1953,8 @@ static void fn_1_6FB4(Bss18Work *arg0, omObjData *arg1) { } } -static void fn_1_7528(s32 arg0, s32 arg1) { +static void fn_1_7528(s32 arg0, s32 arg1) +{ Vec sp30; Vec sp24; Vec sp18; @@ -1905,7 +1970,8 @@ static void fn_1_7528(s32 arg0, s32 arg1) { temp_f30 = VECDistance(&sp18, &sp30); if (temp_f31 < temp_f30) { lbl_1_bss_29 = 0; - } else { + } + else { lbl_1_bss_29 = 1; } BoardCameraTargetModelSet(lbl_1_bss_6C4[sp14[lbl_1_bss_29]]); @@ -1917,7 +1983,8 @@ static void fn_1_7528(s32 arg0, s32 arg1) { HuPrcSleep(12); } -static void fn_1_77EC(s32 arg0, s32 arg1) { +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); @@ -1927,7 +1994,8 @@ static void fn_1_77EC(s32 arg0, s32 arg1) { } } -static void fn_1_7894(void) { +static void fn_1_7894(void) +{ lbl_1_bss_6B1 = 1; WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 21); @@ -1939,7 +2007,8 @@ static void fn_1_7894(void) { HuPrcEnd(); } -static void fn_1_7A64(void) { +static void fn_1_7A64(void) +{ Vec sp34; Vec sp28; Vec sp1C; @@ -1969,7 +2038,8 @@ static void fn_1_7A64(void) { lbl_1_bss_63C = -90.0f; lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x2000, &sp34); var_r20 = BoardSpaceFlagSearch(1, 0x1000); - } else { + } + else { BoardModelMotionTimeSet(lbl_1_bss_6AE, 0.0f); lbl_1_bss_63C = 90.0f; lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x1000, &sp34); @@ -1977,7 +2047,7 @@ static void fn_1_7A64(void) { } lbl_1_bss_654 = sp34; BoardCameraMotionStartEx(lbl_1_bss_6C4[0], NULL, NULL, 2400.0f, -1.0f, 2); - PSMTXRotRad(lbl_1_bss_678, 'y', MTXDegToRad(lbl_1_bss_63C)); + MTXRotRad(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(); @@ -1998,7 +2068,8 @@ static void fn_1_7A64(void) { 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 { + } + else { var_f30 = lbl_1_bss_670; } BoardModelMotionSpeedSet(lbl_1_bss_6AE, var_f30); @@ -2008,7 +2079,8 @@ static void fn_1_7A64(void) { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); var_r28 = 1; } - } else { + } + else { if (BoardModelMotionTimeGet(lbl_1_bss_6AE) >= lbl_1_bss_644 - 20.0f && var_r28 == 0) { WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); @@ -2026,7 +2098,7 @@ static void fn_1_7A64(void) { while (lbl_1_bss_C) { HuPrcVSleep(); } - PSMTXIdentity(lbl_1_bss_678); + MTXIdentity(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; @@ -2044,7 +2116,8 @@ static void fn_1_7A64(void) { static s8 lbl_1_data_633 = -1; -static void fn_1_852C(void) { +static void fn_1_852C(void) +{ BssCWork *temp_r30; BssCData *temp_r31; Vec spC; @@ -2083,7 +2156,8 @@ static void fn_1_852C(void) { if (lbl_1_bss_0->unk00_field0 == 0) { temp_r31->unk08 = -0.18f; BoardModelMotionTimeSet(temp_r31->unk04, temp_f31); - } else { + } + else { temp_r31->unk08 = 0.18f; BoardModelMotionTimeSet(temp_r31->unk04, 0.0f); } @@ -2094,13 +2168,15 @@ static void fn_1_852C(void) { BoardCameraTargetModelSet(lbl_1_bss_6C4[0]); } -static void fn_1_87AC(void) { +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) { +static void fn_1_87E0(omObjData *arg0) +{ BssCWork *temp_r30 = OM_GET_WORK_PTR(arg0, BssCWork); BssCData *temp_r31; s32 i; @@ -2121,7 +2197,8 @@ static void fn_1_87E0(omObjData *arg0) { temp_r31 = &temp_r30->unk04[i]; if (temp_r31->unk02 != 0) { temp_r31->unk02--; - } else { + } + else { switch (temp_r31->unk00) { case 0: fn_1_8988(temp_r31, arg0); @@ -2146,7 +2223,8 @@ static void fn_1_87E0(omObjData *arg0) { } } -static void fn_1_8988(BssCData *arg0, omObjData *arg1) { +static void fn_1_8988(BssCData *arg0, omObjData *arg1) +{ Vec sp20; Vec sp14; Vec sp8; @@ -2161,18 +2239,10 @@ static void fn_1_8988(BssCData *arg0, omObjData *arg1) { arg0->unk00 = 1; } -static s32 lbl_1_data_634[8] = { - 0x00000123, - 0x00000163, - 0x000001A3, - 0x000001E3, - 0x00000223, - 0x00000263, - 0x000002A3, - 0x000002E3 -}; +static s32 lbl_1_data_634[8] = { 0x00000123, 0x00000163, 0x000001A3, 0x000001E3, 0x00000223, 0x00000263, 0x000002A3, 0x000002E3 }; -static void fn_1_8A50(BssCData *arg0, omObjData *arg1) { +static void fn_1_8A50(BssCData *arg0, omObjData *arg1) +{ if (lbl_1_data_633 == -1) { BoardCameraTargetPlayerSet(arg0->unk01); lbl_1_data_633 = arg0->unk01; @@ -2186,7 +2256,8 @@ static void fn_1_8A50(BssCData *arg0, omObjData *arg1) { omVibrate(arg0->unk01, 12, 4, 2); } -static void fn_1_8B6C(BssCData *arg0, omObjData *arg1) { +static void fn_1_8B6C(BssCData *arg0, omObjData *arg1) +{ ModelData *temp_r29; HsfObject *var_r30; Vec sp20; @@ -2233,7 +2304,8 @@ static void fn_1_8B6C(BssCData *arg0, omObjData *arg1) { BoardModelMotionTimeSet(lbl_1_bss_6AE, temp_f30); } -static void fn_1_8DDC(BssCData *arg0, omObjData *arg1) { +static void fn_1_8DDC(BssCData *arg0, omObjData *arg1) +{ ModelData *temp_r29; HsfObject *var_r30; Vec *var_r27; @@ -2262,17 +2334,19 @@ static void fn_1_8DDC(BssCData *arg0, omObjData *arg1) { var_r27 = &arg0->unk14; var_r26 = &sp30; BoardMTXCalcLookAt(sp54, var_r26, &sp48, var_r27); - PSMTXTranspose(sp54, arg0->unk20); - } else { + MTXTranspose(sp54, arg0->unk20); + } + else { if (sp24.z != 0.0f || sp24.x != 0.0f) { sp3C.y = atan2d(sp24.x, sp24.z); sp3C.x = -atan2d(sp24.y, VECMagXZ(&sp24)); - } else { + } + 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); + MTXRotRad(sp54, 'x', MTXDegToRad(sp3C.x)); + MTXRotRad(arg0->unk20, 'y', MTXDegToRad(sp3C.y)); + MTXConcat(arg0->unk20, sp54, arg0->unk20); } BoardPlayerPosSetV(arg0->unk01, &sp30); BoardPlayerRotSet(arg0->unk01, 0.0f, 0.0f, 0.0f); @@ -2284,13 +2358,14 @@ static void fn_1_8DDC(BssCData *arg0, omObjData *arg1) { } } -static void fn_1_918C(BssCData *arg0, omObjData *arg1) { +static void fn_1_918C(BssCData *arg0, omObjData *arg1) +{ Vec sp20; Vec sp14; Vec sp8; s32 var_r30; - PSMTXIdentity(arg0->unk20); + MTXIdentity(arg0->unk20); var_r30 = BoardSpaceLinkFlagSearch(0, arg0->unk06, 0x40); BoardSpacePosGet(0, var_r30, &sp20); BoardPlayerPosGet(arg0->unk01, &sp14); @@ -2301,7 +2376,8 @@ static void fn_1_918C(BssCData *arg0, omObjData *arg1) { arg0->unk00 = 5; } -static void fn_1_927C(BssCData *arg0, omObjData *arg1) { +static void fn_1_927C(BssCData *arg0, omObjData *arg1) +{ s32 temp_r3; if (!GWPlayer[arg0->unk01].moving) { @@ -2313,7 +2389,8 @@ static void fn_1_927C(BssCData *arg0, omObjData *arg1) { } } -static void fn_1_932C(BssCData *arg0) { +static void fn_1_932C(BssCData *arg0) +{ BoardSpace *temp_r30; BoardSpace *var_r26; Vec sp20[2]; @@ -2340,7 +2417,8 @@ static void fn_1_932C(BssCData *arg0) { } if (lbl_1_bss_0->unk00_field0 == 0) { BoardSpaceFlagPosGet(0, 0x1000, &sp14); - } else { + } + else { BoardSpaceFlagPosGet(0, 0x2000, &sp14); } for (i = 0; i < 2; i++) { @@ -2348,12 +2426,14 @@ static void fn_1_932C(BssCData *arg0) { } if (spC[0] < spC[1]) { arg0->unk06 = sp8[0]; - } else { + } + else { arg0->unk06 = sp8[1]; } } -static s32 fn_1_94A8(BssCData *arg0) { +static s32 fn_1_94A8(BssCData *arg0) +{ Vec sp14; s16 spC[4]; float sp8; @@ -2373,7 +2453,8 @@ static s32 fn_1_94A8(BssCData *arg0) { var_r31 = BoardSpaceGet(1, var_r30); if (lbl_1_bss_0->unk00_field0 == 0) { var_r29 = var_r31->link[0]; - } else { + } + else { BoardSpaceLinkTargetListGet(1, var_r30, spC); var_r29 = spC[0]; } @@ -2389,7 +2470,8 @@ static s32 fn_1_94A8(BssCData *arg0) { if (var_r28) { var_r31 = var_r28; break; - } else { + } + else { var_r28 = var_r31; } } @@ -2398,12 +2480,14 @@ static s32 fn_1_94A8(BssCData *arg0) { } if (var_r31->flag & 8) { return 1; - } else { + } + else { return 0; } } -static void fn_1_95F4(BssCData *arg0) { +static void fn_1_95F4(BssCData *arg0) +{ HsfObject *var_r30; ModelData *temp_r29; Vec sp2C; @@ -2418,7 +2502,8 @@ static void fn_1_95F4(BssCData *arg0) { if (lbl_1_bss_0->unk00_field0 == 0) { BoardModelMotionTimeSet(arg0->unk04, temp_f30); BoardModelMotionSpeedSet(arg0->unk04, -0.18f); - } else { + } + else { BoardModelMotionTimeSet(arg0->unk04, 0.0f); BoardModelMotionSpeedSet(arg0->unk04, 0.18f); } @@ -2448,7 +2533,8 @@ static void fn_1_95F4(BssCData *arg0) { arg0->unk10 = var_f31; } -static void fn_1_97F4(void) { +static void fn_1_97F4(void) +{ Bss20Work *temp_r30; Bss20Data *var_r31; s32 i; @@ -2468,13 +2554,15 @@ static void fn_1_97F4(void) { } } -static void fn_1_98EC(void) { +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) { +static void fn_1_9920(omObjData *arg0) +{ Bss20Work *temp_r31; s32 i; @@ -2493,25 +2581,28 @@ static void fn_1_9920(omObjData *arg0) { } if (temp_r31->unk01 != 0) { temp_r31->unk01--; - } else { + } + else { temp_r31->unk01 = 2; fn_1_9A24(temp_r31); } fn_1_9BBC(temp_r31); } -static void fn_1_9A24(Bss20Work *arg0) { +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); + MTXTrans(sp8, 0.0f, 50.0f, -100.0f); } - PSMTXConcat(lbl_1_bss_678, sp8, sp8); + else { + MTXTrans(sp8, 0.0f, 70.0f, -100.0f); + } + MTXConcat(lbl_1_bss_678, sp8, sp8); for (i = 0; i < 4; i++) { for (j = 0; j < 20; j++) { temp_r31 = &arg0->unk04[j]; @@ -2532,7 +2623,8 @@ static void fn_1_9A24(Bss20Work *arg0) { } } -static void fn_1_9BBC(Bss20Work *arg0) { +static void fn_1_9BBC(Bss20Work *arg0) +{ Bss20Data *temp_r31; s32 i; @@ -2545,7 +2637,8 @@ static void fn_1_9BBC(Bss20Work *arg0) { if (temp_r31->unk00 == 0) { temp_r31->unk00 = -1; BoardModelVisibilitySet(temp_r31->unk02, 0); - } else { + } + else { if (temp_r31->unk00 <= 3) { temp_r31->unk04 = sind(30.0f * temp_r31->unk00); } diff --git a/src/REL/w03Dll/condor.c b/src/REL/w03Dll/condor.c index 4c8327dd..c42f53b3 100644 --- a/src/REL/w03Dll/condor.c +++ b/src/REL/w03Dll/condor.c @@ -482,7 +482,7 @@ void fn_1_3F5C(s32 arg0) BoardModelMotionStart(lbl_1_data_310, 2, 0x40000001); BoardModelMotionStart(lbl_1_data_310, 1, 0x40000001); BoardModelRotYSet(lbl_1_data_310, 0.0f); - PSMTXIdentity(sp38); + MTXIdentity(sp38); BoardModelMtxSet(lbl_1_data_310, &sp38); sp20.x = 0.0f; @@ -624,13 +624,13 @@ void fn_1_4424(w03StructUnk2 *arg0) sp30 = sp48; sp18 = sp54; BoardMTXCalcLookAt(spA8, &sp18, &sp24, &sp30); - PSMTXTranspose(spA8, spA8); + MTXTranspose(spA8, spA8); MTXRotDeg(spD8, 'z', temp_f30); - PSMTXTrans(sp108, 0.0f, -350.0f, 0.0f); - PSMTXConcat(spD8, sp108, sp108); - PSMTXConcat(spA8, sp108, sp108); - PSMTXTrans(sp78, sp54.x, sp54.y, sp54.z); - PSMTXConcat(sp78, sp108, sp78); + MTXTrans(sp108, 0.0f, -350.0f, 0.0f); + MTXConcat(spD8, sp108, sp108); + MTXConcat(spA8, sp108, sp108); + MTXTrans(sp78, sp54.x, sp54.y, sp54.z); + MTXConcat(sp78, sp108, sp78); Hu3DMtxTransGet(sp78, &temp_r27->unk_08); BoardModelPosSetV(temp_r27->model, &temp_r27->unk_08); BoardModelVisibilitySet(temp_r27->model, 1); @@ -1078,16 +1078,16 @@ void fn_1_5C5C(omObjData *arg0, w03UnkStruct5 *arg1) sp20.y = 1.0f; BoardMTXCalcLookAt(sp110, &sp14, &sp20, &sp8); - PSMTXTranspose(sp110, sp110); + MTXTranspose(sp110, sp110); MTXRotDeg(spE0, 'z', -arg1->unk_04); - PSMTXTrans(sp50, 0.0f, -600.0f, 0.0f); - PSMTXConcat(spE0, sp50, sp50); - PSMTXConcat(sp110, sp50, sp50); - PSMTXTrans(sp80, sp44.x, sp44.y, sp44.z); - PSMTXConcat(sp80, sp50, sp80); + MTXTrans(sp50, 0.0f, -600.0f, 0.0f); + MTXConcat(spE0, sp50, sp50); + MTXConcat(sp110, sp50, sp50); + MTXTrans(sp80, sp44.x, sp44.y, sp44.z); + MTXConcat(sp80, sp50, sp80); Hu3DMtxTransGet(sp80, &sp44); MTXRotDeg(spB0, 'y', atan2d(-sp2C.x, -sp2C.z)); - PSMTXConcat(spB0, spE0, sp110); + MTXConcat(spB0, spE0, sp110); BoardModelMtxSet(lbl_1_data_310, &sp110); BoardModelPosSetV(lbl_1_data_310, &sp44); BoardCameraRotSet(-20.0f, atan2d(sp2C.x, sp2C.z)); diff --git a/src/REL/w03Dll/mg_item.c b/src/REL/w03Dll/mg_item.c index 18332aa2..a7d31165 100644 --- a/src/REL/w03Dll/mg_item.c +++ b/src/REL/w03Dll/mg_item.c @@ -742,12 +742,12 @@ void fn_1_B0A4(s32 arg0) } if (temp_r29 == 5) { - PSMTXTrans(sp18, 0.0f, -50.0f, 0.0f); + MTXTrans(sp18, 0.0f, -50.0f, 0.0f); BoardModelMtxSet(temp_r30->unk_06[i], &sp18); } if ((temp_r29 == 6) || (temp_r29 == 7)) { - PSMTXTrans(sp18, 0.0f, 0.0f, 8.0f); + MTXTrans(sp18, 0.0f, 0.0f, 8.0f); BoardModelMtxSet(temp_r30->unk_06[i], &sp18); } } diff --git a/src/REL/w03Dll/statue.c b/src/REL/w03Dll/statue.c index de10197b..a31fc5a8 100644 --- a/src/REL/w03Dll/statue.c +++ b/src/REL/w03Dll/statue.c @@ -1,17 +1,18 @@ -#include "dolphin.h" #include "REL/executor.h" -#include "game/process.h" -#include "game/data.h" -#include "game/gamework_data.h" #include "REL/w03Dll.h" +#include "dolphin.h" #include "game/audio.h" +#include "game/board/main.h" #include "game/board/model.h" #include "game/board/player.h" #include "game/board/space.h" #include "game/board/ui.h" +#include "game/data.h" +#include "game/gamework_data.h" #include "game/hsfman.h" -#include "game/board/main.h" #include "game/objsub.h" +#include "game/process.h" + #include "ext_math.h" @@ -29,17 +30,16 @@ void fn_1_2818(void); void fn_1_2A40(void); void fn_1_2B44(void); -//data +// data s16 lbl_1_data_280 = -1; s16 lbl_1_data_282 = -1; s16 lbl_1_data_284 = -1; s16 lbl_1_data_286 = -1; s32 lbl_1_data_288 = -1; -//BSS Extern +// BSS Extern - -//BSS +// BSS s8 lbl_1_bss_6F; s8 lbl_1_bss_6E; s16 lbl_1_bss_6C; @@ -48,12 +48,13 @@ s16 lbl_1_bss_68; GXTexObj lbl_1_bss_48; char lbl_1_bss_44[4]; char lbl_1_bss_38[12]; -void* lbl_1_bss_34; +void *lbl_1_bss_34; f32 lbl_1_bss_30; s8 lbl_1_bss_2C; -Process* lbl_1_bss_28; +Process *lbl_1_bss_28; -void fn_1_12C8(void) { +void fn_1_12C8(void) +{ BoardRollDispSet(0); lbl_1_bss_28 = HuPrcChildCreate(&fn_1_1358, 0x2003, 0x2000, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_28, &fn_1_152C); @@ -65,7 +66,8 @@ void fn_1_12C8(void) { BoardRollDispSet(1); } -void fn_1_1358(void) { +void fn_1_1358(void) +{ s32 cur_player_index; s32 unkC; @@ -76,7 +78,8 @@ void fn_1_1358(void) { if ((BoardSpaceFlagGet(0, GWPlayer[cur_player_index].space_curr) & 0x2000)) { lbl_1_bss_6E = 0; lbl_1_bss_6C = lbl_1_bss_C[3]; - } else { + } + else { lbl_1_bss_6E = 1; lbl_1_bss_6C = lbl_1_bss_C[4]; } @@ -84,7 +87,8 @@ void fn_1_1358(void) { if (fn_1_1650(cur_player_index) != 0) { if (fn_1_1D1C() != 0) { fn_1_1ED4(cur_player_index); - } else { + } + else { fn_1_20E0(cur_player_index); } if (lbl_1_bss_2C) { @@ -106,7 +110,8 @@ void fn_1_1358(void) { HuPrcEnd(); } -void fn_1_152C(void) { +void fn_1_152C(void) +{ BoardConfettiKill(); if (lbl_1_data_282 != -1) { @@ -123,7 +128,8 @@ void fn_1_152C(void) { lbl_1_bss_28 = NULL; } -s32 fn_1_15E8(void) { +s32 fn_1_15E8(void) +{ BoardModelVisibilitySet(lbl_1_bss_6C, 1); if (lbl_1_data_284 != -1) { @@ -134,7 +140,8 @@ s32 fn_1_15E8(void) { return 1; } -s32 fn_1_1650(s32 arg0) { +s32 fn_1_1650(s32 arg0) +{ Point3d sp38; Point3d sp2C; Point3d sp20; @@ -144,14 +151,14 @@ s32 fn_1_1650(s32 arg0) { s32 temp2; BoardPlayerIdleSet(arg0); - + if (lbl_1_bss_0->unk2) { BoardWinCreate(0, MAKE_MESSID(22, 0), -1); BoardWinWait(); BoardWinKill(); return 0; } - + temp2 = BoardSpaceLinkFlagSearch(0, GWPlayer[arg0].space_curr, 0x02000000); BoardSpacePosGet(0, temp2, &sp38); BoardPlayerPosGet(arg0, &sp2C); @@ -170,14 +177,14 @@ s32 fn_1_1650(s32 arg0) { while (GWPlayer[arg0].moving) { HuPrcVSleep(); } - + BoardStatusShowSetAll(0); BoardPlayerMotBlendSet(arg0, 0xB4, 0xF); while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } - + BoardPlayerIdleSet(arg0); BoardWinCreate(2, MAKE_MESSID(22, 1), 2); BoardWinWait(); @@ -187,7 +194,8 @@ s32 fn_1_1650(s32 arg0) { if (GWPlayer[arg0].com) { if (BoardRandMod(0x64) > 0x32U) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } @@ -200,56 +208,35 @@ s32 fn_1_1650(s32 arg0) { BoardMusStart(1, 0x19, 0x7F, 0); HuAudFXPlay(0x435); sp8.y = BoardModelRotYGet(lbl_1_bss_6C); - + while (BoardDAngleCalcRange(&sp8.y, 180.0f, 2.0f) == 0) { BoardModelRotYSet(lbl_1_bss_6C, sp8.y); HuPrcVSleep(); } - + HuAudFXPlay(0x445); BoardModelRotYSet(lbl_1_bss_6C, 180.0f); - + while (BoardMusStatusGet(1) != 0) { HuPrcVSleep(); } return 1; } -s32 lbl_1_data_290[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 98), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 98), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 98), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 98), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 98), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 98), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 98), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 98) -}; +s32 lbl_1_data_290[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 98), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 98), DATA_MAKE_NUM(DATADIR_PEACHMOT, 98), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 98), DATA_MAKE_NUM(DATADIR_WARIOMOT, 98), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 98), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 98), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 98) }; -s32 lbl_1_data_2B0[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 51), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 51), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 51), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 51), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 51), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 51), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 51), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 51) -}; +s32 lbl_1_data_2B0[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 51), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 51), DATA_MAKE_NUM(DATADIR_PEACHMOT, 51), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 51), DATA_MAKE_NUM(DATADIR_WARIOMOT, 51), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 51), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 51), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 51) }; -s32 lbl_1_data_2D0[] = { - 0x00000125, 0x00000165, 0x000001A5, - 0x000001E5, 0x00000225, 0x00000265, - 0x000002A5, 0x000002E5 -}; +s32 lbl_1_data_2D0[] = { 0x00000125, 0x00000165, 0x000001A5, 0x000001E5, 0x00000225, 0x00000265, 0x000002A5, 0x000002E5 }; -s32 lbl_1_data_2F0[] = { - 0x0000012E, 0x0000016E, 0x000001AE, - 0x000001EE, 0x0000022E, 0x0000026E, - 0x000002AE, 0x000002EE -}; +s32 lbl_1_data_2F0[] = { 0x0000012E, 0x0000016E, 0x000001AE, 0x000001EE, 0x0000022E, 0x0000026E, 0x000002AE, 0x000002EE }; -void fn_1_19DC(s32 arg0, s32 arg1) { +void fn_1_19DC(s32 arg0, s32 arg1) +{ s32 temp_r30; s32 temp_r5; s32 temp_r5_2; @@ -263,7 +250,8 @@ void fn_1_19DC(s32 arg0, s32 arg1) { lbl_1_bss_6A = 8; lbl_1_bss_68 = lbl_1_data_282; var_r29 = lbl_1_data_2F0[GWPlayer[arg0].character]; - } else { + } + else { lbl_1_bss_6A = 7; lbl_1_bss_68 = 1; var_r29 = lbl_1_data_2D0[GWPlayer[arg0].character]; @@ -284,11 +272,10 @@ void fn_1_19DC(s32 arg0, s32 arg1) { while (BoardPlayerMotionEndCheck(arg0) == 0) { HuPrcVSleep(); - } HuPrcSleep(60); - + if (arg1 != 0) { BoardPlayerMotionShiftSet(arg0, lbl_1_bss_68, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(9); @@ -315,7 +302,8 @@ void fn_1_19DC(s32 arg0, s32 arg1) { } } -s32 fn_1_1D1C(void) { +s32 fn_1_1D1C(void) +{ s32 sp34; s32 sp30; s32 sp2C; @@ -330,11 +318,7 @@ s32 fn_1_1D1C(void) { s32 maxTurn; s32 sp8[3] = { 70, 50, 45 }; - s32 sp14[3][3] = { - {3, 5, 22}, - {5, 10, 35}, - {5, 15, 35} - }; + s32 sp14[3][3] = { { 3, 5, 22 }, { 5, 10, 35 }, { 5, 15, 35 } }; while (BoardMusStatusGet(1) != 0) { HuPrcVSleep(); @@ -352,23 +336,26 @@ s32 fn_1_1D1C(void) { } modRand = BoardRandMod(100); - if (modRand < sp8[var_r31] ) { + if (modRand < sp8[var_r31]) { return 1; } modRand2 = BoardRandMod(100 - sp8[var_r31]); if (modRand2 < sp14[var_r31][0]) { lbl_1_bss_2C = 3; - } else if (modRand2 < sp14[var_r31][1]) { + } + else if (modRand2 < sp14[var_r31][1]) { lbl_1_bss_2C = 2; - } else { + } + else { lbl_1_bss_2C = 1; } return 0; } -void fn_1_1ED4(s32 arg0) { +void fn_1_1ED4(s32 arg0) +{ Point3d spC; f32 sp8; @@ -383,12 +370,12 @@ void fn_1_1ED4(s32 arg0) { spC.y += 700.0f; BoardConfettiCreate(&spC, 0x64, 300.0f); sp8 = BoardModelRotYGet(lbl_1_bss_6C); - + while (BoardDAngleCalcRange(&sp8, 0.0f, 30.0f) == 0) { BoardModelRotYSet(lbl_1_data_284, sp8); HuPrcVSleep(); } - + omVibrate(arg0, 0xC, 4, 2); BoardMusStart(1, 0x1A, 0x7F, 0); BoardModelRotYSet(lbl_1_data_284, 0.0f); @@ -399,7 +386,7 @@ void fn_1_1ED4(s32 arg0) { } BoardPlayerIdleSet(arg0); - + while (BoardMusStatusGet(1) != 0) { HuPrcVSleep(); } @@ -411,7 +398,8 @@ void fn_1_1ED4(s32 arg0) { BoardConfettiStop(); } -void fn_1_20E0(s32 arg0) { +void fn_1_20E0(s32 arg0) +{ Point3d sp24; Point3d sp18; Point3d spC; @@ -436,28 +424,28 @@ void fn_1_20E0(s32 arg0) { omVibrate(arg0, 0xC, 4, 2); BoardModelRotYSet(lbl_1_data_284, 0.0f); BoardModelRotYSet(lbl_1_bss_6C, 0.0f); - + while (BoardFilterFadePauseCheck() == 0) { HuPrcVSleep(); } - + BoardMusStart(1, 0x1B, 0x7F, 0); HuAudFXPlay(0x44A); fn_1_2A40(); lbl_1_bss_30 = 0.0f; - + while (lbl_1_bss_30 < 128.0f) { HuPrcVSleep(); lbl_1_bss_30 += 12.0f; } - + if (lbl_1_bss_30 > 128.0f) { lbl_1_bss_30 = 128.0f; } HuPrcSleep(40); lbl_1_bss_30 = 128.0f; - + while (lbl_1_bss_30 > 0.0f) { HuPrcVSleep(); lbl_1_bss_30 -= 12.0f; @@ -475,13 +463,13 @@ void fn_1_20E0(s32 arg0) { BoardCameraMotionStartEx(-1, NULL, NULL, 1360.0f, -1.0f, 13); BoardCameraMotionWait(); } - + BoardPlayerIdleSet(arg0); while (BoardMusStatusGet(1) != 0) { HuPrcVSleep(); } - + BoardAudSeqPause(0, 0, 1000); BoardWinCreate(2, MAKE_MESSID(22, 5), 2); BoardWinWait(); @@ -504,16 +492,16 @@ void fn_1_20E0(s32 arg0) { for (var_f31 = 100.0f; var_f31 > 0.0f; var_f31 -= 2.0f) { BoardCameraQuakeSet(0xA, var_f31); - HuPrcVSleep(); + HuPrcVSleep(); } - + BoardCameraQuakeReset(); if (lbl_1_data_288 != 0) { HuAudFXStop(lbl_1_data_288); lbl_1_data_288 = -1; } - + fn_1_2818(); omVibrate(arg0, 0xC, 0xC, 0); HuAudFXPlay(0x438); @@ -530,7 +518,8 @@ void fn_1_20E0(s32 arg0) { HuPrcSleep(0x3C); } -void fn_1_26E0(s32 arg0) { +void fn_1_26E0(s32 arg0) +{ Point3d sp20; Point3d sp14; Point3d sp8; @@ -555,11 +544,12 @@ void fn_1_26E0(s32 arg0) { BoardPlayerIdleSet(arg0); } -void fn_1_2818(void) { +void fn_1_2818(void) +{ s16 temp_r29; s16 temp_r30; s16 j; - s16 sp8[3] = {0x0002, 0x003E, 0x007A}; + s16 sp8[3] = { 0x0002, 0x003E, 0x007A }; temp_r29 = (4 - lbl_1_bss_2C) * 60; BoardModelMotionStart(lbl_1_bss_C[1], 0, 0); @@ -570,19 +560,21 @@ void fn_1_2818(void) { for (j = 0; j < ARRAY_COUNT(sp8); j++) { if (temp_r30 == sp8[j]) { HuAudFXPlay(0x446); - } + } } HuPrcVSleep(); - } else { + } + else { break; - } + } } BoardModelAttrSet(lbl_1_bss_C[1], 0x40000002); HuPrcSleep(0x3C); } -s32 fn_1_2930(s32 arg0) { +s32 fn_1_2930(s32 arg0) +{ lbl_1_bss_0->unk0--; if (lbl_1_bss_0->unk0 <= 0) { @@ -605,14 +597,16 @@ s32 fn_1_2930(s32 arg0) { return 0; } -void fn_1_2A40(void) { +void fn_1_2A40(void) +{ lbl_1_bss_30 = 0.0f; lbl_1_bss_34 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x96000, MEMORY_DEFAULT_NUM); - lbl_1_data_286 = Hu3DHookFuncCreate((void*)&fn_1_2B44); + lbl_1_data_286 = Hu3DHookFuncCreate((void *)&fn_1_2B44); Hu3DModelLayerSet(lbl_1_data_286, 3); } -void fn_1_2AC0(void) { +void fn_1_2AC0(void) +{ if (lbl_1_bss_34) { HuMemDirectFree(lbl_1_bss_34); lbl_1_bss_34 = NULL; @@ -624,15 +618,16 @@ void fn_1_2AC0(void) { } } -void fn_1_2B44(void) { +void fn_1_2B44(void) +{ Mtx44 sp50; Mtx sp20; GXColor sp14; GXColor sp10; GXColor spC; u8 sp8; - GXColor sp1C = {0xFF, 0xFF, 0xFF, 0xFF}; - GXColor sp18 = {0xFF, 0xFF, 0xFF, 0xFF}; + GXColor sp1C = { 0xFF, 0xFF, 0xFF, 0xFF }; + GXColor sp18 = { 0xFF, 0xFF, 0xFF, 0xFF }; f32 temp_f28 = 0.0f; f32 temp_f30 = 640.0f; @@ -644,7 +639,7 @@ void fn_1_2B44(void) { GXLoadTexObj(&lbl_1_bss_48, GX_TEXMAP0); C_MTXOrtho(sp50, temp_f27, temp_f29, temp_f28, temp_f30, 0.0f, 10.0f); GXSetProjection(sp50, GX_ORTHOGRAPHIC); - PSMTXIdentity(sp20); + MTXIdentity(sp20); GXLoadPosMtxImm(sp20, 0); GXSetCurrentMtx(0); GXSetViewport(0.0f, 0.0f, temp_f30, 1.0f + temp_f29, 0.0f, 1.0f); diff --git a/src/REL/w06Dll/mg_item.c b/src/REL/w06Dll/mg_item.c index 0c83a033..6313eb6d 100755 --- a/src/REL/w06Dll/mg_item.c +++ b/src/REL/w06Dll/mg_item.c @@ -1,6 +1,15 @@ #include "REL/w06Dll.h" #include "game/audio.h" +#include "game/board/audio.h" +#include "game/board/com.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/space.h" +#include "game/board/ui.h" +#include "game/board/window.h" #include "game/data.h" +#include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfanim.h" #include "game/hsfman.h" @@ -10,15 +19,7 @@ #include "game/process.h" #include "game/sprite.h" #include "game/window.h" -#include "game/frand.h" -#include "game/board/audio.h" -#include "game/board/com.h" -#include "game/board/main.h" -#include "game/board/model.h" -#include "game/board/player.h" -#include "game/board/space.h" -#include "game/board/ui.h" -#include "game/board/window.h" + #include "dolphin.h" #include "ext_math.h" @@ -132,7 +133,8 @@ static s8 lbl_1_data_1AD[3] = { 0, 0, 0 }; static s16 lbl_1_data_1B0 = -1; static omObjData *lbl_1_data_1B4[3] = { NULL, NULL, NULL }; -void fn_1_D70(void) { +void fn_1_D70(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -157,7 +159,8 @@ void fn_1_D70(void) { } } -void fn_1_F6C(void) { +void fn_1_F6C(void) +{ s32 i; for (i = 0; i < 3; i++) { @@ -173,7 +176,8 @@ void fn_1_F6C(void) { } } -void fn_1_1054(void) { +void fn_1_1054(void) +{ BoardRollDispSet(0); lbl_1_bss_18 = HuPrcChildCreate(fn_1_1148, 0x2003, 0x3800, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_18, fn_1_10E4); @@ -183,7 +187,8 @@ void fn_1_1054(void) { BoardRollDispSet(1); } -static void fn_1_10E4(void) { +static void fn_1_10E4(void) +{ fn_1_43DC(); if (lbl_1_data_1A8 != -1) { HuWinKill(lbl_1_data_1A8); @@ -192,7 +197,8 @@ static void fn_1_10E4(void) { lbl_1_bss_18 = NULL; } -static void fn_1_1148(void) { +static void fn_1_1148(void) +{ s32 temp_r3; s32 temp_r31; @@ -205,7 +211,8 @@ static void fn_1_1148(void) { HuPrcEnd(); } -static void fn_1_11B0(void) { +static void fn_1_11B0(void) +{ float sp8[2]; float var_f31; float var_f30; @@ -219,7 +226,8 @@ static void fn_1_11B0(void) { HuWinMesSet(lbl_1_data_1A8, MAKE_MESSID(48, 25)); } -static s32 fn_1_12A0(s32 arg0) { +static s32 fn_1_12A0(s32 arg0) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -285,7 +293,8 @@ static s32 fn_1_12A0(s32 arg0) { return 1; } -static void fn_1_15CC(s32 arg0) { +static void fn_1_15CC(s32 arg0) +{ s8 sp8[] = { 80, 50 }; s32 var_r28; s16 temp_r26; @@ -343,7 +352,8 @@ static void fn_1_15CC(s32 arg0) { BoardWinCreate(2, MAKE_MESSID(48, 41), 6); BoardWinWait(); BoardWinKill(); - } else { + } + else { for (var_r31 = 0; var_r31 < 3; var_r31++) { if (lbl_1_bss_30[var_r31] == 0) { lbl_1_bss_33 = var_r31; @@ -400,7 +410,8 @@ static void fn_1_15CC(s32 arg0) { } } -static void fn_1_1BE0(s32 arg0, s32 arg1) { +static void fn_1_1BE0(s32 arg0, s32 arg1) +{ Vec sp18; Vec spC; s16 temp_r30; @@ -420,7 +431,8 @@ static void fn_1_1BE0(s32 arg0, s32 arg1) { fn_1_2048(-1, 4); } -static void fn_1_1CB0(s32 arg0) { +static void fn_1_1CB0(s32 arg0) +{ while (!BoardModelMotionEndCheck(lbl_1_bss_3C[arg0])) { HuPrcVSleep(); } @@ -430,7 +442,8 @@ static void fn_1_1CB0(s32 arg0) { } } -static void fn_1_1D5C(s32 arg0) { +static void fn_1_1D5C(s32 arg0) +{ s8 spC[] = { 0x20, 0x40, 0x60 }; s16 sp10[] = { -100, 0, 100 }; s32 sp8; @@ -442,7 +455,8 @@ static void fn_1_1D5C(s32 arg0) { } } -static void fn_1_1E30(s32 arg0) { +static void fn_1_1E30(s32 arg0) +{ s8 spC[] = { 0x20, 0x40, 0x60 }; s16 sp10[] = { -100, 0, 100 }; s32 sp8; @@ -454,7 +468,8 @@ static void fn_1_1E30(s32 arg0) { } } -static void fn_1_1F08(s32 arg0) { +static void fn_1_1F08(s32 arg0) +{ s32 i; s32 j; @@ -477,7 +492,8 @@ static void fn_1_1F08(s32 arg0) { } } -static void fn_1_2048(s32 arg0, s32 arg1) { +static void fn_1_2048(s32 arg0, s32 arg1) +{ Data1B4Work *temp_r30; s32 i; @@ -490,7 +506,8 @@ static void fn_1_2048(s32 arg0, s32 arg1) { } } -static void fn_1_20CC(s32 arg0) { +static void fn_1_20CC(s32 arg0) +{ Data1B4Work *temp_r30; s32 i; @@ -504,7 +521,8 @@ static void fn_1_20CC(s32 arg0) { } } -static s32 fn_1_2174(s32 arg0) { +static s32 fn_1_2174(s32 arg0) +{ Data1B4Work *temp_r31; if (!lbl_1_data_1B4[arg0]) { @@ -514,7 +532,8 @@ static s32 fn_1_2174(s32 arg0) { return temp_r31->unk02; } -static s16 fn_1_21CC(s32 arg0) { +static s16 fn_1_21CC(s32 arg0) +{ Data1B4Work *temp_r31; if (!lbl_1_data_1B4[arg0]) { @@ -524,7 +543,8 @@ static s16 fn_1_21CC(s32 arg0) { return temp_r31->unk06; } -static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) { +static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) +{ Mtx sp18; Vec spC; omObjData *temp_r3; @@ -555,7 +575,7 @@ static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) { temp_r3->rot.y = 0.0f; temp_r3->rot.z = 0.0f; if (arg2 == 5) { - PSMTXTrans(sp18, 0.0f, -50.0f, 0.0f); + MTXTrans(sp18, 0.0f, -50.0f, 0.0f); BoardModelMtxSet(temp_r31->unk06, &sp18); } BoardModelPosSet(temp_r31->unk06, temp_r3->trans.x, temp_r3->trans.y, temp_r3->trans.z); @@ -563,7 +583,8 @@ static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) { BoardModelLayerSet(temp_r31->unk06, 2); } -static void fn_1_243C(omObjData *arg0) { +static void fn_1_243C(omObjData *arg0) +{ Vec sp14; Vec sp8; Data1B4Work *temp_r31; @@ -592,7 +613,8 @@ static void fn_1_243C(omObjData *arg0) { sp8.y += 200.0f; arg0->trans.y = (sp8.y - sp14.y) / 30.0f; arg0->rot.z = 0.01f; - } else { + } + else { arg0->rot.z += 0.033333335f; if (arg0->rot.z > 1.0f) { arg0->rot.z = 1.0f; @@ -617,7 +639,8 @@ static void fn_1_243C(omObjData *arg0) { BoardModelPosGet(lbl_1_bss_3C[temp_r31->unk00_field2], &sp8); arg0->trans.y = (sp8.y - sp14.y) / 30.0f; arg0->rot.z = 1.0f; - } else { + } + else { arg0->rot.z -= 0.033333335f; if (arg0->rot.z < 0.001f) { arg0->rot.z = 0.001f; @@ -644,11 +667,13 @@ static void fn_1_243C(omObjData *arg0) { BoardPlayerPosGet(temp_r31->unk00_field1, &sp8); arg0->rot.x = (sp8.x - sp14.x) / 30.0f; arg0->rot.z = (sp8.z - sp14.z) / 30.0f; - } else if (temp_r31->unk08 < 30) { + } + else if (temp_r31->unk08 < 30) { sp14.x += arg0->rot.x; sp14.z += arg0->rot.z; BoardModelPosSetV(temp_r31->unk06, &sp14); - } else { + } + else { BoardPlayerPosGet(temp_r31->unk00_field1, &sp8); arg0->trans.x = sp8.x; arg0->trans.y = sp8.y; @@ -669,13 +694,10 @@ static void fn_1_243C(omObjData *arg0) { } } -static s8 lbl_1_data_1C5[14] = { - 1, 1, 3, 3, 2, - 2, 2, 1, 2, 3, - 0, 4, 5, 0 -}; +static s8 lbl_1_data_1C5[14] = { 1, 1, 3, 3, 2, 2, 2, 1, 2, 3, 0, 4, 5, 0 }; -static s32 fn_1_2A1C(s32 arg0) { +static s32 fn_1_2A1C(s32 arg0) +{ s32 var_r29; s32 var_r28; s32 var_r30; @@ -696,24 +718,30 @@ static s32 fn_1_2A1C(s32 arg0) { if (var_r29 > var_r28) { if (var_r29 > var_r30) { var_r31 = 0; - } else if (var_r30 > var_r28) { + } + else if (var_r30 > var_r28) { var_r31 = 2; - } else { + } + else { var_r31 = 1; } - } else { + } + else { if (var_r28 > var_r30) { var_r31 = 1; - } else if (var_r30 > var_r29) { + } + else if (var_r30 > var_r29) { var_r31 = 2; - } else { + } + else { var_r31 = 0; } } return var_r31; } -static void fn_1_2B60(s32 arg0) { +static void fn_1_2B60(s32 arg0) +{ omObjData *temp_r3; Bss24Work *temp_r31; @@ -728,7 +756,8 @@ static void fn_1_2B60(s32 arg0) { temp_r31->unk02 = 1; } -static void fn_1_2C18(void) { +static void fn_1_2C18(void) +{ Bss24Work *var_r27; if (lbl_1_bss_24) { @@ -737,7 +766,8 @@ static void fn_1_2C18(void) { } } -static void fn_1_2D90(s32 arg0) { +static void fn_1_2D90(s32 arg0) +{ Bss24Work *var_r31; if (lbl_1_bss_24) { @@ -746,7 +776,8 @@ static void fn_1_2D90(s32 arg0) { } } -static s32 fn_1_2DD0(void) { +static s32 fn_1_2DD0(void) +{ Bss24Work *var_r31; if (!lbl_1_bss_24) { @@ -756,7 +787,8 @@ static s32 fn_1_2DD0(void) { return var_r31->unk01; } -static u32 fn_1_2E18(Bss24Work *arg0) { +static u32 fn_1_2E18(Bss24Work *arg0) +{ s32 temp_r31; s32 var_r30; @@ -774,7 +806,8 @@ static u32 fn_1_2E18(Bss24Work *arg0) { return var_r30; } -static void fn_1_2EF4(omObjData *arg0) { +static void fn_1_2EF4(omObjData *arg0) +{ Vec sp14; Vec sp8; float var_f30; @@ -794,12 +827,14 @@ static void fn_1_2EF4(omObjData *arg0) { } if (lbl_1_bss_30[0] != 0) { var_r25 = 1; - } else { + } + else { var_r25 = 0; } if (lbl_1_bss_30[2] != 0) { var_r26 = 1; - } else { + } + else { var_r26 = 2; } switch (temp_r30->unk01) { @@ -820,13 +855,16 @@ static void fn_1_2EF4(omObjData *arg0) { if (lbl_1_bss_30[0] == 0 && lbl_1_bss_30[1] == 0) { if (BoardRandMod(100) < 50) { var_r29 = 1; - } else { + } + else { var_r29 = 2; } - } else { + } + else { if (lbl_1_bss_30[0] == 0) { var_r29 = 2; - } else if (lbl_1_bss_30[1] == 0) { + } + else if (lbl_1_bss_30[1] == 0) { var_r29 = 1; } } @@ -884,7 +922,8 @@ static void fn_1_2EF4(omObjData *arg0) { } } -static void fn_1_3470(void) { +static void fn_1_3470(void) +{ omObjData *temp_r3; Bss28Work *temp_r31; @@ -901,7 +940,8 @@ static void fn_1_3470(void) { temp_r31->unk0A = BoardModelMotionCreate(lbl_1_bss_C[4], DATA_MAKE_NUM(DATADIR_W06, 23)); } -static void fn_1_3560(s32 arg0) { +static void fn_1_3560(s32 arg0) +{ Bss28Work *temp_r31; if (!lbl_1_bss_28) { @@ -910,13 +950,15 @@ static void fn_1_3560(s32 arg0) { temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_28, Bss28Work); temp_r31->unk00_field1 = arg0; if (arg0 != 1) { - (void) 0; - } else { + (void)0; + } + else { temp_r31->unk06 = 20; } } -static s32 fn_1_35BC(void) { +static s32 fn_1_35BC(void) +{ Bss28Work *temp_r31; if (!lbl_1_bss_28) { @@ -926,7 +968,8 @@ static s32 fn_1_35BC(void) { return temp_r31->unk00_field1; } -static void fn_1_3604(s32 arg0) { +static void fn_1_3604(s32 arg0) +{ Bss28Work *temp_r31; if (!lbl_1_bss_28) { @@ -949,7 +992,8 @@ static void fn_1_3604(s32 arg0) { } } -static void fn_1_3698(s8 arg0) { +static void fn_1_3698(s8 arg0) +{ Vec sp24; Vec sp18; Vec spC; @@ -976,7 +1020,8 @@ static void fn_1_3698(s8 arg0) { if (ABS(temp_f31) >= 300.0f) { var_f30 = 40.0f; temp_r31->unk06 *= 2; - } else { + } + else { var_f30 = 20.0f; } VECSubtract(&sp18, &sp24, &spC); @@ -986,7 +1031,8 @@ static void fn_1_3698(s8 arg0) { BoardModelMotionSpeedSet(lbl_1_bss_C[4], 2.0f); } -static void fn_1_3974(omObjData *arg0) { +static void fn_1_3974(omObjData *arg0) +{ Vec sp30; Vec sp24; s32 sp8; @@ -1012,7 +1058,8 @@ static void fn_1_3974(omObjData *arg0) { fn_1_3560(4); return; } - } else { + } + else { temp_r31->unk03++; } fn_1_3560(1); @@ -1062,7 +1109,8 @@ static void fn_1_3974(omObjData *arg0) { } } -static void fn_1_4070(void) { +static void fn_1_4070(void) +{ Bss2CWork *temp_r31; lbl_1_bss_1C = 0; @@ -1074,7 +1122,8 @@ static void fn_1_4070(void) { temp_r31->unk04 = MGSeqTimerCreateXY(temp_r31->unk01, 288, 64); } -static void fn_1_4124(void) { +static void fn_1_4124(void) +{ Bss2CWork *temp_r31; if (!lbl_1_bss_2C) { @@ -1086,7 +1135,8 @@ static void fn_1_4124(void) { temp_r31->unk00_field0 = 1; } -static void fn_1_4194(omObjData *arg0) { +static void fn_1_4194(omObjData *arg0) +{ Bss2CWork *temp_r31; temp_r31 = OM_GET_WORK_PTR(arg0, Bss2CWork); @@ -1107,7 +1157,8 @@ static void fn_1_4194(omObjData *arg0) { } if (temp_r31->unk01 != 0) { temp_r31->unk01--; - } else { + } + else { MGSeqParamSet(temp_r31->unk04, 2, -1); temp_r31->unk04 = -1; lbl_1_bss_1C = 1; @@ -1117,7 +1168,8 @@ static void fn_1_4194(omObjData *arg0) { temp_r31->unk02 = 60; } -static void fn_1_42AC(s16 arg0) { +static void fn_1_42AC(s16 arg0) +{ ParticleData *var_r31; lbl_1_bss_20 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0)); @@ -1132,7 +1184,8 @@ static void fn_1_42AC(s16 arg0) { var_r31->unk_02 = arg0; } -static void fn_1_43DC(void) { +static void fn_1_43DC(void) +{ if (lbl_1_data_1B0 != -1) { Hu3DModelKill(lbl_1_data_1B0); lbl_1_data_1B0 = -1; @@ -1143,7 +1196,8 @@ static void fn_1_43DC(void) { } } -static void fn_1_4460(ModelData *model, ParticleData *particle, Mtx matrix) { +static void fn_1_4460(ModelData *model, ParticleData *particle, Mtx matrix) +{ HsfanimStruct01 *var_r31; Vec sp8; float var_f31; diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index e1e91168..0d20bade 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -1515,10 +1515,10 @@ void fn_1_7414(ModelData *model, Mtx matrix) GXInitTexObj(&spC, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 1, GX_CLAMP, GX_CLAMP, GX_FALSE); GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&spC, GX_TEXMAP0); - PSMTXInverse(Hu3DCameraMtx, sp5C); - PSMTXConcat(sp5C, matrix, sp8C); - PSMTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C); - PSMTXConcat(sp2C, sp8C, sp8C); + MTXInverse(Hu3DCameraMtx, sp5C); + MTXConcat(sp5C, matrix, sp8C); + MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C); + MTXConcat(sp2C, sp8C, sp8C); GXLoadTexMtxImm(sp8C, 0x39, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x39, GX_FALSE, 0x7D); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); diff --git a/src/game/gamework.c b/src/game/gamework.c index 68c1783c..887d977b 100644 --- a/src/game/gamework.c +++ b/src/game/gamework.c @@ -212,12 +212,12 @@ u8 GWBoardPlayCountGet(s32 board) return GWGameStat.board_play_count[board]; } -void GWBoardMaxStarsSet(s32 board, s32 value) +void GWBoardMaxStarsSet(s32 board, s16 value) { GWGameStat.board_max_stars[board] = value; } -u16 GWBoardMaxStarsGet(s32 board) +s32 GWBoardMaxStarsGet(s32 board) { return GWGameStat.board_max_stars[board]; } @@ -227,7 +227,7 @@ void GWBoardMaxCoinsSet(s32 board, s32 value) GWGameStat.board_max_coins[board] = value; } -u16 GWBoardMaxCoinsGet(s32 board) +s32 GWBoardMaxCoinsGet(s32 board) { return GWGameStat.board_max_coins[board]; } diff --git a/src/msm/msmmem.c b/src/msm/msmmem.c index cbe6e2be..1a587589 100644 --- a/src/msm/msmmem.c +++ b/src/msm/msmmem.c @@ -1,133 +1,132 @@ #include "msm/msmmem.h" -typedef struct _unkStruct { - struct _unkStruct* prev; - struct _unkStruct* next; - u32 unk8; - u32 unkC; - void* unk10; - void* unk14; - char unk18[0x8]; -} unkStruct; +typedef struct MSMBlock_s { + struct MSMBlock_s* prev; + struct MSMBlock_s* next; + u32 freeSize; + u32 size; + void* ptr; + char pad[12]; +} MSMBLOCK; -typedef struct _unkMemStruct { - unkStruct* unk0; - u32 unk4; - unkStruct* unk8; - unkStruct unkC; -} unkMemStruct; +typedef struct MSMMem_s { + void *ptr; + u32 size; + MSMBLOCK *head; + MSMBLOCK first; +} MSM_MEM; -static unkMemStruct mem; +static MSM_MEM mem; -void msmMemFree(void* arg0) { - unkStruct* temp_r6; - unkStruct* temp_r7; - unkStruct* temp_r8; - unkStruct* temp_r5; - unkStruct* temp; +void msmMemFree(void* ptr) { + MSMBLOCK* block; + MSMBLOCK* blockPrev; + MSMBLOCK* blockNext; + MSMBLOCK* blockHead; + MSMBLOCK* base; - temp = arg0; + base = ptr; - temp_r6 = &temp[-1]; - temp_r7 = temp_r6->prev; - temp_r8 = temp_r6->next; - if (mem.unk0 > temp_r6 || ((u32)mem.unk0 + (u32)mem.unk4) <= (u32)temp_r6) { + block = &base[-1]; + blockPrev = block->prev; + blockNext = block->next; + if (mem.ptr > block || ((u32)mem.ptr + (u32)mem.size) <= (u32)block) { return; } - if ((temp_r7->next != temp_r6) || (temp_r6->unk10 != arg0) || (temp_r8 && (temp_r8->prev != temp_r6))) { + if ((blockPrev->next != block) || (block->ptr != ptr) || (blockNext && (blockNext->prev != block))) { return; } - temp_r7->unkC += temp_r6->unk8 + temp_r6->unkC; - temp_r7->next = temp_r8; - temp_r5 = mem.unk8; - if ((temp_r5 == temp_r6) || (temp_r5->unkC < temp_r7->unkC)) { - mem.unk8 = temp_r7; + blockPrev->size += block->freeSize + block->size; + blockPrev->next = blockNext; + blockHead = mem.head; + if ((blockHead == block) || (blockHead->size < blockPrev->size)) { + mem.head = blockPrev; } - if (temp_r8) { - temp_r8->prev = temp_r7; - if (mem.unk8->unkC < temp_r8->unkC) { - mem.unk8 = temp_r8; + if (blockNext) { + blockNext->prev = blockPrev; + if (mem.head->size < blockNext->size) { + mem.head = blockNext; } } } -void* msmMemAlloc(u32 arg0) { - s32 temp_r0; - u32 var_r5; - u32 var_r7; - unkStruct* temp_r5; - unkStruct* var_r8; - unkStruct* temp_r9; +void* msmMemAlloc(u32 size) { + s32 alignOfs; + u32 freeSize; + u32 allocSize; + MSMBLOCK* block; + MSMBLOCK* blockPrev; + MSMBLOCK* blockNext; - var_r7 = arg0 + 0x20; - temp_r0 = var_r7 & 0x1F; - if (temp_r0 != 0) { - var_r7 += 0x20 - temp_r0; + allocSize = size + 0x20; + alignOfs = allocSize & 0x1F; + if (alignOfs) { + allocSize += 0x20 - alignOfs; } - if (mem.unk8->unkC >= var_r7) { - var_r8 = mem.unk8; + if (mem.head->size >= allocSize) { + blockPrev = mem.head; } else { - var_r8 = &mem.unkC; + blockPrev = &mem.first; do { - if (var_r8->unkC >= var_r7) break; - var_r8 = var_r8->next; - } while (var_r8); - if (!var_r8) { + if (blockPrev->size >= allocSize) break; + blockPrev = blockPrev->next; + } while (blockPrev); + if (!blockPrev) { return NULL; } } - var_r5 = var_r8->unk8; - if (var_r5 != 0) { - var_r5 -= 0x20; + freeSize = blockPrev->freeSize; + if (freeSize != 0) { + freeSize -= 0x20; } - temp_r5 = (void*)((u32)var_r8->unk10 + (var_r5)); - temp_r9 = var_r8->next; - if ((mem.unk0 > temp_r5) || ((void*)((u32)mem.unk0 + (u32)mem.unk4) <= temp_r5)) { + block = (void*)((u32)blockPrev->ptr + (freeSize)); + blockNext = blockPrev->next; + if ((mem.ptr > block) || ((void*)((u32)mem.ptr + (u32)mem.size) <= block)) { return NULL; } - temp_r5->unk8 = var_r7; - temp_r5->unkC = var_r8->unkC - var_r7; - temp_r5->unk10 = (temp_r5 + 1); - temp_r5->prev = var_r8; - temp_r5->next = temp_r9; - mem.unk8 = temp_r5; - var_r8->unkC = 0; - var_r8->next = temp_r5; - if (temp_r9) { - temp_r9->prev = temp_r5; - if (mem.unk8->unkC < temp_r9->unkC) { - mem.unk8 = temp_r9; + block->freeSize = allocSize; + block->size = blockPrev->size - allocSize; + block->ptr = (block + 1); + block->prev = blockPrev; + block->next = blockNext; + mem.head = block; + blockPrev->size = 0; + blockPrev->next = block; + if (blockNext) { + blockNext->prev = block; + if (mem.head->size < blockNext->size) { + mem.head = blockNext; } } - return temp_r5->unk10; + return block->ptr; } -void msmMemInit(void* arg0, u32 arg1) { - unkStruct* temp_r7; - s32 temp; +void msmMemInit(void* ptr, u32 size) { + MSMBLOCK* block; + s32 ofs; - temp = (s32)arg0 & 0x1F; - switch (temp) { + ofs = (s32)ptr & 0x1F; + switch (ofs) { default: - temp = 0x20 - temp; + ofs = 0x20 - ofs; break; case 0: - temp = 0; + ofs = 0; break; } - mem.unk0 = (void*)((s32)arg0 + temp); - temp = (s32)arg0 + arg1; - mem.unk4 = ((temp - (s32)mem.unk0) & ~0x1F); - temp_r7 = &mem.unkC; - temp_r7->unk8 = 0; - temp_r7->unkC = mem.unk4; - temp_r7->unk10 = mem.unk0; - temp_r7->prev = NULL; - temp_r7->next = NULL; - mem.unk8 = &mem.unkC; + mem.ptr = (void*)((s32)ptr + ofs); + ofs = (s32)ptr + size; + mem.size = ((ofs - (s32)mem.ptr) & ~0x1F); + block = &mem.first; + block->freeSize = 0; + block->size = mem.size; + block->ptr = mem.ptr; + block->prev = NULL; + block->next = NULL; + mem.head = &mem.first; } diff --git a/src/msm/msmmus.c b/src/msm/msmmus.c index 3b70662d..061da27a 100755 --- a/src/msm/msmmus.c +++ b/src/msm/msmmus.c @@ -1,150 +1,127 @@ #include "msm/msmmus.h" #include "msm/msmmem.h" -typedef struct { - /* 0x00 */ s16 unk00; - /* 0x02 */ s8 unk02; - /* 0x03 */ s8 unk03; - /* 0x04 */ s8 unk04; - /* 0x05 */ s8 unk05; - /* 0x06 */ char unk06[2]; - /* 0x08 */ SND_SEQID unk08; - /* 0x0C */ void* unk0C; - /* 0x10 */ void* unk10; - /* 0x14 */ volatile s32 unk14; - /* 0x18 */ s32 unk18; - /* 0x1C */ s8 unk1C; - /* 0x1D */ char unk1D[3]; - /* 0x20 */ volatile s32 unk20; - /* 0x24 */ s32 unk24; - /* 0x28 */ s8 unk28; - /* 0x29 */ char unk29[3]; - /* 0x2C */ volatile s32 unk2C; - /* 0x30 */ s32 unk30; - /* 0x34 */ char unk34[1]; - /* 0x35 */ volatile s8 unk35; - /* 0x36 */ s8 unk36; - /* 0x37 */ char unk37[1]; - /* 0x38 */ SND_PLAYPARA unk38; -} msmMusStruct00; // Size 0x58 +typedef struct MusPlayer_s { + /* 0x00 */ s16 musId; + /* 0x02 */ s8 baseVol; + /* 0x03 */ s8 vol; + /* 0x04 */ s8 status; + /* 0x05 */ s8 busyF; + /* 0x08 */ SND_SEQID seqId; + /* 0x0C */ void* songBuf; + /* 0x10 */ void* arrfile; + /* 0x14 */ volatile s32 fadeMaxTime; + /* 0x18 */ s32 fadeTime; + /* 0x1C */ s8 fadeVol; + /* 0x20 */ volatile s32 pauseOnMaxTime; + /* 0x24 */ s32 pauseOnTime; + /* 0x28 */ s8 pauseOnVol; + /* 0x2C */ volatile s32 pauseOffMaxTime; + /* 0x30 */ s32 pauseOffTime; + /* 0x28 */ s8 pauseOffVol; + /* 0x35 */ volatile s8 startVol; + /* 0x36 */ s8 targetVol; + /* 0x38 */ SND_PLAYPARA playPara; +} MUS_PLAYER; // Size 0x58 -typedef struct { - /* 0x00 */ u16 unk00; - /* 0x02 */ s16 unk02; - /* 0x04 */ s32 unk04; - /* 0x08 */ s32 unk08; - /* 0x0C */ s8 unk0C; - /* 0x0D */ s8 unk0D; - /* 0x0E */ char unk0E[2]; -} msmMusStruct01; // Size 0x10 +static struct { + /* 0x000 */ s16 musMax; + /* 0x002 */ s8 musChanMax; + /* 0x003 */ s8 baseGrpNumPlay; + /* 0x004 */ s8 numPlay; + /* 0x008 */ s32 msmEntryNum; + /* 0x00C */ MSM_MUS *musData; + /* 0x010 */ s32 dummyMusOfs; + /* 0x014 */ void* musBuf; + /* 0x018 */ MUS_PLAYER player[4]; +} mus; -typedef struct { - /* 0x000 */ s16 unk00; - /* 0x002 */ s8 unk02; - /* 0x003 */ s8 unk03; - /* 0x004 */ s8 unk04; - /* 0x005 */ char unk05[3]; - /* 0x008 */ s32 unk08; - /* 0x00C */ msmMusStruct01* unk0C; - /* 0x010 */ s32 unk10; - /* 0x014 */ void* unk14; - /* 0x018 */ msmMusStruct00 unk18[1]; // unknown length - /* 0x01C */ char unk70[0x108]; -} msmMusStruct02; // Size 0x178 +static void msmMusPauseSub(MUS_PLAYER* player, BOOL pause, s32 speed) { + s32 time; -typedef struct { - /* 0x00 */ char unk00[0xC]; - /* 0x0C */ s32 unk0C; -} UnkGroupDataPtr; // Size unknown - -static msmMusStruct02 mus; - -static void msmMusPauseSub(msmMusStruct00* arg0, BOOL pause, s32 speed) { - s32 temp_r30; - - temp_r30 = speed / 15; + time = speed / 15; if (pause) { - if (arg0->unk04 == 2) { - if (temp_r30 != 0) { - arg0->unk24 = temp_r30; - arg0->unk20 = temp_r30; - arg0->unk28 = 0x7F; + if (player->status == MSM_MUS_PLAY) { + if (time != 0) { + player->pauseOnTime = time; + player->pauseOnMaxTime = time; + player->pauseOnVol = 127; } else { - sndSeqPause(arg0->unk08); - arg0->unk28 = 0; + sndSeqPause(player->seqId); + player->pauseOnVol = 0; } - arg0->unk04 = 3; + player->status = MSM_MUS_PAUSE; } } else { - if (arg0->unk04 == 3) { - if (temp_r30 != 0) { - if (arg0->unk20 != 0) { - arg0->unk20 = -temp_r30; + if (player->status == MSM_MUS_PAUSE) { + if (time != 0) { + if (player->pauseOnMaxTime != 0) { + player->pauseOnMaxTime = -time; } else { - sndSeqContinue(arg0->unk08); - arg0->unk20 = -temp_r30; - arg0->unk24 = 0; - arg0->unk28 = 0; + sndSeqContinue(player->seqId); + player->pauseOnMaxTime = -time; + player->pauseOnTime = 0; + player->pauseOnVol = 0; } } else { - sndSeqContinue(arg0->unk08); - arg0->unk28 = 0x7F; - sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0); + sndSeqContinue(player->seqId); + player->pauseOnVol = 127; + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); } - arg0->unk04 = 2; + player->status = MSM_MUS_PLAY; } } } -static void msmMusPauseFade(msmMusStruct00* arg0) { - if (arg0->unk20 > 0) { - if (--arg0->unk24 == 0) { - arg0->unk20 = 0; - arg0->unk28 = 0; - sndSeqPause(arg0->unk08); +static void msmMusPauseFade(MUS_PLAYER *player) { + if (player->pauseOnMaxTime > 0) { + if (--player->pauseOnTime == 0) { + player->pauseOnMaxTime = 0; + player->pauseOnVol = 0; + sndSeqPause(player->seqId); } else { - arg0->unk28 = arg0->unk24 * 0x7F / arg0->unk20; - sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0); + player->pauseOnVol = player->pauseOnTime * 127 / player->pauseOnMaxTime; + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); } - } else if (arg0->unk20 < 0) { - if (++arg0->unk24 >= -arg0->unk20) { - arg0->unk20 = 0; - arg0->unk28 = 0x7F; + } else if (player->pauseOnMaxTime < 0) { + if (++player->pauseOnTime >= -player->pauseOnMaxTime) { + player->pauseOnMaxTime = 0; + player->pauseOnVol = 127; } else { - arg0->unk28 = arg0->unk24 * 0x7F / -arg0->unk20; + player->pauseOnVol = player->pauseOnTime * 127 / -player->pauseOnMaxTime; } - sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0); + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); } } -static void msmMusFade(msmMusStruct00* arg0) { - if (arg0->unk04 != 2) { +static void msmMusFade(MUS_PLAYER *player) { + if (player->status != MSM_MUS_PLAY) { return; } - if (arg0->unk14 > 0) { - if (--arg0->unk18 == 0) { - if (arg0->unk04 != 0) { - arg0->unk14 = 0; - if (arg0->unk14 != 0) { - arg0->unk18 = arg0->unk14; - arg0->unk1C = 0x7F; + if (player->fadeMaxTime > 0) { + if (--player->fadeTime == 0) { + if (player->status != 0) { + player->fadeMaxTime = 0; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - sndSeqStop(arg0->unk08); - arg0->unk04 = 1; + sndSeqStop(player->seqId); + player->status = 1; } } } else { - arg0->unk1C = arg0->unk18 * 0x7F / arg0->unk14; - sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0); + player->fadeVol = player->fadeTime * 127 / player->fadeMaxTime; + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); } - } else if (arg0->unk14 < 0) { - if (++arg0->unk18 >= -arg0->unk14) { - arg0->unk14 = 0; - arg0->unk1C = 0x7F; + } else if (player->fadeMaxTime < 0) { + if (++player->fadeTime >= -player->fadeMaxTime) { + player->fadeMaxTime = 0; + player->fadeVol = 127; } else { - arg0->unk1C = arg0->unk18 * 0x7F / -arg0->unk14; + player->fadeVol = player->fadeTime * 127 / -player->fadeMaxTime; } - sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0); + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); } } @@ -152,54 +129,54 @@ void msmMusFdoutEnd(void) { } void msmMusPeriodicProc(void) { - s32 var_r26; - msmMusStruct00* temp_r25; + s32 i; + MUS_PLAYER* player; - mus.unk04 = mus.unk03 = 0; - for (var_r26 = 0; var_r26 < mus.unk02; var_r26++) { - temp_r25 = &mus.unk18[var_r26]; - if (temp_r25->unk05 != 0) { + mus.numPlay = mus.baseGrpNumPlay = 0; + for (i = 0; i < mus.musChanMax; i++) { + player = &mus.player[i]; + if (player->busyF != FALSE) { continue; } - switch (temp_r25->unk04) { - case 1: - case 2: - if (sndSeqGetValid(temp_r25->unk08) == FALSE) { - temp_r25->unk04 = 0; + switch (player->status) { + case MSM_MUS_STOP: + case MSM_MUS_PLAY: + if (sndSeqGetValid(player->seqId) == FALSE) { + player->status = 0; } break; } - if (temp_r25->unk04 == 0) { + if (player->status == MSM_MUS_DONE) { continue; } - if (msmSysCheckBaseGroup(mus.unk0C[temp_r25->unk00].unk00) != 0) { - mus.unk04++; + if (msmSysCheckBaseGroup(mus.musData[player->musId].sgid) != 0) { + mus.numPlay++; } else { - mus.unk03++; + mus.baseGrpNumPlay++; } - msmMusPauseFade(temp_r25); - if (temp_r25->unk04 == 2 && temp_r25->unk2C != 0) { - if (++temp_r25->unk30 >= temp_r25->unk2C) { - temp_r25->unk2C = 0; - temp_r25->unk02 = temp_r25->unk36; + msmMusPauseFade(player); + if (player->status == MSM_MUS_PLAY && player->pauseOffMaxTime != 0) { + if (++player->pauseOffTime >= player->pauseOffMaxTime) { + player->pauseOffMaxTime = 0; + player->baseVol = player->targetVol; } else { - temp_r25->unk02 = temp_r25->unk35 + temp_r25->unk30 * (temp_r25->unk36 - temp_r25->unk35) / temp_r25->unk2C; + player->baseVol = player->startVol + player->pauseOffTime * (player->targetVol - player->startVol) / player->pauseOffMaxTime; } - sndSeqVolume(temp_r25->unk02 * temp_r25->unk03 * temp_r25->unk1C * temp_r25->unk28 / 2048383, 0, temp_r25->unk08, 0); + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); } - msmMusFade(temp_r25); + msmMusFade(player); } } s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl) { - msmMusStruct00* temp_ptr; + MUS_PLAYER *player; - if (musNo < 0 || musNo >= mus.unk02) { + if (musNo < 0 || musNo >= mus.musChanMax) { return MSM_ERR_OUTOFMUS; } - temp_ptr = &mus.unk18[musNo]; - if (sndSeqGetValid(temp_ptr->unk08) == TRUE) { - return sndSeqGetMidiCtrl(temp_ptr->unk08, channel & 0xF, ctrl); + player = &mus.player[musNo]; + if (sndSeqGetValid(player->seqId) == TRUE) { + return sndSeqGetMidiCtrl(player->seqId, channel & 0xF, ctrl); } return 0; } @@ -207,135 +184,135 @@ s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl) { s32 msmMusGetNumPlay(BOOL baseGrp) { switch (baseGrp) { case FALSE: - return mus.unk03 + mus.unk04; + return mus.baseGrpNumPlay + mus.numPlay; default: - return mus.unk03; + return mus.baseGrpNumPlay; } } s32 msmMusGetStatus(int musNo) { - if (musNo < 0 || musNo >= mus.unk02) { + if (musNo < 0 || musNo >= mus.musChanMax) { return MSM_ERR_OUTOFMUS; } - return mus.unk18[musNo].unk04; + return mus.player[musNo].status; } -void msmMusSetMasterVolume(s32 arg0) { - sndMasterVolume(arg0 & 0x7F, 0, 1, 0); +void msmMusSetMasterVolume(s32 vol) { + sndMasterVolume(vol & 127, 0, 1, 0); } -s32 msmMusSetParam(s32 arg0, MSM_MUSPARAM* arg1) { - msmMusStruct00* temp_r31; +s32 msmMusSetParam(s32 musNo, MSM_MUSPARAM *param) { + MUS_PLAYER* player; - if (arg0 < 0 || arg0 >= mus.unk02) { + if (musNo < 0 || musNo >= mus.musChanMax) { return MSM_ERR_OUTOFMUS; } - temp_r31 = &mus.unk18[arg0]; - if (arg1->flag & MSM_MUSPARAM_VOL) { - temp_r31->unk2C = arg1->fadeSpeed / 15; - if (temp_r31->unk2C != 0) { - temp_r31->unk05 = 1; - temp_r31->unk30 = 0; - temp_r31->unk35 = temp_r31->unk02; - temp_r31->unk36 = arg1->vol & 0x7F; - temp_r31->unk05 = 0; + player = &mus.player[musNo]; + if (param->flag & MSM_MUSPARAM_VOL) { + player->pauseOffMaxTime = param->fadeSpeed / 15; + if (player->pauseOffMaxTime != 0) { + player->busyF = 1; + player->pauseOffTime = 0; + player->startVol = player->baseVol; + player->targetVol = param->vol & 127; + player->busyF = 0; } else { - temp_r31->unk02 = arg1->vol & 0x7F; - sndSeqVolume(temp_r31->unk02 * temp_r31->unk03 * temp_r31->unk1C * temp_r31->unk28 / 2048383, 0, temp_r31->unk08, 0); + player->baseVol = param->vol & 127; + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); } } - if (arg1->flag & MSM_MUSPARAM_SPEED) { - sndSeqSpeed(temp_r31->unk08, (arg1->speed << 8) / 100); + if (param->flag & MSM_MUSPARAM_SPEED) { + sndSeqSpeed(player->seqId, (param->speed << 8) / 100); } return 0; } void msmMusPauseAll(BOOL pause, s32 speed) { s32 var_r27; - msmMusStruct00* temp_r26; + MUS_PLAYER* player; - for (var_r27 = 0; var_r27 < mus.unk02; var_r27++) { - temp_r26 = &mus.unk18[var_r27]; - if (temp_r26->unk04 != 0) { - temp_r26->unk05 = 1; - msmMusPauseSub(temp_r26, pause, speed); - temp_r26->unk05 = 0; + for (var_r27 = 0; var_r27 < mus.musChanMax; var_r27++) { + player = &mus.player[var_r27]; + if (player->status != MSM_MUS_DONE) { + player->busyF = TRUE; + msmMusPauseSub(player, pause, speed); + player->busyF = FALSE; } } } s32 msmMusPause(int musNo, BOOL pause, s32 speed) { - msmMusStruct00* temp_r31; + MUS_PLAYER *player; - if (musNo < 0 || musNo >= mus.unk02) { + if (musNo < 0 || musNo >= mus.musChanMax) { return MSM_ERR_OUTOFMUS; } - temp_r31 = &mus.unk18[musNo]; - temp_r31->unk05 = 1; - msmMusPauseSub(temp_r31, pause, speed); - temp_r31->unk05 = 0; + player = &mus.player[musNo]; + player->busyF = TRUE; + msmMusPauseSub(player, pause, speed); + player->busyF = FALSE; return 0; } void msmMusStopAll(BOOL checkGrp, s32 speed) { - s32 var_r28; - msmMusStruct00* temp_r27; + s32 i; + MUS_PLAYER *player; - for (var_r28 = 0; var_r28 < mus.unk02; var_r28++) { - temp_r27 = &mus.unk18[var_r28]; - if (temp_r27->unk04 == 0) { + for (i = 0; i < mus.musChanMax; i++) { + player = &mus.player[i]; + if (player->status == 0) { continue; } - temp_r27->unk05 = 1; + player->busyF = TRUE; switch (checkGrp) { case FALSE: - if (temp_r27->unk04 != 0) { - temp_r27->unk14 = speed / 15; - if (temp_r27->unk14 != 0) { - temp_r27->unk18 = temp_r27->unk14; - temp_r27->unk1C = 0x7F; + if (player->status != 0) { + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - sndSeqStop(temp_r27->unk08); - temp_r27->unk04 = 1; + sndSeqStop(player->seqId); + player->status = 1; } } break; default: - if (msmSysCheckBaseGroup(mus.unk0C[temp_r27->unk00].unk00) == 0 && temp_r27->unk04 != 0) { - temp_r27->unk14 = speed / 15; - if (temp_r27->unk14 != 0) { - temp_r27->unk18 = temp_r27->unk14; - temp_r27->unk1C = 0x7F; + if (msmSysCheckBaseGroup(mus.musData[player->musId].sgid) == 0 && player->status != 0) { + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - sndSeqStop(temp_r27->unk08); - temp_r27->unk04 = 1; + sndSeqStop(player->seqId); + player->status = 1; } } break; } - temp_r27->unk05 = 0; + player->busyF = FALSE; } } s32 msmMusStop(int musNo, s32 speed) { - msmMusStruct00* temp_r30; + MUS_PLAYER* player; - if (musNo < 0 || musNo >= mus.unk02) { + if (musNo < 0 || musNo >= mus.musChanMax) { return MSM_ERR_OUTOFMUS; } - temp_r30 = &mus.unk18[musNo]; - temp_r30->unk05 = 1; - if (temp_r30->unk04 != 0) { - temp_r30->unk14 = speed / 15; - if (temp_r30->unk14 != 0) { - temp_r30->unk18 = temp_r30->unk14; - temp_r30->unk1C = 0x7F; + player = &mus.player[musNo]; + player->busyF = TRUE; + if (player->status != 0) { + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - sndSeqStop(temp_r30->unk08); - temp_r30->unk04 = 1; + sndSeqStop(player->seqId); + player->status = MSM_MUS_STOP; } } - temp_r30->unk05 = 0; + player->busyF = FALSE; return 0; } @@ -343,124 +320,124 @@ int msmMusPlay(int musId, MSM_MUSPARAM* musParam) { s32 var_r30; int var_r29; s32 temp_r3_3; - UnkGroupDataPtr* temp_r3_2; - msmMusStruct01* temp_r28; - msmMusStruct00* temp_r27; + MSM_GRP_HEAD* temp_r3_2; + MSM_MUS* temp_r28; + MUS_PLAYER* temp_r27; DVDFileInfo sp10; - if (musId < 0 || musId >= mus.unk00) { + if (musId < 0 || musId >= mus.musMax) { return MSM_ERR_INVALIDID; } - temp_r28 = &mus.unk0C[musId]; - if (temp_r28->unk00 == 0xFFFF) { + temp_r28 = &mus.musData[musId]; + if (temp_r28->sgid == 0xFFFF) { return MSM_ERR_REMOVEDID; } - if (msmSysCheckLoadGroupID(temp_r28->unk00) == 0) { + if (msmSysCheckLoadGroupID(temp_r28->sgid) == 0) { return MSM_ERR_GRP_NOTLOADED; } var_r30 = (musParam != NULL) ? musParam->flag : 0; var_r29 = (var_r30 & MSM_MUSPARAM_CHAN) ? musParam->chan : 0; - if (var_r29 < 0 || var_r29 >= mus.unk02) { + if (var_r29 < 0 || var_r29 >= mus.musChanMax) { return MSM_ERR_OUTOFMUS; } - temp_r27 = &mus.unk18[var_r29]; - if (temp_r27->unk04 != 0) { - sndSeqStop(temp_r27->unk08); + temp_r27 = &mus.player[var_r29]; + if (temp_r27->status != 0) { + sndSeqStop(temp_r27->seqId); } - if (temp_r28->unk0C < 0) { - if (temp_r27->unk00 != musId) { - if (msmFioOpen(mus.unk08, &sp10) != 1) { + if (temp_r28->songGrp < 0) { + if (temp_r27->musId != musId) { + if (msmFioOpen(mus.msmEntryNum, &sp10) != 1) { return MSM_ERR_OPENFAIL; } - if (msmFioRead(&sp10, temp_r27->unk0C, temp_r28->unk08, temp_r28->unk04 + mus.unk10) < 0) { + if (msmFioRead(&sp10, temp_r27->songBuf, temp_r28->songSize, temp_r28->songOfs + mus.dummyMusOfs) < 0) { msmFioClose(&sp10); return MSM_ERR_READFAIL; } msmFioClose(&sp10); - temp_r27->unk10 = temp_r27->unk0C; + temp_r27->arrfile = temp_r27->songBuf; } } else { - temp_r3_2 = msmSysGetGroupDataPtr(temp_r28->unk0C); + temp_r3_2 = msmSysGetGroupDataPtr(temp_r28->songGrp); if (temp_r3_2 == NULL) { return MSM_ERR_MUSGRP_NOTLOADED; } - temp_r27->unk10 = (void*) ((u32) temp_r3_2 + temp_r3_2->unk0C + temp_r28->unk04); + temp_r27->arrfile = (void*) ((u32) temp_r3_2 + temp_r3_2->sngOfs + temp_r28->songOfs); } - temp_r27->unk05 = 1; - temp_r27->unk03 = temp_r28->unk0D; - temp_r27->unk2C = 0; - temp_r27->unk20 = 0; - temp_r27->unk14 = 0; - temp_r27->unk28 = 0x7F; - temp_r27->unk1C = 0x7F; - temp_r27->unk38.flags = 4; - temp_r27->unk38.volume.time = 0; - temp_r27->unk02 = (var_r30 & MSM_MUSPARAM_VOL) ? musParam->vol : 0x7F; - temp_r27->unk38.volume.target = temp_r27->unk03 * temp_r27->unk1C * temp_r27->unk02 / 16129; + temp_r27->busyF = 1; + temp_r27->vol = temp_r28->vol; + temp_r27->pauseOffMaxTime = 0; + temp_r27->pauseOnMaxTime = 0; + temp_r27->fadeMaxTime = 0; + temp_r27->pauseOnVol = 127; + temp_r27->fadeVol = 127; + temp_r27->playPara.flags = 4; + temp_r27->playPara.volume.time = 0; + temp_r27->baseVol = (var_r30 & MSM_MUSPARAM_VOL) ? musParam->vol : 127; + temp_r27->playPara.volume.target = temp_r27->vol * temp_r27->fadeVol * temp_r27->baseVol / 16129; if (var_r30 & MSM_MUSPARAM_PAUSE) { - temp_r27->unk38.flags |= 0x10; + temp_r27->playPara.flags |= 0x10; } if (var_r30 & MSM_MUSPARAM_SPEED) { - temp_r27->unk38.flags |= 2; - temp_r27->unk38.speed = musParam->speed * 256 / 100; + temp_r27->playPara.flags |= 2; + temp_r27->playPara.speed = musParam->speed * 256 / 100; } if (var_r30 & MSM_MUSPARAM_FADESPEED) { - temp_r27->unk14 = -(musParam->fadeSpeed / 15); - if (temp_r27->unk14 != 0) { - temp_r27->unk18 = 0; - temp_r27->unk1C = 0; - temp_r27->unk38.volume.target = 0; + temp_r27->fadeMaxTime = -(musParam->fadeSpeed / 15); + if (temp_r27->fadeMaxTime != 0) { + temp_r27->fadeTime = 0; + temp_r27->fadeVol = 0; + temp_r27->playPara.volume.target = 0; } } - temp_r3_3 = sndSeqPlayEx(temp_r28->unk00, temp_r28->unk02, temp_r27->unk10, &temp_r27->unk38, 0); + temp_r3_3 = sndSeqPlay(temp_r28->sgid, temp_r28->sid, temp_r27->arrfile, &temp_r27->playPara); if (temp_r3_3 == SND_ID_ERROR) { - temp_r27->unk05 = 0; + temp_r27->busyF = 0; return MSM_ERR_PLAYFAIL; } - temp_r27->unk08 = temp_r3_3; - temp_r27->unk00 = musId; - temp_r27->unk04 = (temp_r27->unk38.flags & 0x10) ? 3 : 2; - temp_r27->unk05 = 0; + temp_r27->seqId = temp_r3_3; + temp_r27->musId = musId; + temp_r27->status = (temp_r27->playPara.flags & 0x10) ? 3 : 2; + temp_r27->busyF = 0; return var_r29; } -s32 msmMusInit(sysData* arg0, DVDFileInfo* arg1) { +s32 msmMusInit(MSM_SYS* arg0, DVDFileInfo* arg1) { s32 temp_r4; s32 var_r8; - mus.unk00 = 0; - mus.unk02 = 0; - mus.unk04 = 0; - mus.unk03 = 0; - if (arg0->unk10->unk4 == 0) { + mus.musMax = 0; + mus.musChanMax = 0; + mus.numPlay = 0; + mus.baseGrpNumPlay = 0; + if (arg0->info->musMax == 0) { return 0; } - temp_r4 = arg0->unkC->unk2C; + temp_r4 = arg0->header->musSize; if (temp_r4 == 0) { return 0; } - if ((mus.unk0C = msmMemAlloc(temp_r4)) == NULL) { + if ((mus.musData = msmMemAlloc(temp_r4)) == NULL) { return MSM_ERR_OUTOFMEM; } - if (msmFioRead(arg1, mus.unk0C, arg0->unkC->unk2C, arg0->unkC->unk28) < 0) { + if (msmFioRead(arg1, mus.musData, arg0->header->musSize, arg0->header->musOfs) < 0) { return MSM_ERR_READFAIL; } - temp_r4 = arg0->unk10->unk20; + temp_r4 = arg0->info->dummyMusSize; if (temp_r4 != 0) { - if ((mus.unk14 = msmMemAlloc(temp_r4 * arg0->unk10->unk8)) == NULL) { + if ((mus.musBuf = msmMemAlloc(temp_r4 * arg0->info->musChanMax)) == NULL) { return MSM_ERR_OUTOFMEM; } } else { - mus.unk14 = NULL; + mus.musBuf = NULL; } - mus.unk00 = arg0->unk10->unk4; - mus.unk02 = arg0->unk10->unk8; - mus.unk10 = arg0->unkC->unk48; - mus.unk08 = arg0->unk0; - for (var_r8 = 0; var_r8 < mus.unk02; var_r8++) { - mus.unk18[var_r8].unk0C = (void*) ((u32) mus.unk14 + arg0->unk10->unk20 * var_r8); - mus.unk18[var_r8].unk00 = -1; - mus.unk18[var_r8].unk05 = 0; + mus.musMax = arg0->info->musMax; + mus.musChanMax = arg0->info->musChanMax; + mus.dummyMusOfs = arg0->header->dummyMusOfs; + mus.msmEntryNum = arg0->msmEntryNum; + for (var_r8 = 0; var_r8 < mus.musChanMax; var_r8++) { + mus.player[var_r8].songBuf = (void*) ((u32) mus.musBuf + arg0->info->dummyMusSize * var_r8); + mus.player[var_r8].musId = -1; + mus.player[var_r8].busyF = 0; } return 0; } diff --git a/src/msm/msmse.c b/src/msm/msmse.c index 1d6481ce..cbacf34c 100755 --- a/src/msm/msmse.c +++ b/src/msm/msmse.c @@ -2,641 +2,637 @@ #include "msm/msmfio.h" #include "msm/msmmem.h" -typedef struct { - /* 0x00 */ SND_VOICEID unk00; - /* 0x04 */ s32 unk04; - /* 0x08 */ s16 unk08; - /* 0x0A */ s8 unk0A; - /* 0x0B */ s8 unk0B; - /* 0x0C */ s8 unk0C; - /* 0x0D */ s8 unk0D; - /* 0x0E */ s16 unk0E; - /* 0x10 */ s8 unk10; - /* 0x11 */ s8 unk11; - /* 0x12 */ s8 unk12; - /* 0x13 */ u8 unk13; - /* 0x14 */ SND_PARAMETER_INFO unk14; - /* 0x1C */ SND_PARAMETER unk1C[5]; - /* 0x30 */ s8 unk30; - /* 0x31 */ s8 unk31; - /* 0x32 */ s16 unk32; - /* 0x34 */ volatile s32 unk34; - /* 0x38 */ s32 unk38; - /* 0x3C */ s8 unk3C; - /* 0x3D */ char unk3D[3]; - /* 0x40 */ volatile s32 unk40; - /* 0x44 */ s32 unk44; - /* 0x48 */ s8 unk48; - /* 0x49 */ char unk49[3]; - /* 0x4C */ SND_EMITTER unk4C; - /* 0x9C */ SND_FVECTOR unk9C; - /* 0xA8 */ SND_FVECTOR unkA8; - /* 0xB4 */ s8 unkB4; - /* 0xB5 */ char unkB5[3]; -} msmSeStruct00; // Size 0xB8 +#define SE_PLAYER_EMIT (1 << 0) -typedef struct { - /* 0x00 */ s32 unk00; - /* 0x04 */ s8 unk04; - /* 0x05 */ s8 unk05; - /* 0x06 */ s8 unk06; - /* 0x07 */ char unk07[1]; - /* 0x08 */ s32 unk08; - /* 0x0C */ MSMSE* unk0C; - /* 0x10 */ msmSeStruct00* unk10; - /* 0x14 */ SND_LISTENER unk14; - /* 0xA4 */ SND_FVECTOR unkA4; - /* 0xB0 */ SND_FVECTOR unkB0; - /* 0xBC */ SND_FVECTOR unkBC; - /* 0xC8 */ SND_FVECTOR unkC8; - /* 0xD4 */ float unkD4; - /* 0xD8 */ u16 unkD8; - /* 0xDA */ u16 unkDA; -} msmSeStruct02; // Size 0xDC +typedef struct SePlayer_s { + SND_VOICEID vid; + s32 no; + s16 seId; + s8 status; + s8 busyF; + s8 vol; + s8 pan; + s16 pitch; + s8 span; + s8 auxAVol; + s8 auxBVol; + u8 flag; + SND_PARAMETER_INFO paramInfo; + SND_PARAMETER param[5]; + s8 baseVol; + s8 basePan; + s16 basePitch; + volatile s32 fadeMaxTime; + s32 fadeTime; + s8 fadeVol; + volatile s32 pauseMaxTime; + s32 pauseTime; + s8 pauseVol; + SND_EMITTER emitter; + SND_FVECTOR emiPos; + SND_FVECTOR emiDir; + s8 emitterF; +} SE_PLAYER; -msmSeStruct02 se; +static struct { + s32 seMax; + s8 sfx; + s8 baseGrpNumPlay; + s8 numPlay; + s32 no; + MSM_SE *seData; + SE_PLAYER *player; + SND_LISTENER listener; + SND_FVECTOR listenerPos; + SND_FVECTOR listenerDir; + SND_FVECTOR listenerHeading; + SND_FVECTOR listenerUp; + float sndDist; + u16 groupId; + u16 listenerF; +} se; -static void msmSeFade(msmSeStruct00* arg0) { - u8 temp_r3; +static void msmSeFade(SE_PLAYER *player) { + u8 vol; - if (arg0->unk0A == 3) { + if (player->status == MSM_SE_PAUSEOUT) { return; } - if (arg0->unk34 > 0) { - if (--arg0->unk38 == 0) { - arg0->unk34 = 0; - arg0->unk34 = 0; - if (arg0->unk34 != 0) { - arg0->unk38 = arg0->unk34; - arg0->unk3C = 0x7F; + if (player->fadeMaxTime > 0) { + if (--player->fadeTime == 0) { + player->fadeMaxTime = 0; + player->fadeMaxTime = 0; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - arg0->unk0A = 1; - if ((arg0->unk13 & 1) && arg0->unkB4 == 1) { - sndRemoveEmitter(&arg0->unk4C); + player->status = 1; + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + sndRemoveEmitter(&player->emitter); } else { - sndFXKeyOff(arg0->unk00); + sndFXKeyOff(player->vid); } } } else { - arg0->unk3C = arg0->unk38 * 0x7F / arg0->unk34; - temp_r3 = arg0->unk0C * arg0->unk30 * arg0->unk3C * arg0->unk48 / 2048383; - if ((arg0->unk13 & 1) && arg0->unkB4 == 1) { - arg0->unkA8.x = arg0->unkA8.y = arg0->unkA8.z = 0.0f; - sndUpdateEmitter(&arg0->unk4C, &arg0->unk9C, &arg0->unkA8, temp_r3, NULL); + player->fadeVol = player->fadeTime * 127 / player->fadeMaxTime; + vol = player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127); + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + player->emiDir.x = player->emiDir.y = player->emiDir.z = 0.0f; + sndUpdateEmitter(&player->emitter, &player->emiPos, &player->emiDir, vol, NULL); } else { - sndFXVolume(arg0->unk00, temp_r3); + sndFXVolume(player->vid, vol); } } - } else if (arg0->unk34 < 0) { - if (++arg0->unk38 >= -arg0->unk34) { - arg0->unk34 = 0; - arg0->unk3C = 0x7F; + } else if (player->fadeMaxTime < 0) { + if (++player->fadeTime >= -player->fadeMaxTime) { + player->fadeMaxTime = 0; + player->fadeVol = 127; } else { - arg0->unk3C = arg0->unk38 * 0x7F / -arg0->unk34; + player->fadeVol = player->fadeTime * 127 / -player->fadeMaxTime; } - temp_r3 = arg0->unk0C * arg0->unk30 * arg0->unk3C * arg0->unk48 / 2048383; - if ((arg0->unk13 & 1) && arg0->unkB4 == 1) { - arg0->unkA8.x = arg0->unkA8.y = arg0->unkA8.z = 0.0f; - sndUpdateEmitter(&arg0->unk4C, &arg0->unk9C, &arg0->unkA8, temp_r3, NULL); + vol = player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127); + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == 1) { + player->emiDir.x = player->emiDir.y = player->emiDir.z = 0.0f; + sndUpdateEmitter(&player->emitter, &player->emiPos, &player->emiDir, vol, NULL); } else { - sndFXVolume(arg0->unk00, temp_r3); + sndFXVolume(player->vid, vol); } } } -static void msmSePauseSub(msmSeStruct00* arg0, BOOL pause, s32 speed) { - s32 temp_r3; +static void msmSePauseSub(SE_PLAYER* player, BOOL pause, s32 speed) { + s32 time; - temp_r3 = speed / 15; + time = speed / 15; if (pause) { - if (arg0->unk0A == 2) { - if (temp_r3 != 0) { - arg0->unk40 = arg0->unk44 = temp_r3; - arg0->unk48 = 0x7F; + if (player->status == MSM_SE_PAUSEIN) { + if (time != 0) { + player->pauseMaxTime = player->pauseTime = time; + player->pauseVol = 127; } else { - arg0->unk48 = 0; - sndFXVolume(arg0->unk00, arg0->unk0C * arg0->unk30 * arg0->unk3C * arg0->unk48 / 2048383); + player->pauseVol = 0; + sndFXVolume(player->vid, player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127)); } - arg0->unk0A = 3; + player->status = MSM_SE_PAUSEOUT; } } else { - if (arg0->unk0A == 3) { - if (temp_r3 != 0) { - if (arg0->unk40 != 0) { - arg0->unk40 = -temp_r3; + if (player->status == MSM_SE_PAUSEOUT) { + if (time != 0) { + if (player->pauseMaxTime != 0) { + player->pauseMaxTime = -time; } else { - arg0->unk40 = -temp_r3; - arg0->unk44 = 0; - arg0->unk48 = 0; + player->pauseMaxTime = -time; + player->pauseTime = 0; + player->pauseVol = 0; } } else { - arg0->unk48 = 0x7F; - sndFXVolume(arg0->unk00, arg0->unk0C * arg0->unk30 * arg0->unk3C * arg0->unk48 / 2048383); + player->pauseVol = 127; + sndFXVolume(player->vid, player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127)); } - arg0->unk0A = 2; + player->status = MSM_SE_PAUSEIN; } } } -void msmSePeriodicProc(void) { - s32 var_r26; - msmSeStruct00* temp_r3; - u8 temp_r3_3; +static SE_PLAYER* msmSeSearchEntry(s32 seNo) { + SE_PLAYER *player; + s32 i; - se.unk05 = se.unk06 = 0; - for (var_r26 = 0; var_r26 < se.unk04; var_r26++) { - temp_r3 = &se.unk10[var_r26]; - if (temp_r3->unk0B != 0) { - continue; - } - switch (temp_r3->unk0A) { - case 1: - case 2: - if ((temp_r3->unk13 & 1) && temp_r3->unkB4 == 1) { - if (!sndCheckEmitter(&temp_r3->unk4C)) { - temp_r3->unk0A = 0; - } - } else { - if (sndFXCheck(temp_r3->unk00) == SND_ID_ERROR) { - temp_r3->unk0A = 0; - } - } - break; - } - if (temp_r3->unk0A == 0) { - continue; - } - if (msmSysCheckBaseGroup(se.unk0C[temp_r3->unk08].groupId) != 0) { - se.unk05++; - } else { - se.unk06++; - } - if (temp_r3->unk40 > 0) { - if (--temp_r3->unk44 == 0) { - temp_r3->unk40 = 0; - temp_r3->unk48 = 0; - } else { - temp_r3->unk48 = temp_r3->unk44 * 0x7F / temp_r3->unk40; - } - } else if (temp_r3->unk40 < 0) { - if (++temp_r3->unk44 >= -temp_r3->unk40) { - temp_r3->unk40 = 0; - temp_r3->unk48 = 0x7F; - } else { - temp_r3->unk48 = temp_r3->unk44 * 0x7F / -temp_r3->unk40; - } - } - temp_r3_3 = temp_r3->unk0C * temp_r3->unk30 * temp_r3->unk3C * temp_r3->unk48 / 2048383; - if ((temp_r3->unk13 & 1) && temp_r3->unkB4 == 1) { - temp_r3->unkA8.x = temp_r3->unkA8.y = temp_r3->unkA8.z = 0.0f; - sndUpdateEmitter(&temp_r3->unk4C, &temp_r3->unk9C, &temp_r3->unkA8, temp_r3_3, NULL); - } else { - sndFXVolume(temp_r3->unk00, temp_r3_3); - } - msmSeFade(temp_r3); - } -} - -MSMSE* msmSeGetIndexPtr(s32 arg0) { - if (arg0 < 0 || arg0 >= se.unk00) { - return NULL; - } - return &se.unk0C[arg0]; -} - -void msmSeDelListener(void) { - if (se.unkDA != 0) { - sndRemoveListener(&se.unk14); - se.unkDA = 0; - } -} - -s32 msmSeUpdataListener(Vec* pos, Vec* heading) { - if (se.unkDA == 0) { - return MSM_ERR_22; - } - se.unkB0.x = pos->x - se.unkA4.x; - se.unkB0.y = pos->y - se.unkA4.y; - se.unkB0.z = pos->z - se.unkA4.z; - se.unkA4.x = pos->x; - se.unkA4.y = pos->y; - se.unkA4.z = pos->z; - se.unkBC.x = heading->x; - se.unkBC.y = heading->y; - se.unkBC.z = heading->z; - if (!sndUpdateListener(&se.unk14, &se.unkA4, &se.unkB0, &se.unkBC, &se.unkC8, 0x7F, NULL)) { - return MSM_ERR_22; - } - return 0; -} - -s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_SELISTENER* listener) { - SND_FVECTOR* temp_b0; - SND_FVECTOR* temp_a4; - SND_FVECTOR* temp_c8; - SND_FVECTOR* temp_bc; - s32 var_r3; - float var_f4; - float var_f0; - float var_f0_2; - - temp_a4 = &se.unkA4; - temp_c8 = &se.unkC8; - temp_bc = &se.unkBC; - temp_b0 = &se.unkB0; - temp_a4->x = pos->x; - temp_a4->y = pos->y; - temp_a4->z = pos->z; - temp_c8->x = temp_c8->z = 0.0f; - temp_c8->y = 1.0f; - temp_bc->x = heading->x; - temp_bc->y = heading->y; - temp_bc->z = heading->z; - temp_b0->x = temp_b0->y = temp_b0->z = 0.0f; - se.unkD4 = sndDist; - var_r3 = (listener != NULL) ? listener->flag : 0; - var_f4 = (var_r3 & 1) ? listener->startDis : 0.0f; - var_f0 = (var_r3 & 2) ? listener->frontSurDis : (var_f4 + sndDist * 0.25f); - var_f0_2 = (var_r3 & 4) ? listener->backSurDis : (var_f4 + sndDist * 0.25f); - if ((s32) sndAddListenerEx(&se.unk14, temp_a4, temp_b0, temp_bc, temp_c8, - var_f0, var_f0_2, sndSpeed, -var_f4, 1, 0x7F, NULL) == FALSE) - { - se.unkDA = 0; - return MSM_ERR_22; - } - se.unkDA = 1; - return 0; -} - -s32 msmSeGetEntryID(s32 seId, int* seNo) { - msmSeStruct00* temp_r8; - s32 var_r9; - s32 var_r10; - - for (var_r9 = var_r10 = 0; var_r9 < se.unk04; var_r9++) { - temp_r8 = &se.unk10[var_r9]; - if (temp_r8->unk0A != 0 && temp_r8->unk08 == seId) { - if (seNo != NULL) { - seNo[var_r10] = temp_r8->unk04; - } - var_r10++; - } - } - return var_r10; -} - -s32 msmSeGetNumPlay(BOOL baseGrp) { - switch (baseGrp) { - case FALSE: - return se.unk06 + se.unk05; - default: - return se.unk06; - } -} - -static inline msmSeStruct00* msmSeGetStatus_inline(s32 seNo) { - msmSeStruct00* var_r4; - s32 var_ctr; - - for (var_ctr = 0; var_ctr < se.unk04; var_ctr++) { - var_r4 = &se.unk10[var_ctr]; - if (var_r4->unk0A != 0 && var_r4->unk04 == seNo) { - return var_r4; + for (i = 0; i < se.sfx; i++) { + player = &se.player[i]; + if (player->status != MSM_SE_DONE && player->no == seNo) { + return player; } } return NULL; } -s32 msmSeGetStatus(int seNo) { - msmSeStruct00* var_r4; +void msmSePeriodicProc(void) { + s32 i; + SE_PLAYER* player; + u8 vol; - var_r4 = msmSeGetStatus_inline(seNo); - if (var_r4 == NULL) { - return 0; + se.baseGrpNumPlay = se.numPlay = 0; + for (i = 0; i < se.sfx; i++) { + player = &se.player[i]; + if (player->busyF != 0) { + continue; + } + switch (player->status) { + case MSM_SE_PLAY: + case MSM_SE_PAUSEIN: + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + if (!sndCheckEmitter(&player->emitter)) { + player->status = 0; + } + } else { + if (sndFXCheck(player->vid) == SND_ID_ERROR) { + player->status = 0; + } + } + break; + } + if (player->status == 0) { + continue; + } + if (msmSysCheckBaseGroup(se.seData[player->seId].gid) != 0) { + se.baseGrpNumPlay++; + } else { + se.numPlay++; + } + if (player->pauseMaxTime > 0) { + if (--player->pauseTime == 0) { + player->pauseMaxTime = 0; + player->pauseVol = 0; + } else { + player->pauseVol = player->pauseTime * 127 / player->pauseMaxTime; + } + } else if (player->pauseMaxTime < 0) { + if (++player->pauseTime >= -player->pauseMaxTime) { + player->pauseMaxTime = 0; + player->pauseVol = 127; + } else { + player->pauseVol = player->pauseTime * 127 / -player->pauseMaxTime; + } + } + vol = player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127); + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + player->emiDir.x = player->emiDir.y = player->emiDir.z = 0.0f; + sndUpdateEmitter(&player->emitter, &player->emiPos, &player->emiDir, vol, NULL); + } else { + sndFXVolume(player->vid, vol); + } + msmSeFade(player); } - return var_r4->unk0A; } -void msmSeSetMasterVolume(s32 arg0) { - sndMasterVolume(arg0 & 0x7F, 0, 0, 1); +MSM_SE* msmSeGetIndexPtr(s32 seId) { + if (seId < 0 || seId >= se.seMax) { + return NULL; + } + return &se.seData[seId]; +} + +void msmSeDelListener(void) { + if (se.listenerF != 0) { + sndRemoveListener(&se.listener); + se.listenerF = 0; + } +} + +s32 msmSeUpdataListener(Vec* pos, Vec* heading) { + if (se.listenerF == 0) { + return MSM_LISTENER_NO_UPDATA; + } + se.listenerDir.x = pos->x - se.listenerPos.x; + se.listenerDir.y = pos->y - se.listenerPos.y; + se.listenerDir.z = pos->z - se.listenerPos.z; + se.listenerPos.x = pos->x; + se.listenerPos.y = pos->y; + se.listenerPos.z = pos->z; + se.listenerHeading.x = heading->x; + se.listenerHeading.y = heading->y; + se.listenerHeading.z = heading->z; + if (!sndUpdateListener(&se.listener, &se.listenerPos, &se.listenerDir, &se.listenerHeading, &se.listenerUp, 127, NULL)) { + return MSM_LISTENER_NO_UPDATA; + } + return 0; +} + +s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_SELISTENER* listener) { + SND_FVECTOR* listenerDir; + SND_FVECTOR* listenerPos; + SND_FVECTOR* listenerUp; + SND_FVECTOR* listenerHeading; + s32 flag; + float startDis; + float frontSurDis; + float backSurDis; + + listenerPos = &se.listenerPos; + listenerUp = &se.listenerUp; + listenerHeading = &se.listenerHeading; + listenerDir = &se.listenerDir; + listenerPos->x = pos->x; + listenerPos->y = pos->y; + listenerPos->z = pos->z; + listenerUp->x = listenerUp->z = 0.0f; + listenerUp->y = 1.0f; + listenerHeading->x = heading->x; + listenerHeading->y = heading->y; + listenerHeading->z = heading->z; + listenerDir->x = listenerDir->y = listenerDir->z = 0.0f; + se.sndDist = sndDist; + flag = (listener != NULL) ? listener->flag : MSM_LISTENER_NONE; + startDis = (flag & MSM_LISTENER_STARTDIS) ? listener->startDis : 0.0f; + frontSurDis = (flag & MSM_LISTENER_FRONTSURDIS) ? listener->frontSurDis : (startDis + sndDist * 0.25f); + backSurDis = (flag & MSM_LISTENER_BACKSURDIS) ? listener->backSurDis : (startDis + sndDist * 0.25f); + if ((s32) sndAddListenerEx(&se.listener, listenerPos, listenerDir, listenerHeading, listenerUp, + frontSurDis, backSurDis, sndSpeed, -startDis, SND_EMITTER_CONTINOUS, 127, NULL) == FALSE) + { + se.listenerF = FALSE; + return MSM_LISTENER_NO_UPDATA; + } + se.listenerF = TRUE; + return 0; +} + +s32 msmSeGetEntryID(s32 seId, int* seNo) { + SE_PLAYER* player; + s32 i; + s32 num; + + for (i = num = 0; i < se.sfx; i++) { + player = &se.player[i]; + if (player->status != 0 && player->seId == seId) { + if (seNo != NULL) { + seNo[num] = player->no; + } + num++; + } + } + return num; +} + +s32 msmSeGetNumPlay(BOOL baseGrp) { + switch (baseGrp) { + case FALSE: + return se.numPlay + se.baseGrpNumPlay; + default: + return se.numPlay; + } +} + +s32 msmSeGetStatus(int seNo) { + SE_PLAYER* pan; + + pan = msmSeSearchEntry(seNo); + if (pan == NULL) { + return 0; + } + return pan->status; +} + +void msmSeSetMasterVolume(s32 vol) { + sndMasterVolume(vol & 127, 0, 0, 1); } s32 msmSeSetParam(int seNo, MSM_SEPARAM* param) { - msmSeStruct00* var_r31; - int temp_r3; - s32 var_r4; + SE_PLAYER* player; + int pan; + s32 pitch; - var_r31 = msmSeGetStatus_inline(seNo); - if (var_r31 == NULL) { - return MSM_ERR_6F; + player = msmSeSearchEntry(seNo); + if (player == NULL) { + return MSM_ERR_INVALIDSE; } if (param->flag & MSM_SEPARAM_VOL) { - var_r31->unk0B = 1; - var_r31->unk0C = param->vol; - if (!(var_r31->unk13 & 1) || var_r31->unkB4 != 1) { - sndFXVolume(var_r31->unk00, var_r31->unk0C * var_r31->unk30 * var_r31->unk3C * var_r31->unk48 / 2048383); + player->busyF = TRUE; + player->vol = param->vol; + if (!(player->flag & SE_PLAYER_EMIT) || player->emitterF != TRUE) { + sndFXVolume(player->vid, player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127)); } - var_r31->unk0B = 0; + player->busyF = FALSE; } - if (!(var_r31->unk13 & 1)) { + if (!(player->flag & SE_PLAYER_EMIT)) { if (param->flag & MSM_SEPARAM_PAN) { - var_r31->unk0D = param->pan; - temp_r3 = var_r31->unk0D + var_r31->unk31 - 0x40; - if (temp_r3 < 0) { - temp_r3 = 0; + player->pan = param->pan; + pan = player->pan + player->basePan - 64; + if (pan < 0) { + pan = 0; } - if (temp_r3 > 0x7F) { - temp_r3 = 0x7F; + if (pan > 127) { + pan = 127; } - sndFXPanning(var_r31->unk00, temp_r3); + sndFXPanning(player->vid, pan); } if (param->flag & MSM_SEPARAM_PITCH) { - var_r31->unk0E = param->pitch; - var_r4 = var_r31->unk0E + var_r31->unk32 + 0x2000; - if (var_r4 < 0) { - var_r4 = 0; + player->pitch = param->pitch; + pitch = player->pitch + player->basePitch + 8192; + if (pitch < 0) { + pitch = 0; } - if (var_r4 > 0x3FFF) { - var_r4 = 0x3FFF; + if (pitch > 16383) { + pitch = 16383; } - sndFXPitchBend(var_r31->unk00, var_r4); + sndFXPitchBend(player->vid, pitch); } if (param->flag & MSM_SEPARAM_SPAN) { - var_r31->unk10 = param->span; - sndFXSurroundPanning(var_r31->unk00, var_r31->unk10); + player->span = param->span; + sndFXSurroundPanning(player->vid, player->span); } - } else if (var_r31->unkB4 == 1) { - var_r31->unk00 = sndEmitterVoiceID(&var_r31->unk4C); + } else if (player->emitterF == TRUE) { + player->vid = sndEmitterVoiceID(&player->emitter); if (param->flag & MSM_SEPARAM_POS) { - var_r31->unk0B = 1; - var_r31->unkA8.x = param->pos.x - var_r31->unk9C.x; - var_r31->unkA8.y = param->pos.y - var_r31->unk9C.y; - var_r31->unkA8.z = param->pos.z - var_r31->unk9C.z; - var_r31->unk9C.x = param->pos.x; - var_r31->unk9C.y = param->pos.y; - var_r31->unk9C.z = param->pos.z; - sndUpdateEmitter(&var_r31->unk4C, &var_r31->unk9C, &var_r31->unkA8, var_r31->unk0C * var_r31->unk30 * var_r31->unk3C * var_r31->unk48 / 2048383, NULL); - var_r31->unk0B = 0; + player->busyF = TRUE; + player->emiDir.x = param->pos.x - player->emiPos.x; + player->emiDir.y = param->pos.y - player->emiPos.y; + player->emiDir.z = param->pos.z - player->emiPos.z; + player->emiPos.x = param->pos.x; + player->emiPos.y = param->pos.y; + player->emiPos.z = param->pos.z; + sndUpdateEmitter(&player->emitter, &player->emiPos, &player->emiDir, player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127), NULL); + player->busyF = FALSE; } } if (param->flag & MSM_SEPARAM_AUXVOLA) { - var_r31->unk11 = param->auxAVol; - sndFXReverb(var_r31->unk00, var_r31->unk11); + player->auxAVol = param->auxAVol; + sndFXReverb(player->vid, player->auxAVol); } if (param->flag & MSM_SEPARAM_AUXVOLB) { - var_r31->unk12 = param->auxBVol; - sndFXChorus(var_r31->unk00, var_r31->unk12); + player->auxBVol = param->auxBVol; + sndFXChorus(player->vid, player->auxBVol); } if (param->flag & MSM_SEPARAM_PAD) { - sndSendMessage(var_r31->unk00, param->pad); + sndSendMessage(player->vid, param->pad); } return 0; } void msmSePauseAll(BOOL pause, s32 speed) { - s32 var_r27; - msmSeStruct00* temp_r26; + s32 i; + SE_PLAYER* player; - for (var_r27 = 0; var_r27 < se.unk04; var_r27++) { - temp_r26 = &se.unk10[var_r27]; - temp_r26->unk0B = 1; - msmSePauseSub(temp_r26, pause, speed); - temp_r26->unk0B = 0; + for (i = 0; i < se.sfx; i++) { + player = &se.player[i]; + player->busyF = TRUE; + msmSePauseSub(player, pause, speed); + player->busyF = FALSE; } } void msmSeStopAll(BOOL checkGrp, s32 speed) { - msmSeStruct00* temp_r28; - s32 var_r27; + SE_PLAYER* player; + s32 i; - for (var_r27 = 0; var_r27 < se.unk04; var_r27++) { - temp_r28 = &se.unk10[var_r27]; - if (temp_r28->unk0A == 0) { + for (i = 0; i < se.sfx; i++) { + player = &se.player[i]; + if (player->status == MSM_MUS_DONE) { continue; } - temp_r28->unk0B = 1; + player->busyF = TRUE; switch (checkGrp) { case FALSE: - temp_r28->unk34 = speed / 15; - if (temp_r28->unk34 != 0) { - temp_r28->unk38 = temp_r28->unk34; - temp_r28->unk3C = 0x7F; + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - temp_r28->unk0A = 1; - if ((temp_r28->unk13 & 1) && temp_r28->unkB4 == 1) { - sndRemoveEmitter(&temp_r28->unk4C); + player->status = 1; + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + sndRemoveEmitter(&player->emitter); } else { - sndFXKeyOff(temp_r28->unk00); + sndFXKeyOff(player->vid); } } break; default: - if (msmSysCheckBaseGroup(se.unk0C[temp_r28->unk08].groupId) == 0) { - temp_r28->unk34 = speed / 15; - if (temp_r28->unk34 != 0) { - temp_r28->unk38 = temp_r28->unk34; - temp_r28->unk3C = 0x7F; + if (msmSysCheckBaseGroup(se.seData[player->seId].gid) == 0) { + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - temp_r28->unk0A = 1; - if ((temp_r28->unk13 & 1) && temp_r28->unkB4 == 1) { - sndRemoveEmitter(&temp_r28->unk4C); + player->status = 1; + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + sndRemoveEmitter(&player->emitter); } else { - sndFXKeyOff(temp_r28->unk00); + sndFXKeyOff(player->vid); } } } break; } - temp_r28->unk0B = 0; + player->busyF = FALSE; } } s32 msmSeStop(int seNo, s32 speed) { - msmSeStruct00* var_r31; + SE_PLAYER* player; - var_r31 = msmSeGetStatus_inline(seNo); - if (var_r31 == NULL) { - return MSM_ERR_6F; + player = msmSeSearchEntry(seNo); + if (player == NULL) { + return MSM_ERR_INVALIDSE; } - var_r31->unk0B = 1; - var_r31->unk34 = speed / 15; - if (var_r31->unk34 != 0) { - var_r31->unk38 = var_r31->unk34; - var_r31->unk3C = 0x7F; + player->busyF = TRUE; + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - var_r31->unk0A = 1; - if ((var_r31->unk13 & 1) && var_r31->unkB4 == 1) { - sndRemoveEmitter(&var_r31->unk4C); + player->status = MSM_MUS_STOP; + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + sndRemoveEmitter(&player->emitter); } else { - sndFXKeyOff(var_r31->unk00); + sndFXKeyOff(player->vid); } } - var_r31->unk0B = 0; + player->busyF = FALSE; return 0; } -static inline BOOL msmSeInline00(msmSeStruct00* arg0, MSM_SEPARAM* param) { - BOOL var_r0 = FALSE; +static inline BOOL msmSeUpdateBaseParam(SE_PLAYER* player, MSM_SEPARAM* param) { + BOOL listenerF = FALSE; if (param != NULL) { if (param->flag & MSM_SEPARAM_VOL) { - arg0->unk0C = param->vol; + player->vol = param->vol; } if (param->flag & MSM_SEPARAM_PAN) { - arg0->unk0D = param->pan; + player->pan = param->pan; } if (param->flag & MSM_SEPARAM_PITCH) { - arg0->unk0E = param->pitch; + player->pitch = param->pitch; } if (param->flag & MSM_SEPARAM_SPAN) { - arg0->unk10 = param->span; + player->span = param->span; } if (param->flag & MSM_SEPARAM_AUXVOLA) { - arg0->unk11 = param->auxAVol; + player->auxAVol = param->auxAVol; } if (param->flag & MSM_SEPARAM_AUXVOLB) { - arg0->unk12 = param->auxBVol; + player->auxBVol = param->auxBVol; } - if ((param->flag & MSM_SEPARAM_POS) && se.unkDA != 0) { - var_r0 = TRUE; + if ((param->flag & MSM_SEPARAM_POS) && se.listenerF != 0) { + listenerF = TRUE; } } - arg0->unk14.paraArray = arg0->unk1C; - return var_r0; + player->paramInfo.paraArray = player->param; + return listenerF; } int msmSePlay(int seId, MSM_SEPARAM* param) { - msmSeStruct00* var_r30; - SND_EMITTER* var_r29; - MSMSE* temp_r9; - int var_r3_2; - s32 var_r4; - s32 var_r6; - s32 var_r6_2; + SE_PLAYER* player; + SND_EMITTER* emitter; + MSM_SE* seData; + int pitch; + s32 pan; + s32 i; + s32 emiFlag; - if (seId < 0 || seId >= se.unk00) { + if (seId < 0 || seId >= se.seMax) { return MSM_ERR_INVALIDID; } - temp_r9 = &se.unk0C[seId]; - if (temp_r9->groupId == 0xFFFF) { + seData = &se.seData[seId]; + if (seData->gid == 0xFFFF) { return MSM_ERR_REMOVEDID; } - for (var_r6 = 0; var_r6 < se.unk04; var_r6++) { - var_r30 = &se.unk10[var_r6]; - if (var_r30->unk0A == 0) { + for (i = 0; i < se.sfx; i++) { + player = &se.player[i]; + if (player->status == 0) { break; } } - if (var_r6 == se.unk04) { - return MSM_ERR_6E; + if (i == se.sfx) { + return MSM_ERR_CHANLIMIT; } - var_r30->unk30 = temp_r9->vol; - var_r30->unk31 = temp_r9->pan; - var_r30->unk32 = temp_r9->pitchBend; - var_r30->unk0C = 0x7F; - var_r30->unk0D = 0x40; - var_r30->unk10 = temp_r9->span; - var_r30->unk0E = 0; - var_r30->unk11 = temp_r9->reverb; - var_r30->unk12 = temp_r9->chorus; - var_r30->unk40 = 0; - var_r30->unk34 = 0; - var_r30->unk48 = 0x7F; - var_r30->unk3C = 0x7F; - var_r30->unkB4 = 0; - if (msmSeInline00(var_r30, param)) { - var_r30->unk9C.x = param->pos.x; - var_r30->unk9C.y = param->pos.y; - var_r30->unk9C.z = param->pos.z; - var_r30->unk1C[0].ctrl = SND_MIDICTRL_REVERB; - var_r30->unk1C[0].paraData.value7 = var_r30->unk11; - var_r30->unk1C[1].ctrl = SND_MIDICTRL_CHORUS; - var_r30->unk1C[1].paraData.value7 = var_r30->unk12; - var_r30->unk14.numPara = 2; - var_r30->unkA8.x = var_r30->unkA8.y = var_r30->unkA8.z = 0.0f; - if (temp_r9->doppler == 1) { - var_r29 = &var_r30->unk4C; - var_r6_2 = 9; + player->baseVol = seData->vol; + player->basePan = seData->pan; + player->basePitch = seData->pitchBend; + player->vol = 127; + player->pan = 64; + player->span = seData->span; + player->pitch = 0; + player->auxAVol = seData->reverb; + player->auxBVol = seData->chorus; + player->pauseMaxTime = 0; + player->fadeMaxTime = 0; + player->pauseVol = 127; + player->fadeVol = 127; + player->emitterF = 0; + if (msmSeUpdateBaseParam(player, param)) { + player->emiPos.x = param->pos.x; + player->emiPos.y = param->pos.y; + player->emiPos.z = param->pos.z; + player->param[0].ctrl = SND_MIDICTRL_REVERB; + player->param[0].paraData.value7 = player->auxAVol; + player->param[1].ctrl = SND_MIDICTRL_CHORUS; + player->param[1].paraData.value7 = player->auxBVol; + player->paramInfo.numPara = 2; + player->emiDir.x = player->emiDir.y = player->emiDir.z = 0.0f; + if (seData->emitterF == TRUE) { + emitter = &player->emitter; + emiFlag = SND_EMITTER_DOPPLERFX|SND_EMITTER_CONTINOUS; } else { - var_r29 = NULL; - var_r6_2 = 8; + emitter = NULL; + emiFlag = SND_EMITTER_DOPPLERFX; } - var_r30->unkB4 = temp_r9->doppler; - var_r30->unk00 = sndAddEmitterParaEx(var_r29, &var_r30->unk9C, &var_r30->unkA8, se.unkD4, temp_r9->comp / 127.0f, var_r6_2, temp_r9->fxId, se.unkD8++, var_r30->unk0C * var_r30->unk30 / 127, 0, NULL, &var_r30->unk14); - if (var_r29 != NULL) { - if (!sndCheckEmitter(var_r29)) { + player->emitterF = seData->emitterF; + player->vid = sndAddEmitterParaEx(emitter, &player->emiPos, &player->emiDir, se.sndDist, seData->emiComp / 127.0f, emiFlag, seData->fxId, se.groupId++, player->vol * player->baseVol / 127, 0, NULL, &player->paramInfo); + if (emitter != NULL) { + if (!sndCheckEmitter(emitter)) { return MSM_ERR_PLAYFAIL; } } else { - if (var_r30->unk00 == -1) { + if (player->vid == -1) { return MSM_ERR_PLAYFAIL; } } - var_r30->unk13 |= 1; + player->flag |= 1; } else { - var_r30->unk1C[0].ctrl = SND_MIDICTRL_VOLUME; - var_r30->unk1C[0].paraData.value14 = (var_r30->unk0C * var_r30->unk30 / 127) * 0x81; - var_r4 = var_r30->unk0D + var_r30->unk31 - 0x40; - if (var_r4 < 0) { - var_r4 = 0; + player->param[0].ctrl = SND_MIDICTRL_VOLUME; + player->param[0].paraData.value14 = (player->vol * player->baseVol / 127) * 129; + pan = player->pan + player->basePan - 64; + if (pan < 0) { + pan = 0; } - if (var_r4 > 0x7F) { - var_r4 = 0x7F; + if (pan > 127) { + pan = 127; } - var_r30->unk1C[1].ctrl = SND_MIDICTRL_PANNING; - var_r30->unk1C[1].paraData.value14 = var_r4 * 0x81; - var_r30->unk1C[2].ctrl = SND_MIDICTRL_REVERB; - var_r30->unk1C[2].paraData.value7 = var_r30->unk11; - var_r30->unk1C[3].ctrl = SND_MIDICTRL_CHORUS; - var_r30->unk1C[3].paraData.value7 = var_r30->unk12; - var_r3_2 = var_r30->unk0E + var_r30->unk32 + 0x2000; - if (var_r3_2 > 0x3FFF) { - var_r3_2 = 0x3FFF; - } else if (var_r3_2 < 0) { - var_r3_2 = 0; + player->param[1].ctrl = SND_MIDICTRL_PANNING; + player->param[1].paraData.value14 = pan * 129; + player->param[2].ctrl = SND_MIDICTRL_REVERB; + player->param[2].paraData.value7 = player->auxAVol; + player->param[3].ctrl = SND_MIDICTRL_CHORUS; + player->param[3].paraData.value7 = player->auxBVol; + pitch = player->pitch + player->basePitch + 8192; + if (pitch > 16383) { + pitch = 16383; + } else if (pitch < 0) { + pitch = 0; } - var_r30->unk1C[4].ctrl = SND_MIDICTRL_PITCHBEND; - var_r30->unk1C[4].paraData.value14 = var_r3_2; - var_r30->unk14.numPara = 5; - var_r30->unk00 = sndFXStartParaInfo(temp_r9->fxId, 0xFF, 0xFF, 0, &var_r30->unk14); - if (var_r30->unk00 == -1) { + player->param[4].ctrl = SND_MIDICTRL_PITCHBEND; + player->param[4].paraData.value14 = pitch; + player->paramInfo.numPara = 5; + player->vid = sndFXStartParaInfo(seData->fxId, 0xFF, 0xFF, 0, &player->paramInfo); + if (player->vid == -1) { return MSM_ERR_PLAYFAIL; } - sndFXSurroundPanning(var_r30->unk00, var_r30->unk10); - var_r30->unk13 &= ~1; + sndFXSurroundPanning(player->vid, player->span); + player->flag &= ~1; } - var_r30->unk0B = 1; - var_r30->unk08 = seId; - var_r30->unk04 = se.unk08++; - var_r30->unk0A = 2; - var_r30->unk0B = 0; - return var_r30->unk04; + player->busyF = 1; + player->seId = seId; + player->no = se.no++; + player->status = 2; + player->busyF = 0; + return player->no; } -s32 msmSeInit(sysData* arg0, DVDFileInfo* arg1) { - s32 temp_r29; +s32 msmSeInit(MSM_SYS* arg0, DVDFileInfo* arg1) { + s32 playerSize; - se.unk04 = 0; - se.unk00 = 0; - se.unk05 = 0; - se.unk06 = 0; - se.unkDA = 0; - if (arg0->unk10->unk6 == 0) { + se.sfx = 0; + se.seMax = 0; + se.baseGrpNumPlay = 0; + se.numPlay = 0; + se.listenerF = 0; + if (arg0->info->seMax == 0) { return 0; } - if ((se.unk0C = msmMemAlloc(arg0->unkC->unk34)) == NULL) { + if ((se.seData = msmMemAlloc(arg0->header->seSize)) == NULL) { return MSM_ERR_OUTOFMEM; } - if (msmFioRead(arg1, se.unk0C, arg0->unkC->unk34, arg0->unkC->unk30) < 0) { + if (msmFioRead(arg1, se.seData, arg0->header->seSize, arg0->header->seOfs) < 0) { return MSM_ERR_READFAIL; } - temp_r29 = arg0->unk10->unk2 * sizeof(*se.unk10); - if ((se.unk10 = msmMemAlloc(temp_r29)) == NULL) { + playerSize = arg0->info->sfx * sizeof(SE_PLAYER); + if ((se.player = msmMemAlloc(playerSize)) == NULL) { return MSM_ERR_OUTOFMEM; } - memset(se.unk10, 0, temp_r29); - se.unk00 = arg0->unk10->unk6; - se.unk04 = arg0->unk10->unk2; - se.unk08 = 1; + memset(se.player, 0, playerSize); + se.seMax = arg0->info->seMax; + se.sfx = arg0->info->sfx; + se.no = 1; return 0; } diff --git a/src/msm/msmstream.c b/src/msm/msmstream.c index 058835ab..2afade01 100755 --- a/src/msm/msmstream.c +++ b/src/msm/msmstream.c @@ -3,215 +3,187 @@ #include "msm/msmsys.h" typedef struct { - /* 0x00 */ SND_STREAMID unk00; - /* 0x04 */ s16 unk04; - /* 0x06 */ u8 unk06; - /* 0x07 */ u8 unk07; - /* 0x08 */ u8 unk08; - /* 0x09 */ u8 unk09; - /* 0x0A */ u8 unk0A; - /* 0x0B */ u8 unk0B; - /* 0x0C */ u8 unk0C; - /* 0x0D */ u8 unk0D; - /* 0x0E */ s8 unk0E; - /* 0x0F */ s8 unk0F; - /* 0x10 */ u32 unk10; - /* 0x14 */ volatile s32 unk14; - /* 0x18 */ volatile s32 unk18; - /* 0x1C */ s32 unk1C; - /* 0x20 */ char unk20[4]; - /* 0x24 */ volatile s32 unk24; - /* 0x28 */ s32 unk28; - /* 0x2C */ s8 unk2C; - /* 0x2D */ s8 unk2D; - /* 0x2E */ s8 unk2E; - /* 0x2F */ char unk2F[1]; - /* 0x30 */ void* unk30; - /* 0x34 */ u32 unk34; - /* 0x38 */ u32 unk38; + /* 0x00 */ SND_STREAMID stid; + /* 0x04 */ s16 streamId; + /* 0x06 */ u8 status; + /* 0x07 */ u8 stereoF; + /* 0x08 */ u8 volBase; + /* 0x09 */ u8 vol; + /* 0x0A */ u8 volFade; + /* 0x0B */ u8 pauseVol; + /* 0x0C */ u8 panBase; + /* 0x0D */ u8 pan; + /* 0x0E */ s8 slotL; + /* 0x0F */ s8 slotR; + /* 0x10 */ u32 pauseLen; + /* 0x14 */ volatile s32 pauseTime; + /* 0x18 */ volatile s32 pauseTimeMax; + /* 0x1C */ s32 fadeVol; + /* 0x20 */ s32 unk20; + /* 0x24 */ volatile s32 fadeMaxTime; + /* 0x28 */ s32 fadeTime; + /* 0x2C */ s8 span; + /* 0x2D */ s8 auxA; + /* 0x2E */ s8 auxB; + /* 0x30 */ void* streamBuf; + /* 0x34 */ u32 streamBufSize; + /* 0x38 */ u32 streamFrq; /* 0x3C */ struct { - volatile u8 unk3C_0 : 1; - volatile u8 unk3C_1 : 1; - u8 unk3C_2 : 1; - u8 unk3C_3 : 1; - volatile u8 unk3C_4 : 1; - volatile u8 unk3C_5 : 1; - volatile u8 unk3C_6 : 1; + volatile u8 bufNo : 1; + volatile u8 firstF : 1; + u8 streamOffF : 1; + u8 readBusyF : 1; + volatile u8 shutdownF : 1; + volatile u8 pauseF : 1; + volatile u8 updateAramF : 1; }; - /* 0x3D */ char unk3D[3]; - /* 0x40 */ s32 unk40; - /* 0x44 */ SND_ADPCMSTREAM_INFO* unk44; - /* 0x48 */ s32 unk48; - /* 0x4C */ u32 unk4C; - /* 0x50 */ u32 unk50; - /* 0X54 */ s32 unk54; - /* 0x58 */ u32 unk58; - /* 0x5C */ void* unk5C; - /* 0X60 */ s32 unk60; + s32 frq; + /* 0x44 */ SND_ADPCMSTREAM_INFO* adpcmInfo; + /* 0x48 */ s32 streamBaseOfs; + /* 0x4C */ u32 streamPos; + /* 0x50 */ u32 loopLen; + /* 0X54 */ s32 loopEndOfs; + /* 0x58 */ u32 streamReadSize; + /* 0x5C */ void* streamReadBuf; + /* 0X60 */ s32 streamPosStart; /* 0x64 */ u32 unk64; /* 0x68 */ s32 unk68; /* 0x6C */ s32 unk6C; - /* 0x70 */ DVDFileInfo unk70; -} msmStreamUnk20Struct; // Size 0xAC + /* 0x70 */ DVDFileInfo file; +} MSM_STREAM_SLOT; // Size 0xAC + +static struct { + /* 0x00 */ s32 sampleFrq; + /* 0x04 */ u32 bufSize; + /* 0x08 */ s32 frq; + /* 0x0C */ s32 pdtEntryNum; + /* 0x10 */ s8 time; + /* 0x11 */ u8 masterVol; + /* 0x12 */ u8 outputMode; + /* 0x14 */ u32* streamPackList; + /* 0x18 */ s8* streamPackFlag; + /* 0x1C */ SND_ADPCMSTREAM_INFO* adpcmParam; + /* 0x20 */ MSM_STREAM_SLOT* slot; + MSM_STREAM_HEADER header ATTRIBUTE_ALIGN(32); +} StreamInfo; // Size 0x60 typedef struct { - /* 0x00 */ s32 unk00; - /* 0x04 */ u32 unk04; - /* 0x08 */ s32 unk08; - /* 0x0C */ s32 unk0C; - /* 0x10 */ s8 unk10; - /* 0x11 */ u8 unk11; - /* 0x12 */ u8 unk12; - /* 0x13 */ char unk13[1]; - /* 0x14 */ u32* unk14; - /* 0x18 */ s8* unk18; - /* 0x1C */ SND_ADPCMSTREAM_INFO* unk1C; - /* 0x20 */ msmStreamUnk20Struct* unk20; - /* 0x24 */ char unk24[0x1C]; - /* 0x40 */ s16 unk40; - /* 0x42 */ s16 unk42; - /* 0x44 */ s32 unk44; - /* 0x48 */ s32 unk48; - /* 0x4C */ s32 unk4C; - /* 0x50 */ s32 unk50; - /* 0x54 */ s32 unk54; - /* 0x58 */ s32 unk58; - /* 0x5C */ s32 unk5C; -} msmStreamStruct; // Size 0x60 + /* 0x00 */ u8 vol; + /* 0x01 */ u8 pan; + /* 0x02 */ u8 span; + /* 0x03 */ u8 auxA; + /* 0x04 */ u8 auxB; + /* 0x08 */ s32 sampleOfs; +} STREAM_PARAM; -typedef struct { - /* 0x00 */ s32 unk00; - /* 0x04 */ s16 unk04; - /* 0x06 */ char unk06[2]; -} StructSlotInitInnerArg1; // Size 8 - -typedef struct { - /* 0x00 */ s8 unk00; - /* 0x01 */ s8 unk01; - /* 0x02 */ s8 unk02; - /* 0x03 */ s8 unk03; - /* 0x04 */ s8 unk04; - /* 0x05 */ s8 unk05; - /* 0x06 */ u16 unk06; - /* 0x08 */ u32 unk08; - /* 0x0C */ u32 unk0C; - /* 0x10 */ StructSlotInitInnerArg1 unk10[2]; -} StructSlotInitArg1; // Size unknown - -typedef struct { - /* 0x00 */ u8 unk00; - /* 0x01 */ u8 unk01; - /* 0x02 */ u8 unk02; - /* 0x03 */ u8 unk03; - /* 0x04 */ u8 unk04; - /* 0x05 */ char unk05[3]; - /* 0x08 */ s32 unk08; -} StructSlotInitArg2; // Size unknown - -static void msmStreamPauseFade(s32 arg0); -static void msmStreamFade(s32 arg0); +static void msmStreamPauseFade(s32 streamNo); +static void msmStreamFade(s32 streamNo); static void msmStreamDvdCallback(s32 result, DVDFileInfo* fileInfo); static void msmStreamStopSub(s32 streamNo, s32 speed); -static void msmStreamDvdCallback2(s32 arg0, DVDFileInfo* arg1); +static void msmStreamDvdCallback2(s32 result, DVDFileInfo* fileInfo); static u32 msmStreamUpdateFunc(void* buffer1, u32 len1, void* buffer2, u32 len2, u32 user); -static s32 msmStreamSlotInit(msmStreamUnk20Struct* arg0, StructSlotInitArg1* arg1, StructSlotInitArg2* arg2, s32 arg3); +static s32 msmStreamSlotInit(MSM_STREAM_SLOT* arg0, MSM_STREAM_PACK* arg1, STREAM_PARAM* arg2, s32 arg3); +static void msmStreamPauseOff(s32 streamNo); +static void msmStreamPauseOn(s32 streamNo, s32 arg1); +static s32 msmStreamPackStartStereo(s32 streamId, MSM_STREAMPARAM *param, s32 sampleOfs); +static s32 msmStreamPackStartMono(s32 streamId, MSM_STREAMPARAM *param, s32 sampleOfs); +static void msmStreamSlotOff(s32 streamNo); -static msmStreamStruct StreamInfo ATTRIBUTE_ALIGN(32); +static inline void msmStreamClose(s32 streamNo) { + MSM_STREAM_SLOT* slot; -static inline void msmStreamInline00(s32 streamNo) { - msmStreamUnk20Struct* temp_ptr; - - temp_ptr = &StreamInfo.unk20[streamNo]; - DVDClose(&temp_ptr->unk70); - temp_ptr->unk06 = 0; + slot = &StreamInfo.slot[streamNo]; + DVDClose(&slot->file); + slot->status = 0; } s32 msmStreamGetStatus(int streamNo) { - msmStreamUnk20Struct* temp_r3; - s32 var_r4; + MSM_STREAM_SLOT* slot; + s32 status; - if (streamNo < 0 || streamNo >= StreamInfo.unk44) { + if (streamNo < 0 || streamNo >= StreamInfo.header.chanMax) { return 0; } - temp_r3 = &StreamInfo.unk20[streamNo]; - switch (temp_r3->unk06) { + slot = &StreamInfo.slot[streamNo]; + switch (slot->status) { case 4: - var_r4 = 2; + status = MSM_STREAM_PLAY; break; case 2: case 3: - var_r4 = 4; + status = MSM_STREAM_PAUSEOUT; break; case 5: - var_r4 = 1; + status = MSM_STREAM_STOP; break; default: - var_r4 = 0; + status = MSM_STREAM_DONE; break; } - if (temp_r3->unk3C_5 == 1) { - var_r4 = 3; + if (slot->pauseF == TRUE) { + status = MSM_STREAM_PAUSEIN; } - if (var_r4 == 0 && temp_r3->unk0E != -1) { - var_r4 = msmStreamGetStatus(temp_r3->unk0E); + if (status == MSM_STREAM_DONE && slot->slotL != -1) { + status = msmStreamGetStatus(slot->slotL); } - return var_r4; + return status; } -static inline void msmStreamInline04(msmStreamUnk20Struct* arg0) { - s32 var_r10; - s32 temp_var; +static void msmStreamUpdateBaseParam(MSM_STREAM_SLOT* slot) { + s32 pan; + s32 vol; - if (StreamInfo.unk12 != 0) { - var_r10 = arg0->unk0C + arg0->unk0D - 0x40; - if (var_r10 < 0) { - var_r10 = 0; + if (StreamInfo.outputMode != 0) { + pan = slot->panBase + slot->pan - 64; + if (pan < 0) { + pan = 0; } - if (var_r10 > 0x7F) { - var_r10 = 0x7F; + if (pan > 127) { + pan = 127; } } else { - var_r10 = 0x40; + pan = 64; } - temp_var = arg0->unk08 * arg0->unk09 * arg0->unk0A * arg0->unk0B / 2048383; - sndStreamMixParameterEx(arg0->unk00, temp_var * StreamInfo.unk11 / 127, var_r10, arg0->unk2C, arg0->unk2D, arg0->unk2E); + vol = slot->volBase * slot->vol * slot->volFade * slot->pauseVol / (127*127*127); + sndStreamMixParameterEx(slot->stid, vol * StreamInfo.masterVol / 127, pan, slot->span, slot->auxA, slot->auxB); } -void msmStreamSetMasterVolume(s32 arg0) { - s32 var_r27; +void msmStreamSetMasterVolume(s32 vol) { + s32 i; - StreamInfo.unk11 = arg0 & 0x7F; - for (var_r27 = 0; var_r27 < StreamInfo.unk44; var_r27++) { - if (StreamInfo.unk20[var_r27].unk06 != 0) { - msmStreamInline04(&StreamInfo.unk20[var_r27]); + StreamInfo.masterVol = vol & 127; + for (i = 0; i < StreamInfo.header.chanMax; i++) { + if (StreamInfo.slot[i].status != 0) { + msmStreamUpdateBaseParam(&StreamInfo.slot[i]); } } } -static inline BOOL msmStreamInline01(msmStreamUnk20Struct* arg0) { - if (arg0->unk06 != 0 || arg0->unk3C_5 != 0) { +static inline BOOL msmStreamIsPlay(MSM_STREAM_SLOT* slot) { + if (slot->status != 0 || slot->pauseF != 0) { return TRUE; } else { return FALSE; } } -void msmStreamStopAll(s32 speed) { - msmStreamUnk20Struct* temp_r29; - s32 var_r28; +void msmStreamStopAll(s32 speed) +{ + MSM_STREAM_SLOT* slot; + s32 i; msmSysIrqDisable(); - for (var_r28 = 0; var_r28 < StreamInfo.unk44; var_r28++) { - if (var_r28 >= 0 && var_r28 < StreamInfo.unk44) { - temp_r29 = &StreamInfo.unk20[var_r28]; - if (msmStreamInline01(temp_r29)) { + for (i = 0; i < StreamInfo.header.chanMax; i++) { + if (i >= 0 && i < StreamInfo.header.chanMax) { + slot = &StreamInfo.slot[i]; + if (msmStreamIsPlay(slot)) { msmSysIrqDisable(); - msmStreamStopSub(var_r28, speed); - if (temp_r29->unk0E != -1) { - msmStreamStopSub(temp_r29->unk0E, speed); + msmStreamStopSub(i, speed); + if (slot->slotL != -1) { + msmStreamStopSub(slot->slotL, speed); } - if (temp_r29->unk0F != -1) { - msmStreamStopSub(temp_r29->unk0F, speed); + if (slot->slotR != -1) { + msmStreamStopSub(slot->slotR, speed); } msmSysIrqEnable(); } @@ -220,38 +192,38 @@ void msmStreamStopAll(s32 speed) { msmSysIrqEnable(); } -static inline void msmStreamInline03(int streamNo, s32 speed) { - msmStreamUnk20Struct* temp_ptr = &StreamInfo.unk20[streamNo]; +static inline void msmStreamSetFade(int streamNo, s32 speed) { + MSM_STREAM_SLOT* slot = &StreamInfo.slot[streamNo]; - if (temp_ptr->unk3C_5 != 0) { - temp_ptr->unk3C_5 = 0; + if (slot->pauseF != 0) { + slot->pauseF = 0; speed = 0; } - temp_ptr->unk24 = speed / 15; - if (temp_ptr->unk24 != 0) { - temp_ptr->unk28 = temp_ptr->unk24; - temp_ptr->unk0A = 0x7F; + slot->fadeMaxTime = speed / 15; + if (slot->fadeMaxTime != 0) { + slot->fadeTime = slot->fadeMaxTime; + slot->volFade = 127; } else { msmStreamSlotOff(streamNo); } } s32 msmStreamStop(int streamNo, s32 speed) { - msmStreamUnk20Struct* temp_r31; + MSM_STREAM_SLOT* slot; s32 unused; - if (streamNo < 0 || streamNo >= StreamInfo.unk44) { - return MSM_ERR_8C; + if (streamNo < 0 || streamNo >= StreamInfo.header.chanMax) { + return MSM_ERR_RANGE_STREAM; } - temp_r31 = &StreamInfo.unk20[streamNo]; - if (msmStreamInline01(temp_r31)) { + slot = &StreamInfo.slot[streamNo]; + if (msmStreamIsPlay(slot)) { msmSysIrqDisable(); - msmStreamInline03(streamNo, speed); - if (temp_r31->unk0E != -1) { - msmStreamInline03(temp_r31->unk0E, speed); + msmStreamSetFade(streamNo, speed); + if (slot->slotL != -1) { + msmStreamSetFade(slot->slotL, speed); } - if (temp_r31->unk0F != -1) { - msmStreamInline03(temp_r31->unk0F, speed); + if (slot->slotR != -1) { + msmStreamSetFade(slot->slotR, speed); } msmSysIrqEnable(); } @@ -259,13 +231,13 @@ s32 msmStreamStop(int streamNo, s32 speed) { } int msmStreamPlay(int streamId, MSM_STREAMPARAM* streamParam) { - if (streamId < 0 || streamId >= StreamInfo.unk42) { + if (streamId < 0 || streamId >= StreamInfo.header.streamMax) { return MSM_ERR_INVALIDID; } - if (StreamInfo.unk14[streamId] == 0) { + if (StreamInfo.streamPackList[streamId] == 0) { return MSM_ERR_REMOVEDID; } - if (StreamInfo.unk18[StreamInfo.unk14[streamId] - StreamInfo.unk58] & 1) { + if (StreamInfo.streamPackFlag[StreamInfo.streamPackList[streamId] - StreamInfo.header.streamPackOfs] & MSM_STREAM_FLAG_STEREO) { return msmStreamPackStartStereo(streamId, streamParam, 0); } else { return msmStreamPackStartMono(streamId, streamParam, 0); @@ -273,785 +245,785 @@ int msmStreamPlay(int streamId, MSM_STREAMPARAM* streamParam) { } void msmStreamPeriodicProc(void) { - msmStreamUnk20Struct* temp_r28; - s32 var_r27; + MSM_STREAM_SLOT* slot; + s32 i; - StreamInfo.unk10 = 0; - for (var_r27 = 0; var_r27 < StreamInfo.unk44; var_r27++) { - temp_r28 = &StreamInfo.unk20[var_r27]; - msmStreamFade(var_r27); - msmStreamPauseOff(var_r27); - msmStreamPauseFade(var_r27); - if (temp_r28->unk06 != 0) { - StreamInfo.unk10++; + StreamInfo.time = 0; + for (i = 0; i < StreamInfo.header.chanMax; i++) { + slot = &StreamInfo.slot[i]; + msmStreamFade(i); + msmStreamPauseOff(i); + msmStreamPauseFade(i); + if (slot->status != 0) { + StreamInfo.time++; } } } -void msmStreamSetOutputMode(s32 arg0) { - s32 var_r27; +void msmStreamSetOutputMode(s32 outputMode) { + s32 i; - StreamInfo.unk12 = arg0; - for (var_r27 = 0; var_r27 < StreamInfo.unk44; var_r27++) { - if (StreamInfo.unk20[var_r27].unk06 != 0) { - msmStreamInline04(&StreamInfo.unk20[var_r27]); + StreamInfo.outputMode = outputMode; + for (i = 0; i < StreamInfo.header.chanMax; i++) { + if (StreamInfo.slot[i].status != 0) { + msmStreamUpdateBaseParam(&StreamInfo.slot[i]); } } } void msmStreamAmemFree(void) { - u32 var_r29; + u32 i; - for (var_r29 = 0; var_r29 < StreamInfo.unk44; var_r29++) { - sndStreamFree(StreamInfo.unk20[var_r29].unk00); + for (i = 0; i < StreamInfo.header.chanMax; i++) { + sndStreamFree(StreamInfo.slot[i].stid); } } s32 msmStreamAmemAlloc(void) { - u32 var_r25; - msmStreamUnk20Struct* temp_r24; + u32 i; + MSM_STREAM_SLOT* slot; - for (var_r25 = 0; var_r25 < StreamInfo.unk44; var_r25++) { - temp_r24 = &StreamInfo.unk20[var_r25]; - temp_r24->unk06 = 0; - temp_r24->unk0F = -1; - temp_r24->unk0E = -1; - temp_r24->unk30 = msmMemAlloc(StreamInfo.unk04); - if (temp_r24->unk30 == NULL) { + for (i = 0; i < StreamInfo.header.chanMax; i++) { + slot = &StreamInfo.slot[i]; + slot->status = 0; + slot->slotR = -1; + slot->slotL = -1; + slot->streamBuf = msmMemAlloc(StreamInfo.bufSize); + if (slot->streamBuf == NULL) { return MSM_ERR_OUTOFMEM; } - temp_r24->unk34 = StreamInfo.unk04; - temp_r24->unk38 = StreamInfo.unk08; - temp_r24->unk00 = sndStreamAllocEx(0xFF, temp_r24->unk30, temp_r24->unk38, StreamInfo.unk48, 0, 0x40, 0, 0, 0, 0, 0x30001, msmStreamUpdateFunc, var_r25, NULL); - if (temp_r24->unk00 == -1) { + slot->streamBufSize = StreamInfo.bufSize; + slot->streamFrq = StreamInfo.frq; + slot->stid = sndStreamAllocEx(0xFF, slot->streamBuf, slot->streamFrq, StreamInfo.header.sampleFrq, 0, 64, 0, 0, 0, 0, 0x30001, msmStreamUpdateFunc, i, NULL); + if (slot->stid == -1) { return MSM_ERR_STREAMALLOC_FAIL; } } - return StreamInfo.unk04 * StreamInfo.unk44; + return StreamInfo.bufSize * StreamInfo.header.chanMax; } -s32 msmStreamInit(char* arg0) { - DVDFileInfo spC; - s32 temp_r27; +s32 msmStreamInit(char *pdtPath) { + DVDFileInfo file; + s32 size; - StreamInfo.unk42 = 0; - StreamInfo.unk44 = 0; - StreamInfo.unk11 = 0x7F; - StreamInfo.unk10 = 0; - if (arg0 == NULL) { + StreamInfo.header.streamMax = 0; + StreamInfo.header.chanMax = 0; + StreamInfo.masterVol = 127; + StreamInfo.time = 0; + if (pdtPath == NULL) { return 0; } - StreamInfo.unk0C = DVDConvertPathToEntrynum(arg0); - if (StreamInfo.unk0C == -1) { + StreamInfo.pdtEntryNum = DVDConvertPathToEntrynum(pdtPath); + if (StreamInfo.pdtEntryNum == -1) { return MSM_ERR_OPENFAIL; } - if (!msmFioOpen(StreamInfo.unk0C, &spC)) { + if (!msmFioOpen(StreamInfo.pdtEntryNum, &file)) { return MSM_ERR_OPENFAIL; } - if (msmFioRead(&spC, &StreamInfo.unk40, 0x20, 0) < 0) { - msmFioClose(&spC); + if (msmFioRead(&file, &StreamInfo.header, 0x20, 0) < 0) { + msmFioClose(&file); return MSM_ERR_READFAIL; } - if (StreamInfo.unk40 != 1) { - msmFioClose(&spC); + if (StreamInfo.header.version != MSM_PDT_FILE_VERSION) { + msmFioClose(&file); return MSM_ERR_INVALIDFILE; } - if (StreamInfo.unk42 != 0) { - temp_r27 = (StreamInfo.unk54 - StreamInfo.unk50 + 0x1F) & ~0x1F; - StreamInfo.unk14 = msmMemAlloc(temp_r27); - if (StreamInfo.unk14 == NULL) { - msmFioClose(&spC); + if (StreamInfo.header.streamMax != 0) { + size = (StreamInfo.header.adpcmParamOfs - StreamInfo.header.streamPackListOfs + 0x1F) & ~0x1F; + StreamInfo.streamPackList = msmMemAlloc(size); + if (StreamInfo.streamPackList == NULL) { + msmFioClose(&file); return MSM_ERR_OUTOFMEM; } - if (msmFioRead(&spC, StreamInfo.unk14, temp_r27, StreamInfo.unk50) < 0) { - msmFioClose(&spC); + if (msmFioRead(&file, StreamInfo.streamPackList, size, StreamInfo.header.streamPackListOfs) < 0) { + msmFioClose(&file); return MSM_ERR_READFAIL; } - temp_r27 = (StreamInfo.unk5C - StreamInfo.unk58 + 0x1F) & ~0x1F; - StreamInfo.unk18 = msmMemAlloc(temp_r27); - if (StreamInfo.unk18 == NULL) { - msmFioClose(&spC); + size = (StreamInfo.header.sampleOfs - StreamInfo.header.streamPackOfs + 0x1F) & ~0x1F; + StreamInfo.streamPackFlag = msmMemAlloc(size); + if (StreamInfo.streamPackFlag == NULL) { + msmFioClose(&file); return MSM_ERR_OUTOFMEM; } - if (msmFioRead(&spC, StreamInfo.unk18, temp_r27, StreamInfo.unk58) < 0) { - msmFioClose(&spC); + if (msmFioRead(&file, StreamInfo.streamPackFlag, size, StreamInfo.header.streamPackOfs) < 0) { + msmFioClose(&file); return MSM_ERR_READFAIL; } - temp_r27 = StreamInfo.unk58 - StreamInfo.unk54; - StreamInfo.unk1C = msmMemAlloc(temp_r27); - if (StreamInfo.unk1C == NULL) { - msmFioClose(&spC); + size = StreamInfo.header.streamPackOfs - StreamInfo.header.adpcmParamOfs; + StreamInfo.adpcmParam = msmMemAlloc(size); + if (StreamInfo.adpcmParam == NULL) { + msmFioClose(&file); return MSM_ERR_OUTOFMEM; } - if (msmFioRead(&spC, StreamInfo.unk1C, temp_r27, StreamInfo.unk54) < 0) { - msmFioClose(&spC); + if (msmFioRead(&file, StreamInfo.adpcmParam, size, StreamInfo.header.adpcmParamOfs) < 0) { + msmFioClose(&file); return MSM_ERR_READFAIL; } } - msmFioClose(&spC); - StreamInfo.unk00 = (StreamInfo.unk48 + 13) / 14; - StreamInfo.unk04 = (8 * StreamInfo.unk00 * StreamInfo.unk4C + 0x3F) & ~0x3F; - StreamInfo.unk08 = (StreamInfo.unk04 / 8) * 14; - StreamInfo.unk20 = msmMemAlloc(StreamInfo.unk44 * sizeof(*StreamInfo.unk20)); - memset(StreamInfo.unk20, 0, StreamInfo.unk44 * sizeof(*StreamInfo.unk20)); + msmFioClose(&file); + StreamInfo.sampleFrq = (StreamInfo.header.sampleFrq + (SND_STREAM_ADPCM_BLKSIZE-1)) / SND_STREAM_ADPCM_BLKSIZE ; + StreamInfo.bufSize = (8 * StreamInfo.sampleFrq * StreamInfo.header.maxBufs + 0x3F) & ~0x3F; + StreamInfo.frq = (StreamInfo.bufSize / SND_STREAM_ADPCM_BLKBYTES ) * SND_STREAM_ADPCM_BLKSIZE; + StreamInfo.slot = msmMemAlloc(StreamInfo.header.chanMax * sizeof(*StreamInfo.slot)); + memset(StreamInfo.slot, 0, StreamInfo.header.chanMax * sizeof(*StreamInfo.slot)); return 0; } -void msmStreamPauseOff(s32 arg0) { - msmStreamUnk20Struct* temp_r31; - u32 temp_r3; - u32 var_r30; +static void msmStreamPauseOff(s32 streamNo) { + MSM_STREAM_SLOT* slot; + u32 ofs; + u32 readSize; - temp_r31 = &StreamInfo.unk20[arg0]; - if (temp_r31->unk14 == 0) { + slot = &StreamInfo.slot[streamNo]; + if (slot->pauseTime == 0) { return; } - if (temp_r31->unk3C_5 == 0) { - temp_r31->unk14 = 0; + if (slot->pauseF == 0) { + slot->pauseTime = 0; return; } - if (temp_r31->unk18 != 0) { - temp_r31->unk18 = -(temp_r31->unk14 + 1); - if (temp_r31->unk18 == 0) { - temp_r31->unk0B = 0x7F; - msmStreamInline04(temp_r31); + if (slot->pauseTimeMax != 0) { + slot->pauseTimeMax = -(slot->pauseTime + 1); + if (slot->pauseTimeMax == 0) { + slot->pauseVol = 127; + msmStreamUpdateBaseParam(slot); } - temp_r31->unk14 = 0; - temp_r31->unk3C_5 = 0; - } else if (temp_r31->unk06 == 0 && DVDFastOpen(StreamInfo.unk0C, &temp_r31->unk70) == TRUE) { - if (--temp_r31->unk14 != 0) { - temp_r31->unk18 = -temp_r31->unk14; - temp_r31->unk1C = 0; - temp_r31->unk0B = 0; + slot->pauseTime = 0; + slot->pauseF = 0; + } else if (slot->status == 0 && DVDFastOpen(StreamInfo.pdtEntryNum, &slot->file) == TRUE) { + if (--slot->pauseTime != 0) { + slot->pauseTimeMax = -slot->pauseTime; + slot->fadeVol = 0; + slot->pauseVol = 0; } else { - temp_r31->unk0B = 0x7F; + slot->pauseVol = 127; } - temp_r31->unk14 = 0; - temp_r31->unk3C_1 = 1; - temp_r31->unk3C_2 = 0; - temp_r31->unk3C_4 = 0; - temp_r31->unk3C_5 = 0; - temp_r31->unk3C_6 = 0; - temp_r31->unk3C_0 = 1; - temp_r31->unk64 = temp_r31->unk68 = (temp_r31->unk10 / 8) * 14; - temp_r31->unk6C = 0; - temp_r31->unk4C = temp_r31->unk10; - var_r30 = temp_r31->unk34 / 2; - if ((temp_r3 = temp_r31->unk50 - temp_r31->unk4C) < temp_r31->unk34 / 2) { - var_r30 = temp_r3; - temp_r31->unk58 = temp_r31->unk34 / 2 - temp_r3; - temp_r31->unk5C = (void*) ((u32) temp_r31->unk30 + temp_r3); - memset(temp_r31->unk5C, 0, temp_r31->unk58); + slot->pauseTime = 0; + slot->firstF = TRUE; + slot->streamOffF = 0; + slot->shutdownF = 0; + slot->pauseF = 0; + slot->updateAramF = 0; + slot->bufNo = 1; + slot->unk64 = slot->unk68 = (slot->pauseLen / SND_STREAM_ADPCM_BLKBYTES) * SND_STREAM_ADPCM_BLKSIZE; + slot->unk6C = 0; + slot->streamPos = slot->pauseLen; + readSize = slot->streamBufSize / 2; + if ((ofs = slot->loopLen - slot->streamPos) < slot->streamBufSize / 2) { + readSize = ofs; + slot->streamReadSize = slot->streamBufSize / 2 - ofs; + slot->streamReadBuf = (void*) ((u32) slot->streamBuf + ofs); + memset(slot->streamReadBuf, 0, slot->streamReadSize); } - temp_r31->unk06 = 2; - temp_r31->unk4C += var_r30; - temp_r31->unk3C_3 = 1; - DVDReadAsync(&temp_r31->unk70, temp_r31->unk30, var_r30, temp_r31->unk48 + (temp_r31->unk4C - var_r30), msmStreamDvdCallback); + slot->status = 2; + slot->streamPos += readSize; + slot->readBusyF = TRUE; + DVDReadAsync(&slot->file, slot->streamBuf, readSize, slot->streamBaseOfs + (slot->streamPos - readSize), msmStreamDvdCallback); } } -static inline void msmStreamInline05(s32 streamNo) { - msmStreamUnk20Struct* temp_r31; +static inline void msmStreamOff(s32 streamNo) { + MSM_STREAM_SLOT* slot; - temp_r31 = &StreamInfo.unk20[streamNo]; - switch (temp_r31->unk06) { + slot = &StreamInfo.slot[streamNo]; + switch (slot->status) { case 2: - temp_r31->unk3C_4 = 1; - temp_r31->unk06 = 5; + slot->shutdownF = TRUE; + slot->status = 5; break; case 3: - msmStreamInline00(streamNo); + msmStreamClose(streamNo); break; case 4: - if (temp_r31->unk3C_2 == 0) { - sndStreamMixParameterEx(temp_r31->unk00, 0, 0x40, 0, 0, 0); - temp_r31->unk3C_2 = 1; - temp_r31->unk06 = 5; + if (slot->streamOffF == FALSE) { + sndStreamMixParameterEx(slot->stid, 0, 64, 0, 0, 0); + slot->streamOffF = TRUE; + slot->status = 5; } break; } } -void msmStreamPauseOn(s32 streamNo, s32 arg1) { - msmStreamUnk20Struct* temp_r31; +static void msmStreamPauseOn(s32 streamNo, s32 speed) { + MSM_STREAM_SLOT* slot; - temp_r31 = &StreamInfo.unk20[streamNo]; - temp_r31->unk14 = 0; - if (temp_r31->unk3C_5 != 0) { + slot = &StreamInfo.slot[streamNo]; + slot->pauseTime = 0; + if (slot->pauseF != 0) { return; } - temp_r31->unk3C_5 = 1; - temp_r31->unk18 = arg1 / 15; - if (temp_r31->unk18 != 0) { - temp_r31->unk1C = temp_r31->unk18; - temp_r31->unk0B = 0x7F; + slot->pauseF = TRUE; + slot->pauseTimeMax = speed / 15; + if (slot->pauseTimeMax != 0) { + slot->fadeVol = slot->pauseTimeMax; + slot->pauseVol = 127; return; } - temp_r31->unk10 = ((temp_r31->unk64 / 7) * 4) & ~7; - if (temp_r31->unk07 != 0) { - if (temp_r31->unk10 >= temp_r31->unk50 - temp_r31->unk34 / 4) { - temp_r31->unk10 = 0; + slot->pauseLen = ((slot->unk64 / 7) * 4) & ~7; + if (slot->stereoF != 0) { + if (slot->pauseLen >= slot->loopLen - slot->streamBufSize / 4) { + slot->pauseLen = 0; } - } else if (temp_r31->unk10 >= temp_r31->unk50) { - temp_r31->unk3C_5 = 0; + } else if (slot->pauseLen >= slot->loopLen) { + slot->pauseF = 0; } - msmStreamInline05(streamNo); + msmStreamOff(streamNo); } -static void msmStreamPauseFade(s32 arg0) { - msmStreamUnk20Struct* temp_r5; +static void msmStreamPauseFade(s32 streamNo) { + MSM_STREAM_SLOT* slot; - temp_r5 = &StreamInfo.unk20[arg0]; - if (temp_r5->unk06 != 4) { + slot = &StreamInfo.slot[streamNo]; + if (slot->status != 4) { return; } - if (temp_r5->unk18 > 0) { - if (--temp_r5->unk1C == 0) { - temp_r5->unk18 = 0; - temp_r5->unk3C_5 = 0; - msmStreamPauseOn(arg0, 0); + if (slot->pauseTimeMax > 0) { + if (--slot->fadeVol == 0) { + slot->pauseTimeMax = 0; + slot->pauseF = 0; + msmStreamPauseOn(streamNo, 0); } else { - temp_r5->unk0B = temp_r5->unk1C * 0x7F / temp_r5->unk18; - msmStreamInline04(temp_r5); + slot->pauseVol = slot->fadeVol * 127 / slot->pauseTimeMax; + msmStreamUpdateBaseParam(slot); } - } else if (temp_r5->unk18 < 0) { - if (++temp_r5->unk1C >= -temp_r5->unk18) { - temp_r5->unk18 = 0; - temp_r5->unk0B = 0x7F; - msmStreamInline04(temp_r5); + } else if (slot->pauseTimeMax < 0) { + if (++slot->fadeVol >= -slot->pauseTimeMax) { + slot->pauseTimeMax = 0; + slot->pauseVol = 127; + msmStreamUpdateBaseParam(slot); } else { - temp_r5->unk0B = temp_r5->unk1C * 0x7F / -temp_r5->unk18; - msmStreamInline04(temp_r5); + slot->pauseVol = slot->fadeVol * 127 / -slot->pauseTimeMax; + msmStreamUpdateBaseParam(slot); } } } -static void msmStreamFade(s32 arg0) { - msmStreamUnk20Struct* temp_r5; +static void msmStreamFade(s32 streamNo) { + MSM_STREAM_SLOT* slot; - temp_r5 = &StreamInfo.unk20[arg0]; - if (temp_r5->unk06 != 4) { + slot = &StreamInfo.slot[streamNo]; + if (slot->status != 4) { return; } - if (temp_r5->unk24 > 0) { - if (--temp_r5->unk28 == 0) { - temp_r5->unk24 = 0; - msmStreamInline03(arg0, 0); + if (slot->fadeMaxTime > 0) { + if (--slot->fadeTime == 0) { + slot->fadeMaxTime = 0; + msmStreamSetFade(streamNo, 0); } else { - temp_r5->unk0A = temp_r5->unk28 * 0x7F / temp_r5->unk24; - msmStreamInline04(temp_r5); + slot->volFade = slot->fadeTime * 127 / slot->fadeMaxTime; + msmStreamUpdateBaseParam(slot); } - } else if (temp_r5->unk24 < 0) { - if (++temp_r5->unk28 >= -temp_r5->unk24) { - temp_r5->unk24 = 0; - temp_r5->unk0A = 0x7F; - msmStreamInline04(temp_r5); + } else if (slot->fadeMaxTime < 0) { + if (++slot->fadeTime >= -slot->fadeMaxTime) { + slot->fadeMaxTime = 0; + slot->volFade = 127; + msmStreamUpdateBaseParam(slot); } else { - temp_r5->unk0A = temp_r5->unk28 * 0x7F / -temp_r5->unk24; - msmStreamInline04(temp_r5); + slot->volFade = slot->fadeTime * 127 / -slot->fadeMaxTime; + msmStreamUpdateBaseParam(slot); } } } static void msmStreamStopSub(s32 streamNo, s32 speed) { - msmStreamUnk20Struct* temp_r31; - s32 var_r4; + MSM_STREAM_SLOT* slot; + s32 time; - var_r4 = speed; - temp_r31 = &StreamInfo.unk20[streamNo]; - if (temp_r31->unk3C_5 != 0) { - temp_r31->unk3C_5 = 0; - var_r4 = 0; + time = speed; + slot = &StreamInfo.slot[streamNo]; + if (slot->pauseF != 0) { + slot->pauseF = 0; + time = 0; } - temp_r31->unk24 = var_r4 / 15; - if (temp_r31->unk24 != 0) { - temp_r31->unk28 = temp_r31->unk24; - temp_r31->unk0A = 0x7F; + slot->fadeMaxTime = time / 15; + if (slot->fadeMaxTime != 0) { + slot->fadeTime = slot->fadeMaxTime; + slot->volFade = 127; return; } - msmStreamInline05(streamNo); + msmStreamOff(streamNo); } -static void msmStreamSetParamSub(msmStreamUnk20Struct* arg0) { - int var_r10; - s32 temp_var; +static void msmStreamSetParamSub(MSM_STREAM_SLOT* slot) { + int pan; + s32 vol; - if (StreamInfo.unk12 != 0) { - var_r10 = arg0->unk0C + arg0->unk0D - 0x40; - if (var_r10 < 0) { - var_r10 = 0; + if (StreamInfo.outputMode != 0) { + pan = slot->panBase + slot->pan - 64; + if (pan < 0) { + pan = 0; } - if (var_r10 > 0x7F) { - var_r10 = 0x7F; + if (pan > 127) { + pan = 127; } } else { - var_r10 = 0x40; + pan = 64; } - temp_var = arg0->unk08 * arg0->unk09 * arg0->unk0A * arg0->unk0B / 2048383; - sndStreamMixParameterEx(arg0->unk00, temp_var * StreamInfo.unk11 / 127, var_r10, arg0->unk2C, arg0->unk2D, arg0->unk2E); + vol = slot->volBase * slot->vol * slot->volFade * slot->pauseVol / (127*127*127); + sndStreamMixParameterEx(slot->stid, vol * StreamInfo.masterVol / 127, pan, slot->span, slot->auxA, slot->auxB); } -s32 msmStreamPackStartStereo(s32 arg0, MSM_STREAMPARAM* arg1, s32 arg2) { - s32 var_r29; - s32 var_r28; - s32 var_r27; - u32 temp_r3_3; - u32 temp_r3_4; - StructSlotInitArg2 sp1C; - msmStreamUnk20Struct* temp_r25; - msmStreamUnk20Struct* temp_r24; - StructSlotInitArg1* temp_r23; +static s32 msmStreamPackStartStereo(s32 streamId, MSM_STREAMPARAM *param, s32 sampleOfs) { + s32 flag; + s32 chanL; + s32 chanR; + u32 sizeL; + u32 sizeR; + STREAM_PARAM streamParam; + MSM_STREAM_SLOT* slotL; + MSM_STREAM_SLOT* slotR; + MSM_STREAM_PACK* pack; - var_r29 = (arg1 != NULL) ? arg1->flag : 0; - if (var_r29 & MSM_STREAMPARAM_CHAN) { - var_r28 = arg1->chan; - var_r27 = arg1->chan + 1; - if (var_r28 < 0 || var_r28 >= StreamInfo.unk44) { - return MSM_ERR_6E; + flag = (param != NULL) ? param->flag : 0; + if (flag & MSM_STREAMPARAM_CHAN) { + chanL = param->chan; + chanR = param->chan + 1; + if (chanL < 0 || chanL >= StreamInfo.header.chanMax) { + return MSM_ERR_CHANLIMIT; } - if (var_r27 < 0 || var_r27 >= StreamInfo.unk44) { - return MSM_ERR_6E; + if (chanR < 0 || chanR >= StreamInfo.header.chanMax) { + return MSM_ERR_CHANLIMIT; } - if (msmStreamInline01(&StreamInfo.unk20[var_r28])) { - return MSM_ERR_6E; + if (msmStreamIsPlay(&StreamInfo.slot[chanL])) { + return MSM_ERR_CHANLIMIT; } - if (msmStreamInline01(&StreamInfo.unk20[var_r27])) { - return MSM_ERR_6E; + if (msmStreamIsPlay(&StreamInfo.slot[chanR])) { + return MSM_ERR_CHANLIMIT; } } else { - for (var_r28 = 0; var_r28 < StreamInfo.unk44; var_r28++) { - if (!msmStreamInline01(&StreamInfo.unk20[var_r28])) { + for (chanL = 0; chanL < StreamInfo.header.chanMax; chanL++) { + if (!msmStreamIsPlay(&StreamInfo.slot[chanL])) { break; } } - for (var_r27 = var_r28 + 1; var_r27 < StreamInfo.unk44; var_r27++) { - if (!msmStreamInline01(&StreamInfo.unk20[var_r27])) { + for (chanR = chanL + 1; chanR < StreamInfo.header.chanMax; chanR++) { + if (!msmStreamIsPlay(&StreamInfo.slot[chanR])) { break; } } - if (var_r28 == StreamInfo.unk44 || var_r27 == StreamInfo.unk44) { - return MSM_ERR_6E; + if (chanL == StreamInfo.header.chanMax || chanR == StreamInfo.header.chanMax) { + return MSM_ERR_CHANLIMIT; } } - temp_r25 = &StreamInfo.unk20[var_r28]; - temp_r24 = &StreamInfo.unk20[var_r27]; - temp_r23 = (StructSlotInitArg1*) ((u32) StreamInfo.unk18 + (StreamInfo.unk14[arg0] - StreamInfo.unk58)); - sp1C.unk00 = (var_r29 & MSM_STREAMPARAM_VOL) ? arg1->vol : 0x7F; - sp1C.unk02 = (var_r29 & MSM_STREAMPARAM_SPAN) ? arg1->span : (s32) temp_r23->unk03; - sp1C.unk03 = (var_r29 & MSM_STREAMPARAM_AUXA) ? arg1->auxA : (s32) temp_r23->unk04; - sp1C.unk04 = (var_r29 & MSM_STREAMPARAM_AUXB) ? arg1->auxB : (s32) temp_r23->unk05; - sp1C.unk08 = arg2; + slotL = &StreamInfo.slot[chanL]; + slotR = &StreamInfo.slot[chanR]; + pack = (MSM_STREAM_PACK*) ((u32) StreamInfo.streamPackFlag + (StreamInfo.streamPackList[streamId] - StreamInfo.header.streamPackOfs)); + streamParam.vol = (flag & MSM_STREAMPARAM_VOL) ? param->vol : 127; + streamParam.span = (flag & MSM_STREAMPARAM_SPAN) ? param->span : (s32) pack->span; + streamParam.auxA = (flag & MSM_STREAMPARAM_AUXA) ? param->auxA : (s32) pack->auxA; + streamParam.auxB = (flag & MSM_STREAMPARAM_AUXB) ? param->auxB : (s32) pack->auxB; + streamParam.sampleOfs = sampleOfs; msmSysIrqDisable(); - sp1C.unk01 = 0; - temp_r3_3 = msmStreamSlotInit(temp_r25, temp_r23, &sp1C, 0); - sp1C.unk01 = 0x7F; - temp_r3_4 = msmStreamSlotInit(temp_r24, temp_r23, &sp1C, 1); - temp_r25->unk04 = arg0; - temp_r24->unk04 = -1; - temp_r25->unk0E = var_r27; - temp_r24->unk0F = var_r28; - if ((var_r29 & MSM_STREAMPARAM_FADESPEED) && arg1->fadeSpeed != 0) { - temp_r25->unk24 = temp_r24->unk24 = -arg1->fadeSpeed / 15; - temp_r25->unk28 = temp_r24->unk28 = 0; - temp_r25->unk0A = temp_r24->unk0A = 0; + streamParam.pan = 0; + sizeL = msmStreamSlotInit(slotL, pack, &streamParam, 0); + streamParam.pan = 127; + sizeR = msmStreamSlotInit(slotR, pack, &streamParam, 1); + slotL->streamId = streamId; + slotR->streamId = -1; + slotL->slotL = chanR; + slotR->slotR = chanL; + if ((flag & MSM_STREAMPARAM_FADESPEED) && param->fadeSpeed != 0) { + slotL->fadeMaxTime = slotR->fadeMaxTime = -param->fadeSpeed / 15; + slotL->fadeTime = slotR->fadeTime = 0; + slotL->volFade = slotR->volFade = 0; } msmSysIrqEnable(); - if (temp_r3_3 == 0) { + if (sizeL == 0) { return 0; } - if (var_r29 & MSM_STREAMPARAM_PAUSE) { - temp_r25->unk3C_5 = temp_r24->unk3C_5 = 1; - temp_r25->unk06 = temp_r24->unk06 = 0; - return var_r28; + if (flag & MSM_STREAMPARAM_PAUSE) { + slotL->pauseF = slotR->pauseF = 1; + slotL->status = slotR->status = 0; + return chanL; } - if (DVDFastOpen(StreamInfo.unk0C, &temp_r25->unk70) != 1) { + if (DVDFastOpen(StreamInfo.pdtEntryNum, &slotL->file) != 1) { return MSM_ERR_OPENFAIL; } - if (DVDFastOpen(StreamInfo.unk0C, &temp_r24->unk70) != 1) { - DVDClose(&temp_r25->unk70); + if (DVDFastOpen(StreamInfo.pdtEntryNum, &slotR->file) != 1) { + DVDClose(&slotL->file); return MSM_ERR_OPENFAIL; } - temp_r25->unk4C += temp_r3_3; - temp_r24->unk4C += temp_r3_4; - temp_r25->unk3C_3 = 1; - DVDReadAsync(&temp_r25->unk70, temp_r25->unk30, temp_r3_3, temp_r25->unk48 + (temp_r25->unk4C - temp_r3_3), msmStreamDvdCallback); - temp_r24->unk3C_3 = 1; - DVDReadAsync(&temp_r24->unk70, temp_r24->unk30, temp_r3_4, temp_r24->unk48 + (temp_r24->unk4C - temp_r3_4), msmStreamDvdCallback); - return var_r28; + slotL->streamPos += sizeL; + slotR->streamPos += sizeR; + slotL->readBusyF = 1; + DVDReadAsync(&slotL->file, slotL->streamBuf, sizeL, slotL->streamBaseOfs + (slotL->streamPos - sizeL), msmStreamDvdCallback); + slotR->readBusyF = 1; + DVDReadAsync(&slotR->file, slotR->streamBuf, sizeR, slotR->streamBaseOfs + (slotR->streamPos - sizeR), msmStreamDvdCallback); + return chanL; } -s32 msmStreamPackStartMono(s32 arg0, MSM_STREAMPARAM* arg1, s32 arg2) { - s32 var_r30; - s32 var_r29; - u32 temp_r3_2; - StructSlotInitArg2 sp18; - msmStreamUnk20Struct* temp_r27; - StructSlotInitArg1* temp_r25; +static s32 msmStreamPackStartMono(s32 streamId, MSM_STREAMPARAM *param, s32 sampleOfs) { + s32 flag; + s32 chan; + u32 size; + STREAM_PARAM streamParam; + MSM_STREAM_SLOT* slot; + MSM_STREAM_PACK* pack; - var_r30 = (arg1 != NULL) ? arg1->flag : 0; - if (var_r30 & MSM_STREAMPARAM_CHAN) { - var_r29 = arg1->chan; - if (var_r29 < 0 || var_r29 >= StreamInfo.unk44) { - return MSM_ERR_6E; + flag = (param != NULL) ? param->flag : 0; + if (flag & MSM_STREAMPARAM_CHAN) { + chan = param->chan; + if (chan < 0 || chan >= StreamInfo.header.chanMax) { + return MSM_ERR_CHANLIMIT; } - if (msmStreamInline01(&StreamInfo.unk20[var_r29])) { - return MSM_ERR_6E; + if (msmStreamIsPlay(&StreamInfo.slot[chan])) { + return MSM_ERR_CHANLIMIT; } } else { - for (var_r29 = 0; var_r29 < StreamInfo.unk44; var_r29++) { - if (!msmStreamInline01(&StreamInfo.unk20[var_r29])) { + for (chan = 0; chan < StreamInfo.header.chanMax; chan++) { + if (!msmStreamIsPlay(&StreamInfo.slot[chan])) { break; } } - if (var_r29 == StreamInfo.unk44) { - return MSM_ERR_6E; + if (chan == StreamInfo.header.chanMax) { + return MSM_ERR_CHANLIMIT; } } - temp_r27 = &StreamInfo.unk20[var_r29]; - temp_r25 = (StructSlotInitArg1*) ((u32) StreamInfo.unk18 + (StreamInfo.unk14[arg0] - StreamInfo.unk58)); - sp18.unk00 = (var_r30 & MSM_STREAMPARAM_VOL) ? arg1->vol : 0x7F; - sp18.unk01 = (var_r30 & MSM_STREAMPARAM_PAN) ? arg1->pan : 0x40; - sp18.unk02 = (var_r30 & MSM_STREAMPARAM_SPAN) ? arg1->span : (s32) temp_r25->unk03; - sp18.unk03 = (var_r30 & MSM_STREAMPARAM_AUXA) ? arg1->auxA : (s32) temp_r25->unk04; - sp18.unk04 = (var_r30 & MSM_STREAMPARAM_AUXB) ? arg1->auxB : (s32) temp_r25->unk05; - sp18.unk08 = arg2; + slot = &StreamInfo.slot[chan]; + pack = (MSM_STREAM_PACK*) ((u32) StreamInfo.streamPackFlag + (StreamInfo.streamPackList[streamId] - StreamInfo.header.streamPackOfs)); + streamParam.vol = (flag & MSM_STREAMPARAM_VOL) ? param->vol : 127; + streamParam.pan = (flag & MSM_STREAMPARAM_PAN) ? param->pan : 64; + streamParam.span = (flag & MSM_STREAMPARAM_SPAN) ? param->span : (s32) pack->span; + streamParam.auxA = (flag & MSM_STREAMPARAM_AUXA) ? param->auxA : (s32) pack->auxA; + streamParam.auxB = (flag & MSM_STREAMPARAM_AUXB) ? param->auxB : (s32) pack->auxB; + streamParam.sampleOfs = sampleOfs; msmSysIrqDisable(); - temp_r3_2 = msmStreamSlotInit(temp_r27, temp_r25, &sp18, 0); - temp_r27->unk04 = arg0; - if ((var_r30 & MSM_STREAMPARAM_FADESPEED) && arg1->fadeSpeed != 0) { - temp_r27->unk24 = -arg1->fadeSpeed / 15; - temp_r27->unk28 = 0; - temp_r27->unk0A = 0; + size = msmStreamSlotInit(slot, pack, &streamParam, 0); + slot->streamId = streamId; + if ((flag & MSM_STREAMPARAM_FADESPEED) && param->fadeSpeed != 0) { + slot->fadeMaxTime = -param->fadeSpeed / 15; + slot->fadeTime = 0; + slot->volFade = 0; } msmSysIrqEnable(); - if (temp_r3_2 == 0) { + if (size == 0) { return 0; } - if (var_r30 & MSM_STREAMPARAM_PAUSE) { - temp_r27->unk3C_5 = 1; - temp_r27->unk06 = 0; - return var_r29; + if (flag & MSM_STREAMPARAM_PAUSE) { + slot->pauseF = TRUE; + slot->status = 0; + return chan; } - if (DVDFastOpen(StreamInfo.unk0C, &temp_r27->unk70) != 1) { + if (DVDFastOpen(StreamInfo.pdtEntryNum, &slot->file) != 1) { return MSM_ERR_OPENFAIL; } - temp_r27->unk4C += temp_r3_2; - temp_r27->unk3C_3 = 1; - DVDReadAsync(&temp_r27->unk70, temp_r27->unk30, temp_r3_2, temp_r27->unk48 + (temp_r27->unk4C - temp_r3_2), msmStreamDvdCallback); - return var_r29; + slot->streamPos += size; + slot->readBusyF = TRUE; + DVDReadAsync(&slot->file, slot->streamBuf, size, slot->streamBaseOfs + (slot->streamPos - size), msmStreamDvdCallback); + return chan; } -// Note: identical to msmStreamInline05. -void msmStreamSlotOff(s32 streamNo) { - msmStreamUnk20Struct* temp_r31; +// Note: identical to msmStreamOff. +static void msmStreamSlotOff(s32 streamNo) { + MSM_STREAM_SLOT* slot; - temp_r31 = &StreamInfo.unk20[streamNo]; - switch (temp_r31->unk06) { + slot = &StreamInfo.slot[streamNo]; + switch (slot->status) { case 2: - temp_r31->unk3C_4 = 1; - temp_r31->unk06 = 5; + slot->shutdownF = 1; + slot->status = 5; break; case 3: - msmStreamInline00(streamNo); + msmStreamClose(streamNo); break; case 4: - if (temp_r31->unk3C_2 == 0) { - sndStreamMixParameterEx(temp_r31->unk00, 0, 0x40, 0, 0, 0); - temp_r31->unk3C_2 = 1; - temp_r31->unk06 = 5; + if (slot->streamOffF == 0) { + sndStreamMixParameterEx(slot->stid, 0, 64, 0, 0, 0); + slot->streamOffF = TRUE; + slot->status = 5; } break; } } -static inline void msmStreamInline06(s32 streamNo) { - msmStreamUnk20Struct* temp_r25; +static void msmStreamShutdown(s32 streamNo) { + MSM_STREAM_SLOT* slot; - temp_r25 = &StreamInfo.unk20[streamNo]; + slot = &StreamInfo.slot[streamNo]; msmStreamSlotOff(streamNo); - sndStreamDeactivate(temp_r25->unk00); - if (temp_r25->unk3C_3 == 0) { - msmStreamInline00(streamNo); + sndStreamDeactivate(slot->stid); + if (slot->readBusyF == 0) { + msmStreamClose(streamNo); } else { - temp_r25->unk3C_4 = 1; + slot->shutdownF = 1; } } -static void msmStreamData(s32 arg0) { - s32 temp_r5; - u32 var_r28; - void* var_r27; - msmStreamUnk20Struct* temp_r26; - s32 var_r24; +static void msmStreamData(s32 streamNo) { + s32 dataSize; + u32 readSize; + void* dataPtr; + MSM_STREAM_SLOT* slot; + s32 off1; - temp_r26 = &StreamInfo.unk20[arg0]; - var_r28 = temp_r5 = temp_r26->unk34 / 2; - var_r27 = (temp_r26->unk3C_0 != 0) - ? (void*) ((u32) temp_r26->unk30 + temp_r5) - : temp_r26->unk30; - temp_r26->unk58 = var_r24 = 0; - if (temp_r26->unk4C + var_r28 > temp_r26->unk50) { - if (temp_r26->unk50 > temp_r26->unk4C) { - var_r28 = temp_r26->unk50 - temp_r26->unk4C; - temp_r26->unk58 = temp_r5 - var_r28; - temp_r26->unk5C = (void*) ((u32) var_r27 + var_r28); - } else if (temp_r26->unk07 != 0) { - temp_r26->unk4C = temp_r26->unk60; + slot = &StreamInfo.slot[streamNo]; + readSize = dataSize = slot->streamBufSize / 2; + dataPtr = (slot->bufNo != 0) + ? (void*) ((u32) slot->streamBuf + dataSize) + : slot->streamBuf; + slot->streamReadSize = off1 = 0; + if (slot->streamPos + readSize > slot->loopLen) { + if (slot->loopLen > slot->streamPos) { + readSize = slot->loopLen - slot->streamPos; + slot->streamReadSize = dataSize - readSize; + slot->streamReadBuf = (void*) ((u32) dataPtr + readSize); + } else if (slot->stereoF != 0) { + slot->streamPos = slot->streamPosStart; } else { - memset(var_r27, 0, temp_r5); - if (temp_r26->unk3C_0 != 0) { - var_r24 = temp_r26->unk38 / 2; + memset(dataPtr, 0, dataSize); + if (slot->bufNo != 0) { + off1 = slot->streamFrq / 2; } - sndStreamARAMUpdate(temp_r26->unk00, var_r24, temp_r26->unk38 / 2, 0, 0); - var_r28 = 0; + sndStreamARAMUpdate(slot->stid, off1, slot->streamFrq / 2, 0, 0); + readSize = 0; } } - if (var_r28 != 0) { - if (DVDGetCommandBlockStatus(&temp_r26->unk70.cb) != 0) { - if (temp_r26->unk3C_6 != 1) { - temp_r26->unk3C_6 = 1; - sndStreamMixParameterEx(temp_r26->unk00, 0, 0x40, 0x40, 0, 0); - memset(temp_r26->unk30, 0, temp_r26->unk34); - sndStreamARAMUpdate(temp_r26->unk00, 0, temp_r26->unk38, 0, 0); + if (readSize != 0) { + if (DVDGetCommandBlockStatus(&slot->file.cb) != 0) { + if (slot->updateAramF != TRUE) { + slot->updateAramF = TRUE; + sndStreamMixParameterEx(slot->stid, 0, 64, 64, 0, 0); + memset(slot->streamBuf, 0, slot->streamBufSize); + sndStreamARAMUpdate(slot->stid, 0, slot->streamFrq, 0, 0); } } else { - if (temp_r26->unk3C_6 == 1) { - temp_r26->unk3C_6 = 0; - msmStreamInline04(temp_r26); + if (slot->updateAramF == TRUE) { + slot->updateAramF = FALSE; + msmStreamUpdateBaseParam(slot); } - temp_r26->unk4C += var_r28; - temp_r26->unk3C_3 = 1; - DVDReadAsync(&temp_r26->unk70, var_r27, var_r28, temp_r26->unk48 + (temp_r26->unk4C - var_r28), msmStreamDvdCallback); + slot->streamPos += readSize; + slot->readBusyF = 1; + DVDReadAsync(&slot->file, dataPtr, readSize, slot->streamBaseOfs + (slot->streamPos - readSize), msmStreamDvdCallback); } - } else if (temp_r26->unk3C_1 != 0) { - temp_r26->unk3C_1= 0; + } else if (slot->firstF != 0) { + slot->firstF= 0; } else { - msmStreamInline06(arg0); + msmStreamShutdown(streamNo); } - temp_r26->unk3C_0 ^= 1; + slot->bufNo ^= 1; } -static inline BOOL msmStreamInline02(s32 streamNo) { - msmStreamUnk20Struct* temp_ptr; +static BOOL msmStreamActivateStream(s32 streamNo) { + MSM_STREAM_SLOT* slot; - temp_ptr = &StreamInfo.unk20[streamNo]; - msmStreamSetParamSub(temp_ptr); - sndStreamFrq(temp_ptr->unk00, temp_ptr->unk40); - sndStreamADPCMParameter(temp_ptr->unk00, temp_ptr->unk44); - sndStreamARAMUpdate(temp_ptr->unk00, 0, temp_ptr->unk38 / 2, 0, 0); - if (sndStreamActivate(temp_ptr->unk00)) { - temp_ptr->unk06 = 4; + slot = &StreamInfo.slot[streamNo]; + msmStreamSetParamSub(slot); + sndStreamFrq(slot->stid, slot->frq); + sndStreamADPCMParameter(slot->stid, slot->adpcmInfo); + sndStreamARAMUpdate(slot->stid, 0, slot->streamFrq / 2, 0, 0); + if (sndStreamActivate(slot->stid)) { + slot->status = 4; msmStreamData(streamNo); return TRUE; } else { - msmStreamInline00(streamNo); + msmStreamClose(streamNo); return FALSE; } } -static void msmStreamDvdCallback(s32 arg0, DVDFileInfo* arg1) { - s32 var_r28; - msmStreamUnk20Struct* temp_r27; +static void msmStreamDvdCallback(s32 result, DVDFileInfo* fileInfo) { + s32 readSize; + MSM_STREAM_SLOT* slot; - for (var_r28 = 0; var_r28 < StreamInfo.unk44; var_r28++) { - if (&StreamInfo.unk20[var_r28].unk70 == arg1) { + for (readSize = 0; readSize < StreamInfo.header.chanMax; readSize++) { + if (&StreamInfo.slot[readSize].file == fileInfo) { break; } } - if (var_r28 == StreamInfo.unk44) { + if (readSize == StreamInfo.header.chanMax) { return; } - temp_r27 = &StreamInfo.unk20[var_r28]; - temp_r27->unk3C_3 = 0; - if (temp_r27->unk3C_4 != 0) { - temp_r27->unk3C_4 = 0; - msmStreamInline00(var_r28); + slot = &StreamInfo.slot[readSize]; + slot->readBusyF = 0; + if (slot->shutdownF != 0) { + slot->shutdownF = 0; + msmStreamClose(readSize); return; } - if (DVDGetCommandBlockStatus(&arg1->cb) == 0) { - switch (temp_r27->unk06) { + if (DVDGetCommandBlockStatus(&fileInfo->cb) == 0) { + switch (slot->status) { case 2: - if (temp_r27->unk0E != -1) { - if (StreamInfo.unk20[temp_r27->unk0E].unk06 != 3) { - temp_r27->unk06 = 3; + if (slot->slotL != -1) { + if (StreamInfo.slot[slot->slotL].status != 3) { + slot->status = 3; break; } - if (!msmStreamInline02(temp_r27->unk0E)) { - temp_r27->unk0E = -1; + if (!msmStreamActivateStream(slot->slotL)) { + slot->slotL = -1; } } - if (temp_r27->unk0F != -1) { - if (StreamInfo.unk20[temp_r27->unk0F].unk06 != 3) { - temp_r27->unk06 = 3; + if (slot->slotR != -1) { + if (StreamInfo.slot[slot->slotR].status != 3) { + slot->status = 3; break; } - if (!msmStreamInline02(temp_r27->unk0F)) { - temp_r27->unk0F = -1; + if (!msmStreamActivateStream(slot->slotR)) { + slot->slotR = -1; } } - if (!msmStreamInline02(var_r28)) { - if (temp_r27->unk0E != -1) { - StreamInfo.unk20[temp_r27->unk0E].unk0F = -1; + if (!msmStreamActivateStream(readSize)) { + if (slot->slotL != -1) { + StreamInfo.slot[slot->slotL].slotR = -1; } - if (temp_r27->unk0F != -1) { - StreamInfo.unk20[temp_r27->unk0F].unk0E = -1; + if (slot->slotR != -1) { + StreamInfo.slot[slot->slotR].slotL = -1; } } break; case 4: - if (temp_r27->unk4C >= temp_r27->unk50) { - if (temp_r27->unk07 != 0) { - temp_r27->unk4C = temp_r27->unk60; - if (temp_r27->unk58 != 0) { - temp_r27->unk3C_3 = 1; - DVDReadAsync(arg1, temp_r27->unk5C, temp_r27->unk58, temp_r27->unk48 + temp_r27->unk4C, msmStreamDvdCallback2); - temp_r27->unk4C += temp_r27->unk58; + if (slot->streamPos >= slot->loopLen) { + if (slot->stereoF != 0) { + slot->streamPos = slot->streamPosStart; + if (slot->streamReadSize != 0) { + slot->readBusyF = 1; + DVDReadAsync(fileInfo, slot->streamReadBuf, slot->streamReadSize, slot->streamBaseOfs + slot->streamPos, msmStreamDvdCallback2); + slot->streamPos += slot->streamReadSize; break; } - } else if (temp_r27->unk58 != 0) { - memset(temp_r27->unk5C, 0, temp_r27->unk58); + } else if (slot->streamReadSize != 0) { + memset(slot->streamReadBuf, 0, slot->streamReadSize); } } - sndStreamARAMUpdate(temp_r27->unk00, (temp_r27->unk3C_0 != 0) ? 0 : temp_r27->unk38 / 2, temp_r27->unk38 / 2, 0, 0); + sndStreamARAMUpdate(slot->stid, (slot->bufNo != 0) ? 0 : slot->streamFrq / 2, slot->streamFrq / 2, 0, 0); break; case 5: - temp_r27->unk3C_4 = 0; - msmStreamInline00(var_r28); + slot->shutdownF = 0; + msmStreamClose(readSize); break; } } else { - if (temp_r27->unk06 == 4) { - sndStreamDeactivate(temp_r27->unk00); + if (slot->status == 4) { + sndStreamDeactivate(slot->stid); } - msmStreamInline00(var_r28); - if (temp_r27->unk0E != -1) { - StreamInfo.unk20[temp_r27->unk0E].unk0F = -1; + msmStreamClose(readSize); + if (slot->slotL != -1) { + StreamInfo.slot[slot->slotL].slotR = -1; } - if (temp_r27->unk0F != -1) { - StreamInfo.unk20[temp_r27->unk0F].unk0E = -1; + if (slot->slotR != -1) { + StreamInfo.slot[slot->slotR].slotL = -1; } } } -static void msmStreamDvdCallback2(s32 arg0, DVDFileInfo* arg1) { - msmStreamUnk20Struct* var_r30; - s32 var_r28; +static void msmStreamDvdCallback2(s32 result, DVDFileInfo* fileInfo) { + MSM_STREAM_SLOT* slot; + s32 readSize; - for (var_r28 = 0; var_r28 < StreamInfo.unk44; var_r28++) { - var_r30 = &StreamInfo.unk20[var_r28]; - if (&var_r30->unk70 == arg1) { + for (readSize = 0; readSize < StreamInfo.header.chanMax; readSize++) { + slot = &StreamInfo.slot[readSize]; + if (&slot->file == fileInfo) { break; } } - if (var_r28 == StreamInfo.unk44) { + if (readSize == StreamInfo.header.chanMax) { return; } - var_r30->unk3C_3 = 0; - if (var_r30->unk3C_4 != 0) { - var_r30->unk3C_4 = 0; - msmStreamInline00(var_r28); - } else if (DVDGetCommandBlockStatus(&arg1->cb) == 0) { - sndStreamARAMUpdate(var_r30->unk00, (var_r30->unk3C_0 != 0) ? 0 : var_r30->unk38 / 2, var_r30->unk38 / 2, 0, 0); + slot->readBusyF = FALSE; + if (slot->shutdownF != 0) { + slot->shutdownF = FALSE; + msmStreamClose(readSize); + } else if (DVDGetCommandBlockStatus(&fileInfo->cb) == 0) { + sndStreamARAMUpdate(slot->stid, (slot->bufNo != 0) ? 0 : slot->streamFrq / 2, slot->streamFrq / 2, 0, 0); } else { - if (var_r30->unk06 == 4) { - sndStreamDeactivate(var_r30->unk00); + if (slot->status == 4) { + sndStreamDeactivate(slot->stid); } - msmStreamInline00(var_r28); - if (var_r30->unk0E != -1) { - StreamInfo.unk20[var_r30->unk0E].unk0F = -1; + msmStreamClose(readSize); + if (slot->slotL != -1) { + StreamInfo.slot[slot->slotL].slotR = -1; } - if (var_r30->unk0F != -1) { - StreamInfo.unk20[var_r30->unk0F].unk0E = -1; + if (slot->slotR != -1) { + StreamInfo.slot[slot->slotR].slotL = -1; } } } static u32 msmStreamUpdateFunc(void* buffer1, u32 len1, void* buffer2, u32 len2, u32 user) { - msmStreamUnk20Struct* temp_r31; - s32 temp_r4; - s32 temp_r0; - s32 var_r3; + MSM_STREAM_SLOT* slot; + s32 len3; + s32 updateLen; + s32 len; - temp_r31 = &StreamInfo.unk20[user]; - if (temp_r31->unk3C_2 != 0) { - msmStreamInline06(user); + slot = &StreamInfo.slot[user]; + if (slot->streamOffF != 0) { + msmStreamShutdown(user); return 0; } - temp_r0 = temp_r31->unk38 / 2; - if (len1 < temp_r0) { - var_r3 = 0; - temp_r31->unk64 = temp_r31->unk68 + (len1 - temp_r31->unk6C); + updateLen = slot->streamFrq / 2; + if (len1 < updateLen) { + len = 0; + slot->unk64 = slot->unk68 + (len1 - slot->unk6C); } else { msmStreamData(user); - var_r3 = temp_r0; - temp_r4 = temp_r31->unk68 + (temp_r0 - temp_r31->unk6C); - temp_r31->unk68 = temp_r4; - temp_r31->unk64 = temp_r4; - temp_r31->unk6C = 0; + len = updateLen; + len3 = slot->unk68 + (updateLen - slot->unk6C); + slot->unk68 = len3; + slot->unk64 = len3; + slot->unk6C = 0; } - if (temp_r31->unk64 >= temp_r31->unk54) { - if (temp_r31->unk07 != 0) { - temp_r31->unk68 = 0; - temp_r31->unk64 -= temp_r31->unk54; - if (len1 < temp_r0) { - temp_r31->unk6C = len1 - temp_r31->unk64; + if (slot->unk64 >= slot->loopEndOfs) { + if (slot->stereoF != 0) { + slot->unk68 = 0; + slot->unk64 -= slot->loopEndOfs; + if (len1 < updateLen) { + slot->unk6C = len1 - slot->unk64; } } else { - temp_r31->unk3C_2 = 1; - temp_r31->unk3C_5 = 0; + slot->streamOffF = 1; + slot->pauseF = 0; } } - return var_r3; + return len; } -static s32 msmStreamSlotInit(msmStreamUnk20Struct* arg0, StructSlotInitArg1* arg1, StructSlotInitArg2* arg2, s32 arg3) { - StructSlotInitInnerArg1* temp_r10; +static s32 msmStreamSlotInit(MSM_STREAM_SLOT *slot, MSM_STREAM_PACK* pack, STREAM_PARAM* param, s32 no) { + MSM_STREAM *stream; s32 temp_r3; - s32 var_r30; + s32 ret; - temp_r10 = &arg1->unk10[arg3]; - arg0->unk08 = arg1->unk01; - arg0->unk09 = arg2->unk00; - arg0->unk0A = arg0->unk0B = 0x7F; - arg0->unk0C = arg1->unk02; - arg0->unk0D = arg2->unk01; - arg0->unk2C = arg2->unk02; - arg0->unk2D = arg2->unk03; - arg0->unk2E = arg2->unk04; - arg0->unk07 = (arg1->unk00 >> 1) & 1; - arg0->unk48 = temp_r10->unk00; - arg0->unk60 = (arg1->unk0C >> 1) & ~7; - arg0->unk40 = arg1->unk06; - arg0->unk44 = &StreamInfo.unk1C[temp_r10->unk04]; - arg0->unk24 = 0; - arg0->unk18 = 0; - arg0->unk14 = 0; - arg0->unk10 = 0; - arg0->unk3C_1 = 1; - arg0->unk3C_2 = 0; - arg0->unk3C_4 = 0; - arg0->unk3C_5 = 0; - arg0->unk3C_6 = 0; - arg0->unk3C_0 = 1; - arg0->unk34 = (StreamInfo.unk48 * StreamInfo.unk4C * 8 / 14 + 0x3F) & ~0x3F; - if (arg0->unk34 > StreamInfo.unk04) { - arg0->unk34 = StreamInfo.unk04; + stream = &pack->stream[no]; + slot->volBase = pack->vol; + slot->vol = param->vol; + slot->volFade = slot->pauseVol = 127; + slot->panBase = pack->pan; + slot->pan = param->pan; + slot->span = param->span; + slot->auxA = param->auxA; + slot->auxB = param->auxB; + slot->stereoF = (pack->flag >> 1) & 1; + slot->streamBaseOfs = stream->sampleOfs; + slot->streamPosStart = (pack->loopOfsStart >> 1) & ~7; + slot->frq = pack->frq; + slot->adpcmInfo = &StreamInfo.adpcmParam[stream->adpcmParamIdx]; + slot->fadeMaxTime = 0; + slot->pauseTimeMax = 0; + slot->pauseTime = 0; + slot->pauseLen = 0; + slot->firstF = 1; + slot->streamOffF = 0; + slot->shutdownF = 0; + slot->pauseF = 0; + slot->updateAramF = 0; + slot->bufNo = 1; + slot->streamBufSize = (StreamInfo.header.sampleFrq * StreamInfo.header.maxBufs * SND_STREAM_ADPCM_BLKBYTES / SND_STREAM_ADPCM_BLKSIZE + 0x3F) & ~0x3F; + if (slot->streamBufSize > StreamInfo.bufSize) { + slot->streamBufSize = StreamInfo.bufSize; } - arg0->unk38 = (arg0->unk34 / 8) * 14; - arg0->unk50 = (arg1->unk08 >> 1) & ~0x1F; - arg0->unk54 = (arg0->unk50 / 8) * 14; - arg0->unk64 = arg0->unk68 = 0; - arg0->unk6C = 0; - arg0->unk0E = -1; - arg0->unk0F = -1; - arg0->unk4C = arg2->unk08; - var_r30 = arg0->unk34 / 2; - if ((temp_r3 = arg0->unk50 - arg0->unk4C) < arg0->unk34 / 2) { - var_r30 = temp_r3; - arg0->unk58 = arg0->unk34 / 2 - temp_r3; - arg0->unk5C = (void*) ((u32) arg0->unk30 + temp_r3); - memset(arg0->unk5C, 0, arg0->unk58); + slot->streamFrq = (slot->streamBufSize / SND_STREAM_ADPCM_BLKBYTES) * SND_STREAM_ADPCM_BLKSIZE; + slot->loopLen = (pack->loopOfsEnd >> 1) & ~0x1F; + slot->loopEndOfs = (slot->loopLen / SND_STREAM_ADPCM_BLKBYTES) * SND_STREAM_ADPCM_BLKSIZE; + slot->unk64 = slot->unk68 = 0; + slot->unk6C = 0; + slot->slotL = -1; + slot->slotR = -1; + slot->streamPos = param->sampleOfs; + ret = slot->streamBufSize / 2; + if ((temp_r3 = slot->loopLen - slot->streamPos) < slot->streamBufSize / 2) { + ret = temp_r3; + slot->streamReadSize = slot->streamBufSize / 2 - temp_r3; + slot->streamReadBuf = (void*) ((u32) slot->streamBuf + temp_r3); + memset(slot->streamReadBuf, 0, slot->streamReadSize); } - arg0->unk06 = 2; - return var_r30; + slot->status = 2; + return ret; } diff --git a/src/msm/msmsys.c b/src/msm/msmsys.c index 6dcd4ac9..916e03b0 100644 --- a/src/msm/msmsys.c +++ b/src/msm/msmsys.c @@ -5,233 +5,236 @@ #include "msm/msmse.h" #include "msm/msmstream.h" -static sysData sys; +static MSM_SYS sys; static void msmSysServer(void) { if (sndIsInstalled() == 1) { - if (--sys.unk4F8 == 0) { - sys.unk4F8 = 3; + if (--sys.timer == 0) { + sys.timer = 3; msmMusPeriodicProc(); msmSePeriodicProc(); msmStreamPeriodicProc(); } } - sys.unk4F4(); + sys.oldAIDCallback(); } -static s32 msmSysSetAuxParam(s32 arg0, s32 arg1) +static s32 msmSysSetAuxParam(s32 auxA, s32 auxB) { s32 unused_1[2]; - SND_AUX_CALLBACK sp20[2]; + SND_AUX_CALLBACK auxcb[2]; s32 unused_2[2]; - unkSubStruct *temp_r4_2; - UnkSndAuxUnion *temp_r3; - u32 var_r0; - s32 var_r23; + MSM_AUXPARAM *auxParam; + MSM_AUX *aux; + u32 result; + s32 i; - if (sys.unk18[0] != -2 && arg0 >= 0) { - sys.unk18[0] = arg0; + if (sys.auxParamNo[0] != MSM_AUXNO_NULL && auxA >= 0) { + sys.auxParamNo[0] = auxA; } - if (sys.unk18[1] != -2 && arg1 >= 0) { - sys.unk18[1] = arg1; + if (sys.auxParamNo[1] != MSM_AUXNO_NULL && auxB >= 0) { + sys.auxParamNo[1] = auxB; } - if (sys.unk18[0] < 0 && sys.unk18[1] < 0) { + if (sys.auxParamNo[0] < 0 && sys.auxParamNo[1] < 0) { return 0; } - for (var_r23 = 0; var_r23 < 2; var_r23++) { - if (sys.unk18[var_r23] < 0) { - sp20[var_r23] = NULL; + for (i = 0; i < 2; i++) { + if (sys.auxParamNo[i] < 0) { + auxcb[i] = NULL; continue; } - temp_r4_2 = &sys.unk14[sys.unk18[var_r23]]; - temp_r3 = &sys.unk1C[var_r23]; - switch (temp_r4_2->unk0) { - case 0: - sp20[var_r23] = sndAuxCallbackReverbHI; - temp_r3->revHi.tempDisableFX = temp_r4_2->rev.tempDisableFX; - temp_r3->revHi.coloration = temp_r4_2->rev.coloration; - temp_r3->revHi.mix = temp_r4_2->rev.mix; - temp_r3->revHi.time = temp_r4_2->rev.time; - temp_r3->revHi.damping = temp_r4_2->rev.damping; - temp_r3->revHi.preDelay = temp_r4_2->rev.preDelay; - temp_r3->revHi.crosstalk = temp_r4_2->rev.crosstalk; - var_r0 = sndAuxCallbackPrepareReverbHI(&temp_r3->revHi); + auxParam = &sys.auxParam[sys.auxParamNo[i]]; + aux = &sys.aux[i]; + switch (auxParam->type) { + case MSM_AUX_REVERBHI: + auxcb[i] = sndAuxCallbackReverbHI; + aux->revHi.tempDisableFX = auxParam->revHi.tempDisableFX; + aux->revHi.coloration = auxParam->revHi.coloration; + aux->revHi.mix = auxParam->revHi.mix; + aux->revHi.time = auxParam->revHi.time; + aux->revHi.damping = auxParam->revHi.damping; + aux->revHi.preDelay = auxParam->revHi.preDelay; + aux->revHi.crosstalk = auxParam->revHi.crosstalk; + result = sndAuxCallbackPrepareReverbHI(&aux->revHi); break; - case 1: - sp20[var_r23] = sndAuxCallbackReverbSTD; - temp_r3->revStd.tempDisableFX = temp_r4_2->rev.tempDisableFX; - temp_r3->revStd.coloration = temp_r4_2->rev.coloration; - temp_r3->revStd.mix = temp_r4_2->rev.mix; - temp_r3->revStd.time = temp_r4_2->rev.time; - temp_r3->revStd.damping = temp_r4_2->rev.damping; - temp_r3->revStd.preDelay = temp_r4_2->rev.preDelay; - var_r0 = sndAuxCallbackPrepareReverbSTD(&temp_r3->revStd); + + case MSM_AUX_REVERBSTD: + auxcb[i] = sndAuxCallbackReverbSTD; + aux->revStd.tempDisableFX = auxParam->revStd.tempDisableFX; + aux->revStd.coloration = auxParam->revStd.coloration; + aux->revStd.mix = auxParam->revStd.mix; + aux->revStd.time = auxParam->revStd.time; + aux->revStd.damping = auxParam->revStd.damping; + aux->revStd.preDelay = auxParam->revStd.preDelay; + result = sndAuxCallbackPrepareReverbSTD(&aux->revStd); break; - case 2: - sp20[var_r23] = sndAuxCallbackChorus; - temp_r3->ch.baseDelay = temp_r4_2->ch.baseDelay; - temp_r3->ch.variation = temp_r4_2->ch.variation; - temp_r3->ch.period = temp_r4_2->ch.period; - var_r0 = sndAuxCallbackPrepareChorus(&temp_r3->ch); + + case MSM_AUX_CHORUS: + auxcb[i] = sndAuxCallbackChorus; + aux->chorus.baseDelay = auxParam->chorus.baseDelay; + aux->chorus.variation = auxParam->chorus.variation; + aux->chorus.period = auxParam->chorus.period; + result = sndAuxCallbackPrepareChorus(&aux->chorus); break; - case 3: - sp20[var_r23] = sndAuxCallbackDelay; - temp_r3->delay.delay[0] = temp_r4_2->delay.delay[0]; - temp_r3->delay.feedback[0] = temp_r4_2->delay.feedback[0]; - temp_r3->delay.output[0] = temp_r4_2->delay.output[0]; - temp_r3->delay.delay[1] = temp_r4_2->delay.delay[1]; - temp_r3->delay.feedback[1] = temp_r4_2->delay.feedback[1]; - temp_r3->delay.output[1] = temp_r4_2->delay.output[1]; - temp_r3->delay.delay[2] = temp_r4_2->delay.delay[2]; - temp_r3->delay.feedback[2] = temp_r4_2->delay.feedback[2]; - temp_r3->delay.output[2] = temp_r4_2->delay.output[2]; - var_r0 = sndAuxCallbackPrepareDelay(&temp_r3->delay); + + case MSM_AUX_DELAY: + auxcb[i] = sndAuxCallbackDelay; + aux->delay.delay[0] = auxParam->delay.delay[0]; + aux->delay.feedback[0] = auxParam->delay.feedback[0]; + aux->delay.output[0] = auxParam->delay.output[0]; + aux->delay.delay[1] = auxParam->delay.delay[1]; + aux->delay.feedback[1] = auxParam->delay.feedback[1]; + aux->delay.output[1] = auxParam->delay.output[1]; + aux->delay.delay[2] = auxParam->delay.delay[2]; + aux->delay.feedback[2] = auxParam->delay.feedback[2]; + aux->delay.output[2] = auxParam->delay.output[2]; + result = sndAuxCallbackPrepareDelay(&aux->delay); break; } - if (var_r0 == 0) { - return 1; + if (result == FALSE) { + return TRUE; } } - sndSetAuxProcessingCallbacks(0, sp20[0], &sys.unk1C[0], 0xFF, 0, sp20[1], &sys.unk1C[1], 0xFF, 0); - return 0; + sndSetAuxProcessingCallbacks(0, auxcb[0], &sys.aux[0], 0xFF, 0, auxcb[1], &sys.aux[1], 0xFF, 0); + return FALSE; } static s32 msmSysLoadBaseGroup(void *buf) { - DVDFileInfo spC; - s32 var_r28; - unkStruct3 *temp_r27; - unkStruct4 *temp_r25; + DVDFileInfo file; + s32 i; + MSM_GRP_HEAD *grpData; + MSM_GRP_INFO *grpInfo; - if (msmFioOpen(sys.unk0, &spC) != 1) { + if (msmFioOpen(sys.msmEntryNum, &file) != TRUE) { return MSM_ERR_OPENFAIL; } - for (var_r28 = 0; var_r28 < sys.unk3F4; var_r28++) { - temp_r27 = sys.unk3F8[var_r28]; - temp_r25 = &sys.unk3EC[sys.unk10->unk29[var_r28]]; - if (msmFioRead(&spC, temp_r27, temp_r25->unk8, temp_r25->unk4 + sys.unkC->unk38) < 0) { - msmFioClose(&spC); + for(i = 0; i < sys.baseGrpNum; i++) { + grpData = sys.grpData[i]; + grpInfo = &sys.grpInfo[sys.info->baseGrp[i]]; + if (msmFioRead(&file, grpData, grpInfo->dataSize, grpInfo->dataOfs + sys.header->grpDataOfs) < 0) { + msmFioClose(&file); return MSM_ERR_READFAIL; } - if (msmFioRead(&spC, buf, temp_r25->unk10, temp_r25->unkC + sys.unkC->unk40) < 0) { - msmFioClose(&spC); + if (msmFioRead(&file, buf, grpInfo->sampSize, grpInfo->sampOfs + sys.header->sampOfs) < 0) { + msmFioClose(&file); return MSM_ERR_READFAIL; } - if (!sndPushGroup((void*) (temp_r27->unk4 + (u32) temp_r27), temp_r25->unk0, buf, - (void*) (temp_r27->unk8 + (u32) temp_r27), (void*) (temp_r27->unk0 + (u32) temp_r27))) + if (!sndPushGroup((void*) (grpData->projOfs + (u32) grpData), grpInfo->gid, buf, + (void*) (grpData->sdirOfs + (u32) grpData), (void*) (grpData->poolOfs + (u32) grpData))) { - msmFioClose(&spC); - return MSM_ERR_20; + msmFioClose(&file); + return MSM_ERR_GRP_FAILPUSH; } - sys.unk8 += temp_r25->unk10; + sys.aramP += grpInfo->sampSize; } - msmFioClose(&spC); + msmFioClose(&file); return 0; } -s32 msmSysSearchGroupStack(s32 arg0, s32 arg1) +s32 msmSysSearchGroupStack(s32 grpId, s32 no) { - UnkStructSys43C *var_r3; - u32 var_r5; - s32 var_r6; - s32 var_r7; - s32 var_r8; - s32 var_r9; - s32 var_r0; + MSM_GRP_STACK *stack; + u32 stackNo; + s32 i; + s32 stackNoB; + s32 stackNoA; + s32 maxNo; + s32 stackMax; - var_r8 = -1; - var_r9 = 0; - if (sys.unk3EC[arg0].unk2 == 0) { - var_r3 = sys.unk43C; - var_r0 = sys.unk434; + stackNoA = -1; + maxNo = 0; + if (sys.grpInfo[grpId].stackNo == 0) { + stack = sys.grpStackA; + stackMax = sys.grpStackAMax; } else { - var_r3 = sys.unk474; - var_r0 = sys.unk46C; + stack = sys.grpStackB; + stackMax = sys.grpStackBMax; } - for (var_r6 = 0; var_r6 < var_r0; var_r3++, var_r6++) { - if (var_r6 == arg1) { + for (i = 0; i < stackMax; stack++, i++) { + if (i == no) { continue; } - if ((var_r5 = var_r3->unk04) != 0) { - if (var_r3->unk01 == 0 && var_r5 > var_r9) { - var_r9 = var_r5; - var_r7 = -(var_r6 + 1); + if ((stackNo = stack->num) != 0) { + if (stack->baseGrpF == 0 && stackNo > maxNo) { + maxNo = stackNo; + stackNoB = -(i + 1); } } else { - var_r8 = var_r6; + stackNoA = i; } } - return (var_r8 < 0) ? var_r7 : var_r8; + return (stackNoA < 0) ? stackNoB : stackNoA; } -s32 msmSysGroupInit(DVDFileInfo *arg0) +s32 msmSysGroupInit(DVDFileInfo *file) { - s32 var_r7; - UnkStructSys43C *temp_43C; - unkStruct4 *temp_r20; + s32 i; + MSM_GRP_STACK *stack; + MSM_GRP_INFO *grpInfo; - sys.unk3DC = sys.unk10->unk3; - sys.unk3E0 = 1; - sys.unk3F4 = sys.unk10->unk28; - sys.unk434 = sys.unk10->unk9; - sys.unk435 = 0; - sys.unk436 = 0; - sys.unk46C = sys.unk10->unkA; - sys.unk46D = 0; - sys.unk46E = 0; - if ((sys.unk3EC = msmMemAlloc(sys.unkC->unk24)) == NULL) { + sys.grpMax = sys.info->grpMax; + sys.grpNum = 1; + sys.baseGrpNum = sys.info->baseGrpNum; + sys.grpStackAMax = sys.info->stackDepthA; + sys.grpStackADepth = 0; + sys.grpStackAOfs = 0; + sys.grpStackBMax = sys.info->stackDepthB; + sys.grpStackBDepth = 0; + sys.grpStackBOfs = 0; + if ((sys.grpInfo = msmMemAlloc(sys.header->grpInfoSize)) == NULL) { return MSM_ERR_OUTOFMEM; } - if (msmFioRead(arg0, sys.unk3EC, sys.unkC->unk24, sys.unkC->unk20) < 0) { + if (msmFioRead(file, sys.grpInfo, sys.header->grpInfoSize, sys.header->grpInfoOfs) < 0) { return MSM_ERR_READFAIL; } - if ((sys.unk438 = msmMemAlloc(sys.unk10->unk18 * sys.unk434)) == NULL) { + if ((sys.grpBufA = msmMemAlloc(sys.info->grpBufSizeA * sys.grpStackAMax)) == NULL) { return MSM_ERR_OUTOFMEM; } - if ((sys.unk470 = msmMemAlloc(sys.unk10->unk1C * sys.unk46C)) == NULL) { + if ((sys.grpBufB = msmMemAlloc(sys.info->grpBufSizeB * sys.grpStackBMax)) == NULL) { return MSM_ERR_OUTOFMEM; } - if (sys.unkC->unk54) { - if ((sys.unk3F0 = msmMemAlloc(sys.unkC->unk54)) == NULL) { + if (sys.header->grpSetSize) { + if ((sys.grpSet = msmMemAlloc(sys.header->grpSetSize)) == NULL) { return MSM_ERR_OUTOFMEM; } - if (msmFioRead(arg0, sys.unk3F0, sys.unkC->unk54, sys.unkC->unk50) < 0) { + if (msmFioRead(file, sys.grpSet, sys.header->grpSetSize, sys.header->grpSetOfs) < 0) { return MSM_ERR_READFAIL; } } else { - sys.unk3F0 = NULL; + sys.grpSet = NULL; } - for (var_r7 = 0; var_r7 < sys.unk434; var_r7++) { - temp_43C = &sys.unk43C[var_r7]; - temp_43C->unk00 = temp_43C->unk01 = 0; - temp_43C->unk04 = 0; - temp_43C->unk08 = (void*) ((u32) sys.unk438 + sys.unk10->unk18 * var_r7); + for (i = 0; i < sys.grpStackAMax; i++) { + stack = &sys.grpStackA[i]; + stack->grpId = stack->baseGrpF = 0; + stack->num = 0; + stack->buf = (void*) ((u32) sys.grpBufA + sys.info->grpBufSizeA * i); } - for (var_r7 = 0; var_r7 < sys.unk46C; var_r7++) { - temp_43C = &sys.unk474[var_r7]; - temp_43C->unk00 = temp_43C->unk01 = 0; - temp_43C->unk04 = 0; - temp_43C->unk08 = (void*) ((u32) sys.unk470 + sys.unk10->unk1C * var_r7); + for (i = 0; i < sys.grpStackBMax; i++) { + stack = &sys.grpStackB[i]; + stack->grpId = stack->baseGrpF = 0; + stack->num = 0; + stack->buf = (void*) ((u32) sys.grpBufB + sys.info->grpBufSizeB * i); } - sys.unk3E4 = 0; - for (var_r7 = 0; var_r7 < sys.unk3F4; var_r7++) { - temp_r20 = &sys.unk3EC[sys.unk10->unk29[var_r7]]; - if ((sys.unk3F8[var_r7] = msmMemAlloc(temp_r20->unk8)) == NULL) { + sys.sampSize = 0; + for (i = 0; i < sys.baseGrpNum; i++) { + grpInfo = &sys.grpInfo[sys.info->baseGrp[i]]; + if ((sys.grpData[i] = msmMemAlloc(grpInfo->dataSize)) == NULL) { return MSM_ERR_OUTOFMEM; } - if (sys.unk3E4 < temp_r20->unk10) { - sys.unk3E4 = temp_r20->unk10; + if (sys.sampSize < grpInfo->sampSize) { + sys.sampSize = grpInfo->sampSize; } - temp_r20->unk10 *= -1; + grpInfo->sampSize *= -1; } - sys.unk3E8 = 0; - for (var_r7 = 1; var_r7 < sys.unk3DC; var_r7++) { - temp_r20 = &sys.unk3EC[var_r7]; - if (temp_r20->unk10 < 0) { - temp_r20->unk10 *= -1; - } else if (sys.unk3E8 < temp_r20->unk10) { - sys.unk3E8 = temp_r20->unk10; + sys.sampSizeBase = 0; + for (i = 1; i < sys.grpMax; i++) { + grpInfo = &sys.grpInfo[i]; + if (grpInfo->sampSize < 0) { + grpInfo->sampSize *= -1; + } else if (sys.sampSizeBase < grpInfo->sampSize) { + sys.sampSizeBase = grpInfo->sampSize; } } return 0; @@ -239,88 +242,88 @@ s32 msmSysGroupInit(DVDFileInfo *arg0) void msmSysIrqDisable(void) { - if (sys.unk4EC++ == 0) { - sys.unk4F0 = OSDisableInterrupts(); + if (sys.irqDepth++ == 0) { + sys.irqState = OSDisableInterrupts(); } } void msmSysIrqEnable(void) { - if (sys.unk4EC != 0) { - if (--sys.unk4EC == 0) { - OSRestoreInterrupts(sys.unk4F0); + if (sys.irqDepth != 0) { + if (--sys.irqDepth == 0) { + OSRestoreInterrupts(sys.irqState); } } } -static inline BOOL msmSysInline00(s32 arg0) +static BOOL msmSysCheckBaseGroupNo(s32 grpId) { - s32 var_r6; + s32 i; - for (var_r6 = 0; var_r6 < sys.unk3F4 + sys.unk436 + sys.unk46E; var_r6++) { - if (sys.unk10->unk29[var_r6] == arg0) { + for (i = 0; i < sys.baseGrpNum + sys.grpStackAOfs + sys.grpStackBOfs; i++) { + if (sys.info->baseGrp[i] == grpId) { return TRUE; } } return FALSE; } -BOOL msmSysCheckBaseGroup(s32 arg0) +BOOL msmSysCheckBaseGroup(s32 grpId) { - s32 var_r6; + s32 i; - for (var_r6 = 0; var_r6 < sys.unk3F4 + sys.unk436 + sys.unk46E; var_r6++) { - if (sys.unk3EC[sys.unk10->unk29[var_r6]].unk0 == arg0) { + for (i = 0; i < sys.baseGrpNum + sys.grpStackAOfs + sys.grpStackBOfs; i++) { + if (sys.grpInfo[sys.info->baseGrp[i]].gid == grpId) { return TRUE; } } return FALSE; } -void *msmSysGetGroupDataPtr(s32 arg0) +void *msmSysGetGroupDataPtr(s32 grpId) { - UnkStructSys43C *temp_43C; - s32 var_r6; + MSM_GRP_STACK *grp; + s32 i; - for (var_r6 = 0; var_r6 < sys.unk3F4; var_r6++) { - if (sys.unk10->unk29[var_r6] == arg0) { - return sys.unk3F8[var_r6]; + for (i = 0; i < sys.baseGrpNum; i++) { + if (sys.info->baseGrp[i] == grpId) { + return sys.grpData[i]; } } - for (var_r6 = 0; var_r6 < sys.unk434; var_r6++) { - temp_43C = &sys.unk43C[var_r6]; - if (temp_43C->unk04 != 0 && temp_43C->unk00 == arg0) { - return temp_43C->unk08; + for (i = 0; i < sys.grpStackAMax; i++) { + grp = &sys.grpStackA[i]; + if (grp->num != 0 && grp->grpId == grpId) { + return grp->buf; } } - for (var_r6 = 0; var_r6 < sys.unk46C; var_r6++) { - temp_43C = &sys.unk474[var_r6]; - if (temp_43C->unk04 != 0 && temp_43C->unk00 == arg0) { - return temp_43C->unk08; + for (i = 0; i < sys.grpStackBMax; i++) { + grp = &sys.grpStackB[i]; + if (grp->num != 0 && grp->grpId == grpId) { + return grp->buf; } } return NULL; } -BOOL msmSysCheckLoadGroupID(s32 arg0) +BOOL msmSysCheckLoadGroupID(s32 grpId) { - UnkStructSys43C *temp_43C; - s32 var_r6; + MSM_GRP_STACK *grp; + s32 i; - for (var_r6 = 0; var_r6 < sys.unk3F4 + sys.unk436 + sys.unk46E; var_r6++) { - if (sys.unk3EC[sys.unk10->unk29[var_r6]].unk0 == arg0) { + for (i = 0; i < sys.baseGrpNum + sys.grpStackAOfs + sys.grpStackBOfs; i++) { + if (sys.grpInfo[sys.info->baseGrp[i]].gid == grpId) { return TRUE; } } - for (var_r6 = 0; var_r6 < sys.unk434; var_r6++) { - temp_43C = &sys.unk43C[var_r6]; - if (temp_43C->unk04 != 0 && sys.unk3EC[temp_43C->unk00].unk0 == arg0) { + for (i = 0; i < sys.grpStackAMax; i++) { + grp = &sys.grpStackA[i]; + if (grp->num != 0 && sys.grpInfo[grp->grpId].gid == grpId) { return TRUE; } } - for (var_r6 = 0; var_r6 < sys.unk46C; var_r6++) { - temp_43C = &sys.unk474[var_r6]; - if (temp_43C->unk04 != 0 && sys.unk3EC[temp_43C->unk00].unk0 == arg0) { + for (i = 0; i < sys.grpStackBMax; i++) { + grp = &sys.grpStackB[i]; + if (grp->num != 0 && sys.grpInfo[grp->grpId].gid == grpId) { return TRUE; } } @@ -333,27 +336,27 @@ void msmSysRegularProc(void) s32 msmSysGetOutputMode(void) { - return sys.unk4; + return sys.outputMode; } -s32 msmSysSetOutputMode(SND_OUTPUTMODE mode) +BOOL msmSysSetOutputMode(SND_OUTPUTMODE mode) { SND_OUTPUTMODE var_r3; - s32 var_r30; + BOOL failF; - var_r30 = 0; - sys.unk4 = mode; + failF = 0; + sys.outputMode = mode; switch (mode) { case SND_OUTPUTMODE_MONO: var_r3 = SND_OUTPUTMODE_MONO; break; case SND_OUTPUTMODE_SURROUND: - if (sys.unk10->unkB != 0) { + if (sys.info->surroundF != 0) { var_r3 = SND_OUTPUTMODE_SURROUND; } else { - sys.unk4 = SND_OUTPUTMODE_STEREO; + sys.outputMode = SND_OUTPUTMODE_STEREO; var_r3 = SND_OUTPUTMODE_STEREO; - var_r30 = 1; + failF = 1; } break; case SND_OUTPUTMODE_STEREO: @@ -362,36 +365,36 @@ s32 msmSysSetOutputMode(SND_OUTPUTMODE mode) break; } sndOutputMode(var_r3); - msmStreamSetOutputMode(sys.unk4); + msmStreamSetOutputMode(sys.outputMode); OSSetSoundMode((mode != SND_OUTPUTMODE_MONO) ? 1 : 0); - return var_r30; + return failF; } -s32 msmSysSetAux(s32 arg0, s32 arg1) +s32 msmSysSetAux(s32 auxA, s32 auxB) { - s32 var_r28; + s32 i; sndSetAuxProcessingCallbacks(0, NULL, NULL, 0, 0, NULL, NULL, 0, 0); - for (var_r28 = 1; var_r28 >= 0; var_r28--) { - if (sys.unk18[var_r28] < 0) { + for (i = 1; i >= 0; i--) { + if (sys.auxParamNo[i] < 0) { continue; } - switch (sys.unk14[sys.unk18[var_r28]].unk0) { + switch (sys.auxParam[sys.auxParamNo[i]].type) { case 0: - sndAuxCallbackShutdownReverbHI(&sys.unk1C[var_r28].revHi); + sndAuxCallbackShutdownReverbHI(&sys.aux[i].revHi); break; case 1: - sndAuxCallbackShutdownReverbSTD(&sys.unk1C[var_r28].revStd); + sndAuxCallbackShutdownReverbSTD(&sys.aux[i].revStd); break; case 2: - sndAuxCallbackShutdownChorus(&sys.unk1C[var_r28].ch); + sndAuxCallbackShutdownChorus(&sys.aux[i].chorus); break; case 3: - sndAuxCallbackShutdownDelay(&sys.unk1C[var_r28].delay); + sndAuxCallbackShutdownDelay(&sys.aux[i].delay); break; } } - if (msmSysSetAuxParam(arg0, arg1) != 0) { + if (msmSysSetAuxParam(auxA, auxB) != 0) { return MSM_ERR_INVALID_AUXPARAM; } return 0; @@ -400,32 +403,32 @@ s32 msmSysSetAux(s32 arg0, s32 arg1) s32 msmSysGetSampSize(BOOL baseGrp) { if (baseGrp != 0) { - return sys.unk3E8; + return sys.sampSizeBase; } - return sys.unk3E4; + return sys.sampSize; } s32 msmSysDelGroupAll(void) { - UnkStructSys43C *temp_r28; - s32 var_r29; + MSM_GRP_STACK *grp; + s32 i; - for (var_r29 = 0; var_r29 < sys.unk46C; var_r29++) { - temp_r28 = &sys.unk474[var_r29]; - if (temp_r28->unk04 != 0 && temp_r28->unk01 == 0) { - temp_r28->unk04 = 0; + for (i = 0; i < sys.grpStackBMax; i++) { + grp = &sys.grpStackB[i]; + if (grp->num != 0 && grp->baseGrpF == 0) { + grp->num = 0; sndPopGroup(); - sys.unk8 -= sys.unk3EC[temp_r28->unk00].unk10; - sys.unk46D--; + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + sys.grpStackBDepth--; } } - for (var_r29 = 0; var_r29 < sys.unk434; var_r29++) { - temp_r28 = &sys.unk43C[var_r29]; - if (temp_r28->unk04 != 0 && temp_r28->unk01 == 0) { - temp_r28->unk04 = 0; + for (i = 0; i < sys.grpStackAMax; i++) { + grp = &sys.grpStackA[i]; + if (grp->num != 0 && grp->baseGrpF == 0) { + grp->num = 0; sndPopGroup(); - sys.unk8 -= sys.unk3EC[temp_r28->unk00].unk10; - sys.unk435--; + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + sys.grpStackADepth--; } } return 0; @@ -433,338 +436,338 @@ s32 msmSysDelGroupAll(void) s32 msmSysDelGroupBase(s32 grpNum) { - s32 var_r4; - UnkStructSys43C *temp_r26; - s32 var_r27; - s8 var_r31; - s8 var_r25; - s32 var_r6; + s32 j; + MSM_GRP_STACK *grp; + s32 i; + s8 level; + s8 stackBF; + s32 grpMaxNum; - if (sys.unk436 + sys.unk46E == 0) { + if (sys.grpStackAOfs + sys.grpStackBOfs == 0) { return 0; } - if (grpNum >= sys.unk436 + sys.unk46E) { + if (grpNum >= sys.grpStackAOfs + sys.grpStackBOfs) { grpNum = 0; } if (grpNum != 0) { msmSysDelGroupAll(); - for (var_r27 = 0; var_r27 < grpNum; var_r27++) { - var_r6 = 0; - for (var_r4 = 0; var_r4 < sys.unk434; var_r4++) { - temp_r26 = &sys.unk43C[var_r4]; - if (temp_r26->unk04 > var_r6) { - var_r6 = temp_r26->unk04; - var_r31 = var_r4; - var_r25 = 0; + for (i = 0; i < grpNum; i++) { + grpMaxNum = 0; + for (j = 0; j < sys.grpStackAMax; j++) { + grp = &sys.grpStackA[j]; + if (grp->num > grpMaxNum) { + grpMaxNum = grp->num; + level = j; + stackBF = FALSE; } } - for (var_r4 = 0; var_r4 < sys.unk46C; var_r4++) { - temp_r26 = &sys.unk474[var_r4]; - if (temp_r26->unk04 > var_r6) { - var_r6 = temp_r26->unk04; - var_r31 = var_r4; - var_r25 = 1; + for (j = 0; j < sys.grpStackBMax; j++) { + grp = &sys.grpStackB[j]; + if (grp->num > grpMaxNum) { + grpMaxNum = grp->num; + level = j; + stackBF = TRUE; } } - if (var_r25 == 0) { - temp_r26 = &sys.unk43C[var_r31]; - sys.unk435--; - sys.unk436--; + if (stackBF == FALSE) { + grp = &sys.grpStackA[level]; + sys.grpStackADepth--; + sys.grpStackAOfs--; } else { - temp_r26 = &sys.unk474[var_r31]; - sys.unk46D--; - sys.unk46E--; + grp = &sys.grpStackB[level]; + sys.grpStackBDepth--; + sys.grpStackBOfs--; } sndPopGroup(); - sys.unk8 -= sys.unk3EC[temp_r26->unk00].unk10; - temp_r26->unk01 = 0; - temp_r26->unk04 = 0; + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + grp->baseGrpF = 0; + grp->num = 0; } } else { - for (var_r27 = 0; var_r27 < sys.unk434; var_r27++) { - temp_r26 = &sys.unk43C[var_r27]; - if (temp_r26->unk04 != 0) { + for (i = 0; i < sys.grpStackAMax; i++) { + grp = &sys.grpStackA[i]; + if (grp->num != 0) { sndPopGroup(); - sys.unk8 -= sys.unk3EC[temp_r26->unk00].unk10; - temp_r26->unk01 = 0; - temp_r26->unk04 = 0; + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + grp->baseGrpF = 0; + grp->num = 0; } } - for (var_r27 = 0; var_r27 < sys.unk46C; var_r27++) { - temp_r26 = &sys.unk474[var_r27]; - if (temp_r26->unk04 != 0) { + for (i = 0; i < sys.grpStackBMax; i++) { + grp = &sys.grpStackB[i]; + if (grp->num != 0) { sndPopGroup(); - sys.unk8 -= sys.unk3EC[temp_r26->unk00].unk10; - temp_r26->unk01 = 0; - temp_r26->unk04 = 0; + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + grp->baseGrpF = 0; + grp->num = 0; } } - sys.unk46E = 0; - sys.unk46D = 0; - sys.unk436 = 0; - sys.unk435 = 0; + sys.grpStackBOfs = 0; + sys.grpStackBDepth = 0; + sys.grpStackAOfs = 0; + sys.grpStackADepth = 0; } return 0; } -static inline s32 msmSysPushGroup(DVDFileInfo *arg0, void *buf, UnkStructSys43C *arg2, s32 arg3) +static s32 msmSysPushGroup(DVDFileInfo *file, void *buf, MSM_GRP_STACK *grp, s32 grpId) { - unkStruct4 *temp_r30; - unkStruct3 *temp_r7; + MSM_GRP_INFO *grpInfo; + MSM_GRP_HEAD *grpBuf; - temp_r30 = &sys.unk3EC[arg3]; - if (msmFioRead(arg0, arg2->unk08, temp_r30->unk8, temp_r30->unk4 + sys.unkC->unk38) < 0) { + grpInfo = &sys.grpInfo[grpId]; + if (msmFioRead(file, grp->buf, grpInfo->dataSize, grpInfo->dataOfs + sys.header->grpDataOfs) < 0) { return MSM_ERR_READFAIL; } - if (msmFioRead(arg0, buf, temp_r30->unk10, temp_r30->unkC + sys.unkC->unk40) < 0) { + if (msmFioRead(file, buf, grpInfo->sampSize, grpInfo->sampOfs + sys.header->sampOfs) < 0) { return MSM_ERR_READFAIL; } - temp_r7 = arg2->unk08; - if (!sndPushGroup((void*) (temp_r7->unk4 + (u32) temp_r7), temp_r30->unk0, buf, - (void*) (temp_r7->unk8 + (u32) temp_r7), (void*) (temp_r7->unk0 + (u32) temp_r7))) + grpBuf = grp->buf; + if (!sndPushGroup((void*) (grpBuf->projOfs + (u32) grpBuf), grpInfo->gid, buf, + (void*) (grpBuf->sdirOfs + (u32) grpBuf), (void*) (grpBuf->poolOfs + (u32) grpBuf))) { - return MSM_ERR_20; + return MSM_ERR_GRP_FAILPUSH; } - sys.unk8 += temp_r30->unk10; - arg2->unk00 = arg3; - arg2->unk04 = sys.unk3E0++; + sys.aramP += grpInfo->sampSize; + grp->grpId = grpId; + grp->num = sys.grpNum++; return 0; } -s32 msmSysLoadGroupBase(s32 arg0, void *arg1) +s32 msmSysLoadGroupBase(s32 grpId, void *buf) { s32 temp_r29; s32 temp_r28; s32 var_r23; s32 temp_r3_2; - UnkStructSys43C *var_r24; + MSM_GRP_STACK *var_r24; DVDFileInfo sp10; - if (arg0 < 1 || arg0 >= sys.unk3DC) { + if (grpId < 1 || grpId >= sys.grpMax) { return MSM_ERR_64; } var_r23 = msmSysDelGroupAll(); if (var_r23 != 0) { return var_r23; } - temp_r29 = sys.unk3F4 + sys.unk436 + sys.unk46E; - if (msmSysInline00(arg0)) { + temp_r29 = sys.baseGrpNum + sys.grpStackAOfs + sys.grpStackBOfs; + if (msmSysCheckBaseGroupNo(grpId)) { return 0; } if (temp_r29 >= 0xF) { - return MSM_ERR_65; + return MSM_ERR_STACK_OVERFLOW; } - temp_r3_2 = msmSysSearchGroupStack(arg0, -1); + temp_r3_2 = msmSysSearchGroupStack(grpId, -1); if (temp_r3_2 < 0) { - return MSM_ERR_65; + return MSM_ERR_STACK_OVERFLOW; } - temp_r28 = sys.unk3EC[arg0].unk2; + temp_r28 = sys.grpInfo[grpId].stackNo; if (!temp_r28) { - var_r24 = &sys.unk43C[temp_r3_2]; + var_r24 = &sys.grpStackA[temp_r3_2]; } else { - var_r24 = &sys.unk474[temp_r3_2]; + var_r24 = &sys.grpStackB[temp_r3_2]; } - if (msmFioOpen(sys.unk0, &sp10) != 1) { + if (msmFioOpen(sys.msmEntryNum, &sp10) != 1) { return MSM_ERR_OPENFAIL; } - var_r23 = msmSysPushGroup(&sp10, arg1, var_r24, arg0); + var_r23 = msmSysPushGroup(&sp10, buf, var_r24, grpId); if (var_r23 != 0) { msmFioClose(&sp10); return var_r23; } msmFioClose(&sp10); - sys.unk10->unk29[temp_r29] = arg0; - var_r24->unk01 = 1; + sys.info->baseGrp[temp_r29] = grpId; + var_r24->baseGrpF = 1; if (temp_r28 == 0) { - sys.unk436++; - sys.unk435++; + sys.grpStackAOfs++; + sys.grpStackADepth++; } else { - sys.unk46E++; - sys.unk46D++; + sys.grpStackBOfs++; + sys.grpStackBDepth++; } return 0; } -static inline s32 msmSysInline01(void) +static s32 msmSysGetNumGroupSet(void) { - if (sys.unk3F0 != NULL) { - return sys.unk3F0->unk00; + if (sys.grpSet != NULL) { + return sys.grpSet->numGrpSet; } return 0; } s32 msmSysLoadGroupSet(s32 arg0, void *arg1) { - s8 sp4C[12]; // unknown length (5..12 works) - DVDFileInfo sp10; - s32 temp_r3; - s32 temp_r3_2; - s32 var_r19; - s32 var_r24; - s32 var_r31; - s8 *var_r19_2; + s8 grpId[10]; + DVDFileInfo file; + s32 result; + s32 stackLevel; + s32 pushResult; + s32 i; + s32 grpSetNum; + s8 *grpSet; - if (msmSysInline01() == 0) { + if (msmSysGetNumGroupSet() == 0) { return 0; } - temp_r3 = msmSysDelGroupAll(); - if (temp_r3 != 0) { - return temp_r3; + result = msmSysDelGroupAll(); + if (result != 0) { + return result; } - var_r19_2 = &sys.unk3F0->unk02[sys.unk3F0->unk01 * arg0]; - if (msmFioOpen(sys.unk0, &sp10) != TRUE) { + grpSet = &sys.grpSet->data[sys.grpSet->grpSetW * arg0]; + if (msmFioOpen(sys.msmEntryNum, &file) != TRUE) { return MSM_ERR_OPENFAIL; } - sys.unk435 = sys.unk436; - var_r31 = 0; - for (; *var_r19_2 != 0; var_r19_2++) { - if (msmSysInline00(*var_r19_2)) { + sys.grpStackADepth = sys.grpStackAOfs; + grpSetNum = 0; + for (; *grpSet != 0; grpSet++) { + if (msmSysCheckBaseGroupNo(*grpSet)) { continue; } - if (sys.unk3EC[(s8) *var_r19_2].unk2 == 1) { - sp4C[var_r31++] = *var_r19_2; + if (sys.grpInfo[(s8) *grpSet].stackNo == 1) { + grpId[grpSetNum++] = *grpSet; } else { - temp_r3_2 = msmSysSearchGroupStack(*var_r19_2, -1); - if (temp_r3_2 < 0) { - msmFioClose(&sp10); - return MSM_ERR_65; + stackLevel = msmSysSearchGroupStack(*grpSet, -1); + if (stackLevel < 0) { + msmFioClose(&file); + return MSM_ERR_STACK_OVERFLOW; } - var_r19 = msmSysPushGroup(&sp10, arg1, &sys.unk43C[temp_r3_2], *var_r19_2); - if (var_r19 != 0) { - msmFioClose(&sp10); - return var_r19; + pushResult = msmSysPushGroup(&file, arg1, &sys.grpStackA[stackLevel], *grpSet); + if (pushResult != 0) { + msmFioClose(&file); + return pushResult; } - sys.unk435++; + sys.grpStackADepth++; } } - sys.unk46D = sys.unk46E; - for (var_r24 = 0; var_r24 < var_r31; var_r24++) { - temp_r3_2 = msmSysSearchGroupStack(sp4C[var_r24], -1); - if (temp_r3_2 < 0) { - msmFioClose(&sp10); - return MSM_ERR_65; + sys.grpStackBDepth = sys.grpStackBOfs; + for (i = 0; i < grpSetNum; i++) { + stackLevel = msmSysSearchGroupStack(grpId[i], -1); + if (stackLevel < 0) { + msmFioClose(&file); + return MSM_ERR_STACK_OVERFLOW; } - var_r19 = msmSysPushGroup(&sp10, arg1, &sys.unk474[temp_r3_2], sp4C[var_r24]); - if (var_r19 != 0) { - msmFioClose(&sp10); - return var_r19; + pushResult = msmSysPushGroup(&file, arg1, &sys.grpStackB[stackLevel], grpId[i]); + if (pushResult != 0) { + msmFioClose(&file); + return pushResult; } - sys.unk46D++; + sys.grpStackBDepth++; } - msmFioClose(&sp10); + msmFioClose(&file); return 0; } -static s32 msmSysLoadGroupSub(DVDFileInfo *arg0, s32 arg1, void *arg2) +static s32 msmSysLoadGroupSub(DVDFileInfo *file, s32 grpId, void *buf) { - s32 var_r30; - s32 var_r18; - s32 var_r19; - s32 var_r3; - u8 *var_r29; - UnkStructSys43C *var_r28; - unkStruct4 *temp_r23; + s32 grpIdResult; + s32 i; + s32 stackLevel; + s32 result; + u8 *stackDepth; + MSM_GRP_STACK *grpStack; + MSM_GRP_INFO *temp_r23; - var_r30 = 0; - temp_r23 = &sys.unk3EC[arg1]; - if (temp_r23->unk2 == 0) { - var_r28 = sys.unk43C; - var_r29 = &sys.unk435; + grpIdResult = 0; + temp_r23 = &sys.grpInfo[grpId]; + if (temp_r23->stackNo == 0) { + grpStack = sys.grpStackA; + stackDepth = &sys.grpStackADepth; } else { - var_r28 = sys.unk474; - var_r29 = &sys.unk46D; + grpStack = sys.grpStackB; + stackDepth = &sys.grpStackBDepth; } - if (temp_r23->unk3 != 0) { - if (!msmSysCheckBaseGroup(sys.unk3EC[temp_r23->unk3].unk0)) { - var_r19 = -1; - for (var_r18 = 0; var_r18 < 2; var_r18++) { - var_r19 = msmSysSearchGroupStack(temp_r23->unk3, var_r19); - if (var_r19 < 0) { - var_r19 = -(var_r19 + 1); - (*var_r29)--; + if (temp_r23->subGrpId != 0) { + if (!msmSysCheckBaseGroup(sys.grpInfo[temp_r23->subGrpId].gid)) { + stackLevel = -1; + for (i = 0; i < 2; i++) { + stackLevel = msmSysSearchGroupStack(temp_r23->subGrpId, stackLevel); + if (stackLevel < 0) { + stackLevel = -(stackLevel + 1); + (*stackDepth)--; sndPopGroup(); - sys.unk8 -= sys.unk3EC[var_r28[var_r19].unk00].unk10; - var_r30 = var_r28[var_r19].unk00; - var_r28[var_r19].unk04 = 0; + sys.aramP -= sys.grpInfo[grpStack[stackLevel].grpId].sampSize; + grpIdResult = grpStack[stackLevel].grpId; + grpStack[stackLevel].num = 0; } } - var_r3 = msmSysPushGroup(arg0, arg2, &var_r28[var_r19], temp_r23->unk3); - if (var_r3 != 0) { - return var_r3; + result = msmSysPushGroup(file, buf, &grpStack[stackLevel], temp_r23->subGrpId); + if (result != 0) { + return result; } - (*var_r29)++; + (*stackDepth)++; } } - var_r19 = msmSysSearchGroupStack(arg1, -1); - if (var_r19 < 0) { - var_r19 = -(var_r19 + 1); - (*var_r29)--; + stackLevel = msmSysSearchGroupStack(grpId, -1); + if (stackLevel < 0) { + stackLevel = -(stackLevel + 1); + (*stackDepth)--; sndPopGroup(); - sys.unk8 -= sys.unk3EC[var_r28[var_r19].unk00].unk10; - var_r30 = var_r28[var_r19].unk00; + sys.aramP -= sys.grpInfo[grpStack[stackLevel].grpId].sampSize; + grpIdResult = grpStack[stackLevel].grpId; } - var_r3 = msmSysPushGroup(arg0, arg2, &var_r28[var_r19], arg1); - if (var_r3 == 0) { - var_r3 = var_r30; + result = msmSysPushGroup(file, buf, &grpStack[stackLevel], grpId); + if (result == 0) { + result = grpIdResult; } - (*var_r29)++; - return var_r3; + (*stackDepth)++; + return result; } -static inline void msmSysPopGroup(s32 arg0) +static void msmSysPopGroup(s32 no) { - UnkStructSys43C *temp_r23; + MSM_GRP_STACK *grp; - temp_r23 = &sys.unk474[arg0]; - if (temp_r23->unk04 != 0 && temp_r23->unk01 == 0) { + grp = &sys.grpStackB[no]; + if (grp->num != 0 && grp->baseGrpF == 0) { sndPopGroup(); - sys.unk8 -= sys.unk3EC[temp_r23->unk00].unk10; + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; } } -s32 msmSysLoadGroup(s32 grp, void *buf) +s32 msmSysLoadGroup(s32 grpId, void *buf) { - UnkStructSys43C *temp_r23; - unkStruct4 *temp_r22; - s32 var_r31; - s32 var_r22; - s32 var_r21; - DVDFileInfo sp14; + MSM_GRP_STACK *grpStack; + MSM_GRP_INFO *grpInfo; + s32 pushResult; + s32 i; + s32 result; + DVDFileInfo file; s32 unused; if (buf == NULL) { return 0; } - if (grp == 0) { + if (grpId == 0) { return msmSysLoadBaseGroup(buf); } - temp_r22 = &sys.unk3EC[grp]; - if (msmSysCheckLoadGroupID(temp_r22->unk0)) { + grpInfo = &sys.grpInfo[grpId]; + if (msmSysCheckLoadGroupID(grpInfo->gid)) { return 0; } - if (msmFioOpen(sys.unk0, &sp14) != 1) { + if (msmFioOpen(sys.msmEntryNum, &file) != TRUE) { return MSM_ERR_OPENFAIL; } - if (temp_r22->unk2 == 0) { - for (var_r22 = 0; var_r22 < sys.unk46C; var_r22++) { - msmSysPopGroup(var_r22); + if (grpInfo->stackNo == 0) { + for (i = 0; i < sys.grpStackBMax; i++) { + msmSysPopGroup(i); } - var_r21 = msmSysLoadGroupSub(&sp14, grp, buf); - for (var_r22 = 0; var_r22 < sys.unk46C; var_r22++) { - temp_r23 = &sys.unk474[var_r22]; - if (temp_r23->unk04 != 0 && temp_r23->unk01 == 0) { - var_r31 = msmSysPushGroup(&sp14, buf, temp_r23, temp_r23->unk00); - if (var_r31 != 0) { - msmFioClose(&sp14); - return var_r31; + result = msmSysLoadGroupSub(&file, grpId, buf); + for (i = 0; i < sys.grpStackBMax; i++) { + grpStack = &sys.grpStackB[i]; + if (grpStack->num != 0 && grpStack->baseGrpF == 0) { + pushResult = msmSysPushGroup(&file, buf, grpStack, grpStack->grpId); + if (pushResult != 0) { + msmFioClose(&file); + return pushResult; } } } } else { - var_r21 = msmSysLoadGroupSub(&sp14, grp, buf); + result = msmSysLoadGroupSub(&file, grpId, buf); } - msmFioClose(&sp14); - return var_r21; + msmFioClose(&file); + return result; } void msmSysCheckInit(void) @@ -774,42 +777,42 @@ void msmSysCheckInit(void) s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram) { - s32 var_r26; - void *temp_r3_8; + s32 result; + void *temp; - SND_HOOKS sp4C = { msmMemAlloc, msmMemFree }; + SND_HOOKS sndHooks = { msmMemAlloc, msmMemFree }; DVDFileInfo sp10; if (sndIsInstalled() == 1) { return MSM_ERR_INSTALLED; } - var_r26 = 0; // retErr - sys.unk4EC = 0; + result = 0; // retErr + sys.irqDepth = 0; msmMemInit(init->heap, init->heapSize); msmFioInit(init->open, init->read, init->close); - sys.unk0 = DVDConvertPathToEntrynum(init->msmPath); - if (sys.unk0 < 0) { + sys.msmEntryNum = DVDConvertPathToEntrynum(init->msmPath); + if (sys.msmEntryNum < 0) { return MSM_ERR_OPENFAIL; } - if (msmFioOpen(sys.unk0, &sp10) != 1) { + if (msmFioOpen(sys.msmEntryNum, &sp10) != 1) { return MSM_ERR_OPENFAIL; } - if ((sys.unkC = msmMemAlloc(0x60)) == NULL) { + if ((sys.header = msmMemAlloc(0x60)) == NULL) { msmFioClose(&sp10); return MSM_ERR_OUTOFMEM; } - if (msmFioRead(&sp10, sys.unkC, 0x60, 0) < 0) { + if (msmFioRead(&sp10, sys.header, 0x60, 0) < 0) { msmFioClose(&sp10); return MSM_ERR_READFAIL; } - if (sys.unkC->unk4 != 2) { + if (sys.header->version != MSM_FILE_VERSION) { msmFioClose(&sp10); return MSM_ERR_INVALIDFILE; } - if ((sys.unk10 = msmMemAlloc(sys.unkC->unk14)) == NULL) { + if ((sys.info = msmMemAlloc(sys.header->infoSize)) == NULL) { msmFioClose(&sp10); return MSM_ERR_OUTOFMEM; } - if (msmFioRead(&sp10, sys.unk10, sys.unkC->unk14, sys.unkC->unk10) < 0) { + if (msmFioRead(&sp10, sys.info, sys.header->infoSize, sys.header->infoOfs) < 0) { msmFioClose(&sp10); return MSM_ERR_READFAIL; } @@ -817,88 +820,88 @@ s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram) if (aram->skipARInit == 0) { ARInit(aram->stackIndex, aram->aramEnd); ARQInit(); - aram = (MSM_ARAM *)ARAlloc(sys.unk10->unk14); + aram = (MSM_ARAM *)ARAlloc(sys.info->aramSize); if ((u32)aram != ARGetBaseAddress()) { msmFioClose(&sp10); return MSM_ERR_OUTOFAMEM; } - sys.unk7 = 0; + sys.arInitF = FALSE; } else { - if ((sys.unk10->unk14 + ARGetBaseAddress()) > aram->aramEnd) { + if ((sys.info->aramSize + ARGetBaseAddress()) > aram->aramEnd) { msmFioClose(&sp10); return MSM_ERR_OUTOFAMEM; } ARInit(NULL, 0); ARQInit(); - sys.unk7 = 1; + sys.arInitF = TRUE; } } - var_r26 = msmSysGroupInit(&sp10); - if (var_r26 != 0) { + result = msmSysGroupInit(&sp10); + if (result != 0) { msmFioClose(&sp10); - return var_r26; + return result; } - var_r26 = msmMusInit(&sys, &sp10); - if (var_r26 != 0) { + result = msmMusInit(&sys, &sp10); + if (result != 0) { msmFioClose(&sp10); - return var_r26; + return result; } - var_r26 = msmSeInit(&sys, &sp10); - if (var_r26 != 0) { + result = msmSeInit(&sys, &sp10); + if (result != 0) { msmFioClose(&sp10); - return var_r26; + return result; } - sys.unk18[0] = sys.unk10->unkE == -2 ? -2 : -1; - sys.unk18[1] = sys.unk10->unkF == -2 ? -2 : -1; - if ((s32)sys.unkC->unk1C == 0) { - var_r26 = 0; + sys.auxParamNo[0] = sys.info->auxParamA == MSM_AUXNO_NULL ? MSM_AUXNO_NULL : MSM_AUXNO_UNSET; + sys.auxParamNo[1] = sys.info->auxParamB == MSM_AUXNO_NULL ? MSM_AUXNO_NULL : MSM_AUXNO_UNSET; + if ((s32)sys.header->auxParamSize == 0) { + result = 0; } else { - if ((sys.unk14 = msmMemAlloc(sys.unkC->unk1C)) == NULL) { - var_r26 = MSM_ERR_OUTOFMEM; + if ((sys.auxParam = msmMemAlloc(sys.header->auxParamSize)) == NULL) { + result = MSM_ERR_OUTOFMEM; } else { - if (msmFioRead(&sp10, sys.unk14, sys.unkC->unk1C, sys.unkC->unk18) < 0) { - var_r26 = MSM_ERR_READFAIL; + if (msmFioRead(&sp10, sys.auxParam, sys.header->auxParamSize, sys.header->auxParamOfs) < 0) { + result = MSM_ERR_READFAIL; } else { - var_r26 = 0; + result = 0; } } } - if (var_r26 != 0) { + if (result != 0) { msmFioClose(&sp10); - return var_r26; + return result; } msmFioClose(&sp10); - var_r26 = msmStreamInit(init->pdtPath); - if (var_r26 < 0) { - return var_r26; + result = msmStreamInit(init->pdtPath); + if (result < 0) { + return result; } AIInit(NULL); - sndSetHooks(&sp4C); - if (sndInit(sys.unk10->unk0, sys.unk10->unk1, sys.unk10->unk2, 1, 0, sys.unk10->unk14) != 0) { - return MSM_ERR_1E; + sndSetHooks(&sndHooks); + if (sndInit(sys.info->voices, sys.info->music, sys.info->sfx, 1, 0, sys.info->aramSize) != 0) { + return MSM_ERR_INITFAIL; } - sys.unk4F4 = AIRegisterDMACallback(msmSysServer); - sys.unk4F8 = 1; - var_r26 = msmStreamAmemAlloc(); - if (var_r26 < 0) { + sys.oldAIDCallback = AIRegisterDMACallback(msmSysServer); + sys.timer = 1; + result = msmStreamAmemAlloc(); + if (result < 0) { sndQuit(); - return var_r26; + return result; } - sys.unk8 = var_r26 + 0x500; - if ((s32)sys.unk10->unk10 != 0) { - temp_r3_8 = msmMemAlloc(sys.unk10->unk10 + 0x100); - if (temp_r3_8 == NULL) { + sys.aramP = result + 0x500; + if ((int)sys.info->minMem != 0) { + temp = msmMemAlloc(sys.info->minMem + 0x100); + if (temp == NULL) { msmStreamAmemFree(); sndQuit(); return MSM_ERR_OUTOFMEM; } - msmMemFree(temp_r3_8); + msmMemFree(temp); } - if (msmSysSetAuxParam(sys.unk10->unkE, sys.unk10->unkF) != 0) { + if (msmSysSetAuxParam(sys.info->auxParamA, sys.info->auxParamB) != 0) { msmStreamAmemFree(); sndQuit(); return MSM_ERR_INVALID_AUXPARAM;