mirror of https://github.com/zeldaret/tp.git
d_a_demo00 work (#2525)
* Initial work * Got to ke_control * draw function * tiny execute work * all functions worked on * PR cleanup * Took out static keyword for dDemo_setDemoData
This commit is contained in:
parent
3de6b37edf
commit
b67414ef1a
|
@ -70,6 +70,8 @@ public:
|
|||
|
||||
static J3DMtxCalc* mCurrentMtxCalc;
|
||||
|
||||
inline u8 getKind() { return mKind & 15; }
|
||||
|
||||
private:
|
||||
friend struct J3DJointFactory;
|
||||
friend class J3DJointTree;
|
||||
|
|
|
@ -100,6 +100,7 @@ public:
|
|||
Vec* getBaseScale() { return &mBaseScale; }
|
||||
void setAnmMtx(int jointNo, Mtx m) { mMtxBuffer->setAnmMtx(jointNo, m); }
|
||||
MtxP getAnmMtx(int jointNo) { return mMtxBuffer->getAnmMtx(jointNo); }
|
||||
J3DSkinDeform* getSkinDeform() { return mSkinDeform; }
|
||||
|
||||
/* 0x04 */ J3DModelData* mModelData;
|
||||
/* 0x08 */ u32 mFlags;
|
||||
|
|
|
@ -726,6 +726,8 @@ struct J3DBlend : public J3DBlendInfo {
|
|||
void load(u8 ditherEnable) {
|
||||
J3DGDSetBlendMode(getBlendMode(), getSrcFactor(), getDstFactor(), getLogicOp(), ditherEnable);
|
||||
}
|
||||
|
||||
void setBlendInfo(const J3DBlendInfo& i_blendInfo) { *static_cast<J3DBlendInfo*>(this) = i_blendInfo; }
|
||||
};
|
||||
|
||||
extern const J3DFogInfo j3dDefaultFogInfo;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef D_A_DEMO00_H
|
||||
#define D_A_DEMO00_H
|
||||
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_demo.h"
|
||||
|
||||
|
@ -8,16 +9,46 @@ struct demo_s1_ke_s {
|
|||
public:
|
||||
/* 804A4420 */ ~demo_s1_ke_s();
|
||||
/* 804A86B4 */ demo_s1_ke_s();
|
||||
|
||||
/* 0x000 */ cXyz field_0x0[16];
|
||||
/* 0x0C0 */ cXyz field_0xc0[16];
|
||||
/* 0x180 */ cXyz field_0x180;
|
||||
};
|
||||
|
||||
class daDemo00_resID_c {
|
||||
public:
|
||||
/* 804A430C */ void reset();
|
||||
|
||||
/* 0x00 */ u32 mShapeID;
|
||||
/* 0x04 */ u32 field_0x4;
|
||||
/* 0x08 */ u32 field_0x8;
|
||||
/* 0x0C */ u32 field_0xc;
|
||||
/* 0x10 */ u32 field_0x10;
|
||||
/* 0x14 */ u32 field_0x14;
|
||||
/* 0x18 */ u32 field_0x18;
|
||||
/* 0x1C */ u32 field_0x1c;
|
||||
/* 0x20 */ u32 field_0x20;
|
||||
};
|
||||
|
||||
class daDemo00_model_c {
|
||||
public:
|
||||
/* 804A4338 */ void reset();
|
||||
|
||||
/* 0x00 */ daDemo00_resID_c field_0x0;
|
||||
/* 0x24 */ daDemo00_resID_c mID;
|
||||
};
|
||||
|
||||
struct daDemo00_bgc_c {
|
||||
/* 0x00 */ dBgS_GndChk mGndChk;
|
||||
/* 0x54 */ f32 field_0x54;
|
||||
};
|
||||
|
||||
struct daDemo00_shadow_c {
|
||||
/* 0x00 */ u32 field_0x0;
|
||||
/* 0x04 */ cXyz field_0x4;
|
||||
/* 0x10 */ cXyz field_0x10;
|
||||
/* 0x1C */ f32 field_0x1c;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -30,18 +61,84 @@ public:
|
|||
*/
|
||||
class daDemo00_c : public fopAc_ac_c {
|
||||
public:
|
||||
typedef int (daDemo00_c::*actionFunc)(dDemo_actor_c*);
|
||||
|
||||
/* 804A4388 */ ~daDemo00_c();
|
||||
/* 804A45A0 */ void setBaseMtx();
|
||||
/* 804A4948 */ void setShadowSize();
|
||||
/* 804A4F74 */ void createHeap();
|
||||
/* 804A5798 */ void actStandby(dDemo_actor_c*);
|
||||
/* 804A594C */ void actPerformance(dDemo_actor_c*);
|
||||
/* 804A604C */ void actLeaving(dDemo_actor_c*);
|
||||
/* 804A6F94 */ void draw();
|
||||
/* 804A7BA8 */ void execute();
|
||||
/* 804A4F74 */ int createHeap();
|
||||
/* 804A5798 */ int actStandby(dDemo_actor_c*);
|
||||
/* 804A594C */ int actPerformance(dDemo_actor_c*);
|
||||
/* 804A604C */ int actLeaving(dDemo_actor_c*);
|
||||
/* 804A6F94 */ int draw();
|
||||
/* 804A7BA8 */ int execute();
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x292c - 0x568];
|
||||
int create() {
|
||||
dKy_tevstr_init(&tevStr, dComIfGp_roomControl_getStayNo(), 0xFF);
|
||||
tevStr.field_0x384 = 1;
|
||||
mSound.init(&eyePos, NULL, 10, 1);
|
||||
setAction(&daDemo00_c::actStandby);
|
||||
mModel.field_0x0.reset();
|
||||
field_0x6a0 = -1;
|
||||
return 4;
|
||||
}
|
||||
|
||||
void setAction(actionFunc action) { field_0x57c = action; }
|
||||
void action(dDemo_actor_c* actor) { (this->*field_0x57c)(actor); }
|
||||
|
||||
/* 0x0568 */ cXyz field_0x568;
|
||||
/* 0x0574 */ csXyz field_0x574;
|
||||
/* 0x057C */ actionFunc field_0x57c;
|
||||
/* 0x0584 */ daDemo00_model_c mModel;
|
||||
/* 0x05D0 */ mDoExt_McaMorfSO* mpModelMorf;
|
||||
/* 0x05D4 */ J3DModel* field_0x5d4;
|
||||
/* 0x05D8 */ mDoExt_invisibleModel* field_0x5d8;
|
||||
/* 0x05DC */ mDoExt_bpkAnm* mpBpkAnm;
|
||||
/* 0x05E0 */ mDoExt_btpAnm* mpBtpAnm;
|
||||
/* 0x05E4 */ mDoExt_btkAnm* mpBtkAnm;
|
||||
/* 0x05E8 */ mDoExt_brkAnm* mpBrkAnm;
|
||||
/* 0x05EC */ daDemo00_shadow_c* mShadow;
|
||||
/* 0x05F0 */ J3DDeformData* mDeformData;
|
||||
/* 0x05F4 */ mDoExt_blkAnm* mpBlkAnm;
|
||||
/* 0x05F8 */ daDemo00_bgc_c* mBgc;
|
||||
/* 0x05FC */ Z2Creature mSound;
|
||||
/* 0x068C */ u32 field_0x68c;
|
||||
/* 0x0690 */ u8 field_0x690[0x694 - 0x690];
|
||||
/* 0x0694 */ s32 field_0x694;
|
||||
/* 0x0698 */ int field_0x698;
|
||||
/* 0x069C */ s16 field_0x69c;
|
||||
/* 0x069E */ s16 field_0x69e;
|
||||
/* 0x06A0 */ s8 field_0x6a0;
|
||||
/* 0x06A1 */ u8 field_0x6a1;
|
||||
/* 0x06A2 */ u8 field_0x6a2;
|
||||
/* 0x06A3 */ u8 mground2;
|
||||
/* 0x06A4 */ u8 field_0x6a4;
|
||||
/* 0x06A5 */ u8 field_0x6a5;
|
||||
/* 0x06A6 */ u8 field_0x6a6;
|
||||
/* 0x06A7 */ s8 field_0x6a7;
|
||||
/* 0x06A8 */ s8 field_0x6a8;
|
||||
/* 0x06A9 */ s8 field_0x6a9;
|
||||
/* 0x06AA */ s8 field_0x6aa;
|
||||
/* 0x06AB */ s8 field_0x6ab;
|
||||
/* 0x06AC */ u8 field_0x6ac;
|
||||
/* 0x06AD */ u8 field_0x6ad;
|
||||
/* 0x06AE */ u8 field_0x6ae;
|
||||
/* 0x06AF */ s8 field_0x6af;
|
||||
/* 0x06B0 */ s8 field_0x6b0;
|
||||
/* 0x06B1 */ s8 field_0x6b1;
|
||||
/* 0x06B2 */ u8 field_0x6b2;
|
||||
/* 0x06B3 */ s8 field_0x6b3;
|
||||
/* 0x06B4 */ s8 field_0x6b4;
|
||||
/* 0x06B5 */ u8 field_0x6b5;
|
||||
/* 0x06B6 */ u8 field_0x6b6;
|
||||
/* 0x06B7 */ u8 field_0x6b7;
|
||||
/* 0x06B8 */ u8 field_0x6b8;
|
||||
/* 0x06B9 */ s8 field_0x6b9;
|
||||
/* 0x06BC */ mDoExt_3DlineMat1_c field_0x6bc;
|
||||
/* 0x06F8 */ demo_s1_ke_s field_0x6f8[22];
|
||||
/* 0x2900 */ mDoExt_3DlineMat0_c field_0x2900;
|
||||
/* 0x291C */ cXyz field_0x291c;
|
||||
/* 0x2928 */ u8 field_0x2928[0x292c - 0x2928];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daDemo00_c) == 0x292c);
|
||||
|
|
|
@ -65,6 +65,7 @@ public:
|
|||
class dDemo_actor_c : public JStage::TActor {
|
||||
public:
|
||||
enum Enable_e {
|
||||
ENABLE_UNK_e = 1,
|
||||
ENABLE_TRANS_e = (1 << 1),
|
||||
ENABLE_SCALE_e = (1 << 2),
|
||||
ENABLE_ROTATE_e = (1 << 3),
|
||||
|
@ -123,6 +124,7 @@ public:
|
|||
void setModel(J3DModel* p_model) { mModel = p_model; }
|
||||
BOOL checkEnable(u16 flag) { return mFlags & flag; }
|
||||
void onEnable(u16 flag) { mFlags |= flag; }
|
||||
void offEnable(u16 flag) { mFlags &= ~flag; }
|
||||
cXyz& getTrans() { return mTrans; }
|
||||
cXyz& getScale() { return mScale; }
|
||||
csXyz& getRatate() { return mRotate; }
|
||||
|
@ -132,6 +134,8 @@ public:
|
|||
void setAnmFrameMax(f32 max) { mAnmFrameMax = max; }
|
||||
f32 getAnmFrame() { return mAnmFrame; }
|
||||
dDemo_prm_c* getPrm() { return &mPrm; }
|
||||
f32 getAnmTransition() { return mAnmTransition; }
|
||||
u32 getShapeId() { return mShape; }
|
||||
|
||||
private:
|
||||
/* 0x04 */ u16 mFlags;
|
||||
|
@ -343,6 +347,8 @@ public:
|
|||
|
||||
}; // namespace
|
||||
|
||||
int dDemo_setDemoData(fopAc_ac_c*, u8, mDoExt_McaMorf*, char const*, int, u16*, u32, s8);
|
||||
|
||||
class dDemo_c {
|
||||
public:
|
||||
/* 80039678 */ static void create();
|
||||
|
|
|
@ -207,6 +207,9 @@ public:
|
|||
|
||||
J3DAnmCluster* getBlkAnm() { return mpAnm; }
|
||||
|
||||
void entryFrame() { entryFrame(getFrame()); }
|
||||
void entryFrame(f32 frame) { mpAnm->setFrame(frame); }
|
||||
|
||||
private:
|
||||
/* 0x14 */ J3DAnmCluster* mpAnm;
|
||||
};
|
||||
|
@ -851,6 +854,7 @@ void mDoExt_setupStageTexture(J3DModelData* i_modelData);
|
|||
OSThread* mDoExt_GetCurrentRunningThread();
|
||||
void mDoExt_setupShareTexture(J3DModelData* i_modelData, J3DModelData* i_shareModelData);
|
||||
void mDoExt_btkAnmRemove(J3DModelData* i_modelData);
|
||||
void mDoExt_modelTexturePatch(J3DModelData* i_modelData);
|
||||
|
||||
#if VERSION == VERSION_SHIELD_DEBUG
|
||||
s32 mDoExt_getSafeZeldaHeapSize();
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -357,8 +357,7 @@ static void branchFile(char const* resName) {
|
|||
dDemo_c::setBranchData(branchData);
|
||||
}
|
||||
|
||||
/* 800387EC-80038920 03312C 0134+00 1/0 0/0 0/0 .text JSGSetData__13dDemo_actor_cFUlPCvUl
|
||||
*/
|
||||
/* 800387EC-80038920 03312C 0134+00 1/0 0/0 0/0 .text JSGSetData__13dDemo_actor_cFUlPCvUl */
|
||||
void dDemo_actor_c::JSGSetData(u32 id, void const* pdata, u32 param_2) {
|
||||
if (id == ID_UNK_1) {
|
||||
JStudio::stb::TParseData_fixed<50, TValueIterator_misaligned<u16> > data(pdata);
|
||||
|
|
|
@ -213,15 +213,13 @@ int mDoExt_brkAnm::init(J3DMaterialTable* i_matTable, J3DAnmTevRegKey* i_brk, in
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* 8000D7A8-8000D7DC 0080E8 0034+00 0/0 8/8 96/96 .text
|
||||
* entry__13mDoExt_brkAnmFP16J3DMaterialTablef */
|
||||
/* 8000D7A8-8000D7DC 0080E8 0034+00 0/0 8/8 96/96 .text entry__13mDoExt_brkAnmFP16J3DMaterialTablef */
|
||||
void mDoExt_brkAnm::entry(J3DMaterialTable* i_matTable, f32 i_frame) {
|
||||
mpAnm->setFrame(i_frame);
|
||||
i_matTable->entryTevRegAnimator(mpAnm);
|
||||
}
|
||||
|
||||
/* 8000D7DC-8000D8E4 00811C 0108+00 0/0 18/18 85/85 .text
|
||||
* init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb */
|
||||
/* 8000D7DC-8000D8E4 00811C 0108+00 0/0 18/18 85/85 .text init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb */
|
||||
int mDoExt_bckAnm::init(J3DAnmTransform* i_bck, int i_play, int i_attr, f32 i_rate,
|
||||
s16 i_startF, s16 i_endF, bool i_modify) {
|
||||
JUT_ASSERT(614, (i_modify || isCurrentSolidHeap()) && i_bck != 0);
|
||||
|
@ -241,29 +239,25 @@ int mDoExt_bckAnm::init(J3DAnmTransform* i_bck, int i_play, int i_attr, f32 i_ra
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* 8000D990-8000D9CC 0082D0 003C+00 0/0 5/5 31/31 .text
|
||||
* changeBckOnly__13mDoExt_bckAnmFP15J3DAnmTransform */
|
||||
/* 8000D990-8000D9CC 0082D0 003C+00 0/0 5/5 31/31 .text changeBckOnly__13mDoExt_bckAnmFP15J3DAnmTransform */
|
||||
void mDoExt_bckAnm::changeBckOnly(J3DAnmTransform* i_bck) {
|
||||
mAnm = i_bck;
|
||||
mpMtxCalc->setAnmTransform(mAnm);
|
||||
}
|
||||
|
||||
/* 8000D9CC-8000D9E8 00830C 001C+00 0/0 11/11 59/59 .text entry__13mDoExt_bckAnmFP12J3DModelDataf
|
||||
*/
|
||||
/* 8000D9CC-8000D9E8 00830C 001C+00 0/0 11/11 59/59 .text entry__13mDoExt_bckAnmFP12J3DModelDataf */
|
||||
void mDoExt_bckAnm::entry(J3DModelData* i_modelData, f32 i_frame) {
|
||||
mAnm->setFrame(i_frame);
|
||||
i_modelData->getJointNodePointer(0)->setMtxCalc(mpMtxCalc);
|
||||
}
|
||||
|
||||
/* 8000D9E8-8000DA08 008328 0020+00 0/0 1/1 1/1 .text
|
||||
* entryJoint__13mDoExt_bckAnmFP12J3DModelDataUsf */
|
||||
/* 8000D9E8-8000DA08 008328 0020+00 0/0 1/1 1/1 .text entryJoint__13mDoExt_bckAnmFP12J3DModelDataUsf */
|
||||
void mDoExt_bckAnm::entryJoint(J3DModelData* i_modelData, u16 i_jntNo, f32 i_frame) {
|
||||
mAnm->setFrame(i_frame);
|
||||
i_modelData->getJointNodePointer(i_jntNo)->setMtxCalc(mpMtxCalc);
|
||||
}
|
||||
|
||||
/* 8000DA08-8000DAA8 008348 00A0+00 0/0 1/1 3/3 .text
|
||||
* init__13mDoExt_blkAnmFP13J3DDeformDataP13J3DAnmClusteriifss */
|
||||
/* 8000DA08-8000DAA8 008348 00A0+00 0/0 1/1 3/3 .text init__13mDoExt_blkAnmFP13J3DDeformDataP13J3DAnmClusteriifss */
|
||||
int mDoExt_blkAnm::init(J3DDeformData* i_deformData, J3DAnmCluster* i_blk, int i_anmPlay,
|
||||
int i_attribute, f32 i_rate, s16 i_start, s16 param_6) {
|
||||
mpAnm = i_blk;
|
||||
|
@ -283,8 +277,7 @@ int mDoExt_blkAnm::init(J3DDeformData* i_deformData, J3DAnmCluster* i_blk, int i
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* 8000DAA8-8000DB10 0083E8 0068+00 3/3 0/0 0/0 .text mDoExt_changeMaterial__FP8J3DModel
|
||||
*/
|
||||
/* 8000DAA8-8000DB10 0083E8 0068+00 3/3 0/0 0/0 .text mDoExt_changeMaterial__FP8J3DModel */
|
||||
static void mDoExt_changeMaterial(J3DModel* i_model) {
|
||||
J3DModelData* model_data = i_model->getModelData();
|
||||
|
||||
|
@ -293,8 +286,7 @@ static void mDoExt_changeMaterial(J3DModel* i_model) {
|
|||
}
|
||||
}
|
||||
|
||||
/* 8000DB10-8000DBC8 008450 00B8+00 0/0 0/0 1/1 .text mDoExt_modelTexturePatch__FP12J3DModelData
|
||||
*/
|
||||
/* 8000DB10-8000DBC8 008450 00B8+00 0/0 0/0 1/1 .text mDoExt_modelTexturePatch__FP12J3DModelData */
|
||||
void mDoExt_modelTexturePatch(J3DModelData* i_modelData) {
|
||||
j3dSys.setTexture(i_modelData->getTexture());
|
||||
|
||||
|
@ -355,8 +347,7 @@ void mDoExt_modelUpdateDL(J3DModel* i_model) {
|
|||
i_model->viewCalc();
|
||||
}
|
||||
|
||||
/* 8000DD64-8000DDF0 0086A4 008C+00 4/4 3/3 10/10 .text mDoExt_modelEntryDL__FP8J3DModel
|
||||
*/
|
||||
/* 8000DD64-8000DDF0 0086A4 008C+00 4/4 3/3 10/10 .text mDoExt_modelEntryDL__FP8J3DModel */
|
||||
void mDoExt_modelEntryDL(J3DModel* i_model) {
|
||||
J3DModelData* model_data = i_model->getModelData();
|
||||
|
||||
|
@ -400,8 +391,7 @@ void mDoExt_brkAnmRemove(J3DModelData* i_modelData) {
|
|||
}
|
||||
}
|
||||
|
||||
/* 8000E53C-8000E5F8 008E7C 00BC+00 0/0 0/0 19/19 .text
|
||||
* create__21mDoExt_invisibleModelFP8J3DModelUc */
|
||||
/* 8000E53C-8000E5F8 008E7C 00BC+00 0/0 0/0 19/19 .text create__21mDoExt_invisibleModelFP8J3DModelUc */
|
||||
int mDoExt_invisibleModel::create(J3DModel* i_model, u8 param_1) {
|
||||
J3DModelData* model_data = i_model->getModelData();
|
||||
|
||||
|
|
Loading…
Reference in New Issue