mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-09 12:37:18 -04:00
k_wmark / k_wpillar OK, fop actor enums / debug building (#1946)
* d_k_wmark / d_k_wpillar OK * make debug buildable / add assert functionality * add more fop actor enums * remove asm
This commit is contained in:
@@ -24,12 +24,84 @@ struct actor_process_profile_definition2 {
|
||||
/* 0x30 */ u32 field_0x30;
|
||||
};
|
||||
|
||||
enum {
|
||||
ACTOR_TYPE_ENEMY = 2,
|
||||
enum fopAc_Status_e {
|
||||
fopAcStts_NOEXEC_e = 0x00000080,
|
||||
fopAcStts_CULL_e = 0x00000100,
|
||||
fopAcStts_FREEZE_e = 0x00000400,
|
||||
fopAcStts_CARRY_e = 0x00002000,
|
||||
fopAcStts_NOPAUSE_e = 0x00020000,
|
||||
fopAcStts_NODRAW_e = 0x01000000,
|
||||
fopAcStts_BOSS_e = 0x04000000,
|
||||
};
|
||||
|
||||
enum fopAc_Group_e {
|
||||
/* 0 */ fopAc_ACTOR_e,
|
||||
/* 1 */ fopAc_PLAYER_e,
|
||||
/* 2 */ fopAc_ENEMY_e,
|
||||
/* 3 */ fopAc_ENV_e, // is this correct?
|
||||
/* 4 */ fopAc_NPC_e,
|
||||
};
|
||||
|
||||
enum fopAc_Condition_e {
|
||||
fopAcCnd_NOEXEC_e = 0x02,
|
||||
fopAcCnd_NODRAW_e = 0x04,
|
||||
fopAcCnd_INIT_e = 0x08,
|
||||
};
|
||||
|
||||
enum fopAc_Cull_e {
|
||||
fopAc_CULLBOX_0_e,
|
||||
fopAc_CULLBOX_1_e,
|
||||
fopAc_CULLBOX_2_e,
|
||||
fopAc_CULLBOX_3_e,
|
||||
fopAc_CULLBOX_4_e,
|
||||
fopAc_CULLBOX_5_e,
|
||||
fopAc_CULLBOX_6_e,
|
||||
fopAc_CULLBOX_7_e,
|
||||
fopAc_CULLBOX_8_e,
|
||||
fopAc_CULLBOX_9_e,
|
||||
fopAc_CULLBOX_10_e,
|
||||
fopAc_CULLBOX_11_e,
|
||||
fopAc_CULLBOX_12_e,
|
||||
fopAc_CULLBOX_13_e,
|
||||
fopAc_CULLBOX_CUSTOM_e,
|
||||
fopAc_CULLSPHERE_0_e,
|
||||
fopAc_CULLSPHERE_1_e,
|
||||
fopAc_CULLSPHERE_2_e,
|
||||
fopAc_CULLSPHERE_3_e,
|
||||
fopAc_CULLSPHERE_4_e,
|
||||
fopAc_CULLSPHERE_5_e,
|
||||
fopAc_CULLSPHERE_6_e,
|
||||
fopAc_CULLSPHERE_7_e,
|
||||
fopAc_CULLSPHERE_8_e,
|
||||
fopAc_CULLSPHERE_9_e,
|
||||
fopAc_CULLSPHERE_10_e,
|
||||
fopAc_CULLSPHERE_11_e,
|
||||
fopAc_CULLSPHERE_12_e,
|
||||
fopAc_CULLSPHERE_13_e,
|
||||
fopAc_CULLSPHERE_CUSTOM_e,
|
||||
};
|
||||
|
||||
class JKRSolidHeap;
|
||||
|
||||
enum dEvt_Command_e {
|
||||
dEvtCmd_NONE_e,
|
||||
dEvtCmd_INTALK_e,
|
||||
dEvtCmd_INDEMO_e,
|
||||
dEvtCmd_INDOOR_e,
|
||||
dEvtCmd_INGETITEM_e,
|
||||
dEvtCmd_INCATCH_e = 6,
|
||||
dEvtCmd_DUMMY = 0xFFFF,
|
||||
};
|
||||
|
||||
enum dEvt_Condition_e {
|
||||
dEvtCnd_NONE_e = 0x0000,
|
||||
dEvtCnd_CANTALK_e = 0x0001,
|
||||
dEvtCnd_CANDOOR_e = 0x0004,
|
||||
dEvtCnd_CANGETITEM_e = 0x0008,
|
||||
dEvtCnd_CANTALKITEM_e = 0x0020,
|
||||
dEvtCnd_DUMMY = 0x8000,
|
||||
};
|
||||
|
||||
class dEvt_info_c {
|
||||
public:
|
||||
dEvt_info_c();
|
||||
@@ -41,7 +113,7 @@ public:
|
||||
void offCondition(u16);
|
||||
bool checkCommandCatch();
|
||||
BOOL checkCommandDoor();
|
||||
BOOL checkCommandDemoAccrpt() { return mCommand == 2; }
|
||||
BOOL checkCommandDemoAccrpt() { return mCommand == dEvtCmd_INDEMO_e; }
|
||||
|
||||
void setCommand(u16 command) { mCommand = command; }
|
||||
void setMapToolId(u8 id) { mMapToolId = id; }
|
||||
@@ -58,11 +130,11 @@ public:
|
||||
void i_onCondition(u16 cond) { mCondition |= cond; }
|
||||
void i_offCondition(u16 cond) { mCondition &= ~cond; }
|
||||
|
||||
bool checkCommandTalk() { return mCommand == 1; }
|
||||
bool checkCommandItem() { return mCommand == 4; }
|
||||
BOOL i_checkCommandDoor() { return mCommand == 3; }
|
||||
bool i_checkCommandDemoAccrpt() { return mCommand == 2; }
|
||||
bool i_checkCommandCatch() { return mCommand == 6; }
|
||||
bool checkCommandTalk() { return mCommand == dEvtCmd_INTALK_e; }
|
||||
bool checkCommandItem() { return mCommand == dEvtCmd_INGETITEM_e; }
|
||||
BOOL i_checkCommandDoor() { return mCommand == dEvtCmd_INDOOR_e; }
|
||||
bool i_checkCommandDemoAccrpt() { return mCommand == dEvtCmd_INDEMO_e; }
|
||||
bool i_checkCommandCatch() { return mCommand == dEvtCmd_INCATCH_e; }
|
||||
|
||||
void suspendProc(void* actor) {
|
||||
if (field_0x10 != NULL) {
|
||||
@@ -81,7 +153,7 @@ public:
|
||||
}; // Size = 0x18
|
||||
|
||||
struct actor_place {
|
||||
/* 807E2468 */ //void operator=(actor_place const&);
|
||||
/* 807E2468 */ // void operator=(actor_place const&);
|
||||
|
||||
/* 0x00 */ cXyz pos;
|
||||
/* 0x0C */ csXyz angle;
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
#include "f_pc/f_pc_searcher.h"
|
||||
|
||||
#define fopAcM_SetupActor(ptr,ClassName) \
|
||||
if (!fopAcM_CheckCondition(ptr, 8)) { \
|
||||
if (!fopAcM_CheckCondition(ptr, fopAcCnd_INIT_e)) { \
|
||||
new (ptr) ClassName(); \
|
||||
fopAcM_OnCondition(ptr, 8); \
|
||||
fopAcM_OnCondition(ptr, fopAcCnd_INIT_e); \
|
||||
}
|
||||
|
||||
class J3DModelData; // placeholder
|
||||
@@ -77,16 +77,16 @@ public:
|
||||
class dBgS_GndChk;
|
||||
class fopAcM_gc_c {
|
||||
public:
|
||||
static dBgS_GndChk* getGroundCheck() { return (dBgS_GndChk*)&mGndCheck; }
|
||||
static bool gndCheck(const cXyz*);
|
||||
static u8 mGndCheck[84]; // this is dBgS_GndChk but all static data in the TU probably needs to be setup first (otherwise causes a reordering problem with the __sinit function)
|
||||
static f32 mGroundY;
|
||||
|
||||
// strange issue where f_op_actor_mng.h can't find the dComIfG_Bgsp() inline even when you include the header
|
||||
// static bool getTriPla(cM3dGPla* pPlane) {
|
||||
// return dComIfG_Bgsp().GetTriPla(mGndCheck,pPlane);
|
||||
// }
|
||||
// this avoids having to include d_bg_s.h here
|
||||
static inline bool getTriPla(cM3dGPla* pPlane);
|
||||
static inline int getRoomId();
|
||||
static inline int getPolyColor();
|
||||
|
||||
static dBgS_GndChk* getGroundCheck() { return (dBgS_GndChk*)&mGndCheck; }
|
||||
static f32 getGroundY() { return mGroundY; }
|
||||
};
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
#include "f_pc/f_pc_manager.h"
|
||||
#include "f_op/f_op_kankyo.h"
|
||||
|
||||
struct fopKyM_prm_class {
|
||||
/* 0x00 */ cXyz mPos;
|
||||
|
||||
Reference in New Issue
Block a user