mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-17 06:05:35 -04:00
Merge remote-tracking branch 'Upstream/master'
This commit is contained in:
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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*);
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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); }
|
||||
};
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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*);
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -57,4 +57,8 @@ public:
|
||||
|
||||
STATIC_ASSERT(sizeof(Z2AudioMgr) == 0x138C);
|
||||
|
||||
inline Z2AudioMgr* Z2GetAudioMgr() {
|
||||
return Z2AudioMgr::getInterface();
|
||||
}
|
||||
|
||||
#endif /* Z2AUDIOMGR_H */
|
||||
|
||||
+24
-113
@@ -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,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
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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&);
|
||||
|
||||
@@ -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&);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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&);
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
@@ -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
@@ -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 */
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -172,4 +172,7 @@ private:
|
||||
/* 0x154 */ bool mPauseWindow;
|
||||
};
|
||||
|
||||
BOOL dMw_LEFT_TRIGGER();
|
||||
BOOL dMw_RIGHT_TRIGGER();
|
||||
|
||||
#endif /* D_MENU_D_MENU_WINDOW_H */
|
||||
|
||||
@@ -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
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -50,6 +50,8 @@ public:
|
||||
}; // Size = 0x18
|
||||
|
||||
struct actor_place {
|
||||
/* 807E2468 */ void operator=(actor_place const&);
|
||||
|
||||
cXyz mPosition;
|
||||
csXyz mAngle;
|
||||
s8 mRoomNo;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user