diff --git a/.clang-format-ignore b/.clang-format-ignore new file mode 100644 index 00000000..ce20a0e4 --- /dev/null +++ b/.clang-format-ignore @@ -0,0 +1,2 @@ +# Ignore JSystem Files - Copied From TP +**/JSystem/** diff --git a/config/SOUE01/rels/d_a_e_smNP/symbols.txt b/config/SOUE01/rels/d_a_e_smNP/symbols.txt index a45034e7..aa01c90c 100644 --- a/config/SOUE01/rels/d_a_e_smNP/symbols.txt +++ b/config/SOUE01/rels/d_a_e_smNP/symbols.txt @@ -4,25 +4,25 @@ _unresolved = .text:0x00000060; // type:function size:0x4 scope:global __register_global_object = .text:0x00000070; // type:function size:0x1C scope:global __destroy_global_chain = .text:0x00000090; // type:function size:0x54 scope:global dAcEsm_c_classInit__Fv = .text:0x000000F0; // type:function size:0x1B8 -fn_187_2B0 = .text:0x000002B0; // type:function size:0x58 -fn_187_310 = .text:0x00000310; // type:function size:0x40 +__dt__15dShadowCircle_cFv = .text:0x000002B0; // type:function size:0x58 +__dt__14dScnCallback_cFv = .text:0x00000310; // type:function size:0x40 __dt__20sFState_c<8dAcEsm_c>Fv = .text:0x00000350; // type:function size:0x58 __dt__23sFStateFct_c<8dAcEsm_c>Fv = .text:0x000003B0; // type:function size:0x6C __dt__76sStateMgr_c<8dAcEsm_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000420; // type:function size:0xA0 __dt__46sFStateMgr_c<8dAcEsm_c,20sStateMethodUsr_FI_c>Fv = .text:0x000004C0; // type:function size:0xA4 -fn_187_570 = .text:0x00000570; // type:function size:0x5C -fn_187_5D0 = .text:0x000005D0; // type:function size:0x70 +__dt__14dWaterEffect_cFv = .text:0x00000570; // type:function size:0x5C +fn_187_5D0__8dAcEsm_cFv = .text:0x000005D0; // type:function size:0x70 getStateID__76sStateMgr_c<8dAcEsm_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000640; // type:function size:0x10 -fn_187_650 = .text:0x00000650; // type:function size:0x164 +createHeap__8dAcEsm_cFv = .text:0x00000650; // type:function size:0x164 actorCreate__8dAcEsm_cFv = .text:0x000007C0; // type:function size:0x714 changeState__76sStateMgr_c<8dAcEsm_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000EE0; // type:function size:0x10 actorPostCreate__8dAcEsm_cFv = .text:0x00000EF0; // type:function size:0x160 -fn_187_1050 = .text:0x00001050; // type:function size:0x34 -fn_187_1090 = .text:0x00001090; // type:function size:0x1224 +doDelete__8dAcEsm_cFv = .text:0x00001050; // type:function size:0x34 +actorExecute__8dAcEsm_cFv = .text:0x00001090; // type:function size:0x1224 executeState__76sStateMgr_c<8dAcEsm_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000022C0; // type:function size:0x10 -fn_187_22D0 = .text:0x000022D0; // type:function size:0x1C -fn_187_22F0 = .text:0x000022F0; // type:function size:0x1C -fn_187_2310 = .text:0x00002310; // type:function size:0x1A4 +calcTimer__4sLibFPUc_Uc = .text:0x000022D0; // type:function size:0x1C +calcTimer__4sLibFPUs_Us = .text:0x000022F0; // type:function size:0x1C +draw__8dAcEsm_cFv = .text:0x00002310; // type:function size:0x1A4 initializeState_BaseMother__8dAcEsm_cFv = .text:0x000024C0; // type:function size:0x4 executeState_BaseMother__8dAcEsm_cFv = .text:0x000024D0; // type:function size:0x4 finalizeState_BaseMother__8dAcEsm_cFv = .text:0x000024E0; // type:function size:0x4 @@ -53,22 +53,22 @@ finalizeState_Fusion__8dAcEsm_cFv = .text:0x00003DF0; // type:function size:0x4 initializeState_Dead__8dAcEsm_cFv = .text:0x00003E00; // type:function size:0xD4 executeState_Dead__8dAcEsm_cFv = .text:0x00003EE0; // type:function size:0x68 finalizeState_Dead__8dAcEsm_cFv = .text:0x00003F50; // type:function size:0x4 -fn_187_3F60 = .text:0x00003F60; // type:function size:0x128 -fn_187_4090 = .text:0x00004090; // type:function size:0x170 -fn_187_4200 = .text:0x00004200; // type:function size:0xBC -fn_187_42C0 = .text:0x000042C0; // type:function size:0x18C -fn_187_4450 = .text:0x00004450; // type:function size:0x64 -fn_187_44C0 = .text:0x000044C0; // type:function size:0x78 -fn_187_4540 = .text:0x00004540; // type:function size:0x60C -fn_187_4B50 = .text:0x00004B50; // type:function size:0x100 -fn_187_4C50 = .text:0x00004C50; // type:function size:0x58 -fn_187_4CB0 = .text:0x00004CB0; // type:function size:0x8 -fn_187_4CC0 = .text:0x00004CC0; // type:function size:0x530 +fn_187_3F60__8dAcEsm_cFv = .text:0x00003F60; // type:function size:0x128 +fn_187_4090__8dAcEsm_cFv = .text:0x00004090; // type:function size:0x170 +fn_187_4200__8dAcEsm_cFv = .text:0x00004200; // type:function size:0xBC +fn_187_42C0__8dAcEsm_cFv = .text:0x000042C0; // type:function size:0x18C +fn_187_4450__8dAcEsm_cFv = .text:0x00004450; // type:function size:0x64 +fn_187_44C0__8dAcEsm_cFv = .text:0x000044C0; // type:function size:0x78 +fn_187_4540__8dAcEsm_cFi = .text:0x00004540; // type:function size:0x60C +fn_187_4B50__8dAcEsm_cFv = .text:0x00004B50; // type:function size:0x100 +fn_187_4C50__8dAcEsm_cFv = .text:0x00004C50; // type:function size:0x58 +Set_0xBBC__8dAcEsm_cFUc = .text:0x00004CB0; // type:function size:0x8 +fn_187_4CC0__8dAcEsm_cFv = .text:0x00004CC0; // type:function size:0x530 fn_187_51F0 = .text:0x000051F0; // type:function size:0xA8 fn_187_52A0 = .text:0x000052A0; // type:function size:0xEC fn_187_5390 = .text:0x00005390; // type:function size:0x98 fn_187_5430 = .text:0x00005430; // type:function size:0x234 -fn_187_5670 = .text:0x00005670; // type:function size:0xBC +checkSize__8dAcEsm_cCFQ28dAcEsm_c8SmSize_e = .text:0x00005670; // type:function size:0xBC fn_187_5730 = .text:0x00005730; // type:function size:0xD8 fn_187_5810 = .text:0x00005810; // type:function size:0x124 fn_187_5940 = .text:0x00005940; // type:function size:0x17C @@ -77,20 +77,20 @@ fn_187_5B00 = .text:0x00005B00; // type:function size:0xE8 fn_187_5BF0 = .text:0x00005BF0; // type:function size:0x1A0 fn_187_5D90 = .text:0x00005D90; // type:function size:0x1D8 fn_187_5F70 = .text:0x00005F70; // type:function size:0x1D8 -fixBoundingBox__8dAcEsm_cFv = .text:0x00006150; // type:function size:0x60 -fn_187_61B0 = .text:0x000061B0; // type:function size:0x958 -fn_187_6B10 = .text:0x00006B10; // type:function size:0x10C -fn_187_6C20 = .text:0x00006C20; // type:function size:0xEC -fn_187_6D10 = .text:0x00006D10; // type:function size:0x8 -fn_187_6D20 = .text:0x00006D20; // type:function size:0x4 -fn_187_6D30 = .text:0x00006D30; // type:function size:0x4 -fn_187_6D40 = .text:0x00006D40; // type:function size:0x8 +updateBoundingBox__8dAcEsm_cFv = .text:0x00006150; // type:function size:0x60 +fn_187_61B0__8dAcEsm_cFUc = .text:0x000061B0; // type:function size:0x958 +fn_187_6B10__8dAcEsm_cFv = .text:0x00006B10; // type:function size:0x10C +fn_187_6C20__8dAcEsm_cFb = .text:0x00006C20; // type:function size:0xEC +vt_0x88__11dAcEnBase_cFi = .text:0x00006D10; // type:function size:0x8 +vt_0x84__11dAcEnBase_cFv = .text:0x00006D20; // type:function size:0x4 +vt_0x80__11dAcEnBase_cFv = .text:0x00006D30; // type:function size:0x4 +getObjectListEntry__11dAcEnBase_cFv = .text:0x00006D40; // type:function size:0x8 __dt__8dAcEsm_cFv = .text:0x00006D50; // type:function size:0x154 -fn_187_6EB0 = .text:0x00006EB0; // type:function size:0x4 -fn_187_6EC0 = .text:0x00006EC0; // type:function size:0x4 -fn_187_6ED0 = .text:0x00006ED0; // type:function size:0x4 -fn_187_6EE0 = .text:0x00006EE0; // type:function size:0x4 -fn_187_6EF0 = .text:0x00006EF0; // type:function size:0x4 +ExecCallback_DRAW_XLU__Q34nw4r3g3d15IScnObjCallbackFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x00006EB0; // type:function size:0x4 +ExecCallback_DRAW_OPA__Q34nw4r3g3d15IScnObjCallbackFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x00006EC0; // type:function size:0x4 +ExecCallback_CALC_MAT__Q34nw4r3g3d15IScnObjCallbackFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x00006ED0; // type:function size:0x4 +ExecCallback_CALC_WORLD__Q34nw4r3g3d15IScnObjCallbackFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x00006EE0; // type:function size:0x4 +ExecCallback_CALC_VIEW__Q34nw4r3g3d15IScnObjCallbackFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x00006EF0; // type:function size:0x4 build__23sFStateFct_c<8dAcEsm_c>FRC12sStateIDIf_c = .text:0x00006F00; // type:function size:0x60 dispose__23sFStateFct_c<8dAcEsm_c>FRP10sStateIf_c = .text:0x00006F60; // type:function size:0xC initialize__20sFState_c<8dAcEsm_c>Fv = .text:0x00006F70; // type:function size:0x1C @@ -107,8 +107,8 @@ executeState__22sFStateID_c<8dAcEsm_c>CFR8dAcEsm_c = .text:0x00007060; // type:f initializeState__22sFStateID_c<8dAcEsm_c>CFR8dAcEsm_c = .text:0x00007090; // type:function size:0x30 __sinit_\d_a_e_sm_cpp = .text:0x000070C0; // type:function size:0xA0C scope:local __dt__22sFStateID_c<8dAcEsm_c>Fv = .text:0x00007AD0; // type:function size:0x58 -fn_187_7B30 = .text:0x00007B30; // type:function size:0x1C -fn_187_7B50 = .text:0x00007B50; // type:function size:0x40 +__arraydtor$23833 = .text:0x00007B30; // type:function size:0x1C +__dt__Q28dAcEsm_c8SmData_cFv = .text:0x00007B50; // type:function size:0x40 isSameName__22sFStateID_c<8dAcEsm_c>CFPCc = .text:0x00007B90; // type:function size:0x88 _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global @@ -142,13 +142,13 @@ lbl_187_data_C0 = .data:0x000000C0; // type:object size:0x8 lbl_187_data_C8 = .data:0x000000C8; // type:object size:0x4 data:4byte lbl_187_data_CC = .data:0x000000CC; // type:object size:0x4 data:4byte lbl_187_data_D0 = .data:0x000000D0; // type:object size:0x4 data:4byte -lbl_187_data_D4 = .data:0x000000D4; // type:object size:0x8C -lbl_187_data_160 = .data:0x00000160; // type:object size:0x30 -lbl_187_data_190 = .data:0x00000190; // type:object size:0x30 -lbl_187_data_1C0 = .data:0x000001C0; // type:object size:0x18 -lbl_187_data_1D8 = .data:0x000001D8; // type:object size:0x18 -lbl_187_data_1F0 = .data:0x000001F0; // type:object size:0xC -lbl_187_data_1FC = .data:0x000001FC; // type:object size:0x2AC +__vt__8dAcEsm_c = .data:0x000000D4; // type:object size:0x8C +__vt__46sFStateMgr_c<8dAcEsm_c,20sStateMethodUsr_FI_c> = .data:0x00000160; // type:object size:0x30 +__vt__76sStateMgr_c<8dAcEsm_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x00000190; // type:object size:0x30 +__vt__23sFStateFct_c<8dAcEsm_c> = .data:0x000001C0; // type:object size:0x18 +__vt__20sFState_c<8dAcEsm_c> = .data:0x000001D8; // type:object size:0x18 +__vt__14dWaterEffect_c = .data:0x000001F0; // type:object size:0xC +__vt__15dShadowCircle_c = .data:0x000001FC; // type:object size:0x2AC scope:weak lbl_187_data_4A8 = .data:0x000004A8; // type:object size:0x34 __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global lbl_187_bss_8 = .bss:0x00000008; // type:object size:0x90 data:2byte diff --git a/config/SOUE01/rels/d_t_gekotagNP/symbols.txt b/config/SOUE01/rels/d_t_gekotagNP/symbols.txt index 5b73298c..b4e1adb9 100644 --- a/config/SOUE01/rels/d_t_gekotagNP/symbols.txt +++ b/config/SOUE01/rels/d_t_gekotagNP/symbols.txt @@ -48,7 +48,7 @@ lbl_188_rodata_0 = .rodata:0x00000000; // type:object size:0x4 scope:local data: lbl_188_rodata_4 = .rodata:0x00000004; // type:object size:0x4 scope:local data:float lbl_188_rodata_8 = .rodata:0x00000008; // type:object size:0x8 scope:local data:double lbl_188_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float -initialRotX = .data:0x00000000; // type:object size:0x10 scope:local data:4byte +lbl_188_data_0 = .data:0x00000000; // type:object size:0x10 data:4byte g_profile_GEKO_TAG = .data:0x00000010; // type:object size:0x10 __vt__10dTgGekoTag = .data:0x00000020; // type:object size:0x74 __vt__49sFStateMgr_c<10dTgGekoTag,20sStateMethodUsr_FI_c> = .data:0x00000098; // type:object size:0x30 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index f2cbc469..1d680ef4 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -798,8 +798,8 @@ fn_800220D0 = .text:0x800220D0; // type:function size:0xD0 fn_800221A0 = .text:0x800221A0; // type:function size:0xC4 fn_80022270 = .text:0x80022270; // type:function size:0x5C fn_800222D0 = .text:0x800222D0; // type:function size:0xC8 -fn_800223A0__21BlurAndPaletteManagerFPv = .text:0x800223A0; // type:function size:0x94 -fn_80022440__21BlurAndPaletteManagerFPv = .text:0x80022440; // type:function size:0x34 +fn_800223A0__21BlurAndPaletteManagerFP11LightParams = .text:0x800223A0; // type:function size:0x94 +fn_80022440__21BlurAndPaletteManagerFP11LightParams = .text:0x80022440; // type:function size:0x34 fn_80022480 = .text:0x80022480; // type:function size:0xCC fn_80022550 = .text:0x80022550; // type:function size:0x74 __as__7mVec3_cFRC7mVec3_c = .text:0x800225D0; // type:function size:0x1C @@ -1083,7 +1083,7 @@ FUN_8002d7d0__9dAcBase_cFv = .text:0x8002D7D0; // type:function size:0x20 FUN_8002d7f0__9dAcBase_cFv = .text:0x8002D7F0; // type:function size:0x20 FUN_8002d810__9dAcBase_cFv = .text:0x8002D810; // type:function size:0x20 FUN_8002d830__9dAcBase_cFv = .text:0x8002D830; // type:function size:0x28 -FUN_8002d860__9dAcBase_cFv = .text:0x8002D860; // type:function size:0x20 +FUN_8002d860__9dAcBase_cFi = .text:0x8002D860; // type:function size:0x20 getSoundSource__9dAcBase_cFv = .text:0x8002D880; // type:function size:0x8 removeSoundInfo__9dAcBase_cFP9SoundInfo = .text:0x8002D890; // type:function size:0x88 setActorRef__9dAcBase_cFP9dAcBase_c = .text:0x8002D920; // type:function size:0x8 @@ -19782,7 +19782,7 @@ MassClear__4dCcSFv = .text:0x80358460; // type:function size:0x8 SetArea__4dCcSFP6mMtx_c = .text:0x80358470; // type:function size:0x114 ClearArea__4dCcSFv = .text:0x80358590; // type:function size:0xC AdjustHitPos__4dCcSFv = .text:0x803585A0; // type:function size:0xB4 -fn_80358660 = .text:0x80358660; // type:function size:0x1C +__ct__12todoStruct00Fv = .text:0x80358660; // type:function size:0x1C fn_80358680 = .text:0x80358680; // type:function size:0x2C fn_803586B0 = .text:0x803586B0; // type:function size:0x7C fn_80358730 = .text:0x80358730; // type:function size:0x11C @@ -43750,7 +43750,29 @@ PARTICLE_RESOURCE_ID_MAPPING_3_ = .sdata2:0x8057A3B6; // type:object size:0x2 da PARTICLE_RESOURCE_ID_MAPPING_4_ = .sdata2:0x8057A3B8; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_5_ = .sdata2:0x8057A3BA; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_6_ = .sdata2:0x8057A3BC; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_7_ = .sdata2:0x8057A3BE; // type:object size:0x2E data:2byte +PARTICLE_RESOURCE_ID_MAPPING_7_ = .sdata2:0x8057A3BE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_8_ = .sdata2:0x8057A3C0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_9_ = .sdata2:0x8057A3C2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_10_ = .sdata2:0x8057A3C4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_11_ = .sdata2:0x8057A3C6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_12_ = .sdata2:0x8057A3C8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_13_ = .sdata2:0x8057A3CA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_14_ = .sdata2:0x8057A3CC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_15_ = .sdata2:0x8057A3CE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_16_ = .sdata2:0x8057A3D0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_17_ = .sdata2:0x8057A3D2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_18_ = .sdata2:0x8057A3D4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_19_ = .sdata2:0x8057A3D6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_20_ = .sdata2:0x8057A3D8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_21_ = .sdata2:0x8057A3DA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_22_ = .sdata2:0x8057A3DC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_23_ = .sdata2:0x8057A3DE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_24_ = .sdata2:0x8057A3E0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_25_ = .sdata2:0x8057A3E2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_26_ = .sdata2:0x8057A3E4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_27_ = .sdata2:0x8057A3E6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_28_ = .sdata2:0x8057A3E8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_29_ = .sdata2:0x8057A3EA; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_30_ = .sdata2:0x8057A3EC; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_31_ = .sdata2:0x8057A3EE; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_32_ = .sdata2:0x8057A3F0; // type:object size:0x2 data:2byte @@ -43758,35 +43780,86 @@ PARTICLE_RESOURCE_ID_MAPPING_33_ = .sdata2:0x8057A3F2; // type:object size:0x2 d PARTICLE_RESOURCE_ID_MAPPING_34_ = .sdata2:0x8057A3F4; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_35_ = .sdata2:0x8057A3F6; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_36_ = .sdata2:0x8057A3F8; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_37_ = .sdata2:0x8057A3FA; // type:object size:0x22 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_54_ = .sdata2:0x8057A41C; // type:object size:0x2A data:2byte +PARTICLE_RESOURCE_ID_MAPPING_37_ = .sdata2:0x8057A3FA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_38_ = .sdata2:0x8057A3FC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_39_ = .sdata2:0x8057A3FE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_40_ = .sdata2:0x8057A400; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_41_ = .sdata2:0x8057A402; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_42_ = .sdata2:0x8057A404; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_43_ = .sdata2:0x8057A406; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_44_ = .sdata2:0x8057A408; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_45_ = .sdata2:0x8057A40A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_46_ = .sdata2:0x8057A40C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_47_ = .sdata2:0x8057A40E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_48_ = .sdata2:0x8057A410; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_49_ = .sdata2:0x8057A412; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_50_ = .sdata2:0x8057A414; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_51_ = .sdata2:0x8057A416; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_52_ = .sdata2:0x8057A418; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_53_ = .sdata2:0x8057A41A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_54_ = .sdata2:0x8057A41C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_55_ = .sdata2:0x8057A41E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_56_ = .sdata2:0x8057A420; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_57_ = .sdata2:0x8057A422; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_58_ = .sdata2:0x8057A424; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_59_ = .sdata2:0x8057A426; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_60_ = .sdata2:0x8057A428; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_61_ = .sdata2:0x8057A42A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_62_ = .sdata2:0x8057A42C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_63_ = .sdata2:0x8057A42E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_64_ = .sdata2:0x8057A430; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_65_ = .sdata2:0x8057A432; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_66_ = .sdata2:0x8057A434; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_67_ = .sdata2:0x8057A436; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_68_ = .sdata2:0x8057A438; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_69_ = .sdata2:0x8057A43A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_70_ = .sdata2:0x8057A43C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_71_ = .sdata2:0x8057A43E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_72_ = .sdata2:0x8057A440; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_73_ = .sdata2:0x8057A442; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_74_ = .sdata2:0x8057A444; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_75_ = .sdata2:0x8057A446; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_76_ = .sdata2:0x8057A448; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_77_ = .sdata2:0x8057A44A; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_78_ = .sdata2:0x8057A44C; // type:object size:0x8 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_78_ = .sdata2:0x8057A44C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_79_ = .sdata2:0x8057A44E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_80_ = .sdata2:0x8057A450; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_81_ = .sdata2:0x8057A452; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_82_ = .sdata2:0x8057A454; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_83_ = .sdata2:0x8057A456; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_84_ = .sdata2:0x8057A458; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_85_ = .sdata2:0x8057A45A; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_86_ = .sdata2:0x8057A45C; // type:object size:0x2 +PARTICLE_RESOURCE_ID_MAPPING_86_ = .sdata2:0x8057A45C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_87_ = .sdata2:0x8057A45E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_88_ = .sdata2:0x8057A460; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_89_ = .sdata2:0x8057A462; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_90_ = .sdata2:0x8057A464; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_91_ = .sdata2:0x8057A466; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_92_ = .sdata2:0x8057A468; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_93_ = .sdata2:0x8057A46A; // type:object size:0x2 +PARTICLE_RESOURCE_ID_MAPPING_93_ = .sdata2:0x8057A46A; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_94_ = .sdata2:0x8057A46C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_95_ = .sdata2:0x8057A46E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_96_ = .sdata2:0x8057A470; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_97_ = .sdata2:0x8057A472; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_98_ = .sdata2:0x8057A474; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_99_ = .sdata2:0x8057A476; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_100_ = .sdata2:0x8057A478; // type:object size:0xC data:2byte +PARTICLE_RESOURCE_ID_MAPPING_100_ = .sdata2:0x8057A478; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_101_ = .sdata2:0x8057A47A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_102_ = .sdata2:0x8057A47C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_103_ = .sdata2:0x8057A47E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_104_ = .sdata2:0x8057A480; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_105_ = .sdata2:0x8057A482; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_106_ = .sdata2:0x8057A484; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_107_ = .sdata2:0x8057A486; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_108_ = .sdata2:0x8057A488; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_109_ = .sdata2:0x8057A48A; // type:object size:0x10 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_109_ = .sdata2:0x8057A48A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_110_ = .sdata2:0x8057A48C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_111_ = .sdata2:0x8057A48E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_112_ = .sdata2:0x8057A490; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_113_ = .sdata2:0x8057A492; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_114_ = .sdata2:0x8057A494; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_115_ = .sdata2:0x8057A496; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_116_ = .sdata2:0x8057A498; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_117_ = .sdata2:0x8057A49A; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_118_ = .sdata2:0x8057A49C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_119_ = .sdata2:0x8057A49E; // type:object size:0x2 data:2byte @@ -43794,11 +43867,17 @@ PARTICLE_RESOURCE_ID_MAPPING_120_ = .sdata2:0x8057A4A0; // type:object size:0x2 PARTICLE_RESOURCE_ID_MAPPING_121_ = .sdata2:0x8057A4A2; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_122_ = .sdata2:0x8057A4A4; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_123_ = .sdata2:0x8057A4A6; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_124_ = .sdata2:0x8057A4A8; // type:object size:0x6 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_124_ = .sdata2:0x8057A4A8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_125_ = .sdata2:0x8057A4AA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_126_ = .sdata2:0x8057A4AC; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_127_ = .sdata2:0x8057A4AE; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_128_ = .sdata2:0x8057A4B0; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_129_ = .sdata2:0x8057A4B2; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_130_ = .sdata2:0x8057A4B4; // type:object size:0xA data:2byte +PARTICLE_RESOURCE_ID_MAPPING_130_ = .sdata2:0x8057A4B4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_131_ = .sdata2:0x8057A4B6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_132_ = .sdata2:0x8057A4B8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_133_ = .sdata2:0x8057A4BA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_134_ = .sdata2:0x8057A4BC; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_135_ = .sdata2:0x8057A4BE; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_136_ = .sdata2:0x8057A4C0; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_137_ = .sdata2:0x8057A4C2; // type:object size:0x2 data:2byte @@ -43835,8 +43914,12 @@ PARTICLE_RESOURCE_ID_MAPPING_167_ = .sdata2:0x8057A4FE; // type:object size:0x2 PARTICLE_RESOURCE_ID_MAPPING_168_ = .sdata2:0x8057A500; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_169_ = .sdata2:0x8057A502; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_170_ = .sdata2:0x8057A504; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_171_ = .sdata2:0x8057A506; // type:object size:0x6 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_174_ = .sdata2:0x8057A50C; // type:object size:0x6 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_171_ = .sdata2:0x8057A506; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_172_ = .sdata2:0x8057A508; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_173_ = .sdata2:0x8057A50A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_174_ = .sdata2:0x8057A50C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_175_ = .sdata2:0x8057A50E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_176_ = .sdata2:0x8057A510; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_177_ = .sdata2:0x8057A512; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_178_ = .sdata2:0x8057A514; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_179_ = .sdata2:0x8057A516; // type:object size:0x2 data:2byte @@ -43869,73 +43952,323 @@ PARTICLE_RESOURCE_ID_MAPPING_205_ = .sdata2:0x8057A54A; // type:object size:0x2 PARTICLE_RESOURCE_ID_MAPPING_206_ = .sdata2:0x8057A54C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_207_ = .sdata2:0x8057A54E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_208_ = .sdata2:0x8057A550; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_209_ = .sdata2:0x8057A552; // type:object size:0x6 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_209_ = .sdata2:0x8057A552; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_210_ = .sdata2:0x8057A554; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_211_ = .sdata2:0x8057A556; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_212_ = .sdata2:0x8057A558; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_213_ = .sdata2:0x8057A55A; // type:object size:0x5A data:2byte +PARTICLE_RESOURCE_ID_MAPPING_213_ = .sdata2:0x8057A55A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_214_ = .sdata2:0x8057A55C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_215_ = .sdata2:0x8057A55E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_216_ = .sdata2:0x8057A560; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_217_ = .sdata2:0x8057A562; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_218_ = .sdata2:0x8057A564; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_219_ = .sdata2:0x8057A566; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_220_ = .sdata2:0x8057A568; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_221_ = .sdata2:0x8057A56A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_222_ = .sdata2:0x8057A56C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_223_ = .sdata2:0x8057A56E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_224_ = .sdata2:0x8057A570; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_225_ = .sdata2:0x8057A572; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_226_ = .sdata2:0x8057A574; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_227_ = .sdata2:0x8057A576; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_228_ = .sdata2:0x8057A578; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_229_ = .sdata2:0x8057A57A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_230_ = .sdata2:0x8057A57C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_231_ = .sdata2:0x8057A57E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_232_ = .sdata2:0x8057A580; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_233_ = .sdata2:0x8057A582; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_234_ = .sdata2:0x8057A584; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_235_ = .sdata2:0x8057A586; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_236_ = .sdata2:0x8057A588; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_237_ = .sdata2:0x8057A58A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_238_ = .sdata2:0x8057A58C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_239_ = .sdata2:0x8057A58E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_240_ = .sdata2:0x8057A590; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_241_ = .sdata2:0x8057A592; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_242_ = .sdata2:0x8057A594; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_243_ = .sdata2:0x8057A596; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_244_ = .sdata2:0x8057A598; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_245_ = .sdata2:0x8057A59A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_246_ = .sdata2:0x8057A59C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_247_ = .sdata2:0x8057A59E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_248_ = .sdata2:0x8057A5A0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_249_ = .sdata2:0x8057A5A2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_250_ = .sdata2:0x8057A5A4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_251_ = .sdata2:0x8057A5A6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_252_ = .sdata2:0x8057A5A8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_253_ = .sdata2:0x8057A5AA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_254_ = .sdata2:0x8057A5AC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_255_ = .sdata2:0x8057A5AE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_256_ = .sdata2:0x8057A5B0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_257_ = .sdata2:0x8057A5B2; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_258_ = .sdata2:0x8057A5B4; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_259_ = .sdata2:0x8057A5B6; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_260_ = .sdata2:0x8057A5B8; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_261_ = .sdata2:0x8057A5BA; // type:object size:0x1E data:2byte -PARTICLE_RESOURCE_ID_MAPPING_276_ = .sdata2:0x8057A5D8; // type:object size:0x14 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_261_ = .sdata2:0x8057A5BA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_262_ = .sdata2:0x8057A5BC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_263_ = .sdata2:0x8057A5BE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_264_ = .sdata2:0x8057A5C0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_265_ = .sdata2:0x8057A5C2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_266_ = .sdata2:0x8057A5C4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_267_ = .sdata2:0x8057A5C6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_268_ = .sdata2:0x8057A5C8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_269_ = .sdata2:0x8057A5CA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_270_ = .sdata2:0x8057A5CC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_271_ = .sdata2:0x8057A5CE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_272_ = .sdata2:0x8057A5D0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_273_ = .sdata2:0x8057A5D2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_274_ = .sdata2:0x8057A5D4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_275_ = .sdata2:0x8057A5D6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_276_ = .sdata2:0x8057A5D8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_277_ = .sdata2:0x8057A5DA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_278_ = .sdata2:0x8057A5DC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_279_ = .sdata2:0x8057A5DE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_280_ = .sdata2:0x8057A5E0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_281_ = .sdata2:0x8057A5E2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_282_ = .sdata2:0x8057A5E4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_283_ = .sdata2:0x8057A5E6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_284_ = .sdata2:0x8057A5E8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_285_ = .sdata2:0x8057A5EA; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_286_ = .sdata2:0x8057A5EC; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_287_ = .sdata2:0x8057A5EE; // type:object size:0x8 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_287_ = .sdata2:0x8057A5EE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_288_ = .sdata2:0x8057A5F0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_289_ = .sdata2:0x8057A5F2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_290_ = .sdata2:0x8057A5F4; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_291_ = .sdata2:0x8057A5F6; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_292_ = .sdata2:0x8057A5F8; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_293_ = .sdata2:0x8057A5FA; // type:object size:0x6 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_296_ = .sdata2:0x8057A600; // type:object size:0x1C data:2byte +PARTICLE_RESOURCE_ID_MAPPING_293_ = .sdata2:0x8057A5FA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_294_ = .sdata2:0x8057A5FC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_295_ = .sdata2:0x8057A5FE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_296_ = .sdata2:0x8057A600; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_297_ = .sdata2:0x8057A602; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_298_ = .sdata2:0x8057A604; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_299_ = .sdata2:0x8057A606; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_300_ = .sdata2:0x8057A608; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_301_ = .sdata2:0x8057A60A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_302_ = .sdata2:0x8057A60C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_303_ = .sdata2:0x8057A60E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_304_ = .sdata2:0x8057A610; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_305_ = .sdata2:0x8057A612; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_306_ = .sdata2:0x8057A614; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_307_ = .sdata2:0x8057A616; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_308_ = .sdata2:0x8057A618; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_309_ = .sdata2:0x8057A61A; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_310_ = .sdata2:0x8057A61C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_311_ = .sdata2:0x8057A61E; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_312_ = .sdata2:0x8057A620; // type:object size:0xA data:2byte +PARTICLE_RESOURCE_ID_MAPPING_312_ = .sdata2:0x8057A620; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_313_ = .sdata2:0x8057A622; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_314_ = .sdata2:0x8057A624; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_315_ = .sdata2:0x8057A626; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_316_ = .sdata2:0x8057A628; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_317_ = .sdata2:0x8057A62A; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_318_ = .sdata2:0x8057A62C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_319_ = .sdata2:0x8057A62E; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_320_ = .sdata2:0x8057A630; // type:object size:0x2 +PARTICLE_RESOURCE_ID_MAPPING_320_ = .sdata2:0x8057A630; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_321_ = .sdata2:0x8057A632; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_322_ = .sdata2:0x8057A634; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_323_ = .sdata2:0x8057A636; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_324_ = .sdata2:0x8057A638; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_325_ = .sdata2:0x8057A63A; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_326_ = .sdata2:0x8057A63C; // type:object size:0x2 +PARTICLE_RESOURCE_ID_MAPPING_326_ = .sdata2:0x8057A63C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_327_ = .sdata2:0x8057A63E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_328_ = .sdata2:0x8057A640; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_329_ = .sdata2:0x8057A642; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_330_ = .sdata2:0x8057A644; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_331_ = .sdata2:0x8057A646; // type:object size:0x2E data:2byte -PARTICLE_RESOURCE_ID_MAPPING_354_ = .sdata2:0x8057A674; // type:object size:0x8 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_358_ = .sdata2:0x8057A67C; // type:object size:0x1E data:2byte +PARTICLE_RESOURCE_ID_MAPPING_331_ = .sdata2:0x8057A646; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_332_ = .sdata2:0x8057A648; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_333_ = .sdata2:0x8057A64A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_334_ = .sdata2:0x8057A64C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_335_ = .sdata2:0x8057A64E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_336_ = .sdata2:0x8057A650; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_337_ = .sdata2:0x8057A652; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_338_ = .sdata2:0x8057A654; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_339_ = .sdata2:0x8057A656; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_340_ = .sdata2:0x8057A658; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_341_ = .sdata2:0x8057A65A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_342_ = .sdata2:0x8057A65C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_343_ = .sdata2:0x8057A65E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_344_ = .sdata2:0x8057A660; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_345_ = .sdata2:0x8057A662; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_346_ = .sdata2:0x8057A664; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_347_ = .sdata2:0x8057A666; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_348_ = .sdata2:0x8057A668; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_349_ = .sdata2:0x8057A66A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_350_ = .sdata2:0x8057A66C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_351_ = .sdata2:0x8057A66E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_352_ = .sdata2:0x8057A670; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_353_ = .sdata2:0x8057A672; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_354_ = .sdata2:0x8057A674; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_355_ = .sdata2:0x8057A676; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_356_ = .sdata2:0x8057A678; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_357_ = .sdata2:0x8057A67A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_358_ = .sdata2:0x8057A67C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_359_ = .sdata2:0x8057A67E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_360_ = .sdata2:0x8057A680; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_361_ = .sdata2:0x8057A682; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_362_ = .sdata2:0x8057A684; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_363_ = .sdata2:0x8057A686; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_364_ = .sdata2:0x8057A688; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_365_ = .sdata2:0x8057A68A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_366_ = .sdata2:0x8057A68C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_367_ = .sdata2:0x8057A68E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_368_ = .sdata2:0x8057A690; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_369_ = .sdata2:0x8057A692; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_370_ = .sdata2:0x8057A694; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_371_ = .sdata2:0x8057A696; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_372_ = .sdata2:0x8057A698; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_373_ = .sdata2:0x8057A69A; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_374_ = .sdata2:0x8057A69C; // type:object size:0x2 +PARTICLE_RESOURCE_ID_MAPPING_374_ = .sdata2:0x8057A69C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_375_ = .sdata2:0x8057A69E; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_376_ = .sdata2:0x8057A6A0; // type:object size:0x2 -PARTICLE_RESOURCE_ID_MAPPING_377_ = .sdata2:0x8057A6A2; // type:object size:0x14 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_376_ = .sdata2:0x8057A6A0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_377_ = .sdata2:0x8057A6A2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_378_ = .sdata2:0x8057A6A4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_379_ = .sdata2:0x8057A6A6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_380_ = .sdata2:0x8057A6A8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_381_ = .sdata2:0x8057A6AA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_382_ = .sdata2:0x8057A6AC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_383_ = .sdata2:0x8057A6AE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_384_ = .sdata2:0x8057A6B0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_385_ = .sdata2:0x8057A6B2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_386_ = .sdata2:0x8057A6B4; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_387_ = .sdata2:0x8057A6B6; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_388_ = .sdata2:0x8057A6B8; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_389_ = .sdata2:0x8057A6BA; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_390_ = .sdata2:0x8057A6BC; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_391_ = .sdata2:0x8057A6BE; // type:object size:0x6 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_391_ = .sdata2:0x8057A6BE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_392_ = .sdata2:0x8057A6C0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_393_ = .sdata2:0x8057A6C2; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_394_ = .sdata2:0x8057A6C4; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_395_ = .sdata2:0x8057A6C6; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_396_ = .sdata2:0x8057A6C8; // type:object size:0x2 +PARTICLE_RESOURCE_ID_MAPPING_396_ = .sdata2:0x8057A6C8; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_397_ = .sdata2:0x8057A6CA; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_398_ = .sdata2:0x8057A6CC; // type:object size:0x24 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_398_ = .sdata2:0x8057A6CC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_399_ = .sdata2:0x8057A6CE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_400_ = .sdata2:0x8057A6D0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_401_ = .sdata2:0x8057A6D2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_402_ = .sdata2:0x8057A6D4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_403_ = .sdata2:0x8057A6D6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_404_ = .sdata2:0x8057A6D8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_405_ = .sdata2:0x8057A6DA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_406_ = .sdata2:0x8057A6DC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_407_ = .sdata2:0x8057A6DE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_408_ = .sdata2:0x8057A6E0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_409_ = .sdata2:0x8057A6E2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_410_ = .sdata2:0x8057A6E4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_411_ = .sdata2:0x8057A6E6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_412_ = .sdata2:0x8057A6E8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_413_ = .sdata2:0x8057A6EA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_414_ = .sdata2:0x8057A6EC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_415_ = .sdata2:0x8057A6EE; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_416_ = .sdata2:0x8057A6F0; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_417_ = .sdata2:0x8057A6F2; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_418_ = .sdata2:0x8057A6F4; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_419_ = .sdata2:0x8057A6F6; // type:object size:0x14 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_429_ = .sdata2:0x8057A70A; // type:object size:0x8 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_433_ = .sdata2:0x8057A712; // type:object size:0xA data:2byte +PARTICLE_RESOURCE_ID_MAPPING_419_ = .sdata2:0x8057A6F6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_420_ = .sdata2:0x8057A6F8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_421_ = .sdata2:0x8057A6FA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_422_ = .sdata2:0x8057A6FC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_423_ = .sdata2:0x8057A6FE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_424_ = .sdata2:0x8057A700; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_425_ = .sdata2:0x8057A702; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_426_ = .sdata2:0x8057A704; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_427_ = .sdata2:0x8057A706; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_428_ = .sdata2:0x8057A708; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_429_ = .sdata2:0x8057A70A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_430_ = .sdata2:0x8057A70C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_431_ = .sdata2:0x8057A70E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_432_ = .sdata2:0x8057A710; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_433_ = .sdata2:0x8057A712; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_434_ = .sdata2:0x8057A714; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_435_ = .sdata2:0x8057A716; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_436_ = .sdata2:0x8057A718; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_437_ = .sdata2:0x8057A71A; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_438_ = .sdata2:0x8057A71C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_439_ = .sdata2:0x8057A71E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_440_ = .sdata2:0x8057A720; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_441_ = .sdata2:0x8057A722; // type:object size:0x18 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_441_ = .sdata2:0x8057A722; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_442_ = .sdata2:0x8057A724; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_443_ = .sdata2:0x8057A726; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_444_ = .sdata2:0x8057A728; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_445_ = .sdata2:0x8057A72A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_446_ = .sdata2:0x8057A72C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_447_ = .sdata2:0x8057A72E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_448_ = .sdata2:0x8057A730; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_449_ = .sdata2:0x8057A732; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_450_ = .sdata2:0x8057A734; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_451_ = .sdata2:0x8057A736; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_452_ = .sdata2:0x8057A738; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_453_ = .sdata2:0x8057A73A; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_454_ = .sdata2:0x8057A73C; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_455_ = .sdata2:0x8057A73E; // type:object size:0x78 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_455_ = .sdata2:0x8057A73E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_456_ = .sdata2:0x8057A740; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_457_ = .sdata2:0x8057A742; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_458_ = .sdata2:0x8057A744; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_459_ = .sdata2:0x8057A746; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_460_ = .sdata2:0x8057A748; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_461_ = .sdata2:0x8057A74A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_462_ = .sdata2:0x8057A74C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_463_ = .sdata2:0x8057A74E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_464_ = .sdata2:0x8057A750; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_465_ = .sdata2:0x8057A752; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_466_ = .sdata2:0x8057A754; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_467_ = .sdata2:0x8057A756; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_468_ = .sdata2:0x8057A758; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_469_ = .sdata2:0x8057A75A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_470_ = .sdata2:0x8057A75C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_471_ = .sdata2:0x8057A75E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_472_ = .sdata2:0x8057A760; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_473_ = .sdata2:0x8057A762; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_474_ = .sdata2:0x8057A764; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_475_ = .sdata2:0x8057A766; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_476_ = .sdata2:0x8057A768; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_477_ = .sdata2:0x8057A76A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_478_ = .sdata2:0x8057A76C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_479_ = .sdata2:0x8057A76E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_480_ = .sdata2:0x8057A770; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_481_ = .sdata2:0x8057A772; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_482_ = .sdata2:0x8057A774; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_483_ = .sdata2:0x8057A776; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_484_ = .sdata2:0x8057A778; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_485_ = .sdata2:0x8057A77A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_486_ = .sdata2:0x8057A77C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_487_ = .sdata2:0x8057A77E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_488_ = .sdata2:0x8057A780; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_489_ = .sdata2:0x8057A782; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_490_ = .sdata2:0x8057A784; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_491_ = .sdata2:0x8057A786; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_492_ = .sdata2:0x8057A788; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_493_ = .sdata2:0x8057A78A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_494_ = .sdata2:0x8057A78C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_495_ = .sdata2:0x8057A78E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_496_ = .sdata2:0x8057A790; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_497_ = .sdata2:0x8057A792; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_498_ = .sdata2:0x8057A794; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_499_ = .sdata2:0x8057A796; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_500_ = .sdata2:0x8057A798; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_501_ = .sdata2:0x8057A79A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_502_ = .sdata2:0x8057A79C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_503_ = .sdata2:0x8057A79E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_504_ = .sdata2:0x8057A7A0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_505_ = .sdata2:0x8057A7A2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_506_ = .sdata2:0x8057A7A4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_507_ = .sdata2:0x8057A7A6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_508_ = .sdata2:0x8057A7A8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_509_ = .sdata2:0x8057A7AA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_510_ = .sdata2:0x8057A7AC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_511_ = .sdata2:0x8057A7AE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_512_ = .sdata2:0x8057A7B0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_513_ = .sdata2:0x8057A7B2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_514_ = .sdata2:0x8057A7B4; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_515_ = .sdata2:0x8057A7B6; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_516_ = .sdata2:0x8057A7B8; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_517_ = .sdata2:0x8057A7BA; // type:object size:0xE data:2byte +PARTICLE_RESOURCE_ID_MAPPING_517_ = .sdata2:0x8057A7BA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_518_ = .sdata2:0x8057A7BC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_519_ = .sdata2:0x8057A7BE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_520_ = .sdata2:0x8057A7C0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_521_ = .sdata2:0x8057A7C2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_522_ = .sdata2:0x8057A7C4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_523_ = .sdata2:0x8057A7C6; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_524_ = .sdata2:0x8057A7C8; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_525_ = .sdata2:0x8057A7CA; // type:object size:0x2 +PARTICLE_RESOURCE_ID_MAPPING_525_ = .sdata2:0x8057A7CA; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_526_ = .sdata2:0x8057A7CC; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_527_ = .sdata2:0x8057A7CE; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_528_ = .sdata2:0x8057A7D0; // type:object size:0x2 data:2byte @@ -43944,17 +44277,25 @@ PARTICLE_RESOURCE_ID_MAPPING_530_ = .sdata2:0x8057A7D4; // type:object size:0x2 PARTICLE_RESOURCE_ID_MAPPING_531_ = .sdata2:0x8057A7D6; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_532_ = .sdata2:0x8057A7D8; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_533_ = .sdata2:0x8057A7DA; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_534_ = .sdata2:0x8057A7DC; // type:object size:0x2 +PARTICLE_RESOURCE_ID_MAPPING_534_ = .sdata2:0x8057A7DC; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_535_ = .sdata2:0x8057A7DE; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_536_ = .sdata2:0x8057A7E0; // type:object size:0x2 +PARTICLE_RESOURCE_ID_MAPPING_536_ = .sdata2:0x8057A7E0; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_537_ = .sdata2:0x8057A7E2; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_538_ = .sdata2:0x8057A7E4; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_539_ = .sdata2:0x8057A7E6; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_540_ = .sdata2:0x8057A7E8; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_541_ = .sdata2:0x8057A7EA; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_542_ = .sdata2:0x8057A7EC; // type:object size:0xE data:2byte +PARTICLE_RESOURCE_ID_MAPPING_542_ = .sdata2:0x8057A7EC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_543_ = .sdata2:0x8057A7EE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_544_ = .sdata2:0x8057A7F0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_545_ = .sdata2:0x8057A7F2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_546_ = .sdata2:0x8057A7F4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_547_ = .sdata2:0x8057A7F6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_548_ = .sdata2:0x8057A7F8; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_549_ = .sdata2:0x8057A7FA; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_550_ = .sdata2:0x8057A7FC; // type:object size:0x6 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_550_ = .sdata2:0x8057A7FC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_551_ = .sdata2:0x8057A7FE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_552_ = .sdata2:0x8057A800; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_553_ = .sdata2:0x8057A802; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_554_ = .sdata2:0x8057A804; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_555_ = .sdata2:0x8057A806; // type:object size:0x2 data:2byte @@ -43962,137 +44303,152 @@ PARTICLE_RESOURCE_ID_MAPPING_556_ = .sdata2:0x8057A808; // type:object size:0x2 PARTICLE_RESOURCE_ID_MAPPING_557_ = .sdata2:0x8057A80A; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_558_ = .sdata2:0x8057A80C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_559_ = .sdata2:0x8057A80E; // type:object size:0x2 data:2byte -lbl_8057A810 = .sdata2:0x8057A810; // type:object size:0x2 -lbl_8057A812 = .sdata2:0x8057A812; // type:object size:0x2 -lbl_8057A814 = .sdata2:0x8057A814; // type:object size:0x2 -lbl_8057A816 = .sdata2:0x8057A816; // type:object size:0x2 -lbl_8057A818 = .sdata2:0x8057A818; // type:object size:0x2 -lbl_8057A81A = .sdata2:0x8057A81A; // type:object size:0x2 -lbl_8057A81C = .sdata2:0x8057A81C; // type:object size:0x2 -lbl_8057A81E = .sdata2:0x8057A81E; // type:object size:0x2 -lbl_8057A820 = .sdata2:0x8057A820; // type:object size:0x2 -lbl_8057A822 = .sdata2:0x8057A822; // type:object size:0x2 -lbl_8057A824 = .sdata2:0x8057A824; // type:object size:0x2 -lbl_8057A826 = .sdata2:0x8057A826; // type:object size:0x2 -PARTICLE_RESOURCE_ID_MAPPING_585_ = .sdata2:0x8057A828; // type:object size:0x2 data:2byte -lbl_8057A82A = .sdata2:0x8057A82A; // type:object size:0x2 -lbl_8057A82C = .sdata2:0x8057A82C; // type:object size:0x2 -lbl_8057A82E = .sdata2:0x8057A82E; // type:object size:0x2 -lbl_8057A830 = .sdata2:0x8057A830; // type:object size:0x2 -lbl_8057A832 = .sdata2:0x8057A832; // type:object size:0x2 -lbl_8057A834 = .sdata2:0x8057A834; // type:object size:0x2 -lbl_8057A836 = .sdata2:0x8057A836; // type:object size:0x2 -lbl_8057A838 = .sdata2:0x8057A838; // type:object size:0x2 -lbl_8057A83A = .sdata2:0x8057A83A; // type:object size:0x2 -lbl_8057A83C = .sdata2:0x8057A83C; // type:object size:0x2 -lbl_8057A83E = .sdata2:0x8057A83E; // type:object size:0x2 -lbl_8057A840 = .sdata2:0x8057A840; // type:object size:0x2 -lbl_8057A842 = .sdata2:0x8057A842; // type:object size:0x2 -lbl_8057A844 = .sdata2:0x8057A844; // type:object size:0x2 -lbl_8057A846 = .sdata2:0x8057A846; // type:object size:0x2 -lbl_8057A848 = .sdata2:0x8057A848; // type:object size:0x2 -lbl_8057A84A = .sdata2:0x8057A84A; // type:object size:0x2 -lbl_8057A84C = .sdata2:0x8057A84C; // type:object size:0x2 -lbl_8057A84E = .sdata2:0x8057A84E; // type:object size:0x2 -lbl_8057A850 = .sdata2:0x8057A850; // type:object size:0x2 -lbl_8057A852 = .sdata2:0x8057A852; // type:object size:0x2 -lbl_8057A854 = .sdata2:0x8057A854; // type:object size:0x2 -lbl_8057A856 = .sdata2:0x8057A856; // type:object size:0x2 -lbl_8057A858 = .sdata2:0x8057A858; // type:object size:0x2 -lbl_8057A85A = .sdata2:0x8057A85A; // type:object size:0x2 -lbl_8057A85C = .sdata2:0x8057A85C; // type:object size:0x2 -lbl_8057A85E = .sdata2:0x8057A85E; // type:object size:0x2 -lbl_8057A860 = .sdata2:0x8057A860; // type:object size:0x2 -lbl_8057A862 = .sdata2:0x8057A862; // type:object size:0x2 -lbl_8057A864 = .sdata2:0x8057A864; // type:object size:0x2 -lbl_8057A866 = .sdata2:0x8057A866; // type:object size:0x2 -lbl_8057A868 = .sdata2:0x8057A868; // type:object size:0x2 -lbl_8057A86A = .sdata2:0x8057A86A; // type:object size:0x2 -lbl_8057A86C = .sdata2:0x8057A86C; // type:object size:0x2 -lbl_8057A86E = .sdata2:0x8057A86E; // type:object size:0x2 -lbl_8057A870 = .sdata2:0x8057A870; // type:object size:0x2 -lbl_8057A872 = .sdata2:0x8057A872; // type:object size:0x2 -lbl_8057A874 = .sdata2:0x8057A874; // type:object size:0x2 -lbl_8057A876 = .sdata2:0x8057A876; // type:object size:0x2 -lbl_8057A878 = .sdata2:0x8057A878; // type:object size:0x2 -lbl_8057A87A = .sdata2:0x8057A87A; // type:object size:0x2 -lbl_8057A87C = .sdata2:0x8057A87C; // type:object size:0x2 -lbl_8057A87E = .sdata2:0x8057A87E; // type:object size:0x2 -lbl_8057A880 = .sdata2:0x8057A880; // type:object size:0x2 -PARTICLE_RESOURCE_ID_MAPPING_617_ = .sdata2:0x8057A882; // type:object size:0x6 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_560_ = .sdata2:0x8057A810; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_561_ = .sdata2:0x8057A812; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_562_ = .sdata2:0x8057A814; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_563_ = .sdata2:0x8057A816; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_564_ = .sdata2:0x8057A818; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_565_ = .sdata2:0x8057A81A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_566_ = .sdata2:0x8057A81C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_567_ = .sdata2:0x8057A81E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_568_ = .sdata2:0x8057A820; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_569_ = .sdata2:0x8057A822; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_570_ = .sdata2:0x8057A824; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_571_ = .sdata2:0x8057A826; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_572_ = .sdata2:0x8057A828; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_573_ = .sdata2:0x8057A82A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_574_ = .sdata2:0x8057A82C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_575_ = .sdata2:0x8057A82E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_576_ = .sdata2:0x8057A830; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_577_ = .sdata2:0x8057A832; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_578_ = .sdata2:0x8057A834; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_579_ = .sdata2:0x8057A836; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_580_ = .sdata2:0x8057A838; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_581_ = .sdata2:0x8057A83A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_582_ = .sdata2:0x8057A83C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_583_ = .sdata2:0x8057A83E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_584_ = .sdata2:0x8057A840; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_585_ = .sdata2:0x8057A842; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_586_ = .sdata2:0x8057A844; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_587_ = .sdata2:0x8057A846; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_588_ = .sdata2:0x8057A848; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_589_ = .sdata2:0x8057A84A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_590_ = .sdata2:0x8057A84C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_591_ = .sdata2:0x8057A84E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_592_ = .sdata2:0x8057A850; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_593_ = .sdata2:0x8057A852; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_594_ = .sdata2:0x8057A854; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_595_ = .sdata2:0x8057A856; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_596_ = .sdata2:0x8057A858; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_597_ = .sdata2:0x8057A85A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_598_ = .sdata2:0x8057A85C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_599_ = .sdata2:0x8057A85E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_600_ = .sdata2:0x8057A860; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_601_ = .sdata2:0x8057A862; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_602_ = .sdata2:0x8057A864; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_603_ = .sdata2:0x8057A866; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_604_ = .sdata2:0x8057A868; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_605_ = .sdata2:0x8057A86A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_606_ = .sdata2:0x8057A86C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_607_ = .sdata2:0x8057A86E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_608_ = .sdata2:0x8057A870; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_609_ = .sdata2:0x8057A872; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_610_ = .sdata2:0x8057A874; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_611_ = .sdata2:0x8057A876; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_612_ = .sdata2:0x8057A878; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_613_ = .sdata2:0x8057A87A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_614_ = .sdata2:0x8057A87C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_615_ = .sdata2:0x8057A87E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_616_ = .sdata2:0x8057A880; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_617_ = .sdata2:0x8057A882; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_618_ = .sdata2:0x8057A884; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_619_ = .sdata2:0x8057A886; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_620_ = .sdata2:0x8057A888; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_621_ = .sdata2:0x8057A88A; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_622_ = .sdata2:0x8057A88C; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_623_ = .sdata2:0x8057A88E; // type:object size:0x2 +PARTICLE_RESOURCE_ID_MAPPING_623_ = .sdata2:0x8057A88E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_624_ = .sdata2:0x8057A890; // type:object size:0x2 data:2byte -lbl_8057A892 = .sdata2:0x8057A892; // type:object size:0x2 -lbl_8057A894 = .sdata2:0x8057A894; // type:object size:0x2 -lbl_8057A896 = .sdata2:0x8057A896; // type:object size:0x2 -lbl_8057A898 = .sdata2:0x8057A898; // type:object size:0x2 -lbl_8057A89A = .sdata2:0x8057A89A; // type:object size:0x2 -lbl_8057A89C = .sdata2:0x8057A89C; // type:object size:0x2 -lbl_8057A89E = .sdata2:0x8057A89E; // type:object size:0x2 -lbl_8057A8A0 = .sdata2:0x8057A8A0; // type:object size:0x2 -lbl_8057A8A2 = .sdata2:0x8057A8A2; // type:object size:0x2 -lbl_8057A8A4 = .sdata2:0x8057A8A4; // type:object size:0x2 -lbl_8057A8A6 = .sdata2:0x8057A8A6; // type:object size:0x2 -lbl_8057A8A8 = .sdata2:0x8057A8A8; // type:object size:0x2 -lbl_8057A8AA = .sdata2:0x8057A8AA; // type:object size:0x2 -lbl_8057A8AC = .sdata2:0x8057A8AC; // type:object size:0x2 -lbl_8057A8AE = .sdata2:0x8057A8AE; // type:object size:0x2 -lbl_8057A8B0 = .sdata2:0x8057A8B0; // type:object size:0x2 -lbl_8057A8B2 = .sdata2:0x8057A8B2; // type:object size:0x2 -lbl_8057A8B4 = .sdata2:0x8057A8B4; // type:object size:0x2 -lbl_8057A8B6 = .sdata2:0x8057A8B6; // type:object size:0x2 -lbl_8057A8B8 = .sdata2:0x8057A8B8; // type:object size:0x2 -lbl_8057A8BA = .sdata2:0x8057A8BA; // type:object size:0x2 -lbl_8057A8BC = .sdata2:0x8057A8BC; // type:object size:0x2 -lbl_8057A8BE = .sdata2:0x8057A8BE; // type:object size:0x2 -lbl_8057A8C0 = .sdata2:0x8057A8C0; // type:object size:0x2 -lbl_8057A8C2 = .sdata2:0x8057A8C2; // type:object size:0x2 -lbl_8057A8C4 = .sdata2:0x8057A8C4; // type:object size:0x2 -lbl_8057A8C6 = .sdata2:0x8057A8C6; // type:object size:0x2 -lbl_8057A8C8 = .sdata2:0x8057A8C8; // type:object size:0x2 -lbl_8057A8CA = .sdata2:0x8057A8CA; // type:object size:0x2 -lbl_8057A8CC = .sdata2:0x8057A8CC; // type:object size:0x2 -lbl_8057A8CE = .sdata2:0x8057A8CE; // type:object size:0x2 -lbl_8057A8D0 = .sdata2:0x8057A8D0; // type:object size:0x2 -lbl_8057A8D2 = .sdata2:0x8057A8D2; // type:object size:0x2 -lbl_8057A8D4 = .sdata2:0x8057A8D4; // type:object size:0x2 -lbl_8057A8D6 = .sdata2:0x8057A8D6; // type:object size:0x2 -lbl_8057A8D8 = .sdata2:0x8057A8D8; // type:object size:0x2 -lbl_8057A8DA = .sdata2:0x8057A8DA; // type:object size:0x2 -lbl_8057A8DC = .sdata2:0x8057A8DC; // type:object size:0x2 -lbl_8057A8DE = .sdata2:0x8057A8DE; // type:object size:0x2 -lbl_8057A8E0 = .sdata2:0x8057A8E0; // type:object size:0x2 -lbl_8057A8E2 = .sdata2:0x8057A8E2; // type:object size:0x2 -lbl_8057A8E4 = .sdata2:0x8057A8E4; // type:object size:0x2 -lbl_8057A8E6 = .sdata2:0x8057A8E6; // type:object size:0x2 -lbl_8057A8E8 = .sdata2:0x8057A8E8; // type:object size:0x2 -lbl_8057A8EA = .sdata2:0x8057A8EA; // type:object size:0x2 -lbl_8057A8EC = .sdata2:0x8057A8EC; // type:object size:0x2 -lbl_8057A8EE = .sdata2:0x8057A8EE; // type:object size:0x2 -lbl_8057A8F0 = .sdata2:0x8057A8F0; // type:object size:0x2 -lbl_8057A8F2 = .sdata2:0x8057A8F2; // type:object size:0x2 -lbl_8057A8F4 = .sdata2:0x8057A8F4; // type:object size:0x2 -lbl_8057A8F6 = .sdata2:0x8057A8F6; // type:object size:0x2 -lbl_8057A8F8 = .sdata2:0x8057A8F8; // type:object size:0x2 -lbl_8057A8FA = .sdata2:0x8057A8FA; // type:object size:0x2 -lbl_8057A8FC = .sdata2:0x8057A8FC; // type:object size:0x2 -lbl_8057A8FE = .sdata2:0x8057A8FE; // type:object size:0x2 -lbl_8057A900 = .sdata2:0x8057A900; // type:object size:0x2 -lbl_8057A902 = .sdata2:0x8057A902; // type:object size:0x2 +PARTICLE_RESOURCE_ID_MAPPING_625_ = .sdata2:0x8057A892; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_626_ = .sdata2:0x8057A894; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_627_ = .sdata2:0x8057A896; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_628_ = .sdata2:0x8057A898; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_629_ = .sdata2:0x8057A89A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_630_ = .sdata2:0x8057A89C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_631_ = .sdata2:0x8057A89E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_632_ = .sdata2:0x8057A8A0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_633_ = .sdata2:0x8057A8A2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_634_ = .sdata2:0x8057A8A4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_635_ = .sdata2:0x8057A8A6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_636_ = .sdata2:0x8057A8A8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_637_ = .sdata2:0x8057A8AA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_638_ = .sdata2:0x8057A8AC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_639_ = .sdata2:0x8057A8AE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_640_ = .sdata2:0x8057A8B0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_641_ = .sdata2:0x8057A8B2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_642_ = .sdata2:0x8057A8B4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_643_ = .sdata2:0x8057A8B6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_644_ = .sdata2:0x8057A8B8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_645_ = .sdata2:0x8057A8BA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_646_ = .sdata2:0x8057A8BC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_647_ = .sdata2:0x8057A8BE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_648_ = .sdata2:0x8057A8C0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_649_ = .sdata2:0x8057A8C2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_650_ = .sdata2:0x8057A8C4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_651_ = .sdata2:0x8057A8C6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_652_ = .sdata2:0x8057A8C8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_653_ = .sdata2:0x8057A8CA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_654_ = .sdata2:0x8057A8CC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_655_ = .sdata2:0x8057A8CE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_656_ = .sdata2:0x8057A8D0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_657_ = .sdata2:0x8057A8D2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_658_ = .sdata2:0x8057A8D4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_659_ = .sdata2:0x8057A8D6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_660_ = .sdata2:0x8057A8D8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_661_ = .sdata2:0x8057A8DA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_662_ = .sdata2:0x8057A8DC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_663_ = .sdata2:0x8057A8DE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_664_ = .sdata2:0x8057A8E0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_665_ = .sdata2:0x8057A8E2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_666_ = .sdata2:0x8057A8E4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_667_ = .sdata2:0x8057A8E6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_668_ = .sdata2:0x8057A8E8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_669_ = .sdata2:0x8057A8EA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_670_ = .sdata2:0x8057A8EC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_671_ = .sdata2:0x8057A8EE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_672_ = .sdata2:0x8057A8F0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_673_ = .sdata2:0x8057A8F2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_674_ = .sdata2:0x8057A8F4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_675_ = .sdata2:0x8057A8F6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_676_ = .sdata2:0x8057A8F8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_677_ = .sdata2:0x8057A8FA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_678_ = .sdata2:0x8057A8FC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_679_ = .sdata2:0x8057A8FE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_680_ = .sdata2:0x8057A900; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_681_ = .sdata2:0x8057A902; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_682_ = .sdata2:0x8057A904; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_683_ = .sdata2:0x8057A906; // type:object size:0x2 data:2byte -lbl_8057A908 = .sdata2:0x8057A908; // type:object size:0x2 -lbl_8057A90A = .sdata2:0x8057A90A; // type:object size:0x2 -lbl_8057A90C = .sdata2:0x8057A90C; // type:object size:0x2 -PARTICLE_RESOURCE_ID_MAPPING_687_ = .sdata2:0x8057A90E; // type:object size:0x12 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_684_ = .sdata2:0x8057A908; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_685_ = .sdata2:0x8057A90A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_686_ = .sdata2:0x8057A90C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_687_ = .sdata2:0x8057A90E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_688_ = .sdata2:0x8057A910; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_689_ = .sdata2:0x8057A912; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_690_ = .sdata2:0x8057A914; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_691_ = .sdata2:0x8057A916; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_692_ = .sdata2:0x8057A918; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_693_ = .sdata2:0x8057A91A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_694_ = .sdata2:0x8057A91C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_695_ = .sdata2:0x8057A91E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_696_ = .sdata2:0x8057A920; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_697_ = .sdata2:0x8057A922; // type:object size:0xC data:2byte +PARTICLE_RESOURCE_ID_MAPPING_697_ = .sdata2:0x8057A922; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_698_ = .sdata2:0x8057A924; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_699_ = .sdata2:0x8057A926; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_700_ = .sdata2:0x8057A928; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_701_ = .sdata2:0x8057A92A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_702_ = .sdata2:0x8057A92C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_703_ = .sdata2:0x8057A92E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_704_ = .sdata2:0x8057A930; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_705_ = .sdata2:0x8057A932; // type:object size:0x2 +PARTICLE_RESOURCE_ID_MAPPING_705_ = .sdata2:0x8057A932; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_706_ = .sdata2:0x8057A934; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_707_ = .sdata2:0x8057A936; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_708_ = .sdata2:0x8057A938; // type:object size:0x2 data:2byte @@ -44103,14 +44459,29 @@ PARTICLE_RESOURCE_ID_MAPPING_712_ = .sdata2:0x8057A940; // type:object size:0x2 PARTICLE_RESOURCE_ID_MAPPING_713_ = .sdata2:0x8057A942; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_714_ = .sdata2:0x8057A944; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_715_ = .sdata2:0x8057A946; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_716_ = .sdata2:0x8057A948; // type:object size:0x2 +PARTICLE_RESOURCE_ID_MAPPING_716_ = .sdata2:0x8057A948; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_717_ = .sdata2:0x8057A94A; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_718_ = .sdata2:0x8057A94C; // type:object size:0x2 +PARTICLE_RESOURCE_ID_MAPPING_718_ = .sdata2:0x8057A94C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_719_ = .sdata2:0x8057A94E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_720_ = .sdata2:0x8057A950; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_721_ = .sdata2:0x8057A952; // type:object size:0x8 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_721_ = .sdata2:0x8057A952; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_722_ = .sdata2:0x8057A954; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_723_ = .sdata2:0x8057A956; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_724_ = .sdata2:0x8057A958; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_725_ = .sdata2:0x8057A95A; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_726_ = .sdata2:0x8057A95C; // type:object size:0x1A data:2byte +PARTICLE_RESOURCE_ID_MAPPING_726_ = .sdata2:0x8057A95C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_727_ = .sdata2:0x8057A95E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_728_ = .sdata2:0x8057A960; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_729_ = .sdata2:0x8057A962; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_730_ = .sdata2:0x8057A964; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_731_ = .sdata2:0x8057A966; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_732_ = .sdata2:0x8057A968; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_733_ = .sdata2:0x8057A96A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_734_ = .sdata2:0x8057A96C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_735_ = .sdata2:0x8057A96E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_736_ = .sdata2:0x8057A970; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_737_ = .sdata2:0x8057A972; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_738_ = .sdata2:0x8057A974; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_739_ = .sdata2:0x8057A976; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_740_ = .sdata2:0x8057A978; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_741_ = .sdata2:0x8057A97A; // type:object size:0x2 data:2byte @@ -44126,7 +44497,18 @@ PARTICLE_RESOURCE_ID_MAPPING_750_ = .sdata2:0x8057A98C; // type:object size:0x2 PARTICLE_RESOURCE_ID_MAPPING_751_ = .sdata2:0x8057A98E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_752_ = .sdata2:0x8057A990; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_753_ = .sdata2:0x8057A992; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_754_ = .sdata2:0x8057A994; // type:object size:0x18 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_754_ = .sdata2:0x8057A994; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_755_ = .sdata2:0x8057A996; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_756_ = .sdata2:0x8057A998; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_757_ = .sdata2:0x8057A99A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_758_ = .sdata2:0x8057A99C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_759_ = .sdata2:0x8057A99E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_760_ = .sdata2:0x8057A9A0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_761_ = .sdata2:0x8057A9A2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_762_ = .sdata2:0x8057A9A4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_763_ = .sdata2:0x8057A9A6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_764_ = .sdata2:0x8057A9A8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_765_ = .sdata2:0x8057A9AA; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_766_ = .sdata2:0x8057A9AC; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_767_ = .sdata2:0x8057A9AE; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_768_ = .sdata2:0x8057A9B0; // type:object size:0x2 data:2byte @@ -44136,7 +44518,14 @@ PARTICLE_RESOURCE_ID_MAPPING_771_ = .sdata2:0x8057A9B6; // type:object size:0x2 PARTICLE_RESOURCE_ID_MAPPING_772_ = .sdata2:0x8057A9B8; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_773_ = .sdata2:0x8057A9BA; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_774_ = .sdata2:0x8057A9BC; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_775_ = .sdata2:0x8057A9BE; // type:object size:0x10 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_775_ = .sdata2:0x8057A9BE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_776_ = .sdata2:0x8057A9C0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_777_ = .sdata2:0x8057A9C2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_778_ = .sdata2:0x8057A9C4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_779_ = .sdata2:0x8057A9C6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_780_ = .sdata2:0x8057A9C8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_781_ = .sdata2:0x8057A9CA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_782_ = .sdata2:0x8057A9CC; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_783_ = .sdata2:0x8057A9CE; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_784_ = .sdata2:0x8057A9D0; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_785_ = .sdata2:0x8057A9D2; // type:object size:0x2 data:2byte @@ -44145,54 +44534,192 @@ PARTICLE_RESOURCE_ID_MAPPING_787_ = .sdata2:0x8057A9D6; // type:object size:0x2 PARTICLE_RESOURCE_ID_MAPPING_788_ = .sdata2:0x8057A9D8; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_789_ = .sdata2:0x8057A9DA; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_790_ = .sdata2:0x8057A9DC; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_791_ = .sdata2:0x8057A9DE; // type:object size:0x12 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_791_ = .sdata2:0x8057A9DE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_792_ = .sdata2:0x8057A9E0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_793_ = .sdata2:0x8057A9E2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_794_ = .sdata2:0x8057A9E4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_795_ = .sdata2:0x8057A9E6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_796_ = .sdata2:0x8057A9E8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_797_ = .sdata2:0x8057A9EA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_798_ = .sdata2:0x8057A9EC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_799_ = .sdata2:0x8057A9EE; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_800_ = .sdata2:0x8057A9F0; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_801_ = .sdata2:0x8057A9F2; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_802_ = .sdata2:0x8057A9F4; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_803_ = .sdata2:0x8057A9F6; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_804_ = .sdata2:0x8057A9F8; // type:object size:0x20 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_804_ = .sdata2:0x8057A9F8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_805_ = .sdata2:0x8057A9FA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_806_ = .sdata2:0x8057A9FC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_807_ = .sdata2:0x8057A9FE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_808_ = .sdata2:0x8057AA00; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_809_ = .sdata2:0x8057AA02; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_810_ = .sdata2:0x8057AA04; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_811_ = .sdata2:0x8057AA06; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_812_ = .sdata2:0x8057AA08; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_813_ = .sdata2:0x8057AA0A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_814_ = .sdata2:0x8057AA0C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_815_ = .sdata2:0x8057AA0E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_816_ = .sdata2:0x8057AA10; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_817_ = .sdata2:0x8057AA12; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_818_ = .sdata2:0x8057AA14; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_819_ = .sdata2:0x8057AA16; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_820_ = .sdata2:0x8057AA18; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_821_ = .sdata2:0x8057AA1A; // type:object size:0x22 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_821_ = .sdata2:0x8057AA1A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_822_ = .sdata2:0x8057AA1C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_823_ = .sdata2:0x8057AA1E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_824_ = .sdata2:0x8057AA20; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_825_ = .sdata2:0x8057AA22; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_826_ = .sdata2:0x8057AA24; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_827_ = .sdata2:0x8057AA26; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_828_ = .sdata2:0x8057AA28; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_829_ = .sdata2:0x8057AA2A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_830_ = .sdata2:0x8057AA2C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_831_ = .sdata2:0x8057AA2E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_832_ = .sdata2:0x8057AA30; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_833_ = .sdata2:0x8057AA32; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_834_ = .sdata2:0x8057AA34; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_835_ = .sdata2:0x8057AA36; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_836_ = .sdata2:0x8057AA38; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_837_ = .sdata2:0x8057AA3A; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_838_ = .sdata2:0x8057AA3C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_839_ = .sdata2:0x8057AA3E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_840_ = .sdata2:0x8057AA40; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_841_ = .sdata2:0x8057AA42; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_842_ = .sdata2:0x8057AA44; // type:object size:0xC data:2byte +PARTICLE_RESOURCE_ID_MAPPING_842_ = .sdata2:0x8057AA44; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_843_ = .sdata2:0x8057AA46; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_844_ = .sdata2:0x8057AA48; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_845_ = .sdata2:0x8057AA4A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_846_ = .sdata2:0x8057AA4C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_847_ = .sdata2:0x8057AA4E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_848_ = .sdata2:0x8057AA50; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_849_ = .sdata2:0x8057AA52; // type:object size:0xA data:2byte +PARTICLE_RESOURCE_ID_MAPPING_849_ = .sdata2:0x8057AA52; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_850_ = .sdata2:0x8057AA54; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_851_ = .sdata2:0x8057AA56; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_852_ = .sdata2:0x8057AA58; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_853_ = .sdata2:0x8057AA5A; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_854_ = .sdata2:0x8057AA5C; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_855_ = .sdata2:0x8057AA5E; // type:object size:0x2 +PARTICLE_RESOURCE_ID_MAPPING_855_ = .sdata2:0x8057AA5E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_856_ = .sdata2:0x8057AA60; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_857_ = .sdata2:0x8057AA62; // type:object size:0x1A data:2byte +PARTICLE_RESOURCE_ID_MAPPING_857_ = .sdata2:0x8057AA62; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_858_ = .sdata2:0x8057AA64; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_859_ = .sdata2:0x8057AA66; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_860_ = .sdata2:0x8057AA68; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_861_ = .sdata2:0x8057AA6A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_862_ = .sdata2:0x8057AA6C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_863_ = .sdata2:0x8057AA6E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_864_ = .sdata2:0x8057AA70; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_865_ = .sdata2:0x8057AA72; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_866_ = .sdata2:0x8057AA74; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_867_ = .sdata2:0x8057AA76; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_868_ = .sdata2:0x8057AA78; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_869_ = .sdata2:0x8057AA7A; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_870_ = .sdata2:0x8057AA7C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_871_ = .sdata2:0x8057AA7E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_872_ = .sdata2:0x8057AA80; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_873_ = .sdata2:0x8057AA82; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_874_ = .sdata2:0x8057AA84; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_875_ = .sdata2:0x8057AA86; // type:object size:0x22 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_875_ = .sdata2:0x8057AA86; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_876_ = .sdata2:0x8057AA88; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_877_ = .sdata2:0x8057AA8A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_878_ = .sdata2:0x8057AA8C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_879_ = .sdata2:0x8057AA8E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_880_ = .sdata2:0x8057AA90; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_881_ = .sdata2:0x8057AA92; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_882_ = .sdata2:0x8057AA94; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_883_ = .sdata2:0x8057AA96; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_884_ = .sdata2:0x8057AA98; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_885_ = .sdata2:0x8057AA9A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_886_ = .sdata2:0x8057AA9C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_887_ = .sdata2:0x8057AA9E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_888_ = .sdata2:0x8057AAA0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_889_ = .sdata2:0x8057AAA2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_890_ = .sdata2:0x8057AAA4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_891_ = .sdata2:0x8057AAA6; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_892_ = .sdata2:0x8057AAA8; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_893_ = .sdata2:0x8057AAAA; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_894_ = .sdata2:0x8057AAAC; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_895_ = .sdata2:0x8057AAAE; // type:object size:0x1A data:2byte -PARTICLE_RESOURCE_ID_MAPPING_908_ = .sdata2:0x8057AAC8; // type:object size:0x2A data:2byte +PARTICLE_RESOURCE_ID_MAPPING_895_ = .sdata2:0x8057AAAE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_896_ = .sdata2:0x8057AAB0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_897_ = .sdata2:0x8057AAB2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_898_ = .sdata2:0x8057AAB4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_899_ = .sdata2:0x8057AAB6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_900_ = .sdata2:0x8057AAB8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_901_ = .sdata2:0x8057AABA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_902_ = .sdata2:0x8057AABC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_903_ = .sdata2:0x8057AABE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_904_ = .sdata2:0x8057AAC0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_905_ = .sdata2:0x8057AAC2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_906_ = .sdata2:0x8057AAC4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_907_ = .sdata2:0x8057AAC6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_908_ = .sdata2:0x8057AAC8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_909_ = .sdata2:0x8057AACA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_910_ = .sdata2:0x8057AACC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_911_ = .sdata2:0x8057AACE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_912_ = .sdata2:0x8057AAD0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_913_ = .sdata2:0x8057AAD2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_914_ = .sdata2:0x8057AAD4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_915_ = .sdata2:0x8057AAD6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_916_ = .sdata2:0x8057AAD8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_917_ = .sdata2:0x8057AADA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_918_ = .sdata2:0x8057AADC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_919_ = .sdata2:0x8057AADE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_920_ = .sdata2:0x8057AAE0; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_921_ = .sdata2:0x8057AAE2; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_922_ = .sdata2:0x8057AAE4; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_923_ = .sdata2:0x8057AAE6; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_924_ = .sdata2:0x8057AAE8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_925_ = .sdata2:0x8057AAEA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_926_ = .sdata2:0x8057AAEC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_927_ = .sdata2:0x8057AAEE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_928_ = .sdata2:0x8057AAF0; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_929_ = .sdata2:0x8057AAF2; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_930_ = .sdata2:0x8057AAF4; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_931_ = .sdata2:0x8057AAF6; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_932_ = .sdata2:0x8057AAF8; // type:object size:0xC data:2byte -PARTICLE_RESOURCE_ID_MAPPING_938_ = .sdata2:0x8057AB04; // type:object size:0x26 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_932_ = .sdata2:0x8057AAF8; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_933_ = .sdata2:0x8057AAFA; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_934_ = .sdata2:0x8057AAFC; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_935_ = .sdata2:0x8057AAFE; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_936_ = .sdata2:0x8057AB00; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_937_ = .sdata2:0x8057AB02; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_938_ = .sdata2:0x8057AB04; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_939_ = .sdata2:0x8057AB06; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_940_ = .sdata2:0x8057AB08; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_941_ = .sdata2:0x8057AB0A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_942_ = .sdata2:0x8057AB0C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_943_ = .sdata2:0x8057AB0E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_944_ = .sdata2:0x8057AB10; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_945_ = .sdata2:0x8057AB12; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_946_ = .sdata2:0x8057AB14; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_947_ = .sdata2:0x8057AB16; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_948_ = .sdata2:0x8057AB18; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_949_ = .sdata2:0x8057AB1A; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_950_ = .sdata2:0x8057AB1C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_951_ = .sdata2:0x8057AB1E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_952_ = .sdata2:0x8057AB20; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_953_ = .sdata2:0x8057AB22; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_954_ = .sdata2:0x8057AB24; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_955_ = .sdata2:0x8057AB26; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_956_ = .sdata2:0x8057AB28; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_957_ = .sdata2:0x8057AB2A; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_958_ = .sdata2:0x8057AB2C; // type:object size:0x10 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_958_ = .sdata2:0x8057AB2C; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_959_ = .sdata2:0x8057AB2E; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_960_ = .sdata2:0x8057AB30; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_961_ = .sdata2:0x8057AB32; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_962_ = .sdata2:0x8057AB34; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_963_ = .sdata2:0x8057AB36; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_964_ = .sdata2:0x8057AB38; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_965_ = .sdata2:0x8057AB3A; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_966_ = .sdata2:0x8057AB3C; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_967_ = .sdata2:0x8057AB3E; // type:object size:0x2 data:string +PARTICLE_RESOURCE_ID_MAPPING_967_ = .sdata2:0x8057AB3E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_968_ = .sdata2:0x8057AB40; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_969_ = .sdata2:0x8057AB42; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_970_ = .sdata2:0x8057AB44; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_971_ = .sdata2:0x8057AB46; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_972_ = .sdata2:0x8057AB48; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_973_ = .sdata2:0x8057AB4A; // type:object size:0x2 data:string +PARTICLE_RESOURCE_ID_MAPPING_973_ = .sdata2:0x8057AB4A; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_974_ = .sdata2:0x8057AB4C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_975_ = .sdata2:0x8057AB4E; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_976_ = .sdata2:0x8057AB50; // type:object size:0x2 data:string +PARTICLE_RESOURCE_ID_MAPPING_976_ = .sdata2:0x8057AB50; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_977_ = .sdata2:0x8057AB52; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_978_ = .sdata2:0x8057AB54; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_979_ = .sdata2:0x8057AB56; // type:object size:0x2 data:2byte @@ -44201,7 +44728,9 @@ PARTICLE_RESOURCE_ID_MAPPING_981_ = .sdata2:0x8057AB5A; // type:object size:0x2 PARTICLE_RESOURCE_ID_MAPPING_982_ = .sdata2:0x8057AB5C; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_983_ = .sdata2:0x8057AB5E; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_984_ = .sdata2:0x8057AB60; // type:object size:0x2 data:2byte -PARTICLE_RESOURCE_ID_MAPPING_985_ = .sdata2:0x8057AB62; // type:object size:0x6 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_985_ = .sdata2:0x8057AB62; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_986_ = .sdata2:0x8057AB64; // type:object size:0x2 data:2byte +PARTICLE_RESOURCE_ID_MAPPING_987_ = .sdata2:0x8057AB66; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_988_ = .sdata2:0x8057AB68; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_989_ = .sdata2:0x8057AB6A; // type:object size:0x2 data:2byte PARTICLE_RESOURCE_ID_MAPPING_990_ = .sdata2:0x8057AB6C; // type:object size:0x2 data:2byte diff --git a/include/JSystem/JParticle/JPADynamicsBlock.h b/include/JSystem/JParticle/JPADynamicsBlock.h index 73a7a6f6..5dd4e880 100644 --- a/include/JSystem/JParticle/JPADynamicsBlock.h +++ b/include/JSystem/JParticle/JPADynamicsBlock.h @@ -84,7 +84,7 @@ public: vec->set(mpData->mEmitterDir.x, mpData->mEmitterDir.y, mpData->mEmitterDir.z); } void getEmitterRot(mAng3_c* vec) const { - vec->set(mpData->mEmitterRot.x, mpData->mEmitterRot.y, mpData->mEmitterRot.z); + vec->set(mpData->mEmitterRot); } s16 getMaxFrame() { return mpData->mMaxFrame; } s16 getLifetime() { return mpData->mLifeTime; } diff --git a/include/c/c_lib.h b/include/c/c_lib.h index ea300953..46f809a1 100644 --- a/include/c/c_lib.h +++ b/include/c/c_lib.h @@ -6,8 +6,9 @@ namespace cLib { -s32 targetAngleY(const mVec3_c &target, const mVec3_c &source); -s32 targetAngleX(const mVec3_c &target, const mVec3_c &source); +s16 targetAngleY(const mVec3_c &target, const mVec3_c &source); +s16 targetAngleX(const mVec3_c &target, const mVec3_c &source); +void addCalcPos2(mVec3_c *src, const mVec3_c &target, f32 scale, f32 maxStep); f32 addCalcPosXZ(mVec3_c *src, const mVec3_c &target, f32 scale, f32 maxStep, f32 minStep); f32 addCalcPos(mVec3_c *src, const mVec3_c &target, f32 scale, f32 maxStep, f32 minStep); diff --git a/include/d/a/d_a_base.h b/include/d/a/d_a_base.h index 945c9e61..4fd914ce 100644 --- a/include/d/a/d_a_base.h +++ b/include/d/a/d_a_base.h @@ -2,6 +2,7 @@ #define D_A_BASE_H #include "UnknownTypeBelongings.h" +#include "common.h" #include "d/d_base.h" #include "m/m_allocator.h" #include "m/m_angle.h" @@ -16,11 +17,12 @@ struct SoundSource { virtual ~SoundSource() {} // TODO - virtual bool shutdown(); // 0x48 - virtual bool isReadyMaybe(); // 0x100 + virtual bool shutdown(); // 0x48 + virtual bool isReadyMaybe(); // 0x100 virtual bool load(void *data, const char *name); // 0x100 - virtual void setFrame(f32 frame); // 0x108 - virtual void setRate(f32 frame); // 0x10C + virtual void setFrame(f32 frame); // 0x108 + virtual void setRate(f32 frame); // 0x10C + virtual void set_0x164(UNKWORD val); // 0x114 }; struct SoundInfo { @@ -48,7 +50,7 @@ public: * for arrays of these nodes in classes. */ template -class dAcRef_c : dAcRefBase_c { +class dAcRef_c : public dAcRefBase_c { public: dAcRef_c(T *owner) : dAcRefBase_c(owner) {} dAcRef_c() : dAcRefBase_c(nullptr) {} @@ -236,7 +238,7 @@ public: /* 8002d7f0 */ void FUN_8002d7f0(); /* 8002d810 */ void FUN_8002d810(); /* 8002d830 */ void FUN_8002d830(); - /* 8002d860 */ void FUN_8002d860(); + /* 8002d860 */ void FUN_8002d860(UNKWORD val); /* 8002d880 */ SoundSource *getSoundSource(); // End of SoundSource stuff diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index ed043bff..c10d5a02 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -178,8 +178,8 @@ public: /* vt 0x218 */ virtual void isinMpPosePower(); /* vt 0x21C */ virtual void isPushingBlock(); /* vt 0x220 */ virtual void getRidingActor(); - /* vt 0x224 */ virtual void isRidingBall(); - /* vt 0x228 */ virtual void getRidingMinecartActor(); + /* vt 0x224 */ virtual bool isRidingBall() const; + /* vt 0x228 */ virtual dAcObjBase_c *getRidingMinecartActor() const; /* vt 0x22C */ virtual void getTurnableSwitch(); /* vt 0x230 */ virtual void vt_0x230(); /* vt 0x234 */ virtual void vt_0x234(); @@ -191,7 +191,7 @@ public: /* vt 0x24C */ virtual void vt_0x24C(); /* vt 0x250 */ virtual void vt_0x250(); /* vt 0x254 */ virtual void isAttackingUnderground(); - /* vt 0x258 */ virtual void vt_0x258(); + /* vt 0x258 */ virtual mAng vt_0x258() const; /* vt 0x25C */ virtual void vt_0x25C(); /* vt 0x260 */ virtual f32 vt_0x260() const; /* vt 0x264 */ virtual void getGroosenatorIfIn(); @@ -219,7 +219,7 @@ public: /* vt 0x2BC */ virtual void unlinkActorRef9(); /* vt 0x2C0 */ virtual void vt_0x2C0(); /* vt 0x2C4 */ virtual void vt_0x2C4(); - /* vt 0x2C8 */ virtual void isRecovering(); + /* vt 0x2C8 */ virtual bool isRecovering() const; /* vt 0x2CC */ virtual void isDrinkingPotion(); /* vt 0x2D0 */ virtual void isHealingShield(); /* vt 0x2D4 */ virtual void isBottleOut(); diff --git a/include/d/a/e/d_a_e_sm.h b/include/d/a/e/d_a_e_sm.h index 707fb6f1..474317d7 100644 --- a/include/d/a/e/d_a_e_sm.h +++ b/include/d/a/e/d_a_e_sm.h @@ -1,14 +1,60 @@ #ifndef D_A_E_SM_H #define D_A_E_SM_H +#include "common.h" +#include "d/a/d_a_base.h" #include "d/a/e/d_a_en_base.h" +#include "d/a/obj/d_a_obj_bomb.h" +#include "d/col/bg/d_bg_s_acch.h" +#include "d/col/cc/d_cc_d.h" +#include "d/d_shadow.h" +#include "d/flag/sceneflag_manager.h" +#include "m/m3d/m_anmmatclr.h" +#include "m/m3d/m_anmtexpat.h" +#include "m/m_angle.h" +#include "m/m_vec.h" #include "s/s_State.hpp" -#include "s/s_StateMgr.hpp" +#include "toBeSorted/blur_and_palette_manager.h" +#include "toBeSorted/d_d3d.h" +#include "toBeSorted/d_emitter.h" +#include "toBeSorted/stage_render_stuff.h" +#include "toBeSorted/time_area_mgr.h" class dAcEsm_c : public dAcEnBase_c { public: - dAcEsm_c() : mStateMgr(*this, sStateID::null) {} + enum SmColor_e { + SM_RED = 0, + SM_GREEN = 1, + SM_YELLOW = 2, + SM_RED_ALT = 3, + SM_GREEN_ALT = 4, + SM_YELLOW_ALT = 5, + SM_BLUE = 6 + }; + + enum SmSize_e { + SM_SMALL = 1, + SM_LARGE = 2, + SM_MASSIVE = 3, + SM_TINY = 4 + }; + struct SmData_c { + mAng field_0x00; + mAng field_0x02; + mVec3_c field_0x04; + mVec3_c field_0x10; + }; + +public: + dAcEsm_c() : mScnCallback(this), mStateMgr(*this, sStateID::null) {} virtual ~dAcEsm_c() {} + virtual int doDelete(); + virtual int draw(); + virtual bool createHeap(); + virtual int actorCreate(); + virtual int actorPostCreate(); + virtual int actorExecute(); + virtual void registerInEvent(); STATE_FUNC_DECLARE(dAcEsm_c, BaseMother); STATE_FUNC_DECLARE(dAcEsm_c, Wait); @@ -21,8 +67,162 @@ public: STATE_FUNC_DECLARE(dAcEsm_c, Fusion); STATE_FUNC_DECLARE(dAcEsm_c, Dead); + u8 GetParam_s8_0xFF() { + return params >> 8 & 0xFF; + } + + u8 GetType() { + int type = params >> 0 & 0xF; + return type != 0xF ? type : 0; + } + + u8 GetParam_s4_0xF() { + int type = params >> 4 & 0xF; + return type != 0xF ? type : 0; + } + + f32 GetParam_s16_0xFF() { + int tmp = params >> 16 & 0xFF; + return tmp != 0xFF ? tmp * 100.f : 400.f; + } + + u8 GetParam_s24_0x7() { + u8 tmp = params >> 24 & 0x7; + return tmp != 0x7 ? tmp : 0; + } + +public: + void fn_187_5D0(); + void fn_187_3F60(); + bool fn_187_4090(); + void fn_187_4200(); + bool fn_187_42C0(); + void fn_187_4450(); // fn_187_4450 + void fn_187_44C0(); + void fn_187_4540(int); + bool fn_187_4B50(); + bool fn_187_4C50(); + void Set_0xBBC(u8 v); + void fn_187_4CC0(); + mAng fn_187_5150(bool); + mAng fn_187_51F0(bool); + u32 fn_187_52A0(); + void fn_187_5390(); + bool checkSize(SmSize_e) const; // fn_187_5670 + void fn_187_5730(); + void fn_187_5810(); + void fn_187_5940(); + bool fn_187_5AC0() const; + void fn_187_61B0(u8); + bool fn_187_6B10(); + void fn_187_6C20(bool); + private: - /* 0x??? */ STATE_MGR_DECLARE(dAcEsm_c); + void updateBoundingBox(); + void updateMatrix(); + + bool *getArray() { + return sSomeArray; + } + void setArray(int i) { + sSomeArray[i] = false; + } + +private: + /* 0x378 */ d3d::AnmMdlWrapper mMdl; + /* 0x3E8 */ dShadowCircle_c mShadowCircle; + /* 0x3F0 */ m3d::anmTexPat_c mAnmTexPat; + /* 0x41C */ m3d::anmMatClr_c mAnmMatClr; + /* 0x448 */ dScnCallback_c mScnCallback; + /* 0x454 */ dCcD_Sph mSph; + /* 0x5A4 */ dBgS_AcchCir mAcchCir; + /* 0x600 */ dBgS_ObjAcch mObjAcch; + /* 0x9B0 */ STATE_MGR_DECLARE(dAcEsm_c); + /* 0x9EC */ dAcRef_c mBombRef; + /* 0x9F8 */ todoStruct00 field_0x9f8; + /* 0xA0C */ EffectsStruct mEffArr[2]; + /* 0xA74 */ TimeAreaStruct mTimeArea; + /* 0xA80 */ mVec3_c mPosCopy1; + /* 0xA8C */ mVec3_c mScaleTarget; + /* 0xA98 */ mVec3_c mScaleCopy2; + /* 0xAA4 */ mVec3_c mHitPos; + /* 0xAB0 */ u8 _AB0[0xAC8 - 0xAB0]; + /* 0xAC8 */ mVec3_c mHomePos1; + /* 0xAD4 */ mVec3_c mEffPos; + /* 0xAE0 */ dWaterEffect_c mSplashFx; + /* 0xB28 */ mAng3_c mRotUnk; + /* 0xB2E */ mAng mTargetRotX; + /* 0xB30 */ mAng mTargetRotZ; + /* 0xB32 */ u8 _B32[0xB38 - 0xB32]; + /* 0xB38 */ mAng3_c mRotCopy; + /* 0xB3E */ mAng mOrigRotZ; + /* 0xB40 */ f32 field_0xB40; + /* 0xB44 */ f32 field_0xB44; + /* 0xB48 */ f32 field_0xB48; + /* 0xB4C */ f32 field_0xB4C; + /* 0xB50 */ f32 field_0xB50; + /* 0xB54 */ f32 field_0xB54; + /* 0xB58 */ f32 field_0xB58; + /* 0xB5C */ f32 field_0xB5C; + /* 0xB60 */ u8 _B60[0xB65 - 0xB60]; + /* 0xB65 */ u8 field_0xB65; + /* 0xB66 */ u8 _B66[0xB68 - 0xB66]; + /* 0xB68 */ f32 field_0xB68; + /* 0xB6C */ f32 field_0xB6C; + /* 0xB70 */ f32 field_0xB70; + /* 0xB74 */ f32 field_0xB74; + /* 0xB78 */ f32 field_0xB78; + /* 0xB7C */ u32 field_0xB7C; + /* 0xB80 */ f32 field_0xB80; + /* 0xB84 */ f32 field_0xB84; + /* 0xB88 */ u32 field_0xB88; + /* 0xB8C */ f32 field_0xB8C; + /* 0xB90 */ s32 field_0xB90; + /* 0xB94 */ s32 field_0xB94; + /* 0xB98 */ s32 field_0xB98; + /* 0xB9C */ u8 _B9C[0xBA0 - 0xB9C]; + /* 0xBA0 */ u32 field_0xBA0; + /* 0xBA4 */ s16 field_0xBA4; + /* 0xBA6 */ s16 field_0xBA6; + /* 0xBA8 */ u16 field_0xBA8; + /* 0xBAA */ u16 field_0xBAA; + /* 0xBAC */ u16 field_0xBAC; + /* 0xBAE */ u16 mTimer_0xBAE; + /* 0xBB0 */ u16 field_0xBB0; + /* 0xBB2 */ u16 field_0xBB2; + /* 0xBB4 */ u16 mDamageTimer; + /* 0xBB6 */ u16 field_0xBB6; + /* 0xBB8 */ u16 field_0xBB8; + /* 0xBB9 */ u8 _BB9[0xBBC - 0xBBA]; + /* 0xBBC */ u8 field_0xBBC; + /* 0xBBD */ u8 field_0xBBD; + /* 0xBBE */ u8 mType; + /* 0xBBF */ u8 field_0xBBF; + /* 0xBC0 */ u8 field_0xBC0; + /* 0xBC1 */ u8 field_0xBC1; + /* 0xBC2 */ u8 field_0xBC2; + /* 0xBC3 */ u8 shift8_0xFF; + /* 0xBC4 */ u8 mTimer_0xBC4; + /* 0xBC5 */ u8 field_0xBC5; + /* 0xBC6 */ u8 field_0xBC6; + /* 0xBC7 */ u8 field_0xBC7; + /* 0xBC8 */ u8 field_0xBC8; + /* 0xBC9 */ u8 field_0xBC9; + /* 0xBCA */ u8 field_0xBCA; + /* 0xBCB */ u8 field_0xBCB; + /* 0xBCC */ u8 field_0xBCC; + /* 0xBCD */ u8 field_0xBCD; + /* 0xBCE */ u8 field_0xBCE; + /* 0xBD0 */ LightParams mLightInfo; + + static bool sSomeArrayInit; + static bool sSomeArray[9]; + + static const u16 sEmitterResArr[8]; + static const SmData_c sSmDataArr[8]; + + static s32 sValueFromPlayer; + static s32 sTimer; }; #endif diff --git a/include/d/a/e/d_a_en_base.h b/include/d/a/e/d_a_en_base.h index 2c41f658..10cb60d1 100644 --- a/include/d/a/e/d_a_en_base.h +++ b/include/d/a/e/d_a_en_base.h @@ -1,11 +1,72 @@ #ifndef D_A_EN_BASE_H #define D_A_EN_BASE_H +#include "common.h" #include "d/a/obj/d_a_obj_base.h" +#include "d/a/obj/d_a_obj_bomb.h" +#include "m/m_angle.h" +#include "m/m_vec.h" + +struct dAcEnData { + // Unknown Size yet +}; // Ghidra: ActorEnemyBase // size: // non-official name -class dAcEnBase_c : public dAcObjBase_c {}; +class dAcEnBase_c : public dAcObjBase_c { +public: + dAcEnBase_c(); + virtual ~dAcEnBase_c(); + + virtual void *getObjectListEntry() override { + return &mEnemyLink; + } + + virtual void vt_0x80() { + return; + } + virtual void vt_0x84() { + return; + } + virtual UNKWORD vt_0x88(UNKWORD a) { + return a; + }; + /* 0x330 */ dAcRef_c mEnemyLink; + /* 0x33C */ u32 mInteractionFlags; + /* 0x340 */ u16 field_0x338; + /* 0x342 */ u16 mHealth; + /* 0x344 */ u8 _344[0x374 - 0x344]; + /* 0x374 */ dAcEnData *mpEnemyData; + + bool checkInteractionFlags(u32 mask) { + return mInteractionFlags & mask; + } + void setInteractionFlags(u32 flag) { + mInteractionFlags |= flag; + } + void resetInteractionFlags(u32 flag) { + mInteractionFlags &= ~flag; + } + + dAcBomb_c *getBombWithinRadius(f32 radius); // fn_8002f700 + + // Deals with dealing damage to Enemy + // Returns a value 0-13 (similar to mStts rank?) + int fn_8002fde0(cCcD_Obj &mCc, u16 *pTgOut); + + // Returns 0-3 based on collision + // 2 + int fn_800301b0(const mVec3_c &pos, mAng ang, bool, f32); + void fn_800306d0(); + void fn_80030700(); + void fn_80030c20(u32 flags, f32, f32, f32, f32); + + bool ChkCrossPlayer(f32 height); + +protected: + // TODO: Make accessors for this list to auto-convert to dAcEnBase? + static fLiMgBa_c sEnemyList; +}; #endif diff --git a/include/d/a/obj/d_a_obj_base.h b/include/d/a/obj/d_a_obj_base.h index 7de35add..e61bd426 100644 --- a/include/d/a/obj/d_a_obj_base.h +++ b/include/d/a/obj/d_a_obj_base.h @@ -14,10 +14,33 @@ #include "m/m_mtx.h" #include "m/m_vec.h" #include "m/types_m.h" +#include "rvl/MTX/mtx.h" class dAcObjBase_c; class dBgS_Acch; +// This is found in dAcObamboo, dAcPy, and dAcEsm +// Since they have object in common, it will reside here +// until further notice. +#include "m/m3d/m_mdl.h" +struct todoStruct00 { + struct InternalData { + u16 field_0x00; + f32 field_0x04; + InternalData *pNextData; + }; + + todoStruct00(); + + void Set(dAcObjBase_c *pActor, InternalData *pData, m3d::mdl_c *pMdl, u32); + + /* 0x00 */ InternalData *field_0x00; + /* 0x04 */ m3d::mdl_c *mpMdl; + /* 0x08 */ dAcObjBase_c *mpActor; + /* 0x0C */ u32 mCount; // Guess + /* 0x10 */ u32 field_0x10; +}; + // Size: 0xA8 struct ActorCarryStruct { /* 0x00 */ dAcRefBase_c actorLink; @@ -51,6 +74,9 @@ struct ActorCarryStruct { void fn_80051190(dAcObjBase_c *); void fn_80050EB0(dAcObjBase_c *); + // This will attach pObj onto pOwner, returning if it could attach + bool tryAttachWithRef(dAcObjBase_c *pObj, dAcObjBase_c *pOwner, dAcRefBase_c *pRefLink, int, bool); + bool testCarryFlag(u32 flag) { return (carryFlags & flag) != 0; } @@ -137,6 +163,10 @@ public: return fabsf(nw4r::math::VEC3LenSq(velocity)); } + f32 GetSpeed() const { + return forwardSpeed; + } + bool isStopped() const { return getVelocityMag() <= EGG::Math::epsilon(); } @@ -182,12 +212,12 @@ public: public: /* 8002e630 */ static dAcObjBase_c *create( - fProfile::PROFILE_NAME_e actorId, u32 roomId, u32 params1, const mVec3_c *pos, const mAng3_c *rot, const mVec3_c *scale, - u32 params2 + fProfile::PROFILE_NAME_e actorId, u32 roomId, u32 params1, const mVec3_c *pos, const mAng3_c *rot, + const mVec3_c *scale, u32 params2 ); /* 8002e6d0 */ static dAcObjBase_c *create( - const char *name, u32 roomId, u32 params1, const mVec3_c *pos, const mAng3_c *rot, const mVec3_c *scale, u32 params2, u16 id, - s8 viewclipId + const char *name, u32 roomId, u32 params1, const mVec3_c *pos, const mAng3_c *rot, const mVec3_c *scale, + u32 params2, u16 id, s8 viewclipId ); /* 8002e770 */ static dAcObjBase_c * findObject(fProfile::PROFILE_NAME_e actorId, fLiNdBa_c *refList, dAcObjBase_c *parent); diff --git a/include/d/a/obj/d_a_obj_bomb.h b/include/d/a/obj/d_a_obj_bomb.h index c5cd71d2..adc2005e 100644 --- a/include/d/a/obj/d_a_obj_bomb.h +++ b/include/d/a/obj/d_a_obj_bomb.h @@ -46,6 +46,13 @@ public: void setTransformFromFlower(const mMtx_c &); + void Off_0xA3C(u32 mask) { + field_0xA3C &= ~mask; + } + void On_0xA3C(u32 mask) { + field_0xA3C |= mask; + } + public: /* 0x330 */ nw4r::g3d::ResFile mBrres; /* 0x334 */ m3d::smdl_c mMdl; @@ -56,12 +63,13 @@ public: /* 0x8B4 */ mMtx_c mMtx; /* 0x8E4 */ dBgS_BombLinChk mLinChk; /* 0x97C */ UnkBombColInfo mUnkInfo; - /* 0x9B4 */ u8 _0[0x9B8 - 0x9B4]; + /* 0x9B4 */ u8 _9B4[0x9B8 - 0x9B4]; /* 0x9B8 */ dAcBomb_c *mSelfRef; - /* 0x9BC */ u8 _1[0x9D4 - 0x9BC]; + /* 0x9BC */ u8 _9BC[0x9D4 - 0x9BC]; /* 0x9D4 */ EffectsStruct mEffect1; /* 0xA08 */ EffectsStruct mEffect2; - /* 0xA3C */ u8 _2[0xA44 - 0xA3C]; + /* 0xA3C */ u32 field_0xA3C; + /* 0xA40 */ u32 field_0xA40; /* 0xA44 */ s16 mField_0xA44; /* 0xA46 */ u8 _3[0xA50 - 0xA46]; /* 0xA50 */ f32 mField_0xA50; diff --git a/include/d/a/obj/d_a_obj_tbox.h b/include/d/a/obj/d_a_obj_tbox.h index c168d13c..9c52e759 100644 --- a/include/d/a/obj/d_a_obj_tbox.h +++ b/include/d/a/obj/d_a_obj_tbox.h @@ -17,10 +17,10 @@ #include "m/m3d/m_scnleaf.h" #include "m/m3d/m_smdl.h" #include "m/m_vec.h" -#include "nw4r/ut/ut_Color.h" #include "s/s_State.hpp" #include "toBeSorted/actor_event.h" #include "toBeSorted/attention.h" +#include "toBeSorted/blur_and_palette_manager.h" #include "toBeSorted/dowsing_target.h" #include "toBeSorted/stage_render_stuff.h" @@ -139,14 +139,7 @@ private: /* 0x049C */ m3d::anmTexPat_c mAnmGoddessPat; /* 0x04C8 */ dScnCallback_c mScnCallback; /* 0x04D4 */ dShadowCircle_c mShadowCircle; - - // Could be part of an aggregate structure - mVec3_c field_0x4DC; - nw4r::ut::Color field_0x4E8; - f32 field_0x4EC; - s32 field_0x4F0; - s32 field_0x4F4; - + /* 0x04DC */ LightParams mLightInfo; /* 0x04F8 */ dBgW mBgWs[2]; /* 0x0918 */ dCcD_Linked_Unk mCcD1; /* 0x0B30 */ dCcD_Linked_Unk mCcD2; diff --git a/include/d/a/obj/d_a_obj_tubo.h b/include/d/a/obj/d_a_obj_tubo.h index fe8fed49..82f26102 100644 --- a/include/d/a/obj/d_a_obj_tubo.h +++ b/include/d/a/obj/d_a_obj_tubo.h @@ -38,7 +38,7 @@ public: void attemptDestroy(); void fn_272_2670(); mVec3_c getCenter() const; - void attemptDestroyOnWall(u32 *, const u8 *); + void attemptDestroyOnWall(const u32 ¶m0 = 0, const bool ¶m1 = true); void fn_272_2E60(const mVec3_c &); void fn_272_3020(); void addPickupTarget(); @@ -128,8 +128,6 @@ private: /* 0x9F9 */ u8 mSubtype; /* 0x9FC */ int mField_0x9FC; - static u8 sUnk0; - static u32 sUnk1; static dCcD_SrcSph sSphSrc; }; diff --git a/include/d/col/c/c_cc_d.h b/include/d/col/c/c_cc_d.h index 1636248d..d3a0cf5a 100644 --- a/include/d/col/c/c_cc_d.h +++ b/include/d/col/c/c_cc_d.h @@ -519,6 +519,19 @@ public: void OffSPrm(u32 m) { mSrc.mSPrm &= ~m; } + + u32 MskSrcModifer(u32 mask) const { + return mSrc.mInfo.mModifier & mask; + } + void SetSrcModifer(u32 modifier) { + mSrc.mInfo.mModifier = modifier; + } + void OnSrcModifer(u32 m) { + mSrc.mInfo.mModifier |= m; + } + void OffSrcModifer(u32 m) { + mSrc.mInfo.mModifier &= ~m; + } u32 MskTgHitSPrm(u32 m) const { return mTgHitSrc.mSPrm & m; } @@ -532,6 +545,13 @@ public: mTgHitSrc.mSPrm &= ~m; } + void SetAtDamage(u8 amount) { + mSrc.mDamage = amount; + } + u8 GetAtDamage() const { + return mSrc.mDamage; + } + const cCcD_SrcGObjAt &GetSrc() const { return mSrc; } @@ -906,6 +926,21 @@ public: return mAt.MskSPrm(0x40000000); } + void OffAt_0x40() { + mAt.OffSPrm(0x40); + } + void OnAt_0x40() { + mAt.OnSPrm(0x40); + } + + + void SetAtDamage(u8 amount) { + mAt.SetAtDamage(amount); + } + void SetAtModifier(u16 modifier) { + mAt.SetSrcModifer(modifier); + } + // Tg void OnTgSet() { @@ -923,6 +958,15 @@ public: u32 ChkTgShieldFrontRange() const { return mTg.MskSPrm(0x400); } + u32 ChkTgElectric() const { + return mTg.MskSPrm(0x40000); + } + void OnTgElectric() { + return mTg.OnSPrm(0x40000); + } + void ClrTgElectric() { + return mTg.OffSPrm(0x40000); + } void OnTg_0x200000() { mTg.OnSPrm(0x200000); diff --git a/include/d/d_camera.h b/include/d/d_camera.h index c0973223..ad114811 100644 --- a/include/d/d_camera.h +++ b/include/d/d_camera.h @@ -20,6 +20,9 @@ public: const mVec3_c &getPositionMaybe() const { return mPositionMaybe; } + const mVec3_c &getField_0x78() const { + return field_0x78; + } bool doFn_800918E0(s32 a1, s16 a2) { return fn_800918E0(field_0xDA0, a1, a2); @@ -28,7 +31,8 @@ public: private: /* 0x068 */ u8 _0x068[0x6C - 0x068]; /* 0x06C */ mVec3_c mPositionMaybe; - /* 0x078 */ u8 _0x078[0xD98 - 0x078]; + /* 0x078 */ mVec3_c field_0x78; + /* 0x084 */ u8 _0x084[0xD98 - 0x084]; /* 0xD98 */ void *field_0xD98; /* 0xD9C */ u8 _0xD9C[0xDA0 - 0xD9C]; /* 0xDA0 */ void *field_0xDA0; diff --git a/include/d/d_cs_base.h b/include/d/d_cs_base.h index bc54cf5d..fce72800 100644 --- a/include/d/d_cs_base.h +++ b/include/d/d_cs_base.h @@ -7,6 +7,7 @@ #include "d/lyt/d2d.h" #include "d/lyt/d_lyt_cursor_stick.h" #include "m/m2d.h" +#include "m/m_angle.h" class dCsBase_c : public dCs_c { public: @@ -38,7 +39,6 @@ public: private: static dCsBase_c *sInstance; - static int sfield0x700Init; void setCurrentLyt(int lyt); /* 0x068 */ m2d::ResAccIf_c mResAcc; @@ -50,7 +50,7 @@ private: /* 0x6F4 */ f32 field_0x6F4; /* 0x6F8 */ f32 field_0x6F8; /* 0x6FC */ f32 field_0x6FC; - /* 0x700 */ u16 field_0x700; + /* 0x700 */ mAng field_0x700; /* 0x702 */ u8 field_0x702; /* 0x703 */ u8 field_0x703; /* 0x704 */ u8 field_0x704; diff --git a/include/d/t/d_t_ship_window.h b/include/d/t/d_t_ship_window.h index 325505e6..40f7c4a2 100644 --- a/include/d/t/d_t_ship_window.h +++ b/include/d/t/d_t_ship_window.h @@ -3,7 +3,6 @@ #include "d/t/d_tg.h" #include "s/s_State.hpp" -#include "s/s_StateMgr.hpp" #include "toBeSorted/actor_event.h" class dTgShipWindow_c : public dTg_c { @@ -20,7 +19,6 @@ public: STATE_FUNC_DECLARE(dTgShipWindow_c, Off); private: - static u32 sDefaultRotX; STATE_MGR_DECLARE(dTgShipWindow_c); ActorEventRelated mEvent; u8 mInitialStateFlag; diff --git a/include/d/t/d_t_siren.h b/include/d/t/d_t_siren.h index 9fe12a74..77456fa7 100644 --- a/include/d/t/d_t_siren.h +++ b/include/d/t/d_t_siren.h @@ -24,9 +24,16 @@ public: return sInstance->mTimekeeper.getTime(); } + static bool hasCollectedAllTears() { + if (sInstance == nullptr) { + return false; + } + return sInstance->_hasCollectedAllTears(); + } + private: bool outOfTime() const; - + bool _hasCollectedAllTears(); static dTgSiren_c *sInstance; /* 0x0FC */ u8 _0x0FC[0x2C0 - 0x0FC]; diff --git a/include/d/t/d_t_sw_area.h b/include/d/t/d_t_sw_area.h index 2d4fc401..f843724c 100644 --- a/include/d/t/d_t_sw_area.h +++ b/include/d/t/d_t_sw_area.h @@ -40,9 +40,6 @@ private: f32 scale; u16 setStoryflag; u16 unsetStoryflag; - - static u32 sDefaultRotX; - static u32 sDefaultRotZ; }; #endif diff --git a/include/m/m3d/m_shadow.h b/include/m/m3d/m_shadow.h index c5ce12ed..963d9f2c 100644 --- a/include/m/m3d/m_shadow.h +++ b/include/m/m3d/m_shadow.h @@ -116,7 +116,7 @@ public: virtual ~mShadowCircle_c(); private: - mShadowChild_c *mpChild; + /* 0x04 */ mShadowChild_c *mpChild; }; /** diff --git a/include/m/m_angle.h b/include/m/m_angle.h index 84e722b9..a39d29d2 100644 --- a/include/m/m_angle.h +++ b/include/m/m_angle.h @@ -12,6 +12,11 @@ struct mAng { mAng(s16 s) : mVal(s) {} mAng(const mAng &other) : mVal(other.mVal) {} + mAng &operator=(const s32 &val) { + mVal = val; + return *this; + } + static mAng atan2s(f32 a, f32 b) { return mAng(cM::atan2s(a, b)); } @@ -23,6 +28,10 @@ struct mAng { return mVal; } + void set(s16 val) { + mVal = val; + } + s16 *ref() { return &mVal; } @@ -104,6 +113,11 @@ struct mAng { return rad * (65536.0f / (2.f * M_PI)); } + // Try not to use + s32 diff(const mAng &other) { + return mVal - other.mVal; + } + s16 mVal; private: @@ -133,15 +147,33 @@ public: z = r.z; return *this; } + mAng3_c &operator=(const s32 &val) { + set(val); + return *this; + } - void set(s16 fx, s16 fy, s16 fz) { + void set(const mAng3_c &other) { + set(other.x, other.y, other.z); + } + + void set(const s32 &f) { + x = y = z = f; + } + + void set(const s32 &fx, const s32 &fy, const s32 &fz) { x = fx; y = fy; z = fz; } - void setR(const s32 &f) { - x = y = z = f; + void clear() { + set(0, 0, 0); + } + + // TODO - This is the only way I could get the regswap to be fixed.. + // Found with the pattern mAng3_c.y += cM::rndFX() + void addY(f32 val) { + y.mVal += (s16)val; } mAng x, y, z; diff --git a/include/m/m_color.h b/include/m/m_color.h index 95418195..a851f33b 100644 --- a/include/m/m_color.h +++ b/include/m/m_color.h @@ -2,7 +2,6 @@ #define M_COLOR_H #include "nw4r/ut/ut_Color.h" -#include "rvl/GX.h" struct mColor : public nw4r::ut::Color { mColor() : nw4r::ut::Color() {} diff --git a/include/m/m_mtx.h b/include/m/m_mtx.h index d353a30d..1251c980 100644 --- a/include/m/m_mtx.h +++ b/include/m/m_mtx.h @@ -58,6 +58,21 @@ public: const mAng &zRot ); ///< Rotates the matrix on the Z, Y and X axes by the given angles. + void ZYXrotM( + const mAng &xRot, const mAng &yRot, + const mAng &zRot + ); ///< Rotates the matrix on the Z, Y and X axes by the given angles. + + void XYZrotM(const mAng3_c &ang) { + XYZrotM(ang.x, ang.y, ang.z); + } + void ZXYrotM(const mAng3_c &ang) { + ZXYrotM(ang.x, ang.y, ang.z); + } + void ZYXrotM(const mAng3_c &ang) { + ZYXrotM(ang.x, ang.y, ang.z); + } + void toRot(mAng3_c &out) const; ///< Converts the matrix to a rotation vector. void multVecZero(nw4r::math::VEC3 &out) const; ///< Converts the matrix to a vector. diff --git a/include/m/m_quat.h b/include/m/m_quat.h index 9d836050..5393e0e7 100644 --- a/include/m/m_quat.h +++ b/include/m/m_quat.h @@ -9,6 +9,7 @@ public: mQuat_c() {} mQuat_c(f32 x, f32 y, f32 z, f32 w) : EGG::Quatf(w, x, y, z) {} mQuat_c(const mQuat_c &other) : EGG::Quatf(other.w, other.v) {} + mQuat_c(const mVec3_c &v, f32 w) : EGG::Quatf(w, v) {} mQuat_c &operator=(const EGG::Quatf &rhs) { v = rhs.v; diff --git a/include/m/m_vec.h b/include/m/m_vec.h index e538d058..ed1e9317 100644 --- a/include/m/m_vec.h +++ b/include/m/m_vec.h @@ -234,7 +234,7 @@ public: void rotY(const mAng &angle); void rotZ(const mAng &angle); - void CopyTo(nw4r::math::VEC3 *p) { + void CopyTo(nw4r::math::VEC3 *p) const { p->x = x; p->y = y; p->z = z; diff --git a/include/s/s_Math.h b/include/s/s_Math.h index a1bdfe39..69115a90 100644 --- a/include/s/s_Math.h +++ b/include/s/s_Math.h @@ -8,6 +8,7 @@ namespace sLib { // Names from NSMBW float addCalc(float *value, float target, float ratio, float maxStepSize, float minStepSize); short addCalcAngle(short *value, short target, short ratio, short maxStepSize, short minStepSize); +void addCalcAngle(short *value, short target, short ratio, short maxStepSize); BOOL chase(short *value, short target, short stepSize); BOOL chase(int *value, int target, int stepSize); BOOL chase(float *value, float target, float stepSize); diff --git a/include/toBeSorted/blur_and_palette_manager.h b/include/toBeSorted/blur_and_palette_manager.h index 24bab9bc..6f985709 100644 --- a/include/toBeSorted/blur_and_palette_manager.h +++ b/include/toBeSorted/blur_and_palette_manager.h @@ -2,8 +2,10 @@ #define BLUR_AND_PALETTE_MANAGER_H #include "common.h" +#include "egg/math/eggVector.h" #include "m/m_color.h" #include "m/m_vec.h" +#include "rvl/GX/GXTypes.h" #include "toBeSorted/tlist.h" struct UnkBlurPaletteListNode { @@ -181,7 +183,6 @@ struct PaletteEAF_big_entry { u8 field_0x10; }; - struct PaletteEAF_big { ~PaletteEAF_big() {} PaletteEAF_big_entry field_0x00[8]; @@ -223,6 +224,24 @@ struct Bpm9 { u8 _0x00[0x14 - 0x00]; }; +struct LightParams { + void SetColor(mColor clr) { + mClr = clr; + } + void SetScale(f32 scale) { + mScale = scale; + } + void SetPosition(const mVec3_c &pos) { + mPos = pos; + } + + /* 0x00 */ EGG::Vector3f mPos; + /* 0x0C */ mColor mClr; + /* 0x10 */ f32 mScale; + /* 0x14 */ s32 mIdx; + /* 0x18 */ s32 field_0x18; +}; + class BlurAndPaletteManager { public: BlurAndPaletteManager(); @@ -243,8 +262,10 @@ public: void setField_0x2F20(f32 arg) { field_0x2F20 = arg; } - void fn_800223A0(void *); - void fn_80022440(void *); + void fn_800223A0(LightParams *); + void fn_80022440(LightParams *); + void fn_800225F0(LightParams *); + void fn_800226E0(LightParams *); // light pillar related void fn_80024240(s16, s16, s16); @@ -260,7 +281,7 @@ public: return currentSpf; } - const PaletteEAF_smol_entry& getSmallEAF(s32 idx1, s32 idx2) { + const PaletteEAF_smol_entry &getSmallEAF(s32 idx1, s32 idx2) { return field_0x38E4.field_0x00[idx1].field_0x00[idx2]; } @@ -308,7 +329,10 @@ private: /* 0x2F18 */ f32 field_0x2F18; /* 0x2F1C */ f32 field_0x2F1C; /* 0x2F20 */ f32 field_0x2F20; - /* 0x2F24 */ u8 _0x2F24[0x357C - 0x2F24]; + /* 0x2F24 */ u8 field_0x2F24[4]; + /* 0x2F28 */ LightParams *field_0x2F28[5]; + /* 0x2F3C */ LightParams *field_0x2F3C[200]; + /* 0x325C */ u8 field_0x325C[0x357C - 0x325C]; /* 0x357C */ Bpm1 field_0x357C; /* 0x3594 */ u8 _0x3594[0x35A0 - 0x3594]; /* 0x35A0 */ Bpm2 field_0x35A0; diff --git a/include/toBeSorted/d_d3d.h b/include/toBeSorted/d_d3d.h index 4d650b79..07e9505d 100644 --- a/include/toBeSorted/d_d3d.h +++ b/include/toBeSorted/d_d3d.h @@ -18,12 +18,12 @@ namespace d3d { -f32 fn_80016960(mVec3_c&, const mVec3_c& pos); -bool fn_80016A90(const mVec3_c& pos); -void fn_80016B60(mVec3_c&, const mVec3_c& pos); +f32 fn_80016960(mVec3_c &, const mVec3_c &pos); +bool fn_80016A90(const mVec3_c &pos); +void fn_80016B60(mVec3_c &, const mVec3_c &pos); void createLightTextures(); -class AnmMdlWrapper : protected m3d::mdlAnmChr { +class AnmMdlWrapper : public m3d::mdlAnmChr { public: AnmMdlWrapper(); virtual ~AnmMdlWrapper(); @@ -180,6 +180,7 @@ class UnkProc : public m3d::proc_c { public: bool create(int prioOpa, int prioXlu, mAllocator_c *alloc); bool createXlu(int prioXlu, mAllocator_c *alloc); + private: }; diff --git a/include/toBeSorted/d_emitter.h b/include/toBeSorted/d_emitter.h index 5baefaee..9fdf9800 100644 --- a/include/toBeSorted/d_emitter.h +++ b/include/toBeSorted/d_emitter.h @@ -6,6 +6,7 @@ #include "JSystem/JParticle/JPAParticle.h" #include "common.h" #include "d/a/obj/d_a_obj_base.h" +#include "d/col/c/c_cc_d.h" #include "d/d_base.h" #include "m/m2d.h" #include "m/m_allocator.h" @@ -24,6 +25,8 @@ class dEmitterBase_c; class dEmitterCallback_c; class dParticleCallback_c; +#include "toBeSorted/d_emmitter_resource_map.inc" + class dEmitterBase_c { friend class dEmitterCallback_c; friend class dParticleCallback_c; @@ -383,7 +386,6 @@ public: field_0x67C.a = clr.a; } - void setField_0x67C(mColor clr) { field_0x67C.r = clr.r; field_0x67C.g = clr.g; @@ -420,8 +422,11 @@ public: static dEmitterBase_c *spawnEffect( u16 effectResourceId, const mMtx_c &transform, const GXColor *c1, const GXColor *c2, s32 idx1, s32 idx2 ); - static dEmitterBase_c *spawnGroundEffect(const mVec3_c &pos, u8 polyAttr0, u8 polyAttr1, const mVec3_c &, s32 unk, f32 scale, f32 groundHeightMaybe); + static dEmitterBase_c *spawnGroundEffect( + const mVec3_c &pos, u8 polyAttr0, u8 polyAttr1, const mVec3_c &, s32 unk, f32 scale, f32 groundHeightMaybe + ); + static void spawnHitMarkEffect(int type, cCcD_Obj &collider, const mVec3_c *pVec, bool); // "mass obj" = grass, fire static bool createMassObjEffect(u16 effectResourceId, const mVec3_c &v1, dAcObjBase_c *owner, const mColor *color); diff --git a/include/toBeSorted/d_emmitter_resource_map.inc b/include/toBeSorted/d_emmitter_resource_map.inc new file mode 100644 index 00000000..b6073f0e --- /dev/null +++ b/include/toBeSorted/d_emmitter_resource_map.inc @@ -0,0 +1,995 @@ +#include "common.h" + +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_0_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_1_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_2_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_3_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_4_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_5_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_6_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_7_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_8_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_9_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_10_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_11_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_12_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_13_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_14_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_15_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_16_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_17_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_18_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_19_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_20_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_21_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_22_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_23_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_24_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_25_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_26_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_27_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_28_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_29_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_30_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_31_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_32_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_33_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_34_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_35_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_36_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_37_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_38_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_39_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_40_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_41_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_42_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_43_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_44_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_45_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_46_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_47_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_48_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_49_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_50_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_51_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_52_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_53_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_54_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_55_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_56_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_57_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_58_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_59_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_60_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_61_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_62_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_63_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_64_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_65_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_66_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_67_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_68_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_69_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_70_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_71_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_72_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_73_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_74_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_75_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_76_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_77_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_78_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_79_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_80_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_81_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_82_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_83_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_84_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_85_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_86_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_87_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_88_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_89_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_90_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_91_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_92_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_93_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_94_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_95_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_96_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_97_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_98_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_99_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_100_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_101_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_102_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_103_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_104_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_105_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_106_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_107_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_108_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_109_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_110_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_111_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_112_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_113_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_114_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_115_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_116_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_117_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_118_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_119_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_120_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_121_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_122_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_123_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_124_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_125_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_126_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_127_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_128_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_129_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_130_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_131_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_132_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_133_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_134_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_135_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_136_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_137_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_138_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_139_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_140_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_141_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_142_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_143_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_144_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_145_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_146_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_147_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_148_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_149_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_150_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_151_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_152_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_153_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_154_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_155_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_156_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_157_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_158_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_159_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_160_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_161_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_162_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_163_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_164_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_165_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_166_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_167_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_168_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_169_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_170_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_171_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_172_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_173_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_174_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_175_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_176_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_177_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_178_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_179_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_180_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_181_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_182_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_183_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_184_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_185_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_186_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_187_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_188_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_189_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_190_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_191_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_192_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_193_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_194_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_195_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_196_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_197_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_198_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_199_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_200_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_201_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_202_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_203_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_204_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_205_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_206_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_207_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_208_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_209_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_210_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_211_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_212_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_213_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_214_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_215_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_216_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_217_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_218_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_219_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_220_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_221_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_222_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_223_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_224_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_225_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_226_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_227_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_228_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_229_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_230_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_231_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_232_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_233_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_234_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_235_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_236_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_237_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_238_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_239_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_240_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_241_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_242_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_243_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_244_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_245_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_246_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_247_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_248_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_249_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_250_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_251_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_252_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_253_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_254_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_255_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_256_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_257_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_258_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_259_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_260_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_261_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_262_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_263_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_264_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_265_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_266_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_267_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_268_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_269_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_270_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_271_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_272_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_273_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_274_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_275_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_276_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_277_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_278_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_279_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_280_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_281_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_282_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_283_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_284_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_285_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_286_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_287_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_288_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_289_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_290_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_291_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_292_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_293_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_294_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_295_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_296_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_297_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_298_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_299_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_300_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_301_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_302_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_303_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_304_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_305_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_306_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_307_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_308_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_309_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_310_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_311_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_312_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_313_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_314_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_315_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_316_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_317_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_318_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_319_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_320_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_321_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_322_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_323_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_324_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_325_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_326_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_327_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_328_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_329_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_330_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_331_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_332_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_333_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_334_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_335_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_336_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_337_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_338_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_339_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_340_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_341_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_342_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_343_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_344_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_345_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_346_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_347_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_348_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_349_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_350_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_351_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_352_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_353_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_354_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_355_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_356_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_357_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_358_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_359_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_360_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_361_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_362_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_363_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_364_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_365_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_366_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_367_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_368_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_369_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_370_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_371_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_372_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_373_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_374_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_375_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_376_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_377_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_378_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_379_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_380_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_381_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_382_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_383_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_384_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_385_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_386_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_387_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_388_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_389_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_390_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_391_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_392_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_393_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_394_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_395_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_396_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_397_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_398_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_399_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_400_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_401_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_402_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_403_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_404_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_405_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_406_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_407_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_408_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_409_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_410_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_411_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_412_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_413_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_414_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_415_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_416_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_417_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_418_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_419_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_420_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_421_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_422_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_423_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_424_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_425_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_426_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_427_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_428_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_429_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_430_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_431_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_432_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_433_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_434_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_435_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_436_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_437_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_438_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_439_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_440_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_441_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_442_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_443_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_444_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_445_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_446_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_447_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_448_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_449_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_450_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_451_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_452_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_453_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_454_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_455_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_456_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_457_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_458_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_459_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_460_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_461_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_462_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_463_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_464_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_465_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_466_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_467_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_468_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_469_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_470_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_471_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_472_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_473_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_474_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_475_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_476_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_477_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_478_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_479_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_480_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_481_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_482_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_483_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_484_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_485_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_486_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_487_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_488_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_489_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_490_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_491_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_492_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_493_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_494_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_495_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_496_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_497_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_498_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_499_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_500_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_501_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_502_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_503_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_504_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_505_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_506_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_507_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_508_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_509_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_510_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_511_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_512_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_513_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_514_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_515_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_516_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_517_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_518_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_519_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_520_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_521_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_522_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_523_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_524_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_525_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_526_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_527_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_528_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_529_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_530_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_531_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_532_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_533_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_534_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_535_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_536_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_537_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_538_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_539_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_540_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_541_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_542_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_543_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_544_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_545_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_546_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_547_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_548_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_549_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_550_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_551_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_552_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_553_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_554_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_555_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_556_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_557_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_558_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_559_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_560_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_561_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_562_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_563_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_564_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_565_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_566_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_567_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_568_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_569_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_570_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_571_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_572_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_573_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_574_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_575_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_576_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_577_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_578_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_579_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_580_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_581_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_582_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_583_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_584_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_585_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_586_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_587_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_588_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_589_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_590_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_591_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_592_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_593_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_594_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_595_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_596_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_597_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_598_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_599_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_600_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_601_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_602_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_603_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_604_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_605_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_606_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_607_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_608_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_609_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_610_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_611_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_612_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_613_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_614_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_615_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_616_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_617_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_618_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_619_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_620_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_621_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_622_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_623_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_624_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_625_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_626_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_627_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_628_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_629_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_630_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_631_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_632_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_633_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_634_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_635_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_636_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_637_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_638_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_639_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_640_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_641_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_642_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_643_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_644_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_645_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_646_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_647_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_648_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_649_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_650_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_651_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_652_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_653_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_654_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_655_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_656_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_657_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_658_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_659_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_660_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_661_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_662_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_663_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_664_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_665_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_666_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_667_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_668_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_669_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_670_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_671_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_672_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_673_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_674_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_675_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_676_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_677_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_678_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_679_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_680_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_681_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_682_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_683_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_684_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_685_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_686_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_687_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_688_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_689_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_690_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_691_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_692_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_693_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_694_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_695_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_696_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_697_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_698_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_699_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_700_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_701_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_702_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_703_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_704_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_705_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_706_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_707_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_708_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_709_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_710_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_711_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_712_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_713_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_714_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_715_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_716_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_717_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_718_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_719_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_720_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_721_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_722_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_723_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_724_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_725_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_726_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_727_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_728_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_729_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_730_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_731_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_732_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_733_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_734_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_735_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_736_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_737_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_738_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_739_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_740_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_741_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_742_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_743_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_744_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_745_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_746_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_747_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_748_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_749_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_750_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_751_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_752_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_753_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_754_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_755_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_756_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_757_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_758_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_759_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_760_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_761_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_762_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_763_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_764_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_765_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_766_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_767_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_768_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_769_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_770_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_771_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_772_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_773_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_774_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_775_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_776_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_777_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_778_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_779_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_780_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_781_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_782_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_783_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_784_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_785_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_786_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_787_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_788_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_789_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_790_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_791_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_792_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_793_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_794_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_795_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_796_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_797_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_798_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_799_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_800_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_801_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_802_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_803_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_804_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_805_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_806_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_807_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_808_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_809_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_810_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_811_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_812_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_813_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_814_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_815_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_816_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_817_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_818_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_819_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_820_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_821_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_822_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_823_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_824_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_825_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_826_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_827_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_828_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_829_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_830_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_831_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_832_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_833_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_834_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_835_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_836_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_837_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_838_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_839_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_840_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_841_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_842_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_843_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_844_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_845_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_846_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_847_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_848_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_849_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_850_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_851_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_852_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_853_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_854_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_855_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_856_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_857_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_858_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_859_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_860_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_861_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_862_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_863_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_864_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_865_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_866_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_867_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_868_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_869_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_870_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_871_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_872_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_873_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_874_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_875_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_876_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_877_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_878_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_879_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_880_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_881_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_882_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_883_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_884_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_885_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_886_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_887_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_888_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_889_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_890_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_891_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_892_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_893_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_894_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_895_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_896_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_897_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_898_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_899_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_900_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_901_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_902_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_903_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_904_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_905_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_906_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_907_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_908_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_909_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_910_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_911_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_912_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_913_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_914_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_915_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_916_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_917_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_918_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_919_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_920_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_921_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_922_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_923_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_924_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_925_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_926_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_927_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_928_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_929_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_930_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_931_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_932_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_933_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_934_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_935_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_936_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_937_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_938_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_939_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_940_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_941_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_942_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_943_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_944_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_945_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_946_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_947_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_948_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_949_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_950_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_951_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_952_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_953_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_954_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_955_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_956_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_957_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_958_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_959_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_960_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_961_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_962_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_963_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_964_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_965_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_966_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_967_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_968_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_969_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_970_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_971_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_972_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_973_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_974_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_975_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_976_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_977_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_978_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_979_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_980_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_981_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_982_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_983_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_984_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_985_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_986_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_987_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_988_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_989_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_990_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_991_; +extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_992_; diff --git a/include/toBeSorted/time_area_mgr.h b/include/toBeSorted/time_area_mgr.h index 87404178..f6d206c6 100644 --- a/include/toBeSorted/time_area_mgr.h +++ b/include/toBeSorted/time_area_mgr.h @@ -45,7 +45,18 @@ struct TimeAreaStruct { return field_0x00; } - bool check(int, const mVec3_c &, u32, f32, f32); + void setField0x00(f32 v) { + field_0x00 = v; + } + void setField0x08(u8 v) { + field_0x08 = v; + } + + // Return Values: + // -1 SE_TIMESLIP_TIMESLIP_REV + // 0 No change ? + // 1 SE_TIMESLIP_TIMESLIP + int check(int, const mVec3_c &, u32, f32, f32); }; class dTimeAreaMgr_c { diff --git a/src/REL/d/a/e/d_a_e_hb_leaf.cpp b/src/REL/d/a/e/d_a_e_hb_leaf.cpp index a5fa959f..c8ac6391 100644 --- a/src/REL/d/a/e/d_a_e_hb_leaf.cpp +++ b/src/REL/d/a/e/d_a_e_hb_leaf.cpp @@ -33,7 +33,7 @@ int dAcEhb_leaf_c::create() { case 2: mType = 2; break; case 3: case 4: - case 5: rotation.z = -0x8000; break; + case 5: rotation.z.set(-0x8000); break; default: break; } diff --git a/src/REL/d/a/e/d_a_e_sm.cpp b/src/REL/d/a/e/d_a_e_sm.cpp index ebfb4beb..851066b2 100644 --- a/src/REL/d/a/e/d_a_e_sm.cpp +++ b/src/REL/d/a/e/d_a_e_sm.cpp @@ -1,7 +1,84 @@ #include "d/a/e/d_a_e_sm.h" +#include "c/c_lib.h" +#include "c/c_math.h" +#include "common.h" +#include "d/a/d_a_base.h" +#include "d/a/d_a_player.h" +#include "d/a/obj/d_a_obj_base.h" +#include "d/a/obj/d_a_obj_bomb.h" +#include "d/col/bg/d_bg_pc.h" +#include "d/col/bg/d_bg_s.h" +#include "d/col/bg/d_bg_s_gnd_chk.h" +#include "d/col/bg/d_bg_s_lin_chk.h" +#include "d/col/c/c_cc_d.h" +#include "d/col/cc/d_cc_d.h" +#include "d/col/cc/d_cc_s.h" +#include "d/d_camera.h" +#include "d/d_sc_game.h" +#include "d/flag/sceneflag_manager.h" +#include "d/flag/storyflag_manager.h" +#include "f/f_base.h" +#include "f/f_profile_name.h" +#include "m/m3d/m_fanm.h" +#include "m/m_angle.h" +#include "m/m_color.h" +#include "m/m_mtx.h" +#include "m/m_quat.h" +#include "m/m_vec.h" +#include "nw4r/g3d/res/g3d_resanmclr.h" +#include "nw4r/g3d/res/g3d_resanmtexpat.h" +#include "nw4r/g3d/res/g3d_resfile.h" +#include "nw4r/g3d/res/g3d_resmdl.h" +#include "nw4r/g3d/res/g3d_resnode.h" +#include "rvl/MTX/mtx.h" +#include "rvl/MTX/mtxvec.h" +#include "s/s_Math.h" +#include "toBeSorted/blur_and_palette_manager.h" +#include "toBeSorted/d_emitter.h" +#include "toBeSorted/small_sound_mgr.h" +#include "toBeSorted/time_area_mgr.h" + SPECIAL_ACTOR_PROFILE(E_SM, dAcEsm_c, fProfile::E_SM, 0xEB, 0, 4098); +static dCcD_SrcSph sSphSrc = { + /* mObjInf */ + {/* mObjAt */ {AT_TYPE_DAMAGE, 0xD, {0, 0, 0}, 0, 0, 0, 0, 0, 0}, + /* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x3303, {0, 3, 0x40F}, 8, 0}, + /* mObjCo */ {0xC5}}, + /* mSphInf */ + {50.f}, +}; + +void dAcEsm_c::fn_187_5D0() { + if (mStateMgr.isState(StateID_Absorption)) { + fn_187_6C20(0); + } +} + +bool dAcEsm_c::createHeap() { + void *rresData = getOarcResFile("Sm"); + TRY_CREATE(mMdl.create3(*this, rresData, "sm", "awa", 0x123)); + + nw4r::g3d::ResFile rres(rresData); + nw4r::g3d::ResMdl mdl(rres.GetResMdl("sm")); + nw4r::g3d::ResAnmTexPat texPat(rres.GetResAnmTexPat("sm")); + + TRY_CREATE(mAnmTexPat.create(mdl, texPat, &heap_allocator, nullptr, 1)); + mMdl.getModel().setAnm(mAnmTexPat); + + nw4r::g3d::ResAnmClr anmClr = rres.GetResAnmClr("attack"); + if (mType == SM_YELLOW) { + anmClr = rres.GetResAnmClr("Spark"); + } + TRY_CREATE(mAnmMatClr.create(mdl, anmClr, &heap_allocator, nullptr, 1)); + + mMdl.getModel().setAnm(mAnmMatClr); + mScnCallback.attach(mMdl.getModel()); + + return true; +} + STATE_DEFINE(dAcEsm_c, BaseMother); STATE_DEFINE(dAcEsm_c, Wait); STATE_DEFINE(dAcEsm_c, Walk); @@ -13,33 +90,1368 @@ STATE_DEFINE(dAcEsm_c, Absorption); STATE_DEFINE(dAcEsm_c, Fusion); STATE_DEFINE(dAcEsm_c, Dead); +bool dAcEsm_c::sSomeArrayInit = false; +bool dAcEsm_c::sSomeArray[9]; + +int dAcEsm_c::actorCreate() { + // Check for Batreaux being human and on Skyloft/Waterfall cave + if (StoryflagManager::sInstance->getCounterOrFlag(360) && + (dScGame_c::isCurrentStage("F000") || dScGame_c::isCurrentStage("D000"))) { + return FAILED; + } + + mType = GetType(); + field_0xBBF = GetParam_s4_0xF(); + shift8_0xFF = GetParam_s8_0xFF(); + + field_0xB74 = GetParam_s16_0xFF(); + field_0xB78 = rotation.z; + if (field_0xB74 == 0.f) { + field_0xB74 = 400.f; + } + field_0xBC6 = GetParam_s24_0x7(); + + mOrigRotZ = rotation.z; + + if (field_0xB78 <= 0.f) { + field_0xB78 = 0.f; + } else { + field_0xB78 = 200.f * field_0xB78; + } + + mStartingPos.set(position.x, position.y, position.z); + mHomePos1.set(position.x, position.y, position.z); + mEffPos.set(position.x, position.y, position.z); + + CREATE_ALLOCATOR(dAcEsm_c); + + rotation.z = angle.x = 0; + + mBombRef.unlink(); + + setActorProperty(0x1); + // Ignore these bounding box sets. `fixBoundBox` completely overwrites them with the scale + switch ((int)mScale.x) { + default: + case SM_SMALL: { + boundingBox.Set(mVec3_c(-250.f, -250.f, -250.f), mVec3_c(250.f, 375.f, 250.f)); + mScale.set(0.8f, 0.8f, 0.8f); + } break; + case SM_LARGE: { + boundingBox.Set(mVec3_c(-500.f, -500.f, -500.f), mVec3_c(500.f, 750.f, 500.f)); + mScale.set(0.4f, 0.4f, 0.4f); + } break; + case SM_MASSIVE: { + boundingBox.Set(mVec3_c(-800.f, -800.f, -800.f), mVec3_c(800.f, 1200.f, 800.f)); + mScale.set(0.25f, 0.25f, 0.25f); + } break; + case SM_TINY: { + boundingBox.Set(mVec3_c(-150.f, -150.f, -150.f), mVec3_c(150.f, 225.f, 150.f)); + mScale.set(1.2f, 1.2f, 1.2f); + } break; + } + + updateBoundingBox(); + + mScale.CopyTo(mScaleTarget); + mScale.CopyTo(mScaleCopy2); + + mObjAcch.Set(this, 1, &mAcchCir); + mAcchCir.SetWall(mScaleTarget.y * 100.f, mScaleTarget.x * 100.f); + mStts.SetRank(10); + mObjAcch.SetGndThinCellingOff(); + mObjAcch.mField_0x390 = 1; + + forwardMaxSpeed = -40.f; + + mSph.Set(sSphSrc); + + mSph.SetStts(mStts); + + position.CopyTo(poscopy2); + position.CopyTo(mPosCopy1); + position.CopyTo(poscopy3); + poscopy3.y += 50.f; + + mRotCopy.set(rotation); + + field_0xB98 = 0; + field_0xB58 = 1.f; + field_0xB90 = -1; + + // This is really weird... + if (!sSomeArrayInit) { + sSomeArrayInit = true; + bool *parr = getArray(); + for (int i = 0; i < 8; i++) { + *parr++ = false; + } + *parr++ = false; + } + + static todoStruct00::InternalData data0 = {0, 100.f, nullptr}; + static todoStruct00::InternalData data1 = {1, 130.f, &data0}; + field_0x9f8.Set(this, &data1, &mMdl.getModel(), 1); + + mLightInfo.SetColor(mColor(0xCC, 0xFF, 0xFF, 0xFF)); + mLightInfo.SetScale(0.f); + + BlurAndPaletteManager::GetPInstance()->fn_800225F0(&mLightInfo); + if (field_0xBBF == 1) { + rotation.x = 0x8000; + field_0xBCC = 1; + } + + mRotUnk.clear(); + + mEffArr[0].init(this); + mEffArr[1].init(this); + + if (field_0xBBF == 1) { + mStateMgr.changeState(StateID_Wait); + } else { + mStateMgr.changeState(StateID_Walk); + } + + mHealth = 100; + + if (field_0xBBF != 1) { + forwardAccel = -3.f; + } + calcVelocity(); + position += velocity; + position += mStts.GetCcMove(); + + mObjAcch.CrrPos(*dBgS::GetInstance()); + fn_187_4CC0(); + + f32 anim_frame; + switch (mType) { + // SM_RED + default: { + targetFiTextId = 59; + anim_frame = 0.f; + mSph.SetAtModifier(AT_MOD_FIRE); + mType = SM_RED; + } break; + case SM_GREEN_ALT: + case SM_GREEN: { + targetFiTextId = 62; + anim_frame = 3.f; + mType = SM_GREEN; + } break; + case SM_YELLOW_ALT: + case SM_YELLOW: { + targetFiTextId = 61; + anim_frame = 2.f; + mSph.SetAtModifier(AT_MOD_ELECTRIC); + mType = SM_YELLOW; + } break; + + case SM_BLUE: { + targetFiTextId = 60; + anim_frame = 1.f; + } break; + } + + if (field_0xBBF != 6) { + mSplashFx.init(this, 100.f, mScaleTarget.x * 2.f, 0.f); + mSplashFx.setIsSmall(1); + } + + mAnmTexPat.setFrame(anim_frame, 0); + + setInteractionFlags(0x40); + + fn_187_44C0(); + + mSph.SetAtDamage(4); + + return SUCCEEDED; +} + +int dAcEsm_c::actorPostCreate() { + switch ((u32)field_0xBC6) { + case 1: { + mTimeArea.setField0x08(0); + if (dTimeAreaMgr_c::GetInstance()->fn_800B9B60(getRoomId(), GetPosition())) { + mTimeArea.setField0x00(1.f); + field_0xB8C = 1.f; + fn_80030700(); + } else { + mTimeArea.setField0x00(0.f); + field_0xB8C = 0.f; + fn_800306d0(); + } + } break; + case 2: { + mTimeArea.setField0x08(1); + if (dTimeAreaMgr_c::GetInstance()->fn_800B9B60(getRoomId(), GetPosition())) { + field_0xB8C = 0.f; + mTimeArea.setField0x00(0.f); + fn_800306d0(); + } else { + field_0xB8C = 1.f; + mTimeArea.setField0x00(1.f); + fn_80030700(); + } + } break; + } + + if (field_0xBBF == 2 || field_0xBBF == 3) { + mScale.set(0.1f, 0.1f, 0.1f); + field_0xBBF = 3; + } + + if (field_0xBBF == 1 || field_0xBBF == 3) { + clearActorProperty(1); + fn_800306d0(); + FUN_8002d860(0); + } + + return SUCCEEDED; +} + +int dAcEsm_c::doDelete() { + BlurAndPaletteManager::GetPInstance()->fn_800226E0(&mLightInfo); + return SUCCEEDED; +} + +int dAcEsm_c::actorExecute() { + mLightInfo.SetScale(0.f); + if (shift8_0xFF != 0xFF && !SceneflagManager::sInstance->checkBoolFlag(roomid, shift8_0xFF)) { + return SUCCEEDED; + } + + if (dAcPy_c::GetLink()->checkActionFlagsCont(0x400000)) { + return SUCCEEDED; + } + + dAcBomb_c *bomb = mBombRef.get(); + if (mBombRef.isLinked() && bomb) { + mVec3_c target; + GetPosition().CopyTo(target); + if (!checkSize(SM_MASSIVE) && !checkSize(SM_LARGE)) { + target.y += mScaleTarget.y * 60.f; + } + + cLib::addCalcPos2(&bomb->GetPosition(), target, 0.8f, 20.f + GetSpeed() * 1.5f); + + field_0xB6C = 0.5f; + + if (field_0xBC5 != 2) { + mMdl.setAnm("attack", m3d::PLAY_MODE_4, 4.f); + field_0xBC5 = 2; + } + + if (0 == sLib::calcTimer(&mTimer_0xBAE)) { + fn_187_4B50(); + } + } + + if (!mStateMgr.isState(dAcEsm_c::StateID_Dead)) { + if (mHealth != 0 && mScaleTarget.x > 0.25f) { + mHealth = 100; + } + + if (field_0xBC6 == 1 || field_0xBC6 == 2) { + int timeCheck = 0; + if (mHealth != 0) { + if (field_0xBBF == 3 || field_0xBBF == 1 || mStateMgr.isState(StateID_Absorption) || + mObjAcch.ChkGndHit()) { + timeCheck = mTimeArea.check(getRoomId(), GetPosition(), 0, 10.f, 0.2f); + } + } + + if (timeCheck != 0) { + if (field_0xBBF == 3) { + if (checkInteractionFlags(4)) { + fn_800306d0(); + } + return SUCCEEDED; + } + + u16 effectID; + mVec3_c effScale(1.f, 1.f, 1.f); + if (checkSize(SM_TINY)) { + effScale.set(1.5f, 1.5f, 1.5f); + effectID = PARTICLE_RESOURCE_ID_MAPPING_463_; + } else if (checkSize(SM_SMALL)) { + effectID = PARTICLE_RESOURCE_ID_MAPPING_463_; + } else if (checkSize(SM_LARGE)) { + effectID = PARTICLE_RESOURCE_ID_MAPPING_465_; + } else { + effectID = PARTICLE_RESOURCE_ID_MAPPING_464_; + } + + dJEffManager_c::spawnEffect(effectID, mEffPos, nullptr, &effScale, nullptr, nullptr, 0, 0); + + if (timeCheck > 0) { + playSound(SE_TIMESLIP_TIMESLIP); + fn_800306d0(); + } else { + playSound(SE_TIMESLIP_TIMESLIP_REV); + fn_80030700(); + } + } + + if (field_0xBBF == 3 && mTimeArea.isNearZero()) { + if (checkInteractionFlags(4)) { + fn_800306d0(); + } + return SUCCEEDED; + } + + if (field_0xB8C < 1.f) { + if (mStateMgr.isState(StateID_Absorption) || mHealth == 0) { + fn_187_5730(); + fillUpperParams2Byte(); + deleteRequest(); + } + forwardSpeed = 0.f; + + // TODO: Maybe Inline - Common Pattern. Check GetCcMove + calcVelocity(); + position += velocity; + position += mStts.GetCcMove(); + + mObjAcch.CrrPos(*dBgS::GetInstance()); + fn_187_44C0(); + return SUCCEEDED; + } + } + + if (field_0xBBF == 3 || field_0xBBF == 1) { + if (isWithinPlayerRadius(field_0xB74) || field_0xB94 != 0) { + if (field_0xBBF == 3) { + if (!(field_0xBC6 == 1 || field_0xBC6 == 2) || !mTimeArea.isNearZero()) { + mTimer_0xBC4 = 6; + mStateMgr.changeState(StateID_BirthJump); + field_0xBB8 = 0; + fn_80030700(); + field_0xBC2 = 2; + fn_187_5390(); + } + } else { + mStateMgr.changeState(StateID_BirthJump); + field_0xBB8 = 0; + } + field_0xBBF = 0; + FUN_8002d860(2); + fn_80030700(); + rotation.y = angle.y = getXZAngleToPlayer(); + } + if (field_0xBBF == 3) { + return SUCCEEDED; + } + } + } + + mStateMgr.executeState(); + + if (mStateMgr.isState(StateID_Absorption)) { + mSph.SetTgType(~(AT_TYPE_COMMON0 | AT_TYPE_0x800000 | AT_TYPE_SWORD)); + } else { + mSph.SetTgType(~AT_TYPE_COMMON0); + + if (mType == SM_RED) { + mAnmMatClr.setFrame(0.f, 0); + } + if (mType == SM_YELLOW && !mSph.ChkTgElectric()) { + mAnmMatClr.setFrame(0.f, 0); + } + } + + if (0 == sLib::calcTimer(&mTimer_0xBC4)) { + calcVelocity(); + position += velocity; + position += mStts.GetCcMove(); + } + + if (!mStateMgr.isState(StateID_Absorption)) { + mObjAcch.CrrPos(*dBgS::GetInstance()); + } + + if (field_0xBBF != 6) { + mSplashFx.execute(mObjAcch.GetWtrGroundH(), mObjAcch.GetGroundH()); + } + + if (!mStateMgr.isState(StateID_Dead)) { + if (field_0xBBF != 6 && dBgS_WtrChk::CheckPos(&GetPosition(), true, 500.0f, -500.0f) && + std::abs(mObjAcch.GetGroundH() - dBgS_WtrChk::GetWaterHeight()) > 200.0f && + (GetPosition().y < dBgS_WtrChk::GetWaterHeight() - 100.0f)) { + mHealth = 0; + fn_187_4540(2); + } + + if (mObjAcch.ChkGndHit() && fn_187_4C50() && mHealth != 0) { + mHealth = 0; + fn_187_4540(2); + } + } + + if (mHealth != 0) { + fn_187_3F60(); + mAcchCir.SetWall(mScaleTarget.y * 100.f, mScaleTarget.x * 120.f); + } + + fn_187_4CC0(); + + if (mHealth == 0 || mStateMgr.isState(StateID_Dead)) { + return SUCCEEDED; + } + + if (mType == SM_YELLOW && mSph.ChkTgElectric()) { + fn_187_5940(); + } + + mHitPos.set(0.f, 0.f, 0.f); + + if (0 == sLib::calcTimer(&mDamageTimer)) { + field_0xB94 = fn_8002fde0(mSph, nullptr); + if (field_0xB94 != 0) { + if (mSph.ChkTgHit()) { + if (field_0xB94 == 7) { + field_0xB6C = 0.5f; + forwardSpeed = 0.f; + } else { + int val = 0; // IDK what this would have been + field_0xB6C = 1.5f + 0.1f * val; + field_0xB68 = -0.5f + 0.01f * val; + } + } + } + + if (!(field_0xB94 >= 6 && field_0xB94 <= 10 || field_0xB94 == 0)) { + field_0xB98 = 0; + + if (!fn_187_4B50() && mSph.ChkTgHit()) { + int hitType = mSph.GetTgAtHitType(); + // const cast required... Maybe the const/non-const funcs are flipped? + const mVec3_c &hitPos = const_cast(&mSph)->GetTgHitPos(); + hitPos.CopyTo(mHitPos); + + switch (hitType) { + case AT_TYPE_SWORD: + if (mSph.ChkTgElectric()) { + break; + } + case AT_TYPE_0x800000: + field_0xB98 = fn_187_52A0(); + dJEffManager_c::spawnHitMarkEffect(6, mSph, nullptr, true); + if (field_0xB98 != 7) { + fn_187_61B0(0); + fn_187_4540(field_0xB94); + } + break; + default: { + dAcObjBase_c *tgActor = mSph.GetTgActor(); + if (tgActor->profile_name == fProfile::OBJ_FIRE_PILLAR) { + mHealth = 0; + fn_187_4540(2); + } else { + mHealth = 100; + playSound(SE_ESm_NO_DMG); + fn_187_61B0(7); + } + + } break; + case AT_TYPE_BOMB: + case AT_TYPE_BUBBLE: + case 0: { + if (mStateMgr.isState(StateID_Absorption)) { + fn_187_5730(); + } + mHealth = 0; + fn_187_4540(2); + + } break; + } + } + } + + if (field_0xB94 == 7 && field_0xB80 < 1.f) { + field_0xB80 = 4.f; + } + } + + if (mHealth != 0 && field_0xBC8 == 0 && field_0xBA0 == 0 && field_0xB90 < 0) { + // Check to make sure the chu is slow enough/or on the ground + if ((!mStateMgr.isState(StateID_BirthJump) || mObjAcch.ChkGndHit() || velocity.y <= -6.f) && field_0xBB6 == 0) { + // Check to make sure chu isnt in a "death"-like state. + if (!(mStateMgr.isState(StateID_Absorption) || mStateMgr.isState(StateID_Dead) || + mStateMgr.isState(StateID_Fusion))) { + // CHECK FOR FUSION - Another ESm + if (mSph.ChkCoHit() && mSph.GetCoActor()->profile_name == fProfile::E_SM) { + // The other chu to interact with + dAcEsm_c *pOther = static_cast(mSph.GetCoActor()); + + // Some checks to make sure the other chu can be interacted with + if (!fn_187_4B50() && pOther->field_0xBC8 == 0 && pOther->mHealth != 0 && + pOther->field_0xBA0 == 0 && pOther->field_0xB90 < 0 && pOther->field_0xBB6 == 0) { + if (!pOther->mStateMgr.isState(StateID_BirthJump) || pOther->mObjAcch.ChkGndHit() || + pOther->velocity.y <= -6.f) { + // Check for non-fusion/absorption status and if the other Chu is smaller than [this] chu + if (!(pOther->mStateMgr.isState(StateID_Absorption) || + pOther->mStateMgr.isState(StateID_Fusion)) && + mScaleTarget.x >= pOther->mScaleTarget.x) { + // Merging of properties + mScaleTarget.CopyTo(mScaleCopy2); + mScaleCopy2 += pOther->mScaleTarget; + + GetPosition().CopyTo(mPosCopy1); + GetPosition().CopyTo(pOther->mPosCopy1); + + if (mScaleCopy2.x > 1.2f) { + mScaleCopy2.set(1.2f, 1.2f, 1.2f); + } + + pOther->mScaleCopy2.set(0.01f, 0.01f, 0.01f); + + pOther->field_0xBC8 = 1; + pOther->mDamageTimer = 8; + pOther->mStateMgr.changeState(StateID_Fusion); + playSound(SE_ESm_UNITE); + mStateMgr.changeState(StateID_Fusion); + } + } + } + } + // CHECK FOR BOMB REFERENCE + if (!mBombRef.get()) { + f32 lookRadius = 200.f; + lookRadius *= mScaleTarget.x; + if (lookRadius < 80.f) { + lookRadius = 80.f; + } + + dAcBomb_c *bomb = getBombWithinRadius(lookRadius); + + if (bomb != nullptr && std::abs(bomb->GetPosition().y - mHomePos1.y) < 0.7f * lookRadius) { + if (bomb->mActorCarryInfo.tryAttachWithRef(bomb, this, &mBombRef, 1, false)) { + mTimer_0xBAE = 160; + playSound(SE_ESm_BRING_IN); + clearActorProperty(1); + } + } + } + } + } + } + + if (mSph.ChkTgElectric()) { + fn_187_4B50(); + } + s8 var = 0; + f32 radius = 150.f + var; + nw4r::g3d::ResNode node = mMdl.getModel().getResMdl().GetResNode("sm"); + + mMtx_c nodeMtx; + mMdl.getModel().getNodeWorldMtx(node.GetID(), nodeMtx); + mVec3_c center(0.f, 0.f, 0.f); + center.y = 90.f; + + MTXMultVec(nodeMtx, center, mHomePos1); + + position.CopyTo(poscopy3); + position.CopyTo(poscopy2); + poscopy2.y += 130.f * mScaleTarget.y; + poscopy3.y += 260.f * mScaleTarget.y; + + mSph.SetC(mHomePos1); + if (mSph.ChkTgElectric()) { + playSoundEffect1(SE_ESm_ELEC_LV); + } + + radius *= mScaleTarget.x; + if (radius < 43.f) { + radius = 43.f; + } + mSph.SetR(radius); + dCcS::GetInstance()->Set(&mSph); + + f32 speedTarget = forwardSpeed; + speedTarget -= field_0xB80; + if (speedTarget < 0.f) { + speedTarget = 0.f; + } + sLib::addCalcScaledDiff(&forwardSpeed, speedTarget, 0.3f, 1.f); + sLib::addCalcScaled(&field_0xB80, 0.3f, 1.f); + + if (field_0xBCB == 0) { + playSoundEffect1(SE_ESm_MOVE); + } else { + playSoundEffect1(SE_ESm_MOVE_HI); + } + + if (field_0xBC8 == 0 && !mStateMgr.isState(StateID_Absorption)) { + fn_80030c20(3, 700.f, 50.f, -200.f, 200.f); + } + + if (field_0xBBF != 3 && mScaleTarget.z != mScale.z) { + cLib::addCalcPos2(&mScale, mScaleTarget, 0.3f, 0.3f); + } + + return SUCCEEDED; +} + +int dAcEsm_c::draw() { + if (fn_187_5AC0()) { + return SUCCEEDED; + } + if (dAcPy_c::GetLink()->checkActionFlagsCont(0x400000)) { + return SUCCEEDED; + } + if (mScale.squareMagXZ() < 0.0004f) { + return SUCCEEDED; + } + if (shift8_0xFF != 0xFF && !SceneflagManager::sInstance->checkBoolFlag(roomid, shift8_0xFF)) { + return SUCCEEDED; + } + + if (field_0xBBF == 3) { + return SUCCEEDED; + } + + drawModelType1(&mMdl.getModel()); + + if (mHealth == 0) { + return SUCCEEDED; + } + + s8 var = 0; + mQuat_c q(mVec3_c(0.f, 50.f, 0.f), mScale.x * (var + 240.f)); + drawShadow(mShadowCircle, nullptr, mWorldMtx, &q, -1, -1, -1, -1, -1, position.y - mObjAcch.GetGroundH()); + return SUCCEEDED; +} + void dAcEsm_c::initializeState_BaseMother() {} void dAcEsm_c::executeState_BaseMother() {} void dAcEsm_c::finalizeState_BaseMother() {} -void dAcEsm_c::initializeState_Wait() {} -void dAcEsm_c::executeState_Wait() {} + +void dAcEsm_c::initializeState_Wait() { + Set_0xBBC(1); +} +void dAcEsm_c::executeState_Wait() { + field_0xBA6 += (s16)(1000.f + field_0xB70 / mScaleTarget.x); +} void dAcEsm_c::finalizeState_Wait() {} -void dAcEsm_c::initializeState_Walk() {} -void dAcEsm_c::executeState_Walk() {} + +void dAcEsm_c::initializeState_Walk() { + if (field_0xBC5 != 2) { + mMdl.setAnm("awa", m3d::PLAY_MODE_4, 4.f); + field_0xBC5 = 0; + mMdl.setFrame(cM::rndF(mMdl.getAnm().getEndFrame() - 1.f)); + } + + mVec3_c endPos; + mStartingPos.CopyTo(mPosCopy1); + mStartingPos.CopyTo(endPos); + + endPos.y += 10.f; + if (dBgS_ObjLinChk::LineCross(&mHomePos1, &endPos, nullptr)) { + mStartingPos.set(position.x, position.y, position.z); + } + + if (mType == SM_YELLOW) { + field_0xBC1 = 60.f + cM::rndF(60.f); + } else { + field_0xBC1 = 30.f + cM::rndF(30.f); + } + + field_0xBB8 = 0; + field_0xB98 = 0; + rotation.x = 0; + + Set_0xBBC(2); + field_0xBAA = angle.y; + field_0xBA8 = 0; + field_0xBCB = 0; + forwardAccel = -3.f; +} +void dAcEsm_c::executeState_Walk() { + field_0xBA6 += (s16)(1000.f + field_0xB70 / mScaleTarget.x); + if (sLib::calcTimer(&field_0xBB6)) { + return; + } + if (fn_187_42C0()) { + return; + } + fn_187_5810(); + mMdl.setRate(1.f); + field_0xBCB = 0; + + if (field_0xB78 == 0.f) { + } else { + } +} void dAcEsm_c::finalizeState_Walk() {} -void dAcEsm_c::initializeState_BirthJump() {} + +void dAcEsm_c::initializeState_BirthJump() { + clearActorProperty(1); + field_0xBA6 = 0; + field_0xB54 = 0.1f; + field_0xB68 = 0.f; + + forwardSpeed = 0.f; + field_0xBB8 = 3; + field_0xB90 = -1; + + if (field_0xBCE == 0 && mTimer_0xBC4 == 0 && mType == SM_YELLOW) { + fn_187_4450(); + } +} void dAcEsm_c::executeState_BirthJump() {} void dAcEsm_c::finalizeState_BirthJump() {} + void dAcEsm_c::initializeState_Shake() {} void dAcEsm_c::executeState_Shake() {} void dAcEsm_c::finalizeState_Shake() {} + void dAcEsm_c::initializeState_Attack() {} void dAcEsm_c::executeState_Attack() {} void dAcEsm_c::finalizeState_Attack() {} + void dAcEsm_c::initializeState_Electrical() {} void dAcEsm_c::executeState_Electrical() {} void dAcEsm_c::finalizeState_Electrical() {} + void dAcEsm_c::initializeState_Absorption() {} -void dAcEsm_c::executeState_Absorption() {} +void dAcEsm_c::executeState_Absorption() { + mMdl.getModel().getResMdl().GetResNode("mouth_ue"); +} void dAcEsm_c::finalizeState_Absorption() {} + void dAcEsm_c::initializeState_Fusion() {} void dAcEsm_c::executeState_Fusion() {} void dAcEsm_c::finalizeState_Fusion() {} + void dAcEsm_c::initializeState_Dead() {} void dAcEsm_c::executeState_Dead() {} void dAcEsm_c::finalizeState_Dead() {} + +// . . . +void dAcEsm_c::fn_187_3F60() { + f32 target = nw4r::math::SinIdx(field_0xBA4) * field_0xB6C; + field_0xBA4 += (s16)(3000.f / mScaleTarget.x); + + sLib::addCalcScaledDiff(&field_0xB5C, field_0xB68, 0.3f, 1.f); + + if (mHealth != 0) { + sLib::addCalcScaledDiff(&field_0xB58, 1.f + target, 0.1f, 3.f); + } else { + sLib::addCalcScaled(&field_0xB58, 0.1f, 3.f); + } + + sLib::addCalcScaledDiff(&field_0xB50, 0.015f + field_0xB54, 0.5f, 0.5f); + sLib::addCalcScaled(&field_0xB70, 0.01f, 1000.0f); + sLib::addCalcScaled(&field_0xB6C, 0.1f, 0.1f); + sLib::addCalcScaled(&field_0xB54, 0.03f, 0.03f); +} + +bool dAcEsm_c::fn_187_4090() { + mVec3_c pos(position.x, position.y + 20.f, position.z); + if (velocity.y <= 0.f && dBgS_ObjGndChk::CheckPos(pos) && dBgS_ObjGndChk::GetGroundHeight() + 5.f > position.y) { + forwardSpeed = 0.f; + field_0xB6C = 1.5f; + if (field_0xB84) { + field_0xB6C = field_0xB84 * 0.1f + 0.7f; + } + field_0xB84 = 0.f; + field_0xBA4 = 0xC180; + field_0xB54 = 0.f; + field_0xB50 = 0.f; + field_0xB70 = 0.f; + + playSound(SE_ESm_LAND); + + if (field_0xBA0 == 0) { + if (fn_800301b0(position, rotation.y, true, 10.f) == 3 /* TODO: Enum?*/) { + int code = dBgS::GetInstance()->GetSpecialCode(dBgS_ObjGndChk::GetInstance()); + if (code != POLY_ATTR_SAND_SHALLOW && code != POLY_ATTR_SAND_MED) { + mHealth = 0; + fn_187_4540(2); + return false; + } + } + } + + return true; + } + return false; +} + +void dAcEsm_c::fn_187_4200() { + if (mType == SM_BLUE || field_0xBCC != 0 | field_0xBA0 != 0) { + return; + } + mVec3_c pos(position.x, position.y + 20.f, position.z); + + if (dBgS_ObjGndChk::CheckPos(pos) && position.y - dBgS_ObjGndChk::GetGroundHeight() >= 700.f) { + if (field_0xBA0 == 0) { + field_0xBA0 = 1; + } + } +} + +bool dAcEsm_c::fn_187_42C0() { + if (sLib::calcTimer(&field_0xBAC)) { + return false; + } + + if (mSph.ChkAtHit() && mSph.GetAtActor()->profile_name == fProfile::PLAYER) { + if (fn_187_4B50()) { + return true; + } + + if (sValueFromPlayer > 30) { + sValueFromPlayer = 0; + } + + if (mHealth != 0 && !fn_187_6B10() && !ChkCrossPlayer(0.f) && !mStateMgr.isState(StateID_Absorption) && + !mStateMgr.isState(StateID_BirthJump)) { + mStateMgr.changeState(StateID_Absorption); + return true; + } + } + + return false; +} + +void dAcEsm_c::fn_187_4450() { + if (mType == SM_YELLOW) { + mSph.OnTgElectric(); + mAnmMatClr.setRate(1.f, 0); + } + mSph.OffAt_0x40(); + mSph.OnAtSet(); +} + +void dAcEsm_c::fn_187_44C0() { + if (mType == SM_YELLOW) { + mSph.ClrTgElectric(); + mAnmMatClr.setRate(0.f, 0); + mAnmMatClr.setFrame(0.f, 0); + } + mSph.OnAt_0x40(); +} + +void dAcEsm_c::fn_187_4540(int param0) { + const dAcPy_c *player = dAcPy_c::GetLink(); + mAng3_c rot = GetAngle(); + + fn_187_44C0(); + if (mStateMgr.isState(StateID_Dead)) { + return; + } + + if ((param0 != 0 && mScaleTarget.x <= 0.25f) || mHealth == 0) { + if (param0 != 0 && param0 != 6 && param0 != 2 && param0 != 7) { + mHealth = 0; + } + + // NOTE: Unused Return Value + mStateMgr.isState(StateID_Absorption); + + fn_187_61B0(0); + mStateMgr.changeState(StateID_Dead); + return; + } + + if (param0 != 0) { + if (mScaleTarget.x == 1.2f) { + mScaleTarget.set(1.6f, 1.6f, 1.6f); + } + mScaleTarget *= 0.5f; + mScale *= 0.5f; + + rot.y = (s16)cLib::targetAngleY(position, player->position) + cM::rndFX(1024.f); + + if (field_0xB98 != 2) { + rot.y = fn_187_5150(false); + } + rot.y = mOrigRotZ; + + mVec3_c spawnPos; + mHitPos.CopyTo(spawnPos); + if (field_0xB98 == 1 || field_0xB98 == 2) { + position.CopyTo(spawnPos); + } + + f32 scale = 0.9999f; + f32 upper = 30.f; + f32 lower = 20.f; + f32 v = 0.f; + f32 lowest = 10.f; + u8 timer = 8; + u8 bce = 1; + u8 bb8 = 0; + f32 f = 16384.f; + + dAcEsm_c *pChild = static_cast( + create(fProfile::E_SM, roomid, (params & ~0xFF) | mType, &spawnPos, &rot, nullptr, 0) + ); + if (pChild == nullptr) { + return; + } + + if (field_0xB98 == 2) { + mVec3_c temp0 = mScaleTarget; + mVec3_c temp1 = mScale; + temp0 *= scale; + temp1 *= scale; + temp0.CopyTo(pChild->mScaleTarget); + temp1.CopyTo(pChild->mScale); + } else { + mScaleTarget.CopyTo(pChild->mScaleTarget); + pChild->mScale.set(mScale.x, mScale.y, mScale.z); + } + pChild->mStartingPos.set(mStartingPos.x, mStartingPos.y, mStartingPos.z); + pChild->mDamageTimer = timer; + pChild->field_0xBB2 = timer; + pChild->field_0xB98 = field_0xB98; + pChild->field_0xBCE = bce; + pChild->mStateMgr.changeState(StateID_BirthJump); + + if (field_0xB98 == 0) { + mAng ang = (f + cM::rndFX(4096.f)); + rot.y -= mAng(ang); + } else { + rot.y = fn_187_51F0(true); + const f32 y = sSmDataArr[field_0xB98].field_0x04.y; + if (y != v) { + pChild->velocity.y = y; + + pChild->velocity.y *= mScaleTarget.y; + if (field_0xB98 != 2) { + if (pChild->velocity.y < lower) { + pChild->velocity.y = lower; + } + } else { + if (pChild->velocity.y < upper) { + pChild->velocity.y = upper; + } + } + } + + pChild->field_0xB84 = pChild->velocity.y; + pChild->forwardSpeed = mScaleTarget.x * sSmDataArr[field_0xB98].field_0x04.x; + if (pChild->forwardSpeed != v && pChild->forwardSpeed < lowest) { + pChild->forwardSpeed = lowest; + } + pChild->field_0xBB8 = bb8; + } + } + + mSph.OnCoSet(); + if (field_0xB98 != 2) { + angle.y = rot.y; + } + if (field_0xB98 != 0) { + field_0xBCE = 1; + mDamageTimer = 8; + field_0xBB2 = 8; + } + fn_187_6C20(1); + if (field_0xB98 != 0) { + if (sSmDataArr[field_0xB98].field_0x10.y) { + velocity.y = sSmDataArr[field_0xB98].field_0x10.y; + velocity.y *= mScaleTarget.y; + if (field_0xB98 != 2) { + if (velocity.y < 20.f) { + velocity.y = 20.f; + } + } else { + if (velocity.y < 30.f) { + velocity.y = 30.f; + } + } + } + + field_0xB84 = velocity.y; + forwardSpeed = sSmDataArr[field_0xB98].field_0x10.y * mScaleTarget.x; + if (forwardSpeed && forwardSpeed < 10.f) { + forwardSpeed = 10.f; + } + field_0xBB8 = 0; + if (field_0xB98 == 2) { + mTimer_0xBC4 = 20; + } + playSound(SE_ESm_JUMP); + } +} + +bool dAcEsm_c::fn_187_4B50() { + if (mStateMgr.isState(StateID_Dead)) { + return false; + } + + if (mBombRef.isLinked()) { + dAcBomb_c *pBomb = mBombRef.get(); + if (pBomb) { + pBomb->On_0xA3C(0x4); + pBomb->Off_0xA3C(0x800000); + mBombRef.unlink(); + } + + if (mStateMgr.isState(StateID_Absorption)) { + fn_187_5730(); + } + mStateMgr.changeState(StateID_Dead); + return true; + } + + return false; +} + +bool dAcEsm_c::fn_187_4C50() { + int attr = dBgS::GetInstance()->GetSpecialCode(mObjAcch.GetGnd()); + + return (attr == POLY_ATTR_LAVA || attr == POLY_ATTR_SAND_DEEP_INSTANT || attr == POLY_ATTR_SAND_DEEP_SLOW); +} + +void dAcEsm_c::Set_0xBBC(u8 val) { + field_0xBBC = val; +} + +void dAcEsm_c::fn_187_4CC0() { + mVec3_c scale = mScale; + if (field_0xBC6 == 1 || field_0xBC6 == 2) { + field_0xB8C = mTimeArea.getDistMaybe(); + scale.multScalar(field_0xB8C); + } + + if (mObjAcch.ChkWallHit(nullptr)) { + sLib::addCalcAngle(angle.y.ref(), mAcchCir.GetWallAngleY(), 4, 0x200); + } + sLib::addCalcAngle(rotation.y.ref(), angle.y, 2, 0x800); + sLib::addCalcAngle(mRotUnk.x.ref(), mTargetRotX, 4, 0x800); + sLib::addCalcAngle(mRotUnk.z.ref(), mTargetRotZ, 4, 0x800); + + mWorldMtx.transS(position.x, position.y, position.z); + mWorldMtx.XrotM(mRotUnk.x); + mWorldMtx.ZrotM(mRotUnk.z); + mWorldMtx.ZXYrotM(rotation.x, rotation.y, rotation.z); + + f32 s = 1.f - 0.2f * field_0xB5C; + f32 z = 150.f * mScaleTarget.x; +#define _WORLD_MTX_TRANS(x, y, z) \ + { \ + const f32 _x = x; \ + const f32 _z = z; \ + const f32 _y = y; \ + mMtx_c m; \ + MTXTrans(m, _x, _y, _z); \ + mWorldMtx += m; \ + } +#define _WORLD_MTX_SCALE(x, y, z) \ + { \ + const f32 _x = x; \ + const f32 _z = z; \ + const f32 _y = y; \ + mMtx_c m; \ + MTXScale(m, _x, _y, _z); \ + mWorldMtx += m; \ + } + + _WORLD_MTX_TRANS(0.f, 0.f, z); + _WORLD_MTX_SCALE(s, s - field_0xB5C, 1.f + field_0xB5C); + _WORLD_MTX_TRANS(0.f, 0.f, -z); + _WORLD_MTX_TRANS(0.f, 0.f, field_0xB48); + _WORLD_MTX_SCALE(scale.y / field_0xB58, scale.x * field_0xB58, scale.y / field_0xB58); + _WORLD_MTX_TRANS(0.f, 0.f, -field_0xB48); + mRotCopy.z = field_0xBA6; + _WORLD_MTX_TRANS(20.f, 0.f, 20.f); + mWorldMtx.ZrotM(mRotCopy.z); + mWorldMtx.XrotM(mRotCopy.z); + _WORLD_MTX_SCALE(1.f - field_0xB50, 1.f + field_0xB50, 1.f - field_0xB50); + mWorldMtx.XrotM(-mRotCopy.z); + mWorldMtx.ZrotM(-mRotCopy.z); + _WORLD_MTX_TRANS(-20.f, -0.f, -20.f); + _WORLD_MTX_TRANS(20.f, 0.f, -20.f); + mWorldMtx.ZrotM(mRotCopy.z); + mWorldMtx.YrotM(mRotCopy.z); + _WORLD_MTX_SCALE(1.f - field_0xB50, 1.f + field_0xB50, 1.f - field_0xB50); + mWorldMtx.YrotM(-mRotCopy.z); + mWorldMtx.ZrotM(-mRotCopy.z); + _WORLD_MTX_TRANS(-20.f, -0.f, 20.f); + _WORLD_MTX_TRANS(-20.f, 0.f, 20.f); + mWorldMtx.ZrotM(mRotCopy.z); + _WORLD_MTX_SCALE(1.f - field_0xB50, 1.f + field_0xB50, 1.f - field_0xB50); + mWorldMtx.ZrotM(-mRotCopy.z); + _WORLD_MTX_TRANS(20.f, -0.f, -20.f); + _WORLD_MTX_TRANS(-20.f, 0.f, -20.f); + mWorldMtx.XrotM(mRotCopy.z); + _WORLD_MTX_SCALE(1.f - field_0xB50, 1.f + field_0xB50, 1.f - field_0xB50); + mWorldMtx.XrotM(-mRotCopy.z); +#undef _WORLD_MTX_TRANS +#undef _WORLD_MTX_SCALE + + mMdl.play(); + mMdl.getModel().setLocalMtx(mWorldMtx); + mMdl.getModel().calc(false); + mWorldMtx.getTranslation(mEffPos); + updateBoundingBox(); +} +// . . . + +bool dAcEsm_c::checkSize(dAcEsm_c::SmSize_e size) const { + bool ret = false; + + switch (size) { + default: + case SM_SMALL: { + if (mScaleTarget.x > 0.4f && mScaleTarget.x <= 0.8f) { + ret = true; + } + } break; + case SM_LARGE: { + if (mScaleTarget.x > 0.25f && mScaleTarget.x <= 0.4f) { + ret = true; + } + } break; + case SM_MASSIVE: { + if (mScaleTarget.x <= 0.25f) { + ret = true; + } + } break; + case SM_TINY: { + if (mScaleTarget.x > 0.8f && mScaleTarget.x <= 1.2f) { + ret = true; + } + } break; + } + return ret; +} + +// . . . +void dAcEsm_c::fn_187_5940() { + mMdl.getModel().getResMdl().GetResNode("center"); +} +void dAcEsm_c::updateBoundingBox() { + f32 min = -200.f / mScale.x; + f32 max = 200.f / mScale.x; + boundingBox.Set(mVec3_c(min, min, min), mVec3_c(max, 250.f / mScale.x, max)); +} + +void dAcEsm_c::fn_187_61B0(u8 param0) { + if (param0 == 0 && field_0xB98 == 0) { + return; + } + + const dAcPy_c *player = dAcPy_c::GetLink(); + + // Yellowish + mColor clr1(0xFF, 0xC8, 0x32, 0xFF); + // Redish + mColor clr2(0xC8, 0x32, 0x00, 0xFF); + + mAng3_c ang(0, 0, 0); + mMtx_c mtx_trans = mWorldMtx; + mVec3_c scale; + + if (mType == SM_BLUE) { + // Blue/purple + clr1 = mColor(0x64, 0x64, 0xFF, 0xFF); + // Purple + clr2 = mColor(0x50, 0x50, 0x96, 0xFF); + } else if (mType == SM_YELLOW) { + // Yellow + clr1 = mColor(0xFF, 0xFF, 0x00, 0xFF); + // Darker Yellow + clr2 = mColor(0x96, 0x96, 0x00, 0xFF); + } else if (mType == SM_GREEN) { + // Light Green + clr1 = mColor(0x00, 0xBE, 0x73, 0xFF); + // Darker Blue-Green + clr2 = mColor(0x00, 0x73, 0x69, 0xFF); + } + + switch (param0) { + case 0: { + mMtx_c mtx_scale; + ang.set(0, 0, 0); + ang.z += player->vt_0x258(); + MTXTrans(mtx_trans, mHitPos.x, mHitPos.y, mHitPos.z); + mtx_trans.YrotM(rotation.y); + mtx_trans.ZYXrotM(ang); + MTXScale(mtx_scale, mScaleTarget.x, mScaleTarget.x, mScaleTarget.x); + + mtx_trans += mtx_scale; + for (int i = 0; i <= 2; ++i) { + dEmitterBase_c *emitter = + dJEffManager_c::spawnEffect(sEmitterResArr[param0 + i], mtx_trans, &clr1, &clr2, 0, 0); + if (emitter == nullptr) { + continue; + } + switch (i) { + case 0: { + if (checkSize(SM_LARGE)) { + emitter->setRate(20.0f); + scale.set(2.f, 2.f, 2.f); + scale *= mScaleTarget.x; + emitter->setParticleScale(scale); + } else if (checkSize(SM_MASSIVE)) { + emitter->setRate(15.0f); + scale.set(2.5f, 2.5f, 2.5f); + scale *= mScaleTarget.x; + emitter->setParticleScale(scale); + } + } break; + case 1: { + if (checkSize(SM_LARGE)) { + scale.set(1.14f, 1.3f, 1.14f); + scale *= mScaleTarget.x; + emitter->setParticleScale(scale); + } else if (checkSize(SM_MASSIVE)) { + scale.set(1.43f, 2.67f, 1.43f); + scale *= mScaleTarget.x; + emitter->setParticleScale(scale); + } + } break; + case 2: { + if (checkSize(SM_LARGE)) { + scale.set(1.12f, 1.12f, 1.12f); + scale *= mScaleTarget.x; + emitter->setParticleScale(scale); + } else if (checkSize(SM_MASSIVE)) { + scale.set(1.22f, 1.22f, 1.22f); + scale *= mScaleTarget.x; + emitter->setParticleScale(scale); + } + } break; + } + } + } break; + case 3: { + mMtx_c mtx_scale; + MTXTrans(mtx_trans, position.x, position.y, position.z); + MTXScale(mtx_scale, mScaleTarget.x, mScaleTarget.y, mScaleTarget.z); + mtx_trans += mtx_scale; + + if (mEffArr[0].createEffect(sEmitterResArr[3], mtx_trans, &clr1, &clr2)) { + if (checkSize(SM_LARGE)) { + mEffArr[0].setRate(12.0f); + scale.set(1.7f, 1.7f, 1.7f); + scale *= mScaleTarget.x; + mEffArr[0].setParticleScale(scale); + } else if (checkSize(SM_MASSIVE)) { + mEffArr[0].setRate(7.0f); + scale.set(2.5f, 2.5f, 2.5f); + scale *= mScaleTarget.x; + mEffArr[0].setParticleScale(scale); + } + } + + } break; + case 4: { + mMtx_c mtx_scale; + MTXTrans(mtx_trans, position.x, position.y, position.z); + mtx_trans.YrotM(rotation.y); + MTXScale(mtx_scale, mScaleTarget.x, mScaleTarget.y, mScaleTarget.z); + mtx_trans += mtx_scale; + dJEffManager_c::spawnEffect(PARTICLE_RESOURCE_ID_MAPPING_280_, mtx_trans, &clr1, &clr2, 0, 0); + + for (int i = 4; i <= 5; ++i) { + dEmitterBase_c *emitter = dJEffManager_c::spawnEffect(sEmitterResArr[i], mtx_trans, &clr1, &clr2, 0, 0); + if (emitter == nullptr) { + continue; + } + switch (i) { + case 4: { + if (checkSize(SM_LARGE)) { + emitter->setRate(5.0f); + scale.set(1.17f, 1.17f, 1.17f); + scale *= mScaleTarget.x; + emitter->setParticleScale(scale); + } else if (checkSize(SM_MASSIVE)) { + emitter->setRate(3.0f); + scale.set(1.25f, 1.25f, 1.25f); + scale *= mScaleTarget.x; + emitter->setParticleScale(scale); + } + } break; + case 5: { + if (checkSize(SM_LARGE)) { + emitter->setRate(20.0f); + scale.set(1.5f, 1.5f, 1.5f); + scale *= mScaleTarget.x; + emitter->setParticleScale(scale); + } else if (checkSize(SM_MASSIVE)) { + emitter->setRate(15.0f); + scale.set(2.f, 2.f, 2.f); + scale *= mScaleTarget.x; + emitter->setParticleScale(scale); + } + } break; + } + } + } break; + case 7: { + mScaleTarget.CopyTo(scale); + if (checkSize(SM_LARGE) || checkSize(SM_MASSIVE)) { + scale *= 2.f; + } + mMtx_c mtx_scale; + MTXTrans(mtx_trans, mHitPos.x, mHitPos.y, mHitPos.z); + mtx_trans.YrotM(rotation.y); + MTXScale(mtx_scale, scale.x, scale.y, scale.z); + mtx_trans += mtx_scale; + dJEffManager_c::spawnEffect(sEmitterResArr[param0], mtx_trans, &clr1, &clr2, 0, 0); + } break; + } + + return; +} + +bool dAcEsm_c::fn_187_6B10() { + const dAcPy_c *player = dAcPy_c::GetLink(); + if (mStateMgr.isState(StateID_Dead)) { + return true; + } + if (fn_187_5AC0() || player->getRidingMinecartActor() || + player->getRidingActorType() == dAcPy_c::RIDING_TRUCK_MINECART || player->isRecovering() || + player->isRidingBall() || player->checkActionFlags(0x1000000) || player->checkActionFlags(0x40)) { + return true; + } + + return false; +} + +void dAcEsm_c::fn_187_6C20(bool param0) { + fn_187_5730(); + if (!param0) { + fn_187_4540(0); + } + + mSph.SetAtFlagsUpper(0); + sTimer = 0; + setInteractionFlags(4); + fn_187_44C0(); + field_0xBAC = 60; + + if (!param0) { + dCamera_c *cam = dScGame_c::getCamera(0); + angle.y = cLib::targetAngleY(cam->getPositionMaybe(), cam->getField_0x78()); + angle.addY(cM::rndFX(16384.f)); + } + + field_0xBCE = 1; + mStateMgr.changeState(StateID_BirthJump); +} + +const u16 dAcEsm_c::sEmitterResArr[8] = {PARTICLE_RESOURCE_ID_MAPPING_283_, PARTICLE_RESOURCE_ID_MAPPING_284_, + PARTICLE_RESOURCE_ID_MAPPING_285_, PARTICLE_RESOURCE_ID_MAPPING_278_, + PARTICLE_RESOURCE_ID_MAPPING_281_, PARTICLE_RESOURCE_ID_MAPPING_282_, + PARTICLE_RESOURCE_ID_MAPPING_280_, PARTICLE_RESOURCE_ID_MAPPING_279_}; + +const dAcEsm_c::SmData_c dAcEsm_c::sSmDataArr[8] = { + { 0, 0, mVec3_c(0.f, 0.f, 0.f), mVec3_c(0.f, 0.f, 0.f)}, + {0x4000, 0xC000, mVec3_c(25.f, 30.f, 0.f), mVec3_c(25.f, 30.f, 0.f)}, + { 0, 0, mVec3_c(0.f, 40.f, 0.f), mVec3_c(0.f, 0.f, 0.f)}, + {0x4000, 0xC000, mVec3_c(20.f, 35.f, 0.f), mVec3_c(10.f, 25.f, 0.f)}, + {0xC000, 0x4000, mVec3_c(20.f, 35.f, 0.f), mVec3_c(10.f, 25.f, 0.f)}, + {0x4000, 0xC000, mVec3_c(20.f, 35.f, 0.f), mVec3_c(10.f, 25.f, 0.f)}, + {0xC000, 0x4000, mVec3_c(20.f, 35.f, 0.f), mVec3_c(10.f, 25.f, 0.f)}, + { 0, 0, mVec3_c(0.f, 40.f, 0.f), mVec3_c(0.f, 0.f, 0.f)}, +}; diff --git a/src/REL/d/a/npc/d_a_npc_saltalk.cpp b/src/REL/d/a/npc/d_a_npc_saltalk.cpp index 1c15362a..3c608b62 100644 --- a/src/REL/d/a/npc/d_a_npc_saltalk.cpp +++ b/src/REL/d/a/npc/d_a_npc_saltalk.cpp @@ -16,12 +16,6 @@ SPECIAL_ACTOR_PROFILE(NPC_SLTK, dAcNpcSltk_c, fProfile::NPC_SLTK, 0x63, 0, 0); STATE_VIRTUAL_DEFINE(dAcNpcSltk_c, Wait); -#pragma explicit_zero_data on -int rot0 = 0; -int rot1 = 0; -int rot2 = 0; -#pragma explicit_zero_data off - int dAcNpcSltk_c::create() { return dAcBase_c::create(); } @@ -50,9 +44,7 @@ int dAcNpcSltk_c::actorCreate() { } } - rotation.x = rot0; - rotation.y = rot1; - rotation.z = rot2; + rotation.set(0, 0, 0); field_0x758 = getParam2() * 100; field_0x75C = getParam3() * 100; diff --git a/src/REL/d/a/obj/d_a_obj_dungeon_ship.cpp b/src/REL/d/a/obj/d_a_obj_dungeon_ship.cpp index 9e16849e..cdd7d2ec 100644 --- a/src/REL/d/a/obj/d_a_obj_dungeon_ship.cpp +++ b/src/REL/d/a/obj/d_a_obj_dungeon_ship.cpp @@ -106,10 +106,6 @@ ok: return true; } -#pragma explicit_zero_data on -static u32 rotX_init = 0; -#pragma explicit_zero_data off - int dAcODungeonShip_c::create() { if (!StoryflagManager::sInstance->getCounterOrFlag(271)) { return FAILED; @@ -158,7 +154,7 @@ int dAcODungeonShip_c::create() { clearActorProperty(0x1); mAppearEventFromParam = (params >> 0x18); field_0x849 = rotation.x; - rotation.x = rotX_init; + rotation.x = 0; updateMatrix(); mBg.Move(); return SUCCEEDED; @@ -171,9 +167,6 @@ int dAcODungeonShip_c::doDelete() { return SUCCEEDED; } -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_682_; -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_683_; - int dAcODungeonShip_c::actorExecute() { field_0x850++; field_0x86C++; @@ -196,7 +189,9 @@ int dAcODungeonShip_c::actorExecute() { mAnmMatClr.play(); mMdl.calc(false); if (field_0x8D8) { - mEffects[0].createContinuousEffect(PARTICLE_RESOURCE_ID_MAPPING_682_, position, &rotation, nullptr, nullptr, nullptr); + mEffects[0].createContinuousEffect( + PARTICLE_RESOURCE_ID_MAPPING_682_, position, &rotation, nullptr, nullptr, nullptr + ); } if (field_0x8D9) { diff --git a/src/REL/d/a/obj/d_a_obj_ivy_rope.cpp b/src/REL/d/a/obj/d_a_obj_ivy_rope.cpp index a0ed45dd..f7b39a39 100644 --- a/src/REL/d/a/obj/d_a_obj_ivy_rope.cpp +++ b/src/REL/d/a/obj/d_a_obj_ivy_rope.cpp @@ -155,7 +155,7 @@ UNKTYPE dAcOivyRope_c::fn_256_4C80(UNKTYPE) {} UNKTYPE dAcOivyRope_c::fn_256_4CA0(UNKTYPE) {} int dAcOivyRope_c::createBase() { - rotation.set(0, 0, 0); + rotation = 0; f32 temp = 2000.f - 750.f; mDistance = 2000.f; mOldDistance = 2000.f; diff --git a/src/REL/d/a/obj/d_a_obj_seat_sword.cpp b/src/REL/d/a/obj/d_a_obj_seat_sword.cpp index a889ad49..61ae95e3 100644 --- a/src/REL/d/a/obj/d_a_obj_seat_sword.cpp +++ b/src/REL/d/a/obj/d_a_obj_seat_sword.cpp @@ -174,7 +174,7 @@ void dAcOSeatSword_c::registerInEvent() { vec.rotY(rotation.y); vec += position; player->setPosRot(vec, ang, 0, 1, 0); - mField_0x7E8 = 0; + mField_0x7E8.set(0); updateSwordMdl(); } } @@ -212,7 +212,6 @@ void dAcOSeatSword_c::initializeState_Get() { void dAcOSeatSword_c::executeState_Get() {} void dAcOSeatSword_c::finalizeState_Get() {} -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_76_; void dAcOSeatSword_c::actorExecuteCommon() { if (checkPlayerHasSword()) { return; diff --git a/src/REL/d/a/obj/d_a_obj_tower_gearD101.cpp b/src/REL/d/a/obj/d_a_obj_tower_gearD101.cpp index eac5d5a1..0a2200b8 100644 --- a/src/REL/d/a/obj/d_a_obj_tower_gearD101.cpp +++ b/src/REL/d/a/obj/d_a_obj_tower_gearD101.cpp @@ -127,7 +127,8 @@ void dAcOTowerGearD101_c::initTransform() { mMdl.setLocalMtx(field_0x3C4); } -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_585_; void dAcOTowerGearD101_c::playVisualEffect() { - mEffects.createContinuousEffect(PARTICLE_RESOURCE_ID_MAPPING_585_, field_0x3F4, &rotation, nullptr, nullptr, nullptr); + mEffects.createContinuousEffect( + PARTICLE_RESOURCE_ID_MAPPING_572_, field_0x3F4, &rotation, nullptr, nullptr, nullptr + ); } diff --git a/src/REL/d/a/obj/d_a_obj_tower_hand_D101.cpp b/src/REL/d/a/obj/d_a_obj_tower_hand_D101.cpp index 2c584c5d..8398f3d0 100644 --- a/src/REL/d/a/obj/d_a_obj_tower_hand_D101.cpp +++ b/src/REL/d/a/obj/d_a_obj_tower_hand_D101.cpp @@ -593,11 +593,10 @@ void dAcOTowerHandD101_c::executeState_RemainOpen() { } void dAcOTowerHandD101_c::finalizeState_RemainOpen() {} -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_573; void dAcOTowerHandD101_c::initializeState_Close() { mMdl.getAnm().setPlayState(m3d::PLAY_MODE_1); mMdl.setRate(getCloseRate()); - mEffects.createEffect(PARTICLE_RESOURCE_ID_MAPPING_573, position, nullptr, nullptr, nullptr, nullptr); + mEffects.createEffect(PARTICLE_RESOURCE_ID_MAPPING_573_, position, nullptr, nullptr, nullptr, nullptr); playSound(0xC0C); } void dAcOTowerHandD101_c::executeState_Close() { diff --git a/src/REL/d/a/obj/d_a_obj_tubo.cpp b/src/REL/d/a/obj/d_a_obj_tubo.cpp index 8b6481de..ec396692 100644 --- a/src/REL/d/a/obj/d_a_obj_tubo.cpp +++ b/src/REL/d/a/obj/d_a_obj_tubo.cpp @@ -40,11 +40,6 @@ void float_ordering() { f32 f[] = {15.f, .4f, .4f, 5.f}; } -#pragma explicit_zero_data on -u8 dAcOtubo_c::sUnk0 = 1; -u32 dAcOtubo_c::sUnk1 = 0; -#pragma explicit_zero_data off - SPECIAL_ACTOR_PROFILE(OBJ_TUBO, dAcOtubo_c, fProfile::OBJ_TUBO, 0x194, 0, 130); STATE_DEFINE(dAcOtubo_c, Wait); @@ -449,7 +444,6 @@ void dAcOtubo_c::finalizeState_Rebirth() { setActorProperty(0x1); } -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_109_, PARTICLE_RESOURCE_ID_MAPPING_209_; extern "C" void fn_80022BE0(void *, const mVec3_c &); void dAcOtubo_c::destroy() { @@ -637,7 +631,7 @@ void dAcOtubo_c::attemptDestroy() { } if (mObjAcch.ChkWallHit(nullptr) && sLib::absDiff(mAcchCir.GetWallAngleY(), angle.y) > mAng::deg2short(70.f)) { - attemptDestroyOnWall(&sUnk1, &sUnk0); + attemptDestroyOnWall(); angle.y = mAcchCir.GetWallAngleY(); forwardSpeed *= 0.5f; return; @@ -681,8 +675,8 @@ void dAcOtubo_c::attemptDestroy() { } } -void dAcOtubo_c::attemptDestroyOnWall(u32 *, const u8 *unk) { - if (*unk && sLib::absDiff(mAcchCir.GetWallAngleY(), angle.y) > mAng::deg2short(70.f) && 15.f < forwardSpeed) { +void dAcOtubo_c::attemptDestroyOnWall(const u32 ¶m0, const bool ¶m1) { + if (param1 && sLib::absDiff(mAcchCir.GetWallAngleY(), angle.y) > mAng::deg2short(70.f) && 15.f < forwardSpeed) { destroy(); } } diff --git a/src/REL/d/a/obj/d_a_obj_tumble_weed.cpp b/src/REL/d/a/obj/d_a_obj_tumble_weed.cpp index 367f48e2..52890a43 100644 --- a/src/REL/d/a/obj/d_a_obj_tumble_weed.cpp +++ b/src/REL/d/a/obj/d_a_obj_tumble_weed.cpp @@ -18,10 +18,11 @@ #include "m/m_vec.h" #include "s/s_Math.h" #include "toBeSorted/blur_and_palette_manager.h" -#include "toBeSorted/dowsing_target.h" #include "toBeSorted/d_emitter.h" +#include "toBeSorted/dowsing_target.h" #include "toBeSorted/small_sound_mgr.h" + void float_ordering() { const f32 arr[] = {5.f, 15.f, 7.f, 0.5f, 0.1f}; } @@ -261,8 +262,6 @@ bool dAcOTumbleWeed_c::checkInvalidGround() const { code == POLY_ATTR_SAND_DEEP_SLOW; } -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_743_; - void dAcOTumbleWeed_c::doBreak() { playSound(SE_TWeed_CUT); mVec3_c pos = getPosition(); diff --git a/src/REL/d/a/obj/d_a_obj_utajima_island.cpp b/src/REL/d/a/obj/d_a_obj_utajima_island.cpp index 6ca9731a..23c2c3b5 100644 --- a/src/REL/d/a/obj/d_a_obj_utajima_island.cpp +++ b/src/REL/d/a/obj/d_a_obj_utajima_island.cpp @@ -48,8 +48,7 @@ int dAcOutajimaIsland_c::actorCreate() { s32 v = getParm2() * 30; field_0x5BC = mAng::fromDeg(v); field_0x5BE.x = field_0x5BC; - field_0x5BE.z = 0x88; - field_0x5BE.y = 0x88; + field_0x5BE.y = field_0x5BE.z = mAng(0x88); movePlatforms(); CREATE_ALLOCATOR(dAcOutajimaIsland_c); diff --git a/src/REL/d/t/d_t_dowsing.cpp b/src/REL/d/t/d_t_dowsing.cpp index fa099174..5700258a 100644 --- a/src/REL/d/t/d_t_dowsing.cpp +++ b/src/REL/d/t/d_t_dowsing.cpp @@ -16,7 +16,7 @@ int dTgDowsing_c::create() { } mUntriggerStoryFlag = getUntriggerStoryFlag(); mTriggerStoryFlag = getTriggerStoryFlag(); - rotation.z = 0; + rotation.z.set(0); bool doThing = getDowsingOptionNum() <= DOWSING_MAX && (1 << getDowsingOptionNum() & 0xC3F) != 0; mDowsingTarget.initialize(!doThing ? DowsingTarget::SLOT_QUEST : DowsingTarget::SLOT_STORY_EVENT, 0, nullptr, 0); diff --git a/src/REL/d/t/d_t_gekotag.cpp b/src/REL/d/t/d_t_gekotag.cpp index ed714cda..a2d54041 100644 --- a/src/REL/d/t/d_t_gekotag.cpp +++ b/src/REL/d/t/d_t_gekotag.cpp @@ -8,12 +8,6 @@ #include "m/m_angle.h" #include "s/s_Math.h" -#pragma explicit_zero_data on -static u32 initialRotX = 0; -static u32 initialRotY = 0; -static u32 initialRotZ = 0; -#pragma explicit_zero_data off - SPECIAL_ACTOR_PROFILE(GEKO_TAG, dTgGekoTag, fProfile::GEKO_TAG, 0xEE, 0, 0); STATE_DEFINE(dTgGekoTag, Wait); @@ -74,7 +68,8 @@ void dTgGekoTag::doExecute() { gekoParmTmp = (gekoParmTmp & 0xFFFF00FF) | (params & 0xFF00); u32 gekoParm = gekoParmTmp | ((mGekoParam != 0 ? 3 : 1) << 16); - mAng3_c gekoRot = mAng3_c(initialRotX, initialRotY, initialRotZ); + mAng3_c gekoRot; + gekoRot.clear(); gekoRot.y = cM::rndF(65535.0f); int numFullGekoRefs = 0; for (int i = 0; i < mNumGeko; i++) { diff --git a/src/REL/d/t/d_t_reaction.cpp b/src/REL/d/t/d_t_reaction.cpp index 7c7849d4..9c55a906 100644 --- a/src/REL/d/t/d_t_reaction.cpp +++ b/src/REL/d/t/d_t_reaction.cpp @@ -14,9 +14,6 @@ SPECIAL_ACTOR_PROFILE(TAG_REACTION, dTgReaction_c, fProfile::TAG_REACTION, 0x0151, 0, 0); STATE_DEFINE(dTgReaction_c, Wait); -#pragma explicit_zero_data on -const u32 fZero = 0; -#pragma explicit_zero_data off const f32 dTgReaction_c::sRadius = 100.0f; const f32 dTgReaction_c::sHeight = 100.0f; @@ -29,10 +26,6 @@ dCcD_SrcCyl dTgReaction_c::sCcSrc = { }; // clang-format on -#pragma explicit_zero_data on -static u32 initialRotX = 0; -#pragma explicit_zero_data off - bool dTgReaction_c::createHeap() { return true; } @@ -55,8 +48,8 @@ int dTgReaction_c::create() { } field_0x4E0 = rotation.x & 0xFF; - angle.x = initialRotX; - rotation.x = angle.x; + rotation.x = angle.x = 0; + if (field_0x4E0 < 0xFF && !SceneflagManager::sInstance->checkBoolFlag(roomid, field_0x4E0)) { return FAILED; } diff --git a/src/REL/d/t/d_t_ship_window.cpp b/src/REL/d/t/d_t_ship_window.cpp index 7b650421..922accf3 100644 --- a/src/REL/d/t/d_t_ship_window.cpp +++ b/src/REL/d/t/d_t_ship_window.cpp @@ -1,28 +1,20 @@ #include "d/t/d_t_ship_window.h" -#include "toBeSorted/event_manager.h" #include "d/flag/sceneflag_manager.h" - +#include "toBeSorted/event_manager.h" SPECIAL_ACTOR_PROFILE(TAG_SHIP_WINDOW, dTgShipWindow_c, fProfile::TAG_SHIP_WINDOW, 0x0228, 0, 0); STATE_DEFINE(dTgShipWindow_c, On); STATE_DEFINE(dTgShipWindow_c, Off); -// sDefaultRotX got placed in .data despite being zero. -// There is a handy pragma for this but it's probably not -// the correct solution. -#pragma explicit_zero_data on -u32 dTgShipWindow_c::sDefaultRotX = 0; -#pragma explicit_zero_data off - int dTgShipWindow_c::create() { mInitialStateFlag = params & 0xFF; mOutputStateFlagBase = (params >> 8) & 0xFF; mOffEventId = (params >> 16) & 0xFF; mOnEventId = (params >> 24) & 0xFF; mAlwaysPlayEvent = rotation.x & 1; - rotation.x = sDefaultRotX; + rotation.x = 0; if (SceneflagManager::sInstance->checkBoolFlag(roomid, mInitialStateFlag)) { SceneflagManager::sInstance->setFlag(roomid, mOutputStateFlagBase); mStateMgr.changeState(StateID_On); @@ -75,8 +67,8 @@ void dTgShipWindow_c::executeState_Off() { } if ((mHasPlayedOffEvent == 0 || mAlwaysPlayEvent == 0) && - (mOutputStateFlagBase >= 0xFF || !SceneflagManager::sInstance->checkBoolFlag(roomid, mOutputStateFlagBase + 1) - )) { + (mOutputStateFlagBase >= 0xFF || + !SceneflagManager::sInstance->checkBoolFlag(roomid, mOutputStateFlagBase + 1))) { if (mOffEventId != 0xFF) { { // this works but I don't like it @@ -115,8 +107,8 @@ void dTgShipWindow_c::executeState_On() { } if ((mHasPlayedOnEvent == 0 || mAlwaysPlayEvent == 0) && - (mOutputStateFlagBase >= 0xFF || !SceneflagManager::sInstance->checkBoolFlag(roomid, mOutputStateFlagBase + 2) - )) { + (mOutputStateFlagBase >= 0xFF || + !SceneflagManager::sInstance->checkBoolFlag(roomid, mOutputStateFlagBase + 2))) { if (mOnEventId != 0xFF) { { // this works but I don't like it diff --git a/src/REL/d/t/d_t_sw_area.cpp b/src/REL/d/t/d_t_sw_area.cpp index 90d96210..52f8c20d 100644 --- a/src/REL/d/t/d_t_sw_area.cpp +++ b/src/REL/d/t/d_t_sw_area.cpp @@ -1,19 +1,12 @@ #include "d/t/d_t_sw_area.h" + #include "d/a/d_a_player.h" -#include "toBeSorted/area_math.h" #include "d/flag/sceneflag_manager.h" #include "d/flag/storyflag_manager.h" +#include "toBeSorted/area_math.h" SPECIAL_ACTOR_PROFILE(SW_AREA_TAG, dTgSwArea_c, fProfile::SW_AREA_TAG, 0x292, 0, 0); -// sDefaultRotX got placed in .data despite being zero. -// There is a handy pragma for this but it's probably not -// the correct solution. -#pragma explicit_zero_data on -u32 dTgSwArea_c::sDefaultRotX = 0; -u32 dTgSwArea_c::sDefaultRotZ = 0; -#pragma explicit_zero_data off - int dTgSwArea_c::create() { setSceneflag = getSetSceneflag(); unsetSceneflag = getUnsetSceneflag(); @@ -21,8 +14,8 @@ int dTgSwArea_c::create() { setStoryflag = getSetStoryflag(); unsetStoryflag = getUnsetStoryflag(); - rotation.x = sDefaultRotX; - rotation.z = sDefaultRotZ; + rotation.x = 0; + rotation.z = 0; matrixCreateFromPosRotYScale(area, position, rotation.y, mScale, nullptr, 0.0f); return SUCCEEDED; diff --git a/src/d/a/d_a_base.cpp b/src/d/a/d_a_base.cpp index 10272512..ecf7193f 100644 --- a/src/d/a/d_a_base.cpp +++ b/src/d/a/d_a_base.cpp @@ -12,8 +12,10 @@ #include "d/d_stage.h" #include "d/flag/enemyflag_manager.h" #include "egg/core/eggAllocator.h" +#include "egg/math/eggMath.h" #include "f/f_base.h" #include "f/f_list_nd.h" +#include "m/m_angle.h" #include "m/m_vec.h" #include "toBeSorted/event.h" #include "toBeSorted/event_manager.h" @@ -359,13 +361,15 @@ dAcBase_c *dAcBase_c::findActor(char *objName, dAcBase_c *parent) { // searches for actor based on groupType // 8002d0a0 FORCE_INLINE dAcBase_c *findActor(dAcBase_c *parent) { + dAcBase_c *foundActor; if (!parent) { - return (dAcBase_c *)fManager_c::searchBaseByGroupType(2, nullptr); + foundActor = (dAcBase_c *)fManager_c::searchBaseByGroupType(dBase_c::ACTOR, nullptr); + } else if (parent->group_type == 2) { + foundActor = (dAcBase_c *)fManager_c::searchBaseByGroupType(dBase_c::ACTOR, parent); + } else { + foundActor = nullptr; } - if (parent->group_type == 2) { - return (dAcBase_c *)fManager_c::searchBaseByGroupType(2, parent); - } - return nullptr; + return foundActor; } // control flow sucks ;-; @@ -374,11 +378,7 @@ FORCE_INLINE dAcBase_c *findActor(dAcBase_c *parent) { dAcBase_c *dAcBase_c::searchActor(dAcBase_c *parent) { dAcBase_c *foundActor = ::findActor(parent); - if (!foundActor) { - return (dAcBase_c *)fManager_c::searchBaseByGroupType(STAGE, parent); - } - - return foundActor; + return foundActor ? foundActor : (dAcBase_c *)fManager_c::searchBaseByGroupType(STAGE, parent); } // 8002d130 @@ -420,22 +420,21 @@ bool dAcBase_c::getDistanceToActor(dAcBase_c *actor, f32 distThresh, f32 *outDis bool dAcBase_c::getDistanceAndAngleToActor( dAcBase_c *actor, f32 distThresh, s16 yAngle, s16 xAngle, f32 *outDist, s16 *outDiffAngleY, s16 *outDiffAngleX ) { - f32 distSquared = 3.402823e+38f; - s32 angleToActorY, angleToActorX; + f32 distSquared = EGG::Math::epsilon(); bool isWithinRange = false; - angleToActorY = 0; - angleToActorX = 0; + mAng angleToActorY(0), angleToActorX(0); if (actor != nullptr) { distSquared = PSVECSquareDistance(position, actor->position); - angleToActorY = cLib::targetAngleY(position, actor->position); - angleToActorX = cLib::targetAngleX(position, actor->position); + angleToActorY.set(cLib::targetAngleY(position, actor->position)); + angleToActorX.set(cLib::targetAngleX(position, actor->position)); - // These casts are nuts wild ^^' - if ((distSquared <= distThresh * distThresh) && (labs(s16(rotation.y.mVal - (s16)angleToActorY)) <= yAngle) && - (labs(s16(rotation.x.mVal - (s16)angleToActorX)) <= xAngle)) { - isWithinRange = true; + if ((distSquared <= distThresh * distThresh)) { + if ((labs(mAng(rotation.y.diff(angleToActorY))) <= yAngle) && + (labs(mAng(rotation.x.diff(angleToActorX))) <= xAngle)) { + isWithinRange = true; + } } } @@ -513,7 +512,7 @@ void dAcBase_c::FUN_8002d7d0() {} void dAcBase_c::FUN_8002d7f0() {} void dAcBase_c::FUN_8002d810() {} void dAcBase_c::FUN_8002d830() {} -void dAcBase_c::FUN_8002d860() {} +void dAcBase_c::FUN_8002d860(UNKWORD) {} // 8002d880 SoundSource *dAcBase_c::getSoundSource() { diff --git a/src/d/a/d_a_insect.cpp b/src/d/a/d_a_insect.cpp index 2c18e1ed..db7c66fb 100644 --- a/src/d/a/d_a_insect.cpp +++ b/src/d/a/d_a_insect.cpp @@ -17,8 +17,6 @@ #include "toBeSorted/d_emitter.h" #include "toBeSorted/small_sound_mgr.h" -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_394_; - void dAcOInsect_c::kill() { dJEffManager_c::spawnEffect(PARTICLE_RESOURCE_ID_MAPPING_394_, position, nullptr, nullptr, nullptr, nullptr, 0, 0); playSound(SE_Insect_DISAPPEAR); diff --git a/src/d/a/obj/d_a_obj_switch.cpp b/src/d/a/obj/d_a_obj_switch.cpp index 3bedebf6..f8145bbe 100644 --- a/src/d/a/obj/d_a_obj_switch.cpp +++ b/src/d/a/obj/d_a_obj_switch.cpp @@ -145,8 +145,6 @@ int dAcOsw_c::doDelete() { return SUCCEEDED; } -extern "C" u16 PARTICLE_RESOURCE_ID_MAPPING_754_; - int dAcOsw_c::actorExecute() { mStateMgr.executeState(); if (mCanBeSeen) { @@ -154,7 +152,9 @@ int dAcOsw_c::actorExecute() { if (field_0x5A0.field_0x00 <= 0.0f) { if (mScale.x >= 1.0f) { if (!mHidden) { - dJEffManager_c::spawnEffect(PARTICLE_RESOURCE_ID_MAPPING_754_, position, &rotation, nullptr, nullptr, nullptr, 0, 0); + dJEffManager_c::spawnEffect( + PARTICLE_RESOURCE_ID_MAPPING_754_, position, &rotation, nullptr, nullptr, nullptr, 0, 0 + ); playSound(SE_TIMESLIP_TIMESLIP_REV); mHidden = true; } @@ -167,7 +167,9 @@ int dAcOsw_c::actorExecute() { } else { if (mScale.x <= 0.0f) { if (!mShown) { - dJEffManager_c::spawnEffect(PARTICLE_RESOURCE_ID_MAPPING_754_, position, &rotation, nullptr, nullptr, nullptr, 0, 0); + dJEffManager_c::spawnEffect( + PARTICLE_RESOURCE_ID_MAPPING_754_, position, &rotation, nullptr, nullptr, nullptr, 0, 0 + ); playSound(SE_TIMESLIP_TIMESLIP); mShown = true; } diff --git a/src/d/a/obj/d_a_obj_tbox.cpp b/src/d/a/obj/d_a_obj_tbox.cpp index 111ea6bf..6f63a834 100644 --- a/src/d/a/obj/d_a_obj_tbox.cpp +++ b/src/d/a/obj/d_a_obj_tbox.cpp @@ -17,6 +17,7 @@ #include "d/flag/sceneflag_manager.h" #include "d/flag/storyflag_manager.h" #include "d/flag/tboxflag_manager.h" +#include "d/t/d_t_siren.h" #include "m/m3d/m_fanm.h" #include "m/m3d/m_scnleaf.h" #include "m/m_mtx.h" @@ -785,13 +786,9 @@ f32 dAcTbox_c::getSomeRate() { bool dAcTbox_c::isValidGroupIndex(int idx) { return 0 <= idx && idx < 15; } -extern "C" void *SIREN_TAG; -extern "C" bool hasCollectedAllTears(void *SIREN_TAG); + bool dAcTbox_c::hasCollectedAllTears() { - if (SIREN_TAG == nullptr) { - return false; - } - return ::hasCollectedAllTears(SIREN_TAG); + return dTgSiren_c::hasCollectedAllTears(); } bool dAcTbox_c::getGroundHeight(f32 *height, const mVec3_c &pos) { @@ -945,9 +942,7 @@ bool dAcTbox_c::createHeap() { fn_8026B380(fxPos); mMtx_c fxTransform; fxTransform.transS(fxPos); - // TODO address calculations here, otherwise this function - // matches surprisingly well - fxTransform.ZXYrotM(rotation.x, rotation.y, rotation.z); + fxTransform.ZXYrotM(GetRotation()); mOpenFxMdl.setLocalMtx(fxTransform); mOpenFxMdl.setScale(fn_8026B3C0()); } @@ -988,8 +983,8 @@ int dAcTbox_c::create() { case 3: field_0x120A = 3; break; default: field_0x120A = 3; break; } - rotation.z = 0; - rotation.x = 0; + rotation.z.set(0); + rotation.x.set(0); // This part of the code checks if there's another chest with similar properties // and only keeps one of them. @@ -1102,7 +1097,6 @@ int dAcTbox_c::create() { field_0x0D48.addCc(mCcD2, s4); } field_0x0D48.SetStts(mStts); - // TODO figure out the right fields mCcD1.SetTg_0x4C(-1); mCcD2.SetTg_0x4C(-1); mMdl1.setAnm(sAnmNames[mVariant], m3d::PLAY_MODE_4); @@ -1151,14 +1145,13 @@ int dAcTbox_c::create() { field_0x11EC = 1.0f; field_0x11FC = 0; - field_0x4E8.r = 0; - field_0x4E8.g = 0; - field_0x4E8.b = 0; + mLightInfo.mClr.r = 0; + mLightInfo.mClr.g = 0; + mLightInfo.mClr.b = 0; - field_0x4EC = 0.0f; - field_0x4DC.x = position.x; - field_0x4DC.z = position.z; - field_0x4DC.y = position.y + 100.0f; + mLightInfo.SetScale(0.f); + mLightInfo.SetPosition(position); + mLightInfo.mPos.y += 100.0f; return SUCCEEDED; } @@ -1933,7 +1926,6 @@ void dAcTbox_c::executeState_LoadArchive() { } void dAcTbox_c::finalizeState_LoadArchive() {} -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_209_; extern "C" const bool isPouchItem(u16); extern "C" dAcItem_c *giveItem3(u16 item, s32); @@ -2239,22 +2231,22 @@ void dAcTbox_c::unsetShouldCloseFlag() { void dAcTbox_c::fn_8026D370() { if (isNotSmall()) { field_0x11F0 = 1; - BlurAndPaletteManager::GetInstance().fn_800223A0(&field_0x4DC); + BlurAndPaletteManager::GetInstance().fn_800223A0(&mLightInfo); } } void dAcTbox_c::fn_8026D3C0() { if (mAnmChr.isStop() && mAnmTexSrt1.isStop(0) && mAnmMatClr2.isStop(0)) { field_0x11F0 = 0; - BlurAndPaletteManager::GetInstance().fn_80022440(&field_0x4DC); + BlurAndPaletteManager::GetInstance().fn_80022440(&mLightInfo); } else { mAnmChr.play(); mAnmTexSrt1.play(); mAnmMatClr2.play(); - field_0x4E8.r = 0xAA; - field_0x4E8.g = 0x96; - field_0x4E8.b = 0x96; - field_0x4EC = 125.0f; + mLightInfo.mClr.r = 0xAA; + mLightInfo.mClr.g = 0x96; + mLightInfo.mClr.b = 0x96; + mLightInfo.SetScale(125.0f); } } @@ -2373,10 +2365,10 @@ void dAcTbox_c::unregisterDowsing() { } } -extern "C" u16 PARTICLE_RESOURCE_ID_MAPPING_208_; - void dAcTbox_c::spawnAppearEffect() { - dJEffManager_c::spawnEffect(PARTICLE_RESOURCE_ID_MAPPING_208_, position, &rotation, nullptr, nullptr, nullptr, 0, 0); + dJEffManager_c::spawnEffect( + PARTICLE_RESOURCE_ID_MAPPING_208_, position, &rotation, nullptr, nullptr, nullptr, 0, 0 + ); } bool dAcTbox_c::checkIsClear() const { @@ -2393,17 +2385,26 @@ bool dAcTbox_c::checkIsClear() const { mVec3_c(-50.0f, 500.0f, -50.0f), }; mVec3_c points[4]; + + mVec3_c *offs = offsets; + mVec3_c *pnt = points; for (u32 i = 0; i <= 3; i++) { - fn_8026DAD0(&offsets[i], &points[i]); + fn_8026DAD0(offs, pnt); + offs++; + pnt++; } static const int fsIdxes[] = {0, 0, 1, 1}; + bool isClear = true; - for (u32 i = 0; isClear && i <= 3;) { + u32 i = 0; + const int *idx = fsIdxes; + while (isClear && i <= 3) { // @bug should this be points[i] instead? - if (isBelowGroundAtPos(fs[fsIdxes[i]], points[0])) { + if (isBelowGroundAtPos(fs[*idx], points[0])) { isClear = false; } else { i++; + idx++; } } diff --git a/src/d/a/obj/d_a_obj_water_spout.cpp b/src/d/a/obj/d_a_obj_water_spout.cpp index b86b6f09..06dab84c 100644 --- a/src/d/a/obj/d_a_obj_water_spout.cpp +++ b/src/d/a/obj/d_a_obj_water_spout.cpp @@ -60,8 +60,6 @@ int dAcOwaterSpout_c::draw() { return SUCCEEDED; } -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_213_; - void dAcOwaterSpout_c::initializeState_Wait() { if (params == 1) { return; diff --git a/src/d/col/c/c_m3d_g_pla.cpp b/src/d/col/c/c_m3d_g_pla.cpp index 77baea9d..9a447434 100644 --- a/src/d/col/c/c_m3d_g_pla.cpp +++ b/src/d/col/c/c_m3d_g_pla.cpp @@ -30,10 +30,7 @@ bool cM3dGPla::getCrossYLessD(const mVec3_c &point, f32 *out) const { mAng cM3dGPla::GetAngle(mAng ang) const { mAng angleY = GetAngleY(); - - angleY = angleY - ang; - - return cM::atan2s(GetXZDist() * angleY.cos(), mNormal.y); + return cM::atan2s(GetXZDist() * mAng(angleY - ang).cos(), mNormal.y); } mAng cM3dGPla::GetNegativeAngle(mAng ang) const { diff --git a/src/d/d_cs_base.cpp b/src/d/d_cs_base.cpp index fbd75427..8e2609ce 100644 --- a/src/d/d_cs_base.cpp +++ b/src/d/d_cs_base.cpp @@ -9,8 +9,16 @@ SPECIAL_BASE_PROFILE(C_BASE, dCsBase_c, fProfile::C_BASE, 0x2C0, 0x06F9); dCsBase_c::dCsBase_c() - : mpCurrLyt(nullptr), field_0x6F0(0.0f), field_0x6F4(0.0f), field_0x6F8(0.0f), field_0x6FC(0.0f), field_0x700(0), - field_0x702(0), field_0x703(0), field_0x704(0), field_0x705(0) { + : mpCurrLyt(nullptr), + field_0x6F0(0.0f), + field_0x6F4(0.0f), + field_0x6F8(0.0f), + field_0x6FC(0.0f), + field_0x700(0), + field_0x702(0), + field_0x703(0), + field_0x704(0), + field_0x705(0) { sInstance = this; } @@ -28,10 +36,6 @@ static const char *sLytNames[] = { "P1_Cat.brlyt", }; -#pragma explicit_zero_data on -int dCsBase_c::sfield0x700Init = 0; -#pragma explicit_zero_data off - int dCsBase_c::create() { void *data = LayoutArcManager::GetInstance()->getLoadedData("cursor"); mResAcc.attach(data, "arc"); @@ -51,7 +55,7 @@ int dCsBase_c::create() { field_0x6F8 = 0.0f; field_0x6FC = 0.0f; - field_0x700 = sfield0x700Init; + field_0x700 = 0; field_0x702 = 0; field_0x703 = 0; diff --git a/src/d/lyt/meter/d_lyt_meter_dowsing.cpp b/src/d/lyt/meter/d_lyt_meter_dowsing.cpp index f7850755..ca57a874 100644 --- a/src/d/lyt/meter/d_lyt_meter_dowsing.cpp +++ b/src/d/lyt/meter/d_lyt_meter_dowsing.cpp @@ -14,8 +14,8 @@ #include "nw4r/lyt/lyt_group.h" #include "nw4r/math/math_types.h" #include "sized_string.h" -#include "toBeSorted/dowsing_target.h" #include "toBeSorted/d_emitter.h" +#include "toBeSorted/dowsing_target.h" #include "toBeSorted/file_manager.h" #include "toBeSorted/small_sound_mgr.h" @@ -395,16 +395,14 @@ void dLytMeterDowsing_c::executeState_Wait() { mStateMgr.changeState(StateID_DemoMove); } else if (field_0x5505 != 0) { mStateMgr.changeState(StateID_MenuSelectingIn); - } else if (field_0x550A != 0 && - (!dLytMeter_c::GetMain()->fn_800D5380(0) || dLytMeter_c::GetMain()->fn_800D5650() || - dLytMeter_c::GetMain()->fn_800D5680())) { + } else if (field_0x550A != 0 && (!dLytMeter_c::GetMain()->fn_800D5380(0) || dLytMeter_c::GetMain()->fn_800D5650() || + dLytMeter_c::GetMain()->fn_800D5680())) { mStateMgr.changeState(StateID_Reset); } else if (!dLytMeter_c::GetInstance()->checkAllFlags(METER_BTN_C)) { mStateMgr.changeState(StateID_ToUnuse); } else if (dLytMeter_c::GetInstance()->getMeterField_0x1377F() != 0 && field_0x550A == 0 && dLytMeter_c::GetMain()->fn_800D5380(0) && !dLytMeter_c::GetMain()->fn_800D5650() && - !dLytMeter_c::GetMain()->fn_800D5680() && - getSelectedDowsingSlot() != DowsingTarget::SLOT_LOOK && + !dLytMeter_c::GetMain()->fn_800D5680() && getSelectedDowsingSlot() != DowsingTarget::SLOT_LOOK && getSelectedDowsingSlot() != DowsingTarget::SLOT_NONE && LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == 0x52) { mAnm[DOWSING_ANIM_IN].setBackwardsOnce(); @@ -553,9 +551,8 @@ void dLytMeterDowsing_c::initializeState_ToUse() { mAnm[DOWSING_ANIM_INPUT_0].setAnimEnable(true); if (FileManager::GetInstance()->getDowsingSlotIdx() != 8 && - LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == 0x52 && - dLytMeter_c::GetMain()->fn_800D5380(0) && !dLytMeter_c::GetMain()->fn_800D5650() && - !dLytMeter_c::GetMain()->fn_800D5680()) { + LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == 0x52 && dLytMeter_c::GetMain()->fn_800D5380(0) && + !dLytMeter_c::GetMain()->fn_800D5650() && !dLytMeter_c::GetMain()->fn_800D5680()) { mAnm[DOWSING_ANIM_RESET].setAnimEnable(true); mAnm[DOWSING_ANIM_RESET].setBackwardsOnce(); mAnm[DOWSING_ANIM_RESET].setToStart(); @@ -563,9 +560,8 @@ void dLytMeterDowsing_c::initializeState_ToUse() { } void dLytMeterDowsing_c::executeState_ToUse() { if (FileManager::GetInstance()->getDowsingSlotIdx() != 8 && - LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == 0x52 && - dLytMeter_c::GetMain()->fn_800D5380(0) && !dLytMeter_c::GetMain()->fn_800D5650() && - !dLytMeter_c::GetMain()->fn_800D5680()) { + LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == 0x52 && dLytMeter_c::GetMain()->fn_800D5380(0) && + !dLytMeter_c::GetMain()->fn_800D5650() && !dLytMeter_c::GetMain()->fn_800D5680()) { if (mAnm[DOWSING_ANIM_INPUT_0].isStop2()) { if (!mAnm[DOWSING_ANIM_RESET].isEnabled() || mAnm[DOWSING_ANIM_RESET].isStop2()) { mStateMgr.changeState(StateID_Wait); @@ -598,9 +594,8 @@ void dLytMeterDowsing_c::initializeState_ToUnuse() { mAnm[DOWSING_ANIM_INPUT_0].setAnimEnable(true); if (FileManager::GetInstance()->getDowsingSlotIdx() != 8 && - LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == 0x52 && - dLytMeter_c::GetMain()->fn_800D5380(0) && !dLytMeter_c::GetMain()->fn_800D5650() && - !dLytMeter_c::GetMain()->fn_800D5680()) { + LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == 0x52 && dLytMeter_c::GetMain()->fn_800D5380(0) && + !dLytMeter_c::GetMain()->fn_800D5650() && !dLytMeter_c::GetMain()->fn_800D5680()) { mAnm[DOWSING_ANIM_RESET].setAnimEnable(true); mAnm[DOWSING_ANIM_RESET].setForwardOnce(); mAnm[DOWSING_ANIM_RESET].setToStart(); @@ -636,8 +631,7 @@ void dLytMeterDowsing_c::executeState_Unuse() { mLyt.calc(); mAnm[DOWSING_ANIM_INPUT_0].setAnimEnable(false); mStateMgr.changeState(StateID_DemoMove); - } else if (!dLytMeter_c::GetMain()->fn_800D5680() && - dLytMeter_c::GetInstance()->getMeterField_0x13774() == 0 && + } else if (!dLytMeter_c::GetMain()->fn_800D5680() && dLytMeter_c::GetInstance()->getMeterField_0x13774() == 0 && dLytMeter_c::GetInstance()->checkAllFlags(METER_BTN_C)) { if (field_0x54D8 <= 0) { mStateMgr.changeState(StateID_ToUse); @@ -707,7 +701,7 @@ void dLytMeterDowsing_c::initializeState_DemoMove() { mAnm[i + DOWSING_ANIM_ITEM_ONOFF_OFFSET].setAnimEnable(false); } } -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_970_; + void dLytMeterDowsing_c::executeState_DemoMove() { mDemoFrame++; if (mDemoFrame == 15) { @@ -1015,8 +1009,7 @@ bool dLytMeterDowsing_c::execute() { } if (mAnm[DOWSING_ANIM_CALL].isEnabled()) { mAnm[DOWSING_ANIM_CALL].play(); - if (dLytMeter_c::GetInstance()->checkAllFlags(METER_BTN_C) && - mAnm[DOWSING_ANIM_CALL].getFrame() == 1.0f) { + if (dLytMeter_c::GetInstance()->checkAllFlags(METER_BTN_C) && mAnm[DOWSING_ANIM_CALL].getFrame() == 1.0f) { SmallSoundManager::GetInstance()->playSound(SE_S_C_BUTTON_BLINK); } } @@ -1119,9 +1112,8 @@ void dLytMeterDowsing_c::fn_800FE110() { void dLytMeterDowsing_c::fn_800FE220() { if (getSelectedDowsingSlot() != DowsingTarget::SLOT_NONE && - LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == 0x52 && - dLytMeter_c::GetMain()->fn_800D5380(0) && !dLytMeter_c::GetMain()->fn_800D5650() && - !dLytMeter_c::GetMain()->fn_800D5680()) { + LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_C) == 0x52 && dLytMeter_c::GetMain()->fn_800D5380(0) && + !dLytMeter_c::GetMain()->fn_800D5650() && !dLytMeter_c::GetMain()->fn_800D5680()) { mAnm[DOWSING_ANIM_RESET].setAnimEnable(true); mAnm[DOWSING_ANIM_RESET].setForwardOnce(); mAnm[DOWSING_ANIM_RESET].setToStart(); diff --git a/src/d/lyt/meter/d_lyt_meter_heart.cpp b/src/d/lyt/meter/d_lyt_meter_heart.cpp index 7ee24c48..96b685c2 100644 --- a/src/d/lyt/meter/d_lyt_meter_heart.cpp +++ b/src/d/lyt/meter/d_lyt_meter_heart.cpp @@ -282,7 +282,7 @@ void dLytMeterHeart_c::realizeHeartsState() { } } } -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_972_; + void dLytMeterHeart_c::executeInternal() { if (mEffectHeartIdx >= 0) { nw4r::math::MTX34 mtx = mpHeartPanes[mEffectHeartIdx]->GetGlobalMtx(); diff --git a/src/d/lyt/meter/d_lyt_meter_item_select.cpp b/src/d/lyt/meter/d_lyt_meter_item_select.cpp index 7055a566..701d7649 100644 --- a/src/d/lyt/meter/d_lyt_meter_item_select.cpp +++ b/src/d/lyt/meter/d_lyt_meter_item_select.cpp @@ -1393,7 +1393,7 @@ void dLytMeterItemSelect_c::initializeState_DemoMove() { SmallSoundManager::GetInstance()->playSound(SE_S_GET_ITEM_SET); } -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_740_; + void dLytMeterItemSelect_c::executeState_DemoMove() { mDemoMoveTimer++; if (mDemoMoveTimer == 15) { @@ -1410,7 +1410,9 @@ void dLytMeterItemSelect_c::executeState_DemoMove() { nw4r::math::MTX34 mtx = mpPanes[i + ITEM_SELECT_PANE_ICON_OFFSET]->GetGlobalMtx(); mVec3_c pos(mtx._03, mtx._13, 0.0f); - dJEffManager_c::spawnUIEffect(PARTICLE_RESOURCE_ID_MAPPING_740_, pos, nullptr, nullptr, nullptr, nullptr); + dJEffManager_c::spawnUIEffect( + PARTICLE_RESOURCE_ID_MAPPING_740_, pos, nullptr, nullptr, nullptr, nullptr + ); if (mIsBocoburinLocked[i]) { mIsBocoburinLocked[i] = false; @@ -2237,7 +2239,6 @@ bool dLytMeterItemSelect_c::execute() { return true; } -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_717_; void dLytMeterItemSelect_c::fn_800EF580() { nw4r::math::MTX34 mtx = mpPanes[11]->GetGlobalMtx(); mVec3_c pos(mtx._03, mtx._13, 0.0f); @@ -2481,8 +2482,7 @@ bool dLytMeterItemSelect_c::fn_800F0030() const { if (!StoryflagManager::sInstance->getCounterOrFlag(58) && !(EventManager::isInEvent() && EventManager::isCurrentEvent("ItemGetGorgeous")) || (mpOwnerPane == nullptr || !mpOwnerPane->IsVisible() || dLytMeter_c::GetMain()->fn_800D5650() || - dLytMeter_c::GetMain()->fn_800D5680() || - !dLytMeter_c::GetMain()->getItemSelectNotHiddenByAreaCaption())) { + dLytMeter_c::GetMain()->fn_800D5680() || !dLytMeter_c::GetMain()->getItemSelectNotHiddenByAreaCaption())) { // If we don't have a B-Wheel and we're not currently in the ItemGetGorgeous event, // or (random other conditions), return false return false; diff --git a/src/d/lyt/meter/d_lyt_meter_minus_btn.cpp b/src/d/lyt/meter/d_lyt_meter_minus_btn.cpp index b1f600fd..9b3147dd 100644 --- a/src/d/lyt/meter/d_lyt_meter_minus_btn.cpp +++ b/src/d/lyt/meter/d_lyt_meter_minus_btn.cpp @@ -7,6 +7,7 @@ #include "d/lyt/d_lyt_control_game.h" #include "d/lyt/d_lyt_util_items.h" #include "d/lyt/meter/d_lyt_meter.h" +#include "m/m_angle.h" #include "nw4r/lyt/lyt_group.h" #include "nw4r/math/math_types.h" #include "sized_string.h" @@ -520,7 +521,7 @@ void dLytMeterMinusBtn_c::executeState_Unuse() { } } void dLytMeterMinusBtn_c::finalizeState_Unuse() {} -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_971_; + void dLytMeterMinusBtn_c::initializeState_DemoMove() { mDemoFrame = 0; mSlotToDemo = -1; @@ -767,7 +768,7 @@ bool dLytMeterMinusBtn_c::build(d2d::ResAccIf_c *resAcc) { } for (s32 i = 0; i < 4; i++) { - mEffectsRot[i].setR(0); + mEffectsRot[i] = 0; mSlotForEffect[i] = -1; mEffects[i].init(dLytControlGame_c::getInstance()); } @@ -1004,7 +1005,7 @@ bool dLytMeterMinusBtn_c::demoRelated(s32 arg) { field_0x4E8C = arg; mDemoFrame = 0; for (s32 i = 0; i < 4; i++) { - mEffectsRot[i].setR(0); + mEffectsRot[i].set(0); mSlotForEffect[i] = -1; } mArrowRotation = 0.0f; @@ -1038,8 +1039,7 @@ bool dLytMeterMinusBtn_c::fn_800F7600() const { bool dLytMeterMinusBtn_c::fn_800F7760() const { if (!StoryflagManager::sInstance->getCounterOrFlag(30) || (mpOwnerPane == nullptr || !mpOwnerPane->IsVisible() || dLytMeter_c::GetMain()->fn_800D5650() || - dLytMeter_c::GetMain()->fn_800D5680() || - !dLytMeter_c::GetMain()->getMinusBtnNotHiddenByAreaCaption())) { + dLytMeter_c::GetMain()->fn_800D5680() || !dLytMeter_c::GetMain()->getMinusBtnNotHiddenByAreaCaption())) { return false; } diff --git a/src/d/lyt/meter/d_lyt_meter_timer.cpp b/src/d/lyt/meter/d_lyt_meter_timer.cpp index 085479cf..8362c7f7 100644 --- a/src/d/lyt/meter/d_lyt_meter_timer.cpp +++ b/src/d/lyt/meter/d_lyt_meter_timer.cpp @@ -382,9 +382,6 @@ void LytMeterTimerPart1_c::initColors() { } } -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_135_; -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_136_; -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_137_; void LytMeterTimerPart1_c::createEffect(s32 fruitIndex) { nw4r::math::MTX34 mtx = mpPanes[fruitIndex]->GetGlobalMtx(); mVec3_c pos; @@ -993,7 +990,6 @@ void LytMeterTimerPart2_c::initColors() { } } -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_174_; void LytMeterTimerPart2_c::createSingleFruitEffect() { nw4r::math::MTX34 mtx = mpPane->GetGlobalMtx(); mVec3_c pos; @@ -1005,7 +1001,7 @@ void LytMeterTimerPart2_c::createSingleFruitEffect() { &mColors2[TIMER_02_COLOR_01_00] ); } -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_206_; + void LytMeterTimerPart2_c::createFruitCompleteEffect() { nw4r::math::MTX34 mtx = mpPane->GetGlobalMtx(); mVec3_c pos; diff --git a/src/m/m_angle.cpp b/src/m/m_angle.cpp index fe53b0c1..ab60e415 100644 --- a/src/m/m_angle.cpp +++ b/src/m/m_angle.cpp @@ -3,7 +3,7 @@ #include "math.h" /** 80575c08 */ -mAng3_c mAng3_c::Zero = mAng3_c(0, 0, 0); +mAng3_c mAng3_c::Zero(0, 0, 0); const f32 mAng::sHalfCircleDeg = 360.0f / 2; const f32 mAng::sAngToDeg = 360.0f / (1 << 16); diff --git a/src/toBeSorted/attention.cpp b/src/toBeSorted/attention.cpp index 69492d38..d7b17d1f 100644 --- a/src/toBeSorted/attention.cpp +++ b/src/toBeSorted/attention.cpp @@ -418,8 +418,8 @@ void AttentionGroup::fn_800964B0() { extern "C" f32 lbl_8057CD9C; f32 AttentionManager::targetScore(dAcObjBase_c *target, dAcObjBase_c *origin) { - s32 angle = cLib::targetAngleY(target->position, origin->position); - f32 viewAngle = fabsf(lbl_8057CD9C * (s16)(angle - origin->rotation.y.mVal)); + s16 angle = cLib::targetAngleY(target->position, origin->position) - origin->rotation.y.mVal; + f32 viewAngle = fabsf(angle * lbl_8057CD9C); if (viewAngle > 0.5f) { return viewAngle; } diff --git a/src/toBeSorted/d_emitter.cpp b/src/toBeSorted/d_emitter.cpp index e003f3e3..f4d133ee 100644 --- a/src/toBeSorted/d_emitter.cpp +++ b/src/toBeSorted/d_emitter.cpp @@ -701,7 +701,6 @@ void dMassObjEmitter_c::remove() { } extern "C" u32 sNumMassObjEmitters; // should be const? -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_119_; extern "C" dMassObjEmitter_c *CURRENT_EFFECT_MANAGER_INIT; const u32 dJEffManager_c::moreInts[] = {3, 5, 7, 8, 12, 13, 14, 1, 9, 11}; @@ -1206,18 +1205,6 @@ s32 dJEffManager_c::polyAttrsToGroundEffectIdx(s32 polyAttr0, s32 polyAttr1) { return result; } -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_89_; -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_90_; -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_87_; -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_88_; -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_429_; -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_416_; -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_417_; -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_418_; -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_419_; -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_893_; -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_894_; - dEmitterBase_c *dJEffManager_c::spawnGroundEffect( const mVec3_c &pos, u8 polyAttr0, u8 polyAttr1, const mVec3_c &v1, s32 unk, f32 scale, f32 groundHeightMaybe ) { @@ -1262,8 +1249,6 @@ void dWaterEffect_c::init(dAcObjBase_c *base, f32 height, f32 scale, f32 f3) { mDepth = f3; } -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_91_; -extern "C" const u16 PARTICLE_RESOURCE_ID_MAPPING_127_; void dWaterEffect_c::execute(f32 water, f32 ground) { dAcObjBase_c *ac = getActor(); bool b = getActorGroundPos(ac) < water && ground < water;