Merge branch 'Rainchus:main' into main

This commit is contained in:
CreateSource 2024-04-28 15:06:32 -04:00 committed by GitHub
commit 8243ade01d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
30 changed files with 3706 additions and 509 deletions

View file

@ -447,8 +447,8 @@ lbl_2_data_118 = .data:0x00000118; // type:object size:0xC
lbl_2_data_124 = .data:0x00000124; // type:object size:0x14 data:4byte
lbl_2_data_138 = .data:0x00000138; // type:object size:0x20 data:4byte
lbl_2_data_158 = .data:0x00000158; // type:object size:0x140
lbl_2_data_298 = .data:0x00000298; // type:object size:0x30
lbl_2_data_2C8 = .data:0x000002C8; // type:object size:0x30
lbl_2_data_298 = .data:0x00000298; // type:object size:0x30 data:float
lbl_2_data_2C8 = .data:0x000002C8; // type:object size:0x30 data:float
jumptable_2_data_2F8 = .data:0x000002F8; // type:object size:0x30 scope:local
lbl_2_data_32C = .data:0x0000032C; // type:object size:0x8
lbl_2_data_334 = .data:0x00000334; // type:object size:0xF0

View file

@ -17,13 +17,13 @@ REL/w04Dll/main.c:
.bss start:0x00000000 end:0x00000038
REL/w04Dll/bridge.c:
.text start:0x000012FC end:0x00002044
.text start:0x000012FC end:0x000020EC
.rodata start:0x00000040 end:0x00000098
.data start:0x00000298 end:0x000002D0
.bss start:0x00000038 end:0x00000048
REL/w04Dll/boo_event.c:
.text start:0x00002044 end:0x00006024
.text start:0x000020EC end:0x00006024
.rodata start:0x00000098 end:0x00000180
.data start:0x000002D0 end:0x000003A8
.bss start:0x00000048 end:0x00000100

View file

@ -53,49 +53,49 @@ fn_1_5980 = .text:0x00005980; // type:function size:0x44 scope:local
fn_1_59C4 = .text:0x000059C4; // type:function size:0x68 scope:local
fn_1_5A2C = .text:0x00005A2C; // type:function size:0x5F8 scope:local
fn_1_6024 = .text:0x00006024; // type:function size:0x28C
fn_1_62B0 = .text:0x000062B0; // type:function size:0x628
fn_1_68D8 = .text:0x000068D8; // type:function size:0x420
fn_1_6CF8 = .text:0x00006CF8; // type:function size:0x608
fn_1_7300 = .text:0x00007300; // type:function size:0x27C
fn_1_757C = .text:0x0000757C; // type:function size:0x5C
fn_1_75D8 = .text:0x000075D8; // type:function size:0x2B0
fn_1_7888 = .text:0x00007888; // type:function size:0x11D8
fn_1_8A60 = .text:0x00008A60; // type:function size:0xE40
fn_1_98A0 = .text:0x000098A0; // type:function size:0x294
fn_1_9B34 = .text:0x00009B34; // type:function size:0xA8
fn_1_9BDC = .text:0x00009BDC; // type:function size:0x3C
fn_1_9C18 = .text:0x00009C18; // type:function size:0x290
fn_1_9EA8 = .text:0x00009EA8; // type:function size:0x14
fn_1_62B0 = .text:0x000062B0; // type:function size:0x628 scope:local
fn_1_68D8 = .text:0x000068D8; // type:function size:0x420 scope:local
fn_1_6CF8 = .text:0x00006CF8; // type:function size:0x608 scope:local
fn_1_7300 = .text:0x00007300; // type:function size:0x27C scope:local
fn_1_757C = .text:0x0000757C; // type:function size:0x5C scope:local
fn_1_75D8 = .text:0x000075D8; // type:function size:0x2B0 scope:local
fn_1_7888 = .text:0x00007888; // type:function size:0x11D8 scope:local
fn_1_8A60 = .text:0x00008A60; // type:function size:0xE40 scope:local
fn_1_98A0 = .text:0x000098A0; // type:function size:0x294 scope:local
fn_1_9B34 = .text:0x00009B34; // type:function size:0xA8 scope:local
fn_1_9BDC = .text:0x00009BDC; // type:function size:0x3C scope:local
fn_1_9C18 = .text:0x00009C18; // type:function size:0x290 scope:local
fn_1_9EA8 = .text:0x00009EA8; // type:function size:0x14 scope:local
fn_1_9EBC = .text:0x00009EBC; // type:function size:0x94
fn_1_9F50 = .text:0x00009F50; // type:function size:0x124
fn_1_A074 = .text:0x0000A074; // type:function size:0x84
fn_1_9F50 = .text:0x00009F50; // type:function size:0x124 scope:local
fn_1_A074 = .text:0x0000A074; // type:function size:0x84 scope:local
fn_1_A0F8 = .text:0x0000A0F8; // type:function size:0xF8
fn_1_A1F0 = .text:0x0000A1F0; // type:function size:0x52C
fn_1_A71C = .text:0x0000A71C; // type:function size:0xCC
fn_1_A7E8 = .text:0x0000A7E8; // type:function size:0x1294
fn_1_A71C = .text:0x0000A71C; // type:function size:0xCC scope:local
fn_1_A7E8 = .text:0x0000A7E8; // type:function size:0x1294 scope:local
fn_1_BA7C = .text:0x0000BA7C; // type:function size:0x84
fn_1_BB00 = .text:0x0000BB00; // type:function size:0x7BC
fn_1_C2BC = .text:0x0000C2BC; // type:function size:0xCC
fn_1_C388 = .text:0x0000C388; // type:function size:0x418
fn_1_C388 = .text:0x0000C388; // type:function size:0x418 scope:local
fn_1_C7A0 = .text:0x0000C7A0; // type:function size:0x34
fn_1_C7D4 = .text:0x0000C7D4; // type:function size:0x7B8
fn_1_CF8C = .text:0x0000CF8C; // type:function size:0x120
fn_1_D0AC = .text:0x0000D0AC; // type:function size:0x30
fn_1_D0DC = .text:0x0000D0DC; // type:function size:0x98
fn_1_D174 = .text:0x0000D174; // type:function size:0xBC
fn_1_D230 = .text:0x0000D230; // type:function size:0x74
fn_1_D2A4 = .text:0x0000D2A4; // type:function size:0x2B0
fn_1_D554 = .text:0x0000D554; // type:function size:0x154
fn_1_D6A8 = .text:0x0000D6A8; // type:function size:0x64
fn_1_D70C = .text:0x0000D70C; // type:function size:0x64
fn_1_D770 = .text:0x0000D770; // type:function size:0x894
fn_1_E004 = .text:0x0000E004; // type:function size:0x140
fn_1_E144 = .text:0x0000E144; // type:function size:0x48
fn_1_E18C = .text:0x0000E18C; // type:function size:0x1E8
fn_1_E374 = .text:0x0000E374; // type:function size:0x14C
fn_1_E4C0 = .text:0x0000E4C0; // type:function size:0x1EC
fn_1_E6AC = .text:0x0000E6AC; // type:function size:0x1D4
fn_1_E880 = .text:0x0000E880; // type:function size:0x18C
fn_1_CF8C = .text:0x0000CF8C; // type:function size:0x120 scope:local
fn_1_D0AC = .text:0x0000D0AC; // type:function size:0x30 scope:local
fn_1_D0DC = .text:0x0000D0DC; // type:function size:0x98 scope:local
fn_1_D174 = .text:0x0000D174; // type:function size:0xBC scope:local
fn_1_D230 = .text:0x0000D230; // type:function size:0x74 scope:local
fn_1_D2A4 = .text:0x0000D2A4; // type:function size:0x2B0 scope:local
fn_1_D554 = .text:0x0000D554; // type:function size:0x154 scope:local
fn_1_D6A8 = .text:0x0000D6A8; // type:function size:0x64 scope:local
fn_1_D70C = .text:0x0000D70C; // type:function size:0x64 scope:local
fn_1_D770 = .text:0x0000D770; // type:function size:0x894 scope:local
fn_1_E004 = .text:0x0000E004; // type:function size:0x140 scope:local
fn_1_E144 = .text:0x0000E144; // type:function size:0x48 scope:local
fn_1_E18C = .text:0x0000E18C; // type:function size:0x1E8 scope:local
fn_1_E374 = .text:0x0000E374; // type:function size:0x14C scope:local
fn_1_E4C0 = .text:0x0000E4C0; // type:function size:0x1EC scope:local
fn_1_E6AC = .text:0x0000E6AC; // type:function size:0x1D4 scope:local
fn_1_E880 = .text:0x0000E880; // type:function size:0x18C scope:local
_ctors = .ctors:0x00000000; // type:label scope:global data:4byte
_dtors = .dtors:0x00000000; // type:label scope:global data:4byte
lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float
@ -174,149 +174,149 @@ lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:
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 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:0x8 data:double
lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float
lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float
lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float
lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float
lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float
lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float
lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float
lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float
lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float
lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float
lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float
lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float
lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float
lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float
lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float
lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float
lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float
lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size: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_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double
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_210 = .rodata:0x00000210; // type:object size:0x8 data:double
lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double
lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float
lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float
lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float
lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0xC data:4byte
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_248 = .rodata:0x00000248; // type:object size:0x8 data:double
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_26C = .rodata:0x0000026C; // type:object size:0x4 data:float
lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float
lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float
lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float
lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float
lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float
lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC data:4byte
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:0x8 data:float
lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float
lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float
lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float
lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float
lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float
lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float
lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float
lbl_1_rodata_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:0x8 data:double
lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double
lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double
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: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: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_358 = .rodata:0x00000358; // type:object size:0x8 data:double
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:0x8 data:double
lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double
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:0x8 data:float
lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float
lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float
lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float
lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float
lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float
lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float
lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float
lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float
lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float
lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float
lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float
lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float
lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double
lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float
lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float
lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float
lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float
lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float
lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float
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:0x4 data:float
lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float
lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float
lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double
lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float
lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float
lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float
lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 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:0x8 scope:local data:double
lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size: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_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_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_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double
lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double
lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float
lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float
lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float
lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0xC 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_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_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:0x4 scope:local data:float
lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float
lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC 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:0x8 scope:local data:float
lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_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:0x8 scope:local data:double
lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double
lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double
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: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: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_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double
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:0x8 scope:local data:double
lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double
lbl_1_rodata_380 = .rodata:0x00000380; // type:object size: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:0x8 scope:local data:float
lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double
lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float
lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float
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:0x4 scope:local data:float
lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float
lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float
lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double
lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float
lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float
lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float
lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float
lbl_1_data_0 = .data:0x00000000; // type:object size:0x280
lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 scope:local data:2byte
lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 scope:local data:2byte
@ -341,55 +341,55 @@ lbl_1_data_368 = .data:0x00000368; // type:object size:0x8 scope:local data:stri
lbl_1_data_370 = .data:0x00000370; // type:object size:0x12 scope:local data:string
lbl_1_data_382 = .data:0x00000382; // type:object size:0x11 scope:local data:string
lbl_1_data_393 = .data:0x00000393; // type:object size:0x10 scope:local
lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x8 data:string
lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x9 data:string
lbl_1_data_3B9 = .data:0x000003B9; // type:object size:0x6 data:string
lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x5 data:string
lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x5 data:string
lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x14 data:4byte
lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x14
lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x20
lbl_1_data_414 = .data:0x00000414; // type:object size:0x10
lbl_1_data_424 = .data:0x00000424; // type:object size:0x30 data:2byte
lbl_1_data_454 = .data:0x00000454; // type:object size:0xB data:string
lbl_1_data_45F = .data:0x0000045F; // type:object size:0x2 data:string
lbl_1_data_461 = .data:0x00000461; // type:object size:0xC data:string
lbl_1_data_46D = .data:0x0000046D; // type:object size:0x1B
lbl_1_data_488 = .data:0x00000488; // type:object size:0x3 data:string
lbl_1_data_48B = .data:0x0000048B; // type:object size:0xF data:string
lbl_1_data_49C = .data:0x0000049C; // type:object size:0x50
lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x6 data:string
lbl_1_data_4F6 = .data:0x000004F6; // type:object size:0x6 data:string
lbl_1_data_4FC = .data:0x000004FC; // type:object size:0x6 data:string
lbl_1_data_502 = .data:0x00000502; // type:object size:0x8 data:string
lbl_1_data_50A = .data:0x0000050A; // type:object size:0x8 data:string
lbl_1_data_512 = .data:0x00000512; // type:object size:0xA
lbl_1_data_51C = .data:0x0000051C; // type:object size:0x18 data:4byte
lbl_1_data_534 = .data:0x00000534; // type:object size:0xC
lbl_1_data_540 = .data:0x00000540; // type:object size:0x48
lbl_1_data_588 = .data:0x00000588; // type:object size:0x4 data:4byte
lbl_1_data_58C = .data:0x0000058C; // type:object size:0x5 data:string
lbl_1_data_591 = .data:0x00000591; // type:object size:0x5 data:string
lbl_1_data_596 = .data:0x00000596; // type:object size:0x5 data:string
lbl_1_data_59B = .data:0x0000059B; // type:object size:0x5 data:string
lbl_1_data_5A0 = .data:0x000005A0; // type:object size:0x5 data:string
lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x5 data:string
lbl_1_data_5AA = .data:0x000005AA; // type:object size:0x5 data:string
lbl_1_data_5AF = .data:0x000005AF; // type:object size:0x5 data:string
lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0x8
lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x24 data:4byte
lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0x10
lbl_1_data_5F0 = .data:0x000005F0; // type:object size:0x20
lbl_1_data_610 = .data:0x00000610; // type:object size:0xE data:string
lbl_1_data_61E = .data:0x0000061E; // type:object size:0xE data:string
lbl_1_data_62C = .data:0x0000062C; // type:object size:0x10
lbl_1_data_63C = .data:0x0000063C; // type:object size:0x3 data:string
lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x8 scope:local data:string
lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x9 scope:local data:string
lbl_1_data_3B9 = .data:0x000003B9; // type:object size:0x6 scope:local data:string
lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x5 scope:local data:string
lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x5 scope:local data:string
lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x14 scope:local data:4byte
lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x14 scope:local
lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x20 scope:local
lbl_1_data_414 = .data:0x00000414; // type:object size:0x10 scope:local
lbl_1_data_424 = .data:0x00000424; // type:object size:0x30 scope:local data:2byte
lbl_1_data_454 = .data:0x00000454; // type:object size:0xB scope:local data:string
lbl_1_data_45F = .data:0x0000045F; // type:object size:0x2 scope:local data:string
lbl_1_data_461 = .data:0x00000461; // type:object size:0xC scope:local data:string
lbl_1_data_46D = .data:0x0000046D; // type:object size:0x1B scope:local data:string
lbl_1_data_488 = .data:0x00000488; // type:object size:0x3 scope:local data:string
lbl_1_data_48B = .data:0x0000048B; // type:object size:0xF scope:local data:string
lbl_1_data_49C = .data:0x0000049C; // type:object size:0x50 scope:local
lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x6 scope:local data:string
lbl_1_data_4F6 = .data:0x000004F6; // type:object size:0x6 scope:local data:string
lbl_1_data_4FC = .data:0x000004FC; // type:object size:0x6 scope:local data:string
lbl_1_data_502 = .data:0x00000502; // type:object size:0x8 scope:local data:string
lbl_1_data_50A = .data:0x0000050A; // type:object size:0x8 scope:local data:string
lbl_1_data_512 = .data:0x00000512; // type:object size:0x8 scope:local data:string
lbl_1_data_51C = .data:0x0000051C; // type:object size:0x18 scope:local data:4byte
lbl_1_data_534 = .data:0x00000534; // type:object size:0xC scope:local
lbl_1_data_540 = .data:0x00000540; // type:object size:0x48 scope:local
lbl_1_data_588 = .data:0x00000588; // type:object size:0x4 scope:local data:4byte
lbl_1_data_58C = .data:0x0000058C; // type:object size:0x5 scope:local data:string
lbl_1_data_591 = .data:0x00000591; // type:object size:0x5 scope:local data:string
lbl_1_data_596 = .data:0x00000596; // type:object size:0x5 scope:local data:string
lbl_1_data_59B = .data:0x0000059B; // type:object size:0x5 scope:local data:string
lbl_1_data_5A0 = .data:0x000005A0; // type:object size:0x5 scope:local data:string
lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x5 scope:local data:string
lbl_1_data_5AA = .data:0x000005AA; // type:object size:0x5 scope:local data:string
lbl_1_data_5AF = .data:0x000005AF; // type:object size:0x5 scope:local data:string
lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0x5 scope:local data:string
lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x24 scope:local data:4byte
lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0xE scope:local data:2byte
lbl_1_data_5F0 = .data:0x000005F0; // type:object size:0x20 scope:local
lbl_1_data_610 = .data:0x00000610; // type:object size:0xE scope:local data:string
lbl_1_data_61E = .data:0x0000061E; // type:object size:0xE scope:local data:string
lbl_1_data_62C = .data:0x0000062C; // type:object size:0x10 scope:local data:2byte
lbl_1_data_63C = .data:0x0000063C; // type:object size:0x3 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:0x4 scope:local data:4byte
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 scope:local data:2byte
lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 scope:local data:4byte
lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x20 data:2byte
lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte
lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 scope:local data:4byte
lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC scope:local
lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 scope:local data:4byte
lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 scope:local data:4byte
@ -411,41 +411,41 @@ lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x10 scope:local
lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x10 scope:local
lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x6 scope:local data:2byte
lbl_1_bss_FA = .bss:0x000000FA; // type:object size:0x2 scope:local data:2byte
lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte
lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte
lbl_1_bss_108 = .bss:0x00000108; // type:object size:0xC
lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x20
lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x6
lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x2 data:2byte
lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0xD4 data:2byte
lbl_1_bss_210 = .bss:0x00000210; // type:object size:0x30
lbl_1_bss_240 = .bss:0x00000240; // type:object size:0x30
lbl_1_bss_270 = .bss:0x00000270; // type:object size:0x2 data:2byte
lbl_1_bss_272 = .bss:0x00000272; // type:object size:0x2 data:2byte
lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x2 data:2byte
lbl_1_bss_278 = .bss:0x00000278; // type:object size:0x4 data:4byte
lbl_1_bss_27C = .bss:0x0000027C; // type:object size:0x2 data:2byte
lbl_1_bss_27E = .bss:0x0000027E; // type:object size:0x2 data:2byte
lbl_1_bss_280 = .bss:0x00000280; // type:object size:0x2 data:2byte
lbl_1_bss_282 = .bss:0x00000282; // type:object size:0x2 data:2byte
lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x4 data:4byte
lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x8 data:4byte
lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 data:float
lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x6
lbl_1_bss_29E = .bss:0x0000029E; // type:object size:0x8
lbl_1_bss_2A6 = .bss:0x000002A6; // type:object size:0x6
lbl_1_bss_2AC = .bss:0x000002AC; // type:object size:0x2 data:2byte
lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 data:4byte
lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0xE
lbl_1_bss_2C2 = .bss:0x000002C2; // type:object size:0xE
lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x28 data:2byte
lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x2 data:2byte
lbl_1_bss_2FA = .bss:0x000002FA; // type:object size:0x2 data:2byte
lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC
lbl_1_bss_308 = .bss:0x00000308; // type:object size:0xC data:float
lbl_1_bss_314 = .bss:0x00000314; // type:object size:0x2 data:2byte
lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x4 data:4byte
lbl_1_bss_31C = .bss:0x0000031C; // type:object size:0x4 data:4byte
lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x4 data:4byte
lbl_1_bss_324 = .bss:0x00000324; // type:object size:0x2 data:2byte
lbl_1_bss_326 = .bss:0x00000326; // type:object size:0x2 data:2byte
lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 scope:local data:4byte
lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 scope:local data:4byte
lbl_1_bss_108 = .bss:0x00000108; // type:object size:0xC scope:local
lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x20 scope:local
lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x6 scope:local
lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x2 scope:local data:2byte
lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0xD2 scope:local data:2byte
lbl_1_bss_210 = .bss:0x00000210; // type:object size:0x30 scope:local
lbl_1_bss_240 = .bss:0x00000240; // type:object size:0x30 scope:local
lbl_1_bss_270 = .bss:0x00000270; // type:object size:0x2 scope:local data:2byte
lbl_1_bss_272 = .bss:0x00000272; // type:object size:0x2 scope:local data:2byte
lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x2 scope:local data:2byte
lbl_1_bss_278 = .bss:0x00000278; // type:object size:0x4 scope:local data:4byte
lbl_1_bss_27C = .bss:0x0000027C; // type:object size:0x2 scope:local data:2byte
lbl_1_bss_27E = .bss:0x0000027E; // type:object size:0x2 scope:local data:2byte
lbl_1_bss_280 = .bss:0x00000280; // type:object size:0x2 scope:local data:2byte
lbl_1_bss_282 = .bss:0x00000282; // type:object size:0x2 scope:local data:2byte
lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x4 scope:local data:4byte
lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x4 scope:local data:4byte
lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 scope:local data:float
lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x6 scope:local
lbl_1_bss_29E = .bss:0x0000029E; // type:object size:0x8 scope:local
lbl_1_bss_2A6 = .bss:0x000002A6; // type:object size:0x6 scope:local
lbl_1_bss_2AC = .bss:0x000002AC; // type:object size:0x2 scope:local data:2byte
lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 scope:local data:4byte
lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0xE scope:local
lbl_1_bss_2C2 = .bss:0x000002C2; // type:object size:0xE scope:local
lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x28 scope:local data:2byte
lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x2 scope:local data:2byte
lbl_1_bss_2FA = .bss:0x000002FA; // type:object size:0x2 scope:local data:2byte
lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC scope:local
lbl_1_bss_308 = .bss:0x00000308; // type:object size:0xC scope:local data:float
lbl_1_bss_314 = .bss:0x00000314; // type:object size:0x2 scope:local data:2byte
lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x4 scope:local data:4byte
lbl_1_bss_31C = .bss:0x0000031C; // type:object size:0x4 scope:local data:4byte
lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x4 scope:local data:4byte
lbl_1_bss_324 = .bss:0x00000324; // type:object size:0x2 scope:local data:2byte
lbl_1_bss_326 = .bss:0x00000326; // type:object size:0x2 scope:local data:2byte

View file

