Merge pull request #479 from dbalatoni13/main

Finished m421Dll
This commit is contained in:
Liam Coleman 2024-11-25 08:00:11 -06:00 committed by GitHub
commit dccb4e6fa9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 2424 additions and 200 deletions

View file

@ -79,157 +79,157 @@ fn_1_B398 = .text:0x0000B398; // type:function size:0x4
fn_1_B39C = .text:0x0000B39C; // type:function size:0x40
_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:0xC data:4byte
lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte
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_60 = .rodata:0x00000060; // type:object size:0x8 data:double
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: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:0x8 data:double
lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double
lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float
lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float
lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float
lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float
lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float
lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:4byte
lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x50 data:float
lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x14 data:4byte
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:0x10 data:4byte
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:0x4 data:float
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:0x8 data:float
lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x10 data:4byte
lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 data:4byte
lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x30 data:4byte
lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float
lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float
lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float
lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float
lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float
lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float
lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float
lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double
lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x30 data:4byte
lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float
lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float
lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double
lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float
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:0x8 data:double
lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float
lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double
lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double
lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float
lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double
lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:4byte
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:0x4 data:float
lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float
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:0x4 data:float
lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float
lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float
lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float
lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double
lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double
lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double
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:0x4 data:float
lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float
lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float
lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float
lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size: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:0x4 data:float
lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float
lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double
lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float
lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float
lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float
lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float
lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float
lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float
lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float
lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float
lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float
lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float
lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float
lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float
lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float
lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float
lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float
lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float
lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float
lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float
lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float
lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float
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:0x4 data:float
lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float
lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float
lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float
lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float
lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float
lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float
lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float
lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double
lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double
lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double
lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float
lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float
lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float
lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float
lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float
lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC scope:local data:float
lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC 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_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double
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: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:0x8 scope:local data:double
lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double
lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float
lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:4byte
lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x50 scope:local data:float
lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x14 scope:local data:4byte
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:0x10 scope:local data:4byte
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:0x4 scope:local data:float
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:0x8 scope:local data:float
lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x10 scope:local data:float
lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 scope:local data:float
lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x30 scope:local data:float
lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double
lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x30 scope:local data:float
lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float
lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float
lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double
lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float
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:0x8 scope:local data:double
lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float
lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double
lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double
lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float
lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double
lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC scope:local data:4byte
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:0x4 scope:local data:float
lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float
lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 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:0x4 scope:local data:float
lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double
lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double
lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double
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:0x4 scope:local data:float
lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size: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:0x4 scope:local data:float
lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float
lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double
lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float
lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float
lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float
lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float
lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float
lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float
lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float
lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float
lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float
lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float
lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float
lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float
lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float
lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float
lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float
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:0x4 scope:local data:float
lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float
lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float
lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float
lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float
lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float
lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double
lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double
lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 scope:local data:double
lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:float
lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float
lbl_1_data_0 = .data:0x00000000; // type:object size:0xC
lbl_1_data_C = .data:0x0000000C; // type:object size:0xC
lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float
@ -237,13 +237,13 @@ lbl_1_data_24 = .data:0x00000024; // type:object size:0x4
lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float
lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float
lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float
lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24
lbl_1_data_70 = .data:0x00000070; // type:object size:0x24
lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 data:float
lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 data:float
lbl_1_data_94 = .data:0x00000094; // type:object size:0xC
lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x4 data:byte
lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x1A data:string
lbl_1_data_BE = .data:0x000000BE; // type:object size:0x19 data:string
lbl_1_data_D8 = .data:0x000000D8; // type:object size:0xB data:string
lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x1A scope:local data:string
lbl_1_data_BE = .data:0x000000BE; // type:object size:0x19 scope:local data:string
lbl_1_data_D8 = .data:0x000000D8; // type:object size:0xB scope:local data:string
lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x20
lbl_1_data_104 = .data:0x00000104; // type:object size:0x60
lbl_1_data_164 = .data:0x00000164; // type:object size:0x20

View file

