summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2024-01-03 15:55:56 -0500
committerLagoLunatic <LagoLunatic@users.noreply.github.com>2024-01-03 15:55:56 -0500
commitea78ea5f5c15361be7d29ab8fd712b46b916e4e3 (patch)
tree08f255cf389aad5edd2106f0e5305a7c62ed6e06
parenta811016a06474be74aaf933c8e267c1ff81bc9de (diff)
d_a_player_main
-rw-r--r--include/JAZelAudio/JAZelAudio_BGM.h196
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DAnimation.h13
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h2
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DModelData.h4
-rw-r--r--include/JSystem/J3DGraphBase/J3DMaterial.h47
-rw-r--r--include/JSystem/J3DGraphBase/J3DTexture.h10
-rw-r--r--include/JSystem/JKernel/JKRArchive.h4
-rw-r--r--include/SSystem/SComponent/c_counter.h6
-rw-r--r--include/d/actor/d_a_hookshot.h4
-rw-r--r--include/d/actor/d_a_player.h238
-rw-r--r--include/d/actor/d_a_player_main.h47
-rw-r--r--include/d/d_com_inf_game.h9
-rw-r--r--include/m_Do/m_Do_audio.h8
-rw-r--r--include/m_Do/m_Do_ext.h6
-rw-r--r--src/JSystem/J3DGraphAnimator/J3DMaterialAttach.cpp15
-rw-r--r--src/d/actor/d_a_hookshot.cpp8
-rw-r--r--src/d/actor/d_a_item.cpp2
-rw-r--r--src/d/actor/d_a_obj_barrier.cpp2
-rw-r--r--src/d/actor/d_a_obj_mknjd.cpp10
-rw-r--r--src/d/actor/d_a_player_fan.inc4
-rw-r--r--src/d/actor/d_a_player_food.inc2
-rw-r--r--src/d/actor/d_a_player_main.cpp1041
-rw-r--r--src/d/actor/d_a_player_particle.inc2
-rw-r--r--src/d/actor/d_a_rd.cpp6
-rw-r--r--src/d/actor/d_a_tbox.cpp2
-rw-r--r--src/d/d_event_data.cpp6
26 files changed, 1269 insertions, 425 deletions
diff --git a/include/JAZelAudio/JAZelAudio_BGM.h b/include/JAZelAudio/JAZelAudio_BGM.h
index adcf0e96..d1e46b64 100644
--- a/include/JAZelAudio/JAZelAudio_BGM.h
+++ b/include/JAZelAudio/JAZelAudio_BGM.h
@@ -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 */ \ No newline at end of file
diff --git a/include/JSystem/J3DGraphAnimator/J3DAnimation.h b/include/JSystem/J3DGraphAnimator/J3DAnimation.h
index 3411bfee..8bea0b3d 100644
--- a/include/JSystem/J3DGraphAnimator/J3DAnimation.h
+++ b/include/JSystem/J3DGraphAnimator/J3DAnimation.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;
diff --git a/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h b/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h
index 408c8942..2702be18 100644
--- a/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h
+++ b/include/JSystem/J3DGraphAnimator/J3DMaterialAttach.h
@@ -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();
diff --git a/include/JSystem/J3DGraphAnimator/J3DModelData.h b/include/JSystem/J3DGraphAnimator/J3DModelData.h
index bd2e5974..521a97f9 100644
--- a/include/JSystem/J3DGraphAnimator/J3DModelData.h
+++ b/include/JSystem/J3DGraphAnimator/J3DModelData.h
@@ -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:
diff --git a/include/JSystem/J3DGraphBase/J3DMaterial.h b/include/JSystem/J3DGraphBase/J3DMaterial.h
index 669d1004..c325f3ea 100644
--- a/include/JSystem/J3DGraphBase/J3DMaterial.h
+++ b/include/JSystem/J3DGraphBase/J3DMaterial.h
@@ -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;
diff --git a/include/JSystem/J3DGraphBase/J3DTexture.h b/include/JSystem/J3DGraphBase/J3DTexture.h
index 3eafd0e9..594cbd16 100644
--- a/include/JSystem/J3DGraphBase/J3DTexture.h
+++ b/include/JSystem/J3DGraphBase/J3DTexture.h
@@ -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]; }
diff --git a/include/JSystem/JKernel/JKRArchive.h b/include/JSystem/JKernel/JKRArchive.h
index 2904592d..1e374ec0 100644
--- a/include/JSystem/JKernel/JKRArchive.h
+++ b/include/JSystem/JKernel/JKRArchive.h
@@ -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;
diff --git a/include/SSystem/SComponent/c_counter.h b/include/SSystem/SComponent/c_counter.h
index 975824eb..3c962cdc 100644
--- a/include/SSystem/SComponent/c_counter.h
+++ b/include/SSystem/SComponent/c_counter.h
@@ -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;
diff --git a/include/d/actor/d_a_hookshot.h b/include/d/actor/d_a_hookshot.h
index f029351a..daedf0fb 100644
--- a/include/d/actor/d_a_hookshot.h
+++ b/include/d/actor/d_a_hookshot.h
@@ -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;
};
diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h
index d8799282..12200851 100644
--- a/include/d/actor/d_a_player.h
+++ b/include/d/actor/d_a_player.h
@@ -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 */
diff --git a/include/d/actor/d_a_player_main.h b/include/d/actor/d_a_player_main.h
index 25eecee5..8e867392 100644
--- a/include/d/actor/d_a_player_main.h
+++ b/include/d/actor/d_a_player_main.h
@@ -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;
diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h
index 3f77eb2d..c2cac3e9 100644
--- a/include/d/d_com_inf_game.h
+++ b/include/d/d_com_inf_game.h
@@ -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) {
diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h
index 77730ee9..92ce4392 100644
--- a/include/m_Do/m_Do_audio.h
+++ b/include/m_Do/m_Do_audio.h
@@ -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);
}
diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h
index 3be98658..3d47457c 100644
--- a/include/m_Do/m_Do_ext.h
+++ b/include/m_Do/m_Do_ext.h
@@ -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 {
diff --git a/src/JSystem/J3DGraphAnimator/J3DMaterialAttach.cpp b/src/JSystem/J3DGraphAnimator/J3DMaterialAttach.cpp
index 7fe8e76e..0e1e1f0a 100644
--- a/src/JSystem/J3DGraphAnimator/J3DMaterialAttach.cpp
+++ b/src/JSystem/J3DGraphAnimator/J3DMaterialAttach.cpp
@@ -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]);
}
diff --git a/src/d/actor/d_a_hookshot.cpp b/src/d/actor/d_a_hookshot.cpp
index 226da845..19e7cadd 100644
--- a/src/d/actor/d_a_hookshot.cpp
+++ b/src/d/actor/d_a_hookshot.cpp
@@ -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) {
diff --git a/src/d/actor/d_a_item.cpp b/src/d/actor/d_a_item.cpp
index 0aa8c61e..037f13b2 100644
--- a/src/d/actor/d_a_item.cpp
+++ b/src/d/actor/d_a_item.cpp
@@ -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:
diff --git a/src/d/actor/d_a_obj_barrier.cpp b/src/d/actor/d_a_obj_barrier.cpp
index d838037a..f61c984e 100644
--- a/src/d/actor/d_a_obj_barrier.cpp
+++ b/src/d/actor/d_a_obj_barrier.cpp
@@ -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:
diff --git a/src/d/actor/d_a_obj_mknjd.cpp b/src/d/actor/d_a_obj_mknjd.cpp
index d12624aa..700f2c2d 100644
--- a/src/d/actor/d_a_obj_mknjd.cpp
+++ b/src/d/actor/d_a_obj_mknjd.cpp
@@ -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;
diff --git a/src/d/actor/d_a_player_fan.inc b/src/d/actor/d_a_player_fan.inc
index ae487f58..1df5fe7b 100644
--- a/src/d/actor/d_a_player_fan.inc
+++ b/src/d/actor/d_a_player_fan.inc
@@ -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 */
}
diff --git a/src/d/actor/d_a_player_food.inc b/src/d/actor/d_a_player_food.inc
index e42fe593..5588a185 100644
--- a/src/d/actor/d_a_player_food.inc
+++ b/src/d/actor/d_a_player_food.inc
@@ -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) {
diff --git a/src/d/actor/d_a_player_main.cpp b/src/d/actor/d_a_player_main.cpp
index bf9ae873..a7ab89d4 100644
--- a/src/d/actor/d_a_player_main.cpp
+++ b/src/d/actor/d_a_player_main.cpp
@@ -20,7 +20,11 @@
#include "d/d_item_data.h"
#include "d/d_item.h"
#include "m_Do/m_Do_mtx.h"
+#include "m_Do/m_Do_lib.h"
#include "d/d_material.h"
+#include "JSystem/J3DGraphLoader/J3DAnmLoader.h"
+#include "d/actor/d_a_hookshot.h"
+#include "SSystem/SComponent/c_counter.h"
const Vec l_ship_offset = {0.0f, 15.0f, -35.0f};
const Vec l_ship_offset2 = {0.0f, 15.0f, -66.8f};
@@ -53,179 +57,179 @@ const Vec l_crawl_rside_front_offset = {-50.0f, 5.0f, 80.0f};
const Vec l_crawl_min_side_offset = {30.0f, 0.0f, 0.0f};
const daPy_lk_c::TexAnmTableEntry daPy_lk_c::mTexAnmIndexTable[] = {
- {LKANM_BTP_TMABAA, LKANM_BTK_TMABA},
- {LKANM_BTP_TMABAA, LKANM_BTK_TEUP},
- {LKANM_BTP_TMABAB, LKANM_BTK_TMABA},
- {LKANM_BTP_TMABAC, LKANM_BTK_TMABA},
- {LKANM_BTP_TMABACB, LKANM_BTK_TMABA},
- {LKANM_BTP_TMABACB, LKANM_BTK_TEDW},
- {LKANM_BTP_TMABACC, LKANM_BTK_TMABA},
- {LKANM_BTP_TMABAD, LKANM_BTK_TMABA},
- {LKANM_BTP_TMABAD, LKANM_BTK_TEDW},
- {LKANM_BTP_TMABAE, LKANM_BTK_TMABA},
- {LKANM_BTP_TMABAE, LKANM_BTK_TEUP},
- {LKANM_BTP_TMABAE, LKANM_BTK_TEDW},
- {LKANM_BTP_TMABAE, LKANM_BTK_TEL},
- {LKANM_BTP_TMABAE, LKANM_BTK_TER},
- {LKANM_BTP_TMABAF, LKANM_BTK_TMABA},
- {LKANM_BTP_TMABAG, LKANM_BTK_TMABA},
- {LKANM_BTP_TMABAH, LKANM_BTK_TMABA},
- {LKANM_BTP_TMABAI, LKANM_BTK_TMABA},
- {LKANM_BTP_TMABAJ, LKANM_BTK_TEYORIME},
- {LKANM_BTP_TMABAD, LKANM_BTK_TWAITPICKUP},
- {LKANM_BTP_TMABAC, LKANM_BTK_THOOKSHOTJMP},
- {LKANM_BTP_TGRABP, LKANM_BTK_TGRABP},
- {LKANM_BTP_TGRABUP, LKANM_BTK_TGRABUP},
- {LKANM_BTP_TGRABNG, LKANM_BTK_TGRABNG},
- {LKANM_BTP_TGRABTHROW, LKANM_BTK_TGRABTHROW},
- {LKANM_BTP_TGRABRE, LKANM_BTK_TECN},
- {LKANM_BTP_TWALLWL, LKANM_BTK_TER},
- {LKANM_BTP_TWALLWR, LKANM_BTK_TEL},
- {LKANM_BTP_TWALLPL, LKANM_BTK_TWALLPL},
- {LKANM_BTP_TWALLPR, LKANM_BTK_TWALLPR},
- {LKANM_BTP_TCUT, LKANM_BTK_TECN},
- {LKANM_BTP_TCUTEA, LKANM_BTK_TCUTEA},
- {LKANM_BTP_TCUTEA, LKANM_BTK_TECN},
- {LKANM_BTP_TEXCA1, LKANM_BTK_TEXCA1},
- {LKANM_BTP_TEXCB1, LKANM_BTK_TEXCB1},
- {LKANM_BTP_TJATTACK, LKANM_BTK_TJATTACK},
- {LKANM_BTP_TJATTACK, LKANM_BTK_TEUP},
- {LKANM_BTP_TCUTTURNP, LKANM_BTK_TECN},
- {LKANM_BTP_TCUTTURN, LKANM_BTK_TCUTTURN},
- {LKANM_BTP_TMJMP, LKANM_BTK_TMJMP},
- {LKANM_BTP_TMJMPC, LKANM_BTK_TMJMPC},
- {LKANM_BTP_TMROLLL, LKANM_BTK_TMROLLL},
- {LKANM_BTP_TMROLLR, LKANM_BTK_TMROLLR},
- {LKANM_BTP_TMROLLLRC, LKANM_BTK_TMROLLLC},
- {LKANM_BTP_TMROLLLRC, LKANM_BTK_TMROLLRC},
- {LKANM_BTP_TMSTEPOVER, LKANM_BTK_TMSTEPOVER},
- {LKANM_BTP_TMSTEPOVERA, LKANM_BTK_TMSTEPOVERA},
- {LKANM_BTP_TMSTEPOVERLAND, LKANM_BTK_TMSTEPOVERLAND},
- {LKANM_BTP_TATNJLR, LKANM_BTK_TATNJL},
- {LKANM_BTP_TATNJLR, LKANM_BTK_TATNJR},
- {LKANM_BTP_TJMP, LKANM_BTK_TJMP},
- {LKANM_BTP_TROLLF, LKANM_BTK_TROLLF},
- {LKANM_BTP_TROLLB, LKANM_BTK_TROLLB},
- {LKANM_BTP_TROLLBLAND, LKANM_BTK_TECN},
- {LKANM_BTP_TROLLFMIS, LKANM_BTK_TROLLFMIS},
- {LKANM_BTP_TFALL, LKANM_BTK_TEDW},
- {LKANM_BTP_TLANDDAMA, LKANM_BTK_TLANDDAMA},
- {LKANM_BTP_TLANDDAMAST, LKANM_BTK_TLANDDAMAST},
- {LKANM_BTP_TDAM, LKANM_BTK_TDAM},
- {LKANM_BTP_TDAMF, LKANM_BTK_TECN},
- {LKANM_BTP_TDAMFFUP, LKANM_BTK_TDAMFFUP},
- {LKANM_BTP_TDAMFBUP, LKANM_BTK_TDAMFBUP},
- {LKANM_BTP_TDAMFLRUP, LKANM_BTK_TDAMFLUP},
- {LKANM_BTP_TDAMFLRUP, LKANM_BTK_TDAMFRUP},
- {LKANM_BTP_TDAMDASH, LKANM_BTK_TECN},
- {LKANM_BTP_TGUARD, LKANM_BTK_TGUARD},
- {LKANM_BTP_TSLIDEF, LKANM_BTK_TSLIDEF},
- {LKANM_BTP_TSLIDEFLAND, LKANM_BTK_TSLIDEFLAND},
- {LKANM_BTP_TSLIDEB, LKANM_BTK_TEDW},
- {LKANM_BTP_TSLIDEBLAND, LKANM_BTK_TSLIDEFLAND},
- {LKANM_BTP_TSWIMP, LKANM_BTK_TSWIMP},
- {LKANM_BTP_TSWIMING, LKANM_BTK_TSWIMING},
- {LKANM_BTP_TBOOMTHROW, LKANM_BTK_TBOOMTHROW},
- {LKANM_BTP_TBOOMCATCH, LKANM_BTK_TBOOMCATCH},
- {LKANM_BTP_TWALKPUSH, LKANM_BTK_TWALKPUSH},
- {LKANM_BTP_TWALKPULL, LKANM_BTK_TWALKPULL},
- {LKANM_BTP_TVJMPCHA, LKANM_BTK_TVJMPCHA},
- {LKANM_BTP_TVJMPCL, LKANM_BTK_TVJMPCL},
- {LKANM_BTP_TROPECLIMB, LKANM_BTK_TEUP},
- {LKANM_BTP_TROPEDOWN, LKANM_BTK_TEDW},
- {LKANM_BTP_TLADDERUPST, LKANM_BTK_TLADDERUPST},
- {LKANM_BTP_TLADDERDWST, LKANM_BTK_TLADDERDWST},
- {LKANM_BTP_TLADDERUPED, LKANM_BTK_TLADDERUPED},
- {LKANM_BTP_TLADDERDWED, LKANM_BTK_TLADDERDWED},
- {LKANM_BTP_THANGING, LKANM_BTK_THANGING},
- {LKANM_BTP_THANGUP, LKANM_BTK_THANGUP},
- {LKANM_BTP_TLAVADAM, LKANM_BTK_TLAVADAM},
- {LKANM_BTP_TCUTRE, LKANM_BTK_TCUTRE},
- {LKANM_BTP_TCUTTURNB, LKANM_BTK_TCUTTURNB},
- {LKANM_BTP_TWAITATOB, LKANM_BTK_TWAITATOB},
- {LKANM_BTP_TCOMEOUT, LKANM_BTK_TCOMEOUT},
- {LKANM_BTP_THOLDUP, LKANM_BTK_TMABA},
- {LKANM_BTP_TWALLHOLDUP, LKANM_BTK_TWALLHOLDUP},
- {LKANM_BTP_TITEMGET, LKANM_BTK_TITEMGET},
- {LKANM_BTP_TSALTATION, LKANM_BTK_TSALTATION},
- {LKANM_BTP_TWHO, LKANM_BTK_TWHO},
- {LKANM_BTP_TPICKUP, LKANM_BTK_TPICKUP},
- {LKANM_BTP_TBOXOPENLINK, LKANM_BTK_TBOXOPENLINK},
- {LKANM_BTP_TBOXOPENSHORTLINK, LKANM_BTK_TBOXOPENSHORTLINK},
- {LKANM_BTP_TDIELONG, LKANM_BTK_TDIELONG},
- {LKANM_BTP_TSWIMDIE, LKANM_BTK_TECN},
- {LKANM_BTP_TSURPRISED, LKANM_BTK_TSURPRISED},
- {LKANM_BTP_TTURNBACK, LKANM_BTK_TTURNBACK},
- {LKANM_BTP_TLOOKUP, LKANM_BTK_TLOOKUP},
- {LKANM_BTP_TWAITQ, LKANM_BTK_TECN},
- {LKANM_BTP_TGLAD, LKANM_BTK_TECN},
- {LKANM_BTP_TCUTBOKO, LKANM_BTK_TCUTBOKO},
- {LKANM_BTP_SHIP_JUMP1, LKANM_BTK_TECN},
- {LKANM_BTP_SHIP_JUMP2, LKANM_BTK_TECN},
- {LKANM_BTP_TUSEFANA, LKANM_BTK_TUSEFANA},
- {LKANM_BTP_TUSEFANB, LKANM_BTK_TUSEFANB},
- {LKANM_BTP_TUSEFANB2, LKANM_BTK_TEDW},
- {LKANM_BTP_TBOWWAIT, LKANM_BTK_TBOWWAIT},
- {LKANM_BTP_TVOMITJMP, LKANM_BTK_TEDW},
- {LKANM_BTP_TREST, LKANM_BTK_TREST},
- {LKANM_BTP_TTAKE, LKANM_BTK_TTAKE},
- {LKANM_BTP_TTAKELR, LKANM_BTK_TECN},
- {LKANM_BTP_TSLIPICE, LKANM_BTK_TECN},
- {LKANM_BTP_THAMSWINGA, LKANM_BTK_THAMSWINGA},
- {LKANM_BTP_THAMSWINGBPRE, LKANM_BTK_THAMSWINGBPRE},
- {LKANM_BTP_THAMSWINGBHIT, LKANM_BTK_THAMSWINGBHIT},
- {LKANM_BTP_THAMSWINGBEND, LKANM_BTK_THAMSWINGBEND},
- {LKANM_BTP_TSETBOOTS, LKANM_BTK_TECN},
- {LKANM_BTP_TDOOROPENALINK, LKANM_BTK_TDOOROPENALINK},
- {LKANM_BTP_TDOOROPENBLINK, LKANM_BTK_TDOOROPENBLINK},
- {LKANM_BTP_TSEYYES, LKANM_BTK_TSEYYES},
- {LKANM_BTP_TPRESENTATION, LKANM_BTK_TPRESENTATIONA},
- {LKANM_BTP_TWIND, LKANM_BTK_TWINDL},
- {LKANM_BTP_TWIND, LKANM_BTK_TWINDR},
- {LKANM_BTP_TPRESENTATION, LKANM_BTK_TPRESENTATIONB},
- {LKANM_BTP_TBINDRINKPRE, LKANM_BTK_TBINDRINKPRE},
- {LKANM_BTP_TBINDRINKING, LKANM_BTK_TECN},
- {LKANM_BTP_TBINDRINKAFTER, LKANM_BTK_TBINDRINKAFTER},
- {LKANM_BTP_TBINDRINKPRE2, LKANM_BTK_TBINDRINKPRE},
- {LKANM_BTP_TBINDRINKING2, LKANM_BTK_TECN},
- {LKANM_BTP_TBINDRINKAFTER2, LKANM_BTK_TBINDRINKAFTER2},
- {LKANM_BTP_TBINOPENPRE, LKANM_BTK_TBINOPENPRE},
- {LKANM_BTP_TBINOPENA, LKANM_BTK_TBINOPENA},
- {LKANM_BTP_TBINOPENB, LKANM_BTK_TBINOPENB},
- {LKANM_BTP_TBINSWING, LKANM_BTK_TBINSWING},
- {LKANM_BTP_TBINGET, LKANM_BTK_TBINGET},
- {LKANM_BTP_TARROWRELORD, LKANM_BTK_TARROWRELORD},
- {LKANM_BTP_TSURPRISEDB, LKANM_BTK_TSURPRISEDB},
- {LKANM_BTP_TFAN, LKANM_BTK_TFAN},
- {LKANM_BTP_TNENRIKI, LKANM_BTK_TECN},
- {LKANM_BTP_TMABAB, LKANM_BTK_TEDL},
- {LKANM_BTP_TMABAH, LKANM_BTK_TABEKOBE},
- {LKANM_BTP_TSETHYOINOMI, LKANM_BTK_TSETHYOINOMI},
- {LKANM_BTP_LINK_FREEZ, LKANM_BTK_TECN},
- {LKANM_BTP_LINK_MOGAKI, LKANM_BTK_TECN},
- {LKANM_BTP_TDAMBIRI, LKANM_BTK_TDAMBIRI},
- {LKANM_BTP_SALVLR, LKANM_BTK_SALVWAIT},
- {LKANM_BTP_SALVWAIT, LKANM_BTK_SALVWAIT},
- {LKANM_BTP_SALVBAD, LKANM_BTK_SALVWAIT},
- {LKANM_BTP_SALVGOOD, LKANM_BTK_SALVWAIT},
- {LKANM_BTP_SEARESET, LKANM_BTK_SEARESET},
- {LKANM_BTP_TWARPIN, LKANM_BTK_TWARPIN},
- {LKANM_BTP_TWARPOUT, LKANM_BTK_TWARPOUT},
- {LKANM_BTP_TPOWUPWAIT, LKANM_BTK_TPOWUPWAIT},
- {LKANM_BTP_TPOWUP, LKANM_BTK_TPOWUP},
- {LKANM_BTP_TCUTKESA, LKANM_BTK_TCUTKESA},
- {LKANM_BTP_TWARPOUTFIRST, LKANM_BTK_TWARPOUTFIRST},
- {LKANM_BTP_TDASHKAZE, LKANM_BTK_TDASHKAZE},
- {LKANM_BTP_TIYAYA, LKANM_BTK_TECN},
- {LKANM_BTP_TFREEA, LKANM_BTK_TFREEA},
- {LKANM_BTP_TFREEB, LKANM_BTK_TFREEB},
- {LKANM_BTP_TFREED, LKANM_BTK_TFREED},
- {LKANM_BTP_TTAKTKAZE, LKANM_BTK_TECN},
- {LKANM_BTP_TTAKTSIPPU, LKANM_BTK_TECN},
- {LKANM_BTP_TTAKTCHUYA, LKANM_BTK_TECN},
- {LKANM_BTP_TTAKTFUJIN, LKANM_BTK_TECN},
- {LKANM_BTP_TTAKTAYATSURI, LKANM_BTK_TECN},
- {LKANM_BTP_TTAKTCHISIN, LKANM_BTK_TECN},
+ /* 0x00 */ {LKANM_BTP_TMABAA, LKANM_BTK_TMABA},
+ /* 0x01 */ {LKANM_BTP_TMABAA, LKANM_BTK_TEUP},
+ /* 0x02 */ {LKANM_BTP_TMABAB, LKANM_BTK_TMABA},
+ /* 0x03 */ {LKANM_BTP_TMABAC, LKANM_BTK_TMABA},
+ /* 0x04 */ {LKANM_BTP_TMABACB, LKANM_BTK_TMABA},
+ /* 0x05 */ {LKANM_BTP_TMABACB, LKANM_BTK_TEDW},
+ /* 0x06 */ {LKANM_BTP_TMABACC, LKANM_BTK_TMABA},
+ /* 0x07 */ {LKANM_BTP_TMABAD, LKANM_BTK_TMABA},
+ /* 0x08 */ {LKANM_BTP_TMABAD, LKANM_BTK_TEDW},
+ /* 0x09 */ {LKANM_BTP_TMABAE, LKANM_BTK_TMABA},
+ /* 0x0A */ {LKANM_BTP_TMABAE, LKANM_BTK_TEUP},
+ /* 0x0B */ {LKANM_BTP_TMABAE, LKANM_BTK_TEDW},
+ /* 0x0C */ {LKANM_BTP_TMABAE, LKANM_BTK_TEL},
+ /* 0x0D */ {LKANM_BTP_TMABAE, LKANM_BTK_TER},
+ /* 0x0E */ {LKANM_BTP_TMABAF, LKANM_BTK_TMABA},
+ /* 0x0F */ {LKANM_BTP_TMABAG, LKANM_BTK_TMABA},
+ /* 0x10 */ {LKANM_BTP_TMABAH, LKANM_BTK_TMABA},
+ /* 0x11 */ {LKANM_BTP_TMABAI, LKANM_BTK_TMABA},
+ /* 0x12 */ {LKANM_BTP_TMABAJ, LKANM_BTK_TEYORIME},
+ /* 0x13 */ {LKANM_BTP_TMABAD, LKANM_BTK_TWAITPICKUP},
+ /* 0x14 */ {LKANM_BTP_TMABAC, LKANM_BTK_THOOKSHOTJMP},
+ /* 0x15 */ {LKANM_BTP_TGRABP, LKANM_BTK_TGRABP},
+ /* 0x16 */ {LKANM_BTP_TGRABUP, LKANM_BTK_TGRABUP},
+ /* 0x17 */ {LKANM_BTP_TGRABNG, LKANM_BTK_TGRABNG},
+ /* 0x18 */ {LKANM_BTP_TGRABTHROW, LKANM_BTK_TGRABTHROW},
+ /* 0x19 */ {LKANM_BTP_TGRABRE, LKANM_BTK_TECN},
+ /* 0x1A */ {LKANM_BTP_TWALLWL, LKANM_BTK_TER},
+ /* 0x1B */ {LKANM_BTP_TWALLWR, LKANM_BTK_TEL},
+ /* 0x1C */ {LKANM_BTP_TWALLPL, LKANM_BTK_TWALLPL},
+ /* 0x1D */ {LKANM_BTP_TWALLPR, LKANM_BTK_TWALLPR},
+ /* 0x1E */ {LKANM_BTP_TCUT, LKANM_BTK_TECN},
+ /* 0x1F */ {LKANM_BTP_TCUTEA, LKANM_BTK_TCUTEA},
+ /* 0x20 */ {LKANM_BTP_TCUTEA, LKANM_BTK_TECN},
+ /* 0x21 */ {LKANM_BTP_TEXCA1, LKANM_BTK_TEXCA1},
+ /* 0x22 */ {LKANM_BTP_TEXCB1, LKANM_BTK_TEXCB1},
+ /* 0x23 */ {LKANM_BTP_TJATTACK, LKANM_BTK_TJATTACK},
+ /* 0x24 */ {LKANM_BTP_TJATTACK, LKANM_BTK_TEUP},
+ /* 0x25 */ {LKANM_BTP_TCUTTURNP, LKANM_BTK_TECN},
+ /* 0x26 */ {LKANM_BTP_TCUTTURN, LKANM_BTK_TCUTTURN},
+ /* 0x27 */ {LKANM_BTP_TMJMP, LKANM_BTK_TMJMP},
+ /* 0x28 */ {LKANM_BTP_TMJMPC, LKANM_BTK_TMJMPC},
+ /* 0x29 */ {LKANM_BTP_TMROLLL, LKANM_BTK_TMROLLL},
+ /* 0x2A */ {LKANM_BTP_TMROLLR, LKANM_BTK_TMROLLR},
+ /* 0x2B */ {LKANM_BTP_TMROLLLRC, LKANM_BTK_TMROLLLC},
+ /* 0x2C */ {LKANM_BTP_TMROLLLRC, LKANM_BTK_TMROLLRC},
+ /* 0x2D */ {LKANM_BTP_TMSTEPOVER, LKANM_BTK_TMSTEPOVER},
+ /* 0x2E */ {LKANM_BTP_TMSTEPOVERA, LKANM_BTK_TMSTEPOVERA},
+ /* 0x2F */ {LKANM_BTP_TMSTEPOVERLAND, LKANM_BTK_TMSTEPOVERLAND},
+ /* 0x30 */ {LKANM_BTP_TATNJLR, LKANM_BTK_TATNJL},
+ /* 0x31 */ {LKANM_BTP_TATNJLR, LKANM_BTK_TATNJR},
+ /* 0x32 */ {LKANM_BTP_TJMP, LKANM_BTK_TJMP},
+ /* 0x33 */ {LKANM_BTP_TROLLF, LKANM_BTK_TROLLF},
+ /* 0x34 */ {LKANM_BTP_TROLLB, LKANM_BTK_TROLLB},
+ /* 0x35 */ {LKANM_BTP_TROLLBLAND, LKANM_BTK_TECN},
+ /* 0x36 */ {LKANM_BTP_TROLLFMIS, LKANM_BTK_TROLLFMIS},
+ /* 0x37 */ {LKANM_BTP_TFALL, LKANM_BTK_TEDW},
+ /* 0x38 */ {LKANM_BTP_TLANDDAMA, LKANM_BTK_TLANDDAMA},
+ /* 0x39 */ {LKANM_BTP_TLANDDAMAST, LKANM_BTK_TLANDDAMAST},
+ /* 0x3A */ {LKANM_BTP_TDAM, LKANM_BTK_TDAM},
+ /* 0x3B */ {LKANM_BTP_TDAMF, LKANM_BTK_TECN},
+ /* 0x3C */ {LKANM_BTP_TDAMFFUP, LKANM_BTK_TDAMFFUP},
+ /* 0x3D */ {LKANM_BTP_TDAMFBUP, LKANM_BTK_TDAMFBUP},
+ /* 0x3E */ {LKANM_BTP_TDAMFLRUP, LKANM_BTK_TDAMFLUP},
+ /* 0x3F */ {LKANM_BTP_TDAMFLRUP, LKANM_BTK_TDAMFRUP},
+ /* 0x40 */ {LKANM_BTP_TDAMDASH, LKANM_BTK_TECN},
+ /* 0x41 */ {LKANM_BTP_TGUARD, LKANM_BTK_TGUARD},
+ /* 0x42 */ {LKANM_BTP_TSLIDEF, LKANM_BTK_TSLIDEF},
+ /* 0x43 */ {LKANM_BTP_TSLIDEFLAND, LKANM_BTK_TSLIDEFLAND},
+ /* 0x44 */ {LKANM_BTP_TSLIDEB, LKANM_BTK_TEDW},
+ /* 0x45 */ {LKANM_BTP_TSLIDEBLAND, LKANM_BTK_TSLIDEFLAND},
+ /* 0x46 */ {LKANM_BTP_TSWIMP, LKANM_BTK_TSWIMP},
+ /* 0x47 */ {LKANM_BTP_TSWIMING, LKANM_BTK_TSWIMING},
+ /* 0x48 */ {LKANM_BTP_TBOOMTHROW, LKANM_BTK_TBOOMTHROW},
+ /* 0x49 */ {LKANM_BTP_TBOOMCATCH, LKANM_BTK_TBOOMCATCH},
+ /* 0x4A */ {LKANM_BTP_TWALKPUSH, LKANM_BTK_TWALKPUSH},
+ /* 0x4B */ {LKANM_BTP_TWALKPULL, LKANM_BTK_TWALKPULL},
+ /* 0x4C */ {LKANM_BTP_TVJMPCHA, LKANM_BTK_TVJMPCHA},
+ /* 0x4D */ {LKANM_BTP_TVJMPCL, LKANM_BTK_TVJMPCL},
+ /* 0x4E */ {LKANM_BTP_TROPECLIMB, LKANM_BTK_TEUP},
+ /* 0x4F */ {LKANM_BTP_TROPEDOWN, LKANM_BTK_TEDW},
+ /* 0x50 */ {LKANM_BTP_TLADDERUPST, LKANM_BTK_TLADDERUPST},
+ /* 0x51 */ {LKANM_BTP_TLADDERDWST, LKANM_BTK_TLADDERDWST},
+ /* 0x52 */ {LKANM_BTP_TLADDERUPED, LKANM_BTK_TLADDERUPED},
+ /* 0x53 */ {LKANM_BTP_TLADDERDWED, LKANM_BTK_TLADDERDWED},
+ /* 0x54 */ {LKANM_BTP_THANGING, LKANM_BTK_THANGING},
+ /* 0x55 */ {LKANM_BTP_THANGUP, LKANM_BTK_THANGUP},
+ /* 0x56 */ {LKANM_BTP_TLAVADAM, LKANM_BTK_TLAVADAM},
+ /* 0x57 */ {LKANM_BTP_TCUTRE, LKANM_BTK_TCUTRE},
+ /* 0x58 */ {LKANM_BTP_TCUTTURNB, LKANM_BTK_TCUTTURNB},
+ /* 0x59 */ {LKANM_BTP_TWAITATOB, LKANM_BTK_TWAITATOB},
+ /* 0x5A */ {LKANM_BTP_TCOMEOUT, LKANM_BTK_TCOMEOUT},
+ /* 0x5B */ {LKANM_BTP_THOLDUP, LKANM_BTK_TMABA},
+ /* 0x5C */ {LKANM_BTP_TWALLHOLDUP, LKANM_BTK_TWALLHOLDUP},
+ /* 0x5D */ {LKANM_BTP_TITEMGET, LKANM_BTK_TITEMGET},
+ /* 0x5E */ {LKANM_BTP_TSALTATION, LKANM_BTK_TSALTATION},
+ /* 0x5F */ {LKANM_BTP_TWHO, LKANM_BTK_TWHO},
+ /* 0x60 */ {LKANM_BTP_TPICKUP, LKANM_BTK_TPICKUP},
+ /* 0x61 */ {LKANM_BTP_TBOXOPENLINK, LKANM_BTK_TBOXOPENLINK},
+ /* 0x62 */ {LKANM_BTP_TBOXOPENSHORTLINK, LKANM_BTK_TBOXOPENSHORTLINK},
+ /* 0x63 */ {LKANM_BTP_TDIELONG, LKANM_BTK_TDIELONG},
+ /* 0x64 */ {LKANM_BTP_TSWIMDIE, LKANM_BTK_TECN},
+ /* 0x65 */ {LKANM_BTP_TSURPRISED, LKANM_BTK_TSURPRISED},
+ /* 0x66 */ {LKANM_BTP_TTURNBACK, LKANM_BTK_TTURNBACK},
+ /* 0x67 */ {LKANM_BTP_TLOOKUP, LKANM_BTK_TLOOKUP},
+ /* 0x68 */ {LKANM_BTP_TWAITQ, LKANM_BTK_TECN},
+ /* 0x69 */ {LKANM_BTP_TGLAD, LKANM_BTK_TECN},
+ /* 0x6A */ {LKANM_BTP_TCUTBOKO, LKANM_BTK_TCUTBOKO},
+ /* 0x6B */ {LKANM_BTP_SHIP_JUMP1, LKANM_BTK_TECN},
+ /* 0x6C */ {LKANM_BTP_SHIP_JUMP2, LKANM_BTK_TECN},
+ /* 0x6D */ {LKANM_BTP_TUSEFANA, LKANM_BTK_TUSEFANA},
+ /* 0x6E */ {LKANM_BTP_TUSEFANB, LKANM_BTK_TUSEFANB},
+ /* 0x6F */ {LKANM_BTP_TUSEFANB2, LKANM_BTK_TEDW},
+ /* 0x70 */ {LKANM_BTP_TBOWWAIT, LKANM_BTK_TBOWWAIT},
+ /* 0x71 */ {LKANM_BTP_TVOMITJMP, LKANM_BTK_TEDW},
+ /* 0x72 */ {LKANM_BTP_TREST, LKANM_BTK_TREST},
+ /* 0x73 */ {LKANM_BTP_TTAKE, LKANM_BTK_TTAKE},
+ /* 0x74 */ {LKANM_BTP_TTAKELR, LKANM_BTK_TECN},
+ /* 0x75 */ {LKANM_BTP_TSLIPICE, LKANM_BTK_TECN},
+ /* 0x76 */ {LKANM_BTP_THAMSWINGA, LKANM_BTK_THAMSWINGA},
+ /* 0x77 */ {LKANM_BTP_THAMSWINGBPRE, LKANM_BTK_THAMSWINGBPRE},
+ /* 0x78 */ {LKANM_BTP_THAMSWINGBHIT, LKANM_BTK_THAMSWINGBHIT},
+ /* 0x79 */ {LKANM_BTP_THAMSWINGBEND, LKANM_BTK_THAMSWINGBEND},
+ /* 0x7A */ {LKANM_BTP_TSETBOOTS, LKANM_BTK_TECN},
+ /* 0x7B */ {LKANM_BTP_TDOOROPENALINK, LKANM_BTK_TDOOROPENALINK},
+ /* 0x7C */ {LKANM_BTP_TDOOROPENBLINK, LKANM_BTK_TDOOROPENBLINK},
+ /* 0x7D */ {LKANM_BTP_TSEYYES, LKANM_BTK_TSEYYES},
+ /* 0x7E */ {LKANM_BTP_TPRESENTATION, LKANM_BTK_TPRESENTATIONA},
+ /* 0x7F */ {LKANM_BTP_TWIND, LKANM_BTK_TWINDL},
+ /* 0x80 */ {LKANM_BTP_TWIND, LKANM_BTK_TWINDR},
+ /* 0x81 */ {LKANM_BTP_TPRESENTATION, LKANM_BTK_TPRESENTATIONB},
+ /* 0x82 */ {LKANM_BTP_TBINDRINKPRE, LKANM_BTK_TBINDRINKPRE},
+ /* 0x83 */ {LKANM_BTP_TBINDRINKING, LKANM_BTK_TECN},
+ /* 0x84 */ {LKANM_BTP_TBINDRINKAFTER, LKANM_BTK_TBINDRINKAFTER},
+ /* 0x85 */ {LKANM_BTP_TBINDRINKPRE2, LKANM_BTK_TBINDRINKPRE},
+ /* 0x86 */ {LKANM_BTP_TBINDRINKING2, LKANM_BTK_TECN},
+ /* 0x87 */ {LKANM_BTP_TBINDRINKAFTER2, LKANM_BTK_TBINDRINKAFTER2},
+ /* 0x88 */ {LKANM_BTP_TBINOPENPRE, LKANM_BTK_TBINOPENPRE},
+ /* 0x89 */ {LKANM_BTP_TBINOPENA, LKANM_BTK_TBINOPENA},
+ /* 0x8A */ {LKANM_BTP_TBINOPENB, LKANM_BTK_TBINOPENB},
+ /* 0x8B */ {LKANM_BTP_TBINSWING, LKANM_BTK_TBINSWING},
+ /* 0x8C */ {LKANM_BTP_TBINGET, LKANM_BTK_TBINGET},
+ /* 0x8D */ {LKANM_BTP_TARROWRELORD, LKANM_BTK_TARROWRELORD},
+ /* 0x8E */ {LKANM_BTP_TSURPRISEDB, LKANM_BTK_TSURPRISEDB},
+ /* 0x8F */ {LKANM_BTP_TFAN, LKANM_BTK_TFAN},
+ /* 0x90 */ {LKANM_BTP_TNENRIKI, LKANM_BTK_TECN},
+ /* 0x91 */ {LKANM_BTP_TMABAB, LKANM_BTK_TEDL},
+ /* 0x92 */ {LKANM_BTP_TMABAH, LKANM_BTK_TABEKOBE},
+ /* 0x93 */ {LKANM_BTP_TSETHYOINOMI, LKANM_BTK_TSETHYOINOMI},
+ /* 0x94 */ {LKANM_BTP_LINK_FREEZ, LKANM_BTK_TECN},
+ /* 0x95 */ {LKANM_BTP_LINK_MOGAKI, LKANM_BTK_TECN},
+ /* 0x96 */ {LKANM_BTP_TDAMBIRI, LKANM_BTK_TDAMBIRI},
+ /* 0x97 */ {LKANM_BTP_SALVLR, LKANM_BTK_SALVWAIT},
+ /* 0x98 */ {LKANM_BTP_SALVWAIT, LKANM_BTK_SALVWAIT},
+ /* 0x99 */ {LKANM_BTP_SALVBAD, LKANM_BTK_SALVWAIT},
+ /* 0x9A */ {LKANM_BTP_SALVGOOD, LKANM_BTK_SALVWAIT},
+ /* 0x9B */ {LKANM_BTP_SEARESET, LKANM_BTK_SEARESET},
+ /* 0x9C */ {LKANM_BTP_TWARPIN, LKANM_BTK_TWARPIN},
+ /* 0x9D */ {LKANM_BTP_TWARPOUT, LKANM_BTK_TWARPOUT},
+ /* 0x9E */ {LKANM_BTP_TPOWUPWAIT, LKANM_BTK_TPOWUPWAIT},
+ /* 0x9F */ {LKANM_BTP_TPOWUP, LKANM_BTK_TPOWUP},
+ /* 0xA0 */ {LKANM_BTP_TCUTKESA, LKANM_BTK_TCUTKESA},
+ /* 0xA1 */ {LKANM_BTP_TWARPOUTFIRST, LKANM_BTK_TWARPOUTFIRST},
+ /* 0xA2 */ {LKANM_BTP_TDASHKAZE, LKANM_BTK_TDASHKAZE},
+ /* 0xA3 */ {LKANM_BTP_TIYAYA, LKANM_BTK_TECN},
+ /* 0xA4 */ {LKANM_BTP_TFREEA, LKANM_BTK_TFREEA},
+ /* 0xA5 */ {LKANM_BTP_TFREEB, LKANM_BTK_TFREEB},
+ /* 0xA6 */ {LKANM_BTP_TFREED, LKANM_BTK_TFREED},
+ /* 0xA7 */ {LKANM_BTP_TTAKTKAZE, LKANM_BTK_TECN},
+ /* 0xA8 */ {LKANM_BTP_TTAKTSIPPU, LKANM_BTK_TECN},
+ /* 0xA9 */ {LKANM_BTP_TTAKTCHUYA, LKANM_BTK_TECN},
+ /* 0xAA */ {LKANM_BTP_TTAKTFUJIN, LKANM_BTK_TECN},
+ /* 0xAB */ {LKANM_BTP_TTAKTAYATSURI, LKANM_BTK_TECN},
+ /* 0xAC */ {LKANM_BTP_TTAKTCHISIN, LKANM_BTK_TECN},
};
const daPy_anmIndex_c daPy_lk_c::mSwordAnmIndexTable[] = {
@@ -2711,13 +2715,182 @@ u8 daPy_matAnm_c::m_morf_frame;
s16 daPy_dmEcallBack_c::m_timer = 0;
u16 daPy_dmEcallBack_c::m_type = 3;
+u8 right_dir_4883[0xC];
+u8 texObj_5157[0x20];
+
daPy_waterDropPcallBack_c daPy_waterDropEcallBack_c::m_pcallback;
+u8 normal_ripple_scale_5638[0xC];
+u8 small_ripple_scale_5641[0xC];
+u8 waterfall_splash_trans_5699[0xC];
+u8 run_splash_scale_6040[0xC];
+u8 run_grass_scale_6043[0xC];
+u8 heavy_emit_smoke_scale_6046[0xC];
+u8 heavy_dyn_smoke_scale_6049[0xC];
+u8 heavy_pat_smoke_scale_6052[0xC];
+u8 tail_scale_6508[0xC];
+u8 arm_flame_scale_6651[0xC];
+u8 _6785[0xC];
+u8 eff_scale0_6784[0xC];
+u8 _6789[0xC];
+u8 eff_scale2_6788[0xC];
+u8 direction_6792[0xC];
+u8 splash_scale_14445[0xC];
+u8 ripple_scale_14448[0xC];
+u8 _15293[0xC];
+u8 arm_pos_15292[0xC];
+u8 _15297[0xC];
+u8 armA_offset_15296[0xC];
+u8 dynamic_scale_16750[0xC];
+u8 particle_scale_16753[0xC];
+u8 _17480[0xC];
+u8 local_height_offset_17479[0xC];
+u8 eff_scale_18886[0xC];
+u8 eff_dscale_18889[0xC];
+u8 eff_pscale_18892[0xC];
+u8 smoke_kusa_particle_scale_21005[0xC];
+u8 emitter_scale_21008[0xC];
+u8 emitter_trans_21011[0xC];
+u8 d_scale_23162[0xC];
+u8 p_scale_23165[0xC];
+u8 emitter_trans_24824[0xC];
+u8 particle_scale_24827[0xC];
+u8 root_mtx_25647[0x30];
+
static mDoExt_offCupOnAupPacket l_offCupOnAupPacket1;
static mDoExt_offCupOnAupPacket l_offCupOnAupPacket2;
static mDoExt_onCupOffAupPacket l_onCupOffAupPacket1;
static mDoExt_onCupOffAupPacket l_onCupOffAupPacket2;
+static void dummydatafunc(f32* temp, f64* temp2) {
+ // temporary hack to improve diffs until sdata2 offsets are figured out
+ *temp = 2.0f;
+ *temp = -1000000000.0f;
+ *temp = -1.0f;
+ *temp = 0.0f;
+ *temp = 0.08f;
+ *temp = 1.0f;
+ *temp = 12.0f;
+ *temp = 13.0f;
+ *temp = 150.0f;
+ *temp = 30.0f;
+ *temp = 0.65f;
+ *temp = 0.35f;
+ *temp = 32768.0f;
+ *temp = 16384.0f;
+ *temp = 10.0f;
+ *temp2 = 4503601774854144.0;
+ *temp2 = 4503599627370496.0;
+ *temp = 25.0f;
+ *temp = -0.05f;
+ *temp2 = 0.5;
+ *temp2 = 3.0;
+ *temp = 0.6f;
+ *temp = 0.01f;
+ *temp = 0.001f;
+ *temp = 15.0f;
+ *temp = 1.5f;
+ *temp = 3.1415927f;
+ *temp = 0.5f;
+ *temp = 0.3f;
+ *temp = 1.2f;
+ *temp = 0.4f;
+ *temp = 5.0f;
+ *temp = 0.1f;
+ *temp = 0.8f;
+ *temp = 60.0f;
+ *temp = 4.0f;
+ *temp = 0.25f;
+ *temp = 0.75f;
+ *temp = 16.0f;
+ *temp = 8.0f;
+ *temp = 18.0f;
+ *temp = 3.0f;
+ *temp = 0.2f;
+ *temp = 0.05f;
+ *temp = 45.0f;
+ *temp = 11.0f;
+ *temp = 17.5f;
+ *temp = 1000000000.0f;
+ OSReport("Adanmae");
+ OSReport("d_a_player_dproc.inc");
+ OSReport("0");
+ OSReport("Halt");
+ OSReport("Link");
+ OSReport("DEFAULT_GETITEM");
+ OSReport("GanonK");
+ OSReport("GTower");
+ OSReport("d_a_player_bow.inc");
+ OSReport("d_a_player_hook.inc");
+ OSReport("d_a_player_fan.inc");
+ OSReport("d_a_player_hammer.inc");
+ OSReport("Type");
+ OSReport("Omori");
+ OSReport("d_a_player_sword.inc");
+ OSReport("M_DaiB");
+ OSReport("Xboss2");
+ OSReport("M_DragB");
+ OSReport("Xboss0");
+ OSReport("fall");
+ OSReport("d_a_player_main.cpp");
+ OSReport("(demo_mode < daPy_demo_c::DEMO_LAST_e) || (demo_mode == daPy_demo_c::DEMO_NEW_ANM0_e)");
+ OSReport("Ojhous");
+ OSReport("Orichh");
+ OSReport("kinBOSS");
+ OSReport("Xboss1");
+ OSReport("ICE_FAILED");
+ OSReport("pos");
+ OSReport("angle");
+ OSReport("prm0");
+ OSReport("prm1");
+ OSReport("stick");
+ OSReport("face");
+ OSReport("GanonM");
+ OSReport("sea");
+ OSReport("m_tex_anm_heap.m_buffer != 0");
+ OSReport("m_texNoAnms != 0");
+ OSReport("mat_anm != 0");
+ OSReport("m_tex_scroll_heap.m_buffer != 0");
+ OSReport("material_num == 2");
+ OSReport("m_texMtxAnm != 0");
+ OSReport("m_tex_eye_scroll[no] != 0");
+ OSReport("tmtx != 0");
+ OSReport("mtl->getMaterialAnm() != 0");
+ OSReport("tmp_modelData != 0");
+ OSReport("aura_p->getModel() != 0");
+ OSReport("m_old_fdata != 0");
+ OSReport("m_pbCalc[PART_UNDER_e] != 0");
+ OSReport("m_pbCalc[PART_UPPER_e] != 0");
+ OSReport("m_HIO != 0");
+ OSReport("m_anm_heap_under[UNDER_MOVE0_e].m_buffer != 0");
+ OSReport("m_sanm_buffer != 0");
+ OSReport("m_item_bck_buffer != 0");
+ OSReport("tmp_trans_bas != 0");
+ OSReport("tmp_trans != 0");
+ OSReport("tmp_tp != 0");
+ OSReport("tmp_tk != 0");
+ OSReport("*i_model != 0");
+ OSReport("btk_anm != 0");
+ OSReport("brk_anm != 0");
+ OSReport("zoff_blend_cnt <= 4");
+ OSReport("zoff_none_cnt <= 4");
+ OSReport("zon_cnt <= 4");
+ OSReport("zon_cnt == 4");
+ OSReport("zoff_none_cnt == 4");
+ OSReport("zoff_blend_cnt == 4");
+ OSReport("dummy_data != 0");
+ OSReport("Always");
+ OSReport("tmp_tex != 0");
+ OSReport("tmp_img != 0");
+ OSReport("texture != 0");
+ OSReport("textureName != 0");
+ OSReport("linktexS3TC");
+ OSReport("Pjavdou");
+ OSReport("ShipD");
+ OSReport("Siren");
+ OSReport("data_size < l_sanm_buffer_size");
+}
+
/* 80102E8C-80102EAC .text daPy_createHeap__FP10fopAc_ac_c */
static BOOL daPy_createHeap(fopAc_ac_c* i_this) {
return static_cast<daPy_lk_c*>(i_this)->createHeap();
@@ -2940,28 +3113,40 @@ void daPy_lk_c::setBlurPosResource(u16 index) {
}
/* 80104280-80104364 .text getItemAnimeResource__9daPy_lk_cFUs */
-J3DAnmTransform* daPy_lk_c::getItemAnimeResource(u16) {
- /* Nonmatching */
+J3DAnmTransform* daPy_lk_c::getItemAnimeResource(u16 index) {
+ dComIfGp_getAnmArchive()->readIdxResource(m_item_bck_buffer, 0x1000, index);
+ JKRHeap* oldHeap = setAnimeHeap(m2ECC);
+ mDoExt_transAnmBas* bas = new mDoExt_transAnmBas(NULL);
+ J3DAnmLoaderDataBase::setResource(bas, m_item_bck_buffer);
+ mDoExt_setCurrentHeap(oldHeap);
+ return bas;
}
/* 80104364-801043F0 .text getAnimeResource__9daPy_lk_cFP14daPy_anmHeap_cUsUl */
-J3DAnmTransform* daPy_lk_c::getAnimeResource(daPy_anmHeap_c*, u16, u32) {
- /* Nonmatching */
+J3DAnmTransform* daPy_lk_c::getAnimeResource(daPy_anmHeap_c* anmHeap, u16 index, u32 bufferSize) {
+ J3DAnmTransform* bck;
+ dComIfGp_getAnmArchive()->readIdxResource(anmHeap->m_buffer, bufferSize, index);
+ JKRHeap* oldHeap = setAnimeHeap(anmHeap->mpAnimeHeap);
+ bck = static_cast<J3DAnmTransform*>(J3DAnmLoaderDataBase::load(anmHeap->m_buffer));
+ mDoExt_setCurrentHeap(oldHeap);
+ anmHeap->mIdx = index;
+ anmHeap->field_0x2 = -1;
+ return bck;
}
/* 801043F0-801044E8 .text getUnderUpperAnime__9daPy_lk_cFPC15daPy_anmIndex_cPP15J3DAnmTransformPP15J3DAnmTransformiUl */
-void daPy_lk_c::getUnderUpperAnime(const daPy_anmIndex_c* anmIndex, J3DAnmTransform** pUnderBck, J3DAnmTransform** pUpperBck, int r7, u32 r28) {
+void daPy_lk_c::getUnderUpperAnime(const daPy_anmIndex_c* anmIndex, J3DAnmTransform** pUnderBck, J3DAnmTransform** pUpperBck, int r7, u32 bufferSize) {
if (m_anm_heap_under[r7].mIdx != anmIndex->mUnderBckIdx) {
- *pUnderBck = getAnimeResource(&m_anm_heap_under[r7], anmIndex->mUnderBckIdx, r28);
+ *pUnderBck = getAnimeResource(&m_anm_heap_under[r7], anmIndex->mUnderBckIdx, bufferSize);
} else {
*pUnderBck = mAnmRatioUnder[r7].getAnmTransform();
}
if (anmIndex->mUnderBckIdx != anmIndex->mUpperBckIdx) {
- if (r28 == 0xB400) {
- r28 = 0x4800;
+ if (bufferSize == 0xB400) {
+ bufferSize = 0x4800;
}
if (m_anm_heap_upper[r7].mIdx != anmIndex->mUpperBckIdx) {
- *pUpperBck = getAnimeResource(&m_anm_heap_upper[r7], anmIndex->mUpperBckIdx, r28);
+ *pUpperBck = getAnimeResource(&m_anm_heap_upper[r7], anmIndex->mUpperBckIdx, bufferSize);
} else {
*pUpperBck = mAnmRatioUpper[r7].getAnmTransform();
}
@@ -2972,18 +3157,47 @@ void daPy_lk_c::getUnderUpperAnime(const daPy_anmIndex_c* anmIndex, J3DAnmTransf
}
/* 801044E8-80104564 .text setTextureAnimeResource__9daPy_lk_cFP16J3DAnmTexPatterni */
-void daPy_lk_c::setTextureAnimeResource(J3DAnmTexPattern*, int) {
- /* Nonmatching */
+void daPy_lk_c::setTextureAnimeResource(J3DAnmTexPattern* btp, int r31) {
+ btp->searchUpdateMaterialID(mpCLModelData);
+ m035C = btp;
+ m3530 = r31;
+ u16 material_num = btp->getUpdateMaterialNum();
+ for (u16 i = 0; i < material_num; i++) {
+ m_texNoAnms[i].setAnmTexPattern(btp);
+ }
}
/* 80104564-80104600 .text loadTextureAnimeResource__9daPy_lk_cFUli */
-void daPy_lk_c::loadTextureAnimeResource(u32, int) {
- /* Nonmatching */
+J3DAnmTexPattern* daPy_lk_c::loadTextureAnimeResource(u32 index, BOOL isDemo) {
+ J3DAnmTexPattern* btp;
+ if (isDemo) {
+ dComIfGp_getLkDemoAnmArchive()->readResource(m_tex_anm_heap.m_buffer, 0x1000, index);
+ } else {
+ dComIfGp_getAnmArchive()->readIdxResource(m_tex_anm_heap.m_buffer, 0x1000, index);
+ }
+ JKRHeap* oldHeap = setAnimeHeap(m_tex_anm_heap.mpAnimeHeap);
+ btp = static_cast<J3DAnmTexPattern*>(J3DAnmLoaderDataBase::load(m_tex_anm_heap.m_buffer));
+ mDoExt_setCurrentHeap(oldHeap);
+ return btp;
}
/* 80104600-801046CC .text checkBossBgm__9daPy_lk_cFv */
BOOL daPy_lk_c::checkBossBgm() {
- /* Nonmatching */
+ u32 mainBgm = mDoAud_checkPlayingMainBgmFlag();
+ u32 subBgm = mDoAud_checkPlayingSubBgmFlag();
+ if (mainBgm == JA_BGM_GOMA || mainBgm == JA_BGM_GOMA_2 || mainBgm == JA_BGM_KINDAN_BOSS ||
+ mainBgm == JA_BGM_DK_BATTLE || mainBgm == JA_BGM_MJ_TOWER_BATTLE || mainBgm == JA_BGM_BST_BATTLE ||
+ mainBgm == JA_BGM_RANE_BATTLE || mainBgm == JA_BGM_PAST_GOMA_2 || mainBgm == JA_BGM_BIG_POW ||
+ mainBgm == JA_BGM_PAST_BIG_POW || mainBgm == JA_BGM_PAST_BKM || mainBgm == JA_BGM_PAST_GOMA ||
+ mainBgm == JA_BGM_PAST_RANE || mainBgm == JA_BGM_GANON_BATTLE || mainBgm == JA_BGM_BGN_KUGUTSU ||
+ mainBgm == JA_BGM_BGN_TARABA || mainBgm == JA_BGM_BGN_HAYAMUSHI || subBgm == JA_BGM_MBOSS ||
+ subBgm == JA_BGM_MBOSS_S || subBgm == JA_BGM_P_GANON_1 || subBgm == JA_BGM_P_GANON_2 ||
+ subBgm == JA_BGM_DIOCTA_BATTLE || subBgm == JA_BGM_DIOCTA_2)
+ {
+ return TRUE;
+ } else {
+ return FALSE;
+ }
}
/* 801046CC-801046EC .text checkMabaAnimeBtp__9daPy_lk_cFi */
@@ -3147,7 +3361,298 @@ void daPy_lk_c::onBodyEffect() {
/* 80107308-80108204 .text draw__9daPy_lk_cFv */
BOOL daPy_lk_c::draw() {
- /* Nonmatching */
+ /* Nonmatching - regalloc */
+ if (mSightPacket.getDrawFlg()) {
+ mSightPacket.setSight();
+ }
+ g_env_light.settingTevStruct(TEV_TYPE_PLAYER, &current.pos, &mTevStr);
+ if (checkPlayerNoDraw()) {
+ offBodyEffect();
+ drawMirrorLightModel();
+ return TRUE;
+ }
+
+ if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)) {
+ offBodyEffect();
+ } else {
+ onBodyEffect();
+ }
+
+ s16 origFogR, origFogG, origFogB;
+ f32 origFogStartZ, origFogEndZ;
+ origFogR = mTevStr.mFogColor.r;
+ origFogG = mTevStr.mFogColor.g;
+ origFogB = mTevStr.mFogColor.b;
+ origFogStartZ = mTevStr.mFogStartZ;
+ origFogEndZ = mTevStr.mFogEndZ;
+ if (!checkFreezeState() && mCurProc != PROC_ELEC_DAMAGE_e && (daPy_dmEcallBack_c::checkCurse() || checkConfuse() || mDamageWaitTimer > 0)) {
+ cXyz sp18;
+ mDoLib_pos2camera(&current.pos, &sp18);
+ f32 f2 = fabsf(cM_ssin(g_Counter.mTimer * 0x800));
+ if (daPy_dmEcallBack_c::checkCurse() || checkConfuse()) {
+ mTevStr.mFogColor.r = 0x80;
+ mTevStr.mFogColor.g = 0x00;
+ mTevStr.mFogColor.b = 0xFF;
+ } else {
+ mTevStr.mFogColor.r = 0xFF;
+ mTevStr.mFogColor.g = 0x3C;
+ mTevStr.mFogColor.b = 0x3C;
+ }
+ mTevStr.mFogStartZ = -sp18.z - 200.0f + 200.0f * f2;
+ mTevStr.mFogEndZ = mTevStr.mFogStartZ + 300.0f;
+ }
+
+ u16 material_num = m035C->getUpdateMaterialNum();
+ for (u16 i = 0; i < material_num; i++) {
+ u16 matID = m035C->getUpdateMaterialID(i);
+ if (matID != 0xFFFF) {
+ J3DMaterial* mtl = mpCLModelData->getMaterialNodePointer(matID);
+ J3DMaterialAnm* mtlAnm = mtl->getMaterialAnm();
+ u8 texNo = m035C->getAnmTable()[i].mTexNo;
+ mtlAnm->setTexNoAnm(texNo, &m_texNoAnms[i]);
+ if (matID != 0xE) {
+ // Not mouth (i.e. it's eyeL, eyeR, mayuL, or mayuR)
+ mtl = mpCLModelData->getMaterialNodePointer(matID+1);
+ mtlAnm = mtl->getMaterialAnm();
+ mtlAnm->setTexNoAnm(texNo, &m_texNoAnms[i]);
+ }
+ }
+ }
+
+ mpCLModelData->setTexMtxAnimator(mpTexScrollResData, m_texMtxAnm, NULL);
+ m035C->setFrame(m3530);
+ mpTexScrollResData->setFrame(m3532);
+ g_env_light.setLightTevColorType(mpCLModel, &mTevStr);
+ J3DJoint* link_root_joint = mpCLModelData->getJointNodePointer(0x00); // link_root joint
+ mpCLModelData->getJointNodePointer(0x08)->getMesh()->getShape()->hide(); // cl_LhandA joint
+ mpCLModelData->getJointNodePointer(0x0C)->getMesh()->getShape()->hide(); // cl_RhandA joint
+
+ J3DMaterial* mtl = link_root_joint->getMesh();
+ for (int i = 0; i < 4; i++) {
+ mtl = mtl->getNext();
+ }
+ mtl->getShape()->show();
+
+ J3DJoint* cl_eye_joint = mpCLModelData->getJointNodePointer(0x13); // cl_eye joint
+ J3DJoint* cl_mayu_joint = mpCLModelData->getJointNodePointer(0x15); // cl_mayu joint
+ setDrawHandModel();
+ j3dSys.setModel(mpCLModel);
+ j3dSys.setTexture(mpCLModelData->getTexture());
+ j3dSys.getModel()->unlock();
+
+ BOOL r24 = field_0x2b0 <= -85.0f;
+ if (r24) {
+ for (int i = 0; i < ARRAY_SIZE(mpZOffBlendShape); i++) {
+ mpZOffBlendShape[i]->hide();
+ mpZOffNoneShape[i]->hide();
+ mpZOnShape[i]->hide();
+ }
+ mpCLModelData->getJointNodePointer(0x08)->getMesh()->getShape()->hide(); // cl_LhandA joint
+ mpCLModelData->getJointNodePointer(0x0C)->getMesh()->getShape()->hide(); // cl_RhandA joint
+ mtl = link_root_joint->getMesh();
+ for (int i = 0; mtl != NULL; i++, mtl = mtl->getNext()) {
+ if (i != 3) {
+ mtl->getShape()->hide();
+ } else {
+ mtl->getShape()->show();
+ }
+ }
+ } else if (dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)) {
+ for (int i = 0; i < ARRAY_SIZE(mpZOffBlendShape); i++) {
+ mpZOffBlendShape[i]->hide();
+ mpZOffNoneShape[i]->hide();
+ mpZOnShape[i]->hide();
+ }
+ mtl = link_root_joint->getMesh();
+ for (int i = 0; mtl != NULL; i++, mtl = mtl->getNext()) {
+ if (i != 0 && i != 3) {
+ mtl->getShape()->hide();
+ } else {
+ mtl->getShape()->show();
+ }
+ }
+ mpCLModelData->getJointNodePointer(0x14)->getMesh()->getShape()->hide(); // cl_hana joint
+ } else {
+ if (!checkFreezeState()) {
+ dComIfGd_setListP0();
+ l_onCupOffAupPacket2.entryOpa();
+ for (int i = 0; i < ARRAY_SIZE(mpZOffBlendShape); i++) {
+ mpZOffBlendShape[i]->hide();
+ mpZOnShape[i]->hide();
+ mpZOffNoneShape[i]->show();
+ }
+ cl_eye_joint->entryIn();
+ cl_mayu_joint->entryIn();
+ l_offCupOnAupPacket2.entryOpa();
+ for (int i = 0; i < ARRAY_SIZE(mpZOffBlendShape); i++) {
+ mpZOffBlendShape[i]->show();
+ mpZOffNoneShape[i]->hide();
+ }
+ cl_eye_joint->entryIn();
+ cl_mayu_joint->entryIn();
+ mtl = link_root_joint->getMesh();
+ for (int i = 0; mtl != NULL; i++, mtl = mtl->getNext()) {
+ if (i != 2 && i != 5) {
+ mtl->getShape()->hide();
+ }
+ }
+ link_root_joint->entryIn();
+ if (checkMaskDraw()) {
+ entryDLSetLight(mpYamuModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
+ }
+ j3dSys.setModel(mpCLModel);
+ j3dSys.setTexture(mpCLModelData->getTexture());
+ hideHatAndBackle(link_root_joint->getMesh());
+ l_onCupOffAupPacket1.entryOpa();
+ for (int i = 0; i < ARRAY_SIZE(mpZOffBlendShape); i++) {
+ mpZOffBlendShape[i]->hide();
+ mpZOnShape[i]->show();
+ mpZOffNoneShape[i]->hide();
+ }
+ cl_eye_joint->entryIn();
+ cl_mayu_joint->entryIn();
+ l_offCupOnAupPacket1.entryOpa();
+ for (int i = 0; i < ARRAY_SIZE(mpZOffBlendShape); i++) {
+ mpZOnShape[i]->hide();
+ }
+ } else {
+ hideHatAndBackle(link_root_joint->getMesh());
+ }
+ bool r4 = dComIfGs_getSelectEquip(0) == SWORD || dComIfGp_getMiniGameType() == 2; // TODO this may be an inline
+ if (!r4 && dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) != 5 || checkCaughtShapeHide() || checkDemoShieldNoDraw()) {
+ mpCLModelData->getJointNodePointer(0x0D)->getMesh()->getShape()->hide(); // cl_podA joint
+ } else {
+ mpCLModelData->getJointNodePointer(0x0D)->getMesh()->getShape()->show(); // cl_podA joint
+ }
+ }
+
+ // regalloc issues with j3dSys from here on
+ dComIfGd_setListP1();
+ if (checkFreezeState()) {
+ dMat_control_c::iceEntryDL(mpCLModel, -1, NULL);
+ } else {
+ mDoExt_modelEntryDL(mpCLModel);
+ }
+ mtl = link_root_joint->getMesh();
+ while (mtl != NULL) {
+ mtl->getShape()->show();
+ mtl = mtl->getNext();
+ }
+ mpCLModelData->getJointNodePointer(0x14)->getMesh()->getShape()->show(); // cl_hana joint
+ mpCLModelData->getJointNodePointer(0x29)->getMesh()->getShape()->show(); // cl_back joint
+ if (!r24) {
+ entryDLSetLight(mpHandsModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
+ if (checkNoResetFlg1(daPyFlg1_CASUAL_CLOTHES) && !checkCaughtShapeHide() && !dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)) {
+ entryDLSetLight(mpKatsuraModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
+ }
+ if (checkFreezeState() && checkMaskDraw()) {
+ entryDLSetLight(mpYamuModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
+ }
+ if (dComIfGs_getSelectEquip(2) == PWR_GROOVE) {
+ entryDLSetLight(mpPringModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
+ }
+ // TODO this may be an inline
+ bool r4 = dComIfGs_getSelectEquip(0) == MASTER_SWORD || dComIfGs_getSelectEquip(0) == LV3_SWORD || dComIfGs_getSelectEquip(0) == MASTER_SWORD_EX;
+ if (r4 && !checkCaughtShapeHide() && !checkDemoShieldNoDraw()) {
+ updateDLSetLight(mpPodmsModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
+ }
+ }
+ if (checkEquipHeavyBoots()) {
+ entryDLSetLight(mpHbootsModels[0], mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
+ entryDLSetLight(mpHbootsModels[1], mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
+ }
+
+ mTevStr.mFogColor.r = origFogR;
+ mTevStr.mFogColor.g = origFogG;
+ mTevStr.mFogColor.b = origFogB;
+ mTevStr.mFogStartZ = origFogStartZ;
+ mTevStr.mFogEndZ = origFogEndZ;
+
+ if (!r24) {
+ if (mCurProc == PROC_CUT_F_e || mCurProc == PROC_BT_VERTICAL_JUMP_CUT_e) {
+ updateDLSetLight(mpSwordTipStabModel, 0);
+ } else if (checkModeFlg(0x40000) && checkNoResetFlg0(daPyFlg0_UNK100) && !(mCurProc == DPROC_DEAD_e && m34D6 == 0)) {
+ GXColor spc;
+ GXColor sp8;
+ dKy_get_seacolor(&spc, &sp8);
+ J3DGXColorS10 sp10;
+ sp10.mColor.r = spc.r;
+ sp10.mColor.g = spc.g;
+ sp10.mColor.b = spc.b;
+ int matID = mpSuimenMunyaModel->getModelData()->getMaterialNum() - 1;
+ for (; matID >= 0; matID--) {
+ mpSuimenMunyaModel->getModelData()->getMaterialNodePointer(matID)->setTevColor(0, &sp10);
+ }
+ mDoExt_modelUpdateDL(mpSuimenMunyaModel);
+ }
+ if (!r24 && !dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)) {
+ bool r4 = dComIfGs_getSelectEquip(0) != NO_ITEM || dComIfGp_getMiniGameType() == 2; // TODO this may be an inline
+ if (r4 && !checkDemoSwordNoDraw(1)) {
+ entryDLSetLight(mpEquippedSwordModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
+ }
+ }
+ if (dComIfGs_getSelectEquip(1) != NO_ITEM && !checkCaughtShapeHide() && !checkDemoShieldNoDraw()) {
+ entryDLSetLight(mpEquippedShieldModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
+ }
+ dComIfGd_setList();
+ drawMirrorLightModel();
+ dComIfGd_setListP1();
+
+ if (mpBottleContentsModel != NULL) {
+ updateDLSetLight(mpBottleContentsModel, 0);
+ }
+ if (mpHeldItemModel && !checkCaughtShapeHide() && !checkDemoSwordNoDraw(0)) {
+ if (!checkBowItem(mHeldItemType) || !checkPlayerGuard()) {
+ if (mHeldItemType == HOOKSHOT) {
+ if (mActorKeepEquip.getActor()) {
+ daHookshot_c* hookshot = (daHookshot_c*)mActorKeepEquip.getActor();
+ mpHeldItemModel->setAnmMtx(4, hookshot->getMtxTop());
+ }
+ }
+ entryDLSetLight(mpHeldItemModel, mNoResetFlg1 & daPyFlg1_FREEZE_STATE);
+ if (mpSwordModel1 != NULL) {
+ if (checkChanceMode() || checkNoResetFlg1(daPyFlg1_UNK8000) || dComIfGs_getSelectEquip(0) == MASTER_SWORD_EX) {
+ updateDLSetLight(mpSwordModel1, 0);
+ }
+ }
+ }
+ }
+ if (mpBottleCapModel != NULL && m355E != 0) {
+ updateDLSetLight(mpBottleCapModel, 0);
+ }
+
+ if (!dComIfGp_checkCameraAttentionStatus(mCameraInfoIdx, 0x20)) {
+ f32 frame = mYaura00rBrk.getBrkAnm()->getFrame();
+ if (frame > 0.0f) {
+ daPy_aura_c* auraEntry = &mMagicArmorAuraEntries[0];
+ mYaura00rBrk.entry(auraEntry->getModel()->getModelData(), frame);
+ for (int i = 0; i < (s32)ARRAY_SIZE(mMagicArmorAuraEntries); i++, auraEntry++) {
+ mpYaura00Btk->setFrame(auraEntry->getFrame());
+ updateDLSetLight(auraEntry->getModel(), 0);
+ }
+ }
+ frame = mYmgcs00Brk.getBrkAnm()->getFrame();
+ if (frame > 0.0f) {
+ mYmgcs00Brk.entry(mpYmgcs00Model->getModelData(), frame);
+ mDoExt_modelEntryDL(mpYmgcs00Model);
+ }
+ }
+ }
+ if (fanWindEffectDraw()) {
+ updateDLSetLight(mpYuchw00Model, 0);
+ }
+ if (fanWindCrashEffectDraw()) {
+ updateDLSetLight(mpYbafo00Model, 0);
+ }
+ dComIfGd_setList();
+ if (mCurProc != DPROC_CAUGHT_e && !dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) {
+ drawShadow();
+ }
+ if (mSwBlur.field_0x014 > 0) {
+ dComIfGd_entryZSortXluList(&mSwBlur, mSwBlur.field_0x304[0]);
+ }
+
+ return TRUE;
}
/* 80108204-80108224 .text daPy_Draw__FP9daPy_lk_c */
@@ -3720,7 +4225,8 @@ BOOL daPy_lk_c::checkGuardAccept() {
/* 80112330-80112348 .text cancelNoDamageMode__9daPy_lk_cFv */
void daPy_lk_c::cancelNoDamageMode() {
- /* Nonmatching */
+ offNoResetFlg1(daPyFlg1_EQUIP_DRAGON_SHIELD);
+ mTinkleShieldTimer = 0;
}
/* 80112348-80112954 .text commonProcInit__9daPy_lk_cFQ29daPy_lk_c9daPy_PROC */
@@ -4468,6 +4974,9 @@ void daPy_lk_c::resetCurse() {
/* Nonmatching */
}
+u8 normal_scale_38064[0xC];
+u8 boss_scale_38067[0xC];
+
/* 8011D110-8011D4D0 .text checkLightHit__9daPy_lk_cFv */
BOOL daPy_lk_c::checkLightHit() {
/* Nonmatching */
@@ -4564,8 +5073,8 @@ BOOL daPy_lk_c::checkLavaFace(cXyz* param_1, int attributeCode) {
}
if (param_1) {
- cXyz temp(current.pos.x, param_1->y + 20.0f, current.pos.z);
- m08EC.SetPos(&temp);
+ cXyz pos(current.pos.x, param_1->y + 20.0f, current.pos.z);
+ m08EC.SetPos(&pos);
m35D4 = dComIfG_Bgsp()->GroundCross(&m08EC);
if (mAcch.GetGroundH() > m35D4) {
m35D4 = -1000000000.0f;
@@ -4793,8 +5302,8 @@ BOOL daPy_lk_c::playerDelete() {
mDoExt_destroySolidHeap(m_anm_heap_upper[i].mpAnimeHeap);
}
- mDoExt_destroySolidHeap(mpTextureAnimeResHeap);
- mDoExt_destroySolidHeap(mpTextureScrollResHeap);
+ mDoExt_destroySolidHeap(m_tex_anm_heap.mpAnimeHeap);
+ mDoExt_destroySolidHeap(m_tex_scroll_heap.mpAnimeHeap);
mDoExt_destroySolidHeap(mpItemHeaps[0]);
mDoExt_destroySolidHeap(mpItemHeaps[1]);
mDoExt_destroySolidHeap(m2ECC);
@@ -4821,17 +5330,111 @@ static BOOL daPy_Delete(daPy_lk_c* i_this) {
/* 80123078-80123360 .text initTextureAnime__9daPy_lk_cFv */
void daPy_lk_c::initTextureAnime() {
- /* Nonmatching */
+ m_tex_anm_heap.m_buffer = new(0x20) u8[0x1000];
+ JUT_ASSERT(20869, m_tex_anm_heap.m_buffer != 0);
+
+ dComIfGp_getAnmArchive()->readIdxResource(m_tex_anm_heap.m_buffer, 0x1000, LKANM_BTP_TMABAA);
+ J3DAnmTexPattern* btp = static_cast<J3DAnmTexPattern*>(J3DAnmLoaderDataBase::load(m_tex_anm_heap.m_buffer));
+ btp->searchUpdateMaterialID(mpCLModelData);
+ u16 material_num = btp->getUpdateMaterialNum();
+ m_texNoAnms = new J3DTexNoAnm[material_num];
+ JUT_ASSERT(20885, m_texNoAnms != 0);
+
+ for (u16 i = 0; i < material_num; i++) {
+ u16 matID = btp->getUpdateMaterialID(i);
+ if (matID != 0xFFFF) {
+ J3DMaterialAnm* mat_anm = new J3DMaterialAnm();
+ JUT_ASSERT(20894, mat_anm != 0);
+
+ if (matID != 1 && matID != 4) {
+ // Not eyeL or eyeR (i.e. it's mouth, mayuL, or mayuR)
+ // Set the animation on the specified material
+ mpCLModelData->getMaterialNodePointer(matID)->change();
+ mpCLModelData->getMaterialNodePointer(matID)->setMaterialAnm(mat_anm);
+ if (matID != 0xE) {
+ // Not mouth (i.e. it's mayuL or mayuR)
+ // Additionally, set the animation on mayuLdamA and mayuLdamB or mayuRdamA and mayuRdamB
+ mpCLModelData->getMaterialNodePointer(matID+1)->change();
+ mpCLModelData->getMaterialNodePointer(matID+1)->setMaterialAnm(mat_anm);
+ mpCLModelData->getMaterialNodePointer(matID+2)->change();
+ mpCLModelData->getMaterialNodePointer(matID+2)->setMaterialAnm(mat_anm);
+ }
+ } else {
+ // eyeL or eyeR
+ // Don't the animation on the specified material
+ // Instead, set it on eyeLdamA and eyeLdamB or eyeRdamA and eyeRdamB
+ mpCLModelData->getMaterialNodePointer(matID+1)->change();
+ mpCLModelData->getMaterialNodePointer(matID+1)->setMaterialAnm(mat_anm);
+ mpCLModelData->getMaterialNodePointer(matID+2)->change();
+ mpCLModelData->getMaterialNodePointer(matID+2)->setMaterialAnm(mat_anm);
+ }
+ }
+
+ m_texNoAnms[i].setAnmIndex(i);
+ }
}
/* 80123360-80123830 .text initTextureScroll__9daPy_lk_cFv */
void daPy_lk_c::initTextureScroll() {
- /* Nonmatching */
+ /* Nonmatching - regalloc */
+ m_tex_scroll_heap.m_buffer = new(0x20) u8[0x800];
+ JUT_ASSERT(20944, m_tex_scroll_heap.m_buffer != 0);
+
+ dComIfGp_getAnmArchive()->readIdxResource(m_tex_scroll_heap.m_buffer, 0x800, LKANM_BTK_TMABA);
+ J3DAnmTextureSRTKey* btk = static_cast<J3DAnmTextureSRTKey*>(J3DAnmLoaderDataBase::load(m_tex_scroll_heap.m_buffer));
+ btk->searchUpdateMaterialID(mpCLModelData);
+ u16 material_num = btk->getUpdateMaterialNum();
+ JUT_ASSERT(20958, material_num == 2);
+
+ m_texMtxAnm = new J3DTexMtxAnm[material_num];
+ JUT_ASSERT(20961, m_texMtxAnm != 0);
+
+ for (u16 no = 0; no < material_num; no++) {
+ u16 matID = btk->getUpdateMaterialID(no);
+ if (matID != 0xFFFF) {
+ m_tex_eye_scroll[no] = new daPy_matAnm_c();
+ JUT_ASSERT(20972, m_tex_eye_scroll[no] != 0);
+
+ mpCLModelData->getMaterialNodePointer(matID)->change();
+ mpCLModelData->getMaterialNodePointer(matID)->setMaterialAnm(m_tex_eye_scroll[no]);
+
+ J3DMaterial* mtl = mpCLModelData->getMaterialNodePointer(matID);
+ u8 texMtxID = btk->getUpdateTexMtxID(no);
+ if (texMtxID != 0xFF) {
+ J3DTexMtx* tmtx;
+ if (mtl->getTexMtx(texMtxID) == NULL) {
+ tmtx = new J3DTexMtx();
+ JUT_ASSERT(20984, tmtx != 0);
+ mtl->setTexMtx(no, tmtx);
+ }
+ if (mtl->getTexCoord(texMtxID) != NULL) {
+ mtl->getTexCoord(texMtxID)->setTexGenMtx(GX_TEXMTX0 + (texMtxID & 0xFF) * 3);
+ }
+ tmtx = mtl->getTexMtx(no);
+
+ m_texMtxAnm[no].setAnmTransform(btk);
+ m_texMtxAnm[no].setAnmIndex(no);
+
+ tmtx->getTexMtxInfo().mInfo = tmtx->getTexMtxInfo().mInfo & 0x7F | btk->getTexMtxCalcType() << 7;
+ // Fakematch? The codegen doesn't match unless a temp variable is used and assigned to multiple times.
+ Vec* temp = &btk->getSRTCenter(no);
+ tmtx->getTexMtxInfo().mCenter.x = temp->x;
+ temp = &btk->getSRTCenter(no);
+ tmtx->getTexMtxInfo().mCenter.y = temp->y;
+ temp = &btk->getSRTCenter(no);
+ tmtx->getTexMtxInfo().mCenter.z = temp->z;
+
+ JUT_ASSERT(21001, mtl->getMaterialAnm() != 0);
+
+ mtl->getMaterialAnm()->setTexMtxAnm(texMtxID, &m_texMtxAnm[no]);
+ }
+ }
+ }
}
/* 80123834-8012469C .text createHeap__9daPy_lk_cFv */
BOOL daPy_lk_c::createHeap() {
- /* Nonmatching - data offsets */
+ /* Nonmatching - daPy_HIO_c constructor */
J3DModelData* tmp_modelData;
J3DAnmTransform* bck;
J3DAnmTevRegKey* brk;
@@ -4862,7 +5465,7 @@ BOOL daPy_lk_c::createHeap() {
mpTshmsBtk = entryBtk(tmp_modelData, LINK_BTK_TSHMS);
J3DSkinDeform* shmsSkinDeform = new J3DSkinDeform();
if (!shmsSkinDeform) { JUT_ASSERT(21077, 0); }
- if (!mpShmsModel->setSkinDeform(shmsSkinDeform, 1)) { JUT_ASSERT(21080, 0); }
+ if (mpShmsModel->setSkinDeform(shmsSkinDeform, 1) != J3DErrType_Success ) { JUT_ASSERT(21080, 0); }
tmp_modelData = initModel(&mpYmsls00Model, LINK_BDL_YMSLS00, 0x13000222);
mpYmsls00Btk = entryBtk(tmp_modelData, LINK_BTK_YMSLS00);
@@ -4885,7 +5488,7 @@ BOOL daPy_lk_c::createHeap() {
mpYbafo00Btk = entryBtk(tmp_modelData, LINK_BTK_YBAFO00);
mpYbafo00Btk->setFrame(mpYbafo00Btk->getFrameMax()-0.001f);
- tmp_modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, LINK_BDL_YAURA00);
+ tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_YAURA00));
JUT_ASSERT(21130, tmp_modelData != 0);
daPy_aura_c* aura_p = mMagicArmorAuraEntries;
for (int i = 0; i < 6; i++) {
@@ -4897,37 +5500,37 @@ BOOL daPy_lk_c::createHeap() {
brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, LINK_BRK_YAURA00_R);
ret = mYaura00rBrk.init(tmp_modelData, brk, false, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
if (!ret) { JUT_ASSERT(21147, 0); }
- mYaura00rBrk.setFrame(0.0f);
+ mYaura00rBrk.entryFrame(0.0f);
tmp_modelData = initModel(&mpYmgcs00Model, LINK_BDL_YMGCS00, 0x11001222);
mpYmgcs00Btk = entryBtk(tmp_modelData, LINK_BTK_YMGCS00);
brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, LINK_BRK_YMGCS00_MS);
ret = mYmgcs00Brk.init(tmp_modelData, brk, false, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
if (!ret) { JUT_ASSERT(21161, 0); }
- mYmgcs00Brk.setFrame(0.0f);
+ mYmgcs00Brk.entryFrame(0.0f);
- tmp_modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, LINK_BDL_BOMB);
+ tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_BOMB));
JUT_ASSERT(21169, tmp_modelData != 0);
mpBombBrk = entryBrk(tmp_modelData, LINK_BRK_BOMB);
- tmp_modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, LINK_BDL_GWP00);
+ tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_GWP00));
JUT_ASSERT(21176, tmp_modelData != 0);
mpGwp00BrkData = entryBrk(tmp_modelData, LINK_BRK_GWP00);
mpGwp00BtkData = entryBtk(tmp_modelData, LINK_BTK_GWP00);
- tmp_modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, LINK_BDL_ARROW);
+ tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_ARROW));
JUT_ASSERT(21184, tmp_modelData != 0);
mpIceArrowBtk = entryBtk(tmp_modelData, LINK_BTK_TTIPICE);
- tmp_modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, LINK_BDL_ARROWGLITTER);
+ tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_ARROWGLITTER));
JUT_ASSERT(21191, tmp_modelData != 0);
mpLightArrowBtk = entryBtk(tmp_modelData, LINK_BTK_TARROWGLITTER);
- tmp_modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, LINK_BDL_GICER00);
+ tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_GICER00));
JUT_ASSERT(21198, tmp_modelData != 0);
mpGicer00Btk = entryBtk(tmp_modelData, LINK_BTK_GICER00);
- tmp_modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, LINK_BDL_GICER01);
+ tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, LINK_BDL_GICER01));
JUT_ASSERT(21205, tmp_modelData != 0);
mpGicer01Btk = entryBtk(tmp_modelData, LINK_BTK_GICER01);
@@ -4967,7 +5570,7 @@ void daPy_lk_c::createAnimeHeap(JKRSolidHeap**, daPy_lk_c::daPy_HEAP_TYPE) {
/* 80124A40-80124B30 .text initModel__9daPy_lk_cFPP8J3DModeliUl */
J3DModelData* daPy_lk_c::initModel(J3DModel** i_model, int i_fileIndex, u32 i_differedDlistFlag) {
J3DModelData* tmp_modelData;
- tmp_modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, i_fileIndex);
+ tmp_modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcName, i_fileIndex));
JUT_ASSERT(21340, tmp_modelData != 0);
*i_model = mDoExt_J3DModel__create(tmp_modelData, 0x00080000, i_differedDlistFlag);
JUT_ASSERT(21344, *i_model != 0);
@@ -5075,7 +5678,7 @@ void daPy_lk_c::playerInit() {
mAcchCir[1].SetWall(89.9f, 35.0f);
mAcchCir[2].SetWall(125.0f, 35.0f);
mHeadTopPos.setall(0.0f);
- field_0x2ac = 125.0f;
+ mHeight = 125.0f;
mHeldItemType = 0x100;
mKeepItemType = 0x100;
mCameraInfoIdx = dComIfGp_getPlayerCameraID(0);
@@ -5122,16 +5725,16 @@ void daPy_lk_c::playerInit() {
m_anm_heap_upper[i].field_0x2 = -1;
m_anm_heap_upper[i].field_0x4 = -1;
}
- createAnimeHeap(&mpTextureAnimeResHeap, HEAP_TYPE_TEXTURE_ANIME_e);
- mTexAnimeResIdx = -1;
- m31BA = -1;
- m31BC = -1;
- m31BE = -1;
- createAnimeHeap(&mpTextureScrollResHeap, HEAP_TYPE_TEXTURE_SCROLL_e);
- mTexScrollResIdx = -1;
- m31CA = -1;
- m31CC = -1;
- m31CE = -1;
+ createAnimeHeap(&m_tex_anm_heap.mpAnimeHeap, HEAP_TYPE_TEXTURE_ANIME_e);
+ m_tex_anm_heap.mIdx = -1;
+ m_tex_anm_heap.field_0x2 = -1;
+ m_tex_anm_heap.field_0x4 = -1;
+ m_tex_anm_heap.field_0x6 = -1;
+ createAnimeHeap(&m_tex_scroll_heap.mpAnimeHeap, HEAP_TYPE_TEXTURE_SCROLL_e);
+ m_tex_scroll_heap.mIdx = -1;
+ m_tex_scroll_heap.field_0x2 = -1;
+ m_tex_scroll_heap.field_0x4 = -1;
+ m_tex_scroll_heap.field_0x6 = -1;
mSeAnmIdx = -1;
m34F0 = -1;
@@ -5213,7 +5816,7 @@ void daPy_lk_c::playerInit() {
dKy_plight_set(&mLightInfluence);
m352E = 900;
- field_0x298 = 0xAD;
+ mFace = daPyFace_UNKNOWN;
m34DE = shape_angle.y;
ResTIMG* linktex_casual = (ResTIMG*)dComIfG_getObjectRes(l_arcName, LINK_BTI_LINKTEXBCI4);
diff --git a/src/d/actor/d_a_player_particle.inc b/src/d/actor/d_a_player_particle.inc
index 72aeeca6..d4496336 100644
--- a/src/d/actor/d_a_player_particle.inc
+++ b/src/d/actor/d_a_player_particle.inc
@@ -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;
diff --git a/src/d/actor/d_a_rd.cpp b/src/d/actor/d_a_rd.cpp
index 79dba38f..e6f2f3a5 100644
--- a/src/d/actor/d_a_rd.cpp
+++ b/src/d/actor/d_a_rd.cpp
@@ -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) {
diff --git a/src/d/actor/d_a_tbox.cpp b/src/d/actor/d_a_tbox.cpp
index d65a68e5..7741c9a6 100644
--- a/src/d/actor/d_a_tbox.cpp
+++ b/src/d/actor/d_a_tbox.cpp
@@ -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);
diff --git a/src/d/d_event_data.cpp b/src/d/d_event_data.cpp
index 7f818f19..28c73fac 100644
--- a/src/d/d_event_data.cpp
+++ b/src/d/d_event_data.cpp
@@ -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) {