d_demo debug (#3098)

This commit is contained in:
Jcw87
2026-02-13 15:08:10 -08:00
committed by GitHub
parent 68f3531c2d
commit 0b1cb89d69
9 changed files with 258 additions and 180 deletions
+2
View File
@@ -100,6 +100,8 @@ struct TValueIterator
TValueIterator(const void* begin) {
mBegin = reinterpret_cast<const char*>(begin);
bool unused = false;
(void)&unused;
}
const void* get() const { return mBegin; }
+6 -1
View File
@@ -14,7 +14,12 @@ struct TLinkListNode {
pPrev_ = NULL;
}
~TLinkListNode() {}
~TLinkListNode() {
#if DEBUG
JGADGET_ASSERTWARN(77, pNext_==NULL);
JGADGET_ASSERTWARN(78, pPrev_==NULL);
#endif
}
TLinkListNode* getNext() const { return pNext_; }
TLinkListNode* getPrev() const { return pPrev_; }
@@ -79,9 +79,10 @@ public:
transformOnGet_enable(param_0);
}
void transform_setOrigin_TxyzRy(const Vec& xyz, f32 rotY) {
bool transform_setOrigin_TxyzRy(const Vec& xyz, f32 rotY) {
transformOnSet_setOrigin_TxyzRy(xyz, rotY);
transformOnGet_setOrigin_TxyzRy(xyz, rotY);
return true;
}
void transform_setOrigin(const Vec& xyz, f32 rotY) {
@@ -27,6 +27,7 @@ struct TCreateObject : public JStudio::TCreateObject {
JAISoundStarter* get_pJAISoundStarter_() { return pJAISoundStarter_; }
const JStage::TSystem* get_pJSGSystem_() { return pJSGSystem_; }
bool isPermit_onExit_notEnd() { return mPermit_onExit_notEnd; }
void setPermit_onExit_notEnd(bool value) { mPermit_onExit_notEnd = value; }
/* 0x0C */ JAISoundStarter* pJAISoundStarter_;
/* 0x10 */ const JStage::TSystem* pJSGSystem_;
@@ -2,11 +2,11 @@
#define JSTUDIO_JSTAGE_CONTROL_H
#include "JSystem/JGadget/pointer.h"
#include "JSystem/JStage/JSGLight.h"
#include "JSystem/JStage/JSGActor.h"
#include "JSystem/JStage/JSGAmbientLight.h"
#include "JSystem/JStage/JSGCamera.h"
#include "JSystem/JStage/JSGFog.h"
#include "JSystem/JStage/JSGLight.h"
#include "JSystem/JStage/JSGSystem.h"
#include "JSystem/JStudio/JStudio/jstudio-object.h"
#include "JSystem/JStudio/JStudio/jstudio-math.h"
+114 -107
View File
@@ -3,9 +3,9 @@
#include "m_Do/m_Do_ext.h"
#include "m_Do/m_Do_mtx.h"
#include "JSystem/JStudio/JStudio_JStage/object.h"
#include "JSystem/JStudio/JStudio_JAudio2/control.h"
#include "JSystem/JStudio/JStudio_JParticle/object-particle.h"
#include "JSystem/JStudio/JStudio_JStage/object.h"
#include "SSystem/SComponent/c_sxyz.h"
#include "SSystem/SComponent/c_xyz.h"
#include "Z2AudioLib/Z2SoundStarter.h"
@@ -27,12 +27,16 @@ public:
~dDemo_object_c();
JStage::TObject* appendActor(fopAc_ac_c*);
dDemo_actor_c* getActor(u8);
JStage::TObject* createCamera();
dDemo_camera_c* createCamera();
dDemo_camera_c* createEditorCamera();
dDemo_camera_c* getActiveCamera();
JStage::TObject* createAmbient();
JStage::TObject* appendLight();
JStage::TObject* createFog();
void remove();
void removeEditorCamera();
dDemo_camera_c* getCamera() { return mpCamera; }
/* 0x00 */ u8 mActorNum;
/* 0x01 */ u8 mLightNum;
@@ -41,6 +45,9 @@ public:
/* 0x88 */ dDemo_ambient_c* mpAmbient;
/* 0x8C */ dDemo_light_c* mpLights[8];
/* 0xAC */ dDemo_fog_c* mpFog;
#if DEBUG
/* 0xB0 */ dDemo_camera_c* mpEditorCamera;
#endif
};
// TODO: made up, figure out what this is
@@ -85,15 +92,15 @@ public:
void setActor(fopAc_ac_c*);
f32 getPrm_Morf();
int getDemoIDData(int* o_arg0, int* o_arg1, int* o_arg2, u16* o_resID, u8*);
virtual ~dDemo_actor_c();
virtual void JSGSetData(u32, void const*, u32);
virtual s32 JSGFindNodeID(char const* param_0) const {
JUT_ASSERT(0, mModel != NULL);
JUT_ASSERT(115, mModel != NULL);
return mModel->getModelData()->getJointName()->getIndex(param_0);
}
virtual bool JSGGetNodeTransformation(u32 param_0, Mtx param_1) const {
JUT_ASSERT(0, mModel != NULL);
JUT_ASSERT(120, mModel != NULL);
cMtx_copy(mModel->getAnmMtx((u16)param_0), param_1);
return true;
}
@@ -113,10 +120,14 @@ public:
return mTexAnmFrameMax;
}
virtual void JSGGetTranslation(Vec* o_trans) const {
*o_trans = mTrans;
o_trans->x = mTrans.x;
o_trans->y = mTrans.y;
o_trans->z = mTrans.z;
}
virtual void JSGGetScaling(Vec* o_scale) const {
*o_scale = mScale;
o_scale->x = mScale.x;
o_scale->y = mScale.y;
o_scale->z = mScale.z;
}
virtual void JSGGetRotation(Vec* param_0) const {
param_0->x = S2DEG(mRotate.x);
@@ -163,96 +174,6 @@ private:
/* 0x68 */ u32 mBrkId;
};
class dDemo_system_c : public JStage::TSystem {
public:
dDemo_system_c() { mpObject = NULL; }
virtual int JSGFindObject(JStage::TObject**, char const*,
JStage::TEObject) const;
virtual ~dDemo_system_c();
void setObject(dDemo_object_c* i_object) { mpObject = i_object; }
private:
/* 0x4 */ dDemo_object_c* mpObject;
};
class dDemo_particle_c : public JStudio_JParticle::TCreateObject {
public:
dDemo_particle_c(JPAEmitterManager* p_emitMgr, const JStage::TSystem* p_system)
: JStudio_JParticle::TCreateObject(p_emitMgr, p_system) {}
virtual ~dDemo_particle_c();
virtual JPABaseEmitter* emitter_create(u32);
};
class dDemo_light_c : public JStage::TLight {
public:
enum Enable_e {
ENABLE_LIGHT_TYPE_e = (1 << 0),
ENABLE_POSITION_e = (1 << 1),
ENABLE_COLOR_e = (1 << 2),
ENABLE_DIST_ATTEN_e = (1 << 3),
ENABLE_ANGLE_ATTEN_e = (1 << 4),
ENABLE_DIRECTION_e = (1 << 5),
};
dDemo_light_c() {
mFlags = 0;
}
virtual void JSGSetLightType(JStage::TELight);
virtual void JSGSetPosition(Vec const&);
virtual void JSGSetColor(GXColor);
virtual void JSGSetDistanceAttenuation(f32, f32, GXDistAttnFn);
virtual void JSGSetAngleAttenuation(f32, GXSpotFn);
virtual void JSGSetDirection(Vec const&);
virtual ~dDemo_light_c();
void onEnable(u8 flag) { mFlags |= flag; }
private:
/* 0x04 */ u8 mFlags;
/* 0x08 */ JStage::TELight mLightType;
/* 0x0C */ GXDistAttnFn mDistAttenFn;
/* 0x10 */ GXSpotFn mSpotFn;
/* 0x14 */ cXyz mPosition;
/* 0x20 */ GXColor mColor;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ cXyz mDirection;
};
class dDemo_fog_c : public JStage::TFog {
public:
enum Enable_e {
ENABLE_FOG_FN_e = (1 << 0),
ENABLE_START_Z_e = (1 << 1),
ENABLE_END_Z_e = (1 << 2),
ENABLE_COLOR_e = (1 << 3),
};
dDemo_fog_c() {
mFlags = 0;
}
virtual void JSGSetFogFunction(GXFogType);
virtual void JSGSetStartZ(f32);
virtual void JSGSetEndZ(f32);
virtual void JSGSetColor(GXColor);
virtual ~dDemo_fog_c();
void onEnable(u8 flag) { mFlags |= flag; }
private:
/* 0x04 */ u8 mFlags;
/* 0x05 */ u8 mFogType;
/* 0x08 */ f32 mStartZ;
/* 0x0C */ f32 mEndZ;
/* 0x10 */ GXColor mColor;
};
class dDemo_camera_c : public JStage::TCamera {
public:
enum Enable_e {
@@ -266,9 +187,7 @@ public:
ENABLE_VIEW_ROLL_e = (1 << 7),
};
dDemo_camera_c() {
mFlags = 0;
}
dDemo_camera_c() : mFlags(0) {}
virtual f32 JSGGetProjectionNear() const;
virtual void JSGSetProjectionNear(f32);
@@ -329,15 +248,95 @@ private:
/* 0x05 */ GXColor mColor;
};
namespace {
class jstudio_tCreateObject_message : public JStudio::TCreateObject {
class dDemo_light_c : public JStage::TLight {
public:
jstudio_tCreateObject_message() {}
enum Enable_e {
ENABLE_LIGHT_TYPE_e = (1 << 0),
ENABLE_POSITION_e = (1 << 1),
ENABLE_COLOR_e = (1 << 2),
ENABLE_DIST_ATTEN_e = (1 << 3),
ENABLE_ANGLE_ATTEN_e = (1 << 4),
ENABLE_DIRECTION_e = (1 << 5),
};
virtual ~jstudio_tCreateObject_message();
virtual bool create(JStudio::TObject**, const JStudio::stb::data::TParse_TBlock_object&);
dDemo_light_c() : mFlags(0) {}
virtual void JSGSetLightType(JStage::TELight);
virtual void JSGSetPosition(Vec const&);
virtual void JSGSetColor(GXColor);
virtual void JSGSetDistanceAttenuation(f32, f32, GXDistAttnFn);
virtual void JSGSetAngleAttenuation(f32, GXSpotFn);
virtual void JSGSetDirection(Vec const&);
virtual ~dDemo_light_c();
void onEnable(u8 flag) { mFlags |= flag; }
private:
/* 0x04 */ u8 mFlags;
/* 0x08 */ JStage::TELight mLightType;
/* 0x0C */ GXDistAttnFn mDistAttenFn;
/* 0x10 */ GXSpotFn mSpotFn;
/* 0x14 */ cXyz mPosition;
/* 0x20 */ GXColor mColor;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ cXyz mDirection;
};
class dDemo_fog_c : public JStage::TFog {
public:
enum Enable_e {
ENABLE_FOG_FN_e = (1 << 0),
ENABLE_START_Z_e = (1 << 1),
ENABLE_END_Z_e = (1 << 2),
ENABLE_COLOR_e = (1 << 3),
};
dDemo_fog_c() {
mFlags = 0;
}
virtual void JSGSetFogFunction(GXFogType);
virtual void JSGSetStartZ(f32);
virtual void JSGSetEndZ(f32);
virtual void JSGSetColor(GXColor);
virtual ~dDemo_fog_c();
void onEnable(u8 flag) { mFlags |= flag; }
private:
/* 0x04 */ u8 mFlags;
/* 0x05 */ s8 mFogType;
/* 0x08 */ f32 mStartZ;
/* 0x0C */ f32 mEndZ;
/* 0x10 */ GXColor mColor;
};
class dDemo_system_c : public JStage::TSystem {
public:
dDemo_system_c() { mpObject = NULL; }
virtual int JSGFindObject(JStage::TObject**, char const*,
JStage::TEObject) const;
virtual ~dDemo_system_c();
void setObject(dDemo_object_c* i_object) { mpObject = i_object; }
private:
/* 0x4 */ dDemo_object_c* mpObject;
};
class dDemo_particle_c : public JStudio_JParticle::TCreateObject {
public:
dDemo_particle_c(JPAEmitterManager* p_emitMgr, const JStage::TSystem* p_system)
: JStudio_JParticle::TCreateObject(p_emitMgr, p_system) {}
virtual ~dDemo_particle_c();
virtual JPABaseEmitter* emitter_create(u32);
};
namespace {
class jstudio_tAdaptor_message : public JStudio::TAdaptor_message {
public:
typedef JStudio::TObject_message ObjectType;
@@ -348,6 +347,14 @@ public:
virtual void adaptor_do_MESSAGE(JStudio::data::TEOperationData, const void*, u32);
};
class jstudio_tCreateObject_message : public JStudio::TCreateObject {
public:
jstudio_tCreateObject_message() {}
virtual ~jstudio_tCreateObject_message();
virtual bool create(JStudio::TObject**, const JStudio::stb::data::TParse_TBlock_object&);
};
}; // namespace
int dDemo_setDemoData(fopAc_ac_c*, u8, mDoExt_McaMorf*, char const*, int, u16*, u32, s8);
@@ -373,12 +380,12 @@ public:
static s32 getMode() { return m_mode; }
static u32 getFrame() { return m_frame; }
static JStudio::stb::TControl* getControl() { return m_control; }
static bool isStatus(u32 status) { return m_status & status; }
static u32 isStatus(u32 status) { return m_status & status; }
static void onStatus(u32 status) { m_status |= status; }
static void offStatus(u32 status) { m_status &= ~status; }
static void setBranchData(const u8* p_data) { m_branchData = p_data; }
static s16 getBranchId() { return m_branchId; }
static s16 getBranchNum() { return m_branchNum; }
static u16 getBranchNum() { return m_branchNum; }
static jmessage_tControl* getMesgControl() { return m_mesgControl; }
static void setBranchNum(u16 num) {