@ -1005,9 +1005,9 @@ config.libs = [
Rel(
"m421Dll", # Hop or Pop
objects={
Object(NonMatching, "REL/m421Dll/main.c"),
Object(NonMatching, "REL/m421Dll/player.c"),
Object(NonMatching, "REL/m421Dll/map.c"),
Object(Matching, "REL/m421Dll/main.c"),
Object(Matching, "REL/m421Dll/player.c"),
Object(Matching, "REL/m421Dll/map.c"),
},
),
Rel(

View file

@ -25,18 +25,38 @@ typedef struct M421DllCameraStruct {
s32 unk_3C;
float unk_40;
UnkM421DllStruct unk_44;
char unk54[0x30];
float unk_54;
float unk_58;
float unk_5C;
float unk_60;
float unk_64;
float unk_68;
char unk6C[0x18];
float unk_84;
char unk88[0x4];
float unk_8C;
float unk_90;
s32 unk_94;
u32 unk_94;
char unk98[0xC];
} M421DllCameraStruct; /* size = 0xA4 */ // same as M443DllCameraStruct and M460
M421DllCameraStruct *fn_1_3C14(s32 arg0);
u32 fn_1_3E34(void);
u32 fn_1_3E4C(void);
u32 fn_1_3E64(void);
s32 fn_1_3E7C(s32 arg0);
s32 fn_1_3EF8(s32 arg0);
void fn_1_3F28(s32 arg0, s32 arg1, s32 arg2);
void fn_1_3F68(s32 arg0);
void fn_1_3F98(s32 arg0);
void fn_1_3FC8(s32 arg0);
s32 fn_1_3FF8(void);
float fn_1_4478(float arg8, float arg9, float argA);
void fn_1_4648(Process *process);
void fn_1_48B0(void);
void fn_1_B15C(Process *process, omObjData *object);
void fn_1_B15C(Process *process);
void fn_1_B1BC(void);
void fn_1_B39C(void);
#endif

View file

@ -1,5 +1,3 @@
#include "dolphin/gx/GXEnum.h"
#include "dolphin/gx/GXVert.h"
#include "ext_math.h"
#include "game/audio.h"
#include "game/gamework.h"
@ -22,27 +20,24 @@ typedef struct M421DllWork {
u32 unk_00;
s32 unk_04;
s32 unk_08;
u32 unk0C;
u32 unk_0C;
s32 unk_10;
u32 unk_14;
u32 unk_18;
u32 unk_1C;
u32 unk_20;
u32 unk24;
s32 unk28;
u32 unk_28;
u32 unk_2C;
s32 unk30;
char unk34[0x4];
u32 unk38;
s32 unk3C;
s32 unk40;
s32 unk44;
s32 unk48;
s32 unk4C;
u32 unk50;
s32 unk54[4];
s32 unk64[4];
} M421DllWork; /* size = 0x74 */ // TODO check the fields, they are copy pasted
s32 unk_30[4];
s32 unk_40[4];
s32 unk_50[4];
u32 unk_60;
u32 unk_64;
u32 unk_68;
u32 unk_6C;
s32 unk_70;
} M421DllWork; /* size = 0x74 */
void fn_1_10EC(omObjData *object);
void fn_1_142C(omObjData *object);
@ -66,6 +61,24 @@ void fn_1_784(omObjData *object);
void fn_1_8B8(omObjData *object);
void fn_1_CBC(omObjData *object);
Vec lbl_1_data_0 = { 100.0f, 800.0f, -100.0f };
Vec lbl_1_data_C = { 0.3f, -0.8f, 0.3f };
Vec lbl_1_data_18 = { 10.0f, 45.0f, 3500.0f };
GXColor lbl_1_data_24 = { 0xFF, 0xFF, 0xFF, 0xFF };
Vec lbl_1_data_28 = { 50.0f, 150000.0f, 50.0f };
Vec lbl_1_data_34 = { 0.0f, 1.0f, 0.0f };
Vec lbl_1_data_40 = { 0.0f, 0.0f, 0.0f };
Vec lbl_1_data_4C[3] = {
{ 0.0f, 200.0f, -50.0f },
{ 0.0f, 200.0f, -50.0f },
{ 0.0f, 200.0f, -50.0f },
};
Vec lbl_1_data_70[3] = {
{ -37.5f, 0.0f, 1500.0f },
{ -37.5f, 0.0f, 1500.0f },
{ -37.5f, 0.0f, 2300.0f },
};
s32 lbl_1_data_94[3] = { 0xF0, 0x1E, 0 };
GXColor lbl_1_data_A0 = { 0, 0, 0, 0 };
Process *lbl_1_bss_28;
@ -74,7 +87,7 @@ omObjData *lbl_1_bss_20;
// M421DllCameraStruct
omObjData *lbl_1_bss_1C;
s16 lbl_1_bss_18;
s16 lbl_1_bss_12;
s16 lbl_1_bss_12[3];
s16 lbl_1_bss_10;
s16 lbl_1_bss_E;
s16 lbl_1_bss_C;
@ -82,21 +95,92 @@ s32 lbl_1_bss_8;
s32 lbl_1_bss_4;
s32 lbl_1_bss_0;
void fn_1_578(omObjData *var_r29)
void ObjectSetup(void)
{
Mtx sp2C;
Vec sp20 = { 0.0f, 0.0f, 0.0f };
Vec sp14 = { 0.0f, 0.0f, -1.0f };
Vec sp8;
Process *process;
LightData *lightData;
lbl_1_bss_8 = 0;
HuAudSndGrpSet(0x2E);
HuAudFXListnerSetEX(&sp20, &sp14, 11200.0f, 4166.6665f, 0.0f, 300.0f, 0.0f);
lbl_1_bss_4 = lbl_1_bss_0 = -1;
lbl_1_bss_18 = -1;
lbl_1_data_28.x = 200.0f;
lbl_1_data_28.y = 1200.0f;
lbl_1_data_28.z = 160.0f;
lbl_1_data_34.x = 0.0f;
lbl_1_data_34.y = 1.0f;
lbl_1_data_34.z = 0.0f;
lbl_1_data_40.x = 0.0f;
lbl_1_data_40.y = 0.0f;
lbl_1_data_40.z = 0.0f;
Hu3DShadowCreate(22.0f, 20.0f, 25000.0f);
Hu3DShadowTPLvlSet(0.625f);
Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40);
lbl_1_bss_12[0] = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24);
Hu3DGLightInfinitytSet(lbl_1_bss_12[0]);
lightData = &Hu3DGlobalLight[lbl_1_bss_12[0]];
lightData->unk_00 |= 0x8000;
lbl_1_data_18.x = 1.0f;
lbl_1_data_18.y = 0.0f;
lbl_1_data_18.z = 4200.0f;
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);
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;
process = omInitObjMan(0x32, 0x2000);
lbl_1_bss_28 = process;
omGameSysInit(process);
fn_1_3020(process);
lbl_1_bss_24 = omAddObjEx(process, 0xA, 0, 0, -1, fn_1_4A0);
fn_1_B15C(process);
fn_1_4648(process);
}
void fn_1_4A0(omObjData *object)
{
M421DllWork *work;
object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M421DllWork), MEMORY_DEFAULT_NUM);
work = object->data;
memset(work, 0, sizeof(M421DllWork));
work->unk_00 = 0;
work->unk_04 = 0;
work->unk_0C = 0;
work->unk_10 = 0;
work->unk_14 = 0;
work->unk_18 = 0;
work->unk_28 = 0;
work->unk_2C = 0;
work->unk_08 = 0;
work->unk_64 = 2;
work->unk_50[0] = work->unk_50[1] = work->unk_50[2] = work->unk_50[3] = -1;
work->unk_68 = 0;
work->unk_70 = 0;
object->func = fn_1_8B8;
}
void fn_1_578(omObjData *object)
{
Vec sp14;
Vec sp8;
M421DllCameraStruct *var_r31;
M421DllWork *var_r30;
var_r30 = var_r29->data;
var_r30->unk_04++;
var_r30->unk_10++;
var_r30->unk_18++;
var_r30->unk_2C++;
if ((omSysExitReq != 0) && (var_r30->unk_00 != 5)) {
var_r30->unk_00 = 4;
fn_1_784(var_r29);
M421DllWork *work = object->data;
work->unk_04++;
work->unk_10++;
work->unk_18++;
work->unk_2C++;
if ((omSysExitReq != 0) && (work->unk_00 != 5)) {
work->unk_00 = 4;
fn_1_784(object);
}
var_r31 = fn_1_3B78(1);
sp8.x = -(sind(var_r31->unk_28.y) * cosd(var_r31->unk_28.x));
@ -182,7 +266,7 @@ void fn_1_142C(omObjData *object)
case 0:
work->unk_1C = 0x2D;
work->unk_20 = 0x3C;
lbl_1_bss_18 = MGSeqCreate(3, 0);
lbl_1_bss_10 = MGSeqCreate(3, 0);
MGSeqPosSet(lbl_1_bss_10, 320.0f, 240.0f);
lbl_1_bss_18 = -1;
work->unk_14 = 1;
@ -192,7 +276,7 @@ void fn_1_142C(omObjData *object)
if ((lbl_1_bss_4 < 0) && ((MGSeqStatGet(lbl_1_bss_10) & 0x10) != 0)) {
lbl_1_bss_4 = HuAudSeqPlay(0x48);
}
if (MGSeqStatGet(lbl_1_bss_18) == 0 && (work->unk_08 == 0)) {
if (MGSeqStatGet(lbl_1_bss_10) == 0 && (work->unk_08 == 0)) {
work->unk_14 = 2;
work->unk_18 = 0;
object->func = fn_1_1850;
@ -201,6 +285,61 @@ void fn_1_142C(omObjData *object)
}
}
void fn_1_1850(omObjData *object)
{
M421DllWork *work = object->data;
s32 var_r26 = 0;
fn_1_578(object);
if (--work->unk_20 == 0) {
work->unk_20 = 0x3C;
work->unk_1C--;
if ((work->unk_1C == 0) && (work->unk_64 == 2)) {
work->unk_64 = 1;
var_r26 = 1;
}
}
if (lbl_1_bss_18 < 0) {
lbl_1_bss_18 = MGSeqCreate(1, work->unk_1C, -1, -1);
}
MGSeqParamSet(lbl_1_bss_18, 1, work->unk_1C);
if (work->unk_64 != 2) {
var_r26 = 1;
}
if (var_r26 != 0) {
lbl_1_bss_E = MGSeqCreate(3, 1);
MGSeqPosSet(lbl_1_bss_E, 320.0f, 240.0f);
HuAudSeqFadeOut(lbl_1_bss_4, 0x64);
work->unk_14 = 3;
work->unk_18 = 0;
if (work->unk_08 == 0) {
object->func = fn_1_1C90;
}
}
}
void fn_1_1C90(omObjData *object)
{
M421DllWork *work = object->data;
s32 var_r25 = 0;
if (lbl_1_bss_18 >= 0) {
MGSeqParamSet(lbl_1_bss_18, 2, -1);
lbl_1_bss_18 = -1;
}
fn_1_578(object);
if (work->unk_14 == 3) {
var_r25 = 1;
if ((MGSeqStatGet(lbl_1_bss_E) == 0) && (work->unk_68 == 0x1111) && (var_r25 != 0)) {
work->unk_14 = 4;
work->unk_18 = 0;
}
}
else {
work->unk_14 = 5;
work->unk_18 = 0;
fn_1_784(object);
}
}
omObjFunc fn_1_213C(Process *process, omObjData *object)
{
M421DllCameraStruct *var_r31;
@ -213,6 +352,121 @@ omObjFunc fn_1_213C(Process *process, omObjData *object)
return fn_1_21AC;
}
void fn_1_21AC(omObjData *object)
{
Vec sp20;
float var_f31;
M421DllCameraStruct *var_r30;
M421DllWork *work;
work = object->data;
fn_1_578(object);
work->unk_0C = 1;
object->work[0]++;
var_f31 = (float)object->work[0] / lbl_1_data_94[object->work[1]];
VECSubtract(&lbl_1_data_4C[object->work[1] + 1], &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;
VECSubtract(&lbl_1_data_70[object->work[1] + 1], &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;
CZoom = sp20.z;
var_r30 = fn_1_3CB0(0);
var_r30->unk_1C = Center;
var_r30->unk_28 = CRot;
var_r30->unk_34 = CZoom;
var_r30->unk_94++;
if (var_r30->unk_94 > 180.0f) {
var_r30->unk_84 -= 0.025000002f;
if (var_r30->unk_84 < 0.0f) {
var_r30->unk_84 = 0.0f;
}
var_r30->unk_1C.x += var_r30->unk_84 * ((0.02f * frandmod(0x3E8)) - 10.0f);
var_r30->unk_1C.y += var_r30->unk_84 * ((0.02f * frandmod(0x3E8)) - 10.0f);
var_r30->unk_1C.z += var_r30->unk_84 * ((0.02f * frandmod(0x3E8)) - 10.0f);
}
if (var_f31 >= 1.0f) {
object->work[0] = 0;
object->work[1]++;
if (lbl_1_data_94[object->work[1]] == 0) {
work->unk_0C = 2;
fn_1_784(object);
}
}
}
omObjFunc fn_1_2A28(Process *process, omObjData *object)
{
M421DllCameraStruct *var_r31;
s32 var_r30;
M421DllWork *var_r29;
s32 var_r28;
var_r29 = object->data;
var_r28 = 1;
var_r31 = fn_1_3CB0(0);
if (var_r29->unk_64 == 1) {
var_r28 = 0;
}
for (var_r30 = 0; var_r30 < 4; var_r30++) {
var_r29->unk_50[var_r30] = -1;
if ((var_r29->unk_40[var_r30] == 0) == var_r28) {
var_r29->unk_50[var_r30] = var_r29->unk_30[var_r30];
}
}
for (var_r30 = 0; var_r30 < 4; var_r30++) {
if (var_r29->unk_50[var_r30] >= 0) {
GWPlayerCoinWinAdd(var_r30, 10);
}
}
var_r31->unk_54 = 0.0f;
var_r31->unk_58 = 150.0f;
var_r31->unk_5C = 0.0f;
var_r31->unk_60 = -30.0f;
var_r31->unk_64 = 0.0f;
var_r31->unk_68 = 1000.0f;
var_r31->unk_84 = 0.0f;
return fn_1_2BB8;
}
void fn_1_2BB8(omObjData *var_r29)
{
M421DllCameraStruct *var_r31;
M421DllWork *var_r28;
var_r28 = var_r29->data;
var_r31 = fn_1_3CB0(0);
fn_1_578(var_r29);
var_r31->unk_84 += 0.0016666668f;
if (var_r31->unk_84 > 0.1f) {
var_r31->unk_84 = 0.1f;
}
var_r31->unk_1C.y += var_r31->unk_84 * (var_r31->unk_58 - var_r31->unk_1C.y);
var_r31->unk_1C.z += var_r31->unk_84 * (var_r31->unk_5C - var_r31->unk_1C.z);
var_r31->unk_28.x = fn_1_4478(var_r31->unk_28.x, var_r31->unk_60, var_r31->unk_84);
var_r31->unk_34 += var_r31->unk_84 * (var_r31->unk_68 - var_r31->unk_34);
if (var_r28->unk_6C == 0x1111) {
var_r28->unk_28 = 1;
if (lbl_1_bss_0 < 0) {
lbl_1_bss_0 = HuAudSStreamPlay(1);
}
if (lbl_1_bss_C < 0) {
lbl_1_bss_C = MGSeqCreate(5, 3, var_r28->unk_50[0], var_r28->unk_50[1], var_r28->unk_50[2], var_r28->unk_50[3]);
return;
}
if ((MGSeqStatGet(lbl_1_bss_C) == 0) && (var_r28->unk_2C >= 210.0f)) {
var_r28->unk_28 = 2;
fn_1_784(var_r29);
}
}
}
void fn_1_3020(Process *process)
{
Hu3DCameraCreate(0x1F);
@ -275,7 +529,7 @@ void fn_1_3334(omObjData *object)
fn_1_335C(object);
}
void fn_1_335C(omObjData *var_r28)
void fn_1_335C(omObjData *object)
{
float var_f31;
M421DllCameraStruct *var_r31;
@ -289,7 +543,7 @@ void fn_1_335C(omObjData *var_r28)
u32 var_r22;
u32 var_r21;
var_r27 = var_r28->data;
var_r27 = object->data;
{
s32 sp40[4] = { 2, 4, 8, 16 };
u32 sp30[4];
@ -299,7 +553,7 @@ void fn_1_335C(omObjData *var_r28)
var_r24 = 0;
var_r26 = 0;
memcpy(&var_r27[5], var_r27, 5 * sizeof(M421DllCameraStruct));
switch (var_r28->work[1]) {
switch (object->work[1]) {
case 0:
break;
case 1:
@ -314,10 +568,10 @@ void fn_1_335C(omObjData *var_r28)
break;
}
if (var_r24 != 0) {
Hu3DModelAttrReset(var_r28->model[0], HU3D_ATTR_DISPOFF);
Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF);
}
else {
Hu3DModelAttrSet(var_r28->model[0], HU3D_ATTR_DISPOFF);
Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF);
}
for (var_r30 = 0; var_r30 < 4; var_r30++) {
sp30[var_r30] = var_r27[var_r30 + 6].unk_04;
@ -509,18 +763,86 @@ void fn_1_3D84(s32 arg0, s32 arg1)
}
}
s32 fn_1_3E1C(void)
{
return ((M421DllWork *)lbl_1_bss_24->data)->unk_00;
}
u32 fn_1_3E34(void)
{
return ((M421DllWork *)lbl_1_bss_24->data)->unk_0C;
}
u32 fn_1_3E4C(void)
{
return ((M421DllWork *)lbl_1_bss_24->data)->unk_14;
}
u32 fn_1_3E64(void)
{
return ((M421DllWork *)lbl_1_bss_24->data)->unk_28;
}
s32 fn_1_3E7C(s32 arg0)
{
M421DllWork *work = lbl_1_bss_24->data;
if (work->unk_64 != 2) {
return 0;
}
work->unk_60 |= (1 << ((arg0 & 3) * 4));
if (((work->unk_60 & 0x1110) == 0x1110) && (work->unk_64 == 2)) {
work->unk_64 = 0;
}
return 1;
}
s32 fn_1_3EF8(s32 arg0)
{
M421DllWork *work = lbl_1_bss_24->data;
return work->unk_50[arg0];
}
void fn_1_3F28(s32 arg0, s32 arg1, s32 arg2)
{
M421DllWork *work = lbl_1_bss_24->data;
arg0 &= 3;
work->unk_40[arg0] = arg1;
work->unk_30[arg0] = arg2;
}
void fn_1_3F68(s32 arg0)
{
((M421DllWork *)lbl_1_bss_24->data)->unk_68 |= (1 << ((arg0 & 7) * 4));
}
void fn_1_3F98(s32 arg0)
{
((M421DllWork *)lbl_1_bss_24->data)->unk_6C |= (1 << ((arg0 & 3) * 4));
}
void fn_1_3FC8(s32 arg0)
{
((M421DllWork *)lbl_1_bss_24->data)->unk_70 |= (1 << ((arg0 & 3) * 4));
}
s32 fn_1_3FF8(void)
{
return MGSeqStatGet(lbl_1_bss_E) == 0;
}
void fn_1_4030(Vec *sp8, Vec *var_r31)
{
Vec sp10;
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_4238(float arg8, float arg9, float argA, float argB, float argC, float argD)
@ -535,12 +857,12 @@ void fn_1_4238(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_4478(float arg8, float arg9, float argA)

54
src/REL/m421Dll/map.c Normal file
View file

@ -0,0 +1,54 @@
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "REL/m421Dll.h"
void fn_1_B1C0(omObjData *object);
void fn_1_B398(omObjData *object);
omObjData *lbl_1_bss_58;
void fn_1_B15C(Process *work)
{
omObjData *object = omAddObjEx(work, 0x1E, 6, 0, -1, fn_1_B1C0);
lbl_1_bss_58 = object;
object->work[0] = 0;
}
void fn_1_B1BC(void) { }
void fn_1_B1C0(omObjData *var_r31)
{
omSetTra(var_r31, 0.0f, 0.0f, 0.0f);
var_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x02));
Hu3DModelLayerSet(var_r31->model[0], 1);
Hu3DModelShadowMapSet(var_r31->model[0]);
var_r31->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x00));
Hu3DModelLayerSet(var_r31->model[1], 1);
var_r31->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x01));
Hu3DModelLayerSet(var_r31->model[2], 5);
var_r31->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x05));
Hu3DModelLayerSet(var_r31->model[3], 1);
Hu3DModelAttrSet(var_r31->model[3], HU3D_MOTATTR_LOOP);
var_r31->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x03));
Hu3DModelLayerSet(var_r31->model[4], 5);
Hu3DModelAttrSet(var_r31->model[4], HU3D_MOTATTR_LOOP);
var_r31->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x04));
Hu3DModelLayerSet(var_r31->model[5], 5);
Hu3DMotionTimeSet(var_r31->model[5], 0.0f);
var_r31->work[0] = 0;
var_r31->work[1] = 0;
var_r31->func = fn_1_B398;
}
void fn_1_B398(omObjData *object) { }
void fn_1_B39C(void)
{
Hu3DMotionTimeSet(lbl_1_bss_58->model[5], 0.0f);
}

1828
src/REL/m421Dll/player.c Normal file

File diff suppressed because it is too large Load diff