d_a_player_main

This commit is contained in:
LagoLunatic
2024-01-03 15:55:56 -05:00
parent a811016a06
commit ea78ea5f5c
26 changed files with 1269 additions and 425 deletions
+98 -98
View File
@@ -2,104 +2,104 @@
#define JAZELAUDIO_BGM_H
enum {
JA_BGM_SE_SEQUENCE = 0x0800,
JA_BGM_ISLAND_LINK = 0x0001,
JA_BGM_ITEM_GET = 0x0002,
JA_BGM_GOMA = 0x0003,
JA_BGM_BATTLE_NORM = 0x0004,
JA_BGM_KINDAN_BOSS = 0x0005,
JA_BGM_D_RYU_MT = 0x0006,
JA_BGM_I_MAJU = 0x0007,
JA_BGM_HOUSE = 0x0008,
JA_BGM_OPEN_BOX = 0x0009,
JA_BGM_DIE_LINK = 0x000A,
JA_BGM_SEA_GAME = 0x000B,
JA_BGM_SEA_GOAL = 0x000C,
JA_BGM_SEA_FAIL = 0x000D,
JA_BGM_ISLAND_LINK_2 = 0x000E,
JA_BGM_I_MAJU_JAIL = 0x000F,
JA_BGM_GOMA_2 = 0x0010,
JA_BGM_JI_TRAINING = 0x0011,
JA_BGM_TETRA_MEET = 0x0012,
JA_BGM_BK_FLY_DOWN = 0x0013,
JA_BGM_DK_BATTLE = 0x0014,
JA_BGM_MJ_TOWER_BATTLE = 0x0015,
JA_BGM_FIND_TETRA = 0x0016,
JA_BGM_I_LINK_FOREST = 0x0017,
JA_BGM_HOUSE_G = 0x0018,
JA_BGM_MBOSS = 0x0019,
JA_BGM_MBOSS_S = 0x001A,
JA_BGM_BOAT_SHOP = 0x001B,
JA_BGM_SEA_ENEMY = 0x001C,
JA_BGM_MORNING = 0x001D,
JA_BGM_SELECT = 0x001E,
JA_BGM_MEDRI_AWAKE = 0x001F,
JA_BGM_MAKORE_AWAKE = 0x0020,
JA_BGM_TAKT_MAKORE = 0x0021,
JA_BGM_TAKT_MEDRI = 0x0022,
JA_BGM_BST_BATTLE = 0x0023,
JA_BGM_GET_HEART = 0x0024,
JA_BGM_ITEM_GET_S = 0x0025,
JA_BGM_D_FOREST = 0x0026,
JA_BGM_GET_SONG = 0x0027,
JA_BGM_KAMI_TOWER = 0x0028,
JA_BGM_RANE_BATTLE = 0x0029,
JA_BGM_PIRATE = 0x002A,
JA_BGM_DIOCTA_BATTLE = 0x002B,
JA_BGM_PIRATE_C = 0x002C,
JA_BGM_D_EARTH = 0x002D,
JA_BGM_SEA = 0x002E,
JA_BGM_D_WIND = 0x002F,
JA_BGM_TAKT_CHUYA = 0x0030,
JA_BGM_TAKT_KAZE = 0x0031,
JA_BGM_TAKT_SHIPPU = 0x0032,
JA_BGM_TETRA_MEET_B = 0x0033,
JA_BGM_HYRULE_OFF = 0x0034,
JA_BGM_HYRULE_ON = 0x0035,
JA_BGM_CB_NEXTYEAR = 0x0036,
JA_BGM_CB_NEXTYEAR_W = 0x0037,
JA_BGM_ISLAND_LINK_0 = 0x0038,
JA_BGM_ISLAND_WOOD = 0x0039,
JA_BGM_ISLAND_DRAGON = 0x003A,
JA_BGM_ISLAND_TAURA = 0x003B,
JA_BGM_SEA_STORM = 0x003C,
JA_BGM_PIRATE_DEMO5 = 0x003D,
JA_BGM_JI_TRAINING_2 = 0x003E,
JA_BGM_I_WOOD_INNER = 0x003F,
JA_BGM_DRUG_STORE = 0x0040,
JA_BGM_P_GANON_1 = 0x0041,
JA_BGM_D_GANON_1 = 0x0042,
JA_BGM_D_GANON_2 = 0x0043,
JA_BGM_BAACHAN = 0x0044,
JA_BGM_DEKU_PINCH = 0x0045,
JA_BGM_DIOCTA_2 = 0x0046,
JA_BGM_P_GANON_2 = 0x0047,
JA_BGM_BIG_POW = 0x0048,
JA_BGM_PAST_BIG_POW = 0x0049,
JA_BGM_PAST_BKM = 0x004A,
JA_BGM_PAST_GOMA = 0x004B,
JA_BGM_PAST_RANE = 0x004C,
JA_BGM_GANON_BATTLE = 0x004D,
JA_BGM_MASTER_SWORD = 0x004E,
JA_BGM_GET_PEARL = 0x004F,
JA_BGM_BIRDMAN = 0x0050,
JA_BGM_BIRDMAN_GOAL = 0x0051,
JA_BGM_BIRDMAN_FAIL = 0x0052,
JA_BGM_ELF = 0x0053,
JA_BGM_PAST_GOMA_2 = 0x0054,
JA_BGM_ISLAND_LINK_3 = 0x0055,
JA_BGM_DEATH_VALLEY = 0x0056,
JA_BGM_JABOO_CAVE = 0x0057,
JA_BGM_SUB_DUNGEON = 0x0058,
JA_BGM_BGN_KUGUTSU = 0x0059,
JA_BGM_BGN_TARABA = 0x005A,
JA_BGM_BGN_HAYAMUSHI = 0x005B,
JA_BGM_BGN_TARABA_IN = 0x005C,
JA_BGM_BGN_GET_BOX = 0x005D,
JA_BGM_I_MAJU_2ND = 0x005E,
JA_BGM_MAKORE_TAKT_8 = 0x005F,
JA_BGM_MEDORI_TAKT_8 = 0x0060,
JA_BGM_TRIFORCE_DEMO = 0x0061,
JA_BGM_SE_SEQUENCE = 0x80000800,
JA_BGM_ISLAND_LINK = 0x80000001,
JA_BGM_ITEM_GET = 0x80000002,
JA_BGM_GOMA = 0x80000003,
JA_BGM_BATTLE_NORM = 0x80000004,
JA_BGM_KINDAN_BOSS = 0x80000005,
JA_BGM_D_RYU_MT = 0x80000006,
JA_BGM_I_MAJU = 0x80000007,
JA_BGM_HOUSE = 0x80000008,
JA_BGM_OPEN_BOX = 0x80000009,
JA_BGM_DIE_LINK = 0x8000000A,
JA_BGM_SEA_GAME = 0x8000000B,
JA_BGM_SEA_GOAL = 0x8000000C,
JA_BGM_SEA_FAIL = 0x8000000D,
JA_BGM_ISLAND_LINK_2 = 0x8000000E,
JA_BGM_I_MAJU_JAIL = 0x8000000F,
JA_BGM_GOMA_2 = 0x80000010,
JA_BGM_JI_TRAINING = 0x80000011,
JA_BGM_TETRA_MEET = 0x80000012,
JA_BGM_BK_FLY_DOWN = 0x80000013,
JA_BGM_DK_BATTLE = 0x80000014,
JA_BGM_MJ_TOWER_BATTLE = 0x80000015,
JA_BGM_FIND_TETRA = 0x80000016,
JA_BGM_I_LINK_FOREST = 0x80000017,
JA_BGM_HOUSE_G = 0x80000018,
JA_BGM_MBOSS = 0x80000019,
JA_BGM_MBOSS_S = 0x8000001A,
JA_BGM_BOAT_SHOP = 0x8000001B,
JA_BGM_SEA_ENEMY = 0x8000001C,
JA_BGM_MORNING = 0x8000001D,
JA_BGM_SELECT = 0x8000001E,
JA_BGM_MEDRI_AWAKE = 0x8000001F,
JA_BGM_MAKORE_AWAKE = 0x80000020,
JA_BGM_TAKT_MAKORE = 0x80000021,
JA_BGM_TAKT_MEDRI = 0x80000022,
JA_BGM_BST_BATTLE = 0x80000023,
JA_BGM_GET_HEART = 0x80000024,
JA_BGM_ITEM_GET_S = 0x80000025,
JA_BGM_D_FOREST = 0x80000026,
JA_BGM_GET_SONG = 0x80000027,
JA_BGM_KAMI_TOWER = 0x80000028,
JA_BGM_RANE_BATTLE = 0x80000029,
JA_BGM_PIRATE = 0x8000002A,
JA_BGM_DIOCTA_BATTLE = 0x8000002B,
JA_BGM_PIRATE_C = 0x8000002C,
JA_BGM_D_EARTH = 0x8000002D,
JA_BGM_SEA = 0x8000002E,
JA_BGM_D_WIND = 0x8000002F,
JA_BGM_TAKT_CHUYA = 0x80000030,
JA_BGM_TAKT_KAZE = 0x80000031,
JA_BGM_TAKT_SHIPPU = 0x80000032,
JA_BGM_TETRA_MEET_B = 0x80000033,
JA_BGM_HYRULE_OFF = 0x80000034,
JA_BGM_HYRULE_ON = 0x80000035,
JA_BGM_CB_NEXTYEAR = 0x80000036,
JA_BGM_CB_NEXTYEAR_W = 0x80000037,
JA_BGM_ISLAND_LINK_0 = 0x80000038,
JA_BGM_ISLAND_WOOD = 0x80000039,
JA_BGM_ISLAND_DRAGON = 0x8000003A,
JA_BGM_ISLAND_TAURA = 0x8000003B,
JA_BGM_SEA_STORM = 0x8000003C,
JA_BGM_PIRATE_DEMO5 = 0x8000003D,
JA_BGM_JI_TRAINING_2 = 0x8000003E,
JA_BGM_I_WOOD_INNER = 0x8000003F,
JA_BGM_DRUG_STORE = 0x80000040,
JA_BGM_P_GANON_1 = 0x80000041,
JA_BGM_D_GANON_1 = 0x80000042,
JA_BGM_D_GANON_2 = 0x80000043,
JA_BGM_BAACHAN = 0x80000044,
JA_BGM_DEKU_PINCH = 0x80000045,
JA_BGM_DIOCTA_2 = 0x80000046,
JA_BGM_P_GANON_2 = 0x80000047,
JA_BGM_BIG_POW = 0x80000048,
JA_BGM_PAST_BIG_POW = 0x80000049,
JA_BGM_PAST_BKM = 0x8000004A,
JA_BGM_PAST_GOMA = 0x8000004B,
JA_BGM_PAST_RANE = 0x8000004C,
JA_BGM_GANON_BATTLE = 0x8000004D,
JA_BGM_MASTER_SWORD = 0x8000004E,
JA_BGM_GET_PEARL = 0x8000004F,
JA_BGM_BIRDMAN = 0x80000050,
JA_BGM_BIRDMAN_GOAL = 0x80000051,
JA_BGM_BIRDMAN_FAIL = 0x80000052,
JA_BGM_ELF = 0x80000053,
JA_BGM_PAST_GOMA_2 = 0x80000054,
JA_BGM_ISLAND_LINK_3 = 0x80000055,
JA_BGM_DEATH_VALLEY = 0x80000056,
JA_BGM_JABOO_CAVE = 0x80000057,
JA_BGM_SUB_DUNGEON = 0x80000058,
JA_BGM_BGN_KUGUTSU = 0x80000059,
JA_BGM_BGN_TARABA = 0x8000005A,
JA_BGM_BGN_HAYAMUSHI = 0x8000005B,
JA_BGM_BGN_TARABA_IN = 0x8000005C,
JA_BGM_BGN_GET_BOX = 0x8000005D,
JA_BGM_I_MAJU_2ND = 0x8000005E,
JA_BGM_MAKORE_TAKT_8 = 0x8000005F,
JA_BGM_MEDORI_TAKT_8 = 0x80000060,
JA_BGM_TRIFORCE_DEMO = 0x80000061,
};
#endif /* JAZELAUDIO_BGM_H */
@@ -370,6 +370,7 @@ protected:
/* 0x22 */ u16 field_0x22;
}; // Size: 0x24
// BCK
class J3DAnmTransformKey : public J3DAnmTransform {
public:
friend class J3DAnmKeyLoader_v15;
@@ -389,6 +390,7 @@ private:
/* 0x28 */ J3DAnmTransformKeyTable* field_0x28;
}; // Size: 0x2C
// BCA
class J3DAnmTransformFull : public J3DAnmTransform {
public:
friend class J3DAnmFullLoader_v15;
@@ -408,6 +410,7 @@ struct J3DTextureSRTInfo;
class J3DModelData;
class J3DMaterialTable;
// BTK
class J3DAnmTextureSRTKey : public J3DAnmBase {
public:
friend class J3DAnmKeyLoader_v15;
@@ -453,8 +456,8 @@ public:
JUTNameTab * getPostUpdateMaterialName() { return &mPostUpdateMaterialName; }
u16 getPostUpdateTexMtxID(u16 idx) const { return mPostUpdateTexMtxID[idx]; }
u32 getTexMtxCalcType() const { return mTexMtxCalcType; }
Vec& getSRTCenter(u16 idx) const { return mSRTCenter[idx]; }
u32 getTexMtxCalcType() { return mTexMtxCalcType; }
Vec& getSRTCenter(u16 idx) { return mSRTCenter[idx]; }
private:
/* 0x10 */ int mDecShift;
@@ -487,6 +490,7 @@ private:
STATIC_ASSERT(sizeof(J3DAnmTextureSRTKey) == 0x88);
// BVA
class J3DAnmVisibilityFull : public J3DAnmBase {
public:
friend class J3DAnmFullLoader_v15;
@@ -511,6 +515,7 @@ private:
/* 0x18 */ u8* mVisibility;
}; // Size: 0x1C
// BTP
class J3DAnmTexPattern : public J3DAnmBase {
public:
friend class J3DAnmFullLoader_v15;
@@ -543,6 +548,7 @@ private:
/* 0x20 */ JUTNameTab mUpdateMaterialName;
}; // Size: 0x2C
// BRK
class J3DAnmTevRegKey : public J3DAnmBase {
public:
friend class J3DAnmKeyLoader_v15;
@@ -616,6 +622,7 @@ private:
/* 0x70 */ s16 * mAnmKRegDataA;
}; // Size: 0x74
// BPK
class J3DAnmColor : public J3DAnmBase {
public:
J3DAnmColor() : J3DAnmBase(0) {
@@ -775,6 +782,7 @@ protected:
/* 0x10 */ f32* mWeight;
}; // Size: 0x14
// BLA
class J3DAnmClusterFull : public J3DAnmCluster {
public:
friend class J3DAnmFullLoader_v15;
@@ -791,6 +799,7 @@ private:
/* 0x14 */ J3DAnmClusterFullTable * mAnmTable;
};
// BLK
class J3DAnmClusterKey : public J3DAnmCluster {
public:
friend class J3DAnmKeyLoader_v15;
@@ -30,7 +30,7 @@ public:
int removeTevRegAnimator(J3DAnmTevRegKey*);
s32 setMatColorAnimator(J3DAnmColor*, J3DMatColorAnm *);
s32 setTexNoAnimator(J3DAnmTexPattern*, J3DTexNoAnm*);
s32 setTexMtxAnimator(J3DAnmTextureSRTKey*, J3DTexMtxAnm*, J3DTexMtxAnm*);
s32 setTexMtxAnimator(J3DAnmTextureSRTKey* pAnm, J3DTexMtxAnm* pTexAnm, J3DTexMtxAnm* pDualAnmR);
s32 setTevRegAnimator(J3DAnmTevRegKey*, J3DTevColorAnm*, J3DTevKColorAnm*);
virtual ~J3DMaterialTable();
@@ -81,6 +81,9 @@ public:
bool checkBBoardFlag() const { return mbHasBillboard == 1; }
void entryTexMtxAnimator(J3DAnmTextureSRTKey* anm) { mMaterialTable.entryTexMtxAnimator(anm); }
void entryTevRegAnimator(J3DAnmTevRegKey* anm) { mMaterialTable.entryTevRegAnimator(anm); }
void setTexMtxAnimator(J3DAnmTextureSRTKey* pAnm, J3DTexMtxAnm* pTexAnm, J3DTexMtxAnm* pDualAnmR) {
mMaterialTable.setTexMtxAnimator(pAnm, pTexAnm, pDualAnmR);
}
int removeTexNoAnimator(J3DAnmTexPattern* anm) {
return mMaterialTable.removeTexNoAnimator(anm);
}
@@ -104,7 +107,6 @@ public:
void getBinary() {}
void getRootNode() {}
void setMatColorAnimator(J3DAnmColor*, J3DMatColorAnm*) {}
void setTexMtxAnimator(J3DAnmTextureSRTKey*, J3DTexMtxAnm*, J3DTexMtxAnm*) {}
void setTexNoAnimator(J3DAnmTexPattern*, J3DTexNoAnm*) {}
private:
+35 -12
View File
@@ -44,27 +44,26 @@ public:
J3DMaterial() { initialize(); }
~J3DMaterial() {}
J3DMaterial* getNext() const { return mNext; }
J3DMaterial* getNext() { return mNext; }
void setNext(J3DMaterial* material) {mNext = material; }
J3DShape* getShape() const { return mShape; }
u32 getMaterialMode() { return mMaterialMode; }
void setMaterialMode(u32 mode) { mMaterialMode = mode; }
J3DTevBlock* getTevBlock() const { return mTevBlock; }
J3DColorBlock* getColorBlock() const { return mColorBlock; }
J3DTexGenBlock* getTexGenBlock() const { return mTexGenBlock; }
J3DDisplayListObj* getSharedDisplayListObj() const { return mSharedDLObj; }
J3DIndBlock* getIndBlock() const { return mIndBlock; }
J3DShape* getShape() { return mShape; }
J3DJoint* getJoint() { return mJoint; }
J3DMaterialAnm* getMaterialAnm() const {
u32 getMaterialMode() { return mMaterialMode; }
void setMaterialMode(u32 mode) { mMaterialMode = mode; }
J3DTevBlock* getTevBlock() { return mTevBlock; }
J3DColorBlock* getColorBlock() { return mColorBlock; }
J3DTexGenBlock* getTexGenBlock() { return mTexGenBlock; }
J3DDisplayListObj* getSharedDisplayListObj() { return mSharedDLObj; }
J3DIndBlock* getIndBlock() { return mIndBlock; }
J3DMaterialAnm* getMaterialAnm() {
if ((u32)mMaterialAnm < 0xC0000000) {
return mMaterialAnm;
} else {
return NULL;
}
}
J3DNBTScale* getNBTScale() const { return mTexGenBlock->getNBTScale(); }
u16 getTexNo(u32 idx) const { return mTevBlock->getTexNo(idx); }
J3DNBTScale* getNBTScale() { return mTexGenBlock->getNBTScale(); }
u16 getTexNo(u32 idx) { return mTevBlock->getTexNo(idx); }
J3DGXColor* getTevKColor(u32 param_0) { return mTevBlock->getTevKColor(param_0); }
J3DGXColorS10* getTevColor(u32 param_0) { return mTevBlock->getTevColor(param_0); }
J3DFog* getFog() { return mPEBlock->getFog(); }
@@ -73,6 +72,8 @@ public:
J3DAlphaComp* getAlphaComp() { return mPEBlock->getAlphaComp(); }
u8 getZCompLoc() { return mPEBlock->getZCompLoc(); }
J3DTexMtx* getTexMtx(u32 idx) { return mTexGenBlock->getTexMtx(idx); }
void setTexMtx(u32 idx, J3DTexMtx* texMtx) { mTexGenBlock->setTexMtx(idx, texMtx); }
J3DTexCoord* getTexCoord(u32 idx) { return mTexGenBlock->getTexCoord(idx); }
u16 getIndex() { return mIndex; }
bool isDrawModeOpaTexEdge() { return (mMaterialMode & 3) == 0; }
J3DPEBlock* getPEBlock() { return mPEBlock; }
@@ -87,6 +88,28 @@ public:
void setMaterialAnm(J3DMaterialAnm* i_anm) { mMaterialAnm = i_anm; }
void setCullMode(u8 i_mode) { mColorBlock->setCullMode(i_mode); }
void addShape(J3DShape*) {}
void getAmbColor(u32) {}
void getColorChan(u32) {}
void getColorChanNum() const {}
void getCullMode() const {}
void getCurrentMtx() const {}
void getDither() const {}
void getIndTevStage(u32) {}
void getIndTexCoordScale(u32) {}
void getIndTexOrder(u32) {}
void getLight(u32) {}
void getMatColor(u32) {}
void getTevKAlphaSel(u32) {}
void getTevKColorSel(u32) {}
void getTevOrder(u32) {}
void getTevStage(u32) {}
void getTevSwapModeTable(u32) {}
void getZCompLoc() const {}
void setJoint(J3DJoint*) {}
void setLight(u32, J3DLightObj*) {}
void setTevStageNum(u8) {}
public:
/* 0x04 */ J3DMaterial* mNext;
/* 0x08 */ J3DShape* mShape;
+6 -4
View File
@@ -57,9 +57,9 @@ public:
mTexMtxInfo = info;
}
~J3DTexMtx() {}
void load(u32 i) const {
void load(u32 texMtxID) const {
GDOverflowCheck(53);
J3DGDLoadTexMtxImm((Mtx&)mMtx, i * 3 + 30, (GXTexMtxType)mTexMtxInfo.mProjection);
J3DGDLoadTexMtxImm((Mtx&)mMtx, GX_TEXMTX0 + texMtxID * 3, (GXTexMtxType)mTexMtxInfo.mProjection);
};
void calc();
void calcTexMtx(f32 const (*)[4]);
@@ -71,13 +71,15 @@ public:
Mtx& getMtx() { return mMtx; }
void setEffectMtx(Mtx effectMtx) { mTexMtxInfo.setEffectMtx(effectMtx); }
Mtx& getViewMtx() { return mViewMtx; }
void setViewMtx(const Mtx viewMtx) { MTXCopy(viewMtx, mViewMtx); }
void setViewMtx(Mtx viewMtx) { MTXCopy(viewMtx, mViewMtx); }
void getTextureSRT() {}
private:
/* 0x00 */ J3DTexMtxInfo mTexMtxInfo;
/* 0x64 */ Mtx mMtx;
/* 0x94 */ Mtx mViewMtx;
}; // Size: 0xc4
}; // Size: 0xC4
struct J3DTexCoord : public J3DTexCoordInfo {
J3DTexCoord() { *(J3DTexCoordInfo*)this = j3dDefaultTexCoordInfo[0]; }
+2 -2
View File
@@ -121,8 +121,8 @@ public:
bool getDirEntry(SDirEntry*, u32) const;
void* getIdxResource(u32);
void* getResource(u16);
u32 readIdxResource(void*, u32, u32);
u32 readResource(void*, u32, u16);
u32 readIdxResource(void* buffer, u32 bufferSize, u32 index);
u32 readResource(void* buffer, u32 bufferSize, u16 id);
u32 countResource(u32) const;
JKRArcFinder* getFirstResource(u32) const;
u32 getFileAttribute(u32) const;
+3 -3
View File
@@ -4,9 +4,9 @@
#include "dolphin/types.h"
struct counter_class {
u32 mCounter0;
s32 mCounter1;
u32 mTimer;
/* 0x00 */ u32 mCounter0;
/* 0x04 */ s32 mCounter1;
/* 0x08 */ u32 mTimer;
};
extern counter_class g_Counter;
+2 -2
View File
@@ -22,7 +22,7 @@ public:
cXyz getMoveVec() const { return mMoveVec; }
u32 getCarryActorID() const { return mCarryActorID; }
void getHookAngle() {}
void getMtxTop() {}
MtxP getMtxTop() { return mMtx; }
void getObjHookFlg() const {}
void getSightHit() const {}
void getObjSightCrossPos() {}
@@ -72,7 +72,7 @@ public:
/* 0x3D4 */ dCcD_Cps mCps;
/* 0x50C */ cXyz m50C;
/* 0x518 */ u32 mCarryActorID;
/* 0x51C */ Mtx m51C;
/* 0x51C */ Mtx mMtx;
/* 0x54C */ ProcFunc mCurrProcFunc;
};
+212 -26
View File
@@ -36,7 +36,7 @@ public:
public:
/* 0x6C */ cXy mEyePosOld;
/* 0x74 */ cXy mEyePos;
};
}; // Size: 0x7C
class daPy_mtxFollowEcallBack_c : public dPa_levelEcallBack {
public:
@@ -54,9 +54,12 @@ public:
STATIC_ASSERT(sizeof(daPy_mtxFollowEcallBack_c) == 0x0C);
// TODO: this probably does not belong in d_a_player.h based on the .text section splitting in d_a_player_main
class daPy_HIO_c {
public:
daPy_HIO_c() {}
// TODO: constructor should be weak, but not inlined?
// daPy_HIO_c() {}
daPy_HIO_c();
public:
/* 0x00 */ u8 temp[0x3F - 0x00];
@@ -109,6 +112,7 @@ public:
daPyFlg0_UNK10000 = 0x00010000,
daPyFlg0_NO_FALL_VOICE = 0x00040000,
daPyFlg0_SCOPE_CANCEL = 0x00080000,
daPyFlg0_PHOTO_BOX_CANCEL = 0x00080000, // Same as scope cancel
daPyFlg0_UNK200000 = 0x00200000,
daPyFlg0_EQUIP_HEAVY_BOOTS = 0x02000000,
daPyFlg0_NO_DRAW = 0x08000000,
@@ -164,42 +168,220 @@ public:
};
enum daPy_FACE {
// Index in daPy_lk_c::mTexAnmIndexTable
daPyFace_TMABAA = 0x00,
daPyFace_TMABAA_TEUP = 0x01,
daPyFace_TMABAB = 0x02,
daPyFace_TMABAC = 0x03,
daPyFace_TMABACB = 0x04,
daPyFace_TMABACB_TEDW = 0x05,
daPyFace_TMABACC = 0x06,
daPyFace_TMABAD = 0x07,
daPyFace_TMABAD_TEDW = 0x08,
daPyFace_TMABAE = 0x09,
daPyFace_TMABAE_TEUP = 0x0A,
daPyFace_TMABAE_TEDW = 0x0B,
daPyFace_TMABAE_TEL = 0x0C,
daPyFace_TMABAE_TER = 0x0D,
daPyFace_TMABAF = 0x0E,
daPyFace_TMABAG = 0x0F,
daPyFace_TMABAH = 0x10,
daPyFace_TMABAI = 0x11,
daPyFace_TMABAJ_TEYORIME = 0x12,
daPyFace_TMABAD_TWAITPICKUP = 0x13,
daPyFace_TMABAC_THOOKSHOTJMP = 0x14,
daPyFace_TGRABP = 0x15,
daPyFace_TGRABUP = 0x16,
daPyFace_TGRABNG = 0x17,
daPyFace_TGRABTHROW = 0x18,
daPyFace_TGRABRE = 0x19,
daPyFace_TWALLWL = 0x1A,
daPyFace_TWALLWR = 0x1B,
daPyFace_TWALLPL = 0x1C,
daPyFace_TWALLPR = 0x1D,
daPyFace_TCUT = 0x1E,
daPyFace_TCUTEA = 0x1F,
daPyFace_TCUTEA_TECN = 0x20,
daPyFace_TEXCA1 = 0x21,
daPyFace_TEXCB1 = 0x22,
daPyFace_TJATTACK = 0x23,
daPyFace_TJATTACK_TEUP = 0x24,
daPyFace_TCUTTURNP = 0x25,
daPyFace_TCUTTURN = 0x26,
daPyFace_TMJMP = 0x27,
daPyFace_TMJMPC = 0x28,
daPyFace_TMROLLL = 0x29,
daPyFace_TMROLLR = 0x2A,
daPyFace_TMROLLLC = 0x2B,
daPyFace_TMROLLRC = 0x2C,
daPyFace_TMSTEPOVER = 0x2D,
daPyFace_TMSTEPOVERA = 0x2E,
daPyFace_TMSTEPOVERLAND = 0x2F,
daPyFace_TATNJL = 0x30,
daPyFace_TATNJR = 0x31,
daPyFace_TJMP = 0x32,
daPyFace_TROLLF = 0x33,
daPyFace_TROLLB = 0x34,
daPyFace_TROLLBLAND = 0x35,
daPyFace_TROLLFMIS = 0x36,
daPyFace_TFALL = 0x37,
daPyFace_TLANDDAMA = 0x38,
daPyFace_TLANDDAMAST = 0x39,
daPyFace_TDAM = 0x3A,
daPyFace_TDAMF = 0x3B,
daPyFace_TDAMFFUP = 0x3C,
daPyFace_TDAMFBUP = 0x3D,
daPyFace_TDAMFLUP = 0x3E,
daPyFace_TDAMFRUP = 0x3F,
daPyFace_TDAMDASH = 0x40,
daPyFace_TGUARD = 0x41,
daPyFace_TSLIDEF = 0x42,
daPyFace_TSLIDEFLAND = 0x43,
daPyFace_TSLIDEB = 0x44,
daPyFace_TSLIDEBLAND = 0x45,
daPyFace_TSWIMP = 0x46,
daPyFace_TSWIMING = 0x47,
daPyFace_TBOOMTHROW = 0x48,
daPyFace_TBOOMCATCH = 0x49,
daPyFace_TWALKPUSH = 0x4A,
daPyFace_TWALKPULL = 0x4B,
daPyFace_TVJMPCHA = 0x4C,
daPyFace_TVJMPCL = 0x4D,
daPyFace_TROPECLIMB = 0x4E,
daPyFace_TROPEDOWN = 0x4F,
daPyFace_TLADDERUPST = 0x50,
daPyFace_TLADDERDWST = 0x51,
daPyFace_TLADDERUPED = 0x52,
daPyFace_TLADDERDWED = 0x53,
daPyFace_THANGING = 0x54,
daPyFace_THANGUP = 0x55,
daPyFace_TLAVADAM = 0x56,
daPyFace_TCUTRE = 0x57,
daPyFace_TCUTTURNB = 0x58,
daPyFace_TWAITATOB = 0x59,
daPyFace_TCOMEOUT = 0x5A,
daPyFace_THOLDUP = 0x5B,
daPyFace_TWALLHOLDUP = 0x5C,
daPyFace_TITEMGET = 0x5D,
daPyFace_TSALTATION = 0x5E,
daPyFace_TWHO = 0x5F,
daPyFace_TPICKUP = 0x60,
daPyFace_TBOXOPENLINK = 0x61,
daPyFace_TBOXOPENSHORTLINK = 0x62,
daPyFace_TDIELONG = 0x63,
daPyFace_TSWIMDIE = 0x64,
daPyFace_TSURPRISED = 0x65,
daPyFace_TTURNBACK = 0x66,
daPyFace_TLOOKUP = 0x67,
daPyFace_TWAITQ = 0x68,
daPyFace_TGLAD = 0x69,
daPyFace_TCUTBOKO = 0x6A,
daPyFace_SHIP_JUMP1 = 0x6B,
daPyFace_SHIP_JUMP2 = 0x6C,
daPyFace_TUSEFANA = 0x6D,
daPyFace_TUSEFANB = 0x6E,
daPyFace_TUSEFANB2 = 0x6F,
daPyFace_TBOWWAIT = 0x70,
daPyFace_TVOMITJMP = 0x71,
daPyFace_TREST = 0x72,
daPyFace_TTAKE = 0x73,
daPyFace_TTAKELR = 0x74,
daPyFace_TSLIPICE = 0x75,
daPyFace_THAMSWINGA = 0x76,
daPyFace_THAMSWINGBPRE = 0x77,
daPyFace_THAMSWINGBHIT = 0x78,
daPyFace_THAMSWINGBEND = 0x79,
daPyFace_TSETBOOTS = 0x7A,
daPyFace_TDOOROPENALINK = 0x7B,
daPyFace_TDOOROPENBLINK = 0x7C,
daPyFace_TSEYYES = 0x7D,
daPyFace_TPRESENTATIONA = 0x7E,
daPyFace_TWINDL = 0x7F,
daPyFace_TWINDR = 0x80,
daPyFace_TPRESENTATIONB = 0x81,
daPyFace_TBINDRINKPRE = 0x82,
daPyFace_TBINDRINKING = 0x83,
daPyFace_TBINDRINKAFTER = 0x84,
daPyFace_TBINDRINKPRE2 = 0x85,
daPyFace_TBINDRINKING2 = 0x86,
daPyFace_TBINDRINKAFTER2 = 0x87,
daPyFace_TBINOPENPRE = 0x88,
daPyFace_TBINOPENA = 0x89,
daPyFace_TBINOPENB = 0x8A,
daPyFace_TBINSWING = 0x8B,
daPyFace_TBINGET = 0x8C,
daPyFace_TARROWRELORD = 0x8D,
daPyFace_TSURPRISEDB = 0x8E,
daPyFace_TFAN = 0x8F,
daPyFace_TNENRIKI = 0x90,
daPyFace_TMABAB_TEDL = 0x91,
daPyFace_TMABAH_TABEKOBE = 0x92,
daPyFace_TSETHYOINOMI = 0x93,
daPyFace_LINK_FREEZ = 0x94,
daPyFace_LINK_MOGAKI = 0x95,
daPyFace_TDAMBIRI = 0x96,
daPyFace_SALVLR = 0x97,
daPyFace_SALVWAIT = 0x98,
daPyFace_SALVBAD = 0x99,
daPyFace_SALVGOOD = 0x9A,
daPyFace_SEARESET = 0x9B,
daPyFace_TWARPIN = 0x9C,
daPyFace_TWARPOUT = 0x9D,
daPyFace_TPOWUPWAIT = 0x9E,
daPyFace_TPOWUP = 0x9F,
daPyFace_TCUTKESA = 0xA0,
daPyFace_TWARPOUTFIRST = 0xA1,
daPyFace_TDASHKAZE = 0xA2,
daPyFace_TIYAYA = 0xA3,
daPyFace_TFREEA = 0xA4,
daPyFace_TFREEB = 0xA5,
daPyFace_TFREED = 0xA6,
daPyFace_TTAKTKAZE = 0xA7,
daPyFace_TTAKTSIPPU = 0xA8,
daPyFace_TTAKTCHUYA = 0xA9,
daPyFace_TTAKTFUJIN = 0xAA,
daPyFace_TTAKTAYATSURI = 0xAB,
daPyFace_TTAKTCHISIN = 0xAC,
daPyFace_UNKNOWN = 0xAD, // Not an index, this is a special value checked in checkNormalFace()
};
/* 0x290 */ u8 mAttackState;
/* 0x290 */ u8 mCutType;
/* 0x291 */ u8 field_0x291;
/* 0x292 */ u8 field_0x292[0x294 - 0x292];
/* 0x294 */ s16 mDamageWaitTimer;
/* 0x296 */ s16 mQuakeTimer;
/* 0x298 */ int field_0x298;
/* 0x298 */ int mFace;
/* 0x29C */ u32 mNoResetFlg0;
/* 0x2A0 */ u32 mNoResetFlg1;
/* 0x2A4 */ u32 mResetFlg0;
/* 0x2A8 */ f32 field_0x2a8;
/* 0x2AC */ f32 field_0x2ac;
/* 0x2AC */ f32 mHeight;
/* 0x2B0 */ f32 field_0x2b0;
/* 0x2B4 */ csXyz mBodyAngle;
/* 0x2BA */ u8 field_0x2BA[0x2BC - 0x2BA];
/* 0x2BC */ cXyz mHeadTopPos;
/* 0x2C8 */ cXyz mSwordTopPos;
/* 0x2D4 */ cXyz field_0x2d4;
/* 0x2E0 */ cXyz field_0x2e0;
/* 0x2D4 */ cXyz mLeftHandPos;
/* 0x2E0 */ cXyz mRightHandPos;
/* 0x2EC */ cXyz mRopePos;
/* 0x2F8 */ cXyz field_0x2f8;
/* 0x304 */ daPy_demo_c mDemo;
/* 0x31C */ /* vtable */
u8 getCutType() const { return mAttackState; }
f32 getSpeedF() const { return speedF; }
u8 getCutType() const { return mCutType; }
s16 getDamageWaitTimer() const { return mDamageWaitTimer; }
s16 getBodyAngleX() { return mBodyAngle.x; }
s16 getBodyAngleY() { return mBodyAngle.y; }
void getLeftHandPos() const {}
void getRightHandPos() const {}
void getSwordTopPos() const {}
f32 getHeight() const { return mHeight; }
s16 getBodyAngleX() const { return mBodyAngle.x; }
s16 getBodyAngleY() const { return mBodyAngle.y; }
cXyz getHeadTopPos() const { return mHeadTopPos; }
cXyz* getHeadTopPosP() { return &mHeadTopPos; }
f32 getSpeedF() const { return speedF; }
cXyz getSwordTopPos() const { return mSwordTopPos;}
cXyz getLeftHandPos() const { return mLeftHandPos; }
cXyz getRightHandPos() const { return mRightHandPos; }
cXyz getRopePos() const { return mRopePos; }
void getCutCount() const {} // field_0x291?
void getYPos() const {}
void changeDemoMode(u32) {}
void changeDemoMoveAngle(s16 angle) { mDemo.setMoveAngle(angle); }
@@ -208,6 +390,7 @@ public:
mDemo.setOriginalDemoType();
mDemo.setParam0(0);
}
void cancelOriginalDemo() {}
void onNoResetFlg0(daPy_FLG0 flag) { mNoResetFlg0 |= flag; }
void offNoResetFlg0(daPy_FLG0 flag) { mNoResetFlg0 &= ~flag; }
@@ -218,6 +401,7 @@ public:
bool checkEquipHoverBoots() const { return checkNoResetFlg0(daPyFlg0_HOVER_BOOTS); }
void onNoFallVoice() { onNoResetFlg0(daPyFlg0_NO_FALL_VOICE); }
void onScopeCancel() { onNoResetFlg0(daPyFlg0_SCOPE_CANCEL); }
void onPhotoBoxCancel() { onNoResetFlg0(daPyFlg0_PHOTO_BOX_CANCEL); }
bool checkEquipHeavyBoots() const { return checkNoResetFlg0(daPyFlg0_EQUIP_HEAVY_BOOTS); }
void onPlayerNoDraw() { onNoResetFlg0(daPyFlg0_NO_DRAW); }
void offPlayerNoDraw() { offNoResetFlg0(daPyFlg0_NO_DRAW); }
@@ -271,13 +455,19 @@ public:
bool checkArrowShoot() const { return checkResetFlg0(daPyRFlg0_ARROW_SHOOT); }
bool checkGrabWear() const { return field_0x2b0 < 0.0f; }
void checkMasterSwordEquip() const {}
void setFace(daPy_FACE face) { mFace = face; }
// checkSwordMiniGame__9daPy_py_cCFv
// checkNormalSwordEquip__9daPy_py_cCFv
// checkBowMiniGame__9daPy_py_cCFv
// checkUseArrowEffect__9daPy_py_cCFv
// checkFinalMasterSwordEquip__9daPy_py_cCFv
void checkNormalSwordEquip() const {}
void checkMasterSwordEquip() const {}
void checkFinalMasterSwordEquip() const {}
void checkBowMiniGame() const {}
void checkSwordMiniGame() const {}
void checkSoupPowerUp() const {}
void checkSubjectAccept() const {}
void checkTactInput() const {}
void checkUseArrowEffect() const {}
void getRopeJumpLand() const {}
void checkRopeForceEnd() const {}
virtual MtxP getLeftHandMatrix() = 0;
virtual MtxP getRightHandMatrix() = 0;
@@ -301,7 +491,7 @@ public:
virtual u32 getThrowBoomerangID() const { return -1; }
virtual u32 getGrabActorID() const { return -1; }
virtual BOOL checkGrabBarrel() { return FALSE; }
virtual BOOL checkPlayerNoDraw() { return FALSE; }
virtual u32 checkPlayerNoDraw() { return FALSE; }
virtual BOOL checkRopeTag() { return FALSE; }
virtual BOOL checkRopeReadyAnime() const { return FALSE; }
virtual void voiceStart(u32) {}
@@ -317,14 +507,10 @@ public:
virtual void changeTextureAnime(u16, u16, int) {}
virtual void cancelChangeTextureAnime() {}
void getRopeJumpLand() const;
void checkRopeForceEnd() const;
void changePlayer(fopAc_ac_c*);
void objWindHitCheck(dCcD_Cyl*);
void setDoButtonQuake();
void stopDoButtonQuake(int);
void getRopePos() const;
void setFace(daPy_py_c::daPy_FACE) {}
}; // Size: 0x320
#endif /* D_A_PLAYER */
+20 -27
View File
@@ -206,21 +206,24 @@ class daPy_footData_c {
public:
~daPy_footData_c();
daPy_footData_c();
public:
/* 0x000 */ u8 field_0x000[0x034 - 0x000];
/* 0x034 */ dBgS_LinkGndChk field_0x034;
/* 0x088 */ u8 field_0x088[0x118 - 0x088];
};
struct daPy_aura_c {
J3DModel* mpYaura00Model;
f32 mFrame;
public:
void setModel(J3DModel* model) { mpYaura00Model = model; }
J3DModel* getModel() { return mpYaura00Model; }
void setFrame(f32 frame) { mFrame = frame; }
f32 getFrame() { return mFrame; }
};
public:
/* 0x00 */ J3DModel* mpYaura00Model;
/* 0x04 */ f32 mFrame;
}; // Size: 0x08
class daPy_anmIndex_c {
public:
@@ -1496,7 +1499,7 @@ public:
J3DAnmTransform* getAnimeResource(daPy_anmHeap_c*, u16, u32);
void getUnderUpperAnime(daPy_anmIndex_c const*, J3DAnmTransform**, J3DAnmTransform**, int, u32);
void setTextureAnimeResource(J3DAnmTexPattern*, int);
void loadTextureAnimeResource(u32, int);
J3DAnmTexPattern* loadTextureAnimeResource(u32, BOOL);
BOOL checkBossBgm();
BOOL checkMabaAnimeBtp(int);
BOOL checkNormalFace();
@@ -2151,8 +2154,8 @@ public:
BOOL procHookshotMove();
BOOL procHookshotFly_init();
BOOL procHookshotFly();
void fanWindEffectDraw();
void fanWindCrashEffectDraw();
BOOL fanWindEffectDraw();
BOOL fanWindCrashEffectDraw();
void fanJointCB(int);
void parachuteJointCB(int);
void setShapeFanLeaf();
@@ -2421,7 +2424,7 @@ public:
virtual u32 getThrowBoomerangID() const { return mActorKeepThrow.getID(); }
virtual u32 getGrabActorID() const { return mActorKeepGrab.getID(); }
virtual BOOL checkGrabBarrel() { return checkGrabBarrelSearch(1); }
virtual BOOL checkPlayerNoDraw() { return dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 2) || checkNoResetFlg0(daPyFlg0_NO_DRAW); }
virtual u32 checkPlayerNoDraw() { return dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 2) || checkNoResetFlg0(daPyFlg0_NO_DRAW); }
virtual BOOL checkRopeTag() { return mActorKeepEquip.getActor() == NULL; }
virtual BOOL checkRopeReadyAnime() const { return m_anm_heap_upper[2].mIdx == LKANM_BCK_ROPETHROWWAIT; }
virtual void voiceStart(u32);
@@ -2445,10 +2448,10 @@ public:
/* 0x0338 */ ResTIMG* mpCurrLinktex;
/* 0x033C */ ResTIMG mOtherLinktex;
/* 0x035C */ J3DAnmTexPattern* m035C;
/* 0x0360 */ J3DTexNoAnm* mpTexNoAnm;
/* 0x0360 */ J3DTexNoAnm* m_texNoAnms;
/* 0x0364 */ J3DAnmTextureSRTKey* mpTexScrollResData;
/* 0x0368 */ J3DTexMtxAnm* mpTexMtxAnm;
/* 0x036C */ daPy_matAnm_c* mpTexEyeScroll[2];
/* 0x0368 */ J3DTexMtxAnm* m_texMtxAnm;
/* 0x036C */ daPy_matAnm_c* m_tex_eye_scroll[2];
/* 0x0374 */ J3DShape* mpZOffBlendShape[4];
/* 0x0384 */ J3DShape* mpZOffNoneShape[4];
/* 0x0394 */ J3DShape* mpZOnShape[4];
@@ -2543,18 +2546,8 @@ public:
/* 0x31AC */ fopAc_ac_c* mpAttnActorY;
/* 0x31B0 */ fopAc_ac_c* mpAttnActorZ;
/* 0x31B4 */ mDoExt_MtxCalcOldFrame* m_old_fdata;
/* 0x31B8 */ u16 mTexAnimeResIdx;
/* 0x31BA */ u16 m31BA;
/* 0x31BC */ u16 m31BC;
/* 0x31BE */ u16 m31BE;
/* 0x31C0 */ void* mpTextureAnimeResData;
/* 0x31C4 */ JKRSolidHeap* mpTextureAnimeResHeap;
/* 0x31C8 */ u16 mTexScrollResIdx;
/* 0x31CA */ u16 m31CA;
/* 0x31CC */ u16 m31CC;
/* 0x31CE */ u16 m31CE;
/* 0x31D0 */ void* mpTextureScrollResData;
/* 0x31D4 */ JKRSolidHeap* mpTextureScrollResHeap;
/* 0x31B8 */ daPy_anmHeap_c m_tex_anm_heap;
/* 0x31C8 */ daPy_anmHeap_c m_tex_scroll_heap;
/* 0x31D8 */ int mCurProc;
/* 0x31DC */ ProcFunc mCurProcFunc;
/* 0x31E8 */ daPy_footEffect_c m31E8[2];
@@ -2658,8 +2651,8 @@ public:
/* 0x352A */ s16 m352A;
/* 0x352C */ s16 m352C;
/* 0x352E */ s16 m352E;
/* 0x3530 */ s16 m3530;
/* 0x3532 */ s16 m3532;
/* 0x3530 */ u16 m3530;
/* 0x3532 */ u16 m3532;
/* 0x3534 */ s16 m3534;
/* 0x3536 */ s16 m3536;
/* 0x3538 */ s16 m3538;
@@ -2681,7 +2674,7 @@ public:
/* 0x3558 */ s16 m3558;
/* 0x355A */ s16 m355A;
/* 0x355C */ s16 m355C;
/* 0x355E */ u16 m355E;
/* 0x355E */ s16 m355E;
/* 0x3560 */ u16 mHeldItemType;
/* 0x3562 */ u8 m3562[0x3564 - 0x3562];
/* 0x3564 */ s16 m3564;
+8 -1
View File
@@ -410,6 +410,7 @@ public:
}
}
JKRArchive* getLkDemoAnmArchive() { return mpLkDArc; }
void setLkDemoAnmArchive(JKRArchive* i_arc) { mpLkDArc = i_arc; }
void setStatus(u16 status) { mStatus = status; }
void onStatus(u16 status) { mStatus |= status; }
@@ -536,6 +537,8 @@ public:
inline void stopFwaterTimer() { mFwaterTimer = 0; }
inline u8 checkFwaterTimer() { return mFwaterTimer; }
inline u8 getMiniGameType() { return mMiniGameType; }
/* 0x0000 */ dBgS mBgS;
/* 0x1404 */ dCcS mCcS;
/* 0x3DF8 */ dADM mADM;
@@ -1948,6 +1951,10 @@ inline dDemo_actor_c* dComIfGp_demo_getActor(u8 id) {
return g_dComIfG_gameInfo.play.getDemo()->mDemoObj.getActor(id);
}
inline JKRArchive* dComIfGp_getLkDemoAnmArchive() {
return g_dComIfG_gameInfo.play.getLkDemoAnmArchive();
}
inline void dComIfGp_setLkDemoAnmArchive(JKRArchive* i_arc) {
g_dComIfG_gameInfo.play.setLkDemoAnmArchive(i_arc);
}
@@ -2163,7 +2170,7 @@ inline void dComIfGp_setCurrentGrafPort(J2DOrthoGraph* i_graf) {
inline u8 dComIfGp_getMiniGameType() {
// TODO add enum for minigame type.
// 0 for none, 8 for shooting the fishman, 2/6 for orca, 7 for mail sorting, etc
return g_dComIfG_gameInfo.play.mMiniGameType;
return g_dComIfG_gameInfo.play.getMiniGameType();
}
inline void dComIfGp_setAStatus(u8 status) {
+8
View File
@@ -70,6 +70,14 @@ inline void mDoAud_bgmStop(u32 param_0) {
mDoAud_zelAudio_c::getInterface()->bgmStop(param_0, 0);
}
inline int mDoAud_checkPlayingMainBgmFlag() {
return mDoAud_zelAudio_c::getInterface()->checkPlayingMainBgmFlag();
}
inline int mDoAud_checkPlayingSubBgmFlag() {
return mDoAud_zelAudio_c::getInterface()->checkPlayingSubBgmFlag();
}
inline void mDoAud_prepareLandingDemo(u32 idx) {
mDoAud_zelAudio_c::getInterface()->prepareLandingDemo(idx);
}
+5 -1
View File
@@ -223,7 +223,7 @@ public:
private:
/* 0x2C */ void* mBas;
};
}; // Size: 0x30
class mDoExt_MtxCalcOldFrame {
public:
@@ -555,6 +555,8 @@ public:
~mDoExt_offCupOnAupPacket();
void draw();
void entryOpa() { j3dSys.getDrawBuffer(0)->entryImm(this, 0); }
};
class mDoExt_onCupOffAupPacket : public J3DPacket {
@@ -562,6 +564,8 @@ public:
~mDoExt_onCupOffAupPacket();
void draw();
void entryOpa() { j3dSys.getDrawBuffer(0)->entryImm(this, 0); }
};
class mDoExt_3Dline_c {
@@ -231,6 +231,7 @@ s32 J3DMaterialTable::setTexNoAnimator(J3DAnmTexPattern* pAnm, J3DTexNoAnm* pAnm
/* 802F6600-802F6798 .text setTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKeyP12J3DTexMtxAnmP12J3DTexMtxAnm */
s32 J3DMaterialTable::setTexMtxAnimator(J3DAnmTextureSRTKey* pAnm, J3DTexMtxAnm* pTexAnm, J3DTexMtxAnm* pDualAnmR) {
/* Nonmatching - regalloc */
s32 ret = 0;
u16 materialNum = pAnm->getUpdateMaterialNum();
@@ -246,12 +247,18 @@ s32 J3DMaterialTable::setTexMtxAnimator(J3DAnmTextureSRTKey* pAnm, J3DTexMtxAnm*
if (pMatAnm == NULL) {
ret = 1;
} else if (texMtxID != 0xFF) {
if (pMaterial->getTexGenBlock()->getTexCoord(texMtxID) != NULL)
pMaterial->getTexGenBlock()->getTexCoord(texMtxID)->setTexGenMtx(GX_TEXMTX0 + (texMtxID & 0xFF) * 3);
if (pMaterial->getTexCoord(texMtxID) != NULL)
pMaterial->getTexCoord(texMtxID)->setTexGenMtx(GX_TEXMTX0 + (texMtxID & 0xFF) * 3);
J3DTexMtx *pTexMtx = pMaterial->getTexGenBlock()->getTexMtx(texMtxID);
J3DTexMtx *pTexMtx = pMaterial->getTexMtx(texMtxID);
pTexMtx->getTexMtxInfo().mInfo = ((pTexMtx->getTexMtxInfo().mInfo) & 0x7F) | (pAnm->getTexMtxCalcType() << 7);
pTexMtx->getTexMtxInfo().mCenter = pAnm->getSRTCenter(i);
// Fakematch? The codegen doesn't match unless a temp variable is used and assigned to multiple times.
Vec* temp = &pAnm->getSRTCenter(i);
pTexMtx->getTexMtxInfo().mCenter.x = temp->x;
temp = &pAnm->getSRTCenter(i);
pTexMtx->getTexMtxInfo().mCenter.y = temp->y;
temp = &pAnm->getSRTCenter(i);
pTexMtx->getTexMtxInfo().mCenter.z = temp->z;
pMatAnm->setTexMtxAnm(texMtxID, &pTexAnm[i]);
}
+4 -4
View File
@@ -219,10 +219,10 @@ BOOL daHookshot_c::procWait() {
daPy_lk_c* link = daPy_getPlayerLinkActorClass();
current.pos = link->getHookshotRootPos();
MtxP leftHandtx = link->getModelJointMtx(0x08); // cl_LhandA joint
cMtx_copy(leftHandtx, m51C);
m51C[0][3] = current.pos.x;
m51C[1][3] = current.pos.y;
m51C[2][3] = current.pos.z;
cMtx_copy(leftHandtx, mMtx);
mMtx[0][3] = current.pos.x;
mMtx[1][3] = current.pos.y;
mMtx[2][3] = current.pos.z;
m2B0 = 0;
if (fopAcM_GetParam(this) == 1) {
+1 -1
View File
@@ -1368,7 +1368,7 @@ BOOL daItem_c::initAction() {
return TRUE;
}
// TODO: usage of uninitialized register?
// TODO: bug? usage of uninitialized register f31 in some cases
f32 temp_f31;
switch (mAction) {
case 1:
+1 -1
View File
@@ -231,7 +231,7 @@ void daObjBarrier_c::break_start_wait_proc() {
if ((player_p->current.pos - current.pos).absXZ() >= 8800.0f &&
dComIfGs_getSelectEquip(0) == MASTER_SWORD_EX)
{
switch (player_p->mAttackState) {
switch (player_p->getCutType()) {
case 1:
case 2:
case 3:
+5 -5
View File
@@ -521,13 +521,13 @@ void daObjMknjD::Act_c::privateCut() {
case ACT_BREAK:
if (daObjMknjD_break() == true) {
if (strcmp(dComIfGp_getStartStageName(), "Ekaze") == 0 || strcmp(dComIfGp_getStartStageName(), "Edaichi") == 0) {
mDoAud_bgmStart(0x80000000 | JA_BGM_JABOO_CAVE);
mDoAud_bgmStart(JA_BGM_JABOO_CAVE);
}
else if (m043E == true) {
mDoAud_bgmStart(0x80000000 | JA_BGM_D_WIND);
mDoAud_bgmStart(JA_BGM_D_WIND);
}
else {
mDoAud_bgmStart(0x80000000 | JA_BGM_D_EARTH);
mDoAud_bgmStart(JA_BGM_D_EARTH);
}
if (mSmokeCBs[2].getEmitter() != NULL) {
@@ -908,10 +908,10 @@ int daObjMknjD::Act_c::Execute(Mtx** i_mtx) {
}
if (m0432 == 1) {
if (m043E == true) {
mDoAud_bgmStart(0x80000000 | JA_BGM_TAKT_MAKORE);
mDoAud_bgmStart(JA_BGM_TAKT_MAKORE);
}
else {
mDoAud_bgmStart(0x80000000 | JA_BGM_TAKT_MEDRI);
mDoAud_bgmStart(JA_BGM_TAKT_MEDRI);
}
m0432 = 0;
+2 -2
View File
@@ -13,12 +13,12 @@
#include "d/actor/d_a_player_main.h"
/* 8014BAA0-8014BAEC .text fanWindEffectDraw__9daPy_lk_cFv */
void daPy_lk_c::fanWindEffectDraw() {
BOOL daPy_lk_c::fanWindEffectDraw() {
/* Nonmatching */
}
/* 8014BAEC-8014BB38 .text fanWindCrashEffectDraw__9daPy_lk_cFv */
void daPy_lk_c::fanWindCrashEffectDraw() {
BOOL daPy_lk_c::fanWindCrashEffectDraw() {
/* Nonmatching */
}
+1 -1
View File
@@ -127,7 +127,7 @@ BOOL daPy_lk_c::procFoodThrow() {
}
} else if (frameCtrl.checkPass(9.0f)) {
seStartOnlyReverb(JA_SE_LK_ESA_THROW);
void* esa = fopAcM_fastCreate(PROC_ESA, 0xFFFF0014, &field_0x2d4, fopAcM_GetRoomNo(this), &shape_angle);
void* esa = fopAcM_fastCreate(PROC_ESA, 0xFFFF0014, &mLeftHandPos, fopAcM_GetRoomNo(this), &shape_angle);
if (esa) {
m3630 = fopAcM_GetID(esa);
if (mDemo.getDemoType() != 5) {
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -28,7 +28,7 @@ void daPy_swimTailEcallBack_c::getMaxWaterY(JGeometry::TVec3<f32>* pos) {
if (field_0x10 > pos->y) {
pos->y = field_0x10 + 2.0f;
}
} else if (field_0x10 != 0.0f) {
} else if (field_0x10 != -1e9f) {
pos->y = field_0x10 + 2.0f;
} else {
pos->y = field_0x0C;
+3 -3
View File
@@ -657,19 +657,19 @@ bool daRd_c::checkTgHit() {
atInfo.pParticlePos = NULL;
atInfo.mpObj = mCyl.GetTgHitObj();
if (r29) {
cXyz* temp = mCyl.GetTgHitPosP();
cXyz* hitPos = mCyl.GetTgHitPosP();
cc_at_check(this, &atInfo);
if (mHitType == 1 || mHitType == 7 || mHitType == 8 || mHealth <= 0) {
dComIfGp_particle_set(0x10, mCyl.GetTgHitPosP());
cXyz scale(2.0f, 2.0f, 2.0f);
dComIfGp_particle_set(dPa_name::ID_COMMON_BIG_HIT, temp, &player->shape_angle, &scale);
dComIfGp_particle_set(dPa_name::ID_COMMON_BIG_HIT, hitPos, &player->shape_angle, &scale);
if (mHealth <= 0) {
modeProcInit(MODE_DEATH);
} else {
modeProcInit(MODE_DAMAGE);
}
} else {
dComIfGp_particle_set(dPa_name::ID_COMMON_NORMAL_HIT, temp, &player->shape_angle);
dComIfGp_particle_set(dPa_name::ID_COMMON_NORMAL_HIT, hitPos, &player->shape_angle);
modeProcInit(MODE_DAMAGE);
}
} else if (mHitType == 0xE) {
+1 -1
View File
@@ -1017,7 +1017,7 @@ BOOL daTbox_c::actionOpenWait() {
}
if (getShapeType() != 0) {
mDoAud_subBgmStart(0x80000000 | JA_BGM_OPEN_BOX);
mDoAud_subBgmStart(JA_BGM_OPEN_BOX);
mAllColRatio = 0.4f;
flagOn(0x08);
+3 -3
View File
@@ -587,9 +587,9 @@ void dEvDtStaff_c::specialProcDirector() {
u32* pBGM = dComIfGp_evmng_getMyIntegerP(staffIdx, "BGM_ID");
u32 bgm;
static u32 bgm_table[] = {
0x80000007, // JA_BGM_I_MAJU
0x80000012, // JA_BGM_TETRA_MEET
0x80000017, // JA_BGM_I_LINK_FOREST
JA_BGM_I_MAJU,
JA_BGM_TETRA_MEET,
JA_BGM_I_LINK_FOREST,
};
if (pBGM != NULL) {