@ -1402,9 +1402,9 @@ config.libs = [
Object(Matching, "REL/w04Dll/main.c"),
Object(Matching, "REL/w04Dll/bridge.c"),
Object(Matching, "REL/w04Dll/boo_event.c"),
Object(NonMatching, "REL/w04Dll/big_boo.c"),
Object(NonMatching, "REL/w04Dll/mg_item.c"),
Object(NonMatching, "REL/w04Dll/mg_coin.c"),
Object(Matching, "REL/w04Dll/big_boo.c"),
Object(Matching, "REL/w04Dll/mg_item.c"),
Object(Matching, "REL/w04Dll/mg_coin.c"),
}
),
Rel('w05Dll',

View file

@ -9,11 +9,63 @@ extern float lbl_2_bss_128;
extern float lbl_2_bss_124;
extern s16 lbl_2_bss_120;
typedef struct m401_work_player {
s16 unk0;
s32 unk4;
s32 unk8;
Vec unkC;
Vec unk18;
Vec unk24;
Vec unk30;
Vec unk3C;
omObjData *unk48;
omObjData *unk4C;
omObjData *unk50;
omObjData *unk54;
Vec unk58;
float unk64;
s16 unk68;
s16 unk6A;
s16 unk6C;
s16 unk6E;
s16 unk70;
s16 unk72;
s16 unk74;
s16 unk76;
s16 unk78;
s16 unk7A;
s16 unk7C;
s16 unk7E;
float unk80;
s16 unk84;
s16 unk86;
float unk88;
s16 unk8C;
s16 unk8E;
s16 unk90;
s16 unk92;
Vec unk94;
s8 unkA0;
s8 unkA1;
} M401WorkPlayer;
typedef struct unkwork_10A88 {
Vec unk0;
omObjData *unkC;
s16 unk10;
s16 unk12;
s16 unk14;
s32 unk18;
float unk1C;
} UnkWork10A88;
void fn_2_10240(Vec *arg0, Vec *arg1);
void fn_2_1041C(void);
void fn_2_10710(void);
void fn_2_1079C(void);
omObjData *fn_2_10A88(Vec *arg0, s16 arg1);
omObjData *fn_2_14640(Process *objman);
#endif

View file

@ -1,7 +1,6 @@
#ifndef REL_W04_H
#define REL_W04_H
#include "game/process.h"
#include "game/board/map_object.h"
#include "dolphin/types.h"
@ -10,13 +9,18 @@ enum {
MAPOBJ_MAX = 16
};
typedef struct {
s8 unk00;
u8 unk01;
} UnkW04BoardData;
extern s32 fn_1_1130(s16 arg0, float arg1, float arg2);
extern void fn_1_12FC(void);
extern void fn_1_15C8(void);
extern void fn_1_1618(void);
extern void fn_1_2058(void);
extern void fn_1_55B4(void);
extern void fn_1_6024(void);
@ -33,8 +37,6 @@ extern void fn_1_C7D4(void);
extern s16 lbl_1_bss_14[MAPOBJ_MAX];
extern BoardMapObject lbl_1_data_0[MAPOBJ_MAX];
extern s8 *lbl_1_bss_0;
extern Process *lbl_1_bss_38;
extern UnkW04BoardData *lbl_1_bss_0;
#endif

View file

@ -12,6 +12,8 @@ typedef struct vec2f {
#define ABS(x) (((x) < 0) ? -(x) : (x))
#define VECDistanceXZ(a, b) sqrtf((((a)->x-(b)->x)*((a)->x-(b)->x))+(((a)->z-(b)->z)*((a)->z-(b)->z)))
#define VECDistanceAlt(a, b) sqrtf((((a)->x-(b)->x)*((a)->x-(b)->x))+(((a)->y-(b)->y)*((a)->y-(b)->y))+(((a)->z-(b)->z)*((a)->z-(b)->z)))
#define VECMagXZ(a) sqrtf(((a)->x*(a)->x)+((a)->z*(a)->z))
#define sind(x) sin(M_PI*(x)/180.0)

View file

@ -45,7 +45,7 @@ typedef struct om_obj_data {
/* 0x0A */ s16 next_idx;
/* 0x0C */ s16 group;
/* 0x0E */ u16 group_idx;
/* 0x10 */ int unk10;
/* 0x10 */ u32 unk10;
/* 0x14 */ omObjFunc func;
/* 0x18 */ Vec trans;
/* 0x24 */ Vec rot;

View file

@ -1,14 +1,19 @@
#include "game/object.h"
#include "game/memory.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/objsub.h"
#include "game/minigame_seq.h"
#include "game/gamework_data.h"
#include "game/wipe.h"
#include "game/esprite.h"
#include "game/sprite.h"
#include "game/frand.h"
#include "game/chrman.h"
#include "REL/m401Dll.h"
#include "math.h"
#include "ext_math.h"
#include "rel_sqrt_consts.h"
@ -178,15 +183,6 @@ void ModuleProlog(void)
lbl_2_bss_11C = HuAudFXPlay(1290);
}
typedef struct m401_work_player {
s16 unk0;
u8 unk2[0x66];
s16 unk68;
u8 unk6A[8];
s16 unk72;
s16 unk74;
} M401WorkPlayer;
void fn_2_70C(omObjData *object)
{
s32 temp_r31;
@ -509,7 +505,6 @@ void fn_2_1A38(omObjData *object);
void fn_2_1B80(omObjData *object);
void fn_2_1CF0(omObjData *object);
void fn_2_1DE8(omObjData *object);
void fn_2_1DE8(omObjData *object);
void fn_2_20B0(omObjData *object);
void fn_2_2CBC(omObjData *object);
void fn_2_2D64(omObjData *object);
@ -517,7 +512,7 @@ void fn_2_2DCC(omObjData *object);
void fn_2_2E20(omObjData *object);
void fn_2_2ED0(omObjData *object);
omObjFunc lbl_2_data_CC[] = {
omObjFunc lbl_2_data_CC[][2] = {
fn_2_1A38,
fn_2_2CBC,
fn_2_1B80,
@ -579,7 +574,6 @@ void fn_2_1B80(omObjData *object)
Vec sp8;
omObjData *temp_r31;
HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[1]);
temp_r30->type = 2;
sp14.x = -1000;
sp14.y = 0;
@ -610,4 +604,661 @@ void fn_2_1CF0(omObjData *object)
sp8.y = 0;
sp8.z = -16300;
fn_2_FC40(40, &sp20, &sp14, &sp8);
}
void fn_2_91AC(omObjData *object, Vec *pos);
void fn_2_1DE8(omObjData *object)
{
Vec sp2C;
Vec sp20;
Vec sp14;
Vec sp8;
omObjData *temp_r31;
HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[3]);
temp_r30->type = 2;
sp2C.x = 0;
sp2C.y = -150.0f+((1.0f/255.0f)*(300.0f*(u32)frand8()));
sp2C.z = -23000;
fn_2_91AC(lbl_2_bss_100[0], &sp2C);
sp2C.x = 0;
sp2C.y = -150.0f+((1.0f/255.0f)*(300.0f*(u32)frand8()));
sp2C.z = -25000;
fn_2_91AC(lbl_2_bss_100[1], &sp2C);
sp2C.x = 5500;
sp2C.y = 0;
sp2C.z = -29800;
sp20.x = 100;
sp20.y = 100;
sp20.z = 100;
sp14.x = -1500;
sp14.y = 0;
sp14.z = -24900;
temp_r31 = fn_2_FC40(20, &sp2C, &sp20, &sp14);
fn_2_E6BC((omObjData *)temp_r31->work[0], 6, 1.5f, 0.2f, 0.8f, 3.5f);
sp8.x = -650;
sp8.y = -360;
sp8.z = -26300;
lbl_2_bss_D0 = fn_2_10A88(&sp8, 3);
lbl_2_bss_90[0] = HuAudFXEmiterPlay(1291, &sp8);
}
void fn_2_20B0(omObjData *object)
{
Vec sp8;
HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[4]);
temp_r30->type = 2;
Hu3DModelAttrReset(object->model[7], 1);
sp8.x = 0;
sp8.y = -370;
sp8.z = -43000;
lbl_2_bss_8 = fn_2_10A88(&sp8, 3);
lbl_2_bss_90[1] = HuAudFXEmiterPlay(1291, &sp8);
sp8.x = 380;
sp8.y = -440;
sp8.z = -32000;
lbl_2_bss_CC = fn_2_10A88(&sp8, 3);
lbl_2_bss_90[2] = HuAudFXEmiterPlay(1291, &sp8);
Hu3DModelAttrReset(object->model[2], 1);
Hu3DModelAttrSet(object->model[2], 0xC0000001);
}
void fn_2_21F8(omObjData *object)
{
Vec sp2C;
Vec sp20;
Vec sp14;
Vec sp8;
s32 temp_r30;
HsfObject *temp_r29 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[0]);
s32 temp_r28;
temp_r29->type = 2;
Hu3DModelAttrReset(object->model[0], 1);
Hu3DModelAttrReset(object->model[1], 1);
Hu3DModelAttrSet(object->model[0], 0x40000001);
Hu3DModelAttrSet(object->model[1], 0x40000001);
Hu3DModelAttrReset(object->model[3], 1);
lbl_2_bss_44.x = 0;
lbl_2_bss_44.y = 100;
lbl_2_bss_44.z = 0;
lbl_2_bss_38.x = 0;
lbl_2_bss_38.y = 1000;
lbl_2_bss_38.z = -1500;
lbl_2_bss_2C.x = 0;
lbl_2_bss_2C.y = 1;
lbl_2_bss_2C.z = 0;
Hu3DCameraPosSetV(1, &lbl_2_bss_44, &lbl_2_bss_2C, &lbl_2_bss_38);
Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f);
lbl_2_bss_54 = lbl_2_bss_44;
fn_2_D088(NULL);
sp20 = lbl_2_bss_44;
VECSubtract(&lbl_2_bss_38, &lbl_2_bss_44, &sp2C);
VECNormalize(&sp2C, &sp2C);
HuAudFXListnerSetEX(&sp20, &sp2C, lbl_2_bss_88, lbl_2_bss_84, 300, 300, 300);
sp14.x = 300;
sp14.y = -450;
sp14.z = -3100;
lbl_2_bss_D8 = fn_2_10A88(&sp14, 3);
lbl_2_bss_90[0] = HuAudFXEmiterPlay(1291, &sp14);
sp14.x = -300;
sp14.y = -340;
sp14.z = -4720;
lbl_2_bss_D4 = fn_2_10A88(&sp14, 3);
lbl_2_bss_90[1] = HuAudFXEmiterPlay(1291, &sp14);
Hu3DModelAttrReset(object->model[2], 1);
Hu3DModelAttrSet(object->model[2], 0xC0000001);
temp_r28 = 4;
for(temp_r30=0; temp_r30<temp_r28; temp_r30++) {
sp8.x = -340.0f+((1.0f/255.0f)*(680.0f*(u32)frand8()));
sp8.y = -250.0f+((1.0f/255.0f)*(500.0f*(u32)frand8()));
sp8.z = ((-1550.0f-(temp_r30*260))-40.0f)+((1.0f/255.0f)*(80.0f*(u32)frand8()));
fn_2_10A88(&sp8, 0);
}
}
typedef struct work_2FA4 {
s32 unk0;
float unk4;
Vec unk8;
Vec unk14[2];
s16 unk2C;
} Work2FA4;
void fn_2_26E0(omObjData *object)
{
Vec sp2C;
Vec sp20;
Vec sp14;
Vec sp8;
Work2FA4 *temp_r30;
s32 temp_r29;
Hu3DModelAttrReset(object->model[4], 1);
Hu3DModelClusterAttrSet(object->model[4], 0, 0xC0000001);
Hu3DModelAttrReset(object->model[8], 1);
Hu3DModelAttrSet(object->model[8], 0x40000001);
Hu3DModelAttrSet(object->model[4], 0x40000001);
Hu3DModelShadowMapSet(object->model[4]);
Hu3DModelAttrReset(object->model[5], 1);
Hu3DModelPosSet(object->model[4], 0, 0, 0);
Hu3DModelAmbSet(object->model[4], 1, 1, 1);
Hu3DModelPosSet(object->model[5], 0, 0, 0);
Hu3DModelPosSet(object->model[6], 0, 0, 0);
temp_r30 = lbl_2_bss_10C->data;
if(lbl_2_bss_BA) {
temp_r30->unk14[0].x = 210;
temp_r30->unk14[0].y = 1018;
temp_r30->unk14[0].z = 0;
temp_r30->unk14[1].x = -160;
temp_r30->unk14[1].y = 1020;
temp_r30->unk14[1].z = -50;
for(temp_r29=0; temp_r29<2; temp_r29++) {
Hu3DModelPosSet(object->model[temp_r29+9], temp_r30->unk14[temp_r29].x, temp_r30->unk14[temp_r29].y, temp_r30->unk14[temp_r29].z);
Hu3DModelAttrReset(object->model[temp_r29+9], 1);
}
Hu3DMotionSet(object->model[10], object->motion[0]);
Hu3DMotionSet(object->model[9], object->motion[2]);
} else {
temp_r30->unk14[0].x = 210;
temp_r30->unk14[0].y = 1018;
temp_r30->unk14[0].z = 0;
temp_r30->unk14[1].x = -160;
temp_r30->unk14[1].y = 1020;
temp_r30->unk14[1].z = -50;
for(temp_r29=0; temp_r29<2; temp_r29++) {
Hu3DModelPosSet(object->model[temp_r29+9], temp_r30->unk14[temp_r29].x, temp_r30->unk14[temp_r29].y, temp_r30->unk14[temp_r29].z);
Hu3DModelAttrReset(object->model[temp_r29+9], 1);
}
Hu3DMotionSet(object->model[10], object->motion[1]);
Hu3DMotionSet(object->model[9], object->motion[2]);
}
Hu3DModelAttrSet(object->model[9], 0x40000001);
Hu3DModelAttrSet(object->model[10], 0x40000001);
Hu3DModelRotSet(object->model[9], 0, 90, 0);
Hu3DModelPosSet(object->model[11], 210, 1018, 0);
Hu3DModelRotSet(object->model[11], 0, 90, 0);
Hu3DModelAttrReset(object->model[11], 1);
Hu3DModelAttrSet(object->model[11], 0x40000001);
sp2C.x = 0;
sp2C.y = 1300;
sp2C.z = 1300;
sp20.x = 0;
sp20.y = 920;
sp20.z = -100;
sp14.x = 0;
sp14.y = 1;
sp14.z = 0;
Hu3DCameraPosSetV(1, &sp2C, &sp14, &sp20);
lbl_2_bss_12C = 45;
Hu3DShadowData.unk_08.x = lbl_2_bss_12C;
MTXLightPerspective(Hu3DShadowData.unk_68, lbl_2_bss_12C, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f);
Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f);
VECSubtract(&sp20, &sp2C, &sp8);
VECNormalize(&sp8, &sp8);
HuAudFXListnerUpdate(&sp2C, &sp8);
}
void fn_2_2CBC(omObjData *object)
{
HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[0]);
temp_r30->type = -1;
Hu3DModelAttrSet(object->model[3], 1);
lbl_2_bss_D8->work[0] = 1;
Hu3DModelAttrSet(object->model[2], 1);
HuAudFXStop(lbl_2_bss_90[0]);
HuAudFXStop(lbl_2_bss_90[1]);
}
void fn_2_2D64(omObjData *object)
{
HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[1]);
temp_r31->type = -1;
lbl_2_bss_D4->work[0] = 1;
}
void fn_2_2DCC(omObjData *object)
{
HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[2]);
temp_r31->type = -1;
}
void fn_2_2E20(omObjData *object)
{
HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[3]);
temp_r30->type = -1;
Hu3DModelAttrSet(lbl_2_bss_100[0]->model[0], 1);
Hu3DModelAttrSet(lbl_2_bss_100[1]->model[0], 1);
lbl_2_bss_D0->work[0] = 1;
HuAudFXStop(lbl_2_bss_90[0]);
}
void fn_2_2ED0(omObjData *object)
{
HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[4]);
temp_r30->type = -1;
Hu3DModelAttrSet(object->model[7], 1);
Hu3DModelAttrSet(object->model[0], 1);
lbl_2_bss_8->work[0] = 1;
lbl_2_bss_CC->work[0] = 1;
Hu3DModelAttrSet(object->model[2], 1);
HuAudFXStop(lbl_2_bss_90[1]);
HuAudFXStop(lbl_2_bss_90[2]);
}
void fn_2_2F9C(omObjData *object)
{
}
void fn_2_2FA0(omObjData *object)
{
}
void fn_2_33B4(omObjData *object);
void fn_2_2FA4(omObjData *object)
{
Work2FA4 *temp_r30;
s32 temp_r29;
HsfObject *temp_r28;
object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work2FA4), MEMORY_DEFAULT_NUM);
temp_r30 = object->data;
fn_2_D088(NULL);
temp_r30->unk0 = 0;
temp_r30->unk8.x = 0;
temp_r30->unk8.y = 0;
temp_r30->unk8.z = 0;
temp_r30->unk2C = 0;
object->model[0] = Hu3DModelCreateFile(0x200000);
Hu3DModelAttrSet(object->model[0], 1);
object->model[1] = Hu3DModelCreateFile(0x200001);
Hu3DModelAttrSet(object->model[1], 1);
object->model[2] = Hu3DModelCreateFile(0x200007);
Hu3DModelAttrSet(object->model[2], 1);
Hu3DModelAttrSet(object->model[2], 0x40000001);
object->model[3] = Hu3DModelCreateFile(0x20001F);
Hu3DModelAttrSet(object->model[3], 1);
object->model[4] = Hu3DModelCreateFile(0x200020);
Hu3DModelAttrSet(object->model[4], 1);
object->model[11] = Hu3DModelCreateFile(0x20002C);
Hu3DModelAttrSet(object->model[11], 1);
object->model[7] = Hu3DModelCreateFile(0x200003);
Hu3DModelAttrSet(object->model[7], 1);
object->model[8] = Hu3DModelCreateFile(0x200023);
Hu3DModelAttrSet(object->model[8], 1);
object->model[9] = Hu3DModelCreateFile(0x200028);
Hu3DModelAttrSet(object->model[9], 1);
object->model[10] = Hu3DModelCreateFile(0x200028);
Hu3DModelAttrSet(object->model[10], 1);
Hu3DModelShadowSet(object->model[10]);
object->model[5] = Hu3DModelCreateFile(0x200021);
Hu3DModelAttrSet(object->model[5], 1);
object->model[6] = Hu3DModelCreateFile(0x200022);
Hu3DModelAttrSet(object->model[6], 1);
object->motion[0] = Hu3DJointMotionFile(object->model[10], 0x200029);
object->motion[1] = Hu3DJointMotionFile(object->model[10], 0x20002A);
object->motion[2] = Hu3DJointMotionFile(object->model[9], 0x20002B);
Hu3DModelPosSet(object->model[1], 0, 0, -1500);
Hu3DModelShadowMapSet(object->model[0]);
for(temp_r29=0; temp_r29<5; temp_r29++) {
temp_r28 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[temp_r29]);
temp_r28->type = -1;
}
fn_2_21F8(object);
object->func = fn_2_33B4;
}
void fn_2_33B4(omObjData *object)
{
Hu3DModelPosSet(object->model[3], 110, 5.0*sind(lbl_2_bss_10), -1500);
lbl_2_bss_10 += 2.0f;
if(lbl_2_bss_10 >= 360.0f) {
lbl_2_bss_10 -= 360.0f;
}
}
void fn_2_9E28(float arg1, float arg2);
void fn_2_34B8(omObjData *object)
{
Vec sp8;
Work2FA4 *temp_r31;
s32 temp_r30;
s32 temp_r28;
temp_r31 = object->data;
if(lbl_2_bss_60.z < -5000.0f && temp_r31->unk0 == 0) {
temp_r31->unk0 = 1;
fn_2_9E28(-15500, -20000);
}
if(lbl_2_bss_6C.z <= lbl_2_data_A0[lbl_2_bss_C]) {
lbl_2_bss_C++;
lbl_2_data_CC[lbl_2_bss_C][0](object);
}
if(lbl_2_bss_6C.z <= lbl_2_data_B4[lbl_2_bss_E]) {
lbl_2_data_CC[lbl_2_bss_E][1](object);
lbl_2_bss_E++;
}
if(lbl_2_bss_6C.z <= -40000.0f) {
lbl_2_bss_BE = 1;
}
if(temp_r31->unk2C) {
temp_r31->unk2C--;
} else {
temp_r31->unk2C = 274;
if(lbl_2_bss_60.z > -31260.0f) {
temp_r28 = 4;
for(temp_r30=0; temp_r30<temp_r28; temp_r30++) {
sp8.x = -340.0f+((1.0f/255.0f)*(680.0f*(u32)frand8()));
sp8.y = -250.0f+((1.0f/255.0f)*(500.0f*(u32)frand8()));
sp8.z = ((-4000.0f-(temp_r30*240))-40.0f)+((1.0f/255.0f)*(80.0f*(u32)frand8()));
fn_2_10A88(&sp8, 0);
}
}
}
}
void fn_2_3838(omObjData *object)
{
Work2FA4 *temp_r31;
s32 temp_r29;
float temp_f31;
temp_r31 = object->data;
temp_r31->unk4 = 5.0*sind(temp_r31->unk8.x);
temp_r31->unk8.y += temp_r31->unk8.z;
Hu3DModelPosSet(object->model[4], temp_r31->unk8.y, temp_r31->unk4, 0);
Hu3DModelPosSet(object->model[5], temp_r31->unk8.y, 0, 0);
Hu3DModelScaleSet(object->model[5], 1.0f-(0.09f*(temp_r31->unk4/5.0f)), 1.0f, 1.0f-(0.09f*(temp_r31->unk4/5.0f)));
for(temp_r29=0; temp_r29<2; temp_r29++) {
temp_f31 = temp_r31->unk14[temp_r29].y+(5.0*sind(temp_r31->unk8.x));
temp_r31->unk14[temp_r29].x += temp_r31->unk8.z;
Hu3DModelPosSet(object->model[temp_r29+9], temp_r31->unk14[temp_r29].x, temp_f31, temp_r31->unk14[temp_r29].z);
}
Hu3DModelPosSet(object->model[11], temp_r31->unk14[0].x, temp_f31, temp_r31->unk14[0].z);
temp_r31->unk8.z *= 1.04f;
if(temp_r31->unk8.z > 12.0f) {
temp_r31->unk8.z = 12.0f;
}
temp_r31->unk8.x += 2.0f;
if(temp_r31->unk8.x >= 360.0f) {
temp_r31->unk8.x -= 360.0f;
}
lbl_2_data_30.x = temp_r31->unk8.y;
lbl_2_data_48.x = temp_r31->unk8.y;
Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48);
}
void fn_2_3F28(omObjData *object);
s32 lbl_2_data_158[][10] = {
0x005F002A,
0x00200031,
0x005F0000,
0x005F002B,
0x005F0005,
0x005F0017,
0x00200039,
0x00200041,
0x005F0022,
0x00200049,
0x001A002A,
0x00200032,
0x001A0000,
0x001A002B,
0x001A0005,
0x001A0017,
0x0020003A,
0x00200042,
0x001A0022,
0x0020004A,
0x006D002A,
0x00200033,
0x006D0000,
0x006D002B,
0x006D0005,
0x006D0017,
0x0020003B,
0x00200043,
0x006D0022,
0x0020004B,
0x008A002A,
0x00200034,
0x008A0000,
0x008A002B,
0x008A0005,
0x008A0017,
0x0020003C,
0x00200044,
0x008A0022,
0x0020004C,
0x0085002A,
0x00200035,
0x00850000,
0x0085002B,
0x00850005,
0x00850017,
0x0020003D,
0x00200045,
0x00850022,
0x0020004D,
0x0011002A,
0x00200036,
0x00110000,
0x0011002B,
0x00110005,
0x00110017,
0x0020003E,
0x00200046,
0x00110022,
0x0020004E,
0x000D002A,
0x00200037,
0x000D0000,
0x000D002B,
0x000D0005,
0x000D0017,
0x0020003F,
0x00200047,
0x000D0022,
0x0020004F,
0x0081002A,
0x00200038,
0x00810000,
0x0081002B,
0x00810005,
0x00810017,
0x00200040,
0x00200048,
0x00810022,
0x00200050,
};
Vec lbl_2_data_298[] = {
-150, 1250, -1400,
-50, 1250, -1400,
50, 1250, -1400,
150, 1250, -1400,
};
Vec lbl_2_data_2C8[] = {
-300, 0, -1500,
-100, 0, -1500,
100, 0, -1500,
300, 0, -1500,
};
void fn_2_3F28(omObjData *object);
void fn_2_3B24(omObjData *object)
{
M401WorkPlayer *temp_r31;
s32 temp_r29;
s32 temp_r28;
s32 temp_r27;
object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M401WorkPlayer), MEMORY_DEFAULT_NUM);
temp_r31 = object->data;
temp_r29 = object->work[0];
temp_r31->unk4 = temp_r29;
temp_r31->unk8 = GWPlayerCfg[temp_r29].pad_idx;
temp_r27 = GWPlayerCfg[temp_r29].character;
temp_r31->unk86 = lbl_2_data_4[temp_r27];
object->model[0] = CharModelCreate(temp_r31->unk86, 4);
if(temp_r29 == 0) {
object->model[2] = Hu3DModelCreateFile(0x200025);
object->model[3] = Hu3DModelCreateFile(0x200027);
} else {
object->model[2] = Hu3DModelLink(lbl_2_bss_118[0]->model[2]);
object->model[3] = Hu3DModelCreateFile(0x200027);
}
Hu3DModelAttrSet(object->model[3], 0x40000002);
Hu3DModelClusterAttrSet(object->model[3], 0, 0xC0000002);
Hu3DModelLayerSet(object->model[3], 7);
for(temp_r28=0; temp_r28<10; temp_r28++) {
object->motion[temp_r28] = CharModelMotionCreate(lbl_2_data_4[temp_r27], lbl_2_data_158[temp_r27][temp_r28]);
}
CharModelMotionSet(temp_r31->unk86, object->motion[2]);
Hu3DModelAttrSet(object->model[0], 0x40000001);
Hu3DModelAttrSet(object->model[2], 1);
Hu3DModelAttrSet(object->model[2], 0x40000001);
Hu3DModelLayerSet(object->model[2], 2);
Hu3DModelAmbSet(object->model[0], 1, 1, 1);
Hu3DModelShadowSet(object->model[0]);
CharModelVoiceEnableSet(lbl_2_data_4[temp_r27], object->motion[4], 0);
temp_r31->unkC = lbl_2_data_2C8[temp_r29];
temp_r31->unk58.z = 0;
omSetTra(object, lbl_2_data_298[temp_r29].x, lbl_2_data_298[temp_r29].y, lbl_2_data_298[temp_r29].z);
temp_r31->unk0 = 0;
temp_r31->unk6E = 70;
temp_r31->unk24.x = lbl_2_data_2C8[temp_r29].x;
temp_r31->unk24.y = lbl_2_data_2C8[temp_r29].y;
temp_r31->unk24.z = 800+lbl_2_data_2C8[temp_r29].z;
temp_r31->unk6A = 0;
temp_r31->unk72 = 0;
temp_r31->unk74 = 0;
temp_r31->unk78 = 0;
temp_r31->unk7A = 0;
temp_r31->unk7C = 0;
temp_r31->unk76 = 0;
temp_r31->unk88 = 0;
temp_r31->unk84 = 0;
temp_r31->unk8C = 0;
temp_r31->unk8E = 0;
temp_r31->unk94.x = temp_r31->unk94.y = temp_r31->unk94.z = 0;
temp_r31->unk90 = 0;
temp_r31->unkA0 = temp_r31->unkA1 = 0;
CharModelMotionDataClose(temp_r31->unk86);
object->func = fn_2_3F28;
}
void fn_2_6B44(omObjData *object);
void fn_2_D3E8(omObjData *object);
void fn_2_3F28(omObjData *object)
{
Vec sp28;
Vec sp1C;
Vec sp10;
M401WorkPlayer *temp_r31;
CameraData *temp_r29;
omObjData *temp_r28;
UnkWork10A88 *temp_r27;
float temp_f27;
temp_r31 = object->data;
switch(temp_r31->unk0) {
case 0:
if(--temp_r31->unk6E == 0) {
temp_r31->unk0 = 1;
CharModelMotionShiftSet(temp_r31->unk86, object->motion[4], 0, 20, 0);
temp_r31->unk58.x = 16;
temp_r31->unk58.y = 0;
}
break;
case 1:
if(object->trans.y < 1100) {
temp_r31->unk0 = 2;
temp_f27 = VECDistanceAlt(&object->trans, &temp_r31->unk24);
temp_r31->unk58.z = temp_f27;
temp_r31->unk58.y = 0;
temp_r31->unk6E = 110;
temp_r28 = fn_2_10A88(&lbl_2_data_298[temp_r31->unk4], 2);
temp_r31->unk50 = temp_r28;
temp_r27 = temp_r28->data;
temp_r27->unkC = object;
fn_2_6B44(object);
temp_r28 = fn_2_10A88(&lbl_2_data_298[temp_r31->unk4], 4);
temp_r27 = temp_r28->data;
temp_r27->unkC = object;
temp_r31->unk4C = temp_r28;
temp_r28 = fn_2_10A88(&lbl_2_data_298[temp_r31->unk4], 5);
temp_r27 = temp_r28->data;
temp_r27->unkC = object;
temp_r31->unk48 = temp_r28;
CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 80, 0x40000001);
temp_r31->unk30.x = object->trans.x;
temp_r31->unk30.y = object->trans.y;
temp_r31->unk30.z = object->trans.z;
Hu3DModelAttrReset(object->model[3], 1);
Hu3DModelAttrReset(object->model[3], 0x40000002);
Hu3DModelClusterAttrReset(object->model[3], 0, 0xC0000002);
Hu3DModelPosSet(object->model[3], object->trans.x, 100, 100+object->trans.z);
Hu3DMotionTimeSet(object->model[3], 0);
if(temp_r31->unk4 == 0) {
HuAudFXPlay(1281);
}
omVibrate(temp_r31->unk4, 12, 4, 2);
} else {
object->trans.y += temp_r31->unk58.x-(0.07f*temp_r31->unk58.y*temp_r31->unk58.y);
object->trans.z += 2.0f;
temp_r31->unk58.y += 1.0f;
}
break;
case 2:
temp_r29 = &Hu3DCamera[0];
sp1C = temp_r31->unk24;
sp10 = temp_r31->unk30;
VECSubtract(&sp1C, &sp10, &sp28);
VECNormalize(&sp28, &sp28);
object->trans.x = temp_r31->unk30.x+(temp_r31->unk58.z*(sp28.x*sind(temp_r31->unk58.y)));
object->trans.y = temp_r31->unk30.y+(temp_r31->unk58.z*(sp28.y*sind(temp_r31->unk58.y)));
object->trans.z = temp_r31->unk30.z+(temp_r31->unk58.z*(sp28.z*sind(temp_r31->unk58.y)));
temp_r31->unk58.y += 9.0f/11.0f;
omSetRot(object, atan2d(sp28.y, sp28.z)+90.0, 0, 0);
temp_f27 = VECDistanceAlt(&object->trans, &sp1C);
if(--temp_r31->unk6E == 60 && temp_r31->unk4 == 0 && lbl_2_bss_4 == NULL) {
temp_r29 = &Hu3DCamera[0];
lbl_2_bss_4 = omAddObjEx(HuPrcCurrentGet(), 1400, 0, 0, -1, fn_2_D3E8);
lbl_2_bss_4->trans.x = temp_r29->pos.x;
lbl_2_bss_4->trans.y = temp_r29->pos.y;
lbl_2_bss_4->trans.z = temp_r29->pos.z;
lbl_2_bss_4->rot.x = temp_r29->target.x;
lbl_2_bss_4->rot.y = temp_r29->target.y;
lbl_2_bss_4->rot.z = temp_r29->target.z;
lbl_2_bss_4->scale.x = 0;
}
if(temp_r31->unk6E == 0) {
temp_r31->unk0 = 3;
temp_r31->unk4C->work[0] = 1;
temp_r31->unk48->work[0] = 1;
}
fn_2_6B44(object);
break;
case 3:
sp1C.x = lbl_2_bss_108->trans.x;
sp1C.y = lbl_2_data_298[temp_r31->unk4].y;
sp1C.z = lbl_2_bss_108->trans.z;
sp10.x = object->trans.x;
sp10.y = object->trans.y;
sp10.z = object->trans.z;
VECSubtract(&sp1C, &sp10, &sp28);
VECNormalize(&sp28, &sp28);
object->rot.x *= 0.95f;
if(object->rot.x < 1.0f) {
object->rot.x = 0.0f;
}
omSetRot(object, object->rot.x, atan2d(sp28.x, sp28.z), 0);
fn_2_6B44(object);
break;
}
}

