Merge remote-tracking branch 'Upstream/master'

This commit is contained in:
jdflyer
2022-01-11 20:24:58 -07:00
259 changed files with 7535 additions and 13034 deletions
+236 -63
View File
@@ -1,20 +1,24 @@
#ifndef J2DANIMATION_H
#define J2DANIMATION_H
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
#include "JSystem/JUtility/JUTNameTab.h"
#include "JSystem/JUtility/JUTTexture.h"
#include "dolphin/gx/GX.h"
#include "dolphin/os/OS.h"
#include "dolphin/types.h"
class J2DScreen;
class J2DAnmBase {
public:
/* 80053C94 */ virtual ~J2DAnmBase();
/* 80053C94 */ virtual ~J2DAnmBase() {}
/* 800569B0 */ virtual void searchUpdateMaterialID(J2DScreen*);
s16 getFrameMax() const { return mFrameMax; }
void setFrame(f32 frame) { mFrame = frame; }
f32 getFrame() const { return mFrame; }
s32 getKind() const { return mKind; }
private:
/* 0x0 */ // vtable
@@ -26,7 +30,7 @@ private:
class J2DAnmVtxColor : public J2DAnmBase {
public:
/* 8030A358 */ virtual ~J2DAnmVtxColor();
/* 8030A358 */ virtual ~J2DAnmVtxColor() {}
/* 8030363C */ virtual void getColor(u8, u16, _GXColor*) const;
private:
@@ -38,31 +42,54 @@ private:
struct J3DTransformInfo;
struct J3DTextureSRTInfo;
struct J2DAnmVtxColorKeyInfo {
J3DAnmKeyTableBase mRInfo;
J3DAnmKeyTableBase mGInfo;
J3DAnmKeyTableBase mBInfo;
J3DAnmKeyTableBase mAInfo;
}; // Size = 0x18
class J2DAnmVtxColorKey : public J2DAnmVtxColor {
/* 8030CC20 */ virtual ~J2DAnmVtxColorKey();
/* 8030CC20 */ virtual ~J2DAnmVtxColorKey() {}
/* 8030B704 */ virtual void getColor(u8, u16, _GXColor*) const;
private:
/* 0x24 */ void* field_0x24[2];
/* 0x2C */ void* field_0x2c;
/* 0x30 */ void* field_0x30;
/* 0x34 */ void* field_0x34;
/* 0x38 */ void* field_0x38;
/* 0x24 */ J2DAnmVtxColorKeyInfo* mInfoTable[2];
/* 0x2C */ s16* mRValues;
/* 0x30 */ s16* mGValues;
/* 0x34 */ s16* mBValues;
/* 0x38 */ s16* mAValues;
}; // Size: 0x3C
struct J2DAnmVtxColorFullInfo {
/* 0x00 */ u16 mRMaxFrame;
/* 0x02 */ u16 mROffset;
/* 0x04 */ u16 mGMaxFrame;
/* 0x06 */ u16 mGOffset;
/* 0x08 */ u16 mBMaxFrame;
/* 0x0A */ u16 mBOffset;
/* 0x0C */ u16 mAMaxFrame;
/* 0x0E */ u16 mAOffset;
}; // Size = 0x10
class J2DAnmVtxColorFull : public J2DAnmVtxColor {
public:
/* 8030CC8C */ virtual ~J2DAnmVtxColorFull();
/* 8030CC8C */ virtual ~J2DAnmVtxColorFull() {}
/* 8030B4C4 */ virtual void getColor(u8, u16, _GXColor*) const;
private:
/* 0x24 */ void* field_0x24[2];
/* 0x2C */ void* field_0x2c;
/* 0x30 */ void* field_0x30;
/* 0x34 */ void* field_0x34;
/* 0x38 */ void* field_0x38;
/* 0x24 */ J2DAnmVtxColorFullInfo* mInfoTable[2];
/* 0x2C */ u8* mRValues;
/* 0x30 */ u8* mGValues;
/* 0x34 */ u8* mBValues;
/* 0x38 */ u8* mAValues;
}; // Size: 0x3C
struct J2DAnmVisibilityFullInfo {
u16 _0;
u16 _2;
}; // Size = 0x4
class J2DAnmVisibilityFull : public J2DAnmBase {
public:
/* 8030A3B4 */ virtual ~J2DAnmVisibilityFull();
@@ -71,60 +98,84 @@ public:
private:
/* 0x10 */ u16 field_0x10;
/* 0x12 */ u16 field_0x12;
/* 0x14 */ void* field_0x14;
/* 0x18 */ void* field_0x18;
/* 0x14 */ J2DAnmVisibilityFullInfo* field_0x14;
/* 0x18 */ u8* field_0x18;
}; // Size: 0x1C
class J2DAnmTransform : public J2DAnmBase {
public:
/* 80184370 */ virtual ~J2DAnmTransform();
/* 80184370 */ virtual ~J2DAnmTransform() {}
/* 80191130 */ virtual void getTransform(u16, J3DTransformInfo*) const;
private:
/* 0x10 */ f32* field_0x10;
/* 0x14 */ s16* field_0x14;
/* 0x18 */ f32* field_0x18;
protected:
/* 0x10 */ f32* mScaleValues;
/* 0x14 */ s16* mRotationValues;
/* 0x18 */ f32* mTranslateValues;
}; // Size: 0x1C
struct J2DAnmTransformKeyInfo {
J3DAnmKeyTableBase mScaleInfo;
J3DAnmKeyTableBase mRotationInfo;
J3DAnmKeyTableBase mTranslateInfo;
}; // Size = 0x12
class J2DAnmTransformKey : public J2DAnmTransform {
public:
/* 801959C0 */ virtual ~J2DAnmTransformKey();
/* 8030CD7C */ virtual void getTransform(u16, J3DTransformInfo*) const;
/* 801959C0 */ virtual ~J2DAnmTransformKey() {}
/* 8030CD7C */ virtual void getTransform(u16 p1, J3DTransformInfo* pInfo) const {
this->calcTransform(getFrame(), p1, pInfo);
}
/* 8030AAFC */ virtual void calcTransform(f32, u16, J3DTransformInfo*) const;
private:
/* 0x1C */ u8 field_0x1c[8];
/* 0x24 */ void* field_0x24;
/* 0x28 */ void* field_0x28;
/* 0x24 */ u32 field_0x24;
/* 0x28 */ J2DAnmTransformKeyInfo* mInfoTable;
};
struct J2DAnmTransformFullInfo {
/* 0x00 */ u16 mScaleMaxFrame;
/* 0x02 */ u16 mScaleOffset;
/* 0x04 */ u16 mRotationMaxFrame;
/* 0x06 */ u16 mRotationOffset;
/* 0x08 */ u16 mTranslateMaxFrame;
/* 0x0A */ u16 mTranslateOffset;
}; // Size = 0xC
class J2DAnmTransformFull : public J2DAnmTransform {
public:
/* 8030CDAC */ virtual ~J2DAnmTransformFull();
/* 8030CDAC */ virtual ~J2DAnmTransformFull() {}
/* 8030A590 */ virtual void getTransform(u16, J3DTransformInfo*) const;
private:
/* 0x1C */ u8 field_0x1c[6];
/* 0x22 */ u16 field_0x22;
/* 0x24 */ void* field_0x24;
/* 0x24 */ J2DAnmTransformFullInfo* mTableInfo;
};
struct J2DAnmTextureSRTKeyInfo {
J3DAnmKeyTableBase mScaleInfo;
J3DAnmKeyTableBase mRotationInfo;
J3DAnmKeyTableBase mTranslationInfo;
}; // Size = 0x12
class J2DAnmTextureSRTKey : public J2DAnmBase {
public:
/* 8030B9F0 */ void calcTransform(f32, u16, J3DTextureSRTInfo*) const;
/* 80184274 */ virtual ~J2DAnmTextureSRTKey();
/* 80184274 */ virtual ~J2DAnmTextureSRTKey() {}
/* 8030BC60 */ virtual void searchUpdateMaterialID(J2DScreen*);
u16 getUpdateMaterialNum() const { return mUpdateMaterialNum / 3; }
private:
/* 0x10 */ int field_0x10;
/* 0x14 */ int field_0x14;
/* 0x14 */ J2DAnmTextureSRTKeyInfo* mInfoTable;
/* 0x18 */ u16 mUpdateMaterialNum;
/* 0x1A */ u16 field_0x1a;
/* 0x1C */ u16 field_0x1c;
/* 0x20 */ int field_0x20;
/* 0x24 */ int field_0x24;
/* 0x28 */ int field_0x28;
/* 0x20 */ f32* mScaleValues;
/* 0x24 */ s16* mRotationValues;
/* 0x28 */ f32* mTranslationValues;
/* 0x2C */ u8* mUpdateTexMtxID;
/* 0x30 */ u16* mUpdateMaterialID;
/* 0x34 */ JUTNameTab field_0x34;
@@ -143,6 +194,13 @@ private:
/* 0x7C */ int field_0x7c;
};
struct J2DAnmTexPatternInfo {
/* 0x00 */ u16 mMaxFrame;
/* 0x02 */ u16 mOffset;
/* 0x04 */ u16 _4;
/* 0x06 */ u16 _6;
}; // Size = 0x8
class J2DAnmTexPattern : public J2DAnmBase {
public:
struct J2DAnmTexPatternTIMGPointer {
@@ -154,15 +212,16 @@ public:
}; // Size: 0x8
/* 8030BEE8 */ void getTexNo(u16, u16*) const;
/* 8030BF9C */ void getResTIMG(u16) const;
/* 8030BFF0 */ void getPalette(u16) const;
/* 8030BF9C */ ResTIMG* getResTIMG(u16) const;
/* 8030BFF0 */ JUTPalette* getPalette(u16) const;
/* 8030CB90 */ virtual ~J2DAnmTexPattern();
/* 8030CB90 */ virtual ~J2DAnmTexPattern() { delete[] mTIMGPtrArray; }
/* 8030BD10 */ virtual void searchUpdateMaterialID(J2DScreen*);
u16 getUpdateMaterialNum() const { return mUpdateMaterialNum; }
private:
/* 0x10 */ int field_0x10;
/* 0x14 */ void* mAnmTable;
/* 0x10 */ u16* mValues;
/* 0x14 */ J2DAnmTexPatternInfo* mAnmTable;
/* 0x18 */ u8 field_0x18[2];
/* 0x1A */ u16 mUpdateMaterialNum;
/* 0x1C */ u16* mUpdaterMaterialID;
@@ -170,13 +229,21 @@ private:
/* 0x30 */ J2DAnmTexPatternTIMGPointer* mTIMGPtrArray;
};
struct J2DAnmTevRegKeyInfo {
/* 0x00 */ J3DAnmKeyTableBase mRTable;
/* 0x06 */ J3DAnmKeyTableBase mGTable;
/* 0x0C */ J3DAnmKeyTableBase mBTable;
/* 0x12 */ J3DAnmKeyTableBase mATable;
/* 0x18 */ u8 _18[4];
}; // Size = 0x1C
class J2DAnmTevRegKey : public J2DAnmBase {
public:
/* 8030C0F0 */ void getTevColorReg(u16, _GXColorS10*) const;
/* 8030C3B4 */ void getTevKonstReg(u16, _GXColor*) const;
/* 801841EC */ virtual ~J2DAnmTevRegKey();
/* 8030C678 */ virtual void searchUpdateMaterialID(J2DScreen*);
/* 801841EC */ virtual ~J2DAnmTevRegKey() {}
/* 8030C678 */ virtual void searchUpdateMaterialID(J2DScreen* pScreen);
private:
/* 0x10 */ u16 mCRegUpdateMaterialNum;
@@ -193,27 +260,28 @@ private:
/* 0x28 */ JUTNameTab field_0x28;
/* 0x38 */ u16* mKRegUpdateMaterialID;
/* 0x3C */ JUTNameTab field_0x3c;
/* 0x4C */ void* mAnmCRegKeyTable;
/* 0x50 */ void* mAnmKRegKeyTable;
/* 0x54 */ int field_0x54;
/* 0x58 */ int field_0x58;
/* 0x5C */ int field_0x5c;
/* 0x60 */ int field_0x60;
/* 0x64 */ int field_0x64;
/* 0x68 */ int field_0x68;
/* 0x6C */ int field_0x6c;
/* 0x70 */ int field_0x70;
/* 0x4C */ J2DAnmTevRegKeyInfo* mAnmCRegKeyTable;
/* 0x50 */ J2DAnmTevRegKeyInfo* mAnmKRegKeyTable;
/* 0x54 */ s16* mCRValues;
/* 0x58 */ s16* mCGValues;
/* 0x5C */ s16* mCBValues;
/* 0x60 */ s16* mCAValues;
/* 0x64 */ s16* mKRValues;
/* 0x68 */ s16* mKGValues;
/* 0x6C */ s16* mKBValues;
/* 0x70 */ s16* mKAValues;
};
class J2DAnmColor : public J2DAnmBase {
public:
/* 801842FC */ virtual ~J2DAnmColor();
/* 801842FC */ virtual ~J2DAnmColor() {}
/* 8030AF24 */ virtual void searchUpdateMaterialID(J2DScreen*);
/* 802EB390 */ virtual void getColor(u16, _GXColor*) const;
u16 getUpdateMaterialNum() const { return mUpdateMaterialNum; }
private:
/* 0x10 */ u16 field_0x10;
/* 0x10 */ u16 field_0x12;
/* 0x12 */ u16 field_0x12;
/* 0x14 */ u16 field_0x14;
/* 0x16 */ u16 field_0x16;
/* 0x18 */ u16 mUpdateMaterialNum;
@@ -221,30 +289,135 @@ private:
/* 0x20 */ JUTNameTab field_0x20;
}; // Size: 0x30
struct J2DAnmColorKeyInfo {
J3DAnmKeyTableBase mRInfo;
J3DAnmKeyTableBase mGInfo;
J3DAnmKeyTableBase mBInfo;
J3DAnmKeyTableBase mAInfo;
}; // Size = 0x18
class J2DAnmColorKey : public J2DAnmColor {
public:
/* 80239BE0 */ virtual ~J2DAnmColorKey();
/* 80239BE0 */ virtual ~J2DAnmColorKey() {}
/* 8030B200 */ virtual void getColor(u16, _GXColor*) const;
private:
/* 0x30 */ int field_0x30;
/* 0x34 */ int field_0x34;
/* 0x38 */ int field_0x38;
/* 0x3C */ int field_0x3c;
/* 0x40 */ int field_0x40;
/* 0x30 */ s16* mRValues;
/* 0x34 */ s16* mGValues;
/* 0x38 */ s16* mBValues;
/* 0x3C */ s16* mAValues;
/* 0x40 */ J2DAnmColorKeyInfo* mInfoTable;
};
struct J2DAnmColorFullInfo {
/* 0x00 */ u16 mRMaxFrame;
/* 0x02 */ u16 mROffset;
/* 0x04 */ u16 mGMaxFrame;
/* 0x06 */ u16 mGOffset;
/* 0x08 */ u16 mBMaxFrame;
/* 0x0A */ u16 mBOffset;
/* 0x0C */ u16 mAMaxFrame;
/* 0x0E */ u16 mAOffset;
}; // Size = 0x10
class J2DAnmColorFull : public J2DAnmColor {
public:
/* 8030CCF8 */ virtual ~J2DAnmColorFull();
/* 8030CCF8 */ virtual ~J2DAnmColorFull() {}
/* 8030AFC8 */ virtual void getColor(u16, _GXColor*) const;
private:
/* 0x30 */ int field_0x30;
/* 0x34 */ int field_0x34;
/* 0x38 */ int field_0x38;
/* 0x3C */ int field_0x3c;
/* 0x40 */ int field_0x40;
/* 0x30 */ u8* mRValues;
/* 0x34 */ u8* mGValues;
/* 0x38 */ u8* mBValues;
/* 0x3C */ u8* mAValues;
/* 0x40 */ J2DAnmColorFullInfo* mInfoTable;
};
template <typename T>
inline f32 J2DHermiteInterpolation(f32, T*, T*, T*, T*, T*, T*);
inline f32 JMAHermiteInterpolation(register f32 p1, register f32 p2, register f32 p3,
register f32 p4, register f32 p5, register f32 p6,
register f32 p7) {
register f32 ff25;
register f32 ff31;
register f32 ff30;
register f32 ff29;
register f32 ff28;
register f32 ff27;
register f32 ff26;
// clang-format off
asm {
fsubs ff31, p1, p2
fsubs ff30, p5, p2
fdivs ff29, ff31, ff30
fmuls ff28,ff29,ff29
fadds ff25,ff29,ff29
fsubs ff27,ff28,ff29
fsubs ff30, p3, p6
fmsubs ff26,ff25,ff27,ff28
fmadds ff25,p4,ff27,p4
fmadds ff26,ff26,ff30,p3
fmadds ff25,p7,ff27,ff25
fmsubs ff25,ff29,p4,ff25
fnmsubs ff25,ff31,ff25,ff26
}
// clang-format on
return ff25;
}
template <>
inline f32 J2DHermiteInterpolation<f32>(f32 f1, f32* f2, f32* f3, f32* f4, f32* f5, f32* f6,
f32* f7) {
return JMAHermiteInterpolation(f1, *f2, *f3, *f4, *f5, *f6, *f7);
}
template <>
inline f32 J2DHermiteInterpolation<s16>(register f32 pp1, register s16* pp2, register s16* pp3,
register s16* pp4, register s16* pp5, register s16* pp6,
register s16* pp7) {
register f32 p1 = pp1;
register f32 ff8;
register f32 ff7;
register f32 ff6;
register f32 ff5;
register f32 ff4;
register f32 ff3;
register f32 ff2;
register f32 ff0;
register f32 fout;
register s16* p2 = pp2;
register s16* p3 = pp3;
register s16* p4 = pp4;
register s16* p5 = pp5;
register s16* p6 = pp6;
register s16* p7 = pp7;
// clang-format off
asm {
psq_l ff2, 0(p2), 0x1, 5
psq_l ff0, 0(p5), 0x1, 5
psq_l ff7, 0(p3), 0x1, 5
fsubs ff5, ff0, ff2
psq_l ff6, 0(p6), 0x1, 5
fsubs ff3, p1, ff2
psq_l ff0, 0(p7), 0x1, 5
fsubs ff4, ff6, ff7
fdivs ff3, ff3, ff5
psq_l fout, 0(p4), 0x1, 5
fmadds ff0, ff0, ff5, ff7
fmuls ff2, ff3, ff3
fnmsubs ff4, ff5, fout, ff4
fsubs ff0, ff0, ff6
fsubs ff0, ff0, ff4
fmuls ff0, ff2, ff0
fmadds fout, ff5, fout, ff0
fmadds fout, fout, ff3, ff7
fmadds fout, ff4, ff2, fout
fsubs fout, fout, ff0
}
// clang-format on
return fout;
}
#endif /* J2DANIMATION_H */
+5 -10
View File
@@ -1,6 +1,7 @@
#ifndef J2DGRAFCONTEXT_H
#define J2DGRAFCONTEXT_H
#include "JSystem/J2DGraph/J2DMatBlock.h"
#include "JSystem/JGeometry.h"
#include "JSystem/JUtility/TColor.h"
#include "dolphin/mtx/mtx.h"
@@ -35,7 +36,7 @@ public:
/* 802E9664 */ virtual s32 getGrafType() const { return 0; }
/* 802E966C */ virtual void setLookat() {}
protected:
public:
/* 0x04 */ JGeometry::TBox2<f32> mBounds;
/* 0x14 */ JGeometry::TBox2<f32> mScissorBounds;
/* 0x24 */ JUtility::TColor mColorTL;
@@ -46,15 +47,9 @@ protected:
/* 0x38 */ JGeometry::TVec2<f32> mPrevPos;
/* 0x40 */ Mtx44 mMtx44;
/* 0x80 */ Mtx mPosMtx;
/* 0xB0 */ u8 field_0xb0;
/* 0xB1 */ u8 field_0xb1;
/* 0xB2 */ u8 field_0xb2;
/* 0xB3 */ u8 mLineBlendMode;
/* 0xB4 */ u8 mLineSrcBlendFactor;
/* 0xB5 */ u8 mLineDstBlendFactor;
/* 0xB6 */ u8 mBoxBlendMode;
/* 0xB7 */ u8 mBoxSrcBlendFactor;
/* 0xB8 */ u8 mBoxDstBlendFactor;
/* 0xB0 */ J2DBlendInfo field_0xb0;
/* 0xB3 */ J2DBlendInfo mLinePart;
/* 0xB6 */ J2DBlendInfo mBoxPart;
};
#endif /* J2DGRAFCONTEXT_H */
+16 -4
View File
@@ -5,14 +5,26 @@
#include "dolphin/types.h"
struct J2DResReference {
/* 8030CF10 */ void getResReference(u16) const;
/* 8030CF44 */ void getName(u16) const;
/* 0x00 */ u16 mCount;
/* 0x02 */ u16 mOffsets[1];
/* 8030CF10 */ s8* getResReference(u16) const;
/* 8030CF44 */ char* getName(u16) const;
};
struct J2DataManageLink {
/* 0x00 */ void* mData;
/* 0x04 */ char* mName;
/* 0x08 */ J2DataManageLink* mNext;
};
class J2DDataManage {
private:
/* 0x00 */ J2DataManageLink* mList;
public:
/* 8030CE18 */ void get(char const*);
/* 8030CE7C */ void get(JSUInputStream*);
/* 8030CE18 */ void* get(char const*);
/* 8030CE7C */ void* get(JSUInputStream*);
};
#endif /* J2DMANAGE_H */
+1 -1
View File
@@ -414,11 +414,11 @@ struct J2DBlendInfo {
/* 0x0 */ u8 mType;
/* 0x1 */ u8 mSrcFactor;
/* 0x2 */ u8 mDstFactor;
/* 0x3 */ u8 mOp;
};
struct J2DBlend {
/* 0x0 */ J2DBlendInfo mBlendInfo;
/* 0x3 */ u8 mOp;
};
class J2DPEBlock {
+9 -9
View File
@@ -31,7 +31,7 @@ public:
J2DPane(J2DPane* other, JSURandomInputStream* stream, u8 arg3);
virtual ~J2DPane();
/* 0x0c */ virtual s32 getTypeID() const;
/* 0x0c */ virtual s32 getTypeID() const { return 16; }
/* 0x10 */ virtual void move(f32 x, f32 y);
/* 0x14 */ virtual void add(f32 x, f32 y);
/* 0x18 */ virtual void resize(f32 x, f32 y);
@@ -53,12 +53,12 @@ public:
/* 0x58 */ virtual void rewriteAlpha();
/* 0x5c */ virtual void setAnimation(J2DAnmBase* anm);
/* 0x60 */ virtual void setAnimation(J2DAnmTransform* anm);
/* 0x64 */ virtual void setAnimation(J2DAnmColor* anm);
/* 0x68 */ virtual void setAnimation(J2DAnmTexPattern* anm);
/* 0x6c */ virtual void setAnimation(J2DAnmTextureSRTKey* anm);
/* 0x70 */ virtual void setAnimation(J2DAnmTevRegKey* anm);
/* 0x74 */ virtual void setAnimation(J2DAnmVisibilityFull* anm);
/* 0x78 */ virtual void setAnimation(J2DAnmVtxColor* anm);
/* 0x64 */ virtual void setAnimation(J2DAnmColor* anm) {}
/* 0x68 */ virtual void setAnimation(J2DAnmTexPattern* anm) {}
/* 0x6c */ virtual void setAnimation(J2DAnmTextureSRTKey* anm) {}
/* 0x70 */ virtual void setAnimation(J2DAnmTevRegKey* anm) {}
/* 0x74 */ virtual void setAnimation(J2DAnmVisibilityFull* anm) {}
/* 0x78 */ virtual void setAnimation(J2DAnmVtxColor* anm) {}
/* 0x7c */ virtual const J2DAnmTransform* animationTransform(const J2DAnmTransform* transform);
/* 0x80 */ virtual void setVisibileAnimation(J2DAnmVisibilityFull* visibility);
/* 0x84 */ virtual void setAnimationVF(J2DAnmVisibilityFull* visibility);
@@ -119,7 +119,7 @@ public:
void clip(const JGeometry::TBox2<f32>& bounds);
void setBasePosition(J2DBasePosition position);
void setInfluencedAlpha(bool arg1, bool arg2);
void getGlbVtx(u8 arg1) const;
JGeometry::TVec3<f32> getGlbVtx(u8 arg1) const;
J2DPane* getFirstChildPane();
J2DPane* getNextChildPane();
J2DPane* getParentPane();
@@ -130,7 +130,7 @@ public:
void updateTransform(const J2DAnmTransform* transform);
void setUserInfo(u64 info) { mUserInfoTag = info; }
static f32 static_mBounds[4];
static JGeometry::TBox2<f32> static_mBounds;
public:
/* 0x04 */ u16 _4;
+3 -1
View File
@@ -49,9 +49,11 @@ public:
/* 802F9640 */ static void* getNameResource(char const*);
/* 802F9690 */ void animation();
static J2DDataManage* getDataManage() { return mDataManage; }
static J2DDataManage* mDataManage;
private:
// private:
/* 0x100 */ bool mScissor;
/* 0x102 */ u16 mMaterialNum;
/* 0x104 */ J2DMaterial* mMaterials;
@@ -40,6 +40,12 @@ private:
}; // Size: 0x20
class J3DAnmTransformKey : public J3DAnmTransform {
public:
J3DAnmTransformKey() : J3DAnmTransform(0, NULL, NULL, NULL) {
field_0x20 = 0;
field_0x24 = 0;
}
/* 80329A34 */ void calcTransform(f32, u16, J3DTransformInfo*) const;
/* 8003B8D0 */ virtual ~J3DAnmTransformKey();
@@ -69,7 +75,11 @@ class J3DAnmTransformFullWithLerp : public J3DAnmTransformFull {
struct J3DTextureSRTInfo;
struct J3DModelData;
struct J3DMaterialTable;
struct J3DAnmKeyTableBase {};
struct J3DAnmKeyTableBase {
/* 0x00 */ u16 mMaxFrame;
/* 0x02 */ u16 mOffset;
/* 0x04 */ u16 mType;
}; // Size = 0x6
class J3DAnmTextureSRTKey : public J3DAnmBase {
public:
+6 -5
View File
@@ -24,10 +24,11 @@ class J3DVertexData;
class J3DDrawMtxData;
enum J3DShpFlag {
J3DShpFlag_Visible = 0x0001,
J3DShpFlag_SkinPosCpu = 0x0004,
J3DShpFlag_SkinNrmCpu = 0x0008,
J3DShpFlag_Hidden = 0x0010,
J3DShpFlag_EnableLod = 0x0100,
J3DShpFlag_Hidden = 0x0010,
J3DShpFlag_EnableLod = 0x0100,
};
class J3DShape {
@@ -56,8 +57,8 @@ public:
void setVertexDataPointer(J3DVertexData* pVtxData) { mVertexData = pVtxData; }
void* getVcdVatCmd() const { return mVcdVatCmd; }
void setVcdVatCmd(void* pVatCmd) { mVcdVatCmd = pVatCmd; }
void show() { offFlag(1); }
void hide() { onFlag(1); }
void show() { offFlag(J3DShpFlag_Visible); }
void hide() { onFlag(J3DShpFlag_Visible); }
void setCurrentViewNoPtr(u32* pViewNoPtr) { mCurrentViewNo = pViewNoPtr; }
void setScaleFlagArray(u8* pScaleFlagArray) { mScaleFlagArray = pScaleFlagArray; }
void setDrawMtx(Mtx** pDrawMtx) { mDrawMtx = pDrawMtx; }
@@ -66,7 +67,7 @@ public:
u32 getBumpMtxOffset() const { return mBumpMtxOffset; }
inline J3DMaterial* getMaterial() const { return mMaterial; }
inline u32 getPipeline() const { return (mFlags >> 2) & 7; }
inline u32 getPipeline() const { return (mFlags >> 2) & 0x07; }
inline u32 getTexMtxLoadType() const { return mFlags & 0xF000; }
static void resetVcdVatCache() { sOldVcdVatCmd = NULL; }
@@ -3,12 +3,12 @@
#include "dolphin/types.h"
struct J3DAnmLoaderDataBaseFlag {};
enum J3DAnmLoaderDataBaseFlag { UNK_FLAG0 };
struct J3DAnmBase;
struct J3DAnmLoaderDataBase {
/* 80337B40 */ void load(void const*, J3DAnmLoaderDataBaseFlag);
/* 80337B40 */ static void* load(void const*, J3DAnmLoaderDataBaseFlag);
/* 80338134 */ void setResource(J3DAnmBase*, void const*);
};
+1 -1
View File
@@ -13,7 +13,7 @@ public:
operator u32() const { return this->mId; }
void operator=(JAISoundID const&);
JAISoundID(u32 pId);
JAISoundID(u32 pId) { mId = pId; };
JAISoundID(JAISoundID const& other);
+21 -1
View File
@@ -33,6 +33,22 @@ struct TVec3<f32> {
y = other.y;
z = other.z;
}
void set(f32 x_, f32 y_, f32 z_) {
x = x_;
y = y_;
z = z_;
}
void zero() {
x = y = z = 0.0f;
}
void mul(const TVec3<f32>& a, const TVec3<f32>& b) {
x = a.x * b.x;
y = a.y * b.y;
z = a.z * b.z;
}
};
template <typename T>
@@ -92,6 +108,10 @@ template<> struct TBox<TVec2<f32> > {
bool isValid() const { return f.isAbove(i); }
void addPos(f32 x, f32 y) {
addPos(TVec2<f32>(x, y));
}
void addPos(const TVec2<f32>& pos) {
i.add(pos);
f.add(pos);
@@ -123,7 +143,7 @@ struct TBox2 : TBox<TVec2<T> > {
}
void set(const TBox2& other) { set(other.i, other.f); }
void set(const TVec2<f32>& i, const TVec2<f32> f) { this->i.set(i), this->f.set(f); }
void set(const TVec2<f32>& i, const TVec2<f32>& f) { this->i.set(i), this->f.set(f); }
void set(f32 x0, f32 y0, f32 x1, f32 y1) { i.set(x0, y0); f.set(x1, y1); }
};
+11
View File
@@ -17,6 +17,9 @@ struct pair {
struct TSinCosTable {
std::pair<f32, f32> table[0x2000];
f32 sinShort(s16 v) const { return table[static_cast<u16>(v) >> 3].a1; }
f32 cosShort(s16 v) const { return table[static_cast<u16>(v) >> 3].b1; }
};
struct TAtanTable {
@@ -35,4 +38,12 @@ extern TAtanTable atanTable_;
extern TAsinAcosTable asinAcosTable_;
}; // namespace JMath
inline f32 JMASSin(s16 s) {
return JMath::sincosTable_.sinShort(s);
}
inline f32 JMASCos(s16 s) {
return JMath::sincosTable_.cosShort(s);
}
#endif /* JMATRIGONOMETRIC_H */
+103
View File
@@ -2,5 +2,108 @@
#define JPABASESHAPE_H
#include "dolphin/types.h"
#include "dolphin/gx/GX.h"
class JPAEmitterWorkData;
class JKRHeap;
struct JPABaseShapeData {
// Common header.
/* 0x00 */ u8 mMagic[4];
/* 0x04 */ u32 mSize;
/* 0x08 */ u32 mFlags;
/* 0x0C */ s16 mClrPrmAnmOffset;
/* 0x0E */ s16 mClrEnvAnmOffset;
/* 0x10 */ f32 mBaseSizeX;
/* 0x14 */ f32 mBaseSizeY;
/* 0x18 */ u16 mBlendModeCfg;
/* 0x1A */ u8 mAlphaCompareCfg;
/* 0x1B */ u8 mAlphaRef0;
/* 0x1C */ u8 mAlphaRef1;
/* 0x1D */ u8 mZModeCfg;
/* 0x1E */ u8 mTexFlg;
/* 0x1F */ u8 mTexAnmNum;
/* 0x20 */ u8 mTexIdx;
/* 0x21 */ u8 mClrFlg;
/* 0x22 */ u8 mClrPrmKeyNum;
/* 0x23 */ u8 mClrEnvKeyNum;
/* 0x24 */ s16 mClrAnmFrmMax;
/* 0x26 */ GXColor mClrPrm;
/* 0x2A */ GXColor mClrEnv;
/* 0x2E */ u8 mAnmRndm;
/* 0x2F */ u8 mClrAnmRndmMask;
/* 0x30 */ u8 mTexAnmRndmMask;
};
struct JPABaseShape {
public:
/* 8027A6DC */ JPABaseShape(u8 const*, JKRHeap*);
/* 8027A7E8 */ void setGX(JPAEmitterWorkData*) const;
static GXBlendMode st_bm[3];
static GXBlendFactor st_bf[10];
static GXLogicOp st_lo[16];
static GXCompare st_c[8];
static GXAlphaOp st_ao[4];
static GXTevColorArg st_ca[6][4];
static GXTevAlphaArg st_aa[2][4];
GXBlendMode getBlendMode() const { return st_bm[mpData->mBlendModeCfg & 0x03]; }
GXBlendFactor getBlendSrc() const { return st_bf[(mpData->mBlendModeCfg >> 2) & 0x0F]; }
GXBlendFactor getBlendDst() const { return st_bf[(mpData->mBlendModeCfg >> 6) & 0x0F]; }
GXLogicOp getLogicOp() const { return st_lo[(mpData->mBlendModeCfg >> 10) & 0x0F]; }
GXBool getZCompLoc() const { return (GXBool)((mpData->mZModeCfg >> 5) & 0x01); }
GXBool getZEnable() const { return (GXBool)(mpData->mZModeCfg & 0x01); }
GXCompare getZCmp() const { return st_c[(mpData->mZModeCfg >> 1) & 0x07]; }
GXBool getZUpd() const { return (GXBool)((mpData->mZModeCfg >> 4) & 0x01); }
GXCompare getAlphaCmp0() const { return st_c[mpData->mAlphaCompareCfg & 0x07]; }
u8 getAlphaRef0() const { return mpData->mAlphaRef0; }
GXAlphaOp getAlphaOp() const { return st_ao[(mpData->mAlphaCompareCfg >> 3) & 0x03]; }
GXCompare getAlphaCmp1() const { return st_c[(mpData->mAlphaCompareCfg >> 5) & 0x07]; }
u8 getAlphaRef1() const { return mpData->mAlphaRef1; }
const GXTevColorArg* getTevColorArg() const { return st_ca[(mpData->mFlags >> 0x0F) & 0x07]; }
const GXTevAlphaArg* getTevAlphaArg() const { return st_aa[(mpData->mFlags >> 0x12) & 0x01]; }
u32 getType() const { return (mpData->mFlags >> 0) & 0x0F; }
u32 getDirType() const { return (mpData->mFlags >> 4) & 0x07; }
u32 getRotType() const { return (mpData->mFlags >> 7) & 0x07; }
u32 getBasePlaneType() const { return (mpData->mFlags >> 10) & 0x07; }
u32 getTilingS() const { return (mpData->mFlags >> 25) & 0x01; }
u32 getTilingT() const { return (mpData->mFlags >> 26) & 0x01; }
bool isGlblClrAnm() const { return !!(mpData->mFlags & 0x00001000); }
bool isGlblTexAnm() const { return !!(mpData->mFlags & 0x00004000); }
bool isPrjTex() const { return !!(mpData->mFlags & 0x00100000); }
bool isDrawFwdAhead() const { return !!(mpData->mFlags & 0x00200000); }
bool isDrawPrntAhead() const { return !!(mpData->mFlags & 0x00400000); }
bool isClipOn() const { return !!(mpData->mFlags & 0x00800000); }
bool isTexCrdAnm() const { return !!(mpData->mFlags & 0x01000000); }
bool isNoDrawParent() const { return !!(mpData->mFlags & 0x08000000); }
bool isNoDrawChild() const { return !!(mpData->mFlags & 0x10000000); }
bool isPrmAnm() const { return !!(mpData->mClrFlg & 0x02); }
bool isEnvAnm() const { return !!(mpData->mClrFlg & 0x08); }
u8 getClrAnmType() const { return (mpData->mClrFlg >> 4) & 0x07; }
s16 getClrAnmMaxFrm() const { return mpData->mClrAnmFrmMax; }
void getPrmClr(s16 idx, GXColor* dst) { *dst = mpPrmClrAnmTbl[idx]; }
void getEnvClr(s16 idx, GXColor* dst) { *dst = mpEnvClrAnmTbl[idx]; }
bool isTexAnm() const { return !!(mpData->mTexFlg & 0x01); }
u8 getTexAnmType() const { return (mpData->mTexFlg >> 2) & 0x07; }
u32 getTexIdx() const { return mpData->mTexIdx; }
f32 getBaseSizeX() const { return mpData->mBaseSizeX; }
f32 getBaseSizeY() const { return mpData->mBaseSizeY; }
public:
/* 0x00 */ const JPABaseShapeData* mpData;
/* 0x04 */ const void* mpTexCrdMtxAnmTbl;
/* 0x08 */ const u8* mpTexIdxAnimTbl;
/* 0x0C */ GXColor* mpPrmClrAnmTbl;
/* 0x10 */ GXColor* mpEnvClrAnmTbl;
};
#endif /* JPABASESHAPE_H */
+38
View File
@@ -2,5 +2,43 @@
#define JPACHILDSHAPE_H
#include "dolphin/types.h"
#include "dolphin/gx/GX.h"
struct JPAChildShapeData {
// Common header.
/* 0x00 */ u8 mMagic[4];
/* 0x04 */ u32 mSize;
/* 0x08 */ u32 mFlags;
/* 0x0C */ f32 mPosRndm;
/* 0x10 */ f32 mBaseVel;
/* 0x14 */ f32 mBaseVelRndm;
/* 0x18 */ f32 mVelInfRate;
/* 0x1C */ f32 mGravity;
/* 0x20 */ f32 mScaleX;
/* 0x24 */ f32 mScaleY;
/* 0x28 */ f32 mInheritScale;
/* 0x2C */ f32 mInheritAlpha;
/* 0x30 */ f32 mInheritRGB;
/* 0x34 */ GXColor mPrmClr;
/* 0x38 */ GXColor mEnvClr;
/* 0x3C */ f32 mTiming;
/* 0x40 */ s16 mLife;
/* 0x42 */ s16 mRate;
/* 0x44 */ u8 mStep;
/* 0x45 */ u8 mTexIdx;
/* 0x46 */ s16 mRotSpeed;
};
class JPAChildShape {
public:
/* 8027B038 */ JPAChildShape(u8 const*);
void getPrmClr(GXColor* dst) { *dst = mpData->mPrmClr; }
void getEnvClr(GXColor* dst) { *dst = mpData->mEnvClr; }
public:
/* 0x00 */ const JPAChildShapeData* mpData;
};
#endif /* JPACHILDSHAPE_H */
+15 -3
View File
@@ -35,13 +35,21 @@ struct JPADynamicsBlockData {
/* 0x70 */ s16 mStartFrame;
/* 0x72 */ s16 mLifeTime;
/* 0x74 */ s16 mVolumeSize;
/* 0x76 */ s16 mDivNumber;
/* 0x76 */ u16 mDivNumber;
/* 0x78 */ u8 mRateStep;
/* 0x7C */ u32 field_0x7c;
};
typedef void (*JPADynamicsCalcVolumeFunc)(JPAEmitterWorkData*);
enum {
JPADynFlag_FixedDensity = 0x01,
JPADynFlag_FixedInterval = 0x02,
JPADynFlag_InheritScale = 0x04,
JPADynFlag_FollowEmtr = 0x08,
JPADynFlag_FollowEmtrChld = 0x10,
};
class JPADynamicsBlock {
public:
/* 8027BB18 */ JPADynamicsBlock(u8 const*);
@@ -52,10 +60,14 @@ public:
s16 getStartFrame() const { return mpData->mStartFrame; }
u32 getResUserWork() const { return mpData->mResUserWork; }
u32 getFlag() const { return mpData->mFlags; }
u32 getVolumeType() const { return (mpData->mFlags >> 8) & 0x07; }
u16 getDivNumber() const { return mpData->mDivNumber; }
f32 getRateRndm() const { return mpData->mRateRndm; }
public:
JPADynamicsBlockData* mpData;
JPADynamicsCalcVolumeFunc mpCalcVolumeFunc;
/* 0x00 */ const JPADynamicsBlockData* mpData;
/* 0x04 */ JPADynamicsCalcVolumeFunc mpCalcVolumeFunc;
};
#endif /* JPADYNAMICSBLOCK_H */
+67
View File
@@ -3,4 +3,71 @@
#include "dolphin/types.h"
struct JPAExtraShapeData {
// Common header.
/* 0x00 */ u8 mMagic[4];
/* 0x04 */ u32 mSize;
/* 0x08 */ u32 mFlags;
/* 0x0C */ f32 mScaleInTiming;
/* 0x10 */ f32 mScaleOutTiming;
/* 0x14 */ f32 mScaleInValueX;
/* 0x18 */ f32 mScaleOutValueX;
/* 0x1C */ f32 mScaleInValueY;
/* 0x20 */ f32 mScaleOutValueY;
/* 0x24 */ f32 mScaleOutRandom;
/* 0x28 */ s16 mScaleAnmCycleX;
/* 0x2A */ s16 mScaleAnmCycleY;
/* 0x2C */ f32 mAlphaInTiming;
/* 0x30 */ f32 mAlphaOutTiming;
/* 0x34 */ f32 mAlphaInValue;
/* 0x38 */ f32 mAlphaBaseValue;
/* 0x3C */ f32 mAlphaOutValue;
/* 0x40 */ f32 mAlphaWaveFrequency;
/* 0x44 */ f32 mAlphaWaveRandom;
/* 0x48 */ f32 mAlphaWaveAmplitude;
/* 0x4C */ f32 mRotateAngle;
/* 0x50 */ f32 mRotateAngleRandom;
/* 0x54 */ f32 mRotateSpeed;
/* 0x58 */ f32 mRotateSpeedRandom;
/* 0x5C */ f32 mRotateDirection;
};
class JPAExtraShape {
public:
/* 8027AD88 */ JPAExtraShape(u8 const*);
/* 8027ADBC */ void init();
f32 getScaleInTiming() const { return mpData->mScaleInTiming; }
f32 getScaleOutTiming() const { return mpData->mScaleOutTiming; }
f32 getScaleInValueX() const { return mpData->mScaleInValueX; }
f32 getScaleInValueY() const { return mpData->mScaleInValueY; }
f32 getScaleOutValueX() const { return mpData->mScaleOutValueX; }
f32 getScaleOutValueY() const { return mpData->mScaleOutValueY; }
s16 getScaleAnmCycleX() const { return mpData->mScaleAnmCycleX; }
s16 getScaleAnmCycleY() const { return mpData->mScaleAnmCycleY; }
f32 getAlphaInTiming() const { return mpData->mAlphaInTiming; }
f32 getAlphaOutTiming() const { return mpData->mAlphaOutTiming; }
f32 getAlphaInValue() const { return mpData->mAlphaInValue; }
f32 getAlphaOutValue() const { return mpData->mAlphaOutValue; }
f32 getAlphaBaseValue() const { return mpData->mAlphaBaseValue; }
f32 getAlphaFreq() const { return mpData->mAlphaWaveFrequency; }
f32 getAlphaAmp() const { return mpData->mAlphaWaveAmplitude; }
f32 getScaleIncRateX() const { return mScaleIncRateX; }
f32 getScaleDecRateX() const { return mScaleDecRateX; }
f32 getScaleIncRateY() const { return mScaleIncRateY; }
f32 getScaleDecRateY() const { return mScaleDecRateY; }
f32 getAlphaIncRate() const { return mAlphaIncRate; }
f32 getAlphaDecRate() const { return mAlphaDecRate; }
private:
/* 0x00 */ const JPAExtraShapeData* mpData;
/* 0x04 */ f32 mAlphaIncRate;
/* 0x08 */ f32 mAlphaDecRate;
/* 0x0C */ f32 mScaleIncRateX;
/* 0x10 */ f32 mScaleIncRateY;
/* 0x14 */ f32 mScaleDecRateX;
/* 0x18 */ f32 mScaleDecRateY;
};
#endif /* JPAEXTRASHAPE_H */
+49 -3
View File
@@ -7,6 +7,9 @@
#include "JSystem/JGeometry.h"
#include "JSystem/JSupport/JSUList.h"
#include "JSystem/JParticle/JPADynamicsBlock.h"
#include "JSystem/JParticle/JPAResource.h"
class JKRHeap;
class JPABaseEmitter;
class JPABaseParticle;
@@ -31,6 +34,30 @@ public:
JPARandom() { mSeed = 0; }
void set_seed(u32 seed) { mSeed = seed; }
u32 get_rndm_u() {
return mSeed = mSeed * 0x19660du + 0x3c6ef35fu;
}
f32 get_rndm_f() {
union { u32 u; f32 f; } a;
a.u = ((get_rndm_u() >> 9) | 0x3f800000);
return a.f - 1.0f;
}
f32 get_rndm_zp() {
f32 f = get_rndm_f();
return (f + f) - 1.0f;
}
f32 get_rndm_zh() {
f32 f = get_rndm_f();
return f - 1.0f;
}
s16 get_rndm_ss() {
return ((s16)get_rndm_u()) >> 16;
}
public:
u32 mSeed;
};
@@ -175,6 +202,13 @@ public:
/* 8027E6A4 */ ~JPAEmitterCallBack();
};
enum {
JPAEmtrStts_StopEmit = 0x01,
JPAEmtrStts_StopCalc = 0x02,
JPAEmtrStts_FirstEmit = 0x10,
JPAEmtrStts_RateStepEmit = 0x20,
};
class JPABaseEmitter {
public:
/* 8027E5EC */ ~JPABaseEmitter();
@@ -191,9 +225,17 @@ public:
/* 8027EF50 */ bool loadTexture(u8, GXTexMapID);
void setStatus(u32 status) { mStatus |= status; }
void clearStatus(u32 status) { mStatus &= ~status; }
bool checkStatus(u32 status) { return !!(mStatus & status); }
bool checkFlag(u32 flag) { return !!(mpRes->getDyn()->getFlag() & flag); }
u8 getResourceManagerID() const { return mResMgrID; }
u8 getGroupID() const { return mGroupID; }
u8 getDrawTimes() const { return mDrawTimes; }
f32 get_r_f() { return mRndm.get_rndm_f(); }
f32 get_r_zp() { return mRndm.get_rndm_zp(); }
f32 get_r_zh() { return mRndm.get_rndm_zh(); }
s16 get_r_ss() { return mRndm.get_rndm_ss(); }
public:
/* 0x00 */ Vec mLocalScl;
@@ -234,7 +276,7 @@ public:
/* 0xFC */ f32 mScaleOut;
/* 0x100 */ u32 mTick;
/* 0x104 */ s16 mWaitTime;
/* 0x106 */ u16 mRateStepTimer;
/* 0x106 */ s16 mRateStepTimer;
/* 0x108 */ GXColor mPrmClr;
/* 0x10C */ GXColor mEnvClr;
/* 0x110 */ u8 mDrawTimes;
@@ -245,11 +287,15 @@ public:
class JPAParticleCallBack {
public:
~JPAParticleCallBack();
virtual ~JPAParticleCallBack();
virtual void execute(JPABaseEmitter*, JPABaseParticle*);
virtual void draw(JPABaseEmitter*, JPABaseParticle*);
};
enum {
JPAPtclStts_Invisible = 0x08,
};
class JPABaseParticle {
public:
/* 8027EFEC */ void init_p(JPAEmitterWorkData*);
@@ -277,7 +323,7 @@ public:
/* 0x74 */ f32 mDrag;
/* 0x78 */ u32 field_0x78;
/* 0x7C */ u32 mStatus;
/* 0x80 */ u16 mAge;
/* 0x80 */ s16 mAge;
/* 0x82 */ u16 mLifeTime;
/* 0x84 */ f32 mTime;
/* 0x88 */ u16 mRotateAngle;
+1 -1
View File
@@ -20,7 +20,7 @@ class JPAResource {
public:
/* 80274010 */ JPAResource();
/* 80274080 */ void init(JKRHeap*);
/* 802755E8 */ void calc(JPAEmitterWorkData*, JPABaseEmitter*);
/* 802755E8 */ bool calc(JPAEmitterWorkData*, JPABaseEmitter*);
/* 80275A94 */ void draw(JPAEmitterWorkData*, JPABaseEmitter*);
/* 80275B74 */ void drawP(JPAEmitterWorkData*);
/* 80275EB0 */ void drawC(JPAEmitterWorkData*);
+28
View File
@@ -19,8 +19,36 @@ public:
/* vt[4] */ virtual s32 skip(s32);
/* vt[5] */ virtual u32 readData(void*, s32) = 0;
u32 read32b() {
u32 val;
this->read(&val, sizeof(val));
return val;
}
s16 readS16() {
s16 val;
this->read(&val, sizeof(val));
return val;
}
u16 readU16() {
u16 val;
this->read(&val, sizeof(val));
return val;
}
u8 readU8() {
u8 val;
this->read(&val, sizeof(val));
return val;
}
// TODO: return value probably wrong
/* 802DC298 */ s32 read(void*, s32);
}; // Size = 0x8
// move?
template <typename T>
T* JSUConvertOffsetToPtr(const void*, const void*);
#endif /* JSUINPUTSTREAM_H */
+12 -46
View File
@@ -157,67 +157,33 @@ private:
// Tree
//
#define JSU_TREE_FROM_LINK(T, LINK) (JSUTree<T>*)(((u8*)(LINK)) - 12)
#define JSU_TREE_LINK_IF_NOT_NULL(TREE) \
if (TREE) { \
TREE = (JSUTree<T>*)(&(TREE)->mLink); \
}
#define _JSU_TREE_AS_LINK(TREE) ((JSULink<T>*)(TREE))
template <typename T>
class JSUTree {
class JSUTree : public JSUList<T>, public JSULink<T> {
public:
JSUTree(T* owner) : mList(), mLink(owner) {}
JSUTree(T* owner) : JSUList<T>(), JSULink<T>(owner) {}
~JSUTree() {}
bool appendChild(JSUTree<T>* child) {
JSU_TREE_LINK_IF_NOT_NULL(child);
return this->mList.append(_JSU_TREE_AS_LINK(child));
}
bool appendChild(JSUTree<T>* child) { return this->append(child); }
bool removeChild(JSUTree<T>* child) {
JSU_TREE_LINK_IF_NOT_NULL(child);
return this->mList.remove(_JSU_TREE_AS_LINK(child));
}
bool removeChild(JSUTree<T>* child) { return this->remove(child); }
bool insertChild(JSUTree<T>* before, JSUTree<T>* child) {
JSU_TREE_LINK_IF_NOT_NULL(before);
JSU_TREE_LINK_IF_NOT_NULL(child);
return this->mList.insert(_JSU_TREE_AS_LINK(before), _JSU_TREE_AS_LINK(child));
}
bool insertChild(JSUTree<T>* before, JSUTree<T>* child) { return this->insert(before, child); }
JSUTree<T>* getEndChild() const { return NULL; }
JSUTree<T>* getFirstChild() const {
JSULink<T>* link = this->mList.getFirst();
return link ? JSU_TREE_FROM_LINK(T, link) : (JSUTree<T>*)link;
}
JSUTree<T>* getFirstChild() const { return (JSUTree<T>*)this->getFirst(); }
JSUTree<T>* getLastChild() const {
JSULink<T>* link = this->mList.getLast();
return link ? JSU_TREE_FROM_LINK(T, link) : (JSUTree<T>*)link;
}
JSUTree<T>* getLastChild() const { return (JSUTree<T>*)this->getLast(); }
JSUTree<T>* getNextChild() const {
JSULink<T>* link = this->mLink.getNext();
return link ? JSU_TREE_FROM_LINK(T, link) : (JSUTree<T>*)link;
}
JSUTree<T>* getNextChild() const { return (JSUTree<T>*)this->getNext(); }
JSUTree<T>* getPrevChild() const {
JSULink<T>* link = this->mLink.getPrev();
return link ? JSU_TREE_FROM_LINK(T, link) : (JSUTree<T>*)link;
}
JSUTree<T>* getPrevChild() const { return (JSUTree<T>*)this->getPrev(); }
u32 getNumChildren() const { return this->mList.getNumLinks(); }
u32 getNumChildren() const { return this->getNumLinks(); }
T* getObject() const { return this->mLink.getObject(); }
T* getObject() const { return (T*)this->getObjectPtr(); }
JSUTree<T>* getParent() const { return (JSUTree<T>*)this->mLink.getList(); }
private:
JSUList<T> mList;
JSULink<T> mLink;
JSUTree<T>* getParent() const { return (JSUTree<T>*)this->getList(); }
};
template <typename T>
+3
View File
@@ -14,6 +14,9 @@ struct ResTLUT {
class JUTPalette {
public:
JUTPalette(_GXTlut p1, _GXTlutFmt p2, JUTTransparency p3, u16 p4, void* p5) {
this->storeTLUT(p1, p2, p3, p4, p5);
}
/* 802DE890 */ void storeTLUT(_GXTlut, ResTLUT*);
/* 802DE91C */ void storeTLUT(_GXTlut, _GXTlutFmt, JUTTransparency, u16, void*);
/* 802DE95C */ bool load();
+14
View File
@@ -1,6 +1,20 @@
#ifndef JUTRESOURCE_H
#define JUTRESOURCE_H
#include "JSystem/JKernel/JKRArchive.h"
#include "JSystem/JSupport/JSUInputStream.h"
#include "dolphin/types.h"
class JUTResReference {
private:
u8 unk_0x0[0x101];
public:
JUTResReference() { unk_0x0[0] = 0; }
/* 802DE078 */ void* getResource(JSUInputStream*, u32, JKRArchive*);
/* 802DE120 */ void* getResource(void const*, u32, JKRArchive*);
/* 802DE1BC */ void* getResource(u32, JKRArchive*);
};
// only rough size known due to getPointer__7J2DPaneFP20JSURandomInputStreamUlP10JKRArchive
#endif /* JUTRESOURCE_H */
+4
View File
@@ -25,4 +25,8 @@ inline f32 cM_ssin(s16 s) {
return JMath::sincosTable_.table[static_cast<u16>(s) >> 3].a1;
}
inline s16 cM_deg2s(f32 val) {
return val * 182.04445f;
}
#endif /* C_MATH_H */
+4
View File
@@ -57,4 +57,8 @@ public:
STATIC_ASSERT(sizeof(Z2AudioMgr) == 0x138C);
inline Z2AudioMgr* Z2GetAudioMgr() {
return Z2AudioMgr::getInterface();
}
#endif /* Z2AUDIOMGR_H */
+24 -113
View File
@@ -184,6 +184,8 @@ public:
/* 0xBF */ ANM_BACKWARD_SLIDE_LAND,
/* 0xC0 */ ANM_FORWARD_SLIDE_LAND,
/* 0xFD */ ANM_TRANSFORM_WOLF = 0xFD, // verify
/* 0x18D */ ANM_CUT_JUMP_LARGE = 0x18D, // verify
ANM_GANON_FINISH = 408 // name probably wrong, fix later
};
@@ -199,7 +201,9 @@ public:
enum daAlink_WARP_MAT_MODE {};
enum daAlink_WANM {
/* 0x5E */ ANM_WOLF_HOWL_SUCCESS = 94
/* 0x5E */ ANM_WOLF_HOWL_SUCCESS = 94,
/* 0x70 */ ANM_TRANFORM_HUMAN = 0x70, // verify
};
enum MODE_FLG {
@@ -446,9 +450,9 @@ public:
/* 800A142C */ void getNeckAimAngle(cXyz*, s16*, s16*, s16*, s16*);
/* 800A1AEC */ void setEyeMove(cXyz*, s16, s16);
/* 800A1F90 */ void setNeckAngle();
/* 800A2198 */ void commonLineCheck(cXyz*, cXyz*);
/* 800A2198 */ bool commonLineCheck(cXyz*, cXyz*);
/* 800A21E0 */ static s16 getMoveBGActorName(cBgS_PolyInfo&, int);
/* 800A2280 */ void checkGoronRide();
/* 800A2280 */ fopAc_ac_c* checkGoronRide();
/* 800A22E8 */ void setMoveSlantAngle();
/* 800A2710 */ void setArmMatrix();
/* 800A29DC */ void setFootMatrix();
@@ -458,7 +462,7 @@ public:
/* 800A39B8 */ void handBgCheck();
/* 800A3C8C */ JKRHeap* setItemHeap();
/* 800A3CE4 */ void setIdxMask(u16*, u16*);
/* 800A3D0C */ void getAnimeResource(daPy_anmHeap_c*, u16, u32);
/* 800A3D0C */ void* getAnimeResource(daPy_anmHeap_c*, u16, u32);
/* 800A3D7C */ J3DModel* initModel(J3DModelData*, u32, u32);
/* 800A3E30 */ void initModel(u16, u32);
/* 800A3E98 */ void initModelEnv(u16, u32);
@@ -649,7 +653,7 @@ public:
/* 800B9580 */ void swordUnequip();
/* 800B9640 */ void itemEquip(u16);
/* 800B96A4 */ void itemUnequip(u16, f32);
/* 800B97EC */ void checkFastUnequip();
/* 800B97EC */ bool checkFastUnequip();
/* 800B983C */ void allUnequip(int);
/* 800B994C */ BOOL checkItemChangeFromButton();
/* 800B9D2C */ BOOL checkNextActionFromButton();
@@ -1029,7 +1033,7 @@ public:
/* 800E01A0 */ bool checkBossBabaRoom();
/* 800E01CC */ void cancelBoomerangLock(fopAc_ac_c*);
/* 800E0210 */ fopAc_ac_c* getBoomerangActor();
/* 800E0244 */ void checkBoomerangChargeEnd();
/* 800E0244 */ bool checkBoomerangChargeEnd();
/* 800E02B8 */ void checkBoomerangCarry(fopAc_ac_c*);
/* 800E03D0 */ void initBoomerangUpperAnimeSpeed(int);
/* 800E0440 */ BOOL checkBoomerangAnime() const;
@@ -2314,7 +2318,7 @@ public:
bool checkFisingRodLure() const { return mEquipItem == 0x105; }
bool doTrigger() const { return mItemTrigger & 0x10; }
u32 getStartMode() { return (fopAcM_GetParam(this) >> 0xC) & 0x1F; }
bool checkInputOnR() const { return field_0x33ac <= 0.05f; }
bool checkInputOnR() const { return field_0x33ac > 0.05f; }
static int getSightBti() { return 0x5B; }
bool checkBoomerangChargeEndWait() const {
return mEquipItem != 0x102 && checkBoomerangAnime();
@@ -2323,9 +2327,15 @@ public:
return mNowAnmPack[param_0].getAnmTransform();
}
void setFacePriBck(u16 param_0) { setFaceBck(param_0, 1, 0xFFFF); }
void cancelFmChainGrabFromOut() {
field_0x2fa3 = 0;
field_0x2844.clearData();
}
s32 checkPlayerDemoMode() const { return mDemo.getDemoType(); }
BOOL i_checkReinRide() const { return mRideStatus == 1 || mRideStatus == 2; }
inline void startRestartRoomFromOut(int, u32, int);
inline u16 getReadyItem();
static u8 const m_mainBckShield[80];
@@ -4347,112 +4357,6 @@ public:
static daAlinkHIO_hookshot_c1 const m;
};
class daHorseRein_c {
private:
/* 0x00 */ cXyz* field_0x0[2];
/* 0x08 */ int field_0x8[2];
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ cXyz field_0x1c;
}; // Size: 0x28
class daHorseFootData_c {
private:
/* 0x0 */ u8 field_0x0[0xE4];
}; // Size: 0xE4
class daHorse_c : public fopAc_ac_c {
public:
enum daHorse_ERFLG0 {
/* 0x010 */ MOVE_ACCEPT = 0x10,
/* 0x080 */ RIDE_RUN_FLG = 0x80,
/* 0x100 */ CUT_TURN_CANCEL = 0x100,
};
enum daHorse_RFLG0 {
/* 0x02 */ ENEMY_SEARCH = 2,
/* 0x08 */ LASH_DASH_START = 8,
/* 0x10 */ TURN_STAND = 0x10,
/* 0x40 */ TURN_STAND_CAMERA = 0x40,
};
enum daHorse_FLG0 {
/* 0x00000020 */ RODEO_LEFT = 0x20,
/* 0x00000040 */ RIDE_START_FLG = 0x40,
/* 0x00010000 */ PLAYER_BACK_RIDE_LASH = 0x10000,
/* 0x20000000 */ TURN_CANCEL_KEEP = 0x20000000,
/* 0x80000000 */ RODEO_MODE = 0x80000000
};
fopAc_ac_c* getZeldaActor();
bool checkNoBombProc() const { return field_0x16b4 == 0 || field_0x16b4 == 1; }
bool checkResetStateFlg0(daHorse_RFLG0 flag) { return mResetStateFlg0 & flag; }
bool checkEndResetStateFlg0(daHorse_ERFLG0 flag) { return mEndResetStateFlg0 & flag; }
bool checkStateFlg0(daHorse_FLG0 flag) { return mStateFlg0 & flag; }
private:
/* 0x0568 */ u8 field_0x568[8];
/* 0x0570 */ J3DModel* field_0x570;
/* 0x0574 */ void* field_0x574;
/* 0x0578 */ J3DFrameCtrl field_0x578;
/* 0x058C */ int field_0x58c;
/* 0x0590 */ u8 field_0x590[4];
/* 0x0594 */ mDoExt_AnmRatioPack field_0x594[3];
/* 0x05AC */ void* field_0x5ac;
/* 0x05B0 */ daPy_frameCtrl_c field_0x5b0[3];
/* 0x05F8 */ u8 field_0x5f8[4];
/* 0x05FC */ dBgS_AcchCir field_0x5fc[3];
/* 0x06BC */ dBgS_Acch field_0x6bc;
/* 0x0894 */ dCcD_Stts field_0x894;
/* 0x08D0 */ dBgS_HorseLinChk field_0x8d0;
/* 0x0940 */ dCcD_Cyl field_0x940[3];
/* 0x0CF4 */ dCcD_Cyl field_0xcf4;
/* 0x0E30 */ dCcD_Cyl field_0xe30;
/* 0x0F6C */ dCcD_Sph field_0xf6c;
/* 0x10A4 */ Z2CreatureRide field_0x10a4;
/* 0x1140 */ u8 field_0x1140[0x10];
/* 0x1150 */ daHorseRein_c field_0x1150[3];
/* 0x11C8 */ u8 field_0x11c8[0x40];
/* 0x1208 */ dMsgFlow_c field_0x1208;
/* 0x1254 */ daPy_actorKeep_c mZeldaActorKeep;
/* 0x125C */ u8 field_0x125c[0xC8];
/* 0x1324 */ daHorseFootData_c mFootData[4];
/* 0x16B4 */ u8 field_0x16b4;
/* 0x16B5 */ u8 field_0x16b5[3];
/* 0x16B8 */ u8 field_0x16b8;
/* 0x16B9 */ u8 field_0x16b9[2];
/* 0x16BB */ u8 mRodeoPointCnt;
/* 0x16BC */ u8 field_0x16bc[0x36];
/* 0x16F2 */ s16 mAimNeckAngleY;
/* 0x16F4 */ u8 field_0x16f4[0xA];
/* 0x16FC */ s16 mDemoMoveAngle;
/* 0x16FE */ u8 field_0x16fe[4];
/* 0x1702 */ s16 field_0x1702;
/* 0x1704 */ u8 field_0x1704[2];
/* 0x1706 */ s16 mCowHitAngle;
/* 0x1708 */ s16 mCowHit;
/* 0x170A */ u8 field_0x170a[0x1E];
/* 0x1728 */ int field_0x1728;
/* 0x172C */ u8 field_0x172c[0x14];
/* 0x1740 */ u32 field_0x1740;
/* 0x1744 */ u32 mStateFlg0;
/* 0x1748 */ u32 mResetStateFlg0;
/* 0x174C */ u32 mEndResetStateFlg0;
/* 0x1750 */ f32 mMorfFrame;
/* 0x1754 */ u8 field_0x1754[0x14];
/* 0x1768 */ f32 field_0x1768;
/* 0x176C */ f32 field_0x176c;
/* 0x1770 */ f32 field_0x1770;
/* 0x1774 */ u8 field_0x1774[0x14];
/* 0x1788 */ f32 mDemoStickR;
/* 0x178C */ f32 mNormalMaxSpeedF;
/* 0x1790 */ f32 mLashMaxSpeedF;
/* 0x1794 */ u8 field_0x1794[0x30];
/* 0x17C4 */ cXyz mDemoPos0;
};
class mDoExt_morf_c;
class daMidna_c : public fopAc_ac_c {
@@ -4518,6 +4422,13 @@ public:
void onEndResetStateFlg0(daMidna_ERFLG0 pFlg) { mEndResetStateFlg0 |= pFlg; }
u32 checkStateFlg1(daMidna_FLG1 pFlg) const { return mStateFlg1 & pFlg; }
void setFaceNum(int num) { mFaceNum = num; }
void setMotionNum(int num) { mMotionNum = num; }
bool checkDemoTypeNone() const { return mDemoType == 0; }
void changeOriginalDemo() { mDemoType = 3; }
void changeDemoMode(u32 mode) { mDemoMode = mode; }
inline bool checkMidnaRealBody();
static u8 const m_texDataTable[84];
static u8 const m_anmDataTable[636];
+1 -23
View File
@@ -1,30 +1,8 @@
#ifndef D_A_D_A_HORSE_STATIC_H
#define D_A_D_A_HORSE_STATIC_H
#include "Z2AudioLib/Z2Creature.h"
#include "dolphin/types.h"
class e_wb_class {
public:
BOOL checkWait(void);
void setPlayerRideNow(void);
void setPlayerRide(void);
void getOff(void);
BOOL checkDownDamage(void);
u8 checkNormalRideMode(void) const;
void setRunRideMode(void);
private:
u8 unk0[0x5b4];
s16 unk1460;
u8 unk1462[0x36];
Z2CreatureRide mZ2Ride;
u8 unk1673[7];
s16 unk1680;
u16 unk1682;
u8 unk1684[0x2a];
u16 unk1726;
};
#include "rel/d/a/e/d_a_e_wb/d_a_e_wb.h"
class daTagHstop_c {
static daTagHstop_c* m_top;
+44 -25
View File
@@ -26,8 +26,8 @@ private:
/* 0x05 */ u8 field_0x5[3];
/* 0x08 */ cXyz mPos;
/* 0x14 */ Mtx field_0x14;
/* 0x44 */ ResTIMG* field_0x44;
/* 0x48 */ ResTIMG* field_0x48;
/* 0x44 */ ResTIMG* mpImg;
/* 0x48 */ u8* mpData;
};
class daPy_boomerangMove_c {
@@ -53,10 +53,10 @@ public:
void initData();
void* mallocBuffer();
void createHeap(daPy_anmHeap_c::daAlinkHEAP_TYPE);
J3DAnmBase* loadData(u16);
J3DAnmBase* loadDataIdx(u16);
J3DAnmBase* loadDataPriIdx(u16);
J3DAnmBase* loadDataDemoRID(u16, u16);
void* loadData(u16);
void* loadDataIdx(u16);
void* loadDataPriIdx(u16);
void* loadDataDemoRID(u16, u16);
JKRHeap* setAnimeHeap();
u16 getIdx() const { return mIdx; }
@@ -64,6 +64,7 @@ public:
void resetPriIdx() { mPriIdx = 0xffff; }
void resetArcNo() { mArcNo = 0xffff; }
bool checkNoSetArcNo() const { return mArcNo == 0xFFFF; }
void setBufferSize(u32 size) { mBufferSize = size; }
private:
/* 0x00 */ u16 mIdx;
@@ -126,6 +127,7 @@ public:
u16 getDemoType() const { return mDemoType; }
void setDemoMode(u32 mode) { mDemoMode = mode; }
u32 getDemoMode() const { return mDemoMode; }
int getParam1() const { return mParam1; }
void i_setSpecialDemoType() { setDemoType(5); }
private:
@@ -189,7 +191,7 @@ public:
FLG0_UNK_20 = 0x20,
UNK_F_ROLL_CRASH_2 = 0x10,
UNK_F_ROLL_CRASH_1 = 0x8,
FLG0_UNK_4 = 4,
MIDNA_RIDE = 4,
HEAVY_STATE_BOOTS = FLG0_UNK_40000000 | EQUIP_HEAVY_BOOTS | FLG0_UNK_20000,
};
@@ -211,7 +213,9 @@ public:
enum daPy_ERFLG0 {
ERFLG0_UNK_8000000 = 0x8000000,
ERFLG0_UNK_1000000 = 0x1000000,
ERFLG0_UNK_800000 = 0x800000,
ERFLG0_UNK_100000 = 0x100000,
ERFLG0_UNK_2 = 2,
ERFLG0_UNK_1 = 1,
};
enum daPy_ERFLG1 {
@@ -219,9 +223,13 @@ public:
UNK_FORCE_PUT_POS = 0x2000,
ERFLG1_UNK_1 = 1,
};
enum daPy_ERFLG2 {};
enum daPy_ERFLG2 {
ERFLG2_UNK_100 = 0x100,
};
enum daPy_RFLG0 {
RFLG0_UNK_8000000 = 0x8000000,
RFLG0_UNK_4000 = 0x4000,
ENEMY_ATTENTION_LOCK = 0x1000,
RFLG0_UNK_80 = 0x80,
RFLG0_UNK_40 = 0x40,
RFLG0_UNK_2 = 0x2,
@@ -262,10 +270,10 @@ public:
};
static u32 setParamData(int, int, int, int);
int checkFishingRodItem(int);
static BOOL checkFishingRodItem(int);
static BOOL checkBombItem(int);
static BOOL checkBottleItem(int);
void checkDrinkBottleItem(int);
static BOOL checkDrinkBottleItem(int);
static BOOL checkOilBottleItem(int);
static BOOL checkOpenBottleItem(int);
static BOOL checkBowItem(int);
@@ -276,25 +284,25 @@ public:
void checkWoodShieldEquip();
f32 getAttentionOffsetY();
s16 checkNowWolfEyeUp();
void forceRestartRoom(int, u32, int);
void setFmChainPos(fopAc_ac_c*, cXyz*, int);
void cancelFmChainGrab();
void setLookPos(cXyz*);
void setPlayerSe(u32);
void linkGrabSubjectNoDraw(fopAc_ac_c*);
static void forceRestartRoom(int, u32, int);
static void setFmChainPos(fopAc_ac_c*, cXyz*, int);
static void cancelFmChainGrab();
static void setLookPos(cXyz*);
static void setPlayerSe(u32);
static bool linkGrabSubjectNoDraw(fopAc_ac_c*);
void wolfGrabSubjectNoDraw(fopAc_ac_c*);
void checkRoomRestartStart();
static bool checkRoomRestartStart();
static u32 checkCarryStartLightBallA();
static u32 checkCarryStartLightBallB();
float getSpinnerRideSpeed() const;
void checkSpinnerReflectEffect();
void checkBoomerangCharge();
static bool checkBoomerangCharge();
bool checkBoomerangChargeTime();
static daBoomerang_c* getThrowBoomerangActor();
void cancelBoomerangLockActor(fopAc_ac_c*);
void setPlayerDamage(int, int);
void setMidnaMotionNum(int);
void setMidnaFaceNum(int);
static void cancelBoomerangLockActor(fopAc_ac_c*);
static void setPlayerDamage(int, int);
static void setMidnaMotionNum(int);
static void setMidnaFaceNum(int);
int checkNoResetFlg0(daPy_FLG0) const;
int checkEquipHeavyBoots() const;
int checkBoarSingleBattle() const;
@@ -314,6 +322,11 @@ public:
int checkResetFlg0(daPy_py_c::daPy_RFLG0) const;
int checkNoResetFlg2(daPy_py_c::daPy_FLG2) const;
int checkMagneBootsOn() const;
void changeDemoPos0(cXyz const*);
void changeDemoMode(u32, int, int, s16);
void changeDemoParam2(s16);
void cancelOriginalDemo();
void changeOriginalDemo();
virtual cXyz* getMidnaAtnPos() const;
virtual void setMidnaMsgNum(fopAc_ac_c*, u16);
@@ -493,9 +506,12 @@ public:
return sumouCameraMode;
}
bool i_getSumouMode() const { return getSumouCameraMode(); }
bool checkStatusWindowDraw() { return i_checkNoResetFlg2(STATUS_WINDOW_DRAW); }
bool checkCargoCarry() const { return mSpecialMode == SMODE_CARGO_CARRY; }
bool getHeavyStateAndBoots() { return i_checkNoResetFlg0(HEAVY_STATE_BOOTS); }
bool checkEnemyAttentionLock() const { return i_checkResetFlg0(ENEMY_ATTENTION_LOCK); }
// some functions use these function as an inline
// is there a better way to handle this?
@@ -513,22 +529,25 @@ public:
void i_onResetFlg0(int flag) { mResetFlg0 |= flag; }
void i_onResetFlg1(int flag) { mResetFlg1 |= flag; }
void i_onEndResetFlg0(int flag) { mEndResetFlg0 |= flag; }
void i_onEndResetFlg2(int flag) { mEndResetFlg2 |= flag; }
int i_checkResetFlg0(daPy_py_c::daPy_RFLG0 flag) const { return mResetFlg0 & flag; }
int i_checkEndResetFlg0(daPy_py_c::daPy_ERFLG0 flag) const { return mEndResetFlg0 & flag; }
int i_checkEndResetFlg1(daPy_py_c::daPy_ERFLG1 flag) const { return mEndResetFlg1 & flag; }
void i_onEndResetFlg1(daPy_ERFLG1 pFlg) { mEndResetFlg1 |= pFlg; }
int i_checkWolf() const { return i_checkNoResetFlg1(IS_WOLF); }
u32 i_checkWolf() const { return i_checkNoResetFlg1(IS_WOLF); }
BOOL i_checkEquipHeavyBoots() const { return i_checkNoResetFlg0(EQUIP_HEAVY_BOOTS); }
BOOL i_checkMagneBootsOn() const { return i_checkNoResetFlg0(MAGNE_BOOTS_ON); }
bool i_checkMidnaRide() const { return i_checkNoResetFlg0(FLG0_UNK_4); }
bool i_checkMidnaRide() const { return i_checkNoResetFlg0(MIDNA_RIDE); }
inline u32 getLastSceneMode();
inline static u32 getLastSceneMode();
inline bool checkWoodSwordEquip();
inline BOOL i_checkSwordGet();
inline bool i_checkShieldGet() const;
inline BOOL checkNowWolf();
inline bool checkZoraWearFlg() const;
static daMidna_c* getMidnaActor() { return m_midnaActor; }
static daMidna_c* m_midnaActor;
};
+5 -1
View File
@@ -53,6 +53,10 @@ public:
virtual ~cBgS() {}
virtual void Ct();
virtual void Dt();
fopAc_ac_c* GetActorPointer(cBgS_PolyInfo const& info) const {
return GetActorPointer(info.GetBgIndex());
}
}; // Size: 0x1404
class dBgS_Acch;
@@ -75,7 +79,7 @@ public:
bool GetMagnetCode(cBgS_PolyInfo const&);
bool GetMonkeyBarsCode(cBgS_PolyInfo const&);
bool GetUnderwaterRoofCode(cBgS_PolyInfo const&);
bool GetWallCode(cBgS_PolyInfo const&);
s32 GetWallCode(cBgS_PolyInfo const&);
bool GetPolyAtt0(cBgS_PolyInfo const&);
bool GetPolyAtt1(cBgS_PolyInfo const&);
bool GetGroundCode(cBgS_PolyInfo const&);
+2 -2
View File
@@ -124,7 +124,7 @@ public:
virtual void GetShdwThrough(int) = 0;
virtual bool GetUnderwaterRoofCode(int) = 0;
virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0;
virtual bool GetWallCode(cBgS_PolyInfo const&) = 0;
virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0;
virtual bool GetPolyAtt0(cBgS_PolyInfo const&) = 0;
virtual bool GetPolyAtt1(cBgS_PolyInfo const&) = 0;
virtual bool GetGroundCode(cBgS_PolyInfo const&) = 0;
@@ -224,7 +224,7 @@ public:
/* 8007B630 */ virtual bool GetUnderwaterRoofCode(int);
/* 8007B4B4 */ virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&);
/* 8007B6AC */ virtual void GetLinkNo(cBgS_PolyInfo const&);
/* 8007B6D8 */ virtual bool GetWallCode(cBgS_PolyInfo const&);
/* 8007B6D8 */ virtual s32 GetWallCode(cBgS_PolyInfo const&);
/* 8007B704 */ virtual bool GetPolyAtt0(cBgS_PolyInfo const&);
/* 8007B734 */ virtual bool GetPolyAtt1(cBgS_PolyInfo const&);
/* 8007B760 */ virtual bool GetGroundCode(cBgS_PolyInfo const&);
+1 -1
View File
@@ -65,7 +65,7 @@ public:
virtual bool GetUnderwaterRoofCode(int) = 0;
virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0;
virtual void GetLinkNo(cBgS_PolyInfo const&) = 0;
virtual bool GetWallCode(cBgS_PolyInfo const&) = 0;
virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0;
virtual bool GetPolyAtt0(cBgS_PolyInfo const&) = 0;
virtual bool GetPolyAtt1(cBgS_PolyInfo const&) = 0;
virtual bool GetGroundCode(cBgS_PolyInfo const&) = 0;
+1 -1
View File
@@ -61,7 +61,7 @@ public:
/* 80082CCC */ virtual void GetUnderwaterRoofCode(int);
/* 80082B3C */ virtual void GetMonkeyBarsCode(cBgS_PolyInfo const&);
/* 80082D24 */ virtual void GetLinkNo(cBgS_PolyInfo const&);
/* 80082D54 */ virtual void GetWallCode(cBgS_PolyInfo const&);
/* 80082D54 */ virtual s32 GetWallCode(cBgS_PolyInfo const&);
/* 80082D84 */ virtual void GetPolyAtt0(cBgS_PolyInfo const&);
/* 80082DB4 */ virtual void GetPolyAtt1(cBgS_PolyInfo const&);
/* 80082DE4 */ virtual void GetGroundCode(cBgS_PolyInfo const&);
+235 -4
View File
@@ -72,6 +72,7 @@ enum PlayerPtr { LINK_PTR, HORSE_PTR };
class daHorse_c;
class dPa_control_c;
class daAlink_c;
class dMsgObject_c;
class dComIfG_play_c {
public:
@@ -110,7 +111,7 @@ public:
// inlines
bool& isPauseFlag() { return mPauseFlag; }
void* getMsgObjectClass() { return mMsgObjectClass; }
dMsgObject_c* getMsgObjectClass() { return mMsgObjectClass; }
dStage_roomControl_c* getRoomControl() { return &mRoomControl; }
dStage_stageDt_c& getStage() { return mStageData; }
dEvt_control_c& getEvent() { return mEvent; }
@@ -155,6 +156,29 @@ public:
mBottleStatus = status;
mBottleSetFlag = flag;
}
void setNunStatus(u8 status, u8 param_1, u8 flag) {
mNunStatus = status;
field_0x4ef0 = param_1;
mNunSetFlag = flag;
}
void setRemoConStatus(u8 status, u8 param_1, u8 flag) {
mRemoConStatus = status;
field_0x4ef2 = param_1;
mRemoConSetFlag = flag;
}
void setNunZStatus(u8 status, u8 flag) {
mNunZStatus = status;
mNunZSetFlag = flag;
}
void setNunCStatus(u8 status, u8 flag) {
mNunCStatus = status;
mNunCSetFlag = flag;
}
void setCStickStatus(u8 status, u8 param_1, u8 flag) {
mCStickStatus = status;
mCStickDirection = param_1;
mCStickSetFlag = flag;
}
void setItemLifeCount(float hearts, u8 type) {
mItemLifeCount += hearts;
mItemLifeCountType = type;
@@ -167,9 +191,33 @@ public:
void setItemKeyNumCount(s16 keys) { mItemKeyNumCount += keys; }
void setItemMaxLifeCount(s16 max) { mItemMaxLifeCount += max; }
void setOxygen(int oxygen) { mOxygen = oxygen; }
void setNowOxygen(s32 oxygen) { mNowOxygen = oxygen; }
int getOxygen() { return mOxygen; }
int getMaxOxygen() { return mMaxOxygen; }
void setMaxOxygen(int max) { mMaxOxygen = max; }
void setItemNowLife(u16 life) { mItemNowLife = life; }
void setItemNowMagic(s16 magic) { mItemNowMagicCount = magic; }
void setItemNowOil(s32 oil) { mItemNowOil = oil; }
u8 getNeedLightDropNum() { return mNeedLightDropNum; }
u8 getDoStatus() { return mDoStatus; }
u8 getRStatus() { return mRStatus; }
u8 getAStatus() { return mAStatus; }
u8 getXStatus() { return mXStatus; }
u8 getYStatus() { return mYStatus; }
u8 getZStatus() { return mZStatus; }
u8 get3DStatus() { return m3DStatus; }
u8 getCStickStatus() { return mCStickStatus; }
u8 getSButtonStatus() { return mSButtonStatus; }
u8 getNunStatus() { return mNunStatus; }
u8 getRemoConStatus() { return mRemoConStatus; }
u8 getNunZStatus() { return mNunZStatus; }
u8 getNunCStatus() { return mNunCStatus; }
u8 getBottleStatus() { return mBottleStatus; }
bool isDoSetFlag(u8 flag) { return flag & mDoSetFlag; }
bool isASetFlag(u8 flag) { return flag & mASetFlag; }
bool isRSetFlag(u8 flag) { return flag & mRSetFlag; }
bool isXSetFlag(u8 flag) { return flag & mXSetFlag; }
bool isYSetFlag(u8 flag) { return flag & mYSetFlag; }
const char* getStartStageName() { return mStartStage.getName(); }
s8 getStartStageRoomNo() { return mStartStage.getRoomNo(); }
s8 getStartStageLayer() { return mStartStage.getLayer(); }
@@ -189,7 +237,9 @@ public:
s8 getStartStageDarkArea() { return mStartStage.getDarkArea(); }
void setStartStageDarkArea(s8 darkArea) { mStartStage.setDarkArea(darkArea); }
void* getPlayerPtr(int ptrIdx) { return mPlayerPtr[ptrIdx]; }
void* getPlayer(int idx) { return mPlayer[idx]; }
JKRArchive* getMain2DArchive() { return mMain2DArchive; }
JKRArchive* getAnmArchive() { return mAnmArchive; }
J2DGrafContext* getCurrentGrafPort() { return mCurrentGrafPort; }
dVibration_c& getVibration() { return mVibration; }
void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] |= flag; }
@@ -254,7 +304,7 @@ public:
/* 0x04E74 */ daAlink_c* mPlayer[1];
/* 0x04E78 */ s8 mPlayerCameraID[4];
/* 0x04E7C */ void* mPlayerPtr[2]; // 0: Player, 1: Horse ; type may be wrong
/* 0x04E84 */ void* mMsgObjectClass;
/* 0x04E84 */ dMsgObject_c* mMsgObjectClass;
/* 0x04E88 */ float mItemLifeCount;
/* 0x04E8C */ int mItemRupeeCount;
/* 0x04E90 */ s16 mItemKeyNumCount;
@@ -492,6 +542,11 @@ const char* dComIfGs_getWarpStageName();
s16 dComIfGs_getWarpPlayerAngleY();
s8 dComIfGs_getWarpRoomNo();
char* dComIfG_getRoomArcName(int);
int dComIfGp_getSelectItemNum(int);
int dComIfGp_getSelectItemMaxNum(int);
void dComIfGp_mapShow();
void dComIfGp_mapHide();
bool dComIfGp_checkMapShow();
inline void dComIfGp_setRStatus(u8 status, u8 flag) {
g_dComIfG_gameInfo.play.setRStatus(status, flag);
@@ -677,6 +732,10 @@ inline s32 dComIfGs_isDungeonItemMap() {
return g_dComIfG_gameInfo.info.getMemory().getBit().isDungeonItemMap();
}
inline s32 dComIfGs_isDungeonItemCompass() {
return g_dComIfG_gameInfo.info.getMemory().getBit().isDungeonItemCompass();
}
inline s32 dComIfGs_isDungeonItemBossKey() {
return g_dComIfG_gameInfo.info.getMemory().getBit().isDungeonItemBossKey();
}
@@ -912,10 +971,14 @@ inline JKRHeap* dComIfGp_getExpHeap2D() {
return g_dComIfG_gameInfo.play.getExpHeap2D();
}
inline u16 dComIfGs_getOil() {
inline s16 dComIfGs_getOil() {
return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getOil();
}
inline s16 dComIfGs_getMaxOil() {
return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getMaxOil();
}
inline s64 dComIfGs_getSaveStartTime() {
return g_dComIfG_gameInfo.info.getStartTime();
}
@@ -1064,6 +1127,10 @@ inline JKRArchive* dComIfGp_getMain2DArchive() {
return g_dComIfG_gameInfo.play.getMain2DArchive();
}
inline JKRArchive* dComIfGp_getAnmArchive() {
return g_dComIfG_gameInfo.play.getAnmArchive();
}
inline J2DGrafContext* dComIfGp_getCurrentGrafPort() {
return g_dComIfG_gameInfo.play.getCurrentGrafPort();
}
@@ -1104,7 +1171,7 @@ inline void dComIfGp_set3DStatus(u8 status, u8 direction, u8 flag) {
g_dComIfG_gameInfo.play.set3DStatus(status, direction, flag);
}
inline u8 dComIfGs_getLastSceneMode() {
inline s32 dComIfGs_getLastSceneMode() {
return g_dComIfG_gameInfo.info.getRestart().getLastMode();
}
@@ -1192,4 +1259,168 @@ inline dStage_roomStatus_c* dComIfGp_roomControl_getStatusRoomDt(int room_no) {
return g_dComIfG_gameInfo.play.getRoomControl()->getStatusRoomDt(room_no);
}
inline void dComIfGp_setItemNowLife(u16 life) {
g_dComIfG_gameInfo.play.setItemNowLife(life);
}
inline void dComIfGp_setItemNowMagic(s16 magic) {
g_dComIfG_gameInfo.play.setItemNowMagic(magic);
}
inline u8 dComIfGs_getMagic() {
return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getMagic();
}
inline u8 dComIfGs_getMaxMagic() {
return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getMaxMagic();
}
inline void dComIfGp_setOxygen(int oxygen) {
g_dComIfG_gameInfo.play.setOxygen(oxygen);
}
inline void dComIfGp_setNowOxygen(s32 oxygen) {
g_dComIfG_gameInfo.play.setNowOxygen(oxygen);
}
inline int dComIfGp_getMaxOxygen() {
return g_dComIfG_gameInfo.play.getMaxOxygen();
}
inline int dComIfGp_getOxygen() {
return g_dComIfG_gameInfo.play.getOxygen();
}
inline u8 dComIfGp_getNeedLightDropNum() {
return g_dComIfG_gameInfo.play.getNeedLightDropNum();
}
inline void dComIfGp_setItemNowOil(s32 oil) {
g_dComIfG_gameInfo.play.setItemNowOil(oil);
}
inline u8 dComIfGp_getAStatus() {
return g_dComIfG_gameInfo.play.getAStatus();
}
inline u8 dComIfGp_getXStatus() {
return g_dComIfG_gameInfo.play.getXStatus();
}
inline u8 dComIfGp_getYStatus() {
return g_dComIfG_gameInfo.play.getYStatus();
}
inline u8 dComIfGp_getZStatus() {
return g_dComIfG_gameInfo.play.getZStatus();
}
inline u8 dComIfGp_get3DStatus() {
return g_dComIfG_gameInfo.play.get3DStatus();
}
inline u8 dComIfGp_getCStickStatus() {
return g_dComIfG_gameInfo.play.getCStickStatus();
}
inline u8 dComIfGp_getSButtonStatus() {
return g_dComIfG_gameInfo.play.getSButtonStatus();
}
inline u8 dComIfGp_getNunStatus() {
return g_dComIfG_gameInfo.play.getNunStatus();
}
inline u8 dComIfGp_getNunZStatus() {
return g_dComIfG_gameInfo.play.getNunZStatus();
}
inline u8 dComIfGp_getNunCStatus() {
return g_dComIfG_gameInfo.play.getNunCStatus();
}
inline u8 dComIfGp_getBottleStatus() {
return g_dComIfG_gameInfo.play.getBottleStatus();
}
inline u8 dComIfGp_getRemoConStatus() {
return g_dComIfG_gameInfo.play.getRemoConStatus();
}
inline bool dComIfGp_isDoSetFlag(u8 flag) {
return g_dComIfG_gameInfo.play.isDoSetFlag(flag);
}
inline bool dComIfGp_isASetFlag(u8 flag) {
return g_dComIfG_gameInfo.play.isASetFlag(flag);
}
inline bool dComIfGp_isRSetFlag(u8 flag) {
return g_dComIfG_gameInfo.play.isRSetFlag(flag);
}
inline bool dComIfGp_isXSetFlag(u8 flag) {
return g_dComIfG_gameInfo.play.isXSetFlag(flag);
}
inline bool dComIfGp_isYSetFlag(u8 flag) {
return g_dComIfG_gameInfo.play.isYSetFlag(flag);
}
inline bool dComIfGs_isCollectMirror(u8 param_0) {
return g_dComIfG_gameInfo.info.getPlayer().getCollect().isCollectMirror(param_0);
}
inline bool dComIfGs_isCollectCrystal(u8 param_0) {
return g_dComIfG_gameInfo.info.getPlayer().getCollect().isCollectCrystal(param_0);
}
inline void dComIfGs_onCollectMirror(u8 param_0) {
g_dComIfG_gameInfo.info.getPlayer().getCollect().onCollectMirror(param_0);
}
inline void dComIfGs_onCollectCrystal(u8 param_0) {
g_dComIfG_gameInfo.info.getPlayer().getCollect().onCollectCrystal(param_0);
}
inline bool dComIfGp_isPauseFlag() {
return g_dComIfG_gameInfo.play.isPauseFlag();
}
inline void dComIfGp_setNunStatus(u8 param_0, u8 param_1, u8 param_2) {
g_dComIfG_gameInfo.play.setNunStatus(param_0, param_1, param_2);
}
inline void dComIfGp_setRemoConStatus(u8 param_0, u8 param_1, u8 param_2) {
g_dComIfG_gameInfo.play.setRemoConStatus(param_0, param_1, param_2);
}
inline void dComIfGp_setNunZStatus(u8 param_0, u8 param_1) {
g_dComIfG_gameInfo.play.setNunZStatus(param_0, param_1);
}
inline void dComIfGp_setNunCStatus(u8 param_0, u8 param_1) {
g_dComIfG_gameInfo.play.setNunCStatus(param_0, param_1);
}
inline void dComIfGp_setCStickStatus(u8 param_0, u8 param_1, u8 param_2) {
g_dComIfG_gameInfo.play.setCStickStatus(param_0, param_1, param_2);
}
inline void* dComIfG_getObjectIDRes(const char* arc_name, u16 id) {
return g_dComIfG_gameInfo.mResControl.getObjectIDRes(arc_name, id);
}
inline void* dComIfGp_getPlayer(int idx) {
return g_dComIfG_gameInfo.play.getPlayer(idx);
}
inline void dComIfGd_set2DOpa(dDlst_base_c* dlst) {
g_dComIfG_gameInfo.drawlist.set2DOpa(dlst);
}
inline dMsgObject_c* dComIfGp_getMsgObjectClass() {
return g_dComIfG_gameInfo.play.getMsgObjectClass();
}
#endif /* D_COM_D_COM_INF_GAME_H */
+4 -2
View File
@@ -191,6 +191,8 @@ public:
/* 800568D8 */ void wipeIn(f32);
/* 80056900 */ void calcWipe();
void set2DOpa(dDlst_base_c* dlst) { set(field_0x1b4, field_0x1b8, dlst); }
static u8 mWipeDlst[72];
static u8 mWipeColor[4];
static f32 mWipeRate;
@@ -228,8 +230,8 @@ private:
/* 0x000B0 */ dDlst_list_c** field_0xb0;
/* 0x000B4 */ dDlst_list_c** field_0xb4; // array?
/* 0x000B8 */ u8 field_0xb8[0xFC];
/* 0x001B4 */ dDlst_list_c* field_0x1b4;
/* 0x001B8 */ dDlst_list_c** field_0x1b8;
/* 0x001B4 */ dDlst_base_c** field_0x1b4;
/* 0x001B8 */ dDlst_base_c** field_0x1b8;
/* 0x001BC */ dDlst_list_c** field_0x1bc; // array?
/* 0x001C0 */ u8 field_0x1c0[0x7C];
/* 0x0023C */ dDlst_list_c* field_0x23c;
+798
View File
@@ -0,0 +1,798 @@
#pragma once
enum
{
PROC_OVERLAP0 = 0x0000,
PROC_OVERLAP1 = 0x0001,
PROC_OVERLAP3 = 0x0002,
PROC_OVERLAP6 = 0x0003,
PROC_OVERLAP7 = 0x0004,
PROC_OVERLAP8 = 0x0005,
PROC_OVERLAP9 = 0x0006,
PROC_OVERLAP10 = 0x0007,
PROC_OVERLAP11 = 0x0008,
PROC_LOGO_SCENE = 0x0009,
PROC_MENU_SCENE = 0x000A,
PROC_PLAY_SCENE = 0x000B,
PROC_OPENING_SCENE = 0x000C,
PROC_NAME_SCENE = 0x000D,
PROC_NAMEEX_SCENE = 0x000E,
PROC_WARNING_SCENE = 0x000F,
PROC_WARNING2_SCENE = 0x0010,
PROC_OVERLAP2 = 0x0011,
PROC_ROOM_SCENE = 0x0012,
PROC_KANKYO = 0x0013,
PROC_ALLDIE = 0x0014,
PROC_ENVSE = 0x0015,
PROC_Obj_Swpush = 0x0016,
PROC_Obj_Swpush2 = 0x0017,
PROC_Obj_Swpush5 = 0x0018,
PROC_Tag_Gstart = 0x0019,
PROC_NO_CHG_ROOM = 0x001A,
PROC_Obj_Lv6ElevtA = 0x001B,
PROC_OBJ_SO = 0x001C,
PROC_Obj_Movebox = 0x001D,
PROC_Obj_SwTurn = 0x001E,
PROC_Obj_Lv6SwTurn = 0x001F,
PROC_OBJ_SEKIZOA = 0x0020,
PROC_OBJ_GRA = 0x0021,
PROC_TAG_GRA = 0x0022,
PROC_TAG_YAMI = 0x0023,
PROC_Obj_Ladder = 0x0024,
PROC_OBJ_BEF = 0x0025,
PROC_OBJ_FMOBJ = 0x0026,
PROC_OBJ_LBOX = 0x0027,
PROC_OBJ_WEB0 = 0x0028,
PROC_OBJ_WEB1 = 0x0029,
PROC_OBJ_CB = 0x002A,
PROC_OBJ_MAKI = 0x002B,
PROC_OBJ_BRG = 0x002C,
PROC_OBJ_GB = 0x002D,
PROC_OBJ_GM = 0x002E,
PROC_OBJ_TOBY = 0x002F,
PROC_OBJ_TP = 0x0030,
PROC_TREESH = 0x0031,
PROC_Obj_ZDoor = 0x0032,
PROC_Obj_Pillar = 0x0033,
PROC_Obj_Cdoor = 0x0034,
PROC_GRDWATER = 0x0035,
PROC_Obj_RotBridge = 0x0036,
PROC_Obj_MagLift = 0x0037,
PROC_Obj_MagLiftRot = 0x0038,
PROC_Obj_Lv1Cdl00 = 0x0039,
PROC_Obj_Lv1Cdl01 = 0x003A,
PROC_Obj_TvCdlst = 0x003B,
PROC_Obj_HsTarget = 0x003C,
PROC_Obj_HeavySw = 0x003D,
PROC_Obj_GoGate = 0x003E,
PROC_Obj_TaFence = 0x003F,
PROC_Obj_Saidan = 0x0040,
PROC_Obj_SpinLift = 0x0041,
PROC_Obj_BmWindow = 0x0042,
PROC_Obj_RfHole = 0x0043,
PROC_Obj_WaterPillar = 0x0044,
PROC_Obj_SyRock = 0x0045,
PROC_Obj_BsGate = 0x0046,
PROC_Obj_AmiShutter = 0x0047,
PROC_Obj_WtGate = 0x0048,
PROC_Obj_Lv2Candle = 0x0049,
PROC_Obj_TogeTrap = 0x004A,
PROC_Obj_RotTrap = 0x004B,
PROC_Obj_SwallShutter = 0x004C,
PROC_Obj_IceWall = 0x004D,
PROC_Obj_Lv5SwIce = 0x004E,
PROC_Obj_Lv5FBoard = 0x004F,
PROC_Obj_Turara = 0x0050,
PROC_Obj_TwGate = 0x0051,
PROC_Obj_Digholl = 0x0052,
PROC_Obj_Digpl = 0x0053,
PROC_Obj_TestCube = 0x0054,
PROC_Obj_Kshutter = 0x0055,
PROC_NPC_COACH = 0x0056,
PROC_NPC_THEB = 0x0057,
PROC_COACH_FIRE = 0x0058,
PROC_COACH2D = 0x0059,
PROC_BALLOON2D = 0x005A,
PROC_SKIP2D = 0x005B,
PROC_Obj_MvStair = 0x005C,
PROC_Obj_Cowdoor = 0x005D,
PROC_Obj_Swpropeller = 0x005E,
PROC_Obj_BoomShutter = 0x005F,
PROC_NPC_KS = 0x0060,
PROC_Obj_Hfuta = 0x0061,
PROC_Obj_BkDoor = 0x0062,
PROC_Obj_Cboard = 0x0063,
PROC_Obj_MGate = 0x0064,
PROC_Obj_Ikada = 0x0065,
PROC_Obj_Ice_l = 0x0066,
PROC_Obj_Ice_s = 0x0067,
PROC_Obj_E_CREATE = 0x0068,
PROC_Obj_Bhbridge = 0x0069,
PROC_Obj_Kaisou = 0x006A,
PROC_Obj_HHASHI = 0x006B,
PROC_Obj_BHASHI = 0x006C,
PROC_OCTHASHI = 0x006D,
PROC_Obj_THASHI = 0x006E,
PROC_Obj_CRVGATE = 0x006F,
PROC_Obj_CRVFENCE = 0x0070,
PROC_Obj_CRVHAHEN = 0x0071,
PROC_Obj_CRVSTEEL = 0x0072,
PROC_Obj_CRVLH_UP = 0x0073,
PROC_Obj_CRVLH_DW = 0x0074,
PROC_Obj_RIVERROCK = 0x0075,
PROC_Obj_DUST = 0x0076,
PROC_Obj_ITA = 0x0077,
PROC_Obj_Window = 0x0078,
PROC_Obj_MetalBox = 0x0079,
PROC_Obj_BBox = 0x007A,
PROC_OBJ_MSIMA = 0x007B,
PROC_OBJ_MYOGAN = 0x007C,
PROC_B_ZANTS = 0x007D,
PROC_Obj_ChainBlock = 0x007E,
PROC_Obj_ChainWall = 0x007F,
PROC_Obj_KkrGate = 0x0080,
PROC_Obj_RiderGate = 0x0081,
PROC_Obj_Onsen = 0x0082,
PROC_Obj_Chest = 0x0083,
PROC_Obj_Bemos = 0x0084,
PROC_Obj_RopeBridge = 0x0085,
PROC_Obj_WellCover = 0x0086,
PROC_Obj_GraveStone = 0x0087,
PROC_Obj_ZraRock = 0x0088,
PROC_Obj_GraRock = 0x0089,
PROC_Obj_GrzRock = 0x008A,
PROC_GRA_WALL = 0x008B,
PROC_OBJ_ONSEN_FIRE = 0x008C,
PROC_Obj_Lv6bemos = 0x008D,
PROC_Obj_Lv6bemos2 = 0x008E,
PROC_Obj_BarDesk = 0x008F,
PROC_Obj_DigSnow = 0x0090,
PROC_Obj_Ytaihou = 0x0091,
PROC_Obj_Elevator = 0x0092,
PROC_Obj_Lv6TogeRoll = 0x0093,
PROC_Obj_Lv6TogeTrap = 0x0094,
PROC_Obj_Lv6Tenbin = 0x0095,
PROC_Obj_Lv6SwGate = 0x0096,
PROC_Obj_Lv6Lblock = 0x0097,
PROC_Obj_Lv6ChgGate = 0x0098,
PROC_Obj_Lv6FuriTrap = 0x0099,
PROC_Obj_Lv6SzGate = 0x009A,
PROC_Obj_Lv4EdShutter = 0x009B,
PROC_Obj_Lv4Gate = 0x009C,
PROC_Obj_Lv4PoGate = 0x009D,
PROC_Obj_Lv4SlideWall = 0x009E,
PROC_Obj_Lv4HsTarget = 0x009F,
PROC_Obj_Lv7PropY = 0x00A0,
PROC_Obj_Lv7BsGate = 0x00A1,
PROC_Obj_Lv8OptiLift = 0x00A2,
PROC_Obj_Lv8KekkaiTrap = 0x00A3,
PROC_Obj_Lv8Lift = 0x00A4,
PROC_Obj_Lv8UdFloor = 0x00A5,
PROC_Obj_Lv9SwShutter = 0x00A6,
PROC_Obj_TobyHouse = 0x00A7,
PROC_Obj_poCandle = 0x00A8,
PROC_Obj_Lv4DigSand = 0x00A9,
PROC_Obj_FallObj = 0x00AA,
PROC_Obj_SmgDoor = 0x00AB,
PROC_Obj_SwLight = 0x00AC,
PROC_Obj_Avalanche = 0x00AD,
PROC_Obj_MirrorScrew = 0x00AE,
PROC_Obj_MirrorSand = 0x00AF,
PROC_Obj_MirrorTable = 0x00B0,
PROC_Obj_MirrorChain = 0x00B1,
PROC_Obj_Mirror6Pole = 0x00B2,
PROC_Obj_SwSpinner = 0x00B3,
PROC_Obj_TDoor = 0x00B4,
PROC_Obj_Lv7Bridge = 0x00B5,
PROC_Obj_zrTurara = 0x00B6,
PROC_Obj_TakaraDai = 0x00B7,
PROC_Obj_Table = 0x00B8,
PROC_Obj_CatDoor = 0x00B9,
PROC_Obj_Gake = 0x00BA,
PROC_CSTAF = 0x00BB,
PROC_Obj_Lv4RailWall = 0x00BC,
PROC_Obj_Lv4Sand = 0x00BD,
PROC_Obj_PushDoor = 0x00BE,
PROC_PushDoor = 0x00BF,
PROC_Obj_GanonWall2 = 0x00C0,
PROC_Obj_Lv4Bridge = 0x00C1,
PROC_Obj_Lv4Floor = 0x00C2,
PROC_Tag_Spinner = 0x00C3,
PROC_Obj_SwHang = 0x00C4,
PROC_Obj_RotStair = 0x00C5,
PROC_Obj_MagneArm = 0x00C6,
PROC_Obj_KWheel00 = 0x00C7,
PROC_Obj_KWheel01 = 0x00C8,
PROC_Obj_Ychndlr = 0x00C9,
PROC_Obj_PRElvtr = 0x00CA,
PROC_Obj_MHasu = 0x00CB,
PROC_Obj_YIblltray = 0x00CC,
PROC_Obj_Lv6EGate = 0x00CD,
PROC_Obj_PDtile = 0x00CE,
PROC_Obj_PDwall = 0x00CF,
PROC_Obj_Lv4PRwall = 0x00D0,
PROC_Obj_KLift00 = 0x00D1,
PROC_B_OH = 0x00D2,
PROC_Obj_Lv4Chan = 0x00D3,
PROC_Obj_Lv3R10Saka = 0x00D4,
PROC_Obj_Lv3Water = 0x00D5,
PROC_Obj_Lv3Water2 = 0x00D6,
PROC_OBJ_LV3WATERB = 0x00D7,
PROC_Obj_HBombkoya = 0x00D8,
PROC_Obj_SZbridge = 0x00D9,
PROC_Obj_KakarikoBrg = 0x00DA,
PROC_Obj_OrdinBrg = 0x00DB,
PROC_Obj_BurnBox = 0x00DC,
PROC_Obj_KJgjs = 0x00DD,
PROC_OBJ_IHASI = 0x00DE,
PROC_Obj_IceBlock = 0x00DF,
PROC_Obj_VolcanicBall = 0x00E0,
PROC_Obj_VolcanicBomb = 0x00E1,
PROC_Obj_VolcGnd = 0x00E2,
PROC_Obj_KKanban = 0x00E3,
PROC_E_PH = 0x00E4,
PROC_NPC_ZRA = 0x00E5,
PROC_Obj_Chandelier = 0x00E6,
PROC_Obj_Stopper2 = 0x00E7,
PROC_DOOR20 = 0x00E8,
PROC_Tag_Hinit = 0x00E9,
PROC_Tag_Hjump = 0x00EA,
PROC_Tag_AJnot = 0x00EB,
PROC_Tag_Hstop = 0x00EC,
PROC_CANOE = 0x00ED,
PROC_HORSE = 0x00EE,
PROC_E_WB = 0x00EF,
PROC_OBJ_ITO = 0x00F0,
PROC_OBJ_SW = 0x00F1,
PROC_SPINNER = 0x00F2,
PROC_B_OB = 0x00F3,
PROC_KAGO = 0x00F4,
PROC_E_YC = 0x00F5,
PROC_B_DS = 0x00F6,
PROC_B_DR = 0x00F7,
PROC_B_ZANTZ = 0x00F8,
PROC_B_ZANT = 0x00F9,
PROC_B_ZANTM = 0x00FA,
PROC_TBOX = 0x00FB,
PROC_TBOX2 = 0x00FC,
PROC_ALINK = 0x00FD,
PROC_BOOMERANG = 0x00FE,
PROC_MIDNA = 0x00FF,
PROC_NPC_TK = 0x0100,
PROC_NPC_WORM = 0x0101,
PROC_PPolamp = 0x0102,
PROC_BkyRock = 0x0103,
PROC_HITOBJ = 0x0104,
PROC_EP = 0x0105,
PROC_COW = 0x0106,
PROC_PERU = 0x0107,
PROC_NI = 0x0108,
PROC_NPC_TKJ2 = 0x0109,
PROC_SQ = 0x010A,
PROC_NPC_SQ = 0x010B,
PROC_DO = 0x010C,
PROC_NPC_NE = 0x010D,
PROC_NPC_TR = 0x010E,
PROC_NPC_LF = 0x010F,
PROC_OBJ_FOOD = 0x0110,
PROC_OBJ_KI = 0x0111,
PROC_OBJ_KITA = 0x0112,
PROC_OBJ_KEY = 0x0113,
PROC_OBJ_KEYHOLE = 0x0114,
PROC_Obj_Lv5Key = 0x0115,
PROC_OBJ_LP = 0x0116,
PROC_OBJ_TATIGI = 0x0117,
PROC_OBJ_ROCK = 0x0118,
PROC_OBJ_WFLAG = 0x0119,
PROC_OBJ_KAGE = 0x011A,
PROC_OBJ_KANBAN2 = 0x011B,
PROC_OBJ_BALLOON = 0x011C,
PROC_OBJ_SUISYA = 0x011D,
PROC_OBJ_OILTUBO = 0x011E,
PROC_OBJ_ROTEN = 0x011F,
PROC_OBJ_SSDRINK = 0x0120,
PROC_OBJ_SSITEM = 0x0121,
PROC_TAG_SSDRINK = 0x0122,
PROC_TAG_BTLITM = 0x0123,
PROC_TAG_LV5SOUP = 0x0124,
PROC_TAG_MNLIGHT = 0x0125,
PROC_TAG_SHOPCAM = 0x0126,
PROC_TAG_SHOPITM = 0x0127,
PROC_OBJ_NDOOR = 0x0128,
PROC_OBJ_UDOOR = 0x0129,
PROC_OBJ_USAKU = 0x012A,
PROC_Obj_SM_DOOR = 0x012B,
PROC_OBJ_BED = 0x012C,
PROC_OBJ_BOUMATO = 0x012D,
PROC_OBJ_ITAMATO = 0x012E,
PROC_OBJ_NOUGU = 0x012F,
PROC_OBJ_STICK = 0x0130,
PROC_OBJ_MIE = 0x0131,
PROC_OBJ_SEKIDOOR = 0x0132,
PROC_OBJ_SEKIZO = 0x0133,
PROC_OBJ_SMTILE = 0x0134,
PROC_NPC_FISH = 0x0135,
PROC_MG_FISH = 0x0136,
PROC_FSHOP = 0x0137,
PROC_NPC_DU = 0x0138,
PROC_DISAPPEAR = 0x0139,
PROC_Obj_Mato = 0x013A,
PROC_Obj_Flag = 0x013B,
PROC_Obj_Flag2 = 0x013C,
PROC_Obj_Flag3 = 0x013D,
PROC_Obj_GOMIKABE = 0x013E,
PROC_Obj_Yousei = 0x013F,
PROC_Obj_Kabuto = 0x0140,
PROC_Obj_Cho = 0x0141,
PROC_Obj_Kuw = 0x0142,
PROC_Obj_Nan = 0x0143,
PROC_Obj_Dan = 0x0144,
PROC_Obj_Kam = 0x0145,
PROC_Obj_Ten = 0x0146,
PROC_Obj_Ari = 0x0147,
PROC_Obj_Kag = 0x0148,
PROC_Obj_Batta = 0x0149,
PROC_Obj_Tombo = 0x014A,
PROC_Obj_Kat = 0x014B,
PROC_Obj_H_Saku = 0x014C,
PROC_Obj_Yobikusa = 0x014D,
PROC_Obj_KazeNeko = 0x014E,
PROC_Obj_KznkArm = 0x014F,
PROC_Obj_NamePlate = 0x0150,
PROC_Obj_OnCloth = 0x0151,
PROC_Obj_LndRope = 0x0152,
PROC_Obj_ItaRope = 0x0153,
PROC_Obj_Sakuita = 0x0154,
PROC_Obj_Laundry = 0x0155,
PROC_WarpBug = 0x0156,
PROC_Izumi_Gate = 0x0157,
PROC_Obj_Fchain = 0x0158,
PROC_Obj_Wchain = 0x0159,
PROC_Tag_Attp = 0x015A,
PROC_Obj_Tornado = 0x015B,
PROC_Obj_Tornado2 = 0x015C,
PROC_Obj_FirePillar = 0x015D,
PROC_Obj_FirePillar2 = 0x015E,
PROC_Obj_InoBone = 0x015F,
PROC_Obj_Stopper = 0x0160,
PROC_Obj_MHole = 0x0161,
PROC_Tag_Magne = 0x0162,
PROC_Obj_BossWarp = 0x0163,
PROC_Obj_WoodPendulum = 0x0164,
PROC_Obj_WdStick = 0x0165,
PROC_Obj_StairBlock = 0x0166,
PROC_Obj_Geyser = 0x0167,
PROC_Tag_KtOnFire = 0x0168,
PROC_Obj_FireWood = 0x0169,
PROC_Obj_FireWood2 = 0x016A,
PROC_Obj_GpTaru = 0x016B,
PROC_Obj_OnsenTaru = 0x016C,
PROC_Obj_KiPot = 0x016D,
PROC_TBOX_SW = 0x016E,
PROC_Obj_SwChain = 0x016F,
PROC_Obj_WoodenSword = 0x0170,
PROC_Obj_StoneMark = 0x0171,
PROC_Obj_Lv3Candle = 0x0172,
PROC_Tag_Lv4Candle = 0x0173,
PROC_Tag_Lv4CandleDm = 0x0174,
PROC_Obj_DamCps = 0x0175,
PROC_Obj_Smoke = 0x0176,
PROC_Obj_WaterFall = 0x0177,
PROC_Obj_ZoraCloth = 0x0178,
PROC_Obj_poFire = 0x0179,
PROC_Tag_poFire = 0x017A,
PROC_Obj_glowSphere = 0x017B,
PROC_Tag_LightBall = 0x017C,
PROC_SwLBall = 0x017D,
PROC_SwBall = 0x017E,
PROC_Obj_WaterEff = 0x017F,
PROC_Tag_RiverBack = 0x0180,
PROC_Tag_KagoFall = 0x0181,
PROC_Tag_Lv2PrChk = 0x0182,
PROC_Obj_Lv4Gear = 0x0183,
PROC_Obj_MasterSword = 0x0184,
PROC_Obj_WoodStatue = 0x0185,
PROC_Obj_Fan = 0x0186,
PROC_Obj_IceLeaf = 0x0187,
PROC_Obj_zrTuraraRc = 0x0188,
PROC_Tag_RetRoom = 0x0189,
PROC_Obj_WindStone = 0x018A,
PROC_Tag_WaraHowl = 0x018B,
PROC_Obj_SCannon = 0x018C,
PROC_Obj_SmWStone = 0x018D,
PROC_Obj_SCannonCrs = 0x018E,
PROC_Tag_SnowEff = 0x018F,
PROC_Tag_CstaSw = 0x0190,
PROC_Tag_Lv6CstaSw = 0x0191,
PROC_Obj_awaPlar = 0x0192,
PROC_Obj_poTbox = 0x0193,
PROC_Obj_TimeFire = 0x0194,
PROC_Obj_TMoon = 0x0195,
PROC_Obj_GanonWall = 0x0196,
PROC_Obj_Prop = 0x0197,
PROC_CSTATUE = 0x0198,
PROC_Obj_SwBallA = 0x0199,
PROC_Obj_SwBallB = 0x019A,
PROC_Obj_SnowSoup = 0x019B,
PROC_Obj_Nagaisu = 0x019C,
PROC_Obj_RCircle = 0x019D,
PROC_Obj_Picture = 0x019E,
PROC_Tag_SetBall = 0x019F,
PROC_Tag_SmkEmt = 0x01A0,
PROC_SwTime = 0x01A1,
PROC_Obj_HFtr = 0x01A2,
PROC_Obj_HBarrel = 0x01A3,
PROC_Obj_Crystal = 0x01A4,
PROC_Obj_SCannonTen = 0x01A5,
PROC_Obj_SwBallC = 0x01A6,
PROC_SCENE_EXIT2 = 0x01A7,
PROC_Obj_Hata = 0x01A8,
PROC_Obj_ToaruMaki = 0x01A9,
PROC_Tag_AttackItem = 0x01AA,
PROC_Tag_RmbitSw = 0x01AB,
PROC_Obj_Sword = 0x01AC,
PROC_Tag_Spring = 0x01AD,
PROC_Tag_Statue = 0x01AE,
PROC_E_AI = 0x01AF,
PROC_E_GS = 0x01B0,
PROC_E_GOB = 0x01B1,
PROC_E_DD = 0x01B2,
PROC_E_DN = 0x01B3,
PROC_E_S1 = 0x01B4,
PROC_E_MF = 0x01B5,
PROC_E_SG = 0x01B6,
PROC_E_BS = 0x01B7,
PROC_E_SF = 0x01B8,
PROC_E_SH = 0x01B9,
PROC_E_DF = 0x01BA,
PROC_E_GM = 0x01BB,
PROC_E_MD = 0x01BC,
PROC_E_SM = 0x01BD,
PROC_E_SM2 = 0x01BE,
PROC_E_ST = 0x01BF,
PROC_E_ST_LINE = 0x01C0,
PROC_E_SB = 0x01C1,
PROC_E_TH = 0x01C2,
PROC_E_CR = 0x01C3,
PROC_E_CR_EGG = 0x01C4,
PROC_E_DB = 0x01C5,
PROC_E_DB_LEAF = 0x01C6,
PROC_E_GA = 0x01C7,
PROC_E_GB = 0x01C8,
PROC_E_HB = 0x01C9,
PROC_E_HB_LEAF = 0x01CA,
PROC_E_HZELDA = 0x01CB,
PROC_E_YD = 0x01CC,
PROC_E_YH = 0x01CD,
PROC_E_YD_LEAF = 0x01CE,
PROC_E_HM = 0x01CF,
PROC_E_TK = 0x01D0,
PROC_E_TK2 = 0x01D1,
PROC_E_TK_BALL = 0x01D2,
PROC_E_RB = 0x01D3,
PROC_E_RD = 0x01D4,
PROC_E_RDB = 0x01D5,
PROC_E_RDY = 0x01D6,
PROC_E_FM = 0x01D7,
PROC_E_FS = 0x01D8,
PROC_E_PM = 0x01D9,
PROC_E_PO = 0x01DA,
PROC_E_MB = 0x01DB,
PROC_E_MK = 0x01DC,
PROC_E_MM = 0x01DD,
PROC_E_FZ = 0x01DE,
PROC_E_ZS = 0x01DF,
PROC_E_KK = 0x01E0,
PROC_E_HP = 0x01E1,
PROC_E_ZH = 0x01E2,
PROC_E_ZM = 0x01E3,
PROC_E_PZ = 0x01E4,
PROC_E_FB = 0x01E5,
PROC_E_FK = 0x01E6,
PROC_E_MS = 0x01E7,
PROC_E_NEST = 0x01E8,
PROC_E_NZ = 0x01E9,
PROC_E_BA = 0x01EA,
PROC_E_BU = 0x01EB,
PROC_E_BUG = 0x01EC,
PROC_E_BEE = 0x01ED,
PROC_E_IS = 0x01EE,
PROC_E_KG = 0x01EF,
PROC_E_KR = 0x01F0,
PROC_E_SW = 0x01F1,
PROC_E_GE = 0x01F2,
PROC_Tag_WatchGe = 0x01F3,
PROC_E_YM = 0x01F4,
PROC_E_YM_TAG = 0x01F5,
PROC_E_YMB = 0x01F6,
PROC_Tag_FWall = 0x01F7,
PROC_Tag_WaterFall = 0x01F8,
PROC_E_YK = 0x01F9,
PROC_E_YR = 0x01FA,
PROC_E_YG = 0x01FB,
PROC_E_HZ = 0x01FC,
PROC_E_WS = 0x01FD,
PROC_E_OC = 0x01FE,
PROC_E_OT = 0x01FF,
PROC_E_DT = 0x0200,
PROC_E_BG = 0x0201,
PROC_E_OctBg = 0x0202,
PROC_DR = 0x0203,
PROC_L7lowDr = 0x0204,
PROC_L7ODR = 0x0205,
PROC_E_TT = 0x0206,
PROC_E_DK = 0x0207,
PROC_E_VT = 0x0208,
PROC_E_WW = 0x0209,
PROC_E_GI = 0x020A,
PROC_B_BH = 0x020B,
PROC_B_BQ = 0x020C,
PROC_B_GM = 0x020D,
PROC_B_GND = 0x020E,
PROC_B_GO = 0x020F,
PROC_B_OH2 = 0x0210,
PROC_B_YO = 0x0211,
PROC_B_YOI = 0x0212,
PROC_B_TN = 0x0213,
PROC_B_GG = 0x0214,
PROC_B_DRE = 0x0215,
PROC_B_MGN = 0x0216,
PROC_E_WAP = 0x0217,
PROC_ITEM = 0x0218,
PROC_Obj_SmallKey = 0x0219,
PROC_Obj_Kantera = 0x021A,
PROC_Obj_LifeContainer = 0x021B,
PROC_Obj_Shield = 0x021C,
PROC_Demo_Item = 0x021D,
PROC_ShopItem = 0x021E,
PROC_Obj_Drop = 0x021F,
PROC_OBJ_RW = 0x0220,
PROC_NBOMB = 0x0221,
PROC_TAG_CSW = 0x0222,
PROC_TAG_QS = 0x0223,
PROC_HOZELDA = 0x0224,
PROC_SWC00 = 0x0225,
PROC_KNOB20 = 0x0226,
PROC_DBDOOR = 0x0227,
PROC_BOSS_DOOR = 0x0228,
PROC_L1BOSS_DOOR = 0x0229,
PROC_L1MBOSS_DOOR = 0x022A,
PROC_L5BOSS_DOOR = 0x022B,
PROC_DSHUTTER = 0x022C,
PROC_SPIRAL_DOOR = 0x022D,
PROC_Tag_ChgRestart = 0x022E,
PROC_Tag_Restart = 0x022F,
PROC_ANDSW = 0x0230,
PROC_ANDSW2 = 0x0231,
PROC_MYNA = 0x0232,
PROC_NPC_GND = 0x0233,
PROC_NPC_GRA = 0x0234,
PROC_NPC_GRC = 0x0235,
PROC_NPC_GRD = 0x0236,
PROC_NPC_GRM = 0x0237,
PROC_NPC_GRMC = 0x0238,
PROC_NPC_GRO = 0x0239,
PROC_NPC_GRR = 0x023A,
PROC_NPC_GRS = 0x023B,
PROC_NPC_GRZ = 0x023C,
PROC_NPC_YAMID = 0x023D,
PROC_NPC_YAMIT = 0x023E,
PROC_NPC_YAMIS = 0x023F,
PROC_NPC_BLUENS = 0x0240,
PROC_NPC_KAKASHI = 0x0241,
PROC_NPC_KDK = 0x0242,
PROC_NPC_ARU = 0x0243,
PROC_NPC_BANS = 0x0244,
PROC_NPC_BESU = 0x0245,
PROC_NPC_BOU = 0x0246,
PROC_NPC_BOU_S = 0x0247,
PROC_NPC_CLERKA = 0x0248,
PROC_NPC_CLERKB = 0x0249,
PROC_NPC_CLERKT = 0x024A,
PROC_NPC_WRESTLER = 0x024B,
PROC_Tag_Arena = 0x024C,
PROC_Tag_Instruction = 0x024D,
PROC_NPC_DOC = 0x024E,
PROC_NPC_GWOLF = 0x024F,
PROC_NPC_LEN = 0x0250,
PROC_NPC_LUD = 0x0251,
PROC_NPC_FAIRY_SEIREI = 0x0252,
PROC_NPC_FAIRY = 0x0253,
PROC_NPC_HANJO = 0x0254,
PROC_NPC_HENNA = 0x0255,
PROC_NPC_HENNA0 = 0x0256,
PROC_NPC_HOZ = 0x0257,
PROC_NPC_JAGAR = 0x0258,
PROC_NPC_KKRI = 0x0259,
PROC_NPC_KN = 0x025A,
PROC_KN_BULLET = 0x025B,
PROC_NPC_KNJ = 0x025C,
PROC_NPC_KOLIN = 0x025D,
PROC_NPC_KOLINB = 0x025E,
PROC_NPC_KYURY = 0x025F,
PROC_NPC_MARO = 0x0260,
PROC_NPC_MIDP = 0x0261,
PROC_NPC_MOI = 0x0262,
PROC_NPC_RACA = 0x0263,
PROC_NPC_SARU = 0x0264,
PROC_NPC_SEIB = 0x0265,
PROC_NPC_SEIC = 0x0266,
PROC_NPC_SEID = 0x0267,
PROC_NPC_SEIRA = 0x0268,
PROC_NPC_SERA2 = 0x0269,
PROC_NPC_SEIREI = 0x026A,
PROC_NPC_SHAMAN = 0x026B,
PROC_NPC_SMARO = 0x026C,
PROC_NPC_SOLA = 0x026D,
PROC_NPC_TARO = 0x026E,
PROC_NPC_PACHI_BESU = 0x026F,
PROC_NPC_PACHI_TARO = 0x0270,
PROC_NPC_PACHI_MARO = 0x0271,
PROC_TAG_PATI = 0x0272,
PROC_NPC_THE = 0x0273,
PROC_NPC_TKJ = 0x0274,
PROC_NPC_TKS = 0x0275,
PROC_NPC_TKC = 0x0276,
PROC_OBJ_TKS = 0x0277,
PROC_NPC_TOBY = 0x0278,
PROC_NPC_URI = 0x0279,
PROC_NPC_YELIA = 0x027A,
PROC_NPC_YKM = 0x027B,
PROC_NPC_YKW = 0x027C,
PROC_NPC_ZANB = 0x027D,
PROC_NPC_ZANT = 0x027E,
PROC_NPC_ZELDA = 0x027F,
PROC_NPC_ZELR = 0x0280,
PROC_NPC_ZELRO = 0x0281,
PROC_OBJ_ZRAFREEZE = 0x0282,
PROC_NPC_ZRC = 0x0283,
PROC_NPC_ZRZ = 0x0284,
PROC_ZRA_MARK = 0x0285,
PROC_MYNA2 = 0x0286,
PROC_TAG_MYNA2 = 0x0287,
PROC_NPC_CD3 = 0x0288,
PROC_Tag_Schedule = 0x0289,
PROC_Tag_Escape = 0x028A,
PROC_NPC_CHAT = 0x028B,
PROC_NPC_SOLDIERa = 0x028C,
PROC_NPC_SOLDIERb = 0x028D,
PROC_PASSER_MNG = 0x028E,
PROC_NPC_PASSER = 0x028F,
PROC_NPC_PASSER2 = 0x0290,
PROC_NPC_POST = 0x0291,
PROC_NPC_POUYA = 0x0292,
PROC_FORMATION_MNG = 0x0293,
PROC_NPC_FGUARD = 0x0294,
PROC_GUARD_MNG = 0x0295,
PROC_TAG_GUARD = 0x0296,
PROC_NPC_GUARD = 0x0297,
PROC_NPC_ASH = 0x0298,
PROC_NPC_ASHB = 0x0299,
PROC_NPC_SHAD = 0x029A,
PROC_NPC_RAFREL = 0x029B,
PROC_NPC_MOIR = 0x029C,
PROC_NPC_IMPAL = 0x029D,
PROC_NPC_SHOE = 0x029E,
PROC_NPC_DOORBOY = 0x029F,
PROC_NPC_PRAYER = 0x02A0,
PROC_NPC_KASIHANA = 0x02A1,
PROC_NPC_KASIKYU = 0x02A2,
PROC_NPC_KASIMICH = 0x02A3,
PROC_NPC_DRSOL = 0x02A4,
PROC_NPC_CHIN = 0x02A5,
PROC_NPC_INS = 0x02A6,
PROC_NPC_SHOP0 = 0x02A7,
PROC_NPC_MK = 0x02A8,
PROC_NPC_P2 = 0x02A9,
PROC_KYTAG00 = 0x02AA,
PROC_KYTAG01 = 0x02AB,
PROC_KYTAG02 = 0x02AC,
PROC_KYTAG03 = 0x02AD,
PROC_KYTAG04 = 0x02AE,
PROC_KYTAG05 = 0x02AF,
PROC_KYTAG06 = 0x02B0,
PROC_KYTAG07 = 0x02B1,
PROC_KYTAG08 = 0x02B2,
PROC_KYTAG09 = 0x02B3,
PROC_KYTAG10 = 0x02B4,
PROC_KYTAG11 = 0x02B5,
PROC_KYTAG12 = 0x02B6,
PROC_KYTAG13 = 0x02B7,
PROC_KYTAG14 = 0x02B8,
PROC_KYTAG15 = 0x02B9,
PROC_KYTAG16 = 0x02BA,
PROC_KYTAG17 = 0x02BB,
PROC_Ykgr = 0x02BC,
PROC_TALK = 0x02BD,
PROC_Obj_Crope = 0x02BE,
PROC_Obj_Bombf = 0x02BF,
PROC_Obj_BkLeaf = 0x02C0,
PROC_Tag_Mhint = 0x02C1,
PROC_Tag_Mmsg = 0x02C2,
PROC_Tag_Mwait = 0x02C3,
PROC_Tag_Mstop = 0x02C4,
PROC_Tag_Stream = 0x02C5,
PROC_Tag_Sppath = 0x02C6,
PROC_Tag_Wljump = 0x02C7,
PROC_Tag_TWGate = 0x02C8,
PROC_Tag_Lv6Gate = 0x02C9,
PROC_Tag_Lv7Gate = 0x02CA,
PROC_Tag_Lv8Gate = 0x02CB,
PROC_Tag_TheBHint = 0x02CC,
PROC_Tag_Assist = 0x02CD,
PROC_DEMO00 = 0x02CE,
PROC_TAG_CAMERA = 0x02CF,
PROC_TAG_CHKPOINT = 0x02D0,
PROC_TAG_EVENT = 0x02D1,
PROC_TAG_EVT = 0x02D2,
PROC_TAG_TELOP = 0x02D3,
PROC_TAG_HOWL = 0x02D4,
PROC_TAG_MSG = 0x02D5,
PROC_TAG_LANTERN = 0x02D6,
PROC_Tag_Mist = 0x02D7,
PROC_DMIDNA = 0x02D8,
PROC_KY_THUNDER = 0x02D9,
PROC_VRBOX = 0x02DA,
PROC_VRBOX2 = 0x02DB,
PROC_BG = 0x02DC,
PROC_SET_BG_OBJ = 0x02DD,
PROC_BG_OBJ = 0x02DE,
PROC_MIRROR = 0x02DF,
PROC_MOVIE_PLAYER = 0x02E0,
PROC_TITLE = 0x02E1,
PROC_FR = 0x02E2,
PROC_ECONT = 0x02E3,
PROC_MG_ROD = 0x02E4,
PROC_E_ARROW = 0x02E5,
PROC_BULLET = 0x02E6,
PROC_SWHIT0 = 0x02E7,
PROC_E_TH_BALL = 0x02E8,
PROC_TAG_EVTAREA = 0x02E9,
PROC_TAG_EVTMSG = 0x02EA,
PROC_TAG_KMSG = 0x02EB,
PROC_TAG_PUSH = 0x02EC,
PROC_E_MK_BO = 0x02ED,
PROC_E_MM_MT = 0x02EE,
PROC_OBJ_KBOX = 0x02EF,
PROC_OBJ_FW = 0x02F0,
PROC_B_GOS = 0x02F1,
PROC_OBJ_YSTONE = 0x02F2,
PROC_MANT = 0x02F3,
PROC_CROD = 0x02F4,
PROC_OBJ_PLEAF = 0x02F5,
PROC_OBJ_KBACKET = 0x02F6,
PROC_OBJ_YBAG = 0x02F7,
PROC_OBJ_PUMPKIN = 0x02F8,
PROC_OBJ_AUTOMATA = 0x02F9,
PROC_OBJ_GADGET = 0x02FA,
PROC_OBJ_KAGO = 0x02FB,
PROC_Obj_Carry = 0x02FC,
PROC_Obj_Stone = 0x02FD,
PROC_OBJ_HB = 0x02FE,
PROC_NPC_INKO = 0x02FF,
PROC_BD = 0x0300,
PROC_Obj_Eff = 0x0301,
PROC_WPILLAR = 0x0302,
PROC_WMARK = 0x0303,
PROC_E_BI = 0x0304,
PROC_E_BI_LEAF = 0x0305,
PROC_START_AND_GOAL = 0x0306,
PROC_NPC_DF = 0x0307,
PROC_ARROW = 0x0308,
PROC_PATH_LINE = 0x0309,
PROC_TAG_ALLMATO = 0x030A,
PROC_Obj_Timer = 0x030B,
PROC_SCENE_EXIT = 0x030C,
PROC_CAMERA = 0x030D,
PROC_CAMERA2 = 0x030E,
PROC_SUSPEND = 0x030F,
PROC_GRASS = 0x0310,
PROC_KYEFF = 0x0311,
PROC_KYEFF2 = 0x0312,
PROC_MSG_OBJECT = 0x0313,
PROC_MENUWINDOW = 0x0314,
PROC_TIMER = 0x0315,
PROC_METER2 = 0x0316,
PROC_GAMEOVER = 0x0317,
};
+5 -1
View File
@@ -59,7 +59,7 @@ public:
/* 8003C260 */ static dRes_info_c* newResInfo(dRes_info_c*, int);
/* 8003C288 */ static dRes_info_c* getResInfoLoaded(char const*, dRes_info_c*, int);
/* 8003C2EC */ static void* getRes(char const*, s32, dRes_info_c*, int);
/* 8003C400 */ void getIDRes(char const*, u16, dRes_info_c*, int);
/* 8003C400 */ static void* getIDRes(char const*, u16, dRes_info_c*, int);
/* 8003C470 */ static int syncAllRes(dRes_info_c*, int);
/* 8003C4E4 */ int setObjectRes(char const*, void*, u32, JKRHeap*);
/* 8003C5BC */ int setStageRes(char const*, JKRHeap*);
@@ -79,6 +79,10 @@ public:
return getRes(arcName, param_1, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo));
}
void* getObjectIDRes(const char* arcName, u16 id) {
return getIDRes(arcName, id, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo));
}
int syncObjectRes(const char* name) {
return syncRes(name, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo));
}
+15 -4
View File
@@ -45,8 +45,8 @@ struct stage_stag_info_class {
/* 0x2A */ u16 mStageTitleNo;
}; // Size: Unknown
inline u16 dStage_stagInfo_GetUpButton(stage_stag_info_class* p_info) {
return p_info->field_0x10 & 7;
inline s16 dStage_stagInfo_GetUpButton(stage_stag_info_class* p_info) {
return p_info->field_0x0a & 7;
}
struct stage_scls_info_class {
@@ -99,7 +99,9 @@ struct dStage_Multi_c {};
struct dStage_SoundInfo_c {};
struct dStage_FileList_dt_c {};
struct dStage_FileList_dt_c {
/* 0x0 */ u32 field_0x0;
};
struct dStage_dPnt_c {};
@@ -547,11 +549,12 @@ public:
bool checkStatusFlag(int i_roomNo, u8 flag) const {
return cLib_checkBit(mStatus[i_roomNo].unk_0x3F4, flag);
}
static char* getDemoArcName() { return mDemoArcName; }
static JKRExpHeap* mMemoryBlock[19];
static char mArcBank[32][10];
static dStage_roomStatus_c mStatus[0x40];
static u8 mDemoArcName[10 + 2 /* padding */];
static char mDemoArcName[10];
static u32 mProcID;
static char* mArcBankName;
static char* mArcBankData;
@@ -680,6 +683,10 @@ inline u32 dStage_stagInfo_GetEscapeWarp(stage_stag_info_class* pstag) {
return pstag->field_0x10 >> 0x18;
}
inline u32 dStage_stagInfo_GetMiniMap(stage_stag_info_class* pstag) {
return (pstag->field_0x0a >> 0xD) & 7;
}
inline s8 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) {
return p_info->field_0xb & 0xF;
}
@@ -696,4 +703,8 @@ inline s8 dStage_sclsInfo_getTimeH(stage_scls_info_class* p_info) {
return (p_info->field_0xa >> 4) | (p_info->field_0xb & 16);
}
inline u32 dStage_FileList_dt_getMiniMap(dStage_FileList_dt_c* p_fList) {
return p_fList->field_0x0 >> 3 & 7;
}
#endif /* D_D_STAGE_H */
+3
View File
@@ -83,6 +83,9 @@ public:
bool runCheck() { return field_0xe5 != 0; }
u16 chkEventFlag(u16 flag) { return flag & mEventFlag; }
u8 getMode() const { return mMode; }
u16 checkHind(u16 flag) { return flag & mHindFlag; }
bool i_isOrderOK() { return field_0xe5 == 0 || field_0xe5 == 2; }
public:
/* 0x000 */ u8 field_0x0[4];
+1
View File
@@ -665,5 +665,6 @@ STATIC_ASSERT(sizeof(dScnKy_env_light_c) == 4880);
BOOL dKy_darkworld_stage_check(char const*, int);
BOOL dKy_withwarp_capture_check();
bool dKy_darkworld_check();
#endif /* D_KANKYO_D_KANKYO_H */
+78
View File
@@ -1,6 +1,84 @@
#ifndef D_MAP_D_MAP_PATH_H
#define D_MAP_D_MAP_PATH_H
#include "d/d_drawlist.h"
#include "dolphin/types.h"
class dDrawPath_c : public dDlst_base_c {
public:
struct line_class {};
struct poly_class {};
struct group_class {};
struct floor_class {};
struct room_class {};
/* 8003CB00 */ void rendering(dDrawPath_c::group_class const*);
/* 8003CBBC */ void rendering(dDrawPath_c::floor_class const*);
/* 8002AD3C */ virtual ~dDrawPath_c();
/* 8002ABF0 */ virtual bool isDrawType(int);
virtual void getColor(int) = 0;
/* 8002AD84 */ virtual void getLineColor(int, int);
virtual void getLineWidth(int) = 0;
virtual void isSwitch(dDrawPath_c::group_class const*) = 0;
virtual void isRenderingFloor(int) = 0;
virtual void getFirstRoomPointer() = 0;
virtual void getNextRoomPointer() = 0;
/* 8003CCC4 */ virtual void drawPath();
/* 8003C94C */ virtual void rendering(dDrawPath_c::line_class const*);
/* 8003CA40 */ virtual void rendering(dDrawPath_c::poly_class const*);
/* 8003CC24 */ virtual void rendering(dDrawPath_c::room_class const*);
};
class dDrawPathWithNormalPattern_c : public dDrawPath_c {
public:
/* 8002ACE0 */ virtual ~dDrawPathWithNormalPattern_c();
};
class dRenderingMap_c : public dDrawPathWithNormalPattern_c {
public:
/* 8003CD38 */ void makeResTIMG(ResTIMG*, u16, u16, u8*, u8*, u16) const;
/* 8003CDAC */ void renderingMap();
/* 8002AC74 */ virtual ~dRenderingMap_c();
virtual void beforeDrawPath() = 0;
virtual void afterDrawPath() = 0;
virtual void preDrawPath() = 0;
virtual void postDrawPath() = 0;
virtual void isDrawPath() = 0;
virtual void preRenderingMap() = 0;
virtual void postRenderingMap() = 0;
virtual void getBackColor() const = 0;
};
class dRenderingFDAmap_c : public dRenderingMap_c {
public:
/* 8003CE78 */ void setTevSettingNonTextureDirectColor() const;
/* 8003CF40 */ void setTevSettingIntensityTextureToCI() const;
/* 8003D0AC */ void drawBack() const;
/* 8003D3C0 */ void renderingDecoration(dDrawPath_c::line_class const*);
/* 8002ABF8 */ virtual ~dRenderingFDAmap_c();
/* 8003D188 */ virtual void preRenderingMap();
/* 8003D320 */ virtual void postRenderingMap();
/* 8003D68C */ virtual void getDecoLineColor(int, int);
/* 8003D6B8 */ virtual void getDecorationLineWidth(int);
private:
/* 0x04 */ int field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ f32 field_0xc;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 mCmPerTexel;
/* 0x1C */ u16 field_0x1c;
/* 0x1E */ u16 field_0x1e;
/* 0x20 */ u16 field_0x20;
/* 0x22 */ u16 field_0x22;
}; // Size: 0x24
#endif /* D_MAP_D_MAP_PATH_H */
+134
View File
@@ -1,6 +1,140 @@
#ifndef D_MAP_D_MAP_PATH_DMAP_H
#define D_MAP_D_MAP_PATH_DMAP_H
#include "d/d_stage.h"
#include "d/map/d_map_path.h"
#include "dolphin/types.h"
struct dTres_c {
struct data_s {};
struct typeGroupData_c {};
struct list_class {};
/* 8009BCB4 */ void addData(dTres_c::list_class*, s8);
/* 8009C360 */ void getFirstData(u8);
/* 8009C3B4 */ void getNextData(dTres_c::typeGroupData_c const*);
/* 8009C39C */ void getNextData(dTres_c::typeGroupData_c*);
/* 8009C4B0 */ void getTypeToTypeGroupNo(u8);
static u8 mTypeGroupListAll[204 + 4 /* padding */];
};
class dMpath_c {
public:
/* 8003F758 */ static u8 isExistMapPathData();
/* 8003F760 */ void getTopBottomFloorNo(s8*, s8*);
/* 8003F7E8 */ void createWork();
/* 8003FA40 */ void setPointer(s8, void*, int);
/* 8003F810 */ void setPointer(dDrawPath_c::room_class*, s8*, s8*);
/* 8003FB70 */ void create();
/* 8003FBD0 */ void reset();
/* 8003FC70 */ void remove();
static u8 mLayerList[4];
static f32 mMinX;
static f32 mMaxX;
static f32 mMinZ;
static f32 mMaxZ;
static f32 mAllCenterX;
static f32 mAllCenterZ;
static f32 mAllSizeX;
static f32 mAllSizeZ;
};
struct dMapInfo_n {
/* 8003ECA0 */ void chkGetCompass();
/* 8003ECD8 */ void chkGetMap();
/* 8003ED10 */ void isVisitedRoom(int);
/* 8003ED60 */ void correctionOriginPos(s8, Vec*);
/* 8003EDC0 */ void offsetPlus(dStage_FileList2_dt_c const*, Vec*);
/* 8003EDEC */ void rotAngle(dStage_FileList2_dt_c const*, Vec*);
/* 8003EE5C */ static Vec getMapPlayerPos();
/* 8003EF20 */ void getMapPlayerAngleY();
/* 8003EF70 */ void getConstRestartIconPointer();
/* 8003F02C */ void getMapRestartPos();
/* 8003F0F8 */ void getMapRestartAngleY();
/* 8003F19C */ void getRoomCenter(int, f32*, f32*);
/* 8003F1F4 */ void getRoomMinMaxXZ(int, f32*, f32*, f32*, f32*);
/* 8003F24C */ void getFloorParameter(f32, s8*, f32*, f32*, f32*, f32*);
};
class renderingDAmap_c : public dRenderingFDAmap_c {
public:
/* 8003FCA4 */ void calcFloorNoForObjectByMapPathRend(f32, int) const;
/* 8003FCC8 */ void init(u8*, u16, u16, u16, u16);
/* 8003FD08 */ void entry(f32, f32, f32, int, s8);
/* 8003FE6C */ void setSingleRoomSetting();
/* 8003FFF4 */ void getFirstDrawRoomNo();
/* 80040094 */ void getNextDrawRoomNo(int);
/* 8003FE18 */ virtual void draw();
/* 8002B150 */ virtual ~renderingDAmap_c();
/* 8003FD9C */ virtual void isSwitch(dDrawPath_c::group_class const*);
/* 8003FE54 */ virtual void isRenderingFloor(int);
/* 80040134 */ virtual void getFirstRoomPointer();
/* 800401E8 */ virtual void getNextRoomPointer();
/* 8003FF14 */ virtual void preDrawPath();
/* 8003FFC4 */ virtual void postDrawPath();
/* 800402C0 */ virtual void isDrawPath();
/* 8003FE4C */ virtual void getBackColor() const;
/* 800402E0 */ virtual bool getFirstDrawLayerNo();
/* 800402E8 */ virtual void getNextDrawLayerNo(int);
/* 800409E0 */ virtual void isDrawIconSingle(dTres_c::data_s const*, int, int, bool, bool,
Vec const*) const;
/* 80040AE4 */ virtual void getIconGroupNumber(u8) const;
virtual void hasMap() const = 0;
virtual void isRendAllRoom() const = 0;
virtual void isRendDoor() const = 0;
virtual bool isCheckFloor() const = 0;
virtual void isDrawIconSingle2(dTres_c::data_s const*, bool, bool, int) const = 0;
/* 8003FFEC */ virtual void getRoomNoSingle();
/* 8003FE70 */ virtual void isDrawRoom(int, int) const;
/* 800409B4 */ virtual void isDrawRoomIcon(int, int) const;
bool isDraw() const { return mDraw; }
private:
/* 0x24 */ int field_0x24;
/* 0x28 */ int field_0x28;
/* 0x2C */ int mRoomNoSingle;
/* 0x30 */ u8 field_0x30;
/* 0x31 */ bool mDraw;
}; // Size: 0x34
class stage_tgsc_data_class;
class renderingPlusDoor_c : public renderingDAmap_c {
public:
/* 80040574 */ void drawDoor1();
/* 800405B8 */ void drawDoor2();
/* 800405FC */ void drawDoorCommon(stage_tgsc_data_class const*, int, bool);
/* 80040710 */ void checkDispDoorS(int, int, f32);
/* 80040838 */ void drawNormalDoorS(stage_tgsc_data_class const*, int, int, bool);
/* 8002B0B4 */ virtual ~renderingPlusDoor_c();
/* 8004145C */ virtual void beforeDrawPath();
/* 80040518 */ virtual void afterDrawPath();
virtual bool isRendRestart() const = 0;
virtual bool isRendCursor() const = 0;
virtual bool isRendIcon() const = 0;
};
class renderingPlusDoorAndCursor_c : public renderingPlusDoor_c {
public:
/* 80040B00 */ void drawTreasure();
/* 80040E84 */ void drawTreasureAfterPlayer();
/* 80041208 */ void drawIconSingle(Vec const&, f32, f32);
/* 800412C0 */ void drawCursor(Vec const&, s16, int, f32);
/* 8002B008 */ virtual ~renderingPlusDoorAndCursor_c();
/* 800402FC */ virtual void afterDrawPath();
/* 80040ADC */ virtual void getIconPosition(dTres_c::typeGroupData_c*) const;
/* 80040A94 */ virtual void getFirstData(u8);
/* 80040AB8 */ virtual void getNextData(dTres_c::typeGroupData_c*);
virtual void getPlayerCursorSize() = 0;
virtual void getRestartCursorSize() = 0;
};
#endif /* D_MAP_D_MAP_PATH_DMAP_H */
+3
View File
@@ -172,4 +172,7 @@ private:
/* 0x154 */ bool mPauseWindow;
};
BOOL dMw_LEFT_TRIGGER();
BOOL dMw_RIGHT_TRIGGER();
#endif /* D_MENU_D_MENU_WINDOW_H */
+119
View File
@@ -3,4 +3,123 @@
#include "dolphin/types.h"
class dMw_DHIO_c {
public:
/* 801F9E2C */ dMw_DHIO_c();
/* 801F9E98 */ virtual ~dMw_DHIO_c() {}
private:
/* 0x004 */ u8 field_0x4;
/* 0x005 */ bool mMap[32];
/* 0x025 */ bool mCompass[32];
/* 0x045 */ bool mBossKey[32];
/* 0x065 */ bool mBossClear[32];
/* 0x085 */ bool mHeartContainer[32];
/* 0x0A5 */ bool mBossDemo[32];
/* 0x0C5 */ bool mPortal[32];
/* 0x0E5 */ bool mMidBossClear[32];
/* 0x105 */ bool mMapCopy[32];
/* 0x125 */ bool mCompassCopy[32];
/* 0x145 */ bool mBossKeyCopy[32];
/* 0x165 */ bool mBossClearCopy[32];
/* 0x185 */ bool mHeartContainerCopy[32];
/* 0x1A5 */ bool mBossDemoCopy[32];
/* 0x1C5 */ bool mPortalCopy[32];
/* 0x1E5 */ bool mMidBossClearCopy[32];
};
extern dMw_DHIO_c g_mwDHIO;
class dMw_HIO_c {
public:
/* 801F9AFC */ dMw_HIO_c();
/* 801F9B38 */ void init();
/* 801F9E14 */ bool getBombFlag();
/* 801F9E1C */ bool getArrowFlag();
/* 801F9E24 */ bool getPachinkoFlag();
/* 801F9EE0 */ virtual ~dMw_HIO_c() {}
private:
/* 0x004 */ u8 field_0x4;
/* 0x006 */ u16 mLife;
/* 0x008 */ u16 mMaxLife;
/* 0x00A */ u8 mMagic;
/* 0x00B */ u8 mMaxMagic;
/* 0x00C */ s32 mOil;
/* 0x010 */ s32 mMaxOil;
/* 0x014 */ s32 mOxygen;
/* 0x018 */ s32 mMaxOxygen;
/* 0x01C */ bool mEnableMagic;
/* 0x01D */ bool mEnableArrowDrops;
/* 0x01E */ s16 mRupees;
/* 0x020 */ s16 mWalletSize;
/* 0x022 */ u8 mKeys;
/* 0x023 */ u8 field_0x23;
/* 0x024 */ u16 mLifeCopy;
/* 0x026 */ u16 mMaxLifeCopy;
/* 0x028 */ u8 mMagicCopy;
/* 0x029 */ u8 mMaxMagicCopy;
/* 0x02C */ s32 mOilCopy;
/* 0x030 */ s32 mMaxOilCopy;
/* 0x034 */ s32 mOxygenCopy;
/* 0x038 */ s32 mMaxOxygenCopy;
/* 0x03C */ bool mEnableMagicCopy;
/* 0x03D */ bool mEnableArrowDropsCopy;
/* 0x03E */ s16 mRupeesCopy;
/* 0x040 */ s16 mWalletSizeCopy;
/* 0x042 */ s16 mDonationAmount;
/* 0x044 */ s16 mDonationAmountCopy;
/* 0x046 */ u8 mKeysCopy;
/* 0x047 */ u8 field_0x47;
/* 0x048 */ u8 mPoes;
/* 0x049 */ u8 mPoesCopy;
/* 0x04A */ u8 mItems[24];
/* 0x062 */ u8 mItemsCopy[24];
/* 0x07A */ u8 field_0x7a[24];
/* 0x092 */ bool mSwords[4];
/* 0x096 */ bool mShields[3];
/* 0x099 */ bool mClothes[3];
/* 0x09C */ bool mSwordsCopy[4];
/* 0x0A0 */ bool mShieldsCopy[3];
/* 0x0A3 */ bool mClothesCopy[3];
/* 0x0A6 */ u8 mScent;
/* 0x0A7 */ u8 mScentCopy;
/* 0x0A8 */ u8 field_0xa8;
/* 0x0A9 */ bool mBombBagLV2;
/* 0x0AA */ bool mBombBagLV2Copy;
/* 0x0AB */ bool mLV2KeyShards[3];
/* 0x0AE */ bool mLV2KeyShardsCopy[3];
/* 0x0B1 */ bool mLV5Item[2];
/* 0x0B3 */ bool mLV5ItemCopy[2];
/* 0x0B5 */ bool mGoldBug[24];
/* 0x0CD */ bool mGoldBugCopy[24];
/* 0x0E5 */ u8 mArrowNum;
/* 0x0E6 */ u8 mSeedNum;
/* 0x0E7 */ u8 mBombNum[3];
/* 0x0EA */ u8 field_0xea;
/* 0x0EB */ u8 mBottleNum[4];
/* 0x0EF */ u8 mArrowNumCopy;
/* 0x0F0 */ u8 mSeedNumCopy;
/* 0x0F1 */ u8 mBombNumCopy[3];
/* 0x0F4 */ u8 field_0xf4;
/* 0x0F5 */ u8 mBottleNumCopy[4];
/* 0x0F9 */ u8 field_0xf9[8];
/* 0x101 */ u8 field_0x101[8];
/* 0x109 */ u8 field_0x109[8];
/* 0x111 */ u8 field_0x111[8];
/* 0x119 */ bool mEnableOxygenMeter;
/* 0x11A */ bool mEnableOxygenMeterCopy;
/* 0x11B */ u8 mArrowFlag;
/* 0x11C */ u8 mPachinkoFlag;
/* 0x11D */ u8 mBombFlag;
/* 0x11E */ bool mFusedShadow[4];
/* 0x122 */ bool mFusedShadowCopy[4];
/* 0x126 */ bool mMirrorShard[4];
/* 0x12A */ bool mMirrorShardCopy[4];
}; // Size: 0x130
extern dMw_HIO_c g_mwHIO;
#endif /* D_MENU_D_MENU_WINDOW_HIO_H */
+27 -23
View File
@@ -14,12 +14,12 @@ public:
class dMeterMap_c;
class dMeter2_c {
class dMeter2_c : public msg_class {
public:
/* 8021EA14 */ void _create();
/* 8021F128 */ void _execute();
/* 8021F370 */ void _draw();
/* 8021F49C */ void _delete();
/* 8021EA14 */ int _create();
/* 8021F128 */ int _execute();
/* 8021F370 */ int _draw();
/* 8021F49C */ int _delete();
/* 8021F6EC */ void emphasisButtonDelete();
/* 8021F780 */ void setLifeZero();
/* 8021F7B0 */ void checkStatus();
@@ -61,6 +61,8 @@ public:
/* 802259F8 */ void isArrowEquip();
/* 80225A64 */ void isPachinkoEquip();
void setNowLifeGauge(s16 life) { mNowLifeGauge = life; }
private:
/* 0x100 */ JKRExpHeap* mpHeap;
/* 0x104 */ JKRExpHeap* mpSubHeap;
@@ -72,7 +74,7 @@ private:
/* 0x11C */ void* field_0x11c;
/* 0x120 */ dMeterMap_c* mpMap;
/* 0x124 */ u32 field_0x124;
/* 0x128 */ int field_0x128;
/* 0x128 */ u32 field_0x128;
/* 0x12C */ int field_0x12c;
/* 0x130 */ f32 field_0x130;
/* 0x134 */ f32 field_0x134[2];
@@ -90,22 +92,22 @@ private:
/* 0x18C */ f32 field_0x18c;
/* 0x190 */ s16 field_0x190;
/* 0x192 */ s16 mNowLifeGauge;
/* 0x194 */ s16 field_0x194;
/* 0x196 */ s16 field_0x196;
/* 0x198 */ s16 field_0x198;
/* 0x194 */ s16 mMaxLife;
/* 0x196 */ s16 mNowMagic;
/* 0x198 */ s16 mMaxMagic;
/* 0x19A */ s16 field_0x19a;
/* 0x19C */ int field_0x19c;
/* 0x1A0 */ int field_0x1a0;
/* 0x1A4 */ int field_0x1a4;
/* 0x1A8 */ int field_0x1a8;
/* 0x19C */ int mNowOil;
/* 0x1A0 */ int mMaxOil;
/* 0x1A4 */ int mNowOxygen;
/* 0x1A8 */ int mMaxOxygen;
/* 0x1AC */ int field_0x1ac;
/* 0x1B0 */ u16 field_0x1b0;
/* 0x1B2 */ u16 field_0x1b2;
/* 0x1B0 */ u16 mRupeeNum;
/* 0x1B2 */ u16 mKeyNum;
/* 0x1B4 */ u16 field_0x1b4;
/* 0x1B6 */ u16 mSubContentsStringType;
/* 0x1B8 */ u16 field_0x1b8[5];
/* 0x1C2 */ u8 field_0x1c2;
/* 0x1C3 */ u8 field_0x1c3;
/* 0x1C2 */ u8 mLightDropNum;
/* 0x1C3 */ u8 mNeedLightDropNum;
/* 0x1C4 */ u8 field_0x1c4;
/* 0x1C5 */ u8 field_0x1c5;
/* 0x1C6 */ u8 field_0x1c6;
@@ -123,8 +125,8 @@ private:
/* 0x1D2 */ u8 field_0x1d2[4];
/* 0x1D6 */ u8 field_0x1d6[2];
/* 0x1D8 */ u8 field_0x1d8[2];
/* 0x1DA */ u8 field_0x1da;
/* 0x1DB */ u8 field_0x1db;
/* 0x1DA */ u8 mArrowNum;
/* 0x1DB */ u8 mPachinkoNum;
/* 0x1DC */ u8 field_0x1dc;
/* 0x1DD */ u8 field_0x1dd;
/* 0x1DE */ u8 field_0x1de;
@@ -144,10 +146,10 @@ private:
/* 0x1EC */ u8 field_0x1ec;
/* 0x1ED */ u8 field_0x1ed;
/* 0x1EE */ u8 field_0x1ee;
/* 0x1EF */ u8 field_0x1ef[4];
/* 0x1F3 */ u8 field_0x1f3[3];
/* 0x1F6 */ u8 field_0x1f6[3];
/* 0x1F9 */ u8 field_0x1f9[4];
/* 0x1EF */ u8 mBottleNum[4];
/* 0x1F3 */ u8 mBombNum[3];
/* 0x1F6 */ u8 mBombMax[3];
/* 0x1F9 */ u8 mItemMaxNum[4];
/* 0x1FD */ u8 field_0x1fd;
/* 0x1FE */ u8 field_0x1fe;
/* 0x1FF */ u8 field_0x1ff;
@@ -155,4 +157,6 @@ private:
/* 0x201 */ u8 field_0x201;
};
typedef int (*dMeter2_Method)(dMeter2_c*);
#endif /* D_METER_D_METER2_H */
+35 -5
View File
@@ -51,7 +51,7 @@ public:
/* 80215A94 */ void setAlphaOxygenAnimeMax();
/* 80215B18 */ void drawLightDrop(u8, u8, f32, f32, f32, f32, u8);
/* 80215DA4 */ void setAlphaLightDropChange(bool);
/* 80215DA8 */ void getNowLightDropRateCalc();
/* 80215DA8 */ f32 getNowLightDropRateCalc();
/* 80215E40 */ void setAlphaLightDropAnimeMin();
/* 80215F88 */ void setAlphaLightDropAnimeMax();
/* 8021632C */ void drawRupee(s16);
@@ -114,6 +114,8 @@ public:
/* 802102F8 */ virtual ~dMeter2Draw_c();
J2DScreen* getMainScreenPtr() { return mpScreen; }
private:
/* 0x004 */ f32 field_0x4;
/* 0x008 */ f32 field_0x8;
@@ -210,9 +212,9 @@ private:
/* 0x518 */ J2DPicture* mpItemXYPane[3];
/* 0x524 */ int field_0x524[2][2];
/* 0x534 */ u8 field_0x534[8];
/* 0x53C */ void* field_0x53c;
/* 0x540 */ J2DAnmBase* field_0x540; // bpk
/* 0x544 */ J2DAnmBase* field_0x544; // bpk
/* 0x53C */ J2DAnmColorKey* field_0x53c;
/* 0x540 */ J2DAnmColorKey* field_0x540;
/* 0x544 */ J2DAnmColorKey* field_0x544;
/* 0x548 */ u8 field_0x548[8];
/* 0x550 */ f32 field_0x550;
/* 0x554 */ f32 field_0x554;
@@ -227,7 +229,35 @@ private:
/* 0x578 */ f32 field_0x578;
/* 0x57C */ f32 field_0x57c;
/* 0x580 */ f32 field_0x580;
/* 0x584 */ u8 field_0x584[0x78];
/* 0x584 */ f32 field_0x584;
/* 0x588 */ f32 field_0x588;
/* 0x58C */ f32 field_0x58c;
/* 0x590 */ f32 field_0x590;
/* 0x594 */ f32 field_0x594;
/* 0x598 */ f32 field_0x598;
/* 0x59C */ f32 field_0x59c;
/* 0x5A0 */ f32 field_0x5a0;
/* 0x5A4 */ f32 field_0x5a4;
/* 0x5A8 */ f32 field_0x5a8;
/* 0x5AC */ f32 field_0x5ac;
/* 0x5B0 */ f32 field_0x5b0;
/* 0x5B4 */ f32 field_0x5b4;
/* 0x5B8 */ f32 field_0x5b8;
/* 0x5BC */ f32 field_0x5bc;
/* 0x5C0 */ f32 field_0x5c0;
/* 0x5C4 */ f32 field_0x5c4;
/* 0x5C8 */ f32 field_0x5c8;
/* 0x5CC */ f32 field_0x5cc;
/* 0x5D0 */ f32 field_0x5d0;
/* 0x5D4 */ f32 field_0x5d4;
/* 0x5D8 */ f32 field_0x5d8;
/* 0x5DC */ f32 field_0x5dc;
/* 0x5E0 */ f32 field_0x5e0;
/* 0x5E4 */ f32 field_0x5e4;
/* 0x5E8 */ f32 field_0x5e8;
/* 0x5EC */ f32 field_0x5ec;
/* 0x5F0 */ f32 field_0x5f0;
/* 0x5F4 */ u8 field_0x5f4[0x8];
/* 0x5FC */ f32 field_0x5fc[3];
/* 0x608 */ f32 field_0x608;
/* 0x60C */ f32 field_0x60c;
+70 -8
View File
@@ -10,13 +10,6 @@
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
struct dMsgObject_c {
/* 802384C4 */ static void setLetterNameID(u16);
/* 802379AC */ void setKillMessageFlag();
/* 8023822C */ void getStatus();
/* 802371E4 */ void isPlaceMessage();
};
struct JMSMesgEntry_c {
/* 0x00 */ u32 mStringOffset;
/* 0x04 */ u16 mStringId;
@@ -129,8 +122,20 @@ public:
const char* getWarpStageName() { return mWarpInfo.mStageName; }
void setNowCount(u8 count) { mNowCount = count; }
void setMaxCount(u8 count) { mMaxCount = count; }
void allUseButton() { mUseButton = -1; }
bool isUseButton(int param_0) { return param_0 & mUseButton; }
void setMeterMapClass(dMeterMap_c* p_map) { mMeterMap = p_map; }
void resetGameStatus() { mGameStatus = 0; }
void setMapStatus(u8 status) { mMapStatus = status; }
u8 getMapStatus() { return mMapStatus; }
void setPauseStatus(u8 status) { mPauseStatus = status; }
void resetPauseStatus() { mPauseStatus = 0; }
u8 getPauseStatus() { return mPauseStatus; }
bool isGameStatus(int status) { return mGameStatus & status; }
void setMapKeyDirection(u16 direction) { mMapKeyDirection = direction; }
bool isSub2DStatus(int flag) { return mSub2DStatus & (1 << flag); }
private:
public:
/* 0x04 */ u8 unk4[4];
/* 0x08 */ u64 unk8;
/* 0x10 */ void* mMsgResource;
@@ -216,6 +221,7 @@ private:
extern dMeter2Info_c g_meter2_info;
void dMeter2Info_setSword(u8, bool);
void dMeter2Info_set2DVibration();
inline void dMeter2Info_Initialize() {
g_meter2_info.init();
@@ -277,4 +283,60 @@ inline void dMeter2Info_setMaxCount(u8 count) {
g_meter2_info.setMaxCount(count);
}
inline bool dMeter2Info_isDirectUseItem(int param_0) {
return g_meter2_info.isDirectUseItem(param_0);
}
inline bool dMeter2Info_isUseButton(int param_0) {
return g_meter2_info.isUseButton(param_0);
}
inline void dMeter2Info_setMeterMapClass(dMeterMap_c* p_map) {
g_meter2_info.setMeterMapClass(p_map);
}
inline void dMeter2Info_decHotSpringTimer() {
g_meter2_info.decHotSpringTimer();
}
inline void dMeter2Info_allUseButton() {
g_meter2_info.allUseButton();
}
inline void dMeter2Info_resetGameStatus() {
g_meter2_info.resetGameStatus();
}
inline void dMeter2Info_setMapStatus(u8 status) {
g_meter2_info.setMapStatus(status);
}
inline u8 dMeter2Info_getMapStatus() {
return g_meter2_info.getMapStatus();
}
inline void dMeter2Info_setPauseStatus(u8 status) {
g_meter2_info.setPauseStatus(status);
}
inline void dMeter2Info_resetPauseStatus() {
g_meter2_info.resetPauseStatus();
}
inline u8 dMeter2Info_getPauseStatus() {
return g_meter2_info.getPauseStatus();
}
inline bool dMeter2Info_isGameStatus(int status) {
return g_meter2_info.isGameStatus(status);
}
inline void dMeter2Info_setMapKeyDirection(u16 direction) {
g_meter2_info.setMapKeyDirection(direction);
}
inline bool dMeter2Info_isSub2DStatus(int flag) {
return g_meter2_info.isSub2DStatus(flag);
}
#endif /* D_METER_D_METER2_INFO_H */
+6
View File
@@ -1380,4 +1380,10 @@ public:
STATIC_ASSERT(sizeof(dMeter_cursorHIO_c) == 68);
extern dMeter_menuHIO_c g_menuHIO;
extern dMeter_drawHIO_c g_drawHIO;
extern dMeter_ringHIO_c g_ringHIO;
extern dMeter_fmapHIO_c g_fmapHIO;
extern dMeter_cursorHIO_c g_cursorHIO;
#endif /* D_METER_D_METER_HIO_H */
+155 -17
View File
@@ -1,38 +1,176 @@
#ifndef D_METER_D_METER_MAP_H
#define D_METER_D_METER_MAP_H
#include "JSystem/J2DGraph/J2DPicture.h"
#include "JSystem/J2DGraph/J2DScreen.h"
#include "d/map/d_map_path_dmap.h"
#include "dolphin/types.h"
class dMeterMap_c {
// move renderingAmap_c + dMap_c later
class renderingAmap_c : public renderingPlusDoorAndCursor_c {
public:
/* 8020D49C */ void isEnableDispMap();
/* 8020D528 */ void getMapDispSizeTypeNo();
/* 8020D650 */ void isEnableDispMapAndMapDispSizeTypeNo();
/* 8020D690 */ void getMapDispEdgeBottomY_Layout();
/* 8020D698 */ void isEventRunCheck();
/* 8020D72C */ void getMapDispEdgeLeftX_Layout();
/* 8020D75C */ void getMapDispEdgeTop();
/* 8020D7E4 */ bool getDispPosInside_OffsetX();
/* 8020D7EC */ void getDispPosOutSide_OffsetX();
/* 800288C4 */ void getDispType() const;
/* 80028BB4 */ void isDrawOutSideTrim();
/* 80028C4C */ void getOutSideBlackLineNumber();
/* 80028C60 */ void isOutSideBlackLine();
/* 80028C90 */ void getLineWidthSub(int);
/* 80029160 */ void getStayType() const;
/* 8002AE6C */ renderingAmap_c();
/* 800284D0 */ virtual void draw();
/* 8002ADB0 */ virtual ~renderingAmap_c();
/* 80028EE4 */ virtual void getLineColor(int, int);
/* 80028DD4 */ virtual void getLineWidth(int);
/* 80028A10 */ virtual void drawPath();
/* 80028A30 */ virtual void rendering(dDrawPath_c::line_class const*);
/* 80028B3C */ virtual void rendering(dDrawPath_c::poly_class const*);
/* 800289F0 */ virtual void rendering(dDrawPath_c::room_class const*);
/* 80028960 */ virtual void beforeDrawPath();
/* 800289D0 */ virtual void afterDrawPath();
/* 80028FB4 */ virtual void getDecoLineColor(int, int);
/* 80028CF4 */ virtual void getDecorationLineWidth(int);
/* 80029058 */ virtual void getIconGroupNumber(u8) const;
/* 80029078 */ virtual void hasMap() const;
/* 8002911C */ virtual void isRendAllRoom() const;
/* 800290C0 */ virtual void isRendDoor() const;
/* 80029104 */ virtual bool isCheckFloor() const;
/* 80029190 */ virtual void isDrawIconSingle2(dTres_c::data_s const*, bool, bool, int) const;
/* 8002910C */ virtual bool isRendRestart() const;
/* 80029114 */ virtual bool isRendCursor() const;
/* 8002B000 */ virtual bool isRendIcon() const;
/* 800284BC */ virtual void getIconSize(u8) const;
/* 80028B04 */ virtual void getPlayerCursorSize();
/* 80028B10 */ virtual void getRestartCursorSize();
virtual void setAmapPaletteColor(int, u8, u8, u8, u8) = 0;
virtual bool isSpecialOutline() = 0;
private:
/* 0x34 */ s32 m_outSideBlackLineCnt;
/* 0x38 */ s32 field_0x38;
/* 0x3C */ s32 field_0x3c;
}; // Size: 0x40
class dMap_c : public renderingAmap_c {
public:
/* 8002974C */ void copyPalette();
/* 8002A064 */ void copyPalette(int, int, f32);
/* 80029F84 */ void setMapPaletteColorAlphaPer(int, f32);
/* 800297A8 */ void setMapPaletteColorAlphaPer(int, int, f32);
/* 80029818 */ void resCopy();
/* 80029874 */ dMap_c(int, int, int, int);
/* 80029A1C */ void _remove();
/* 80029A8C */ void getMapMinMaxXZ(int, f32*, f32*, f32*, f32*);
/* 80029C10 */ void getPack(int, f32*, f32*);
/* 80029D78 */ void calcMapCenterXZ(int, f32*, f32*);
/* 80029E1C */ void calcMapCmPerTexel(int, f32*);
/* 8002A1BC */ void getDispType() const;
/* 8002A32C */ void _move(f32, f32, int, f32);
/* 8002AB54 */ void _draw();
/* 8002AF20 */ virtual ~dMap_c();
/* 800296EC */ virtual void isDrawType(int);
/* 80028DF4 */ virtual void getColor(int);
/* 800296F8 */ virtual void isRendAllRoom() const;
/* 8002A254 */ virtual void getRoomNoSingle();
/* 8002A1DC */ virtual void isDrawRoom(int, int) const;
/* 8002A294 */ virtual void isDrawRoomIcon(int, int) const;
/* 80029038 */ virtual void getIconPosition(dTres_c::typeGroupData_c*) const;
/* 8002ABAC */ virtual void getFirstData(u8);
/* 8002ABCC */ virtual void getNextData(dTres_c::typeGroupData_c*);
/* 8002A148 */ virtual void setAmapPaletteColor(int, u8, u8, u8, u8);
/* 80029744 */ virtual bool isSpecialOutline();
bool isDraw() const { return renderingDAmap_c::isDraw(); }
ResTIMG* getResTIMGPointer() { return mResTIMG; }
f32 getTopEdgePlus() { return mTopEdgePlus; }
f32 getPackPlusZ() { return mPackPlusZ; }
f32 getPackZ() { return mPackZ; }
f32 getTexelPerCm() { return 1.0f / field_0x58; }
u16 getTexSizeY() { return mTexSizeH; }
f32 getRightEdgePlus() { return mRightEdgePlus; }
f32 getPackX() { return mPackX; }
private:
/* 0x40 */ u8* m_res_src;
/* 0x44 */ u8* m_res;
/* 0x48 */ ResTIMG* mResTIMG;
/* 0x4C */ u8* mImage_p;
/* 0x50 */ f32 mCenterX;
/* 0x54 */ f32 mCenterZ;
/* 0x58 */ f32 field_0x58;
/* 0x5C */ f32 mPackX;
/* 0x60 */ f32 mPackZ;
/* 0x64 */ f32 field_0x64;
/* 0x68 */ f32 mPackPlusZ;
/* 0x6C */ f32 mRightEdgePlus;
/* 0x70 */ f32 mTopEdgePlus;
/* 0x74 */ int field_0x74;
/* 0x78 */ u16 mTexSizeW;
/* 0x7A */ u16 mTexSizeH;
/* 0x7C */ s32 mStayRoomNo;
/* 0x80 */ int field_0x80;
/* 0x84 */ int field_0x84;
/* 0x88 */ int field_0x88;
/* 0x8C */ u8 field_0x8c;
/* 0x8D */ u8 field_0x8d;
/* 0x8E */ u8 field_0x8e;
/* 0x8F */ u8 field_0x8f;
/* 0x90 */ u8 field_0x90;
}; // Size: 0x94
class dMeterMap_c : public dDlst_base_c {
public:
/* 8020D49C */ static bool isEnableDispMap();
/* 8020D528 */ static int getMapDispSizeTypeNo();
/* 8020D650 */ static bool isEnableDispMapAndMapDispSizeTypeNo();
/* 8020D690 */ f32 getMapDispEdgeBottomY_Layout();
/* 8020D698 */ bool isEventRunCheck();
/* 8020D72C */ f32 getMapDispEdgeLeftX_Layout();
/* 8020D75C */ f32 getMapDispEdgeTop();
/* 8020D7E4 */ s16 getDispPosInside_OffsetX();
/* 8020D7EC */ s16 getDispPosOutSide_OffsetX();
/* 8020D874 */ void setDispPosInsideFlg_SE_On();
/* 8020D8BC */ void setDispPosOutsideFlg_SE_On();
/* 8020D8F8 */ void setMapAlpha(u8);
/* 8020D900 */ static bool isMapOpenCheck();
/* 8020D948 */ dMeterMap_c(J2DScreen*);
/* 8020D990 */ ~dMeterMap_c();
/* 8020D9EC */ void _create(J2DScreen*);
/* 8020DC50 */ void _delete();
/* 8020DCE4 */ void _move(u32);
/* 8020DF1C */ void _draw();
/* 8020DF68 */ void draw();
/* 8020E070 */ void ctrlShowMap();
/* 8020E45C */ void checkMoveStatus();
/* 8020E4C8 */ void isShow(u32);
/* 8020E620 */ void isFmapScreen();
/* 8020E70C */ void isDmapScreen();
/* 8020E754 */ void meter_map_move(u32);
/* 8020E45C */ u8 checkMoveStatus();
/* 8020E4C8 */ static bool isShow(u32);
/* 8020E620 */ static bool isFmapScreen();
/* 8020E70C */ static bool isDmapScreen();
/* 8020E754 */ static void meter_map_move(u32);
/* 8020E9CC */ void keyCheck();
/* 8020DF68 */ virtual void draw();
/* 8020D990 */ virtual ~dMeterMap_c();
bool isDispPosInsideFlg() { return field_0x2d != 0; }
enum { MAP_SIZE_TYPE_BIG = 2, MAP_SIZE_TYPE_SMALL = 3, MAP_SIZE_TYPE_STAGE = 7 };
private:
/* 0x04 */ J2DPicture* mMapJ2DPicture;
/* 0x08 */ dMap_c* mMap;
/* 0x0C */ s32 mIsCompass;
/* 0x10 */ s32 mIsMap;
/* 0x14 */ u32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 mSizeW;
/* 0x24 */ f32 mSizeH;
/* 0x28 */ s16 field_0x28;
/* 0x2A */ u8 field_0x2a;
/* 0x2B */ u8 field_0x2b;
/* 0x2C */ u8 mMapAlpha;
/* 0x2D */ u8 field_0x2d;
/* 0x2E */ u8 field_0x2e;
/* 0x30 */ int field_0x30;
};
#endif /* D_METER_D_METER_MAP_H */
+156
View File
@@ -1,6 +1,162 @@
#ifndef D_MSG_D_MSG_OBJECT_H
#define D_MSG_D_MSG_OBJECT_H
#include "JSystem/J2DGraph/J2DTextbox.h"
#include "d/com/d_com_inf_game.h"
#include "dolphin/types.h"
class msg_class;
class COutFont_c;
class dMsgObject_c {
public:
/* 80233284 */ void _create(msg_class*);
/* 80233590 */ void _execute();
/* 802339BC */ void _draw();
/* 80233AE8 */ void _delete();
/* 80233D04 */ void setMessageIndex(u32, u32, bool);
/* 80233E70 */ void setMessageIndexDemo(u32, bool);
/* 80233F84 */ void getMessageIndex(u32);
/* 80233FD8 */ void getRevoMessageIndex(u32);
/* 802340D4 */ void getMessageIndexAlways(u32);
/* 80234128 */ void getMessageIDAlways(u32);
/* 8023413C */ void getMessageGroup(u32);
/* 80234150 */ void waitProc();
/* 80234318 */ void openProc();
/* 802349D8 */ void outnowProc();
/* 80234CCC */ void outwaitProc();
/* 80234FF0 */ void stopProc();
/* 80234FF4 */ void continueProc();
/* 8023531C */ void selectProc();
/* 8023587C */ void selectEndProc();
/* 802358D4 */ void inputProc();
/* 80235AD4 */ void finishProc();
/* 80235CC0 */ void endProc();
/* 80235EBC */ void deleteProc();
/* 8023609C */ void textmodeProc();
/* 802360A0 */ void talkStartInit();
/* 8023670C */ void fukiPosCalc(bool);
/* 802368E4 */ void setStatusLocal(u16);
/* 802368F8 */ void getStatusLocal();
/* 8023690C */ void delete_screen(bool);
/* 802369D8 */ void isSend();
/* 80236BF8 */ void readMessageGroupLocal(mDoDvdThd_mountXArchive_c**);
/* 80236C90 */ void changeFlowGroupLocal(s32);
/* 80236CD4 */ void demoMessageGroupLocal();
/* 80236D00 */ void endFlowGroupLocal();
/* 80236D0C */ void changeGroupLocal(s16);
/* 80236DE4 */ void getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*,
char*, char*, s16*);
/* 802370A8 */ void isGetItemMessage();
/* 802370BC */ void isKanbanMessage();
/* 802370E8 */ void isHowlMessage();
/* 802370FC */ void isMidonaMessage();
/* 80237138 */ void isMidonaNormalTalkWait();
/* 802371B0 */ void isMidonaTalkWait();
/* 802371E4 */ void isPlaceMessage();
/* 802371F8 */ void isBossMessage();
/* 8023720C */ bool isBookMessage();
/* 80237214 */ void isStaffMessage();
/* 80237228 */ void isSaveMessage();
/* 8023723C */ void isTalkMessage();
/* 802372CC */ void getSmellName();
/* 80237334 */ void getPortalName();
/* 8023738C */ void getBombName();
/* 8023741C */ void getInsectName();
/* 80237478 */ void getLetterName();
/* 802374D0 */ void getSelectBombNum();
/* 80237520 */ void onMsgSendControlLocal();
/* 80237530 */ void offMsgSendControlLocal();
/* 80237550 */ void isMsgSendControlLocal();
/* 8023755C */ void onMsgSendLocal();
/* 8023756C */ void offMsgSendLocal();
/* 8023757C */ void isMsgSendLocal();
/* 80237588 */ void isMouthCheckLocal();
/* 8023759C */ void getBombBuyPriceLocal(u8);
/* 802375E4 */ void addSelectBomBag(u8);
/* 80237610 */ void resetSelectBomBag();
/* 8023763C */ void getSelectBombBagIDLocal();
/* 8023768C */ void getSelectBombPriceLocal();
/* 8023773C */ void setEquipBombInfoLocal();
/* 80237748 */ void updateEquipBombInfoLocal();
/* 802378B8 */ void setShopWaitTimer(u8);
/* 802378CC */ void setSelectWordFlagLocal(u8);
/* 802378D4 */ void isHowlHearingModeLocal();
/* 80237934 */ void isCameraCancelFlag();
/* 80237950 */ void onCameraCancelFlag();
/* 80237968 */ void offCameraCancelFlag();
/* 80237980 */ void isKillMessageFlag();
/* 80237994 */ void onKillMessageFlag();
/* 802379AC */ void setKillMessageFlag();
/* 802379D8 */ void setKillMessageFlagLocal();
/* 80237A74 */ void setTalkPartner(fopAc_ac_c*);
/* 80237A88 */ void setNowTalkFlowNo(s16);
/* 80237A9C */ void getNowTalkFlowNo();
/* 80237AB0 */ void setDemoMessage(u32);
/* 80237AE0 */ void setTalkHeap(void*);
/* 80237B10 */ void setTalkHeapLocal(void*);
/* 80237B54 */ void getTalkHeap();
/* 80237B68 */ void isDraw();
/* 80237BFC */ void setButtonStatusLocal();
/* 80237D88 */ void setDemoMessageLocal(u32);
/* 80237DD8 */ void getSmellTypeMessageIDLocal();
/* 80237E04 */ void setSmellTypeLocal(u8);
/* 80237E58 */ void getSelectCursorPosLocal();
/* 80237E68 */ void setSelectCursorPosLocal(u8);
/* 80237F10 */ void setTalkActorLocal(fopAc_ac_c*);
/* 8023800C */ void readMessageGroup(mDoDvdThd_mountXArchive_c**);
/* 8023803C */ void changeFlowGroup(s32);
/* 8023806C */ void demoMessageGroup();
/* 80238098 */ void endFlowGroup();
/* 802380C4 */ void changeGroup(s16);
/* 802380F4 */ void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*,
char*, char*, s16*);
/* 80238174 */ void getMsgDtPtr();
/* 80238188 */ void setProcessID(unsigned int);
/* 8023819C */ void getActor();
/* 802381C0 */ void getpTalkActor();
/* 802381D4 */ void getIdx();
/* 802381E8 */ void getNodeIdx();
/* 802381FC */ void setStatus(u16);
/* 8023822C */ static u16 getStatus();
/* 80238258 */ void getScrnDrawPtr();
/* 8023826C */ void setTalkActor(fopAc_ac_c*);
/* 8023829C */ void onMsgSendControl();
/* 802382C8 */ void offMsgSendControl();
/* 802382F4 */ void isMsgSendControl();
/* 80238320 */ void onMsgSend();
/* 8023834C */ void offMsgSend();
/* 80238378 */ void isMsgSend();
/* 802383A4 */ void isMouthCheck();
/* 802383D0 */ void getMessageID();
/* 802383E4 */ void getSmellTypeMessageID();
/* 80238410 */ void setSmellType(u8);
/* 80238440 */ void getSelectCursorPos();
/* 8023846C */ void setSelectCursorPos(u8);
/* 8023849C */ void setPortalMessageID(u16);
/* 802384B0 */ void setInsectItemNo(u8);
/* 802384C4 */ static void setLetterNameID(u16);
/* 802384D8 */ void setArrowNum(u8);
/* 802384EC */ void setMsgOutputType(u8);
/* 80238500 */ void getMsgOutputType();
/* 80238514 */ void getWord();
/* 80238528 */ void getSelectWord(int);
/* 80238544 */ void setSelectWordFlag(u8);
/* 80238574 */ void getSelectWordFlag();
/* 80238588 */ void isHowlHearingMode();
/* 802385B4 */ void getSelectBombBagID();
/* 802385E0 */ void getSelectBombPrice();
/* 8023860C */ void setEquipBombInfo();
/* 80238638 */ void getItemEquipButton();
/* 8023864C */ void setSelectCancelPos(u8);
};
inline dMsgObject_c* dMsgObject_getMsgObjectClass() {
return dComIfGp_getMsgObjectClass();
}
inline bool dMsgObject_isTalkNowCheck() {
return dMsgObject_getMsgObjectClass()->getStatus() != 1 ? true : false;
}
#endif /* D_MSG_D_MSG_OBJECT_H */
+6
View File
@@ -47,6 +47,12 @@ public:
f32 getInitCenterPosY() { return mInitPos.y + mInitSize.y * 0.5f; }
f32 getInitSizeX() { return mInitSize.x; }
f32 getInitSizeY() { return mInitSize.y; }
f32 getInitPosX() { return mInitPos.x; }
f32 getInitPosY() { return mInitPos.y; }
private:
/* 0x1C */ void* mpFirstStackSize;
/* 0x20 */ void* field_0x20;
+5 -1
View File
@@ -371,6 +371,9 @@ public:
u16& getLife() { return mLife; }
u16& getRupee() { return mRupee; }
u16& getOil() { return mOil; }
u16& getMaxOil() { return mMaxOil; }
u8& getMagic() { return mMagic; }
u8& getMaxMagic() { return mMaxMagic; }
u8 getSelectEquip(int item) const { return mSelectEquip[item]; }
void setOil(u16 oil) { mOil = oil; }
void setMaxOil(u16 max) { mMaxOil = max; }
@@ -765,6 +768,7 @@ public:
void onDungeonItemMap() { onDungeonItem(MAP); }
s32 isDungeonItemMap() const { return isDungeonItem(MAP); }
void onDungeonItemCompass() { onDungeonItem(COMPASS); }
s32 isDungeonItemCompass() const { return isDungeonItem(COMPASS); }
void onDungeonItemWarp() { onDungeonItem(OOCCOO_NOTE); }
void onDungeonItemBossKey() { onDungeonItem(BOSS_KEY); }
s32 isDungeonItemBossKey() const { return isDungeonItem(BOSS_KEY); }
@@ -1001,7 +1005,7 @@ public:
BOOL isActor(int, int) const;
int memory_to_card(char*, int);
int card_to_memory(char*, int);
void initdata_to_card(char*, int);
int initdata_to_card(char*, int);
dSv_save_c& getSavedata() { return mSavedata; }
dSv_memory_c& getMemory() { return mMemory; }
+6
View File
@@ -922,7 +922,13 @@ inline void GXColor1u32(u32 c) {
GFX_FIFO(u32) = c;
}
inline void GXTexCoord2f32(f32 s, f32 t) {
GFX_FIFO(f32) = s;
GFX_FIFO(f32) = t;
}
inline void GXEnd() {}
};
#endif
+38 -1
View File
@@ -205,6 +205,43 @@ void LCDisable(void);
void OSReportInit__Fv(void); // needed for inline asm
u8* OSGetStackPointer(void);
inline s16 __OSf32tos16(register f32 inF) {
register s16 out;
u32 tmp;
register u32* tmpPtr = &tmp;
// clang-format off
asm {
psq_st inF, 0(tmpPtr), 0x1, 5
lha out, 0(tmpPtr)
}
// clang-format on
return out;
}
inline void OSf32tos16(f32* f, s16* out) {
*out = __OSf32tos16(*f);
}
inline u8 __OSf32tou8(register f32 inF) {
register u8 out;
u32 tmp;
register u32* tmpPtr = &tmp;
// clang-format off
asm {
psq_st inF, 0(tmpPtr), 0x1, 2
lbz out, 0(tmpPtr)
}
// clang-format on
return out;
}
inline void OSf32tou8(f32* f, u8* out) {
*out = __OSf32tou8(*f);
}
}; // extern "C"
void OSSwitchFiberEx(u32, u32, u32, u32, u32, u32);
@@ -304,4 +341,4 @@ inline void* OSPhysicalToCached(u32 offset) {
return (void*)(offset + 0x80000000);
}
#endif
#endif
+2
View File
@@ -50,6 +50,8 @@ public:
}; // Size = 0x18
struct actor_place {
/* 807E2468 */ void operator=(actor_place const&);
cXyz mPosition;
csXyz mAngle;
s8 mRoomNo;
+1 -1
View File
@@ -23,7 +23,7 @@ typedef struct leafdraw_class {
typedef struct leaf_process_profile_definition {
/* 0x00 */ process_profile_definition mBase;
/* 0x1C */ leafdraw_method_class* mLfDrwMth;
/* 0x20 */ s16 unk20;
/* 0x20 */ s16 mPriority;
/* 0x22 */ u8 unk22[2];
/* 0x24 */ s32 unk24;
} leaf_process_profile_definition;
+2
View File
@@ -19,6 +19,8 @@ typedef struct process_profile_definition {
s32 mParameters;
} process_profile_definition;
#define LAYER_DEFAULT (-2)
process_profile_definition* fpcPf_Get(s16 profileID);
extern process_profile_definition** g_fpcPf_ProfileList_p;
+10
View File
@@ -18,6 +18,15 @@ private:
/* 0x0 */ J3DFrameCtrl mFrameCtrl;
}; // Size: 0x14
class mDoExt_transAnmBas : public J3DAnmTransformKey {
public:
mDoExt_transAnmBas(void* bas) { mBas = bas; }
virtual ~mDoExt_transAnmBas();
private:
/* 0x28 */ void* mBas;
};
class mDoExt_btkAnm : public mDoExt_baseAnm {
public:
mDoExt_btkAnm(void) { mBtkAnm = 0; }
@@ -165,6 +174,7 @@ JKRExpHeap* mDoExt_getHostIOHeap();
JKRSolidHeap* mDoExt_createSolidHeapToCurrent(JKRHeap**, u32, JKRHeap*, u32);
JKRSolidHeap* mDoExt_createSolidHeapToCurrent(u32, JKRHeap*, u32);
JKRSolidHeap* mDoExt_createSolidHeapFromGameToCurrent(u32, u32);
JKRSolidHeap* mDoExt_createSolidHeapFromGameToCurrent(JKRHeap**, u32, u32);
JKRHeap* mDoExt_getCurrentHeap();
extern JKRExpHeap* zeldaHeap;
+1
View File
@@ -15,6 +15,7 @@ void mDoMtx_ZrotS(Mtx, s16);
void mDoMtx_YrotS(Mtx, s16);
void mDoMtx_XrotS(Mtx, s16);
void mDoMtx_YrotM(Mtx, s16);
void mDoMtx_MtxToRot(MtxP, csXyz*);
class mDoMtx_stack_c {
public:
+214
View File
@@ -1,6 +1,220 @@
#ifndef D_A_HORSE_H
#define D_A_HORSE_H
#include "Z2AudioLib/Z2Creature.h"
#include "d/bg/d_bg_s.h"
#include "d/cc/d_cc_d.h"
#include "d/msg/d_msg_flow.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
class daHorseRein_c {
public:
/* 80837F2C */ void setReinPos(int);
/* 808383A8 */ void setReinPosPart(int);
/* 80844FB0 */ ~daHorseRein_c();
/* 80844FEC */ daHorseRein_c();
private:
/* 0x00 */ cXyz* field_0x0[2];
/* 0x08 */ int field_0x8[2];
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ cXyz field_0x1c;
}; // Size: 0x28
class daHorseFootData_c {
public:
/* 80844F70 */ ~daHorseFootData_c();
/* 80844FAC */ daHorseFootData_c();
private:
/* 0x0 */ u8 field_0x0[0xE4];
}; // Size: 0xE4
class daHorse_c : public fopAc_ac_c {
public:
enum daHorse_ERFLG0 {
/* 0x010 */ MOVE_ACCEPT = 0x10,
/* 0x080 */ RIDE_RUN_FLG = 0x80,
/* 0x100 */ CUT_TURN_CANCEL = 0x100,
};
enum daHorse_RFLG0 {
/* 0x02 */ ENEMY_SEARCH = 2,
/* 0x08 */ LASH_DASH_START = 8,
/* 0x10 */ TURN_STAND = 0x10,
/* 0x40 */ TURN_STAND_CAMERA = 0x40,
};
enum daHorse_FLG0 {
/* 0x00000020 */ RODEO_LEFT = 0x20,
/* 0x00000040 */ RIDE_START_FLG = 0x40,
/* 0x00010000 */ PLAYER_BACK_RIDE_LASH = 0x10000,
/* 0x20000000 */ TURN_CANCEL_KEEP = 0x20000000,
/* 0x80000000 */ RODEO_MODE = 0x80000000
};
fopAc_ac_c* getZeldaActor();
/* 807E27BC */ void cancelOriginalDemo();
/* 807E27F8 */ void onDemoJumpDistance(f32, f32);
/* 807E28B8 */ void changeDemoPos0(cXyz const*);
/* 807E28D4 */ void changeDemoMode(u32, int);
/* 807E28E0 */ void setHorsePosAndAngle(cXyz const*, s16);
/* 807E2964 */ void changeOriginalDemo();
/* 80838498 */ void coHitCallbackBoarJump(fopAc_ac_c*);
/* 80838798 */ void coHitCallbackBoarHit(fopAc_ac_c*, dCcD_GObjInf*);
/* 80838904 */ void coHitCallbackCowHit(fopAc_ac_c*);
/* 80838B78 */ void modelCallBack(int);
/* 80838F98 */ void createHeap();
/* 8083940C */ void checkEnding();
/* 80839498 */ void create();
/* 80839D1C */ void setBasAnime(int);
/* 80839EBC */ void resetBasAnime();
/* 80839ED4 */ void setDoubleAnime(f32, f32, f32, u16, u16, f32);
/* 8083A20C */ void setSingleAnime(u16, f32, f32, s16, f32, int);
/* 8083A3C4 */ void animePlay();
/* 8083A5AC */ void checkDemoAction();
/* 8083A890 */ void setStickRodeoMove();
/* 8083AC7C */ void setStickCallMove();
/* 8083ACEC */ void setDemoMoveData(u32*, cXyz const*);
/* 8083AEC0 */ void setDemoData();
/* 8083B578 */ void acceptPlayerRide();
/* 8083B600 */ void setStickData();
/* 8083B828 */ void setTurnStartVibration();
/* 8083B82C */ void setTurnVibration();
/* 8083B830 */ void setMoveAnime(f32);
/* 8083BF48 */ void checkHorseNoMove(int);
/* 8083CA80 */ void checkTurnPlayerState();
/* 8083CB38 */ void setSpeedAndAngle();
/* 8083D748 */ void checkWaitTurn() const;
/* 8083D774 */ void setRoomInfo(int);
/* 8083D918 */ void setBodyPart();
/* 8083D9D8 */ void setMatrix();
/* 8083DC58 */ void setDashEffect(u32*);
/* 8083DEEC */ void setEffect();
/* 8083E4D8 */ void setCollision();
/* 8083E6E8 */ void autoGroundHit();
/* 8083E760 */ void setTailAngle();
/* 8083E8A4 */ void setNeckAngle();
/* 8083EA78 */ void copyFootMatrix();
/* 8083EB10 */ void setFootMatrix();
/* 8083ED88 */ void setLegAngle(f32, int, int, s16*);
/* 8083F3B0 */ void footBgCheck();
/* 8083F9AC */ void setReinPosMoveInit(int);
/* 8083FDAC */ void copyReinPos();
/* 8083FEB4 */ void setReinPosHandSubstance(int);
/* 8084010C */ void setReinPosNormalSubstance();
/* 808402F8 */ void bgCheck();
/* 80840714 */ void checkSpecialWallHitSubstance(cXyz const&) const;
/* 808407B0 */ void setServiceWaitTimer();
/* 80840800 */ void checkServiceWaitAnime();
/* 80840844 */ void checkTurnInput();
/* 808408F0 */ void checkTgHitTurn();
/* 808409C0 */ void checkTurnAfterFastMove(f32);
/* 80840B28 */ void setNeckAnimeMorf();
/* 80840B88 */ void setNeckAnime(u16, f32, f32, s16);
/* 80840CA4 */ void resetNeckAnime();
/* 80840CE4 */ void setLashCnt();
/* 80840FE0 */ void setTalkModeWolf();
/* 80841084 */ void setBoarHit(fopAc_ac_c*, int);
/* 8084116C */ void savePos();
/* 808411D0 */ void callHorseSubstance(cXyz const*);
/* 80841468 */ void setHorsePosAndAngleSubstance(cXyz const*, s16);
/* 808415B4 */ void checkPlayerHeavy();
/* 80841628 */ void setTgCoGrp(u32, u32);
/* 80841698 */ void onRideFlgSubstance();
/* 808416D4 */ void offRideFlgSubstance();
/* 80841708 */ void procWaitInit();
/* 808417B8 */ void procWait();
/* 80841F04 */ void procMoveInit();
/* 80841F80 */ void procMove();
/* 808423DC */ void procStopInit();
/* 808425BC */ void procStop();
/* 80842878 */ void procTurnInit(int);
/* 80842AB0 */ void procTurn();
/* 80843008 */ void procJumpInit(int);
/* 808432E0 */ void procJump();
/* 80843604 */ void procLandInit(f32, int);
/* 80843770 */ void procLand();
/* 808438AC */ void procLargeDamageInit();
/* 8084396C */ void procLargeDamage();
/* 808439C8 */ void procToolDemoInit();
/* 80843A44 */ void procToolDemo();
/* 80843BFC */ void searchSceneChangeArea(fopAc_ac_c*);
/* 80843C74 */ void execute();
/* 80844590 */ void draw();
/* 8084478C */ ~daHorse_c();
/* 80844CB0 */ daHorse_c();
bool checkNoBombProc() const { return field_0x16b4 == 0 || field_0x16b4 == 1; }
bool checkResetStateFlg0(daHorse_RFLG0 flag) { return mResetStateFlg0 & flag; }
bool checkEndResetStateFlg0(daHorse_ERFLG0 flag) { return mEndResetStateFlg0 & flag; }
bool checkStateFlg0(daHorse_FLG0 flag) { return mStateFlg0 & flag; }
static u8 const m_footJointTable[8];
static f32 const m_callLimitDistance2;
private:
/* 0x0568 */ u8 field_0x568[8];
/* 0x0570 */ J3DModel* field_0x570;
/* 0x0574 */ void* field_0x574;
/* 0x0578 */ J3DFrameCtrl field_0x578;
/* 0x058C */ int field_0x58c;
/* 0x0590 */ u8 field_0x590[4];
/* 0x0594 */ mDoExt_AnmRatioPack field_0x594[3];
/* 0x05AC */ void* field_0x5ac;
/* 0x05B0 */ daPy_frameCtrl_c field_0x5b0[3];
/* 0x05F8 */ u8 field_0x5f8[4];
/* 0x05FC */ dBgS_AcchCir field_0x5fc[3];
/* 0x06BC */ dBgS_Acch field_0x6bc;
/* 0x0894 */ dCcD_Stts field_0x894;
/* 0x08D0 */ dBgS_HorseLinChk field_0x8d0;
/* 0x0940 */ dCcD_Cyl field_0x940[3];
/* 0x0CF4 */ dCcD_Cyl field_0xcf4;
/* 0x0E30 */ dCcD_Cyl field_0xe30;
/* 0x0F6C */ dCcD_Sph field_0xf6c;
/* 0x10A4 */ Z2CreatureRide field_0x10a4;
/* 0x1140 */ u8 field_0x1140[0x10];
/* 0x1150 */ daHorseRein_c field_0x1150[3];
/* 0x11C8 */ u8 field_0x11c8[0x40];
/* 0x1208 */ dMsgFlow_c field_0x1208;
/* 0x1254 */ daPy_actorKeep_c mZeldaActorKeep;
/* 0x125C */ u8 field_0x125c[0xC8];
/* 0x1324 */ daHorseFootData_c mFootData[4];
/* 0x16B4 */ u8 field_0x16b4;
/* 0x16B5 */ u8 field_0x16b5[3];
/* 0x16B8 */ u8 field_0x16b8;
/* 0x16B9 */ u8 field_0x16b9[2];
/* 0x16BB */ u8 mRodeoPointCnt;
/* 0x16BC */ u8 field_0x16bc[0x36];
/* 0x16F2 */ s16 mAimNeckAngleY;
/* 0x16F4 */ u8 field_0x16f4[0xA];
/* 0x16FC */ s16 mDemoMoveAngle;
/* 0x16FE */ u8 field_0x16fe[4];
/* 0x1702 */ s16 field_0x1702;
/* 0x1704 */ u8 field_0x1704[2];
/* 0x1706 */ s16 mCowHitAngle;
/* 0x1708 */ s16 mCowHit;
/* 0x170A */ u8 field_0x170a[0x1E];
/* 0x1728 */ int field_0x1728;
/* 0x172C */ u8 field_0x172c[0x14];
/* 0x1740 */ u32 field_0x1740;
/* 0x1744 */ u32 mStateFlg0;
/* 0x1748 */ u32 mResetStateFlg0;
/* 0x174C */ u32 mEndResetStateFlg0;
/* 0x1750 */ f32 mMorfFrame;
/* 0x1754 */ u8 field_0x1754[0x14];
/* 0x1768 */ f32 field_0x1768;
/* 0x176C */ f32 field_0x176c;
/* 0x1770 */ f32 field_0x1770;
/* 0x1774 */ u8 field_0x1774[0x14];
/* 0x1788 */ f32 mDemoStickR;
/* 0x178C */ f32 mNormalMaxSpeedF;
/* 0x1790 */ f32 mLashMaxSpeedF;
/* 0x1794 */ u8 field_0x1794[0x30];
/* 0x17C4 */ cXyz mDemoPos0;
};
#endif /* D_A_HORSE_H */
+47
View File
@@ -1,6 +1,53 @@
#ifndef D_A_E_WB_H
#define D_A_E_WB_H
#include "Z2AudioLib/Z2Creature.h"
#include "dolphin/types.h"
#include "rel/d/a/d_a_horse/d_a_horse.h"
class e_wb_class : public fopAc_ac_c {
public:
BOOL checkWait();
void setPlayerRideNow();
void setPlayerRide();
void getOff();
BOOL checkDownDamage();
u8 checkNormalRideMode() const;
void setRunRideMode();
private:
/* 0x0568 */ u8 field_0x568[0x4C];
/* 0x05B4 */ s16 field_0x5b4;
/* 0x05B6 */ u8 unk1462[9];
/* 0x05BF */ bool field_0x5bf;
/* 0x05C0 */ u8 field_0x5c0[0x20];
/* 0x05E0 */ void* field_0x5e0;
/* 0x05E4 */ u8 field_0x5e4[8];
/* 0x05EC */ Z2CreatureRide mZ2Ride;
/* 0x0688 */ u8 unk1673[6];
/* 0x068E */ s16 field_0x68e;
/* 0x0690 */ s16 field_0x690;
/* 0x0692 */ u16 field_0x692;
/* 0x0694 */ u8 unk1684[0xc];
/* 0x06A0 */ s16 field_0x6a0;
/* 0x06A2 */ u8 field_0x6a2[0xc];
/* 0x06AE */ s16 field_0x6ae;
/* 0x06B0 */ s16 field_0x6b0;
/* 0x06B2 */ u8 field_0x6b2[0xc];
/* 0x06BE */ u16 field_0x6be;
/* 0x06C0 */ u8 field_0x6c0[0xdd];
/* 0x079D */ u8 field_0x79d;
/* 0x079E */ u8 field_0x79e[0x4e];
/* 0x07EC */ dBgS_Acch field_0x7ec;
/* 0x09C4 */ cXyz field_0x9c4;
/* 0x09D0 */ u8 field_0x9d0[0xa5f];
/* 0x142F */ u8 field_0x142f;
/* 0x1430 */ u8 field_0x1430;
/* 0x1432 */ s16 field_0x1432;
/* 0x1434 */ u8 field_0x1434[0x250];
/* 0x1684 */ f32 field_0x1684;
/* 0x1688 */ u8 field_0x1688[0x16];
/* 0x169E */ s16 field_0x169e;
};
#endif /* D_A_E_WB_H */