summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElijah Thomas <42302100+elijah-thomas774@users.noreply.github.com>2025-05-18 18:24:58 -0400
committerGitHub <noreply@github.com>2025-05-18 18:24:58 -0400
commit9d688025070b6646fc332c6405448ce01b8a9dd2 (patch)
tree53690c4e58d8b5a0fedb351fdfc2b8ce1458b126
parentd19aad44d13a7e17a3615b25d9368ff15069a395 (diff)
d_a_e_sm (chu chu) start (#117)
* d_a_e_sm (chu chu) start * progress, includes LightParam addition in BlurPaletteMgr * oops - TBox Progress I guess * dAcEsm_c::actorExecute and Particle Resource data moved * step in symbols map * Update blur_and_palette_manager.h * m_angle cleanup pass * Last explicit_zero_data Fixes #69 * add mQuat_c ctor
-rw-r--r--.clang-format-ignore2
-rw-r--r--config/SOUE01/rels/d_a_e_smNP/symbols.txt88
-rw-r--r--config/SOUE01/rels/d_t_gekotagNP/symbols.txt2
-rw-r--r--config/SOUE01/symbols.txt911
-rw-r--r--include/JSystem/JParticle/JPADynamicsBlock.h2
-rw-r--r--include/c/c_lib.h5
-rw-r--r--include/d/a/d_a_base.h14
-rw-r--r--include/d/a/d_a_player.h8
-rw-r--r--include/d/a/e/d_a_e_sm.h206
-rw-r--r--include/d/a/e/d_a_en_base.h63
-rw-r--r--include/d/a/obj/d_a_obj_base.h38
-rw-r--r--include/d/a/obj/d_a_obj_bomb.h14
-rw-r--r--include/d/a/obj/d_a_obj_tbox.h11
-rw-r--r--include/d/a/obj/d_a_obj_tubo.h4
-rw-r--r--include/d/col/c/c_cc_d.h44
-rw-r--r--include/d/d_camera.h6
-rw-r--r--include/d/d_cs_base.h4
-rw-r--r--include/d/t/d_t_ship_window.h2
-rw-r--r--include/d/t/d_t_siren.h9
-rw-r--r--include/d/t/d_t_sw_area.h3
-rw-r--r--include/m/m3d/m_shadow.h2
-rw-r--r--include/m/m_angle.h38
-rw-r--r--include/m/m_color.h1
-rw-r--r--include/m/m_mtx.h15
-rw-r--r--include/m/m_quat.h1
-rw-r--r--include/m/m_vec.h2
-rw-r--r--include/s/s_Math.h1
-rw-r--r--include/toBeSorted/blur_and_palette_manager.h34
-rw-r--r--include/toBeSorted/d_d3d.h9
-rw-r--r--include/toBeSorted/d_emitter.h9
-rw-r--r--include/toBeSorted/d_emmitter_resource_map.inc995
-rw-r--r--include/toBeSorted/time_area_mgr.h13
-rw-r--r--src/REL/d/a/e/d_a_e_hb_leaf.cpp2
-rw-r--r--src/REL/d/a/e/d_a_e_sm.cpp1424
-rw-r--r--src/REL/d/a/npc/d_a_npc_saltalk.cpp10
-rw-r--r--src/REL/d/a/obj/d_a_obj_dungeon_ship.cpp13
-rw-r--r--src/REL/d/a/obj/d_a_obj_ivy_rope.cpp2
-rw-r--r--src/REL/d/a/obj/d_a_obj_seat_sword.cpp3
-rw-r--r--src/REL/d/a/obj/d_a_obj_tower_gearD101.cpp5
-rw-r--r--src/REL/d/a/obj/d_a_obj_tower_hand_D101.cpp3
-rw-r--r--src/REL/d/a/obj/d_a_obj_tubo.cpp12
-rw-r--r--src/REL/d/a/obj/d_a_obj_tumble_weed.cpp5
-rw-r--r--src/REL/d/a/obj/d_a_obj_utajima_island.cpp3
-rw-r--r--src/REL/d/t/d_t_dowsing.cpp2
-rw-r--r--src/REL/d/t/d_t_gekotag.cpp9
-rw-r--r--src/REL/d/t/d_t_reaction.cpp11
-rw-r--r--src/REL/d/t/d_t_ship_window.cpp20
-rw-r--r--src/REL/d/t/d_t_sw_area.cpp15
-rw-r--r--src/d/a/d_a_base.cpp41
-rw-r--r--src/d/a/d_a_insect.cpp2
-rw-r--r--src/d/a/obj/d_a_obj_switch.cpp10
-rw-r--r--src/d/a/obj/d_a_obj_tbox.cpp65
-rw-r--r--src/d/a/obj/d_a_obj_water_spout.cpp2
-rw-r--r--src/d/col/c/c_m3d_g_pla.cpp5
-rw-r--r--src/d/d_cs_base.cpp18
-rw-r--r--src/d/lyt/meter/d_lyt_meter_dowsing.cpp38
-rw-r--r--src/d/lyt/meter/d_lyt_meter_heart.cpp2
-rw-r--r--src/d/lyt/meter/d_lyt_meter_item_select.cpp10
-rw-r--r--src/d/lyt/meter/d_lyt_meter_minus_btn.cpp10
-rw-r--r--src/d/lyt/meter/d_lyt_meter_timer.cpp6
-rw-r--r--src/m/m_angle.cpp2
-rw-r--r--src/toBeSorted/attention.cpp4
-rw-r--r--src/toBeSorted/d_emitter.cpp15
63 files changed, 3809 insertions, 516 deletions
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<Uc>__4sLibFPUc_Uc = .text:0x000022D0; // type:function size:0x1C
+calcTimer<Us>__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 <typename T>
-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:
+ void updateBoundingBox();
+ void updateMatrix();
+
+ bool *getArray() {
+ return sSomeArray;
+ }
+ void setArray(int i) {
+ sSomeArray[i] = false;
+ }
+
private:
- /* 0x??? */ STATE_MGR_DECLARE(dAcEsm_c);
+ /* 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<dAcBomb_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<dAcEnBase_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<f32>::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 &param0 = 0, const bool &param1 = 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<const dCcD_Sph *>(&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<dAcEsm_c *>(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<dAcEsm_c *>(
+ 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 &param0, const bool &param1) {
+ 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);
- }
- if (parent->group_type == 2) {
- return (dAcBase_c *)fManager_c::searchBaseByGroupType(2, parent);
+ 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;
}
- 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<f32>::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;