View file

@ -29,7 +29,7 @@
#include "game/board/map_object.h"
#include "dolphin.h"
#include "math.h"
#include "ext_math.h"
typedef struct {
struct {
@ -768,8 +768,8 @@ static void fn_1_1B3C(void) {
PSMTXConcat(lbl_1_bss_678, sp48, lbl_1_bss_678);
} else {
if (sp30.z != 0.0f || sp30.x != 0.0f) {
lbl_1_bss_660.y = 180.0 * (atan2(sp30.x, sp30.z) / M_PI);
lbl_1_bss_660.x = -(180.0 * (atan2(sp30.y, sqrtf(sp30.x * sp30.x + sp30.z * sp30.z)) / M_PI));
lbl_1_bss_660.y = atan2d(sp30.x, sp30.z);
lbl_1_bss_660.x = -atan2d(sp30.y, VECMagXZ(&sp30));
} else {
lbl_1_bss_660.x = lbl_1_bss_660.y = 0.0f;
}
@ -816,7 +816,7 @@ static void fn_1_1FA4(void) {
PSVECAdd(&spC, &lbl_1_bss_618, &lbl_1_bss_618);
PSVECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &spC);
if (spC.x != 0.0f || spC.z != 0.0f) {
temp_f29 = atan2f(spC.y, sqrtf(spC.x * spC.x + spC.z * spC.z));
temp_f29 = atan2f(spC.y, VECMagXZ(&spC));
temp_f28 = atan2f(-spC.x, -spC.z);
} else {
temp_f29 = temp_f28 = 0.0f;
@ -833,9 +833,9 @@ static void fn_1_1FA4(void) {
} else {
var_f27 = 2500.0f;
}
sp18.x = sp18.x + var_f27 * sin(1.4137166738510132); // 81 * M_PI / 180.0
sp18.x = sp18.x + var_f27 * sin(1.4137166738510132); // TODO: should be sind(81)
sp18.y = sp18.y + -150.0f;
sp18.z = sp18.z + var_f27 * cos(1.4137166738510132); // 81 * M_PI / 180.0
sp18.z = sp18.z + var_f27 * cos(1.4137166738510132); // TODO: should be cosd(81)
PSVECSubtract(&sp18, &lbl_1_bss_630, &spC);
PSVECScale(&spC, &spC, lbl_1_bss_66C);
PSVECAdd(&spC, &lbl_1_bss_630, &lbl_1_bss_630);
@ -880,7 +880,7 @@ static float fn_1_2524(void) {
return 0.0f;
}
PSVECSubtract(&sp18, &sp24, &spC);
var_f30 = 180.0 * (atan2(spC.x, spC.z) / M_PI);
var_f30 = atan2d(spC.x, spC.z);
if (var_f30 > 0.0f) {
var_f30 = 45.0f;
} else {
@ -946,8 +946,8 @@ static void fn_1_2F18(void) {
BoardModelPosGet(lbl_1_bss_6C4[0], &spC);
PSVECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &sp18);
if (sp18.z != 0.0f || sp18.x != 0.0f) {
sp24.y = 180.0 * (atan2(sp18.x, sp18.z) / M_PI);
sp24.x = -(180.0 * (atan2(sp18.y, sqrtf(sp18.x * sp18.x + sp18.z * sp18.z)) / M_PI));
sp24.y = atan2d(sp18.x, sp18.z);
sp24.x = -atan2d(sp18.y, VECMagXZ(&sp18));
} else {
sp24.x = sp24.y = 0.0f;
}
@ -1096,9 +1096,9 @@ static void fn_1_3624(void) {
BoardCameraMotionStartEx(lbl_1_bss_6C4[0], &sp30, NULL, 150.0f, -1.0f, 2);
BoardCameraMotionWait();
BoardModelPosGet(lbl_1_bss_6C4[0], &lbl_1_bss_618);
lbl_1_bss_630.x = lbl_1_bss_618.x + 1000.0 * (sin(sp30.y * M_PI / 180.0) * cos(sp30.x * M_PI / 180.0));
lbl_1_bss_630.y = lbl_1_bss_618.y + 1000.0 * -sin(sp30.x * M_PI / 180.0);
lbl_1_bss_630.z = lbl_1_bss_618.z + 1000.0 * (cos(sp30.y * M_PI / 180.0) * cos(sp30.x * M_PI / 180.0));
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));
BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678);
BoardPlayerMtxSet(lbl_1_bss_6B4, &lbl_1_bss_678);
@ -1273,7 +1273,7 @@ static s32 fn_1_48B4(void) {
BoardSpacePosGet(0, temp_r28, &sp14);
PSVECSubtract(&sp14, &sp20, &sp8);
PSVECNormalize(&sp8, &sp8);
var_f31 = 180.0 * (atan2(-sp8.x, -sp8.z) / M_PI);
var_f31 = atan2d(-sp8.x, -sp8.z);
BoardPlayerRotSet(lbl_1_bss_6B4, 0.0f, var_f31, 0.0f);
BoardPlayerMoveBetween(lbl_1_bss_6B4, temp_r30, temp_r28);
while (GWPlayer[lbl_1_bss_6B4].moving) {
@ -1331,7 +1331,7 @@ static s32 fn_1_48B4(void) {
BoardCameraTargetPlayerSet(lbl_1_bss_6B4);
PSVECSubtract(&sp20, &sp14, &sp8);
PSVECNormalize(&sp8, &sp8);
var_f31 = 180.0 * (atan2(-sp8.x, -sp8.z) / M_PI);
var_f31 = atan2d(-sp8.x, -sp8.z);
BoardPlayerRotSet(lbl_1_bss_6B4, 0.0f, var_f31, 0.0f);
BoardPlayerMoveBetween(lbl_1_bss_6B4, temp_r28, temp_r30);
while (GWPlayer[lbl_1_bss_6B4].moving) {
@ -1410,13 +1410,13 @@ static void fn_1_50D4(void) {
}
PSVECSubtract(&sp14, &temp_r31->pos, &sp8);
PSVECNormalize(&sp8, &sp8);
var_f31 = 180.0 * (atan2(sp8.z, sp8.x) / M_PI);
var_f31 = atan2d(sp8.z, sp8.x);
if (var_r27 != 0) {
var_f31 += 180.0f;
}
sp20.x = temp_r31->pos.x + temp_f30 * sin(var_f31 * M_PI / 180.0);
sp20.x = temp_r31->pos.x + temp_f30 * sind(var_f31);
sp20.y = temp_r31->pos.y + 80.0f;
sp20.z = temp_r31->pos.z + temp_f30 * cos(var_f31 * M_PI / 180.0);
sp20.z = temp_r31->pos.z + temp_f30 * cosd(var_f31);
BoardModelPosSetV(lbl_1_bss_5D0[i], &sp20);
BoardModelVisibilitySet(lbl_1_bss_5D0[i], 1);
sp14 = temp_r31->pos;
@ -1752,7 +1752,7 @@ static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1) {
OSu8tof32(&arg0->unk01, &temp_f29);
temp_f29 -= 12.0f;
temp_f29 = 90.0f * (temp_f29 / 12.5f);
var_f28 = cos(temp_f29 * M_PI / 180.0);
var_f28 = cosd(temp_f29);
if (var_f28 < 0.1f) {
var_f28 = 0.1f;
}
@ -1779,7 +1779,7 @@ static void fn_1_6A14(Bss18Work *arg0, omObjData *arg1) {
arg1->scale.y = sp20.y;
arg1->scale.z = sp20.z;
BoardPlayerMotionShiftSet(GWSystem.player_curr, 4, 15.0f, 5.0f, 0);
BoardPlayerRotYSet(GWSystem.player_curr, 180.0 * (atan2(sp8.x, sp8.z) / M_PI));
BoardPlayerRotYSet(GWSystem.player_curr, atan2d(sp8.x, sp8.z));
arg0->unk00_field1 = 3;
arg0->unk01 = 0;
}
@ -1820,7 +1820,7 @@ static void fn_1_6BC0(Bss18Work *arg0, omObjData *arg1) {
OSu8tof32(&arg0->unk01, &temp_f29);
temp_f29 -= 12.0f;
temp_f29 = 90.0f * (temp_f29 / 12.5f);
var_f28 = sin(temp_f29 * M_PI / 180.0);
var_f28 = sind(temp_f29);
if (var_f28 < 0.1f) {
var_f28 = 0.1f;
}
@ -2157,7 +2157,7 @@ static void fn_1_8988(BssCData *arg0, omObjData *arg1) {
BoardModelPosGet(*lbl_1_bss_6C4, &sp20);
BoardPlayerPosGet(arg0->unk01, &sp14);
PSVECSubtract(&sp20, &sp14, &sp8);
BoardPlayerRotYSet(arg0->unk01, 180.0 * (atan2(sp8.x, sp8.z) / M_PI));
BoardPlayerRotYSet(arg0->unk01, atan2d(sp8.x, sp8.z));
arg0->unk00 = 1;
}
@ -2199,7 +2199,7 @@ static void fn_1_8B6C(BssCData *arg0, omObjData *arg1) {
BoardPlayerPosGet(arg0->unk01, &arg0->unk14);
BoardModelPosGet(lbl_1_bss_6C4[0], &sp20);
PSVECSubtract(&sp20, &arg0->unk14, &sp14);
BoardPlayerRotYSet(arg0->unk01, -(180.0 * (atan2(sp14.x, sp14.z) / M_PI)));
BoardPlayerRotYSet(arg0->unk01, -atan2d(sp14.x, sp14.z));
BoardPlayerMotionStart(arg0->unk01, 3, 0x40000001);
BoardPlayerMotionSpeedSet(arg0->unk01, 2.0f);
temp_f30 = BoardModelMotionTimeGet(lbl_1_bss_6AE);
@ -2265,8 +2265,8 @@ static void fn_1_8DDC(BssCData *arg0, omObjData *arg1) {
PSMTXTranspose(sp54, arg0->unk20);
} else {
if (sp24.z != 0.0f || sp24.x != 0.0f) {
sp3C.y = 180.0 * (atan2(sp24.x, sp24.z) / M_PI);
sp3C.x = -(180.0 * (atan2(sp24.y, sqrtf(sp24.x * sp24.x + sp24.z * sp24.z)) / M_PI));
sp3C.y = atan2d(sp24.x, sp24.z);
sp3C.x = -atan2d(sp24.y, VECMagXZ(&sp24));
} else {
sp3C.x = sp3C.y = 0.0f;
}
@ -2296,7 +2296,7 @@ static void fn_1_918C(BssCData *arg0, omObjData *arg1) {
BoardPlayerPosGet(arg0->unk01, &sp14);
BoardPlayerMtxSet(arg0->unk01, &arg0->unk20);
PSVECSubtract(&sp20, &sp14, &sp8);
BoardPlayerRotYSet(arg0->unk01, 180.0 * (atan2(-sp8.z, -sp8.x) / M_PI));
BoardPlayerRotYSet(arg0->unk01, atan2d(-sp8.z, -sp8.x));
BoardPlayerPosLerpStart(arg0->unk01, &sp14, &sp20, 20);
arg0->unk00 = 5;
}
@ -2547,7 +2547,7 @@ static void fn_1_9BBC(Bss20Work *arg0) {
BoardModelVisibilitySet(temp_r31->unk02, 0);
} else {
if (temp_r31->unk00 <= 3) {
temp_r31->unk04 = sin(30.0f * temp_r31->unk00 * M_PI / 180.0);
temp_r31->unk04 = sind(30.0f * temp_r31->unk00);
}
PSVECAdd(&temp_r31->unk08, &temp_r31->unk14, &temp_r31->unk08);
BoardModelMtxSet(temp_r31->unk02, &lbl_1_bss_678);

View file

@ -22,7 +22,7 @@
#include "game/board/window.h"
#include "dolphin.h"
#include "math.h"
#include "ext_math.h"
typedef struct {
/* 0x00 */ Vec unk00;
@ -640,7 +640,7 @@ static void fn_1_B478(omObjData *arg0) {
MGSeqParamSet(lbl_1_bss_744, 2, -1);
lbl_1_bss_714[lbl_1_bss_730]->work[1] = 1;
BoardPlayerPosGet(lbl_1_bss_798, &spC);
var_f28 = sqrtf((temp_r31->unk04.x - spC.x) * (temp_r31->unk04.x - spC.x) + (temp_r31->unk04.z - spC.z) * (temp_r31->unk04.z - spC.z));
var_f28 = VECDistanceXZ(&temp_r31->unk04, &spC);
fn_1_C94C(&spC, &temp_r31->unk04, &temp_r31->unk10);
temp_r31->unk10.y = 0.0f;
temp_r31->unk10.x *= var_f28 / 30.0f;
@ -664,7 +664,7 @@ static void fn_1_BAF8(omObjData *arg0) {
BoardPlayerPosGet(lbl_1_bss_798, &sp14);
sp14.x += temp_r31->unk10.x;
sp14.z += temp_r31->unk10.z;
sp14.y = lbl_1_bss_738.y + 80.0 * sin(6.0f * temp_r31->unk20 * M_PI / 180.0);
sp14.y = lbl_1_bss_738.y + 80.0 * sind(6.0f * temp_r31->unk20);
BoardModelPosGet(lbl_1_bss_714[lbl_1_bss_730]->work[0], &sp8);
if ((temp_r31->unk20 += 1.0f) == 30.0f) {
sp14.y = sp8.y + 5.0f;
@ -892,7 +892,7 @@ static float fn_1_C998(Vec *arg0) {
return 270.0f;
}
}
temp_f31 = 180.0 * (atan2(arg0->z, arg0->x) / M_PI);
temp_f31 = atan2d(arg0->z, arg0->x);
if (arg0->z < 0.0f) {
temp_f31 = 90.0f - temp_f31;
} else {
@ -1051,8 +1051,8 @@ static void fn_1_D114(ModelData *model, ParticleData *particle, Mtx matrix) {
var_r31->unk24 = 0.0f;
}
temp_r26 = 80.0f * (2.0f * ((sp8.x - var_r31->unk08.x) / 15.0f) - rand8() / 255.0f);
var_r31->unk20 = 8.0 * sin(temp_r26 * M_PI / 180.0);
var_r31->unk28 = 8.0 * cos(temp_r26 * M_PI / 180.0);
var_r31->unk20 = 8.0 * sind(temp_r26);
var_r31->unk28 = 8.0 * cosd(temp_r26);
}
var_r31->unk24 -= 0.35f;
if ((var_r31->unk14.x -= 25.5f) < 0.0f) {

View file

@ -23,7 +23,7 @@
#include "game/board/window.h"
#include "dolphin.h"
#include "math.h"
#include "ext_math.h"
static void fn_1_E100(void);
static void fn_1_E154(void);
@ -308,7 +308,7 @@ static void fn_1_E44C(omObjData *arg0) {
arg0->trans.x = spC.x;
arg0->trans.y = spC.y;
arg0->trans.z = spC.z;
arg0->rot.x = sqrtf((lbl_1_bss_7D8.x - sp18.x) * (lbl_1_bss_7D8.x - sp18.x) + (lbl_1_bss_7D8.z - sp18.z) * (lbl_1_bss_7D8.z - sp18.z));
arg0->rot.x = VECDistanceXZ(&lbl_1_bss_7D8, &sp18);
arg0->rot.y = 10.0f;
arg0->rot.z = sp18.y;
arg0->scale.x = 0.0f;
@ -327,7 +327,7 @@ static void fn_1_E914(omObjData *arg0) {
spC.z += arg0->trans.z * arg0->rot.x / 32.760002f;
spC.y += arg0->rot.y - 0.016666668f * arg0->scale.x * arg0->scale.x;
arg0->scale.x += 1.0f;
if (sqrtf((lbl_1_bss_7D8.x - spC.x) * (lbl_1_bss_7D8.x - spC.x) + (lbl_1_bss_7D8.z - spC.z) * (lbl_1_bss_7D8.z - spC.z)) < 2.0f) {
if (VECDistanceXZ(&lbl_1_bss_7D8, &spC) < 2.0f) {
spC = lbl_1_bss_7D8;
BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, fn_1_10BB0(arg0->work[2]), 0.0f);
lbl_1_bss_7EC = 0.05f;
@ -460,7 +460,7 @@ static void fn_1_F3F8(omObjData *arg0) {
arg0->trans.x = spC.x;
arg0->trans.y = spC.y;
arg0->trans.z = spC.z;
arg0->rot.x = sqrtf((lbl_1_bss_7C4.x - sp18.x) * (lbl_1_bss_7C4.x - sp18.x) + (lbl_1_bss_7C4.z - sp18.z) * (lbl_1_bss_7C4.z - sp18.z));
arg0->rot.x = VECDistanceXZ(&lbl_1_bss_7C4, &sp18);
arg0->scale.y = 20.0f + 40.0f * (arg0->rot.x / 445.0f);
arg0->rot.y = 0.016666668f * (arg0->scale.y / 2) * (arg0->scale.y / 2);
arg0->rot.z = sp18.y;
@ -673,8 +673,8 @@ static void fn_1_101B8(s16 arg0) {
if (var_f31 >= 360.0f) {
var_f31 -= 360.0f;
}
temp_f30 = lbl_1_bss_80C.x - 100.0 * cos(var_f31 * M_PI / 180.0);
temp_f28 = lbl_1_bss_80C.z - 100.0 * sin(var_f31 * M_PI / 180.0);
temp_f30 = lbl_1_bss_80C.x - 100.0 * cosd(var_f31);
temp_f28 = lbl_1_bss_80C.z - 100.0 * sind(var_f31);
temp_f29 = lbl_1_bss_80C.y + 66.0f + 1.0f;
omSetTra(var_r31, temp_f30, temp_f29, temp_f28);
var_r31->work[0] = 0;
@ -715,7 +715,7 @@ static void fn_1_10664(omObjData *arg0) {
}
omSetSca(arg0, var_f31, var_f31, var_f31);
} else {
arg0->trans.y += sin(temp_r31[1] * M_PI / 180.0);
arg0->trans.y += sind(temp_r31[1]);
temp_r31[1] += 4.0f;
if (temp_r31[1] >= 360.0f) {
temp_r31[1] -= 360.0f;
@ -739,7 +739,7 @@ static void fn_1_10820(omObjData *arg0) {
sp24.y = 0.0f;
PSVECSubtract(&sp24, &sp18, &spC);
PSVECNormalize(&spC, &spC);
var_f28 = sqrtf((sp24.x - sp18.x) * (sp24.x - sp18.x) + (sp24.z - sp18.z) * (sp24.z - sp18.z));
var_f28 = VECDistanceXZ(&sp24, &sp18);
if (var_f28 < 8.0f) {
arg0->trans.x = sp24.x;
arg0->trans.z = sp24.z;
@ -749,7 +749,7 @@ static void fn_1_10820(omObjData *arg0) {
arg0->trans.z += 8.0f * spC.z;
}
}
arg0->trans.y += sin(temp_r30[1] * M_PI / 180.0);
arg0->trans.y += sind(temp_r30[1]);
temp_r30[1] += 4.0f;
if (temp_r30[1] >= 360.0f) {
temp_r30[1] -= 360.0f;
@ -836,7 +836,7 @@ static float fn_1_10EB8(Vec *arg0) {
return 270.0f;
}
}
var_f31 = 180.0 * (atan2(arg0->z, arg0->x) / M_PI);
var_f31 = atan2d(arg0->z, arg0->x);
if (arg0->z < 0.0f) {
var_f31 = 90.0f - var_f31;
} else {
@ -877,8 +877,8 @@ static void fn_1_11064(ModelData *model, ParticleData *particle, Mtx matrix) {
if (var_r28 != particle->unk_30) {
temp_f30 = 0.003921569f * frand8() * 360.0f;
temp_f29 = 0.003921569f * frand8() * 70.0f * temp_f31;
var_r31->unk34.x = lbl_1_bss_7F0->trans.x + temp_f29 * sin(temp_f30 * M_PI / 180.0);
var_r31->unk34.z = lbl_1_bss_7F0->trans.z + temp_f29 * cos(temp_f30 * M_PI / 180.0);
var_r31->unk34.x = lbl_1_bss_7F0->trans.x + temp_f29 * sind(temp_f30);
var_r31->unk34.z = lbl_1_bss_7F0->trans.z + temp_f29 * cosd(temp_f30);
var_r31->unk34.y = lbl_1_bss_7F0->trans.y + temp_f31 * (-30.0f + 0.003921569f * frand8() * 60.0f);
var_r31->unk08.x = 0.5f + 0.003921569f * frand8() * 3.0f;
var_r31->unk08.y = 0.3f + 0.003921569f * frand8() * 2.0f;
@ -919,14 +919,14 @@ static void fn_1_11484(ModelData *model, ParticleData *particle, Mtx matrix) {
for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
temp_f30 = 0.003921569f * frand8() * 360.0f;
temp_f31 = 0.003921569f * frand8() * 50.0f;
var_r31->unk08.x = temp_f31 * cos(temp_f30 * M_PI / 180.0);
var_r31->unk08.x = temp_f31 * cosd(temp_f30);
var_r31->unk08.y = 2.0f + 0.003921569f * frand8() * 4.0f;
var_r31->unk08.z = temp_f31 * sin(temp_f30 * M_PI / 180.0);
var_r31->unk08.z = temp_f31 * sind(temp_f30);
temp_f29 = 60.0f + 20.0f * frand8() * 0.003921569f;
temp_f31 = 4.0f + 5.0f * frand8() * 0.003921569f;
var_r31->unk14.x = temp_f31 * sin(temp_f30 * M_PI / 180.0) * cos(temp_f29 * M_PI / 180.0);
var_r31->unk14.y = temp_f31 * sin(temp_f29 * M_PI / 180.0);
var_r31->unk14.z = temp_f31 * cos(temp_f30 * M_PI / 180.0) * cos(temp_f29 * M_PI / 180.0);
var_r31->unk14.x = temp_f31 * sind(temp_f30) * cosd(temp_f29);
var_r31->unk14.y = temp_f31 * sind(temp_f29);
var_r31->unk14.z = temp_f31 * cosd(temp_f30) * cosd(temp_f29);
var_r31->unk20 = 1.0f;
var_r31->unk40.a = 0xB4;
var_r31->unk2C = 9.0f + 0.003921569f * frand8() * 4.0f;

1176
src/REL/w04Dll/big_boo.c Executable file

File diff suppressed because it is too large Load diff

View file

@ -9,6 +9,7 @@
#include "game/object.h"
#include "game/objsub.h"
#include "game/pad.h"
#include "game/process.h"
#include "game/sprite.h"
#include "game/window.h"
#include "game/board/audio.h"
@ -21,7 +22,7 @@
#include "game/frand.h"
#include "dolphin.h"
#include "math.h"
#include "ext_math.h"
typedef struct {
/* 0x00 */ char unk00[0x50];
@ -46,7 +47,6 @@ typedef struct {
/* 0x2C */ Process *unk2C;
} BssE4Data; // Size 0x30
static void fn_1_2044(void);
static void fn_1_20EC(void);
static void fn_1_28BC(void);
static void fn_1_2B8C(void);
@ -137,21 +137,6 @@ static float lbl_1_data_358[] = {
-150.00001f, -170.00001f, -30.0f, -220.0f
};
static void fn_1_2044(void) {
lbl_1_bss_38 = NULL;
}
void fn_1_2058(void) {
s32 sp8;
sp8 = GWSystem.player_curr;
lbl_1_bss_38 = HuPrcChildCreate(fn_1_1618, 0x2003, 0x2000, 0, boardMainProc);
HuPrcDestructorSet2(lbl_1_bss_38, fn_1_2044);
while (lbl_1_bss_38) {
HuPrcVSleep();
}
}
static void fn_1_20EC(void) {
Vec sp20;
Vec sp14;
@ -223,7 +208,7 @@ static void fn_1_20EC(void) {
lbl_1_bss_74 = lbl_1_bss_78 = var_r27->link[0];
BoardSpacePosGet(0, lbl_1_bss_78, &sp14);
BoardModelPosGet(lbl_1_bss_FA, &sp20);
while (fn_1_1130(lbl_1_bss_FA, 180.0 * (atan2(sp14.x - sp20.x, sp14.z - sp20.z) / M_PI), 2.0f) == 0) {
while (fn_1_1130(lbl_1_bss_FA, atan2d(sp14.x - sp20.x, sp14.z - sp20.z), 2.0f) == 0) {
HuPrcVSleep();
}
PSVECSubtract(&sp14, &sp20, &sp8);
@ -236,7 +221,7 @@ static void fn_1_20EC(void) {
BoardAudSeqPause(0, 1, 1000);
BoardModelPosSetV(lbl_1_bss_FA, &sp14);
BoardPlayerPosGet(temp_r30, &sp14);
while (fn_1_1130(lbl_1_bss_FA, 180.0 * (atan2(sp14.x - sp20.x, sp14.z - sp20.z) / M_PI), 3.0f) == 0) {
while (fn_1_1130(lbl_1_bss_FA, atan2d(sp14.x - sp20.x, sp14.z - sp20.z), 3.0f) == 0) {
HuPrcVSleep();
}
fn_1_2EE8(1);
@ -306,7 +291,7 @@ static void fn_1_28BC(void) {
}
BoardSpacePosGet(0, var_r31, &sp20);
BoardModelPosGet(lbl_1_bss_FA, &sp14);
temp_f30 = 180.0 * (atan2(sp20.x - sp14.x, sp20.z - sp14.z) / M_PI);
temp_f30 = atan2d(sp20.x - sp14.x, sp20.z - sp14.z);
BoardModelRotYSet(lbl_1_bss_FA, temp_f30);
PSVECSubtract(&sp20, &sp14, &sp8);
PSVECScale(&sp8, &sp8, 0.022222223f);
@ -427,7 +412,7 @@ static void fn_1_2FDC(void) {
temp_r31 = HuPrcCurrentGet()->user_data;
while (TRUE) {
BoardModelPosGet(temp_r31->unk04, &sp8);
sp8.y = temp_r31->unk1C + 4.0 * sin(temp_r31->unk14 * M_PI / 180.0);
sp8.y = temp_r31->unk1C + 4.0 * sind(temp_r31->unk14);
BoardModelPosSetV(temp_r31->unk04, &sp8);
if (temp_r31->unk08 != -1) {
sp8.y += 50.0f;
@ -484,7 +469,7 @@ static void fn_1_30A4(void) {
}
fn_1_5980(temp_r22);
BoardModelPosGet(temp_r31->unk04, &sp20);
temp_f31 = 180.0 * (atan2(temp_r31->unk20.x - sp20.x, temp_r31->unk20.z - sp20.z) / M_PI);
temp_f31 = atan2d(temp_r31->unk20.x - sp20.x, temp_r31->unk20.z - sp20.z);
while (fn_1_1130(temp_r31->unk04, temp_f31, 5.0f) == 0) {
HuPrcVSleep();
}
@ -543,7 +528,7 @@ static void fn_1_30A4(void) {
break;
case 3:
BoardModelPosGet(temp_r31->unk04, &sp20);
temp_f31 = 180.0 * (atan2(temp_r31->unk20.x - sp20.x, temp_r31->unk20.z - sp20.z) / M_PI);
temp_f31 = atan2d(temp_r31->unk20.x - sp20.x, temp_r31->unk20.z - sp20.z);
BoardModelRotYSet(temp_r31->unk04, temp_f31);
if (temp_r31->unk08 != -1) {
BoardPlayerRotYSet(temp_r31->unk08, temp_f31);
@ -623,7 +608,7 @@ static void fn_1_38D8(void) {
sp18 = lbl_1_bss_80[temp_r31];
GWPlayer[temp_r31].space_curr = lbl_1_bss_B0;
BoardPlayerPosGet(temp_r31, &sp24);
var_f28 = 180.0 * (atan2(sp18.x - sp24.x, sp18.z - sp24.z) / M_PI);
var_f28 = atan2d(sp18.x - sp24.x, sp18.z - sp24.z);
BoardPlayerRotYSet(temp_r31, var_f28);
PSVECSubtract(&sp18, &sp24, &spC);
PSVECScale(&spC, &spC, 0.025f);
@ -637,7 +622,7 @@ static void fn_1_38D8(void) {
sp24.y = sp18.y;
break;
}
var_f28 = sqrtf((sp18.x - sp24.x) * (sp18.x - sp24.x) + (sp18.z - sp24.z) * (sp18.z - sp24.z));
var_f28 = VECDistanceXZ(&sp18, &sp24);
if (var_f28 <= 1.0f) {
spC.x = spC.z = 0.0f;
}
@ -712,7 +697,7 @@ static s32 fn_1_3C9C(void) {
BoardSpacePosGet(0, sp20[i], &sp44);
sp50.y = sp44.y;
PSVECSubtract(&sp44, &sp50, &sp38);
var_f31 = 180.0 * (atan2(sp38.x, sp38.z) / M_PI);
var_f31 = atan2d(sp38.x, sp38.z);
if (var_f31 < 0.0f) {
var_f31 += 360.0f;
}
@ -768,7 +753,7 @@ static s32 fn_1_3C9C(void) {
var_r25 = 0;
}
if (var_r26 != 0 || var_r25 != 0) {
var_f30 = 180.0 * (atan2(-var_r26, var_r25) / M_PI) - 180.0;
var_f30 = atan2d(-var_r26, var_r25) - 180.0;
var_f30 += var_f29;
if (var_f30 >= 360.0f) {
var_f30 -= 360.0f;
@ -793,7 +778,7 @@ static s32 fn_1_3C9C(void) {
}
for (i = 0; i < var_r29; i++) {
if (var_r27 == i) {
sp38.x = sp38.y = sp38.z = 1.7999999523162842 + sin(var_f31 * M_PI / 180.0);
sp38.x = sp38.y = sp38.z = 1.8f + sind(var_f31);
var_f31 += 8.0f;
if (var_f31 > 180.0f) {
var_f31 -= 180.0f;
@ -925,7 +910,7 @@ static void fn_1_4848(void) {
BoardPlayerMotBlendSet(temp_r30, BoardModelRotYGet(lbl_1_bss_FA) - 180.0f, 0xA);
while (!BoardPlayerMotBlendCheck(temp_r30)) {
BoardModelPosGet(lbl_1_bss_FA, &sp14);
temp_f28 = sqrtf((sp20.x - sp14.x) * (sp20.x - sp14.x) + (sp20.z - sp14.z) * (sp20.z - sp14.z));
temp_f28 = VECDistanceXZ(&sp20, &sp14);
if (temp_f28 <= 200.0f) {
HuAudPlayerVoicePlay(temp_r30, 0x128);
goto block_A;
@ -936,7 +921,7 @@ static void fn_1_4848(void) {
HuAudPlayerVoicePlay(temp_r30, 0x128);
for (i = 0; i < 65; i++) {
BoardModelPosGet(lbl_1_bss_FA, &sp14);
temp_f28 = sqrtf((sp20.x - sp14.x) * (sp20.x - sp14.x) + (sp20.z - sp14.z) * (sp20.z - sp14.z));
temp_f28 = VECDistanceXZ(&sp20, &sp14);
if (temp_f28 <= 200.0f) {
goto block_A;
}
@ -944,7 +929,7 @@ static void fn_1_4848(void) {
}
BoardPlayerMotionShiftSet(temp_r30, 1, 0.0f, 5.0f, 0);
BoardModelPosGet(lbl_1_bss_FA, &sp14);
temp_f28 = sqrtf((sp20.x - sp14.x) * (sp20.x - sp14.x) + (sp20.z - sp14.z) * (sp20.z - sp14.z));
temp_f28 = VECDistanceXZ(&sp20, &sp14);
if (temp_f28 > 200.0f) {
HuPrcVSleep();
}
@ -1006,7 +991,7 @@ static void fn_1_5018(void) {
BoardModelPosGet(lbl_1_bss_FA, &spC);
for (i = 0; i < lbl_1_bss_C2; i++) {
BoardPlayerPosGet(lbl_1_bss_BA[i], &sp18);
var_f29 = sqrtf((sp18.x - spC.x) * (sp18.x - spC.x) + (sp18.z - spC.z) * (sp18.z - spC.z));
var_f29 = VECDistanceXZ(&sp18, &spC);
if (var_f29 < 900.0f && lbl_1_bss_B2[lbl_1_bss_BA[i]] == 0) {
temp_r3 = HuPrcChildCreate(fn_1_4848, 0x2003, 0x2000, 0, boardMainProc);
lbl_1_bss_D4[lbl_1_bss_BA[i]] = temp_r3;
@ -1191,10 +1176,10 @@ static void fn_1_5A2C(ModelData *model, ParticleData *particle, Mtx matrix) {
var_r26 = 0;
for (i = 0; i < particle->unk_30; i++, var_r31++) {
if (var_r31->unk08.z != 0.0f) {
var_r31->unk34.x += var_r31->unk28 * sin(var_r31->unk08.x * M_PI / 180.0);
var_r31->unk34.x += var_r31->unk28 * sind(var_r31->unk08.x);
var_r31->unk34.y += var_r31->unk08.y;
var_r31->unk34.z += var_r31->unk28 * cos(var_r31->unk08.x * M_PI / 180.0);
var_r31->unk08.x += var_r31->unk24 * sin(var_r31->unk08.x * M_PI / 180.0);
var_r31->unk34.z += var_r31->unk28 * cosd(var_r31->unk08.x);
var_r31->unk08.x += var_r31->unk24 * sind(var_r31->unk08.x);
if (var_r31->unk08.x >= 360.0f) {
var_r31->unk08.x -= 360.0f;
}

View file

@ -4,6 +4,7 @@
#include "game/gamework_data.h"
#include "game/memory.h"
#include "game/objsub.h"
#include "game/process.h"
#include "game/window.h"
#include "game/board/main.h"
#include "game/board/model.h"
@ -12,7 +13,7 @@
#include "game/board/window.h"
#include "dolphin.h"
#include "math.h"
#include "ext_math.h"
static void fn_1_17B4(s16 arg0, s16 arg1);
static void fn_1_191C(void);
@ -20,9 +21,10 @@ static void fn_1_1B98(s16 arg0);
static void fn_1_1C2C(void);
static void fn_1_1E60(void);
static void fn_1_2008(void);
static void fn_1_2044(void);
static Process *lbl_1_bss_3C[3];
Process *lbl_1_bss_38;
static Process *lbl_1_bss_38;
static s32 lbl_1_data_298[] = {
DATA_MAKE_NUM(DATADIR_W04, 32),
@ -61,7 +63,7 @@ void fn_1_12FC(void) {
sp8.x = sp8.y = sp8.z = 2.0f;
BoardModelScaleSetV(lbl_1_bss_14[11], &sp8);
fn_1_1C2C();
if (lbl_1_bss_0[0] & 1) {
if (lbl_1_bss_0->unk00 & 1) {
BoardModelMotionStartEndSet(lbl_1_bss_14[5], 0, 180);
BoardModelMotionTimeSet(lbl_1_bss_14[5], 108.0f);
fn_1_17B4(0, 1);
@ -106,7 +108,7 @@ void fn_1_1618(void) {
HuPrcVSleep();
}
BoardCameraMotionWait();
*lbl_1_bss_0 ^= 1;
lbl_1_bss_0->unk00 ^= 1;
fn_1_191C();
fn_1_1C2C();
HuAudPlayerVoicePlay(temp_r31, 0x128);
@ -115,7 +117,7 @@ void fn_1_1618(void) {
HuPrcVSleep();
}
HuPrcSleep(30);
if (!(*lbl_1_bss_0 & 1)) {
if (!(lbl_1_bss_0->unk00 & 1)) {
BoardWinCreate(2, MAKE_MESSID(32, 24), 11);
BoardWinWait();
BoardWinKill();
@ -164,7 +166,7 @@ static void fn_1_191C(void) {
s32 var_r30;
HuAudFXPlay(0x4B);
if (*lbl_1_bss_0 & 1) {
if (lbl_1_bss_0->unk00 & 1) {
BoardWinCreate(2, MAKE_MESSID(32, 23), 11);
BoardWinWait();
BoardWinKill();
@ -219,7 +221,7 @@ static void fn_1_1C2C(void) {
s16 *var_r28;
s32 i;
if (*lbl_1_bss_0 == 0) {
if (lbl_1_bss_0->unk00 == 0) {
BoardModelMotionStartEndSet(lbl_1_bss_14[3], 0, 80);
BoardModelMotionTimeSet(lbl_1_bss_14[3], 0.0f);
BoardModelVisibilitySet(lbl_1_bss_14[0], 1);
@ -262,10 +264,10 @@ static void fn_1_1E60(void) {
BoardSpacePosGet(0, var_r28, &sp8);
PSVECSubtract(&sp8, &sp14, &sp20);
PSVECScale(&sp20, &sp20, 0.008333334f);
temp_f31 = 180.0 * (atan2(sp8.x - sp14.x, sp8.z - sp14.z) / M_PI);
temp_f31 = atan2d(sp8.x - sp14.x, sp8.z - sp14.z);
BoardModelPosGet(temp_r31[1], &sp14);
while (fn_1_1130(temp_r31[1], temp_f31, 2.5f) == 0) {
if (*lbl_1_bss_0 == 0) {
if (lbl_1_bss_0->unk00 == 0) {
BoardModelAlphaSet(temp_r31[1], 0xFF);
} else {
BoardModelAlphaSet(temp_r31[1], 0);
@ -273,7 +275,7 @@ static void fn_1_1E60(void) {
HuPrcVSleep();
}
for (i = 0; i < 120; i++) {
if (*lbl_1_bss_0 == 0) {
if (lbl_1_bss_0->unk00 == 0) {
BoardModelAlphaSet(temp_r31[1], 0xFF);
} else {
BoardModelAlphaSet(temp_r31[1], 0);
@ -295,3 +297,18 @@ static void fn_1_2008(void) {
BoardModelKill(temp_r31[1]);
HuMemDirectFree(temp_r31);
}
static void fn_1_2044(void) {
lbl_1_bss_38 = NULL;
}
void fn_1_2058(void) {
s32 sp8;
sp8 = GWSystem.player_curr;
lbl_1_bss_38 = HuPrcChildCreate(fn_1_1618, 0x2003, 0x2000, 0, boardMainProc);
HuPrcDestructorSet2(lbl_1_bss_38, fn_1_2044);
while (lbl_1_bss_38) {
HuPrcVSleep();
}
}

View file

@ -4,6 +4,7 @@
#include "game/data.h"
#include "game/gamework_data.h"
#include "game/object.h"
#include "game/process.h"
#include "game/window.h"
#include "game/board/boo_house.h"
#include "game/board/com.h"
@ -55,7 +56,7 @@ BoardMapObject lbl_1_data_0[MAPOBJ_MAX] = {
static s32 *lbl_1_bss_10;
static s16 lbl_1_bss_8[4];
static Process *lbl_1_bss_4;
s8 *lbl_1_bss_0;
UnkW04BoardData *lbl_1_bss_0;
static s16 lbl_1_data_280 = -1;
static s16 lbl_1_data_282 = -1;
@ -79,7 +80,7 @@ void BoardCreate(void) {
omDBGMenuButton = 1;
sp8 = GWBoardGet();
lbl_1_bss_0 = (s8*) GWSystem.board_data;
lbl_1_bss_0 = (UnkW04BoardData*) GWSystem.board_data;
BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W04, 0));
lbl_1_data_280 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 1), NULL, 0);
fn_8006DDE8(lbl_1_data_280, -1.0f);
@ -204,7 +205,7 @@ static s32 fn_1_7FC(void) {
return 1;
}
if (temp_r3->flag & 0x100) {
if (lbl_1_bss_0[0] & 1) {
if (lbl_1_bss_0->unk00 & 1) {
fn_1_55B4();
} else {
BoardDiceDigit2DShowSet(0);
@ -422,12 +423,12 @@ s32 fn_1_1130(s16 arg0, float arg1, float arg2) {
}
if (var_f29 < 180.0f) {
if (var_f29 > arg2) {
var_f31 = var_f31 + arg2;
var_f31 += arg2;
} else {
var_f31 = arg1;
}
} else if (360.0f - var_f29 > arg2) {
var_f31 = var_f31 - arg2;
var_f31 -= arg2;
} else {
var_f31 = arg1;
}

663
src/REL/w04Dll/mg_coin.c Executable file
View file

@ -0,0 +1,663 @@
#include "REL/w04Dll.h"
#include "game/audio.h"
#include "game/chrman.h"
#include "game/data.h"
#include "game/frand.h"
#include "game/gamework_data.h"
#include "game/hsfdraw.h"
#include "game/hsfmotion.h"
#include "game/minigame_seq.h"
#include "game/msm.h"
#include "game/object.h"
#include "game/objsub.h"
#include "game/pad.h"
#include "game/process.h"
#include "game/window.h"
#include "game/board/audio.h"
#include "game/board/main.h"
#include "game/board/model.h"
#include "game/board/player.h"
#include "game/board/window.h"
static void fn_1_CF8C(omObjData *arg0);
static void fn_1_D0AC(void);
static void fn_1_D0DC(void);
static void fn_1_D174(omObjData *arg0);
static void fn_1_D230(omObjData *arg0);
static void fn_1_D2A4(omObjData *arg0);
static void fn_1_D554(omObjData *arg0);
static void fn_1_D6A8(omObjData *arg0);
static void fn_1_D70C(omObjData *arg0);
static void fn_1_D770(void);
static void fn_1_E004(void);
static void fn_1_E144(omObjData *arg0);
static void fn_1_E18C(omObjData *arg0);
static void fn_1_E374(omObjData *arg0);
static void fn_1_E4C0(omObjData *arg0);
static void fn_1_E6AC(omObjData *arg0);
static s16 fn_1_E880(omObjData *arg0);
static u16 lbl_1_bss_326;
static s16 lbl_1_bss_324;
static omObjData *lbl_1_bss_320;
static omObjData *lbl_1_bss_31C;
static omObjData *lbl_1_bss_318;
static s16 lbl_1_bss_314;
static Vec lbl_1_bss_308;
static Vec lbl_1_bss_2FC;
static s16 lbl_1_bss_2FA;
static s16 lbl_1_bss_2F8;
static s16 lbl_1_bss_2D0[20];
static u16 lbl_1_bss_2C2[7];
static u16 lbl_1_bss_2B4[7];
static s32 lbl_1_bss_2B0;
static s32 lbl_1_data_588 = -1;
static char *lbl_1_data_5BC[] = {
"pia1", "pia2", "pia3", "pia4",
"pia5", "pia6", "pia7", "pia8",
"pia9"
};
static u16 lbl_1_data_5E0[] = {
0x0100, 0x0200, 0x0040, 0x0020,
0x0800, 0x0400, 0x0010
};
static s32 lbl_1_data_5F0[] = {
0x0000046D,
0x0000046E,
0x0000046F,
0x00000470,
0x00000471,
0x00000472,
0x00000473,
0x00000474
};
void fn_1_C7A0(void) {
BoardModelAttrSet(lbl_1_bss_14[7], 0x40000002);
}
void fn_1_C7D4(void) {
Vec sp38;
Vec sp2C;
Vec sp20;
Vec sp14;
Vec sp8;
float temp_f30;
float var_f31;
float var_f29;
s16 temp_r30;
s32 i;
BoardModelLayerSet(lbl_1_bss_14[9], 1);
lbl_1_bss_324 = GWSystem.player_curr;
lbl_1_data_588 = -1;
lbl_1_bss_2FA = 0;
for (i = 0; i < 7; i++) {
lbl_1_bss_2B4[i] = 0;
}
for (i = 0; i < 7; i++) {
do {
temp_r30 = frandmod(7);
} while (lbl_1_bss_2B4[temp_r30] != 0);
lbl_1_bss_2B4[temp_r30] = i + 1;
lbl_1_bss_2C2[temp_r30] = lbl_1_data_5E0[i];
}
for (i = 0; i < 7; i++) {
OSReport("%d: %d %04X\n", i, lbl_1_bss_2B4[i], lbl_1_bss_2C2[i]);
}
lbl_1_bss_2F8 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 16), NULL, 0);
BoardModelVisibilitySet(lbl_1_bss_2F8, 0);
BoardModelAttrSet(lbl_1_bss_2F8, 0x40000002);
for (i = 0; i < 20; i++) {
lbl_1_bss_2D0[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 1);
BoardModelVisibilitySet(lbl_1_bss_2D0[i], 0);
}
BoardPlayerMotBlendSet(lbl_1_bss_324, 0xB4, 0xF);
while (!BoardPlayerMotBlendCheck(lbl_1_bss_324)) {
HuPrcVSleep();
}
BoardWinCreate(2, MAKE_MESSID(32, 19), 3);
BoardWinWait();
BoardWinKill();
BoardPlayerPosGet(lbl_1_bss_324, &lbl_1_bss_308);
BoardModelPosGet(lbl_1_bss_14[9], &lbl_1_bss_2FC);
BoardPlayerPosGet(lbl_1_bss_324, &sp38);
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[7]), lbl_1_data_5BC[0], &sp2C);
sp20 = sp2C;
sp20.z = sp38.z;
sp20.y = sp38.y;
BoardPlayerPosLerpStart(lbl_1_bss_324, &sp38, &sp20, 0x3C);
while (fn_1_1130(lbl_1_bss_14[9], 270.0f, 30.0f) == 0) {
HuPrcVSleep();
}
BoardModelPosGet(lbl_1_bss_14[9], &sp8);
sp14 = sp8;
sp14.x = sp2C.x;
PSVECSubtract(&sp14, &sp8, &sp38);
PSVECScale(&sp38, &sp38, 0.022727273f);
for (i = 0; i < 44; i++) {
BoardModelPosGet(lbl_1_bss_14[9], &sp8);
PSVECAdd(&sp8, &sp38, &sp8);
BoardModelPosSetV(lbl_1_bss_14[9], &sp8);
HuPrcVSleep();
}
BoardModelPosSetV(lbl_1_bss_14[9], &sp14);
while (fn_1_1130(lbl_1_bss_14[9], 0.0f, 30.0f) == 0) {
HuPrcVSleep();
}
while (GWPlayer[lbl_1_bss_324].moving) {
HuPrcVSleep();
}
BoardPlayerMotBlendSet(lbl_1_bss_324, 0xB4, 0xF);
while (!BoardPlayerMotBlendCheck(lbl_1_bss_324)) {
HuPrcVSleep();
}
BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, 0);
var_f31 = 0.0f;
temp_f30 = 8.0f;
PSVECSubtract(&sp2C, &sp20, &sp38);
PSVECScale(&sp38, &sp38, 0.05f);
while (TRUE) {
BoardPlayerPosGet(lbl_1_bss_324, &sp20);
sp38.y = temp_f30 - var_f31 * var_f31 * 0.25f * 0.075f;
var_f31 += 1.0f;
PSVECAdd(&sp38, &sp20, &sp20);
sp14 = sp2C;
sp14.y = sp20.y;
PSVECSubtract(&sp14, &sp20, &sp14);
var_f29 = PSVECMag(&sp14);
if (var_f29 <= 1.0f) {
sp38.x = sp38.z = 0.0f;
sp20.x = sp2C.x;
sp20.z = sp2C.z;
}
if (sp20.y <= sp2C.y && sp38.y < 0.0f) {
sp20.y = sp2C.y;
break;
}
BoardPlayerPosSetV(lbl_1_bss_324, &sp20);
HuPrcVSleep();
}
BoardPlayerPosSetV(lbl_1_bss_324, &sp20);
BoardPlayerMotBlendSet(lbl_1_bss_324, 0x5A, 0xF);
while (!BoardPlayerMotBlendCheck(lbl_1_bss_324)) {
HuPrcVSleep();
}
HuPrcSleep(60);
lbl_1_bss_320 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_CF8C);
lbl_1_bss_318 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_D174);
lbl_1_bss_31C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, NULL);
lbl_1_bss_318->scale.x = 255.0f;
lbl_1_bss_314 = 0;
lbl_1_bss_326 = 0;
}
static void fn_1_CF8C(omObjData *arg0) {
s32 spC;
if (lbl_1_data_588 != -1) {
spC = HuAudSeqMidiCtrlGet(lbl_1_data_588, 0, 1);
if (msmMusGetStatus(lbl_1_data_588) == 0) {
HuAudSeqFadeOut(lbl_1_data_588, 100);
lbl_1_bss_2FA = 1;
}
if (lbl_1_bss_2FA == 1 && msmMusGetStatus(lbl_1_data_588) == 0) {
lbl_1_data_588 = -1;
BoardAudSeqPause(0, 0, 1000);
OSReport("BGM1 Restore\n");
}
}
if (lbl_1_bss_326 != 0 && BoardMGDoneFlagGet() == 1) {
fn_1_D0DC();
omDelObjEx(boardObjMan, arg0);
}
}
static void fn_1_D0AC(void) {
lbl_1_bss_326 = 1;
BoardMGExit();
}
static void fn_1_D0DC(void) {
s32 i;
omDelObjEx(boardObjMan, lbl_1_bss_31C);
BoardModelKill(lbl_1_bss_2F8);
for (i = 0; i < 20; i++) {
BoardModelKill(lbl_1_bss_2D0[i]);
}
BoardModelLayerSet(lbl_1_bss_14[9], 0);
BoardMGDoneFlagSet(0);
}
static void fn_1_D174(omObjData *arg0) {
UnkMsmStruct_03 sp8;
if (arg0->work[0] == 0) {
arg0->work[0] = MGSeqCreate(3, 0);
BoardAudSeqPause(0, 1, 1000);
return;
}
if (MGSeqStatGet(arg0->work[0]) == 0) {
sp8.unk00 = 1;
sp8.unk06 = 0;
sp8.unk05 = 0x7F;
sp8.unk04 = 1;
lbl_1_data_588 = msmMusPlay(0x1D, &sp8);
arg0->func = fn_1_D230;
}
}
static void fn_1_D230(omObjData *arg0) {
s32 temp_r3;
temp_r3 = HuAudSeqMidiCtrlGet(lbl_1_data_588, 0, 1);
if (temp_r3 >= 10 && temp_r3 <= 19) {
arg0->work[1]++;
arg0->func = fn_1_D2A4;
}
}
static void fn_1_D2A4(omObjData *arg0) {
Vec sp18;
Vec spC;
float sp8;
ModelData *temp_r30;
s32 temp_r3;
temp_r30 = &Hu3DData[BoardModelIDGet(lbl_1_bss_2F8)];
sp8 = BoardModelRotYGet(lbl_1_bss_14[9]);
BoardModelPosGet(lbl_1_bss_14[9], &spC);
if (arg0->scale.x != 0.0f) {
arg0->scale.x -= 8.5f;
if (arg0->scale.x < 0.0f) {
arg0->scale.x = 0.0f;
}
BoardModelAlphaSet(lbl_1_bss_14[9], arg0->scale.x);
return;
}
temp_r3 = HuAudSeqMidiCtrlGet(lbl_1_data_588, 0, 1);
if (temp_r3 >= 20 && temp_r3 <= 29) {
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[7]), lbl_1_data_5BC[arg0->work[1]], &sp18);
spC.x = sp18.x;
BoardModelPosSetV(lbl_1_bss_14[9], &spC);
arg0->func = fn_1_D554;
if (arg0->work[1] < 8) {
BoardModelHookReset(lbl_1_bss_14[7]);
BoardModelVisibilitySet(lbl_1_bss_2F8, 1);
BoardModelMotionTimeSet(lbl_1_bss_2F8, lbl_1_bss_2B4[arg0->work[1] - 1]);
BoardModelHookSet(lbl_1_bss_14[7], lbl_1_data_5BC[arg0->work[1]], lbl_1_bss_2F8);
Hu3DMotionExec(BoardModelIDGet(lbl_1_bss_2F8), temp_r30->unk_08, temp_r30->unk_64, 0);
}
lbl_1_bss_31C->work[0] = 60;
lbl_1_bss_31C->unk10 = frandmod(40) + 10;
lbl_1_bss_31C->work[1] = arg0->work[1];
lbl_1_bss_31C->func = fn_1_E18C;
}
}
static void fn_1_D554(omObjData *arg0) {
float sp8;
sp8 = BoardModelRotYGet(lbl_1_bss_14[9]);
arg0->scale.x += 8.5f;
if (arg0->scale.x > 255.0f) {
arg0->scale.x = 255.0f;
}
BoardModelAlphaSet(lbl_1_bss_14[9], arg0->scale.x);
if (arg0->scale.x == 255.0f) {
arg0->work[0] = 0;
lbl_1_bss_31C->work[1] = arg0->work[1];
arg0->scale.x = 255.0f;
BoardModelAlphaSet(lbl_1_bss_14[9], arg0->scale.x);
if (arg0->work[1] == 8) {
arg0->func = fn_1_D70C;
lbl_1_bss_31C->work[2] = 1;
lbl_1_bss_31C->func = fn_1_E374;
} else {
arg0->func = fn_1_D6A8;
}
}
}
static void fn_1_D6A8(omObjData *arg0) {
if (arg0->work[0] != 0) {
BoardModelHookReset(lbl_1_bss_14[7]);
BoardModelVisibilitySet(lbl_1_bss_2F8, 0);
arg0->func = fn_1_D230;
}
}
static void fn_1_D70C(omObjData *arg0) {
Process *var_r30;
if (arg0->work[0] == 1) {
var_r30 = HuPrcCreate(fn_1_D770, 0x2004, 0x1800, 0);
var_r30->user_data = arg0;
arg0->func = NULL;
}
}
s16 lbl_1_data_62C[] = {
1, 3, 5, 7, 10, 14, 18, 20
};
static void fn_1_D770(void) {
Vec sp114[20];
Vec sp24[20];
Vec sp18;
Vec spC;
float temp_f29;
float var_f30;
float var_f31;
char sp8[4];
Process *temp_r3;
omObjData *var_r28;
s32 var_r29;
s32 i;
lbl_1_bss_314 = lbl_1_data_62C[lbl_1_bss_314 - 1];
sprintf(sp8, "%d", lbl_1_bss_314);
BoardWinCreate(2, MAKE_MESSID(32, 20), 3);
BoardWinInsertMesSet(MAKE_MESSID_PTR(sp8), 0);
BoardWinWait();
BoardWinKill();
BoardPlayerMotBlendSet(lbl_1_bss_324, 0, 0xF);
while (!BoardPlayerMotBlendCheck(lbl_1_bss_324)) {
HuPrcVSleep();
}
BoardPlayerPosGet(lbl_1_bss_324, &sp18);
for (i = 0; i < lbl_1_bss_314; i++) {
BoardModelVisibilitySet(lbl_1_bss_2D0[i], 1);
sp114[i] = sp18;
sp114[i].y += 800.0f + i * 120;
sp114[i].x += -25.0f + 50.0f * frand8() * 0.003921569f;
sp114[i].z += -25.0f + 50.0f * frand8() * 0.003921569f;
sp24[i].x = sp24[i].z = 0.0f;
sp24[i].y = 360.0f * frand8() * 0.003921569f;
BoardModelPosSetV(lbl_1_bss_2D0[i], &sp114[i]);
BoardModelRotSetV(lbl_1_bss_2D0[i], &sp24[i]);
}
var_f31 = -1.0f;
var_r29 = 0;
while (TRUE) {
for (i = 0; i < lbl_1_bss_314; i++) {
if (i < var_r29) {
continue;
}
sp114[i].y += var_f31;
BoardModelPosSetV(lbl_1_bss_2D0[i], &sp114[i]);
sp24[i].y += 45.0f;
if (sp24[i].y >= 360.0f) {
sp24[i].y -= 360.0f;
}
BoardModelRotSetV(lbl_1_bss_2D0[i], &sp24[i]);
if (sp114[i].y <= sp18.y + 80.0f) {
spC = sp114[i];
CharModelCoinEffectCreate(1, &spC);
BoardModelVisibilitySet(lbl_1_bss_2D0[i], 0);
var_r29 += 1;
BoardPlayerCoinsAdd(lbl_1_bss_324, 1);
HuAudFXPlay(7);
omVibrate(lbl_1_bss_324, 12, 6, 6);
}
}
var_f31 *= 1.05f;
if (var_f31 < -20.0f) {
var_f31 = -20.0f;
}
if (var_r29 == lbl_1_bss_314) {
BoardPlayerMotionShiftSet(lbl_1_bss_324, 7, 0.0f, 10.0f, 0);
break;
}
HuPrcVSleep();
}
while (!BoardPlayerMotionEndCheck(lbl_1_bss_324)) {
HuPrcVSleep();
}
BoardWinCreate(2, MAKE_MESSID(32, 21), 3);
BoardWinWait();
BoardWinKill();
temp_r3 = HuPrcCreate(fn_1_E004, 0x2004, 0x1000, 0);
temp_r3->user_data = NULL;
BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, 0);
var_f30 = 0.0f;
temp_f29 = 8.0f;
lbl_1_bss_308.z = sp18.z + 100.0f;
lbl_1_bss_308.x = sp18.x + 50.0f;
PSVECSubtract(&lbl_1_bss_308, &sp18, &spC);
PSVECScale(&spC, &spC, 0.04f);
while (TRUE) {
BoardPlayerPosGet(lbl_1_bss_324, &sp18);
spC.y = temp_f29 - var_f30 * var_f30 * 0.25f * 0.075f;
var_f30 += 1.0f;
PSVECAdd(&spC, &sp18, &sp18);
sp114[0] = lbl_1_bss_308;
sp114[0].y = sp18.y;
PSVECSubtract(&sp114[0], &sp18, &sp114[0]);
var_f31 = PSVECMag(&sp114[0]);
if (var_f31 <= 1.0f) {
spC.x = spC.z = 0.0f;
sp18.x = lbl_1_bss_308.x;
sp18.z = lbl_1_bss_308.z;
}
if (sp18.y <= lbl_1_bss_308.y && spC.y < 0.0f) {
sp18.y = lbl_1_bss_308.y;
break;
}
BoardPlayerPosSetV(lbl_1_bss_324, &sp18);
HuPrcVSleep();
}
BoardPlayerPosSetV(lbl_1_bss_324, &sp18);
omVibrate(lbl_1_bss_324, 12, 6, 6);
while (!temp_r3->user_data) {
HuPrcVSleep();
}
HuPrcKill(temp_r3);
var_r28 = HuPrcCurrentGet()->user_data;
var_r28->func = fn_1_E144;
HuPrcEnd();
}
static void fn_1_E004(void) {
Vec sp14;
Vec sp8;
s32 i;
while (fn_1_1130(lbl_1_bss_14[9], 90.0f, 30.0f) == 0) {
HuPrcVSleep();
}
BoardModelPosGet(lbl_1_bss_14[9], &sp14);
PSVECSubtract(&lbl_1_bss_2FC, &sp14, &sp8);
PSVECScale(&sp8, &sp8, 0.1f);
for (i = 0; i < 10; i++) {
BoardModelPosGet(lbl_1_bss_14[9], &sp14);
PSVECAdd(&sp14, &sp8, &sp14);
BoardModelPosSetV(lbl_1_bss_14[9], &sp14);
HuPrcVSleep();
}
BoardModelPosSetV(lbl_1_bss_14[9], &lbl_1_bss_2FC);
while (fn_1_1130(lbl_1_bss_14[9], 0.0f, 30.0f) == 0) {
HuPrcVSleep();
}
HuPrcCurrentGet()->user_data = (void*) 1;
while (TRUE) {
HuPrcVSleep();
}
}
static void fn_1_E144(omObjData *arg0) {
lbl_1_bss_326 = 1;
BoardMGExit();
omDelObjEx(boardObjMan, arg0);
}
static void fn_1_E18C(omObjData *arg0) {
s32 var_r29;
s16 var_r28;
s16 var_r30;
var_r29 = HuAudSeqMidiCtrlGet(lbl_1_data_588, 0, 1);
if (var_r29 >= 20 && var_r29 <= 29) {
var_r28 = GWPlayer[lbl_1_bss_324].port;
var_r30 = 0;
if (GWPlayer[lbl_1_bss_324].com) {
if (--arg0->unk10 == 0) {
var_r30 = fn_1_E880(arg0);
}
} else {
var_r30 = HuPadBtnDown[var_r28];
}
if (var_r30 & 0xF70) {
if ((var_r30 & lbl_1_bss_2C2[arg0->work[1] - 1]) && !(var_r30 & ~lbl_1_bss_2C2[arg0->work[1] - 1])) {
arg0->work[2] = 1;
} else {
arg0->work[2] = 0;
}
BoardModelVisibilitySet(lbl_1_bss_2F8, 0);
arg0->func = fn_1_E374;
}
} else {
BoardModelVisibilitySet(lbl_1_bss_2F8, 0);
arg0->work[2] = 0;
arg0->func = fn_1_E374;
lbl_1_bss_318->work[0] = 1;
fn_1_E374(arg0);
}
}
static void fn_1_E374(omObjData *arg0) {
Vec sp20;
Vec sp14;
Vec sp8;
s32 temp_r3;
temp_r3 = HuAudSeqMidiCtrlGet(lbl_1_data_588, 0, 1);
if (temp_r3 >= 30 && temp_r3 <= 39) {
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[7]), lbl_1_data_5BC[arg0->work[1]], &sp14);
BoardPlayerPosGet(lbl_1_bss_324, &sp20);
PSVECSubtract(&sp14, &sp20, &sp8);
PSVECScale(&sp8, &sp8, 0.04f);
arg0->trans.x = sp8.x;
arg0->trans.z = sp8.z;
arg0->trans.y = 5.0f;
arg0->rot.x = 0.0f;
arg0->scale.x = sp14.x;
arg0->scale.y = sp14.y;
arg0->scale.z = sp14.z;
BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, 0);
arg0->func = fn_1_E4C0;
}
}
static void fn_1_E4C0(omObjData *arg0) {
Vec sp2C;
Vec sp20;
Vec sp14;
Vec sp8;
float var_f31;
BoardPlayerPosGet(lbl_1_bss_324, &sp2C);
sp14.x = arg0->scale.x;
sp14.y = arg0->scale.y;
sp14.z = arg0->scale.z;
sp20.x = arg0->trans.x;
sp20.z = arg0->trans.z;
sp20.y = arg0->trans.y - arg0->rot.x * arg0->rot.x * 0.25f * 0.075f;
arg0->rot.x += 1.0f;
PSVECAdd(&sp2C, &sp20, &sp2C);
sp8 = sp2C;
sp8.y = sp14.y;
PSVECSubtract(&sp14, &sp8, &sp8);
var_f31 = PSVECMag(&sp8);
if (var_f31 <= 1.0f) {
arg0->trans.x = arg0->trans.z = 0.0f;
sp2C.x = sp14.x;
sp2C.z = sp14.z;
}
if (sp2C.y <= sp14.y && sp20.y < 0.0f) {
sp2C.y = sp14.y;
BoardPlayerIdleSet(lbl_1_bss_324);
arg0->work[3] = 0;
if (arg0->work[2] != 0) {
arg0->func = fn_1_E6AC;
} else {
lbl_1_bss_318->work[0] = 1;
HuAudFXPlay(0x475);
arg0->func = NULL;
}
}
BoardPlayerPosSetV(lbl_1_bss_324, &sp2C);
}
static void fn_1_E6AC(omObjData *arg0) {
Vec sp8;
float var_f31;
if (arg0->work[3] == 0) {
lbl_1_bss_2B0 = -1;
var_f31 = 4.0f + 20.0f * (arg0->work[1] - 1);
BoardModelMotionTimeSet(lbl_1_bss_14[7], var_f31);
BoardModelAttrReset(lbl_1_bss_14[7], 0x40000002);
lbl_1_bss_314++;
arg0->work[3] = 1;
arg0->work[0] = 0x10;
lbl_1_bss_2B0 = HuAudFXPlay(lbl_1_data_5F0[arg0->work[1] - 1]);
}
if (--arg0->work[0] != 0) {
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[7]), lbl_1_data_5BC[arg0->work[1]], &sp8);
BoardPlayerPosSetV(lbl_1_bss_324, &sp8);
return;
}
if (lbl_1_bss_2B0 >= 0) {
HuAudFXStop(lbl_1_bss_2B0);
}
lbl_1_bss_318->work[0] = 1;
BoardModelAttrSet(lbl_1_bss_14[7], 0x40000002);
arg0->func = NULL;
}
static s16 fn_1_E880(omObjData *arg0) {
s16 temp_r28;
s16 var_r30;
s32 temp_r29;
temp_r28 = GWPlayer[lbl_1_bss_324].diff;
var_r30 = 0;
temp_r29 = frandmod(100);
switch (temp_r28) {
case 0:
if (temp_r29 < 35) {
var_r30 = lbl_1_bss_2C2[arg0->work[1] - 1];
} else if (temp_r29 < 90) {
var_r30 = -1;
} else {
arg0->unk10 = 100;
}
break;
case 1:
if (temp_r29 < 55) {
var_r30 = lbl_1_bss_2C2[arg0->work[1] - 1];
} else if (temp_r29 < 90) {
var_r30 = -1;
} else {
arg0->unk10 = 100;
}
break;
case 2:
if (temp_r29 < 85) {
var_r30 = lbl_1_bss_2C2[arg0->work[1] - 1];
} else {
var_r30 = -1;
}
break;
case 3:
var_r30 = lbl_1_bss_2C2[arg0->work[1] - 1];
break;
}
return var_r30;
}

656
src/REL/w04Dll/mg_item.c Executable file
View file

@ -0,0 +1,656 @@
#include "REL/w04Dll.h"
#include "game/audio.h"
#include "game/data.h"
#include "game/frand.h"
#include "game/gamework_data.h"
#include "game/hsfanim.h"
#include "game/hsfdraw.h"
#include "game/hsfman.h"
#include "game/minigame_seq.h"
#include "game/objsub.h"
#include "game/pad.h"
#include "game/process.h"
#include "game/sprite.h"
#include "game/window.h"
#include "game/board/audio.h"
#include "game/board/main.h"
#include "game/board/model.h"
#include "game/board/player.h"
#include "game/board/window.h"
#include "dolphin.h"
#include "ext_math.h"
static void fn_1_A71C(void);
static void fn_1_A7E8(void);
static void fn_1_C388(ModelData *model, ParticleData *particle, Mtx matrix);
static s16 lbl_1_bss_2AC;
static s16 lbl_1_bss_2A6[3];
static s16 lbl_1_bss_29E[4];
static s16 lbl_1_bss_298[3];
static float lbl_1_bss_294;
static s32 lbl_1_bss_290_pad;
static s32 lbl_1_bss_28C;
static AnimData *lbl_1_bss_288;
static char *lbl_1_data_51C[] = {
"item1", "item2", "item3",
"switch1", "switch2", "switch3"
};
static s32 lbl_1_data_534[] = {
0x00000466,
0x00000467,
0x00000468
};
static s32 lbl_1_data_540[] = {
DATA_MAKE_NUM(DATADIR_BOARD, 109),
DATA_MAKE_NUM(DATADIR_BOARD, 110),
DATA_MAKE_NUM(DATADIR_BOARD, 111),
DATA_MAKE_NUM(DATADIR_BOARD, 112),
DATA_MAKE_NUM(DATADIR_BOARD, 113),
DATA_MAKE_NUM(DATADIR_BOARD, 114),
DATA_MAKE_NUM(DATADIR_BOARD, 115),
DATA_MAKE_NUM(DATADIR_BOARD, 116),
DATA_MAKE_NUM(DATADIR_BOARD, 118),
DATA_MAKE_NUM(DATADIR_BOARD, 119),
DATA_MAKE_NUM(DATADIR_BOARD, 120),
DATA_MAKE_NUM(DATADIR_BOARD, 121),
DATA_MAKE_NUM(DATADIR_BOARD, 122),
DATA_MAKE_NUM(DATADIR_BOARD, 123),
DATA_MAKE_NUM(DATADIR_W02, 24),
DATA_MAKE_NUM(DATADIR_W02, 25),
DATA_MAKE_NUM(DATADIR_W02, 26),
-1
};
void fn_1_A0F8(void) {
Vec sp8;
s32 i;
BoardModelAttrSet(lbl_1_bss_14[6], 0x40000002);
for (i = 0; i < 3; i++) {
lbl_1_bss_29E[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 13), NULL, 1);
BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[i + 3], lbl_1_bss_29E[i]);
BoardModelAttrSet(lbl_1_bss_29E[i], 0x40000002);
}
BoardModelPosGet(lbl_1_bss_14[6], &sp8);
lbl_1_bss_294 = sp8.y;
}
void fn_1_A1F0(void) {
Vec sp38[3];
Vec sp2C;
Vec sp20;
Vec sp14;
Vec sp8;
float var_f31;
s16 temp_r29;
s32 var_r30;
s32 i;
lbl_1_bss_2AC = GWSystem.player_curr;
temp_r29 = BoardModelMotionCreate(lbl_1_bss_14[10], DATA_MAKE_NUM(DATADIR_BGUEST, 25));
HuPrcSleep(60);
var_f31 = 0.0f;
for (i = 0; i < 30; i++) {
var_f31 += 3.0f;
BoardModelRotYSet(lbl_1_bss_14[10], var_f31);
HuPrcVSleep();
}
BoardModelMotionStart(lbl_1_bss_14[10], temp_r29, 0);
for (i = 0; i < 3; i++) {
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[6]), lbl_1_data_51C[i], &sp38[i]);
}
while (TRUE) {
var_r30 = 0;
for (i = 0; i < 3; i++) {
BoardModelPosGet(lbl_1_bss_298[i], &sp2C);
sp2C.y += 2.0f;
if (sp2C.y >= sp38[i].y) {
sp2C.y = sp38[i].y;
var_r30++;
}
BoardModelPosSetV(lbl_1_bss_298[i], &sp2C);
}
if (var_r30 == 3) {
break;
}
HuPrcVSleep();
}
for (i = 0; i < 3; i++) {
BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[i], lbl_1_bss_298[i]);
}
while (BoardModelMotionTimeGet(lbl_1_bss_14[10]) < BoardModelMotionMaxTimeGet(lbl_1_bss_14[10])) {
HuPrcVSleep();
}
BoardModelMotionShiftSet(lbl_1_bss_14[10], 1, 0.0f, 5.0f, 0x40000001);
BoardAudSeqPause(0, 1, 1000);
BoardModelMotionTimeSet(lbl_1_bss_14[6], 0.0f);
BoardModelAttrReset(lbl_1_bss_14[6], 0x40000002);
HuPrcSleep(20);
HuAudFXPlay(0x469);
HuPrcSleep(50);
BoardMusStart(1, 0x1E, 0x7F, 0);
HuAudFXPlay(0x46C);
while (BoardModelMotionTimeGet(lbl_1_bss_14[6]) < 202.0f) {
HuPrcVSleep();
}
BoardModelMotionTimeSet(lbl_1_bss_14[6], 202.0f);
BoardModelAttrSet(lbl_1_bss_14[6], 0x40000002);
BoardModelMotionKill(lbl_1_bss_14[10], temp_r29);
sp14.x = -35.0f;
sp14.y = sp14.z = 0.0f;
sp8.x = 0.0f;
sp8.y = 0.0f;
sp8.z = -150.0f;
BoardCameraMotionStartEx(lbl_1_bss_14[6], &sp14, &sp8, 1500.0f, 25.0f, 21);
BoardPlayerPosGet(lbl_1_bss_2AC, &sp2C);
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[6]), lbl_1_data_51C[4], &sp20);
sp20.z = sp2C.z - 50.0f;
sp20.y = sp2C.y;
BoardPlayerPosLerpStart(lbl_1_bss_2AC, &sp2C, &sp20, 0x3C);
while (GWPlayer[lbl_1_bss_2AC].moving) {
HuPrcVSleep();
}
BoardPlayerMotBlendSet(lbl_1_bss_2AC, 0xB4, 0xF);
while (!BoardPlayerMotBlendCheck(lbl_1_bss_2AC)) {
HuPrcVSleep();
}
BoardCameraMotionWait();
fn_1_A7E8();
BoardMGExit();
while (TRUE) {
if (BoardMGDoneFlagGet() == 1) {
BoardMGDoneFlagSet(0);
fn_1_BA7C();
break;
}
HuPrcVSleep();
}
HuPrcEnd();
}
static void fn_1_A71C(void) {
Vec sp8;
float var_f31;
s16 temp_r31;
var_f31 = 0.0f;
temp_r31 = (s16) HuPrcCurrentGet()->user_data;
while (TRUE) {
BoardModelPosGet(temp_r31, &sp8);
sp8.y += 0.25 * sind(var_f31);
var_f31 += 5.0f;
if (var_f31 >= 360.0f) {
var_f31 -= 360.0f;
}
BoardModelPosSetV(temp_r31, &sp8);
HuPrcVSleep();
}
}
static void fn_1_A7E8(void) {
Vec sp54[3];
Vec sp48;
Vec sp3C;
Vec sp30;
Vec sp24;
Vec sp18;
float sp10[2];
float var_f29;
float var_f30;
float var_f31;
Process *var_r20;
s16 var_r30;
s16 var_r28;
s16 var_r27;
s16 var_r26;
s16 var_r25;
s16 var_r24;
u16 temp_r29;
u16 var_r23;
s16 var_r22;
s16 var_r21;
s16 var_r19;
u16 temp_r18;
u16 var_r17;
ParticleData *spC;
s32 sp8;
s32 i;
var_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 14), NULL, 0);
BoardModelAttrSet(var_r28, 0x40000001);
BoardModelVisibilitySet(var_r28, 0);
var_r30 = 1;
for (i = 0; i < 3; i++) {
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[6]), lbl_1_data_51C[i + 3], &sp54[i]);
sp54[i].y += 50.0f;
}
var_r25 = MGSeqCreate(3, 0);
while (MGSeqStatGet(var_r25) != 0) {
HuPrcVSleep();
}
var_r24 = 5;
var_r21 = 60;
var_r25 = MGSeqCreate(1, var_r24, 0x120, 0x40);
HuWinMesMaxSizeGet(1, sp10, MAKE_MESSID(32, 22));
var_r27 = HuWinCreate(-10000.0f, 368.0f, sp10[0], sp10[1], 0);
HuWinMesSet(var_r27, MAKE_MESSID(32, 22));
HuWinBGTPLvlSet(var_r27, 0.0f);
HuWinMesSpeedSet(var_r27, 0);
BoardModelVisibilitySet(var_r28, 1);
BoardModelPosSetV(var_r28, &sp54[var_r30]);
var_r22 = 30;
var_r19 = 0;
temp_r18 = GWPlayer[lbl_1_bss_2AC].port;
while (TRUE) {
var_r21--;
if (var_r21 == 0) {
var_r21 = 60;
if (--var_r24 < 0) {
break;
}
MGSeqParamSet(var_r25, 1, var_r24);
}
if (GWPlayer[lbl_1_bss_2AC].com) {
if (var_r22 != 0) {
var_r22--;
} else {
var_r22 = frandmod(30) + 15;
if (frandBool() || var_r19 == 3) {
var_r17 = 0x100;
} else {
if (frandBool()) {
var_r23 = 1;
} else {
var_r23 = 2;
}
var_r19++;
}
}
} else {
var_r17 = HuPadBtnDown[temp_r18];
var_r23 = HuPadDStkRep[temp_r18];
}
if (var_r17 & 0x100) {
break;
}
if ((var_r23 & 1) && var_r30 != 0) {
HuAudFXPlay(0);
var_r30--;
}
if ((var_r23 & 2) && var_r30 != 2) {
HuAudFXPlay(0);
var_r30++;
}
BoardModelPosSetV(var_r28, &sp54[var_r30]);
HuPrcVSleep();
}
HuAudFXPlay(2);
MGSeqParamSet(var_r25, 2, -1);
HuWinKill(var_r27);
for (i = 0; i < 360; i += 12) {
sp48.x = sp48.y = sp48.z = 1.0 + 0.8f * sind(i % 180);
BoardModelScaleSetV(var_r28, &sp48);
HuPrcVSleep();
}
BoardModelVisibilitySet(var_r28, 0);
BoardPlayerPosGet(lbl_1_bss_2AC, &sp18);
BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 4, 0.0f, 5.0f, 0);
var_f30 = 0.0f;
var_f29 = 12.0f;
sp3C = sp54[var_r30];
BoardPlayerPosGet(lbl_1_bss_2AC, &sp30);
PSVECSubtract(&sp3C, &sp30, &sp3C);
PSVECScale(&sp3C, &sp3C, 0.05f);
while (TRUE) {
BoardPlayerPosGet(lbl_1_bss_2AC, &sp30);
sp3C.y = var_f29 - var_f30 * var_f30 * 0.25f * 0.075f;
var_f30 += 1.0f;
PSVECAdd(&sp3C, &sp30, &sp30);
if (sp30.y <= sp54[var_r30].y - 40.0f && sp3C.y < 0.0f) {
sp30.y = sp54[var_r30].y - 40.0f;
break;
}
BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30);
sp48 = sp54[var_r30];
sp48.y = sp30.y = 0.0f;
PSVECSubtract(&sp48, &sp30, &sp30);
var_f31 = PSVECMag(&sp30);
if (var_f31 <= 1.0f) {
sp3C.x = sp3C.z = 0.0f;
}
HuPrcVSleep();
}
BoardAudSeqFadeOut(1, 100);
HuAudFXPlay(lbl_1_data_534[var_r30]);
BoardModelMotionTimeSet(lbl_1_bss_29E[var_r30], 0.0f);
BoardModelAttrReset(lbl_1_bss_29E[var_r30], 0x40000002);
BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30);
BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 1, 0.0f, 5.0f, 0x40000001);
while (BoardModelMotionTimeGet(lbl_1_bss_29E[var_r30]) < BoardModelMotionMaxTimeGet(lbl_1_bss_29E[var_r30])) {
if (BoardModelMotionTimeGet(lbl_1_bss_29E[var_r30]) >= 13.0f) {
BoardPlayerPosGet(lbl_1_bss_2AC, &sp30);
sp30.y += 1.0f;
BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30);
}
HuPrcVSleep();
}
temp_r29 = frandmod(3);
BoardModelHookReset(lbl_1_bss_14[6]);
for (i = 0; i < 3; i++) {
BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[i + 3], lbl_1_bss_29E[i]);
if (i != temp_r29) {
BoardModelVisibilitySet(lbl_1_bss_298[i], 0);
}
}
BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[1], lbl_1_bss_298[temp_r29]);
BoardModelAttrReset(lbl_1_bss_14[6], 0x40000002);
HuPrcSleep(30);
HuAudFXPlay(0x310);
while (BoardModelMotionTimeGet(lbl_1_bss_14[6]) < BoardModelMotionMaxTimeGet(lbl_1_bss_14[6])) {
HuPrcVSleep();
}
BoardModelHookReset(lbl_1_bss_14[6]);
for (i = 0; i < 3; i++) {
BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[i + 3], lbl_1_bss_29E[i]);
}
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[6]), lbl_1_data_51C[1], &sp24);
BoardModelPosSetV(lbl_1_bss_298[temp_r29], &sp24);
var_r20 = HuPrcChildCreate(fn_1_A71C, 0x2002, 0x800, 0, boardMainProc);
var_r20->user_data = (void*) lbl_1_bss_298[temp_r29];
var_r26 = Hu3DParticleCreate(lbl_1_bss_288, 100);
spC = Hu3DData[var_r26].unk_120;
spC->unk_02 = lbl_1_bss_298[temp_r29];
Hu3DParticleHookSet(var_r26, fn_1_C388);
Hu3DParticleColSet(var_r26, 0xFF, 0xFF, 0);
Hu3DModelPosSet(var_r26, 0.0f, 0.0f, 0.0f);
Hu3DParticleBlendModeSet(var_r26, 1);
Hu3DModelLayerSet(var_r26, 2);
lbl_1_bss_28C = HuAudFXPlay(0x35F);
BoardPlayerMotBlendSet(lbl_1_bss_2AC, 0, 0xF);
while (!BoardPlayerMotBlendCheck(lbl_1_bss_2AC)) {
HuPrcVSleep();
}
BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 4, 0.0f, 5.0f, 0);
var_f30 = 0.0f;
var_f29 = 12.0f;
BoardPlayerPosGet(lbl_1_bss_2AC, &sp30);
PSVECSubtract(&sp18, &sp30, &sp3C);
PSVECScale(&sp3C, &sp3C, 0.05f);
while (TRUE) {
BoardPlayerPosGet(lbl_1_bss_2AC, &sp30);
sp3C.y = var_f29 - var_f30 * var_f30 * 0.25f * 0.075f;
var_f30 += 1.0f;
PSVECAdd(&sp3C, &sp30, &sp30);
if (sp30.y < sp18.y) {
sp30.y = sp18.y;
break;
}
BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30);
sp48 = sp18;
sp48.y = sp30.y = 0.0f;
PSVECSubtract(&sp48, &sp30, &sp30);
var_f31 = PSVECMag(&sp30);
if (var_f31 <= 1.0f) {
sp3C.x = sp3C.z = 0.0f;
}
HuPrcVSleep();
}
omVibrate(lbl_1_bss_2AC, 12, 6, 6);
BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30);
BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 1, 0.0f, 5.0f, 0x40000001);
BoardModelPosGet(lbl_1_bss_298[temp_r29], &sp24);
sp3C = sp24;
sp3C.z += 100.0f;
PSVECSubtract(&sp3C, &sp24, &sp3C);
PSVECScale(&sp3C, &sp3C, 0.033333335f);
for (i = 0; i < 30; i++) {
BoardModelPosGet(lbl_1_bss_298[temp_r29], &sp24);
PSVECAdd(&sp24, &sp3C, &sp24);
BoardModelPosSetV(lbl_1_bss_298[temp_r29], &sp24);
HuPrcVSleep();
}
BoardPlayerPosGet(lbl_1_bss_2AC, &sp30);
sp24.y = sp30.y;
BoardPlayerPosLerpStart(lbl_1_bss_2AC, &sp30, &sp24, 0x3C);
while (GWPlayer[lbl_1_bss_2AC].moving) {
HuPrcVSleep();
}
BoardPlayerMotBlendSet(lbl_1_bss_2AC, 0, 0xF);
while (!BoardPlayerMotBlendCheck(lbl_1_bss_2AC)) {
HuPrcVSleep();
}
var_f31 = 90.0f;
for (i = 0; i < 15; i++) {
var_f31 -= 3.0f;
BoardModelRotYSet(lbl_1_bss_14[10], var_f31);
HuPrcVSleep();
}
BoardWinCreate(2, MAKE_MESSID(32, 15), 3);
BoardWinInsertMesSet(MAKE_MESSID(8, lbl_1_bss_2A6[temp_r29]), 0);
BoardWinWait();
BoardWinKill();
HuAudFXPlay(0x30D);
HuPrcKill(var_r20);
BoardPlayerPosGet(lbl_1_bss_2AC, &sp30);
BoardModelPosGet(lbl_1_bss_298[temp_r29], &sp24);
var_f29 = 1.0f;
var_f31 = (sp30.y - sp24.y) / 30.0f;
var_f30 = -0.04f;
var_r27 = 0;
HuAudFXFadeOut(lbl_1_bss_28C, 0x1F3);
while (var_r27 == 0) {
sp24.y += var_f31;
var_f29 += var_f30;
if (var_f29 < 0.0f) {
var_f29 = 0.0f;
var_r27 = 1;
}
sp48.x = sp48.y = sp48.z = var_f29;
BoardModelPosSetV(lbl_1_bss_298[temp_r29], &sp24);
BoardModelScaleSetV(lbl_1_bss_298[temp_r29], &sp48);
HuPrcVSleep();
}
HuAudFXStop(lbl_1_bss_28C);
BoardModelVisibilitySet(lbl_1_bss_298[temp_r29], 0);
BoardPlayerItemAdd(lbl_1_bss_2AC, lbl_1_bss_2A6[temp_r29]);
omVibrate(lbl_1_bss_2AC, 12, 6, 6);
sp8 = HuAudSStreamPlay(2);
BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 7, 0.0f, 5.0f, 0);
while (!BoardPlayerMotionEndCheck(lbl_1_bss_2AC)) {
HuPrcVSleep();
}
var_f31 = 45.0f;
for (i = 0; i < 15; i++) {
var_f31 -= 3.0f;
BoardModelRotYSet(lbl_1_bss_14[10], var_f31);
HuPrcVSleep();
}
BoardModelRotYSet(lbl_1_bss_14[10], 0.0f);
HuPrcSleep(30);
while (HuAudSStreamStatGet(sp8) != 0) {
HuPrcVSleep();
}
BoardAudSeqPause(0, 0, 1000);
BoardWinCreate(2, MAKE_MESSID(32, 16), 3);
BoardWinWait();
BoardWinKill();
BoardModelMotionTimeSet(lbl_1_bss_14[6], 0.0f);
BoardModelAttrSet(lbl_1_bss_14[6], 0x40000002);
Hu3DModelKill(var_r26);
BoardModelKill(var_r28);
}
void fn_1_BA7C(void) {
s32 i;
for (i = 0; i < 3; i++) {
BoardModelKill(lbl_1_bss_298[i]);
}
if (lbl_1_bss_288) {
HuSprAnimKill(lbl_1_bss_288);
lbl_1_bss_288 = NULL;
}
}
void fn_1_BB00(s16 *arg0) {
Vec sp54[3];
Vec sp30[3];
Vec sp24;
Vec sp18;
float spC[3];
float temp_f28;
float var_f27;
float var_f29;
s32 var_r30;
s32 i;
for (i = 0; i < 3; i++) {
lbl_1_bss_2A6[i] = arg0[i];
lbl_1_bss_298[i] = BoardModelCreate(lbl_1_data_540[lbl_1_bss_2A6[i]], NULL, 0);
BoardModelVisibilitySet(lbl_1_bss_298[i], 0);
if (lbl_1_bss_2A6[i] == 11) {
BoardModelAttrSet(lbl_1_bss_298[i], 0x40000001);
}
if (lbl_1_bss_2A6[i] == 5) {
Hu3DData[BoardModelIDGet(lbl_1_bss_298[i])].unk_F0[1][3] = -50.0f;
}
if (lbl_1_bss_2A6[i] == 4) {
BoardModelMotionSpeedSet(lbl_1_bss_298[i], 0.0f);
}
}
if (lbl_1_bss_288 == NULL) {
lbl_1_bss_288 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0));
HuSprAnimLock(lbl_1_bss_288);
}
BoardModelMotionTimeSet(lbl_1_bss_14[6], 0.0f);
BoardModelAttrSet(lbl_1_bss_14[6], 0x40000002);
sp18.x = sp18.y = sp18.z = 0.0f;
for (i = 0; i < 3; i++) {
Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[6]), lbl_1_data_51C[i], &sp54[i]);
sp54[i].y += -50.0f;
BoardModelVisibilitySet(lbl_1_bss_298[i], 1);
BoardModelPosSetV(lbl_1_bss_298[i], &sp54[i]);
BoardModelPosGet(lbl_1_bss_14[10], &sp24);
BoardModelPosSetV(lbl_1_bss_298[i], &sp24);
BoardModelScaleSetV(lbl_1_bss_298[i], &sp18);
PSVECSubtract(&sp54[i], &sp24, &sp30[i]);
PSVECNormalize(&sp30[i], &sp30[i]);
spC[i] = 0.0f;
}
sp30[0].y = 16.0f;
sp30[1].y = 13.0f;
sp30[2].y = 10.0f;
HuAudFXPlay(0x362);
var_f29 = 0.0f;
while (TRUE) {
var_r30 = 0;
var_f29 += 0.05f;
if (var_f29 > 1.0f) {
var_f29 = 1.0f;
}
sp18.x = sp18.y = sp18.z = var_f29;
for (i = 0; i < 3; i++) {
BoardModelPosGet(lbl_1_bss_298[i], &sp24);
temp_f28 = sp30[i].y - spC[i] * spC[i] * 0.25f * 0.075f;
sp24.x += 6.55f * sp30[i].x;
sp24.z += 6.55f * sp30[i].z;
sp24.y += temp_f28;
var_f27 = VECDistanceXZ(&sp54[i], &sp24);
if (var_f27 < 3.0f) {
sp30[i].x = sp30[i].z = 0.0f;
sp24.x = sp54[i].x;
sp24.z = sp54[i].z;
}
if (sp24.y <= sp54[i].y && temp_f28 < 0.0f) {
sp24.y = sp54[i].y;
var_r30++;
}
BoardModelPosSetV(lbl_1_bss_298[i], &sp24);
BoardModelScaleSetV(lbl_1_bss_298[i], &sp18);
spC[i] += 1.0f;
}
if (var_r30 == 3) {
break;
}
HuPrcVSleep();
}
for (i = 0; i < 3; i++) {
BoardModelPosSetV(lbl_1_bss_298[i], &sp54[i]);
}
}
void fn_1_C2BC(void) {
Vec sp8;
float var_f31;
s32 i;
s32 j;
var_f31 = 1.0f;
for (i = 0; i < 20; i++) {
var_f31 -= 0.05f;
if (var_f31 < 0.0f) {
var_f31 = 0.0f;
}
sp8.x = sp8.y = sp8.z = var_f31;
for (j = 0; j < 3; j++) {
BoardModelScaleSetV(lbl_1_bss_298[j], &sp8);
}
HuPrcVSleep();
}
}
static void fn_1_C388(ModelData *model, ParticleData *particle, Mtx matrix) {
Vec sp8;
HsfanimStruct01 *var_r31;
float var_f31;
float temp_f30;
float temp_f29;
s32 var_r28;
s32 i;
if (particle->unk_34 == 0) {
var_r31 = particle->unk_48;
for (i = 0; i < particle->unk_30; i++, var_r31++) {
var_r31->unk40.a = 0;
var_r31->unk2C = 0.0f;
}
particle->unk_00 = 0;
}
BoardModelScaleGet(particle->unk_02, &sp8);
var_f31 = sp8.x;
BoardModelPosGet(particle->unk_02, &sp8);
for (i = 0; i < 22; i++) {
var_r31 = particle->unk_48;
for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) {
if (var_r31->unk2C == 0.0f) {
break;
}
}
if (var_r28 != particle->unk_30) {
temp_f30 = 0.003921569f * frand8() * 360.0f;
temp_f29 = var_f31 * (20.0f + 0.003921569f * frand8() * 60.0f);
var_r31->unk34.x = sp8.x + temp_f29 * sind(temp_f30);
var_r31->unk34.z = sp8.z + temp_f29 * cosd(temp_f30);
var_r31->unk34.y = sp8.y + var_f31 * (-30.0f + 0.003921569f * frand8() * 40.0f);
var_r31->unk08.x = 0.5f + 0.003921569f * frand8() * 3.0f;
var_r31->unk08.y = 0.3f + 0.003921569f * frand8() * 2.0f;
var_r31->unk40.a = 0xB4;
var_r31->unk2C = var_f31 * 15.0f;
}
}
var_r31 = particle->unk_48;
for (i = 0; i < particle->unk_30; i++, var_r31++) {
if (var_r31->unk2C != 0.0f) {
var_r31->unk34.y -= var_r31->unk08.x;
var_r31->unk2C -= var_r31->unk08.y;
if (var_r31->unk2C <= 0.0f) {
var_r31->unk2C = 0.0f;
}
}
}
}

View file

@ -20,7 +20,7 @@
#include "game/board/window.h"
#include "dolphin.h"
#include "math.h"
#include "ext_math.h"
typedef struct {
struct {
@ -260,7 +260,7 @@ static void fn_1_95AC(s32 arg0) {
sp14.y = 150.0f;
sp14.z = 0.0f;
sp8.x = -14.0f;
sp8.y = 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI);
sp8.y = atan2d(-sp20.x, -sp20.z);
sp8.z = 0.0f;
BoardCameraMotionStartEx(lbl_1_data_49A, &sp8, &sp14, 1620.0f, -1.0f, 21);
BoardCameraMotionWait();
@ -394,7 +394,7 @@ static void fn_1_9E5C(s32 arg0) {
sp14.y = 150.0f;
sp14.z = 0.0f;
sp8.x = -14.0f;
sp8.y = 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI);
sp8.y = atan2d(-sp20.x, -sp20.z);
sp8.z = 0.0f;
BoardCameraMotionStartEx(lbl_1_data_49A, &sp8, &sp14, 1620.0f, -1.0f, 21);
BoardCameraMotionWait();
@ -510,7 +510,7 @@ static void fn_1_A408(s32 arg0) {
sp14.y = 250.0f;
sp14.z = 0.0f;
sp8.x = -8.0f;
sp8.y = 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI) - 45.0;
sp8.y = atan2d(-sp20.x, -sp20.z) - 45.0;
sp8.z = 0.0f;
BoardCameraMotionStartEx(lbl_1_data_49A, &sp8, &sp14, 1700.0f, -1.0f, 63);
BoardCameraMotionWait();
@ -658,13 +658,13 @@ static void fn_1_AB4C(s32 arg0, s32 arg1) {
BoardModelPosGet(lbl_1_data_49A, &sp30);
PSVECSubtract(&sp30, &sp3C, &sp24);
PSVECNormalize(&sp24, &sp24);
BoardPlayerRotYSet(arg0, 180.0 * (atan2(sp24.x, sp24.z) / M_PI));
BoardPlayerRotYSet(arg0, atan2d(sp24.x, sp24.z));
BoardPlayerSizeSet(arg0, 2);
sp18.x = 0.0f;
sp18.y = 150.0f;
sp18.z = 0.0f;
spC.x = -25.0f;
spC.y = 180.0 * (atan2(-sp24.x, -sp24.z) / M_PI);
spC.y = atan2d(-sp24.x, -sp24.z);
spC.z = 0.0f;
BoardCameraMotionStartEx(lbl_1_data_49A, &spC, &sp18, 2000.0f, -1.0f, 2);
BoardCameraMotionWait();
@ -783,7 +783,7 @@ static void fn_1_B27C(s32 arg0) {
sp14.y = 150.0f;
sp14.z = 0.0f;
sp8.x = -14.0f;
sp8.y = 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI);
sp8.y = atan2d(-sp20.x, -sp20.z);
sp8.z = 0.0f;
BoardCameraMotionStartEx(lbl_1_data_49A, &sp8, &sp14, 1620.0f, -1.0f, 21);
BoardCameraMotionWait();
@ -890,7 +890,7 @@ static void fn_1_B8E0(omObjData *arg0) {
// Bug? Likely to be "%=" instead.
temp_r30->unk0C % 360;
OSs16tof32(&temp_r30->unk0C, &temp_f30);
temp_f30 = 0.5 * sin(temp_f30 * M_PI / 180.0);
temp_f30 = 0.5 * sind(temp_f30);
BoardModelPosGet(lbl_1_data_49A, &sp8);
sp8.y += temp_f30;
BoardModelPosSetV(lbl_1_data_49A, &sp8);
@ -961,7 +961,7 @@ static void fn_1_BD8C(s32 arg0) {
BoardPlayerPosGet(arg0, &sp18);
BoardModelPosGet(lbl_1_data_49A, &sp24);
PSVECSubtract(&sp18, &sp24, &spC);
var_f26 = 180.0 * (atan2(spC.x, spC.z) / M_PI);
var_f26 = atan2d(spC.x, spC.z);
BoardPlayerMotBlendSet(arg0, var_f26 + 180.0f, 0x14);
fn_1_B6A0(var_f25, 20);
while (!BoardPlayerMotBlendCheck(arg0)) {
@ -1043,8 +1043,8 @@ static void fn_1_C40C(void) {
var_r29 = BoardSpaceLinkFlagSearch(0, var_r29, 0x04000000);
BoardSpacePosGet(0, var_r29, &sp14);
BoardModelPosGet(lbl_1_data_498, &sp20);
sp20.x += -100.0 * sin(BoardModelRotYGet(lbl_1_data_498) * M_PI / 180.0);
sp20.z += -100.0 * cos(BoardModelRotYGet(lbl_1_data_498) * M_PI / 180.0);
sp20.x += -100.0 * sind(BoardModelRotYGet(lbl_1_data_498));
sp20.z += -100.0 * cosd(BoardModelRotYGet(lbl_1_data_498));
sp20.y += 250.0f;
BoardModelPosSetV(lbl_1_data_4A0, &sp20);
BoardModelScaleSet(lbl_1_data_4A0, 10.0f, 10.0f, 10.0f);

View file

@ -13,7 +13,7 @@
#include "game/board/window.h"
#include "dolphin.h"
#include "math.h"
#include "ext_math.h"
typedef struct {
struct {
@ -227,7 +227,7 @@ static s32 fn_1_8490(s32 arg0, s8 arg1) {
BoardPlayerPosGet(arg0, &sp18);
BoardSpacePosGet(0, lbl_1_bss_E2, &sp24);
PSVECSubtract(&sp24, &sp18, &spC);
temp_f30 = 180.0 * (atan2(spC.x, spC.z) / M_PI);
temp_f30 = atan2d(spC.x, spC.z);
BoardPlayerMotBlendSet(arg0, temp_f30, 0xF);
while (!BoardPlayerMotBlendCheck(arg0)) {
HuPrcVSleep();

View file

@ -12,7 +12,7 @@
#include "game/board/window.h"
#include "dolphin.h"
#include "math.h"
#include "ext_math.h"
static void fn_1_6F80(void);
static void fn_1_7210(void);
@ -162,7 +162,7 @@ static void fn_1_72CC(s32 arg0) {
lbl_1_bss_C2[i] = 0;
}
}
fn_1_73EC(180.0 * (atan2(spC.x, spC.z) / M_PI));
fn_1_73EC(atan2d(spC.x, spC.z));
}
static void fn_1_73EC(float arg0) {

View file

@ -18,7 +18,7 @@
#include "game/board/window.h"
#include "dolphin.h"
#include "math.h"
#include "ext_math.h"
typedef struct {
struct {
@ -205,7 +205,7 @@ static s32 fn_1_4BF8(s32 arg0) {
sp38.z += 115.0 * cos(M_PI);
PSVECSubtract(&sp38, &sp2C, &sp20);
PSVECNormalize(&sp20, &sp20);
BoardPlayerRotYSet(arg0, 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI));
BoardPlayerRotYSet(arg0, atan2d(-sp20.x, -sp20.z));
BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 40);
BoardModelPosGet(lbl_1_bss_C[5], &sp2C);
BoardModelMotionShiftSet(lbl_1_bss_C[5], lbl_1_data_1DA, 0.0f, 8.0f, 0x40000001);
@ -213,7 +213,7 @@ static s32 fn_1_4BF8(s32 arg0) {
while (GWPlayer[arg0].moving) {
BoardPlayerPosGet(arg0, &sp38);
PSVECSubtract(&sp38, &sp2C, &sp20);
BoardModelRotYSet(lbl_1_bss_C[5], 180.0 * (atan2(sp20.x, sp20.z) / M_PI));
BoardModelRotYSet(lbl_1_bss_C[5], atan2d(sp20.x, sp20.z));
HuPrcVSleep();
}
BoardModelMotionShiftSet(lbl_1_bss_C[5], 1, 0.0f, 8.0f, 0x40000001);
@ -286,7 +286,7 @@ static void fn_1_519C(s32 arg0) {
while (GWPlayer[arg0].moving) {
BoardPlayerPosGet(arg0, &sp14);
PSVECSubtract(&sp14, &sp20, &sp8);
BoardModelRotYSet(lbl_1_bss_C[5], 180.0 * (atan2(sp8.x, sp8.z) / M_PI));
BoardModelRotYSet(lbl_1_bss_C[5], atan2d(sp8.x, sp8.z));
HuPrcVSleep();
}
BoardModelMotionShiftSet(lbl_1_bss_C[5], 1, 0.0f, 8.0f, 0x40000001);
@ -346,7 +346,7 @@ static void fn_1_5490(s32 arg0) {
BoardModelPosSetV(temp_r31->unk04, &sp3C);
BoardModelScaleSet(temp_r31->unk04, temp_f31, temp_f31, temp_f31);
BoardModelVisibilitySet(temp_r31->unk04, 0);
BoardModelRotYSet(temp_r31->unk04, 180.0 * (atan2(sp18.x, sp18.z) / M_PI));
BoardModelRotYSet(temp_r31->unk04, atan2d(sp18.x, sp18.z));
BoardModelMotionStart(temp_r31->unk04, 1, 0x40000001);
BoardModelMotionStart(lbl_1_data_1DC, 0, 0);
}
@ -436,8 +436,8 @@ static void fn_1_59D0(s32 arg0) {
temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_4C, Bss4CWork);
temp_r31->unk00_field1 = arg0;
if (arg0 == 1) {
lbl_1_bss_4C->trans.x = 0.96666666f * sin(90 * M_PI / 180.0);
lbl_1_bss_4C->trans.z = 0.96666666f * cos(90 * M_PI / 180.0);
lbl_1_bss_4C->trans.x = 0.96666666f * sind(90);
lbl_1_bss_4C->trans.z = 0.96666666f * cosd(90);
temp_r31->unk01 = 60;
return;
}
@ -520,8 +520,8 @@ static void fn_1_5CE4(s32 arg0) {
BoardPlayerMotionStart(temp_r31->unk00_field1, temp_r31->unk02, 0x40000001);
omVibrate(temp_r31->unk00_field1, 12, 4, 2);
fn_1_5968(&sp14);
sp8.x = sp14.x + 18.0 * sin(90 * M_PI / 180.0);
sp8.z = sp14.z + 18.0 * cos(90 * M_PI / 180.0);
sp8.x = sp14.x + 18.0 * sind(90);
sp8.z = sp14.z + 18.0 * cosd(90);
BoardPlayerPosSetV(temp_r31->unk00_field1, &sp8);
BoardModelPosSetV(temp_r31->unk04, &sp8);
return;
@ -641,8 +641,8 @@ static void fn_1_606C(omObjData *arg0) {
}
fn_1_5968(&sp64);
BoardPlayerPosGet(temp_r31->unk00_field1, &sp58);
sp58.x = sp64.x + 18.0 * sin(90 * M_PI / 180.0);
sp58.z = sp64.z + 18.0 * cos(90 * M_PI / 180.0);
sp58.x = sp64.x + 18.0 * sind(90);
sp58.z = sp64.z + 18.0 * cosd(90);
BoardPlayerPosSetV(temp_r31->unk00_field1, &sp58);
BoardModelPosSetV(temp_r31->unk04, &sp58);
BoardModelRotYSet(temp_r31->unk04, BoardPlayerRotYGet(temp_r31->unk00_field1));
@ -737,8 +737,8 @@ static void fn_1_6C4C(s32 arg0) {
}
temp_r31 = &temp_r30->unk0C[i];
temp_r31->unk00 = 1;
temp_r31->unk08.x = sp8.x + 50.0 * sin(360.0f * var_f31 * M_PI / 180.0);
temp_r31->unk08.z = sp8.z + 50.0 * cos(360.0f * var_f31 * M_PI / 180.0);
temp_r31->unk08.x = sp8.x + 50.0 * sind(360.0f * var_f31);
temp_r31->unk08.z = sp8.z + 50.0 * cosd(360.0f * var_f31);
temp_r31->unk08.y = sp8.y + 600.0f + 500.0f * BoardRandFloat();
temp_r31->unk01 = 0;
temp_r31->unk04 = 360.0f * BoardRandFloat();

View file

@ -21,9 +21,7 @@
#include "game/board/window.h"
#include "dolphin.h"
#include "math.h"
#define ABS(x) ((x) < 0 ? -(x) : (x))
#include "ext_math.h"
typedef struct {
struct {
@ -277,7 +275,7 @@ static s32 fn_1_12A0(s32 arg0) {
BoardSpacePosGet(0, lbl_1_bss_34, &sp38);
PSVECSubtract(&sp38, &sp2C, &sp20);
PSVECNormalize(&sp20, &sp20);
BoardPlayerRotYSet(arg0, 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI));
BoardPlayerRotYSet(arg0, atan2d(-sp20.x, -sp20.z));
BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 20);
while (GWPlayer[arg0].moving) {
HuPrcVSleep();
@ -983,7 +981,7 @@ static void fn_1_3698(s8 arg0) {
}
PSVECSubtract(&sp18, &sp24, &spC);
lbl_1_bss_28->trans.y = temp_f31 / var_f30;
BoardModelRotYSet(lbl_1_bss_C[4], 180.0 * (atan2(spC.x, spC.z) / M_PI));
BoardModelRotYSet(lbl_1_bss_C[4], atan2d(spC.x, spC.z));
BoardModelMotionShiftSet(lbl_1_bss_C[4], temp_r31->unk08, 0.0f, 8.0f, 0x40000001);
BoardModelMotionSpeedSet(lbl_1_bss_C[4], 2.0f);
}
@ -1175,8 +1173,8 @@ static void fn_1_4460(ModelData *model, ParticleData *particle, Mtx matrix) {
if (j != particle->unk_30) {
temp_f30 = 0.003921569f * frand8() * 360.0f;
temp_f29 = var_f31 * (20.0f + 0.003921569f * frand8() * 60.0f);
var_r31->unk34.x = sp8.x + temp_f29 * sin(temp_f30 * M_PI / 180.0);
var_r31->unk34.z = sp8.z + temp_f29 * cos(temp_f30 * M_PI / 180.0);
var_r31->unk34.x = sp8.x + temp_f29 * sind(temp_f30);
var_r31->unk34.z = sp8.z + temp_f29 * cosd(temp_f30);
var_r31->unk34.y = sp8.y + var_f31 * (-30.0f + 0.003921569f * frand8() * 40.0f);
var_r31->unk08.x = 0.5f + 0.003921569f * frand8() * 3.0f;
var_r31->unk08.y = 0.3f + 0.003921569f * frand8() * 2.0f;

View file

@ -17,7 +17,7 @@
#include "game/board/ui.h"
#include "game/board/window.h"
#define ABS(x) ((x) < 0 ? -(x) : (x))
#include "ext_math.h"
typedef struct {
struct {
@ -630,7 +630,7 @@ static void ShowBattleGame(BattleWork *arg0, omObjData *arg1) {
arg0->unk01 = 90;
}
OSs8tof32((s8*) &arg0->unk01, &var_r29);
arg1->trans.z = sin(var_r29 * M_PI / 180.0);
arg1->trans.z = sind(var_r29);
arg0->unk01 += 4;
}
@ -712,7 +712,7 @@ static void ShowBattleCoin(BattleWork *arg0, omObjData *arg1) {
while (var_f30 > 180.0f) {
var_f30 -= 180.0f;
}
temp_f29 = 0.9f + sin(var_f30 * M_PI / 180.0);
temp_f29 = 0.9f + sind(var_f30);
HuSprScaleSet(arg0->unk08, 1, temp_f29, temp_f29);
}

View file

@ -21,11 +21,9 @@
#include "game/board/ui.h"
#include "game/board/window.h"
#include "math.h"
#include "ext_math.h"
#include "stdlib.h"
#define ABS(x) (((x) < 0) ? -(x) : (x))
typedef struct {
struct {
u8 unk00_field0 : 1;
@ -510,7 +508,7 @@ static void ExecLottery(void) {
PSVECScale(&sp20, &sp20, 0.95f);
PSVECAdd(&sp20, &sp38, &sp2C);
}
temp_r26 = 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI);
temp_r26 = atan2d(-sp20.x, -sp20.z);
if (BoardPlayerSizeGet(temp_r31) == 1) {
BoardModelVisibilitySet(gripMdl[0], 0);
BoardModelVisibilitySet(gripMdl[1], 1);
@ -550,7 +548,7 @@ static void ExecLottery(void) {
BoardPlayerPosGet(i, &sp38);
PSVECSubtract(&sp2C, &sp38, &sp20);
PSVECNormalize(&sp20, &sp20);
BoardPlayerMotBlendSet(i, 180.0 * (atan2(sp20.x, sp20.z) / M_PI), 7);
BoardPlayerMotBlendSet(i, atan2d(sp20.x, sp20.z), 7);
}
}
BoardMusStart(1, 2, 0x7F, 0);
@ -971,7 +969,7 @@ static void ExecBallGame(void) {
} else {
OSs8tof32(&spB, &var_f26);
OSs8tof32(&spA, &var_f19);
var_f25 = 180.0 * (atan2(var_f26, var_f19) / M_PI);
var_f25 = atan2d(var_f26, var_f19);
if (var_f25 < 0.0f) {
var_f25 += 360.0f;
}
@ -1162,7 +1160,7 @@ static void ExecScratchTicket(s32 arg0) {
BoardModelLayerSet(lotteryMdl[4], 6);
BoardModelPassSet(lotteryMdl[4], 0);
BoardCameraDirGet(&spC);
BoardModelRotYSet(lotteryMdl[4], 180.0 * (atan2(-spC.x, -spC.z) / M_PI));
BoardModelRotYSet(lotteryMdl[4], atan2d(-spC.x, -spC.z));
BoardModelScaleSet(lotteryMdl[4], 3.0f, 3.0f, 3.0f);
sp24.x = 320.0f;
sp24.y = 480.0f;
@ -1511,7 +1509,7 @@ static void ExecTicketFocus(s32 arg0) {
}
temp_r29 = OM_GET_WORK_PTR(ticketObj[arg0], TicketWork);
for (var_f31 = 0.0f; var_f31 < 90.0f; var_f31 += 2.0f) {
temp_f30 = 1.0 + 1.3f * sin(var_f31 * M_PI / 180.0);
temp_f30 = 1.0 + 1.3f * sind(var_f31);
HuSprScaleSet(ticketSprGrp, temp_r29->unk00_field2, temp_f30, temp_f30);
HuSprScaleSet(ticketSprGrp, temp_r29->unk00_field2 + 12, temp_f30, temp_f30);
HuPrcVSleep();
@ -1790,7 +1788,7 @@ static void ExecItemPrize(void) {
for (i = 0; i < 30; i++) {
sp14.y += temp_f29;
var_f30 = BoardDAngleCalc(15.0f + var_f30);
var_f31 = cos(var_f28 * M_PI / 180.0);
var_f31 = cosd(var_f28);
if (var_f31 <= 0.0f) {
var_f31 = 0.01f;
}
@ -2031,7 +2029,7 @@ void BoardLotteryTutorialExec(void) {
BoardSpacePosGet(0, temp_r29, &sp2C);
PSVECSubtract(&sp2C, &sp38, &sp20);
PSVECNormalize(&sp20, &sp20);
temp_r28 = 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI);
temp_r28 = atan2d(-sp20.x, -sp20.z);
sp14.x = -3.0f;
sp14.y = temp_r28;
sp14.z = 0.0f;

View file

@ -18,9 +18,7 @@
#include "game/board/player.h"
#include "game/board/tutorial.h"
#include "math.h"
#define ABS(x) (((x) < 0) ? -(x) : (x))
#include "ext_math.h"
typedef struct {
/* 0x00 */ struct {
@ -964,7 +962,7 @@ static void GrowYourTurn(UnkUiWork02 *arg0, omObjData *arg1) {
arg0->unk00_bit3 = 1;
}
OSs8tof32(&arg0->unk01, &temp_f30);
temp_f30 = 1.2999999523162842 * sin(M_PI * temp_f30 / 180.0);
temp_f30 = 1.3f * sind(temp_f30);
HuSprScaleSet(yourTurnSprGrp, 0, temp_f30, temp_f30);
}
@ -977,7 +975,7 @@ static void WaitYourTurn(UnkUiWork02 *arg0, omObjData *arg1) {
arg0->unk00_bit0 = 1;
}
OSs8tof32(&arg0->unk01, &temp_f30);
temp_f30 = sin(M_PI * temp_f30 / 180.0);
temp_f30 = sind(temp_f30);
HuSprScaleSet(yourTurnSprGrp, 0, 1.3f + temp_f30, 1.3f + temp_f30);
HuSprTPLvlSet(yourTurnSprGrp, 0, 1.0f - temp_f30);
}
@ -1398,7 +1396,7 @@ static void UpdateItemPick(omObjData *arg0) {
for (j = 0; j < 3; j++) {
if (itemMdlId[i][j] != -1) {
OSs8tof32(&temp_r28->unk03, &temp_f30);
temp_f30 = 1.0 + 0.5 * sin(M_PI * temp_f30 / 180.0);
temp_f30 = 1.0 + 0.5 * sind(temp_f30);
BoardModelScaleSet(itemMdlId[i][j], temp_f30, temp_f30, temp_f30);
sp14.x = temp_r27[i][j + 2].x;
sp14.y = temp_r27[i][j + 2].y;

View file

@ -11,7 +11,7 @@
#include "game/process.h"
#include "game/sprite.h"
#include "math.h"
#include "ext_math.h"
typedef struct {
/* 0x00 */ s16 unk00;
@ -401,13 +401,13 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4,
break;
}
if (!(arg4 & 0xF) && !(temp_r29->unkAC & 0x10)) {
effectDustParam.unk0C.x = 2.0 * -sin(temp_r30->rot.y * M_PI / 180.0);
effectDustParam.unk0C.y = 1.0 + 0.1 * frandmod(0xA);
effectDustParam.unk0C.z = 2.0 * -cos(temp_r30->rot.y * M_PI / 180.0);
sp1C.x = temp_r30->pos.x + temp_r30->scale.x * (frandmod(0x32) - 0x19);
effectDustParam.unk0C.x = 2.0 * -sind(temp_r30->rot.y);
effectDustParam.unk0C.y = 1.0 + 0.1 * frandmod(10);
effectDustParam.unk0C.z = 2.0 * -cosd(temp_r30->rot.y);
sp1C.x = temp_r30->pos.x + temp_r30->scale.x * (frandmod(50) - 25);
sp1C.y = temp_r30->pos.y;
sp1C.z = temp_r30->pos.z + temp_r30->scale.x * (frandmod(0x32) - 0x19);
CreateEffectDust(arg1, sp1C.x, sp1C.y, sp1C.z, frandmod(0xA) + 0x1E, &effectDustParam);
sp1C.z = temp_r30->pos.z + temp_r30->scale.x * (frandmod(50) - 25);
CreateEffectDust(arg1, sp1C.x, sp1C.y, sp1C.z, frandmod(10) + 30, &effectDustParam);
}
for (i = 0; i < 4; i++) {
if (lbl_801309A0[character * 4 + i] == arg4) {
@ -424,13 +424,13 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4,
break;
}
if (!(arg4 & 3) && !(temp_r29->unkAC & 0x10)) {
effectDustParam.unk0C.x = 4.0 * -sin(temp_r30->rot.y * M_PI / 180.0);
effectDustParam.unk0C.y = 2.0 + 0.1 * frandmod(0xA);
effectDustParam.unk0C.z = 4.0 * -cos(temp_r30->rot.y * M_PI / 180.0);
sp1C.x = temp_r30->pos.x + temp_r30->scale.x * (frandmod(0x32) - 0x19);
effectDustParam.unk0C.x = 4.0 * -sind(temp_r30->rot.y);
effectDustParam.unk0C.y = 2.0 + 0.1 * frandmod(10);
effectDustParam.unk0C.z = 4.0 * -cosd(temp_r30->rot.y);
sp1C.x = temp_r30->pos.x + temp_r30->scale.x * (frandmod(50) - 25);
sp1C.y = temp_r30->pos.y;
sp1C.z = temp_r30->pos.z + temp_r30->scale.x * (frandmod(0x32) - 0x19);
CreateEffectDust(arg1, sp1C.x, sp1C.y, sp1C.z, frandmod(0xA) + 0x1E, &effectDustParam);
sp1C.z = temp_r30->pos.z + temp_r30->scale.x * (frandmod(50) - 25);
CreateEffectDust(arg1, sp1C.x, sp1C.y, sp1C.z, frandmod(10) + 30, &effectDustParam);
}
for (i = 0; i < 4; i++) {
if (lbl_801309C0[character * 4 + i] == arg4) {
@ -441,13 +441,13 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4,
break;
case 4:
if (arg4 < 5 && !(temp_r29->unkAC & 0x10)) {
effectDustParam.unk0C.x = 6.0 * sin(temp_r30->rot.y * M_PI / 180.0);
effectDustParam.unk0C.z = 6.0 * cos(temp_r30->rot.y * M_PI / 180.0);
effectDustParam.unk0C.x = 6.0 * sind(temp_r30->rot.y);
effectDustParam.unk0C.z = 6.0 * cosd(temp_r30->rot.y);
for (i = 0; i < 5; i++) {
effectDustParam.unk0C.y = 2.0 + 0.1 * frandmod(0xA);
sp1C.x = temp_r30->pos.x + temp_r30->scale.x * (frandmod(0x32) - 0x19);
effectDustParam.unk0C.y = 2.0 + 0.1 * frandmod(10);
sp1C.x = temp_r30->pos.x + temp_r30->scale.x * (frandmod(50) - 25);
sp1C.y = temp_r30->pos.y;
sp1C.z = temp_r30->pos.z + temp_r30->scale.x * (frandmod(0x32) - 0x19);
sp1C.z = temp_r30->pos.z + temp_r30->scale.x * (frandmod(50) - 25);
CreateEffectDust(arg1, sp1C.x, sp1C.y, sp1C.z, 20.0f, &effectDustParam);
}
}
@ -458,15 +458,15 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4,
case 6:
if (arg4 == 5 && !(temp_r29->unkAC & 0x10)) {
for (i = 0; i < 8; i++) {
effectDustParam.unk0C.x = 4.0 * sin(45.0f * i * M_PI / 180.0) * temp_r30->scale.x;
effectDustParam.unk0C.x = 4.0 * sind(45.0f * i) * temp_r30->scale.x;
effectDustParam.unk0C.y = 0.0f;
effectDustParam.unk0C.z = 4.0 * cos(45.0f * i * M_PI / 180.0) * temp_r30->scale.x;
effectDustParam.unk0C.z = 4.0 * cosd(45.0f * i) * temp_r30->scale.x;
CreateEffectDust(arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam);
}
for (i = 0; i < 8; i++) {
effectDustParam.unk0C.x = 2.0 * sin((45.0f * i + 22.5) * M_PI / 180.0) * temp_r30->scale.x;
effectDustParam.unk0C.x = 2.0 * sind(45.0f * i + 22.5) * temp_r30->scale.x;
effectDustParam.unk0C.y = 0.0f;
effectDustParam.unk0C.z = 2.0 * cos((45.0f * i + 22.5) * M_PI / 180.0) * temp_r30->scale.x;
effectDustParam.unk0C.z = 2.0 * cosd(45.0f * i + 22.5) * temp_r30->scale.x;
CreateEffectDust(arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam);
}
}
@ -518,15 +518,15 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4,
if (arg4 == 0) {
if (!(temp_r29->unkAC & 0x10)) {
for (i = 0; i < 8; i++) {
effectStarParam.unk0C.x = 10.0 * sin(45.0f * i * M_PI / 180.0) * temp_r30->scale.x;
effectStarParam.unk0C.x = 10.0 * sind(45.0f * i) * temp_r30->scale.x;
effectStarParam.unk0C.y = 0.0f;
effectStarParam.unk0C.z = 10.0 * cos(45.0f * i * M_PI / 180.0) * temp_r30->scale.x;
effectStarParam.unk0C.z = 10.0 * cosd(45.0f * i) * temp_r30->scale.x;
CreateEffectStar(arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 40.0f, &effectStarParam);
}
for (i = 0; i < 8; i++) {
effectDustParam.unk0C.x = 4.0 * sin((45.0f * i + 22.5) * M_PI / 180.0) * temp_r30->scale.x;
effectDustParam.unk0C.x = 4.0 * sind(45.0f * i + 22.5) * temp_r30->scale.x;
effectDustParam.unk0C.y = 0.0f;
effectDustParam.unk0C.z = 4.0 * cos((45.0f * i + 22.5) * M_PI / 180.0) * temp_r30->scale.x;
effectDustParam.unk0C.z = 4.0 * cosd(45.0f * i + 22.5) * temp_r30->scale.x;
CreateEffectDust(arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam);
}
}
@ -560,9 +560,9 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4,
}
if (arg4 == 30) {
for (i = 0; i < 8; i++) {
effectDustParam.unk0C.x = 4.0 * sin((45.0f * i + 22.5) * M_PI / 180.0) * temp_r30->scale.x;
effectDustParam.unk0C.x = 4.0 * sind(45.0f * i + 22.5) * temp_r30->scale.x;
effectDustParam.unk0C.y = 0.0f;
effectDustParam.unk0C.z = 4.0 * cos((45.0f * i + 22.5) * M_PI / 180.0) * temp_r30->scale.x;
effectDustParam.unk0C.z = 4.0 * cosd(45.0f * i + 22.5) * temp_r30->scale.x;
CreateEffectDust(arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam);
}
}
@ -972,12 +972,12 @@ static void RotateEffect(HsfanimStruct01 *arg0) {
temp_r30 = &Hu3DData[(s32) arg0->unk08.x];
if (arg0->unk00_s16 < 8) {
var_f31 = 0.3 + sin((40.0f + 10.0f * (arg0->unk00_s16 + 1)) * M_PI / 180.0);
var_f31 = 0.3 + sind(40.0f + 10.0f * (arg0->unk00_s16 + 1));
arg0->unk2C = 50.0f * var_f31 * temp_r30->scale.x;
arg0->unk40.a = 0xFF;
var_f31 = 0.3 + sin((15.0f * (arg0->unk00_s16 + 1)) * M_PI / 180.0);
var_f31 = 0.3 + sind(15.0f * (arg0->unk00_s16 + 1));
} else {
var_f31 = 0.3 + sin(3 * M_PI / 4);
var_f31 = 0.3 + sind(135);
}
var_f31 *= temp_r30->scale.x;
arg0->unk34.x = temp_r30->pos.x + arg0->unk14.x * var_f31;
@ -1020,9 +1020,9 @@ static void PlayEffectSound(HsfanimStruct01 *arg0) {
var_r25 = voiceParam[temp_r28 * 2 + 1];
}
temp_r26 = (arg0->unk00_s16 * 5) % 360;
arg0->unk34.x = temp_r30->pos.x + 40.0 * sin((arg0->unk08.y + temp_r26) * M_PI / 180.0) * temp_r30->scale.x;
arg0->unk34.x = temp_r30->pos.x + 40.0 * sind(arg0->unk08.y + temp_r26) * temp_r30->scale.x;
arg0->unk34.y = temp_r30->pos.y + var_r25 * temp_r30->scale.x;
arg0->unk34.z = temp_r30->pos.z + 40.0 * cos((arg0->unk08.y + temp_r26) * M_PI / 180.0) * temp_r30->scale.x;
arg0->unk34.z = temp_r30->pos.z + 40.0 * cosd(arg0->unk08.y + temp_r26) * temp_r30->scale.x;
arg0->unk00_s16++;
if (arg0->unk00_s16 >= 0x8F) {
arg0->unk00_s16 = 0x48;
@ -1477,8 +1477,8 @@ void CharModelEffectCreate(s16 arg0, Vec *arg1) {
var_r27 = var_r26->unk_120;
var_r31 = &var_r27->unk_48[temp_r28];
var_r31->unk02 = 2;
var_r31->unk08.x = 30.0 * sin(i * 45 * M_PI / 180.0);
var_r31->unk08.y = 30.0 * cos(i * 45 * M_PI / 180.0);
var_r31->unk08.x = 30.0 * sind(i * 45);
var_r31->unk08.y = 30.0 * cosd(i * 45);
var_r31->unk08.z = 0.0f;
var_r31->unk14 = *arg1;
var_r31->unk20 = 1.15f;
@ -1527,7 +1527,7 @@ static void OrbitEffect(HsfanimStruct01 *arg0) {
if (var_f30 > 90.0f) {
var_f30 = 90.0f;
}
temp_f31 = sin((M_PI * var_f30) / 180.0);
temp_f31 = sind(var_f30);
arg0->unk34.x = arg0->unk14.x + arg0->unk08.x * temp_f31;
arg0->unk34.y = arg0->unk14.y + arg0->unk08.y * temp_f31;
arg0->unk34.z = arg0->unk14.z + arg0->unk08.z * temp_f31;
@ -1569,9 +1569,9 @@ void CharModelCoinEffectCreate(s16 arg0, Vec *arg1) {
for (i = 0; i < 16; i++) {
temp_r29 = i * 22.5f;
coinParticleParam.unk0C.x = 5.0 * sin(temp_r29 * M_PI / 180.0);
coinParticleParam.unk0C.x = 5.0 * sind(temp_r29);
coinParticleParam.unk0C.y = 0.1f * (frandmod(100) - 50);
coinParticleParam.unk0C.z = 5.0 * cos(temp_r29 * M_PI / 180.0);
coinParticleParam.unk0C.z = 5.0 * cosd(temp_r29);
var_r28 = CreateEffect(effectMdl[5], arg0, arg1->x, arg1->y, arg1->z, 30.0f, &coinParticleParam);
if (var_r28 == -1) {
break;
@ -1650,9 +1650,9 @@ void fn_8004EDA4(s16 arg0, Vec *arg1, Vec *arg2) {
sp20.z = sp2C[2][2];
for (i = 0; i < 8; i++) {
temp_f31 = i * 45;
sp14.x = sp20.x * sp20.y * (1.0 - cos(temp_f31 * M_PI / 180.0)) - sp20.z * sin(temp_f31 * M_PI / 180.0);
sp14.y = sp20.y * sp20.y + (1.0f - sp20.y * sp20.y) * cos(temp_f31 * M_PI / 180.0);
sp14.z = sp20.y * sp20.z * (1.0 - cos(temp_f31 * M_PI / 180.0)) + sp20.x * sin(temp_f31 * M_PI / 180.0);
sp14.x = sp20.x * sp20.y * (1.0 - cosd(temp_f31)) - sp20.z * sind(temp_f31);
sp14.y = sp20.y * sp20.y + (1.0f - sp20.y * sp20.y) * cosd(temp_f31);
sp14.z = sp20.y * sp20.z * (1.0 - cosd(temp_f31)) + sp20.x * sind(temp_f31);
PSVECNormalize(&sp14, &sp14);
PSVECScale(&sp14, &lbl_80131030.unk0C, 10.0f);
var_r28 = CreateEffect(effectMdl[4], arg0, arg1->x, arg1->y, arg1->z, 20.0f, &lbl_80131030);
@ -1732,9 +1732,9 @@ void fn_8004F13C(s16 arg0, Vec *arg1, Vec *arg2) {
sp20.z = sp2C[2][2];
for (i = 0; i < 8; i++) {
temp_f31 = i * 45;
sp14.x = sp20.x * sp20.y * (1.0 - cos(temp_f31 * M_PI / 180.0)) - sp20.z * sin(temp_f31 * M_PI / 180.0);
sp14.y = sp20.y * sp20.y + (1.0f - sp20.y * sp20.y) * cos(temp_f31 * M_PI / 180.0);
sp14.z = sp20.y * sp20.z * (1.0 - cos(temp_f31 * M_PI / 180.0)) + sp20.x * sin(temp_f31 * M_PI / 180.0);
sp14.x = sp20.x * sp20.y * (1.0 - cosd(temp_f31)) - sp20.z * sind(temp_f31);
sp14.y = sp20.y * sp20.y + (1.0f - sp20.y * sp20.y) * cosd(temp_f31);
sp14.z = sp20.y * sp20.z * (1.0 - cosd(temp_f31)) + sp20.x * sind(temp_f31);
PSVECNormalize(&sp14, &sp14);
PSVECScale(&sp14, &lbl_801310BC.unk0C, 10.0f);
var_r28 = CreateEffect(effectMdl[4], arg0, arg1->x, arg1->y, arg1->z, 20.0f, &lbl_801310BC);
@ -1931,9 +1931,9 @@ static void UpdateNpcEffect(void) {
switch (temp_r27[2]) {
case 0:
if (!(temp_r26 & 0xF) && !(lbl_801975B0[temp_r28] & 0x10)) {
effectDustParam.unk0C.x = 2.0 * -sin(temp_r30->rot.y * M_PI / 180.0);
effectDustParam.unk0C.x = 2.0 * -sind(temp_r30->rot.y);
effectDustParam.unk0C.y = 1.0 + 0.1 * frandmod(10);
effectDustParam.unk0C.z = 2.0 * -cos(temp_r30->rot.y * M_PI / 180.0);
effectDustParam.unk0C.z = 2.0 * -cosd(temp_r30->rot.y);
sp2C.x = temp_r30->pos.x + (frandmod(50) - 25);
sp2C.y = temp_r30->pos.y;
sp2C.z = temp_r30->pos.z + (frandmod(50) - 25);
@ -1950,9 +1950,9 @@ static void UpdateNpcEffect(void) {
break;
case 1:
if (!(temp_r26 & 3) && !(lbl_801975B0[temp_r28] & 0x10)) {
effectDustParam.unk0C.x = 4.0 * -sin(temp_r30->rot.y * M_PI / 180.0);
effectDustParam.unk0C.x = 4.0 * -sind(temp_r30->rot.y);
effectDustParam.unk0C.y = 2.0 + 0.1 * frandmod(10);
effectDustParam.unk0C.z = 4.0 * -cos(temp_r30->rot.y * M_PI / 180.0);
effectDustParam.unk0C.z = 4.0 * -cosd(temp_r30->rot.y);
sp2C.x = temp_r30->pos.x + (frandmod(50) - 25);
sp2C.y = temp_r30->pos.y;
sp2C.z = temp_r30->pos.z + (frandmod(50) - 25);
@ -1970,9 +1970,9 @@ static void UpdateNpcEffect(void) {
case 2:
if (temp_r28 != -1) {
if (!(temp_r26 & 0x1F) && !(lbl_801975B0[temp_r28] & 0x10)) {
effectDustParam.unk0C.x = 2.0 * -sin(temp_r30->rot.y * M_PI / 180.0);
effectDustParam.unk0C.x = 2.0 * -sind(temp_r30->rot.y);
effectDustParam.unk0C.y = 1.0 + 0.1 * frandmod(10);
effectDustParam.unk0C.z = 2.0 * -cos(temp_r30->rot.y * M_PI / 180.0);
effectDustParam.unk0C.z = 2.0 * -cosd(temp_r30->rot.y);
sp2C.x = temp_r30->pos.x + (frandmod(50) - 25);
sp2C.y = temp_r30->pos.y;
sp2C.z = temp_r30->pos.z + (frandmod(50) - 25);
@ -1989,9 +1989,9 @@ static void UpdateNpcEffect(void) {
case 3:
if (temp_r28 != -1) {
if (!(temp_r26 & 3) && !(lbl_801975B0[temp_r28] & 0x10)) {
effectDustParam.unk0C.x = 2.0 * -sin(temp_r30->rot.y * M_PI / 180.0);
effectDustParam.unk0C.x = 2.0 * -sind(temp_r30->rot.y);
effectDustParam.unk0C.y = 1.0 + 0.1 * frandmod(10);
effectDustParam.unk0C.z = 2.0 * -cos(temp_r30->rot.y * M_PI / 180.0);
effectDustParam.unk0C.z = 2.0 * -cosd(temp_r30->rot.y);
sp2C.x = temp_r30->pos.x + (frandmod(50) - 25);
sp2C.y = temp_r30->pos.y;
sp2C.z = temp_r30->pos.z + (frandmod(50) - 25);
@ -2008,9 +2008,9 @@ static void UpdateNpcEffect(void) {
case 4:
if (temp_r28 != -1) {
if (!(temp_r26 & 7) && !(lbl_801975B0[temp_r28] & 0x10)) {
effectDustParam.unk0C.x = 2.0 * -sin(temp_r30->rot.y * M_PI / 180.0);
effectDustParam.unk0C.x = 2.0 * -sind(temp_r30->rot.y);
effectDustParam.unk0C.y = 1.0 + 0.1 * frandmod(10);
effectDustParam.unk0C.z = 2.0 * -cos(temp_r30->rot.y * M_PI / 180.0);
effectDustParam.unk0C.z = 2.0 * -cosd(temp_r30->rot.y);
sp2C.x = temp_r30->pos.x + (frandmod(50) - 25);
sp2C.y = temp_r30->pos.y;
sp2C.z = temp_r30->pos.z + (frandmod(50) - 25);
@ -2032,15 +2032,15 @@ static void UpdateNpcEffect(void) {
break;
}
for (i = 0; i < 8; i++) {
effectStarParam.unk0C.x = 10.0 * sin(45.0f * i * M_PI / 180.0) * temp_r30->scale.x;
effectStarParam.unk0C.x = 10.0 * sind(45.0f * i) * temp_r30->scale.x;
effectStarParam.unk0C.y = 0.0f;
effectStarParam.unk0C.z = 10.0 * cos(45.0f * i * M_PI / 180.0) * temp_r30->scale.x;
effectStarParam.unk0C.z = 10.0 * cosd(45.0f * i) * temp_r30->scale.x;
CreateEffectStar(temp_r25, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 40.0f, &effectStarParam);
}
for (i = 0; i < 8; i++) {
effectDustParam.unk0C.x = 4.0 * sin((45.0f * i + 22.5) * M_PI / 180.0) * temp_r30->scale.x;
effectDustParam.unk0C.x = 4.0 * sind(45.0f * i + 22.5) * temp_r30->scale.x;
effectDustParam.unk0C.y = 0.0f;
effectDustParam.unk0C.z = 4.0 * cos((45.0f * i + 22.5) * M_PI / 180.0) * temp_r30->scale.x;
effectDustParam.unk0C.z = 4.0 * cosd(45.0f * i + 22.5) * temp_r30->scale.x;
CreateEffectDust(temp_r25, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam);
}
if (temp_r28 != -1) {

View file

@ -5,7 +5,7 @@
#include "game/process.h"
#include "game/sprite.h"
#include "math.h"
#include "ext_math.h"
#include "string.h"
typedef struct {
@ -1148,8 +1148,8 @@ static void ParManFunc(void) {
PSVECCrossProduct(&sp14, &sp2C, &sp8);
}
PSVECNormalize(&sp8, &sp8);
temp_f31 = sin(M_PI * var_f28 / 180.0);
temp_f30 = cos(M_PI * var_f28 / 180.0);
temp_f31 = sind(var_f28);
temp_f30 = cosd(var_f28);
sp14.x = sp8.x * (sp2C.x * sp2C.x + temp_f30 * (1.0f - sp2C.x * sp2C.x))
+ sp8.y * (sp2C.x * sp2C.y * (1.0f - temp_f30) - sp2C.z * temp_f31)
+ sp8.z * (sp2C.x * sp2C.z * (1.0f - temp_f30) + sp2C.y * temp_f31);
@ -1160,8 +1160,8 @@ static void ParManFunc(void) {
+ sp8.y * (sp2C.y * sp2C.z * (1.0f - temp_f30) + sp2C.x * temp_f31)
+ sp8.z * (sp2C.z * sp2C.z + temp_f30 * (1.0f - sp2C.z * sp2C.z));
PSVECCrossProduct(&sp14, &sp2C, &sp8);
temp_f31 = sin(M_PI * var_f29 / 180.0);
temp_f30 = cos(M_PI * var_f29 / 180.0);
temp_f31 = sind(var_f29);
temp_f30 = cosd(var_f29);
sp14.x = sp2C.x * (sp8.x * sp8.x + temp_f30 * (1.0f - sp8.x * sp8.x))
+ sp2C.y * (sp8.x * sp8.y * (1.0f - temp_f30) - sp8.z * temp_f31)
+ sp2C.z * (sp8.x * sp8.z * (1.0f - temp_f30) + sp8.y * temp_f31);

View file

@ -3,11 +3,9 @@
#include "game/hsfformat.h"
#include "game/hsfload.h"
#include "math.h"
#include "ext_math.h"
#include "string.h"
#define ABS(x) (((x) < 0) ? -(x) : (x))
typedef struct {
/* 0x00 */ ModelData *unk00;
/* 0x04 */ HsfObject *unk04;
@ -408,7 +406,7 @@ s32 ObjCullCheck(HsfData *arg0, HsfObject *arg1, Mtx arg2) {
if (temp_f18 + temp_f21 < temp_r30->near || temp_f18 - temp_f21 > temp_r30->far) {
return 0;
}
sp24 = sin(temp_r30->fov * 0.5 * M_PI / 180.0) / cos(temp_r30->fov * 0.5 * M_PI / 180.0);
sp24 = sind(temp_r30->fov * 0.5) / cosd(temp_r30->fov * 0.5);
temp_f27 = sp24 * temp_f18;
temp_f24 = 1.2f * temp_f27;
temp_f24 = temp_f21 + ABS(temp_f24);

View file

@ -7,7 +7,7 @@
#include "game/init.h"
#include "game/ShapeExec.h"
#include "math.h"
#include "ext_math.h"
#include "string.h"
static s32 SearchObjectIndex(HsfData *arg0, u32 arg1);
@ -1098,9 +1098,9 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) {
if (var_r30 & temp_r28) {
PSVECSubtract(&Hu3DCamera[i].pos, &Hu3DCamera[i].target, &spC);
PSVECNormalize(&spC, &spC);
sp18.x = spC.x * spC.y * (1.0 - cos(M_PI * arg2 / 180.0)) - spC.z * sin(M_PI * arg2 / 180.0);
sp18.y = spC.y * spC.y + (1.0f - spC.y * spC.y) * cos(M_PI * arg2 / 180.0);
sp18.z = spC.y * spC.z * (1.0 - cos(M_PI * arg2 / 180.0)) + spC.x * sin(M_PI * arg2 / 180.0);
sp18.x = spC.x * spC.y * (1.0 - cosd(arg2)) - spC.z * sind(arg2);
sp18.y = spC.y * spC.y + (1.0f - spC.y * spC.y) * cosd(arg2);
sp18.z = spC.y * spC.z * (1.0 - cosd(arg2)) + spC.x * sind(arg2);
PSVECNormalize(&sp18, &Hu3DCamera[i].up);
Hu3DCamera[i].aspect_dupe = arg2;
}