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
This commit is contained in:
Elijah Thomas
2025-05-18 18:24:58 -04:00
committed by GitHub
parent d19aad44d1
commit 9d68802507
63 changed files with 3809 additions and 516 deletions
+2
View File
@@ -0,0 +1,2 @@
# Ignore JSystem Files - Copied From TP
**/JSystem/**
+44 -44
View File
@@ -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
+1 -1
View File
@@ -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
+720 -191
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -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; }
+3 -2
View File
@@ -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);
+8 -6
View File
@@ -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
+4 -4
View File
@@ -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();
+203 -3
View File
@@ -1,14 +1,60 @@
#ifndef D_A_E_SM_H
#define D_A_E_SM_H
#include "common.h"
#include "d/a/d_a_base.h"
#include "d/a/e/d_a_en_base.h"
#include "d/a/obj/d_a_obj_bomb.h"
#include "d/col/bg/d_bg_s_acch.h"
#include "d/col/cc/d_cc_d.h"
#include "d/d_shadow.h"
#include "d/flag/sceneflag_manager.h"
#include "m/m3d/m_anmmatclr.h"
#include "m/m3d/m_anmtexpat.h"
#include "m/m_angle.h"
#include "m/m_vec.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
#include "toBeSorted/blur_and_palette_manager.h"
#include "toBeSorted/d_d3d.h"
#include "toBeSorted/d_emitter.h"
#include "toBeSorted/stage_render_stuff.h"
#include "toBeSorted/time_area_mgr.h"
class dAcEsm_c : public dAcEnBase_c {
public:
dAcEsm_c() : mStateMgr(*this, sStateID::null) {}
enum SmColor_e {
SM_RED = 0,
SM_GREEN = 1,
SM_YELLOW = 2,
SM_RED_ALT = 3,
SM_GREEN_ALT = 4,
SM_YELLOW_ALT = 5,
SM_BLUE = 6
};
enum SmSize_e {
SM_SMALL = 1,
SM_LARGE = 2,
SM_MASSIVE = 3,
SM_TINY = 4
};
struct SmData_c {
mAng field_0x00;
mAng field_0x02;
mVec3_c field_0x04;
mVec3_c field_0x10;
};
public:
dAcEsm_c() : mScnCallback(this), mStateMgr(*this, sStateID::null) {}
virtual ~dAcEsm_c() {}
virtual int doDelete();
virtual int draw();
virtual bool createHeap();
virtual int actorCreate();
virtual int actorPostCreate();
virtual int actorExecute();
virtual void registerInEvent();
STATE_FUNC_DECLARE(dAcEsm_c, BaseMother);
STATE_FUNC_DECLARE(dAcEsm_c, Wait);
@@ -21,8 +67,162 @@ public:
STATE_FUNC_DECLARE(dAcEsm_c, Fusion);
STATE_FUNC_DECLARE(dAcEsm_c, Dead);
u8 GetParam_s8_0xFF() {
return params >> 8 & 0xFF;
}
u8 GetType() {
int type = params >> 0 & 0xF;
return type != 0xF ? type : 0;
}
u8 GetParam_s4_0xF() {
int type = params >> 4 & 0xF;
return type != 0xF ? type : 0;
}
f32 GetParam_s16_0xFF() {
int tmp = params >> 16 & 0xFF;
return tmp != 0xFF ? tmp * 100.f : 400.f;
}
u8 GetParam_s24_0x7() {
u8 tmp = params >> 24 & 0x7;
return tmp != 0x7 ? tmp : 0;
}
public:
void fn_187_5D0();
void fn_187_3F60();
bool fn_187_4090();
void fn_187_4200();
bool fn_187_42C0();
void fn_187_4450(); // fn_187_4450
void fn_187_44C0();
void fn_187_4540(int);
bool fn_187_4B50();
bool fn_187_4C50();
void Set_0xBBC(u8 v);
void fn_187_4CC0();
mAng fn_187_5150(bool);
mAng fn_187_51F0(bool);
u32 fn_187_52A0();
void fn_187_5390();
bool checkSize(SmSize_e) const; // fn_187_5670
void fn_187_5730();
void fn_187_5810();
void fn_187_5940();
bool fn_187_5AC0() const;
void fn_187_61B0(u8);
bool fn_187_6B10();
void fn_187_6C20(bool);
private:
/* 0x??? */ STATE_MGR_DECLARE(dAcEsm_c);
void updateBoundingBox();
void updateMatrix();
bool *getArray() {
return sSomeArray;
}
void setArray(int i) {
sSomeArray[i] = false;
}
private:
/* 0x378 */ d3d::AnmMdlWrapper mMdl;
/* 0x3E8 */ dShadowCircle_c mShadowCircle;
/* 0x3F0 */ m3d::anmTexPat_c mAnmTexPat;
/* 0x41C */ m3d::anmMatClr_c mAnmMatClr;
/* 0x448 */ dScnCallback_c mScnCallback;
/* 0x454 */ dCcD_Sph mSph;
/* 0x5A4 */ dBgS_AcchCir mAcchCir;
/* 0x600 */ dBgS_ObjAcch mObjAcch;
/* 0x9B0 */ STATE_MGR_DECLARE(dAcEsm_c);
/* 0x9EC */ dAcRef_c<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
+62 -1
View File
@@ -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
+34 -4
View File
@@ -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);
+11 -3
View File
@@ -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;
+2 -9
View File
@@ -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;
+1 -3
View File
@@ -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;
};
+44
View File
@@ -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);
+5 -1
View File
@@ -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;
+2 -2
View File
@@ -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;
-2
View File
@@ -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;
+8 -1
View File
@@ -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];
-3
View File
@@ -40,9 +40,6 @@ private:
f32 scale;
u16 setStoryflag;
u16 unsetStoryflag;
static u32 sDefaultRotX;
static u32 sDefaultRotZ;
};
#endif
+1 -1
View File
@@ -116,7 +116,7 @@ public:
virtual ~mShadowCircle_c();
private:
mShadowChild_c *mpChild;
/* 0x04 */ mShadowChild_c *mpChild;
};
/**
+35 -3
View File
@@ -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;
-1
View File
@@ -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() {}
+15
View File
@@ -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.
+1
View File
@@ -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;
+1 -1
View File
@@ -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;
+1
View File
@@ -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);
+29 -5
View File
@@ -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;
+5 -4
View File
@@ -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:
};
+7 -2
View File
@@ -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);
@@ -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_;
+12 -1
View File
@@ -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 {
+1 -1
View File
@@ -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;
}
File diff suppressed because it is too large Load Diff
+1 -9
View File
@@ -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;
+4 -9
View File
@@ -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) {
+1 -1
View File
@@ -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;
+1 -2
View File
@@ -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;
+3 -2
View File
@@ -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
);
}
+1 -2
View File
@@ -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() {
+3 -9
View File
@@ -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();
}
}
+2 -3
View File
@@ -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();
+1 -2
View File
@@ -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);
+1 -1
View File
@@ -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);
+2 -7
View File
@@ -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++) {
+2 -9
View File
@@ -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;
}
+6 -14
View File
@@ -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
+4 -11
View File
@@ -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;
+20 -21
View File
@@ -12,8 +12,10 @@
#include "d/d_stage.h"
#include "d/flag/enemyflag_manager.h"
#include "egg/core/eggAllocator.h"
#include "egg/math/eggMath.h"
#include "f/f_base.h"
#include "f/f_list_nd.h"
#include "m/m_angle.h"
#include "m/m_vec.h"
#include "toBeSorted/event.h"
#include "toBeSorted/event_manager.h"
@@ -359,13 +361,15 @@ dAcBase_c *dAcBase_c::findActor(char *objName, dAcBase_c *parent) {
// searches for actor based on groupType
// 8002d0a0
FORCE_INLINE dAcBase_c *findActor(dAcBase_c *parent) {
dAcBase_c *foundActor;
if (!parent) {
return (dAcBase_c *)fManager_c::searchBaseByGroupType(2, nullptr);
foundActor = (dAcBase_c *)fManager_c::searchBaseByGroupType(dBase_c::ACTOR, nullptr);
} else if (parent->group_type == 2) {
foundActor = (dAcBase_c *)fManager_c::searchBaseByGroupType(dBase_c::ACTOR, parent);
} else {
foundActor = nullptr;
}
if (parent->group_type == 2) {
return (dAcBase_c *)fManager_c::searchBaseByGroupType(2, parent);
}
return nullptr;
return foundActor;
}
// control flow sucks ;-;
@@ -374,11 +378,7 @@ FORCE_INLINE dAcBase_c *findActor(dAcBase_c *parent) {
dAcBase_c *dAcBase_c::searchActor(dAcBase_c *parent) {
dAcBase_c *foundActor = ::findActor(parent);
if (!foundActor) {
return (dAcBase_c *)fManager_c::searchBaseByGroupType(STAGE, parent);
}
return foundActor;
return foundActor ? foundActor : (dAcBase_c *)fManager_c::searchBaseByGroupType(STAGE, parent);
}
// 8002d130
@@ -420,22 +420,21 @@ bool dAcBase_c::getDistanceToActor(dAcBase_c *actor, f32 distThresh, f32 *outDis
bool dAcBase_c::getDistanceAndAngleToActor(
dAcBase_c *actor, f32 distThresh, s16 yAngle, s16 xAngle, f32 *outDist, s16 *outDiffAngleY, s16 *outDiffAngleX
) {
f32 distSquared = 3.402823e+38f;
s32 angleToActorY, angleToActorX;
f32 distSquared = EGG::Math<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() {
-2
View File
@@ -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);
+6 -4
View File
@@ -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;
}
+33 -32
View File
@@ -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++;
}
}
-2
View File
@@ -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;
+1 -4
View File
@@ -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 {
+11 -7
View File
@@ -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;
+15 -23
View File
@@ -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();
+1 -1
View File
@@ -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();
+5 -5
View File
@@ -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;
+5 -5
View File
@@ -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;
}
+1 -5
View File
@@ -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;
+1 -1
View File
@@ -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);
+2 -2
View File
@@ -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;
}
-15
View File
@@ -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;