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:
TakaRikka
2023-09-28 12:01:42 -07:00
committed by GitHub
parent 673e69386a
commit 89ed2b8a26
206 changed files with 1612 additions and 2472 deletions
+1 -1
View File
@@ -30,7 +30,7 @@ public:
/* 802A40B8 */ void stopSoundID(JAISoundID);
/* 802A4118 */ void mixOut();
/* 802A4174 */ void newStream_();
/* 802B9978 */ void isActive() const;
/* 802B9978 */ bool isActive() const;
JAISoundParamsMove* getParams() { return &mParams; }
void setStreamDataMgr(JAIStreamDataMgr* param_0) {
+2 -2
View File
@@ -142,7 +142,7 @@ public:
static void* getUserRamEnd(void) { return mUserRamEnd; }
static u32 getMemorySize(void) { return mMemorySize; }
static JKRHeap* getRootHeap() { return sRootHeap; }
#if DEBUG
#ifdef DEBUG
static JKRHeap* getRootHeap2() { return sRootHeap2; }
#endif
@@ -166,7 +166,7 @@ public:
static u32 mMemorySize;
static JKRHeap* sRootHeap;
#if DEBUG
#ifdef DEBUG
static JKRHeap* sRootHeap2;
#endif
+7 -1
View File
@@ -2,8 +2,9 @@
#define JUTASSERT_H
#include "dolphin/types.h"
#include "dolphin/os/OS.h"
#if DEBUG
#ifdef DEBUG
#define JUT_ASSERT(LINE, COND) \
if ((COND) == 0) { \
JUTAssertion::showAssert(JUTAssertion::getSDevice(), __FILE__, LINE, #COND); \
@@ -34,6 +35,11 @@ namespace JUTAssertion {
/* 802E4A54 */ void flushMessage_dbPrint();
/* 802E4C34 */ void setVisible(bool);
/* 802E4C3C */ void setMessageCount(int);
u32 getSDevice();
void showAssert(u32 device, const char * file, int line, const char * assertion);
void setWarningMessage_f(u32 device, char * file, int line, const char * fmt, ...);
void setLogMessage_f(u32 device, char* file, int line, const char* fmt, ...);
};
extern bool sAssertVisible;
+1
View File
@@ -144,6 +144,7 @@ extern "C" void JUTSetReportConsole(JUTConsole*);
extern "C" JUTConsole* JUTGetReportConsole();
extern "C" void JUTSetWarningConsole(JUTConsole*);
extern "C" JUTConsole* JUTGetWarningConsole();
extern "C" void JUTWarningConsole_f_va(const char*, va_list);
extern "C" void JUTReportConsole_f_va(const char*, va_list);
extern "C" void JUTReportConsole_f(const char*, ...);
extern "C" void JUTWarningConsole(const char* message);
@@ -24,6 +24,7 @@ public:
bool isActive() const { return field_0x00 != 0; }
JUtility::TColor getCharColor() const { return mCharColor; }
void changeFrameBuffer(void *param_0) { changeFrameBuffer(param_0, mFrameBufferWidth, mFrameBufferHeight); }
void* getFrameBuffer() { return field_0x00; }
static JUTDirectPrint* getManager() { return sDirectPrint; }
+5
View File
@@ -3511,6 +3511,11 @@ inline void dComIfGd_setListBG() {
g_dComIfG_gameInfo.drawlist.setXluListBG();
}
inline void dComIfGd_setListIndScreen() {
g_dComIfG_gameInfo.drawlist.setOpaListP0();
g_dComIfG_gameInfo.drawlist.setXluListP0();
}
inline J3DDrawBuffer* dComIfGd_getOpaListBG() {
return g_dComIfG_gameInfo.drawlist.getOpaListBG();
}
+2
View File
@@ -331,6 +331,8 @@ public:
void setOpaList3Dlast() { setOpaDrawList(mDrawBuffers[DB_LIST_3D_LAST]); }
void setXluList3Dlast() { setXluDrawList(mDrawBuffers[DB_LIST_3D_LAST]); }
void setXluList2DScreen() { setXluDrawList(mDrawBuffers[DB_LIST_2D_SCREEN]); }
void setXluListP0() { setXluDrawList(mDrawBuffers[DB_LIST_P0]); }
void setOpaListP0() { setOpaDrawList(mDrawBuffers[DB_LIST_P0]); }
void peekZdata() { mPeekZ.peekData(); }
void entryZSortListZxlu(J3DPacket* i_packet, cXyz& param_1) {
+24 -1
View File
@@ -1,6 +1,29 @@
#ifndef D_D_K_WMARK_H
#define D_D_K_WMARK_H
#include "dolphin/types.h"
#include "f_op/f_op_kankyo_mng.h"
#include "d/kankyo/d_kankyo.h"
class dkWmark_c : public kankyo_class {
public:
/* 80261640 */ ~dkWmark_c();
/* 802616C4 */ BOOL setMatrix();
inline int create();
inline int execute();
inline int draw();
static int m_nowID;
/* 0x0F8 */ JKRSolidHeap* mpHeap;
/* 0x0FC */ J3DModel* mpModel;
/* 0x100 */ dKy_tevstr_c mTevstr;
/* 0x488 */ u8 field_0x488;
/* 0x48A */ s16 field_0x48a;
/* 0x48C */ s16 field_0x48c;
/* 0x48E */ s16 mColorType;
/* 0x490 */ f32 mAlphaFactor;
/* 0x494 */ int field_0x494;
};
#endif /* D_D_K_WMARK_H */
+17 -1
View File
@@ -1,6 +1,22 @@
#ifndef D_D_K_WPILLAR_H
#define D_D_K_WPILLAR_H
#include "dolphin/types.h"
#include "f_op/f_op_kankyo_mng.h"
#include "d/kankyo/d_kankyo.h"
class dkWpillar_c : public kankyo_class {
public:
/* 80261B54 */ int create();
/* 80261F24 */ ~dkWpillar_c();
/* 80262014 */ int execute();
/* 802620C8 */ int draw();
/* 0x0F8 */ J3DModel* mpModel;
/* 0x0FC */ mDoExt_bckAnm mBck;
/* 0x118 */ mDoExt_btkAnm mBtk;
/* 0x130 */ mDoExt_brkAnm mBrk;
/* 0x148 */ JKRSolidHeap* mpHeap;
/* 0x14C */ dKy_tevstr_c mTevstr;
};
#endif /* D_D_K_WPILLAR_H */
+4 -4
View File
@@ -7,7 +7,7 @@
struct dStage_MapEvent_dt_c;
class fopAc_ac_c;
#if DEBUG
#ifdef DEBUG
class dEvDb_bit_c {
public:
/* 0x00 */ char* mFlagName;
@@ -36,9 +36,9 @@ public:
/* 0x04 */ dEvDb_reg_c* mRegTable;
/* 0x08 */ int mBitNum;
/* 0x0C */ int mRegNum;
/* 0x10 */ field_0x10;
/* 0x14 */ field_0x14;
}
/* 0x10 */ int field_0x10;
/* 0x14 */ int field_0x14;
};
#endif
class dEvt_order_c {
+1 -1
View File
@@ -359,7 +359,7 @@ public:
/* 0x0EC0 */ dKankyo_cloud_Packet* mpCloudPacket;
/* 0x0EC4 */ u8 mVrkumoStatus;
/* 0x0EC8 */ int mVrkumoCount;
/* 0x0ECC */ f32 field_0xecc;
/* 0x0ECC */ f32 mVrkumoStrength;
/* 0x0ED0 */ dKankyo_vrkumo_Packet* mpVrkumoPacket;
/* 0x0ED4 */ EF_THUNDER mThunderEff;
/* 0x0F18 */ u8 field_0xf18[4];
+16 -2
View File
@@ -42,7 +42,8 @@ inline void C_MTXRotAxisRad(Mtx m, const Vec* axis, f32 rad) {
/* When compiling in debug mode, use C implementations */
#ifdef DEBUG
#define MTXIdentity C_MTXIdentity
// TODO: Add debug rom C implementations
/* #define MTXIdentity C_MTXIdentity
#define MTXCopy C_MTXCopy
#define MTXConcat C_MTXConcat
#define MTXInverse C_MTXInverse
@@ -53,7 +54,20 @@ inline void C_MTXRotAxisRad(Mtx m, const Vec* axis, f32 rad) {
#define MTXTransApply C_MTXTransApply
#define MTXScale C_MTXScale
#define MTXScaleApply C_MTXScaleApply
#define MTXQuat C_MTXQuat
#define MTXQuat C_MTXQuat */
#define MTXIdentity PSMTXIdentity
#define MTXCopy PSMTXCopy
#define MTXConcat PSMTXConcat
#define MTXInverse PSMTXInverse
#define MTXRotRad PSMTXRotRad
#define MTXRotTrig PSMTXRotTrig
#define MTXRotAxisRad PSMTXRotAxisRad
#define MTXTrans PSMTXTrans
#define MTXTransApply PSMTXTransApply
#define MTXScale PSMTXScale
#define MTXScaleApply PSMTXScaleApply
#define MTXQuat PSMTXQuat
#else
#define MTXIdentity PSMTXIdentity
#define MTXCopy PSMTXCopy
+8 -2
View File
@@ -14,10 +14,16 @@ void PSMTXMultVecArraySR(const Mtx m, const Vec* srcBase, Vec* dstBase, u32 coun
/* When compiling in debug mode, use C implementations */
#ifdef DEBUG
#define MTXMultVec C_MTXMultVec
// TODO: Add debug rom C implementations
/* #define MTXMultVec C_MTXMultVec
#define MTXMultVecSR C_MTXMultVecSR
#define MTXMultVecArray C_MTXMultVecArray
#define MTXMultVecArraySR C_MTXMultVecArraySR
#define MTXMultVecArraySR C_MTXMultVecArraySR */
#define MTXMultVec PSMTXMultVec
#define MTXMultVecSR PSMTXMultVecSR
#define MTXMultVecArray PSMTXMultVecArray
#define MTXMultVecArraySR PSMTXMultVecArraySR
#else
#define MTXMultVec PSMTXMultVec
#define MTXMultVecSR PSMTXMultVecSR
+4 -1
View File
@@ -17,7 +17,10 @@ void C_QUATSlerp(const Quaternion* p, const Quaternion* q, Quaternion* r, f32 t)
/* When compiling in debug mode, use C implementations */
#ifdef DEBUG
#define QUATMultiply C_QUATMultiply
// TODO: Add debug rom C implementations
/* #define QUATMultiply C_QUATMultiply */
#define QUATMultiply PSQUATMultiply
#else
#define QUATMultiply PSQUATMultiply
#endif
+14 -2
View File
@@ -87,7 +87,8 @@ inline f32 C_VECSquareMag(const Vec* v) {
/* When compiling in debug mode, use C implementations */
#ifdef DEBUG
#define VECAdd C_VECAdd
// TODO: Add debug rom C implementations
/* #define VECAdd C_VECAdd
#define VECSubtract C_VECSubtract
#define VECScale C_VECScale
#define VECNormalize C_VECNormalize
@@ -96,7 +97,18 @@ inline f32 C_VECSquareMag(const Vec* v) {
#define VECDotProduct C_VECDotProduct
#define VECCrossProduct C_VECCrossProduct
#define VECSquareDistance C_VECSquareDistance
#define VECDistance C_VECDistance
#define VECDistance C_VECDistance */
#define VECAdd PSVECAdd
#define VECSubtract PSVECSubtract
#define VECScale PSVECScale
#define VECNormalize PSVECNormalize
#define VECSquareMag PSVECSquareMag
#define VECMag PSVECMag
#define VECDotProduct PSVECDotProduct
#define VECCrossProduct PSVECCrossProduct
#define VECSquareDistance PSVECSquareDistance
#define VECDistance PSVECDistance
#else
#define VECAdd PSVECAdd
#define VECSubtract PSVECSubtract
+81 -9
View File
@@ -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 -7
View File
@@ -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; }
};
+1
View File
@@ -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;
+8
View File
@@ -4,8 +4,16 @@
#include "SSystem/SComponent/c_tag.h"
enum {
fpcLy_ROOT_e = 0,
fpcLy_CURRENT_e = 0xFFFFFFFD,
fpcLy_SPECIAL_e = 0xFFFFFFFE,
fpcLy_NONE_e = 0xFFFFFFFF,
};
typedef struct layer_class layer_class;
typedef struct layer_management_tag_class {
create_tag_class mCreateTag;
layer_class* mpLayer;
+5
View File
@@ -4,6 +4,11 @@
#include "f_pc/f_pc_method_tag.h"
enum {
fpcPi_CURRENT_e = 0xFFFD,
fpcPi_SPECIAL_e = 0xFFFE,
};
typedef struct process_priority_queue_info {
u32 mLayer;
u16 mListID;
-7
View File
@@ -81,11 +81,4 @@ inline void mDoMemCd_save(void* i_data, u32 param_1, u32 param_2) {
g_mDoMemCd_control.save(i_data,param_1,param_2);
}
// This is probably debug only
#if DEBUG
inline void mDoMemCd_saveNAND(void* i_data, u32 param_1, u32 param_2) {
g_mDoMemCd_control.saveNAND(i_data,param_1,param_2);
}
#endif
#endif /* M_DO_M_DO_MEMCARD_H */
+1 -1
View File
@@ -20,7 +20,7 @@ struct mDoLib_clipper {
return mClipper.clip(m, (Vec*)param_1, (Vec*)param_2);
}
static u32 clip(const Mtx m, Vec param_1, f32 param_2) {
static int clip(const Mtx m, Vec param_1, f32 param_2) {
return mClipper.clip(m, param_1, param_2);
}