match most of m412

This commit is contained in:
CreateSource 2024-08-02 11:44:41 -04:00
parent b548fe02d9
commit 25910aa5ba
3 changed files with 1057 additions and 134 deletions

View file

@ -38,133 +38,133 @@ fn_1_B160 = .text:0x0000B160; // type:function size:0x60
fn_1_B1C0 = .text:0x0000B1C0; // type:function size:0x4A0
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float
lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float
lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float
lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float
lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float
lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float
lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float
lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float
lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float
lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float
lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float
lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float
lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double
lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double
lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double
lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double
lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float
lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float
lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float
lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float
lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float
lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float
lbl_1_rodata_78 = .rodata:0x00000078; // type:object size: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:0x8 data:double
lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float
lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float
lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float
lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float
lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float
lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float
lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float
lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float
lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double
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: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_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:0x8 data:double
lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float
lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float
lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float
lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float
lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double
lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double
lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double
lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double
lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double
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_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: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:0x8 data:double
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:0x8 data:double
lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float
lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float
lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float
lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float
lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float
lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float
lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float
lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float
lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float
lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double
lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double
lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double
lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double
lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float
lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float
lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float
lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float
lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float
lbl_1_rodata_78 = .rodata:0x00000078; // type:object size: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:0x8 scope:local data:double
lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double
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: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_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:0x8 scope:local data:double
lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float
lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float
lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float
lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double
lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double
lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double
lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double
lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double
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_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: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:0x8 scope:local data:double
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:0x8 scope:local data:double
lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float
lbl_1_data_0 = .data:0x00000000; // type:object size:0x20
lbl_1_data_20 = .data:0x00000020; // type:object size:0x20
lbl_1_data_40 = .data:0x00000040; // type:object size:0x20
lbl_1_data_60 = .data:0x00000060; // type:object size:0x18
lbl_1_data_78 = .data:0x00000078; // type:object size:0x54 data:float
lbl_1_data_CC = .data:0x000000CC; // type:object size:0x14 data:string
lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x14 data:string
lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x14 data:string
lbl_1_data_108 = .data:0x00000108; // type:object size:0x14 data:string
lbl_1_data_11C = .data:0x0000011C; // type:object size:0x14 data:string
lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 data:string
lbl_1_data_144 = .data:0x00000144; // type:object size:0x14 data:string
lbl_1_data_158 = .data:0x00000158; // type:object size:0x14 data:string
lbl_1_data_16C = .data:0x0000016C; // type:object size:0x14 data:string
lbl_1_data_180 = .data:0x00000180; // type:object size:0x14 data:string
lbl_1_data_194 = .data:0x00000194; // type:object size:0x14 data:string
lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x14 data:string
lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x14 data:string
lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x14 data:string
lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x14 data:string
lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x14 data:string
lbl_1_data_20C = .data:0x0000020C; // type:object size:0x14 data:string
lbl_1_data_220 = .data:0x00000220; // type:object size:0x14 data:string
lbl_1_data_234 = .data:0x00000234; // type:object size:0x14 data:string
lbl_1_data_248 = .data:0x00000248; // type:object size:0x14 data:string
lbl_1_data_25C = .data:0x0000025C; // type:object size:0x14 data:string
lbl_1_data_270 = .data:0x00000270; // type:object size:0x14 data:string
lbl_1_data_284 = .data:0x00000284; // type:object size:0x14 data:string
lbl_1_data_CC = .data:0x000000CC; // type:object size:0x14 scope:local data:string
lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x14 scope:local data:string
lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x14 scope:local data:string
lbl_1_data_108 = .data:0x00000108; // type:object size:0x14 scope:local data:string
lbl_1_data_11C = .data:0x0000011C; // type:object size:0x14 scope:local data:string
lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 scope:local data:string
lbl_1_data_144 = .data:0x00000144; // type:object size:0x14 scope:local data:string
lbl_1_data_158 = .data:0x00000158; // type:object size:0x14 scope:local data:string
lbl_1_data_16C = .data:0x0000016C; // type:object size:0x14 scope:local data:string
lbl_1_data_180 = .data:0x00000180; // type:object size:0x14 scope:local data:string
lbl_1_data_194 = .data:0x00000194; // type:object size:0x14 scope:local data:string
lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x14 scope:local data:string
lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x14 scope:local data:string
lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x14 scope:local data:string
lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x14 scope:local data:string
lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x14 scope:local data:string
lbl_1_data_20C = .data:0x0000020C; // type:object size:0x14 scope:local data:string
lbl_1_data_220 = .data:0x00000220; // type:object size:0x14 scope:local data:string
lbl_1_data_234 = .data:0x00000234; // type:object size:0x14 scope:local data:string
lbl_1_data_248 = .data:0x00000248; // type:object size:0x14 scope:local data:string
lbl_1_data_25C = .data:0x0000025C; // type:object size:0x14 scope:local data:string
lbl_1_data_270 = .data:0x00000270; // type:object size:0x14 scope:local data:string
lbl_1_data_284 = .data:0x00000284; // type:object size:0x14 scope:local data:string
lbl_1_data_298 = .data:0x00000298; // type:object size:0x5C
lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0xC data:string
lbl_1_data_300 = .data:0x00000300; // type:object size:0x7 data:string
lbl_1_data_307 = .data:0x00000307; // type:object size:0x9
lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0xC scope:local data:string
lbl_1_data_300 = .data:0x00000300; // type:object size:0x7 scope:local data:string
lbl_1_data_307 = .data:0x00000307; // type:object size:0x6 scope:local data:string
lbl_1_data_310 = .data:0x00000310; // type:object size:0x30
lbl_1_data_340 = .data:0x00000340; // type:object size:0x8
lbl_1_data_348 = .data:0x00000348; // type:object size:0x18
lbl_1_data_360 = .data:0x00000360; // type:object size:0x9 data:string
lbl_1_data_360 = .data:0x00000360; // type:object size:0x9 scope:local data:string
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float
lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float
lbl_1_bss_18 = .bss:0x00000018; // type:object size:0xC data:float

View file

@ -48,10 +48,11 @@ typedef struct _unkStruct3 {
s32 unk28;
s32 unk2C;
s32 unk30;
char unk34[0x8];
char unk34[0x4];
s32 unk38;
s32 unk3C;
Vec unk40;
char unk4C[0x8];
HsfVector2f unk4C;
Vec unk54;
Vec unk60;
f32 unk6C;
@ -63,7 +64,10 @@ typedef struct _unkStruct3 {
s8 unk8B;
u16 unk8C;
u16 unk8E;
char unk90[0x14];
HsfVector2f unk90;
f32 unk98;
s32 unk9C;
s32 unkA0;
s32 unkA4;
} unkStruct3; // sizeof 0xA8
@ -76,7 +80,7 @@ typedef struct _unkStruct4 {
// prototypes
void ObjectSetup(void);
void fn_1_6EC(f32, f32, f32, s32);
void* fn_1_6EC(f32, f32, f32, s32);
void fn_1_73C(void);
void fn_1_7BC(void);
void fn_1_894(omObjData* object);
@ -99,10 +103,14 @@ u16 fn_1_531C(s32);
u16 fn_1_5388(s32);
s32 fn_1_53F4(unkStruct3*, f32, f32, f32);
s32 fn_1_561C(unkStruct3*, s32*);
void fn_1_5838(unkStruct3*);
f32 fn_1_6594(f32, f32, f32);
f32 fn_1_6698(f32, f32, unkStruct3*);
void fn_1_6814(unkStruct3*);
void fn_1_7C60(void);
void fn_1_A01C(ModelData* model, ParticleData* particle, Mtx matrix);
void fn_1_A618(ModelData* model, ParticleData* particle, Mtx matrix);
//...
void fn_1_7C60(void); // *
void fn_1_A01C(ModelData* model, ParticleData* particle, Mtx matrix); // *
void fn_1_A618(ModelData* model, ParticleData* particle, Mtx matrix); // *
void fn_1_AA88(ModelData* model, ParticleData* particle, Mtx matrix); // *
void fn_1_B160(void); // *
void fn_1_B1C0(void); // *

View file

@ -8,6 +8,7 @@
#include "game/frand.h"
#include "game/hsfmotion.h"
#include "game/mapspace.h"
#include "game/minigame_seq.h"
#include "game/objsub.h"
#include "game/pad.h"
#include "game/sprite.h"
@ -20,6 +21,7 @@ s16 lbl_1_bss_79C;
s16 lbl_1_bss_798[2];
s32 lbl_1_bss_794;
s32 lbl_1_bss_790;
s32 lbl_1_bss_780[4];
f32 lbl_1_bss_77C;
f32 lbl_1_bss_778;
f32 lbl_1_bss_774;
@ -137,13 +139,13 @@ void ObjectSetup(void) {
WipeCreate(1, 0, 0x3C);
}
void fn_1_6EC(f32 arg8, f32 arg9, f32 argA, s32 arg0) {
void* fn_1_6EC(f32 arg8, f32 arg9, f32 argA, s32 arg0) {
Vec sp8;
sp8.x = arg8;
sp8.y = arg9;
sp8.z = argA;
HuAudFXEmiterPlay(arg0, &sp8);
return (void*)HuAudFXEmiterPlay(arg0, &sp8);
}
void fn_1_73C(void) {
@ -1247,17 +1249,14 @@ s32 fn_1_53F4(unkStruct3* arg0, f32 arg8, f32 arg9, f32 argA) {
unkStruct3* temp_r31;
var_r28 = -1;
var_r30 = 0;
var_f28 = 10000.0f;
for (;var_r30 < 4; var_r30++) {
for (var_r30 = 0, var_f28 = 10000.0f; var_r30 < 4; var_r30++) {
if (var_r30 != arg0->unk24) {
temp_r31 = &lbl_1_bss_4D4[var_r30];
HuSetVecF(&sp30, arg8, arg9, argA);
HuSetVecF(&sp24, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z);
HuSubVecF(&sp18, &sp30, &sp24);
var_f27 = sqrtf((sp18.z * sp18.z) + ((sp18.x * sp18.x) + (sp18.y * sp18.y)));
if ((var_f27 < (arg0->unk60.x + temp_r31->unk60.x)) && (var_f27 < var_f28)) {
if (((var_f27 = sqrtf((sp18.z * sp18.z) + ((sp18.x * sp18.x) + (sp18.y * sp18.y)))) < (arg0->unk60.x + temp_r31->unk60.x)) && (var_f27 < var_f28)) {
var_f28 = var_f27;
var_r28 = var_r30;
arg0->unkA4 = 0;
@ -1289,8 +1288,7 @@ s32 fn_1_561C(unkStruct3* arg0, s32* arg1) {
HuSetVecF(&sp24, arg0->unk40.x, arg0->unk40.y, arg0->unk40.z);
HuSetVecF(&sp18, temp_r30->unk40.x, temp_r30->unk40.y, temp_r30->unk40.z);
HuSubVecF(&spC, &sp24, &sp18);
var_f27 = sqrtf((spC.z * spC.z) + ((spC.x * spC.x) + (spC.y * spC.y)));
if (var_f27 < (arg0->unk60.x + temp_r30->unk60.x)) {
if ((var_f27 = sqrtf((spC.z * spC.z) + ((spC.x * spC.x) + (spC.y * spC.y)))) < (arg0->unk60.x + temp_r30->unk60.x)) {
var_r28 += 1;
if (var_f27 < var_f28) {
var_f28 = var_f27;
@ -1302,4 +1300,921 @@ s32 fn_1_561C(unkStruct3* arg0, s32* arg1) {
}
*arg1 = var_r28;
return var_r27;
}
void fn_1_5838(unkStruct3* arg0) {
Vec spA8;
Vec sp9C;
Vec sp90;
Vec sp84;
Vec sp78;
Vec sp6C;
s32 sp68;
f32 sp64;
f32 sp60;
f32 sp5C;
f32 sp58;
f32 sp54;
f32 sp50;
f32 sp4C;
f32 var_f20;
f32 var_f25;
f32 var_f27;
f32 var_f26;
s32 var_r25;
s32 var_r29;
unkStruct3* temp_r27;
unkStruct3* var_r30;
s32 var_r24;
var_r24 = fn_1_561C(arg0, &sp68);
if (var_r24 != -1) {
var_f20 = fn_1_1D08(atan2d((arg0->unk40.x - arg0->unk4C.x), (arg0->unk40.z - arg0->unk4C.y)));
sp58 = var_f27 = arg0->unk4C.x;
sp54 = var_f26 = arg0->unk4C.y;
sp4C = 1.0f;
var_r25 = (1.0f + (10.0f / sp4C));
while (var_r25 != 0) {
var_f27 += sp4C * sind(var_f20);
var_f26 += sp4C * cosd(var_f20);
HuSetVecF(&spA8, var_f27, arg0->unk40.y, var_f26);
for (var_r29 = 0; var_r29 < 4; var_r29++) {
if (var_r29 == arg0->unk24) continue;
var_r30 = &lbl_1_bss_4D4[var_r29];
HuSetVecF(&sp9C, var_r30->unk40.x, var_r30->unk40.y, var_r30->unk40.z);
HuSubVecF(&sp90, &spA8, &sp9C);
if (sqrtf((sp90.z * sp90.z) + ((sp90.x * sp90.x) + (sp90.y * sp90.y))) < (arg0->unk60.x + var_r30->unk60.x))
break;
}
if (var_r29 < 4) break;
AddX = 0.0f;
AddZ = 0.0f;
MapWall(arg0->unk60.x, var_f27, arg0->unk40.y + arg0->unk60.x, var_f26);
if ((AddX + AddZ) != 0.0f) goto end;
sp58 = var_f27;
sp54 = var_f26;
var_r25--;
}
var_f20 = fn_1_1D08(atan2d((arg0->unk40.x - arg0->unk4C.x), (arg0->unk40.z - arg0->unk4C.y)));
var_f25 = fn_1_1D08(atan2d((var_r30->unk40.x - arg0->unk4C.x), (var_r30->unk40.z - arg0->unk4C.y)));
sp60 = var_f20 - var_f25;
if (sp60 > 0.0f) {
sp5C = -0.5f;
} else {
sp5C = 0.5f;
}
if (ABS_INV(var_f20 - var_f25) > 180.0f) {
sp5C = -sp5C;
}
var_f25 = fn_1_1D08(atan2d((arg0->unk4C.x - var_r30->unk40.x), (arg0->unk4C.y - var_r30->unk40.z)));
sp50 = 0.8f * arg0->unk60.y;
var_r24 = var_r30->unk24;
sp64 = 1.0f + (arg0->unk60.x + var_r30->unk60.x);
while (1) {
var_f27 = (var_r30->unk40.x + (sp64 * sind(var_f25)));
var_f26 = (var_r30->unk40.z + (sp64 * cosd(var_f25)));
HuSetVecF(&spA8, var_f27, 0.0, var_f26);
for (var_r29 = 0; var_r29 < 4; var_r29++) {
if ((var_r29 == arg0->unk24) || (var_r29 == var_r24)) continue;
temp_r27 = &lbl_1_bss_4D4[var_r29];
HuSetVecF(&sp9C, temp_r27->unk40.x, 0.0, temp_r27->unk40.z);
HuSubVecF(&sp90, &spA8, &sp9C);
if (sqrtf((sp90.x * sp90.x) + (sp90.z * sp90.z)) < (arg0->unk60.x + temp_r27->unk60.x)) break;
}
if (var_r29 < 4) break;
AddX = 0.0f;
AddZ = 0.0f;
MapWall(arg0->unk60.x, var_f27, arg0->unk40.y + arg0->unk60.x, var_f26);
if ((AddX + AddZ) != 0.0f) break;
sp58 = var_f27;
sp54 = var_f26;
HuSetVecF(&spA8, arg0->unk4C.x, 0.0, arg0->unk4C.y);
HuSetVecF(&sp9C, var_f27, 0.0, var_f26);
HuSubVecF(&sp90, &spA8, &sp9C);
if (sqrtf((sp90.x * sp90.x) + (sp90.z * sp90.z)) > sp50) break;
var_f25 += sp5C;
}
end:
arg0->unk40.x = sp58;
arg0->unk40.z = sp54;
}
}
f32 fn_1_6594(f32 arg8, f32 arg9, f32 argA) {
f32 var_f30;
f32 var_f31;
var_f31 = fmod((arg9 - arg8), 360.0);
if (0.0f > var_f31) {
var_f31 += 360.0f;
}
if (180.0f < var_f31) {
var_f31 -= 360.0f;
}
var_f30 = fmod((arg8 + (var_f31 * argA)), 360.0);
if (0.0f > var_f30) {
var_f30 += 360.0f;
}
return var_f30;
}
f32 fn_1_6698(f32 arg8, f32 arg9, unkStruct3* arg0) {
Vec sp2C;
Vec sp20;
Vec sp14;
HuSetVecF(&sp2C, arg8, 0.0, arg9);
HuSetVecF(&sp20, arg0->unk40.x, 0.0, arg0->unk40.z);
HuSubVecF(&sp14, &sp2C, &sp20);
return sqrtf((sp14.x * sp14.x) + (sp14.z * sp14.z));
}
// fn_1_6814: https://decomp.me/scratch/WQPjD
void fn_1_6814(unkStruct3* arg0) {
Vec sp104;
Vec spF8;
Vec spEC;
Vec spE0;
Vec spD4;
Vec spC8;
f32 spBC;
f32 spB0;
f32 spA4;
volatile f32 spA0;
f32 sp9C;
f32 sp98;
f32 var_f27; // probably debug code
f32 var_f18;
f32 temp_f31;
f32 temp_f30;
f32 var_f29;
s32 var_r22;
s32 var_r21;
s32 var_r20;
unkStruct* temp_r27;
s32 var_r28;
unkStruct3* temp_r29;
unkStruct* var_r30;
arg0->unk88 = arg0->unk89 = 0;
arg0->unk8B = arg0->unk8A = 0;
arg0->unk8C = arg0->unk8E = 0;
switch (GWPlayerCfg[arg0->unk24].diff) {
case 0:
var_r22 = 0x3C;
break;
case 1:
var_r22 = 0x50;
break;
case 2:
var_r22 = 0x5A;
break;
default:
var_r22 = 0x5F;
break;
}
switch (GWPlayerCfg[arg0->unk24].diff) {
case 0:
spA0 = 200.0f;
break;
case 1:
spA0 = 250.0f;
break;
case 2:
spA0 = 300.0f;
break;
default:
spA0 = 350.0f;
break;
}
for (var_r28 = 0, sp98 = 10000.0f; var_r28 < 0x20; var_r28++) {
temp_r27 = lbl_1_bss_278[var_r28];
if (temp_r27 && (temp_r27->unk6 != -1)) {
HuSetVecF(&sp104, arg0->unk40.x, 0.0, arg0->unk40.z);
HuSetVecF(&spF8, temp_r27->unk10.x, 0.0, temp_r27->unk10.z);
HuSubVecF(&spEC, &sp104, &spF8);
var_f29 = sqrtf((spEC.z * spEC.z) + ((spEC.x * spEC.x) + (spEC.y * spEC.y)));
if ((var_f29 < (spA0 + (arg0->unk60.x + temp_r27->unk30))) && (sp98 > var_f29)) {
var_r30 = temp_r27;
sp98 = var_f29;
}
}
}
if (sp98 < 10000.0f) {
arg0->unk9C = 0;
var_r21 = 1;
if (arg0->unkA0 != var_r30->unk6) {
if (frandmod(0x64) < 0) {
(void)var_r21; // probably debug code
} else {
(void)var_r21;
}
}
if (var_r21 != 0) {
sp9C = 200.0f + (var_r30->unk30 + arg0->unk60.x) + (100.0f * frandf());
sp104.x = temp_f31 = (var_r30->unk10.x + (sp9C * sind(var_r30->unk24.x + 90.0f)));
sp104.z = temp_f30 = (var_r30->unk10.z + (sp9C * cosd(var_r30->unk24.x + 90.0f)));
var_f29 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30));
spF8.x = temp_f31 = (var_r30->unk10.x + (sp9C * sind(var_r30->unk24.x - 90.0f)));
spF8.z = temp_f30 = (var_r30->unk10.z + (sp9C * cosd(var_r30->unk24.x - 90.0f)));
spA0 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30));
if (sqrtf((arg0->unk40.x * arg0->unk40.x) + (arg0->unk40.z * arg0->unk40.z)) < 400.0f) {
spEC.x = var_f29;
var_f29 = spA0;
spA0 = spEC.x;
}
if (var_f29 > spA0) {
spEC.x = spF8.x;
spEC.z = spF8.z;
} else {
spEC.x = sp104.x;
spEC.z = sp104.z;
}
if (arg0->unkA0 != var_r30->unk6) {
arg0->unkA0 = var_r30->unk6;
arg0->unk90.x = spEC.x;
arg0->unk90.y = spEC.z;
}
var_f18 = atan2d((arg0->unk90.x - arg0->unk40.x), (arg0->unk90.y - arg0->unk40.z));
if (fn_1_53F4(arg0, arg0->unk40.x + arg0->unk7C.x, arg0->unk40.y, arg0->unk40.z + arg0->unk7C.z) != -1) {
var_f18 += 90.0f;
}
arg0->unk88 = 50.0 * sind(var_f18);
arg0->unk89 = -50.0f * cosd(var_f18);
}
} else {
if (arg0->unk9C == 0) {
arg0->unk9C = 1;
arg0->unk98 = (250.0f + (90.0f * frandf()));
arg0->unkA4 = 30;
}
if ((sqrtf((arg0->unk40.x * arg0->unk40.x) + (arg0->unk40.z * arg0->unk40.z)) > arg0->unk98) && (arg0->unkA4 != 0)) {
arg0->unkA4--;
var_f18 = (180.0 + (atan2d(arg0->unk40.x, arg0->unk40.z)));
if (fn_1_53F4(arg0, arg0->unk40.x + arg0->unk7C.x, arg0->unk40.y, arg0->unk40.z + arg0->unk7C.z) != -1) {
arg0->unkA4 = 0;
var_f18 += 90.0f;
}
arg0->unk88 = 25.0 * sind(var_f18);
arg0->unk89 = -25.0 * cosd(var_f18);
return;
}
var_r28 = 0;
sp98 = 10000.0f;
var_r20 = -1;
for (;var_r28 < 4; var_r28++) {
if (var_r28 != arg0->unk24) {
temp_r29 = &lbl_1_bss_4D4[var_r28];
HuSetVecF(&sp104, arg0->unk40.x, 0.0, arg0->unk40.z);
HuSetVecF(&spF8, temp_r29->unk40.x, 0.0, temp_r29->unk40.z);
HuSubVecF(&spEC, &sp104, &spF8);
var_f29 = sqrtf((spEC.z * spEC.z) + ((spEC.x * spEC.x) + (spEC.y * spEC.y)));
if (var_f29 < sp98) {
var_r20 = var_r28;
sp98 = var_f29;
}
}
}
if (var_r20 != -1) {
temp_r29 = &lbl_1_bss_4D4[var_r20];
HuSetVecF(&sp104, arg0->unk40.x, 0.0, arg0->unk40.z);
HuSetVecF(&spF8, temp_r29->unk40.x, 0.0, temp_r29->unk40.z);
HuSubVecF(&spEC, &sp104, &spF8);
var_f29 = sqrtf((spEC.x * spEC.x) + (spEC.z * spEC.z));
if ((var_f29 < 200.0f) && (var_f29 > 150.0f)) {
var_f18 = atan2d((arg0->unk40.x - temp_r29->unk40.x), (arg0->unk40.z - temp_r29->unk40.z));
(void)var_f29;
arg0->unk88 = 30.0f * sind(var_f18);
arg0->unk89 = -30.0f * cosd(var_f18);
}
}
}
(void)var_f27;
(void)var_f27;
(void)var_f27;
(void)var_f27;
(void)var_f27;
(void)var_f27;
(void)var_f27;
(void)var_f27;
(void)var_f27;
(void)var_f27;
(void)var_f27;
(void)var_f27;
(void)var_f27;
(void)var_f27;
}
// fn_1_7C60: https://decomp.me/scratch/eMCi6
void fn_1_7C60(void) {
Vec sp1A0;
Vec sp188;
Vec sp17C;
Vec sp170;
Vec sp164;
Vec sp158;
Vec sp14C;
Vec sp140;
f32 sp13C;
f32 sp138;
f32 sp134;
f32 sp130;
f32 sp12C;
f32 sp128;
f32 sp124;
s32 sp120;
f32 sp11C;
f32 sp118;
f32 sp114;
f32 sp110;
f32 sp10C;
f32 sp108;
f32 sp104;
f32 sp100;
f32 spFC;
f32 spF8;
f32 spF4;
f32 spF0;
s32 spEC;
f32 spE8;
f32 spE4;
s32 spE0;
f32 spDC;
f32 spD8;
f32 spD4;
f32 spD0;
f32 spCC;
f32 spC8;
f32 spC4;
f32 spC0;
f32 spBC;
f32 spB8;
f32 temp_f20;
f32 var_f21;
f32 var_f31;
s32 var_r27;
unkStruct3* temp_r30;
unkStruct3* temp_r31;
temp_r31 = HuPrcCurrentGet()->user_data;
temp_r31->unk30 = 0;
temp_r31->unk9C = 0;
temp_r31->unkA0 = -1;
while (lbl_1_bss_794 == 0) {
HuPrcVSleep();
}
lbl_1_bss_794 = 2;
while (lbl_1_bss_794 == 2) {
HuPrcVSleep();
}
loop_6:
temp_r31->unk4C.x = temp_r31->unk40.x;
temp_r31->unk4C.y = temp_r31->unk40.z;
if (GWPlayerCfg[temp_r31->unk24].iscom == 1) {
fn_1_6814(temp_r31);
}
switch (temp_r31->unk30) {
default:
HuSetVecF(&temp_r31->unk24, fn_1_4E58(temp_r31->unk24, 0) * 0.25f, 0.0, -fn_1_4E58(temp_r31->unk24, 1) * 0.25f);
temp_r31->unk60.z = sqrtf((sp1A0.z * sp1A0.z) + ((sp1A0.x * sp1A0.x) + (sp1A0.y * sp1A0.y)));
if (temp_r31->unk60.z >= 0.5f) {
if (temp_r31->unk60.z >= 10.0f) {
sp1A0.x /= temp_r31->unk60.z;
sp1A0.z /= temp_r31->unk60.z;
temp_r31->unk60.z = 10.0f;
sp1A0.x = 10.0f * sp1A0.x;
sp1A0.z = 10.0f * sp1A0.z;
}
temp_r31->unk54.y = fn_1_6594(temp_r31->unk54.y, atan2d(sp1A0.x, sp1A0.z), 0.4f);
if (temp_r31->unk60.z >= 8.0f) {
if (temp_r31->unk30 != 2) {
temp_r31->unk30 = 2;
CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[2], 0.0f, 8.0f, 0x40000001U);
Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[2], 0.0f, 8.0f, 0x40000001U);
}
} else if (temp_r31->unk30 != 1) {
temp_r31->unk30 = 1;
CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[1], 0.0f, 8.0f, 0x40000001U);
Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[1], 0.0f, 8.0f, 0x40000001U);
}
temp_r31->unk7C.x += 0.1f * sp1A0.x;
temp_r31->unk7C.z += 0.1f * sp1A0.z;
} else if (temp_r31->unk30 != 0) {
temp_r31->unk30 = 0;
CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[0]);
Hu3DModelAttrSet(temp_r31->unk0, 0x40000001);
Hu3DMotionSet(temp_r31->unk2, temp_r31->unk18[0]);
Hu3DMotionSpeedSet(temp_r31->unk2, 2.0f);
Hu3DModelAttrSet(temp_r31->unk2, 0x40000001);
}
var_f21 = sqrtf((temp_r31->unk7C.x * temp_r31->unk7C.x) + (temp_r31->unk7C.z * temp_r31->unk7C.z));
if (temp_r31->unk60.z > 0.5f) {
if (var_f21 > 0.25f) {
var_f21 -= 0.25f;
}
} else {
var_f21 -= 0.25f;
}
if (var_f21 < 0.0f) {
HuSetVecF(&temp_r31->unk7C, 0.0, 0.0, 0.0);
var_f21 = 0.0f;
} else {
if (var_f21 > 10.0f) {
var_f21 = 10.0f;
}
sp13C = fn_1_1D08(atan2d(temp_r31->unk7C.x, temp_r31->unk7C.z));
HuSetVecF(&temp_r31->unk7C, (var_f21 * sind(sp13C)), 0.0, (var_f21 * cosd(sp13C)));
}
temp_r31->unk60.y = var_f21;
temp_r31->unk40.x += temp_r31->unk7C.x;
temp_r31->unk40.z += temp_r31->unk7C.z;
temp_r31->unk38 = fn_1_53F4(temp_r31, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z);
if (temp_r31->unk38 != -1) {
temp_r30 = &lbl_1_bss_4D4[temp_r31->unk38];
if (temp_r30->unk30 != 3) {
var_f31 = atan2d((temp_r30->unk40.x - temp_r31->unk40.x), (temp_r30->unk40.z - temp_r31->unk40.z));
temp_f20 = atan2d(temp_r31->unk7C.x, temp_r31->unk7C.z);
var_f31 = ABS_INV(var_f31 - temp_f20);
if (var_f31 > 180.0f) {
var_f31 = 360.0f - var_f31;
}
sp138 = var_f31 / 90.0f;
var_f31 = atan2d((temp_r31->unk40.x - temp_r30->unk40.x), (temp_r31->unk40.z - temp_r30->unk40.z));
temp_f20 = atan2d(temp_r31->unk7C.x, temp_r31->unk7C.z);
temp_f20 = fn_1_1D08(180.0f + temp_f20);
temp_f20 = fn_1_1D08(var_f31 - (temp_f20 - var_f31));
var_f31 = fn_1_1D08(atan2d((temp_r30->unk40.x - temp_r31->unk40.x), (temp_r30->unk40.z - temp_r31->unk40.z)));
HuSetVecF(&sp1A0, temp_r31->unk7C.x, 0.0, temp_r31->unk7C.z);
spBC = sqrtf((sp1A0.x * sp1A0.x) + (sp1A0.z * sp1A0.z));
spBC *= (1.0f - sp138);
sp1A0.x = spBC * sind(var_f31);
sp1A0.z = spBC * cosd(var_f31);
HuSetVecF(&temp_r30->unk7C, sp1A0.x, 0.0, sp1A0.z);
HuSetVecF(&sp1A0, temp_r31->unk7C.x, 0.0, temp_r31->unk7C.z);
spB8 = sqrtf((sp1A0.x * sp1A0.x) + (sp1A0.z * sp1A0.z));
spB8 *= sp138;
sp1A0.x = spB8 * sind(temp_f20);
sp1A0.z = spB8 * cosd(temp_f20);
HuSetVecF(&temp_r31->unk7C, sp1A0.x, 0.0, sp1A0.z);
}
fn_1_5838(temp_r31);
}
while (1) {
AddX = 0.0f;
AddZ = 0.0f;
MapWall(temp_r31->unk60.x, temp_r31->unk40.x, temp_r31->unk40.y + temp_r31->unk60.x, temp_r31->unk40.z);
temp_r31->unk40.x += AddX;
temp_r31->unk40.z += AddZ;
if ((temp_r31->unk38 = fn_1_53F4(temp_r31, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z)) == -1) break;
temp_r31->unk40.x = temp_r31->unk4C.x;
temp_r31->unk40.z = temp_r31->unk4C.y;
}
Hu3DModelPosSet(temp_r31->unk0, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z);
Hu3DModelRotSet(temp_r31->unk0, temp_r31->unk54.x, temp_r31->unk54.y, temp_r31->unk54.z);
Hu3DModelPosSet(temp_r31->unk2, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z);
Hu3DModelRotSet(temp_r31->unk2, temp_r31->unk54.x, temp_r31->unk54.y, temp_r31->unk54.z);
HuPrcVSleep();
goto loop_6;
case 3:
HuAudFXPlay(0x584);
Hu3DModelAttrSet(temp_r31->unk0, 0x40000002);
Hu3DModelAttrSet(temp_r31->unk2, 0x40000002);
Hu3DModelPosSet(temp_r31->unkA, temp_r31->unk40.x + (100.0 * sind(lbl_1_bss_778)), 200.0f + temp_r31->unk40.y, temp_r31->unk40.z + (100.0 * cosd(lbl_1_bss_778)));
Hu3DModelAttrReset(temp_r31->unkA, 1);
Hu3DModelAttrReset(temp_r31->unkA, 0x40000002);
HuPrcSleep(10);
Hu3DModelAttrSet(temp_r31->unk0, 0x40000002);
Hu3DModelAttrSet(temp_r31->unk2, 0x40000002);
HuPrcSleep(10);
Hu3DModelPosSet(temp_r31->unk6, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z);
Hu3DModelPosSet(temp_r31->unk8, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z);
Hu3DModelAttrReset(temp_r31->unk6, 1);
Hu3DModelAttrReset(temp_r31->unk8, 1);
Hu3DModelShadowDispOn(temp_r31->unk6);
for (sp134 = 0.0f, sp130 = 1.0f; sp134 < 1; sp134 += 0.05f, sp130 -= 0.1f) {
Hu3DModelScaleSet(temp_r31->unk6, 1.0f, sp134, 1.0f);
Hu3DModelScaleSet(temp_r31->unk8, 1.0f, -sp134, 1.0f);
if (sp130 > 0.0f) {
Hu3DModelAmbSet(temp_r31->unk0, sp130, sp130, 1.0f);
}
HuPrcVSleep();
}
Hu3DModelScaleSet(temp_r31->unk6, 1.0f, 1.0f, 1.0f);
Hu3DModelScaleSet(temp_r31->unk8, 1.0f, -1.0f, 1.0f);
while (1) {
HuPrcVSleep();
}
case 4:
CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[0], 0.0f, 5.0f, 0x40000001U);
Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[0], 0.0f, 5.0f, 0x40000001);
var_r27 = 30;
sp12C = fn_1_27C4(var_r27, lbl_1_bss_778, temp_r31->unk54.y);
for (;var_r27 != 0; var_r27--) {
temp_r31->unk54.y += sp12C;
Hu3DModelRotSet(temp_r31->unk0, temp_r31->unk54.x, temp_r31->unk54.y, temp_r31->unk54.z);
Hu3DModelRotSet(temp_r31->unk2, temp_r31->unk54.x, temp_r31->unk54.y, temp_r31->unk54.z);
HuPrcVSleep();
}
while (lbl_1_bss_794 < 5) {
HuPrcVSleep();
}
CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[5], 0.0f, 5.0f, 0U);
Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[5], 0.0f, 5.0f, 0);
while (1) {
HuPrcVSleep();
}
}
}
void fn_1_A01C(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) {
HsfanimStruct01* var_r31;
f32 var_f29;
f32 var_f28;
f32 var_f30;
f32 var_f31;
s16 var_r25;
s16 var_r24;
s16 var_r26;
s16 var_r28;
s32 var_r27;
unkStruct* temp_r30;
if (particle->unk_34 == 0) {
var_r31 = particle->unk_48;
for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
var_r31->unk14.x = var_r31->unk2C = 0.0f;
}
}
var_r31 = particle->unk_48;
for (var_r26 = 0; var_r26 < 0x20; var_r26++) {
temp_r30 = lbl_1_bss_278[var_r26];
if (temp_r30 && (temp_r30->unkA != 0)) {
for (var_r25 = 0, var_f30 = 0.0f; var_r25 < 4; var_r25++, var_f30 += 45.0f) {
for (var_r24 = 0, var_f31 = 0.0f; var_r24 < 8; var_r24++, var_f31 += 45.0f) {
for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
if (var_r31->unk14.x == 0.0f) break;
}
if (var_r28 == particle->unk_30) break;
if (temp_r30->unkC == 1) {
var_f29 = 2.0f + (2.0f * frandf());
var_f28 = 10.0f;
} else {
var_f29 = 1.0f + frandf();
var_f28 = 3.0f;
}
var_r31->unk34.x = temp_r30->unk10.x + (var_f29 * (sind(var_f30) * cosd(var_f31)));
var_r31->unk34.y = temp_r30->unk10.y + (var_f29 * sind(var_f31));
var_r31->unk34.z = (temp_r30->unk10.z + (var_f29 * (cosd(var_f30) * cosd(var_f31))));
var_r31->unk08.x = (var_f28 * (sind(var_f30) * cosd(var_f31)));
var_r31->unk08.y = (var_f28 * sind(var_f31));
var_r31->unk08.z = (var_f28 * (cosd(var_f30) * cosd(var_f31)));
var_r31->unk14.x = 30.0f;
if (temp_r30->unkC == 1) {
var_r31->unk2C = 20.0f + (2.0f * frandf());
var_r31->unk14.y = 0.0f;
} else {
var_r31->unk2C = 15.0f;
var_r31->unk14.y = 0.0f;
}
var_r31->unk40.a = 0xFF;
var_r31->unk14.z = 20.0f;
}
}
temp_r30->unkA++;
}
}
var_r31 = particle->unk_48;
for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
if (var_r31->unk14.x != 0.0f) {
PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
var_r31->unk08.x *= 0.95f;
var_r31->unk08.z *= 0.95f;
var_r31->unk08.y -= 0.2f;
var_r31->unk2C += var_r31->unk14.y;
var_r27 = var_r31->unk40.a;
var_r27 -= var_r31->unk14.z;
if (var_r31->unk14.z > 3.0f) {
var_r31->unk14.z -= 1.0f;
}
if (var_r27 < 0) {
var_r27 = 0;
var_r31->unk14.x = 0.0f;
}
var_r31->unk40.a = var_r27;
if (var_r31->unk14.x == 0.0f) {
var_r31->unk2C = 0.0f;
}
}
}
}
void fn_1_A618(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) {
HsfanimStruct01* var_r31;
f32 var_f31;
f32 var_f30;
f32 var_f29;
f32 var_f28;
s16 var_r26;
s16 var_r25;
s16 var_r29;
s32 var_r27;
unkStruct* temp_r28;
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->unk14.x = var_r31->unk2C = 0.0f;
}
}
var_r31 = particle->unk_48;
for (var_r26 = 0; var_r26 < 0x20; var_r26++) {
temp_r28 = lbl_1_bss_278[var_r26];
if (temp_r28 && (temp_r28->unkA != 0)) {
for (var_r25 = 0, var_f28 = 0.0f; var_r25 < 9; var_r25++, var_f28 += 45.0f) {
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk14.x == 0.0f) break;
}
if (var_r29 == particle->unk_30) break;
var_f31 = var_f28;
if (var_r25 < 8) {
var_f30 = 1.0f + frandf();
var_f29 = 2.0f;
} else {
var_f30 = var_f29 = 0.0f;
}
var_r31->unk34.x = temp_r28->unk10.x + (var_f30 * sind(var_f31));
var_r31->unk34.y = temp_r28->unk10.y + (10.0f * frandf());
var_r31->unk34.z = temp_r28->unk10.z + (var_f30 * cosd(var_f31));
var_r31->unk08.x = var_f29 * sind(var_f31);
var_r31->unk08.y = -1.0f + frandf();
var_r31->unk08.z = var_f29 * cosd(var_f31);
var_r31->unk14.x = 30.0f;
var_r31->unk2C = 15.0f;
var_r31->unk14.y = 1.5f;
var_r31->unk40.a = 0xC8;
var_r31->unk14.z = 17.0f;
}
temp_r28->unkA = 0;
}
}
var_r31 = particle->unk_48;
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (0.0f != var_r31->unk14.x) {
PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
var_r31->unk08.x *= 0.95f;
var_r31->unk08.z *= 0.95f;
var_r31->unk08.y -= 0.2f;
var_r31->unk2C += var_r31->unk14.y;
var_r27 = var_r31->unk40.a;
var_r27 -= var_r31->unk14.z;
if (var_r31->unk14.z > 3.0f) {
var_r31->unk14.z -= 1.0f;
}
if (var_r27 < 0) {
var_r27 = 0;
var_r31->unk14.x = 0.0f;
}
var_r31->unk40.a = var_r27;
if (0.0f == var_r31->unk14.x) {
var_r31->unk2C = 0.0f;
}
}
}
}
void fn_1_AA88(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) {
HsfanimStruct01* var_r31;
f32 var_f31;
s16 var_r27;
s16 var_r28;
unkStruct2* temp_r29;
if (particle->unk_34 == 0) {
var_r31 = particle->unk_48;
for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
var_r31->unk14.x = var_r31->unk2C = 0.0f;
}
}
var_r31 = particle->unk_48;
for (var_r27 = 0; var_r27 < 6; var_r27++) {
temp_r29 = &lbl_1_bss_33C[var_r27];
if (temp_r29->unk20 == 0) continue;
for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
if (var_r31->unk14.x == 0.0f) break;
}
if (var_r28 == particle->unk_30) break;
var_r31->unk34.x = temp_r29->unk2C.x + (-100.0 * cosd(temp_r29->unk38.y));
var_r31->unk34.y = 98.0f + temp_r29->unk2C.y;
var_r31->unk34.z = temp_r29->unk2C.z + (100.0 * sind(temp_r29->unk38.y));
var_r31->unk14.x = 30.0f;
var_r31->unk2C = 80.0f;
var_r31->unk14.y = 5.0f;
var_r31->unk40.a = 0xC8;
var_r31->unk14.z = 17.0f;
temp_r29->unk20 = 0;
}
var_r31 = particle->unk_48;
for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
if (0.0f != var_r31->unk14.x) {
var_r31->unk2C += var_r31->unk14.y;
if (var_r31->unk14.y > 2.0f) {
var_r31->unk14.y -= 0.2f;
}
var_f31 = var_r31->unk40.a;
var_f31 -= var_r31->unk14.z;
if (var_r31->unk14.z > 3.0f) {
var_r31->unk14.z -= 1.0f;
}
if (var_f31 < 0.0f) {
var_f31 = 0.0f;
var_r31->unk14.x = 0.0f;
}
var_r31->unk40.a = var_f31;
if (var_r31->unk14.x == 0.0f) {
var_r31->unk2C = 0.0f;
}
}
}
}
void fn_1_ADC8(void) {
Vec sp14;
Vec sp8;
f32 var_f31;
void* temp_r28;
Process* var_r29;
s32 var_r31;
unkStruct3* temp_r30;
fn_1_6EC(1465.0f, 770.0f, -2400.0f, 0x588);
HuAudFXPlay(0x58B);
var_r31 = 0;
var_f31 = Hu3DMotionMaxTimeGet(lbl_1_bss_79E);
for (; var_f31; var_r31++, var_f31--) {
if (var_r31 == 0x33) {
Hu3DModelAttrReset(lbl_1_bss_798[0], 0x40000002);
Hu3DModelAttrReset(lbl_1_bss_798[0], 1);
Hu3DModelPosSet(lbl_1_bss_798[0], 1465.0f, 770.0f, -2400.0f);
}
if (var_r31 == 0x47) {
Hu3DModelAttrReset(lbl_1_bss_798[1], 0x40000002);
Hu3DModelAttrReset(lbl_1_bss_798[1], 1);
Hu3DModelPosSet(lbl_1_bss_798[1], 1531.0f, 773.0f, -2380.0f);
}
if (var_r31 == 0x82) {
temp_r28 = fn_1_6EC(1465.0f, 770.0f, -2400.0f, 0x580);
var_r29 = HuPrcChildCreate(fn_1_7BC, 0x2000, 0x1000, 0, HuPrcCurrentGet());
var_r29->user_data = temp_r28;
}
if (var_f31 == 90.0f) {
for (var_r31 = 0; var_r31 < 4; var_r31++) {
temp_r30 = &lbl_1_bss_4D4[var_r31];
CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[var_r31].character], temp_r30->unkC[3], 0.0f, 5.0f, 0U);
Hu3DMotionShiftSet(temp_r30->unk2, temp_r30->unk18[3], 0.0f, 5.0f, 0U);
}
}
HuPrcVSleep();
}
HuPrcSleep(30);
for (var_r31 = 0; var_r31 < 4; var_r31++) {
temp_r30 = &lbl_1_bss_4D4[var_r31];
HuAudPlayerVoicePlay(temp_r30->unk24, 0x128);
CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[var_r31].character], temp_r30->unkC[4], 0.0f, 5.0f, 0U);
Hu3DMotionShiftSet(temp_r30->unk2, temp_r30->unk18[4], 0.0f, 5.0f, 0U);
}
}
void fn_1_B13C(void) {
HuPrcSleep(0x1E);
}
void fn_1_B160(void) {
while (1) {
while (1) {
if (omSysExitReq != 1) break;
WipeCreate(2, 0, 0x3C);
HuAudFadeOut(0x3E8);
HuPrcSleep(0x3C);
MGSeqKillAll();
omOvlReturnEx(1, 1);
while (1) {
HuPrcVSleep();
}
}
HuPrcVSleep();
}
}
void fn_1_B1C0(void) {
s16 temp_r27;
s16 temp_r30;
s16 var_r29;
s32 var_r26;
s32 var_r28;
s32 var_r31;
lbl_1_bss_794 = 0;
for (var_r31 = 0; var_r31 < 4; var_r31++) {
lbl_1_bss_780[var_r31] = -1;
}
HuAudFXPlay(0x57F);
fn_1_6EC(1465.0f, 770.0f, -2400.0f, 0x589);
HuPrcSleep(1);
Hu3DModelAttrSet(lbl_1_bss_2F8.unk0, 0x40000002);
Hu3DModelClusterAttrSet(lbl_1_bss_2F8.unk0, 0, -0x3FFFFFFE);
Hu3DModelAttrSet(lbl_1_bss_2F8.unk2, 0x40000002);
Hu3DModelClusterAttrSet(lbl_1_bss_2F8.unk2, 0, -0x3FFFFFFE);
HuPrcSleep(1.0f + wipeData.duration);
fn_1_ADC8();
HuPrcSleep(30);
lbl_1_bss_794 = 1;
while (lbl_1_bss_794 == 1) {
HuPrcVSleep();
}
var_r26 = HuAudSeqPlay(0x43);
temp_r30 = MGSeqCreate(3, 0);
while (MGSeqStatGet(temp_r30) != 0) {
HuPrcVSleep();
}
var_r29 = 0xE4B;
temp_r27 = MGSeqCreate(1, var_r29 / 60, -1, -1);
lbl_1_bss_794 = 3;
while (1) {
for (var_r31 = 0, var_r28 = 0; var_r31 < 4; var_r31++) {
if (lbl_1_bss_4D4[var_r31].unk30 != 3) {
var_r28++;
}
}
if ((var_r28 <= 1) || (var_r29 < 0x3B)) break;
MGSeqParamSet(temp_r27, 1, var_r29-- / 60);
lbl_1_bss_790++;
HuPrcVSleep();
}
for (var_r31 = 0; var_r31 < 4; var_r31++) {
if (lbl_1_bss_4D4[var_r31].unk30 != 3) {
lbl_1_bss_780[var_r31] = GWPlayerCfg[var_r31].character;
if (_CheckFlag(0x1000C) == 0) {
GWPlayer[var_r31].coin_win = 10;
}
}
}
for (var_r31 = 0; var_r31 < 4; var_r31++) {
lbl_1_bss_4D4[var_r31].unk30 = 4;
}
lbl_1_bss_794 = 4;
HuAudSeqFadeOut(var_r26, 0x64);
MGSeqParamSet(temp_r27, 2, -1);
temp_r30 = MGSeqCreate(3, 1);
while (MGSeqStatGet(temp_r30) != 0) {
HuPrcVSleep();
}
HuPrcSleep(30);
lbl_1_bss_794 = 5;
for (var_r31 = 0; var_r31 < 4; var_r31++) {
if (lbl_1_bss_780[var_r31] != -1) break;
}
if (var_r31 < 4) {
HuAudSStreamPlay(1);
temp_r30 = MGSeqCreate(5, 3, lbl_1_bss_780[0], lbl_1_bss_780[1], lbl_1_bss_780[2], lbl_1_bss_780[3]);
} else {
HuAudSStreamPlay(4);
temp_r30 = MGSeqCreate(3, 2);
}
HuPrcSleep(0xD2);
WipeCreate(2, 0, 0x3C);
HuPrcSleep(0x3C);
HuAudFadeOut(1);
MGSeqKillAll();
omOvlReturnEx(1, 1);
while (1) {
HuPrcVSleep();
}
}