move / fix bunch of stuff (#133)

* fix some class structures / d_event wip

* d_event wip

* move gamepad stuff

* move m_Do_main

* move d_bomb / partial m_Do_reset

* format

* remove asm

* add Z2SoundID enum

* move some Z2 classes

* fix

* move more Z2 stuff

* fix fopAc_ac_c more
This commit is contained in:
TakaRikka
2021-06-12 18:22:36 -04:00
committed by GitHub
parent 5be309a186
commit 4448c08ac0
132 changed files with 6755 additions and 3217 deletions
+23
View File
@@ -1,6 +1,29 @@
#ifndef J3DSTRUCT_H
#define J3DSTRUCT_H
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/gx/GXTexture.h"
#include "dolphin/types.h"
struct J3DLightInfo {
/* 803256C4 */ void operator=(J3DLightInfo const&);
/* 0x00 */ cXyz mLightPosition;
/* 0x0C */ cXyz mLightDirection;
/* 0x18 */ _GXColor mColor;
/* 0x1C */ f32 mA0;
/* 0x20 */ f32 mA1;
/* 0x24 */ f32 mA2;
/* 0x28 */ f32 mK0;
/* 0x2C */ f32 mK1;
/* 0x30 */ f32 mK2;
}; // Size = 0x34
struct J3DLightObj {
/* 80018C0C */ J3DLightObj();
/* 0x00 */ J3DLightInfo mInfo;
/* 0x34 */ u8 field_0x34[64];
}; // Size = 0x74
#endif /* J3DSTRUCT_H */
+18 -2
View File
@@ -8,8 +8,9 @@
class JAISoundID {
public:
operator u32() const { return this->mId; }
void operator=(JAISoundID const&);
JAISoundID(u32 pId) : mId(pId) {}
JAISoundID(u32 pId);
JAISoundID(JAISoundID const& other);
@@ -62,7 +63,7 @@ public:
/* 802A26B8 */ void calc_JAISound_();
/* 802A29DC */ void initTrack_JAISound_(JASTrack*);
JAISoundID getID() const { return JAISoundID((u32)this->sound_id); }
JAISoundID getID() const;
u32 getUserData() const { return user_data; }
// TODO: do proper struct later
@@ -167,4 +168,19 @@ private:
JAISound* mSound;
};
class JAISoundHandles {
public:
JAISoundHandles(JAISoundHandle* pHandle, int param_1) {
mSoundHandle = pHandle;
field_0x04 = param_1;
};
void getHandleSoundID(JAISoundID);
void getFreeHandle();
private:
JAISoundHandle* mSoundHandle;
int field_0x04;
};
#endif /* JAISOUND_H */
+92
View File
@@ -20,6 +20,98 @@ struct TVec3<f32> {
};
*/
template <typename T>
struct TVec2 {
TVec2() {}
TVec2(T x, T y) { set(x, y); }
void set(T x, T y) {
this->x = x;
this->y = y;
}
void set(const TVec2& other) {
x = other.x;
y = other.y;
}
void setMin(const TVec2<f32>& min) {
if (min.x <= x)
x = min.x;
if (min.y <= y)
y = min.y;
}
void setMax(const TVec2<f32>& max) {
if (x <= max.x)
x = max.x;
if (y <= max.y)
y = max.y;
}
void add(const TVec2<T>& other) {
x += other.x;
y += other.y;
}
bool isAbove(const TVec2<T>& other) const {
return (other.x <= x) && (other.y <= y) ? true : false;
}
T x;
T y;
};
template <class T>
struct TBox {
TBox() : i(), f() {}
TBox(const TBox& other) : i(other.f), f(other.y) {}
T i, f;
};
// clang-format off
template<> struct TBox<TVec2<f32> > {
f32 getWidth() const { return f.x - i.x; }
f32 getHeight() const { return f.y - i.y; }
inline void operator= (const TBox<TVec2<f32> >& rhs) {
// ???
*(u32*)&i.x = *(u32*)&rhs.i.x;
*(u32*)&i.y = *(u32*)&rhs.i.y;
*(u32*)&f.x = *(u32*)&rhs.f.x;
*(u32*)&f.y = *(u32*)&rhs.f.y;
}
bool isValid() const { return f.isAbove(i); }
void addPos(const TVec2<f32>& pos) {
i.add(pos);
f.add(pos);
}
bool intersect(const TBox<TVec2<f32> >& other) {
i.setMax(other.i);
f.setMin(other.f);
return isValid();
}
TVec2<f32> i, f;
};
template <typename T>
struct TBox2 : TBox<TVec2<T> > {
TBox2() {}
TBox2(f32 x0, f32 y0, f32 x1, f32 y1) { set(x0, y0, x1, y1); }
inline const TBox2& operator=(const TBox2& rhs) { *(TBox<TVec2<T> >*)this = rhs; }
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(f32 x0, f32 y0, f32 x1, f32 y1) { i.set(x0, y0); f.set(x1, y1); }
};
// clang-format on
} // namespace JGeometry
#endif
@@ -4,32 +4,32 @@
#include "dolphin/types.h"
struct interface_of_controller_pad {
f32 mMainStickPosX;
f32 mMainStickPosY;
f32 mMainStickValue;
s16 mMainStickAngle;
u8 field_0xe;
u8 field_0xf;
f32 mCStickPosX;
f32 mCStickPosY;
f32 mCStickValue;
s16 mCStickAngle;
u8 field_0x1e;
u8 field_0x1f;
f32 mAnalogA;
f32 mAnalogB;
f32 mTriggerLeft;
f32 mTriggerRight;
u32 mButtonFlags;
u32 mPressedButtonFlags;
s8 mGamepadErrorFlags;
u8 field_0x39;
u8 field_0x3a;
u8 field_0x3b;
u8 field_0x3c;
u8 field_0x3d;
u8 field_0x3e;
u8 field_0x3f;
/* 0x00 */ f32 mMainStickPosX;
/* 0x04 */ f32 mMainStickPosY;
/* 0x08 */ f32 mMainStickValue;
/* 0x0C */ s16 mMainStickAngle;
/* 0x0E */ u8 field_0xe;
/* 0x0F */ u8 field_0xf;
/* 0x10 */ f32 mCStickPosX;
/* 0x14 */ f32 mCStickPosY;
/* 0x18 */ f32 mCStickValue;
/* 0x1C */ s16 mCStickAngle;
/* 0x1E */ u8 field_0x1e;
/* 0x1F */ u8 field_0x1f;
/* 0x20 */ f32 mAnalogA;
/* 0x24 */ f32 mAnalogB;
/* 0x28 */ f32 mTriggerLeft;
/* 0x2C */ f32 mTriggerRight;
/* 0x30 */ u32 mButtonFlags;
/* 0x34 */ u32 mPressedButtonFlags;
/* 0x38 */ s8 mGamepadErrorFlags;
/* 0x39 */ u8 mHoldLockL;
/* 0x3A */ u8 mTrigLockL;
/* 0x3B */ u8 mHoldLockR;
/* 0x3C */ u8 mTrigLockR;
/* 0x3D */ u8 field_0x3d;
/* 0x3E */ u8 field_0x3e;
/* 0x3F */ u8 field_0x3f;
};
void cAPICPad_recalibrate(void);
+37
View File
@@ -1,6 +1,43 @@
#ifndef Z2AUDIOMGR_H
#define Z2AUDIOMGR_H
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JKernel/JKRArchive.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "Z2AudioLib/Z2SceneMgr.h"
#include "Z2AudioLib/Z2SeMgr.h"
#include "Z2AudioLib/Z2SeqMgr.h"
#include "Z2AudioLib/Z2SoundStarter.h"
#include "Z2AudioLib/Z2StatusMgr.h"
#include "dolphin/types.h"
class Z2AudioMgr {
public:
Z2AudioMgr();
void init(JKRSolidHeap*, u32, void*, JKRArchive*);
void setOutputMode(u32);
void zeldaGFrameWork();
void gframeProcess();
void resetProcess(u32, bool);
void resetRecover();
void hasReset() const;
void startSound(JAISoundID, JAISoundHandle*, JGeometry::TVec3<f32> const*);
static Z2AudioMgr* mAudioMgrPtr;
private:
/* 0x0000 */ Z2SeMgr mSeMgr;
/* 0x03D0 */ Z2SeqMgr mSeqMgr;
/* 0x04A4 */ Z2SceneMgr mSceneMgr;
/* 0x04C4 */ Z2StatusMgr mStatusMgr;
/* 0x04F4 */ // Z2SoundObjMgr mSoundObjMgr;
/* 0x051C */ // JASAudioReseter mAudioReseter;
/* 0x052C */ Z2SoundStarter mSoundStarter;
/* 0x0530 */ // Z2SoundMgr mSoundMgr;
/* 0x0D40 */ // JAISoundInfo mSoundInfo;
/* 0x0D4C */ // Z2Audience mAudience;
/* 0x0F2C */ // Z2SpeechMgr2 mSpeechMgr;
/* 0x1370 */ // Z2FxLineMgr mFxLineMgr;
};
#endif /* Z2AUDIOMGR_H */
+22 -3
View File
@@ -53,12 +53,12 @@ public:
void setLinkSwordType(s32, s32);
void setLinkShieldType(s32, s32);
void setLinkBootsType(s32);
void deleteObject();
virtual void deleteObject();
void init(Vec*, Vec*, Vec*);
void initKantera(Vec*);
void deleteKantera(void);
void setKanteraState(u8);
void framework(u32, s8);
virtual void framework(u32, s8);
void setSinkDepth(s8);
void setRiding(bool);
void setMagnetized(bool);
@@ -68,7 +68,7 @@ public:
void startLinkVoice(JAISoundID, s8);
void startLinkVoiceLevel(JAISoundID, s8);
void startLinkSwordSound(JAISoundID, u32, s8);
void startCollisionSE(u32, u32);
virtual void startCollisionSE(u32, u32);
int startHitItemSE(u32, u32, Z2SoundObjBase*, float);
void setResumeAttack(bool);
@@ -106,4 +106,23 @@ private:
/* 0x99 */ u8 padding[3];
};
class Z2CreatureEnemy : public Z2Creature {
public:
virtual void test(); // temp to build OK, remove later
/* 802C0F64 */ Z2CreatureEnemy();
/* 802C0FC4 */ virtual void deleteObject();
/* 802C1094 */ void init(Vec*, Vec*, u8, u8);
/* 802C10B4 */ void init(Vec*, Vec*, Vec*, u8, u8, u8);
/* 802C10D4 */ virtual void framework(u32, s8);
/* 802C110C */ virtual void startCreatureSound(JAISoundID, u32, s8);
/* 802C136C */ virtual void startCreatureSoundLevel(JAISoundID, u32, s8);
/* 802C168C */ virtual void startCreatureVoice(JAISoundID, s8);
/* 802C1948 */ virtual void startCreatureVoiceLevel(JAISoundID, s8);
/* 802C199C */ virtual void startCreatureExtraSound(JAISoundID, u32, s8);
/* 802C19D8 */ virtual void startCreatureExtraSoundLevel(JAISoundID, u32, s8);
/* 802C1A14 */ virtual void startCollisionSE(u32, u32);
/* 802C1B7C */ void setLinkSearch(bool);
/* 802C1B90 */ void setEnemyName(char const*);
};
#endif /* Z2CREATURE_H */
+50
View File
@@ -1,6 +1,56 @@
#ifndef Z2SCENEMGR_H
#define Z2SCENEMGR_H
#include "JSystem/JAudio2/JAISound.h"
#include "dolphin/types.h"
class Z2SceneMgr {
public:
Z2SceneMgr();
void setInDarkness(bool);
void setSceneExist(bool);
void setFadeOutStart(u8);
void setFadeInStart(u8);
void setSceneName(char*, s32, s32);
void sceneChange(JAISoundID, u8, u8, u8, u8, u8, bool);
void framework();
void load1stDynamicWave();
void _load1stWaveInner_1();
void _load1stWaveInner_2();
void check1stDynamicWave();
void load2ndDynamicWave();
void sceneBgmStart();
void loadStaticWaves();
bool checkFirstWaves();
void eraseSeWave(u32);
void eraseBgmWave(u32);
void getWaveLoadStatus(u32, u32);
void loadSeWave(u32);
void loadBgmWave(u32);
private:
/* 0x00 */ long BGM_ID;
/* 0x04 */ int sceneNum;
/* 0x08 */ int timer;
/* 0x0C */ s8 roomNum;
/* 0x0D */ u8 SeWave_1;
/* 0x0E */ u8 SeWaveToErase_1;
/* 0x0F */ u8 SeWave_2;
/* 0x10 */ u8 SeWaveToErase_2;
/* 0x11 */ u8 BgmWave_1;
/* 0x12 */ u8 BgmWaveToErase_1;
/* 0x13 */ u8 BgmWave_2;
/* 0x14 */ u8 BgmWaveToErase_2;
/* 0x15 */ u8 SeWave_3;
/* 0x16 */ u8 SeWaveToErase_3;
/* 0x17 */ u8 field_0x17;
/* 0x18 */ u8 field_0x18;
/* 0x19 */ u8 field_0x19;
/* 0x1A */ u8 field_0x1a;
/* 0x1B */ u8 field_0x1b;
/* 0x1C */ bool inGame;
/* 0x1D */ bool sceneExist;
/* 0x1E */ bool inDarkness;
}; // Size = 0x20
#endif /* Z2SCENEMGR_H */
File diff suppressed because it is too large Load Diff
+99
View File
@@ -1,6 +1,105 @@
#ifndef Z2SEQMGR_H
#define Z2SEQMGR_H
#include "JSystem/JAudio2/JAISound.h"
#include "dolphin/types.h"
// move TTransition / Z2SoundFader ?
struct TTransition {
/* 0x0 */ float field_0x0;
/* 0x4 */ float field_0x4;
/* 0x8 */ u32 mCount;
}; // Size = 0xC
struct Z2SoundFader {
/* 0x0 */ float mIntensity;
/* 0x4 */ TTransition mTransition;
}; // Size = 0x10
class Z2SeqMgr {
public:
Z2SeqMgr();
void bgmStart(u32, u32, s32);
void bgmStop(u32, s32);
void subBgmStart(u32);
void subBgmStop();
void subBgmStopInner();
void bgmStreamPrepare(u32);
int bgmStreamCheckReady();
void bgmStreamPlay();
void bgmStreamStop(u32);
void changeBgmStatus(s32);
void changeSubBgmStatus(s32);
void onVariantBgmJumpEnd(bool);
void changeFishingBgm(s32);
void talkInBgm();
void talkOutBgm();
void menuInBgm();
void menuOutBgm();
void fanfareFramework();
void stopWolfHowlSong();
void setHeightVolMod(bool, u32);
void setTimeProcVolMod(bool, u32);
void processBgmFramework();
void checkBgmIDPlaying(u32);
void getChildTrackVolume(JAISoundHandle*, int);
void setChildTrackVolume(JAISoundHandle*, int, float, u32, float, float);
void resetBattleBgmParams();
void setBattleBgmOff(bool);
void setBattleSearched(bool);
void setBattleDistIgnore(bool);
void setBattleGhostMute(bool);
void setBattleDistState(u8);
void setBattleSeqState(u8);
void setBattleLastHit(u8);
void battleBgmFramework();
void startBattleBgm(bool);
void stopBattleBgm(u8, u8);
void fieldBgmStart();
void fieldRidingMute();
void onFieldBgmJumpStart();
void onFieldBgmJumpEnd();
void fieldBgmFramework();
void mbossBgmMuteProcess();
void bgmSetSwordUsing(s32);
void bgmNowBattle(float);
void taktModeMute();
void taktModeMuteOff();
void setFieldBgmPlay(bool);
private:
/* 0x00 */ JAISoundHandle mMainBgmHandle;
/* 0x04 */ JAISoundHandle mSubBgmHandle;
/* 0x08 */ JAISoundHandle field_0x08;
/* 0x0C */ JAISoundHandle field_0x0c;
/* 0x10 */ JAISoundID field_0x10;
/* 0x14 */ Z2SoundFader field_0x14;
/* 0x24 */ Z2SoundFader field_0x24;
/* 0x34 */ Z2SoundFader field_0x34;
/* 0x44 */ Z2SoundFader field_0x44;
/* 0x54 */ Z2SoundFader field_0x54;
/* 0x64 */ Z2SoundFader field_0x64;
/* 0x74 */ Z2SoundFader field_0x74;
/* 0x84 */ Z2SoundFader field_0x84;
/* 0x94 */ Z2SoundFader field_0x94;
/* 0xA4 */ Z2SoundFader field_0xa4;
/* 0xB4 */ float mTwilightGateVolume;
/* 0xB8 */ u16 field_0xb8;
/* 0xBA */ u8 field_0xba;
/* 0xBB */ u8 field_0xbb;
/* 0xBC */ u8 field_0xbc;
/* 0xBD */ u8 field_0xbd;
/* 0xBE */ u8 field_0xbe;
/* 0xBF */ u8 field_0xbf;
/* 0xC0 */ u8 field_0xc0;
/* 0xC1 */ u8 field_0xc1;
/* 0xC2 */ u8 field_0xc2;
/* 0xC3 */ u8 field_0xc3;
/* 0xC4 */ u8 field_0xc4;
/* 0xC8 */ float field_0xc8;
/* 0xCC */ float field_0xcc;
/* 0xD0 */ u8 mFlags;
}; // Size = 0xD4
#endif /* Z2SEQMGR_H */
+33
View File
@@ -1,6 +1,39 @@
#ifndef Z2SOUNDOBJMGR_H
#define Z2SOUNDOBJMGR_H
#include "JSystem/JSupport/JSUList.h"
#include "Z2AudioLib/Z2Creature.h"
#include "dolphin/types.h"
class Z2SoundObjMgr : protected JSUList<Z2CreatureEnemy> {
public:
Z2SoundObjMgr();
void setForceBattleArea(bool, u16, u16, u16);
void searchEnemy();
void setGhostEnemyState(u8);
void getEnemyID(char const*, JSULink<Z2CreatureEnemy>*);
void setBattleInit();
void checkBattleFinish();
void deleteEnemyAll();
void removeEnemy(JSULink<Z2CreatureEnemy>*);
bool isTwilightBattle();
bool isForceBattle() { return mForceBattle; }
private:
/* 0x0C */ u8 field_0xc[2];
/* 0x0E */ u16 field_0xe;
/* 0x10 */ u16 field_0x10;
/* 0x12 */ u16 field_0x12;
/* 0x14 */ u8 field_0x14;
/* 0x15 */ u8 mEnemyNumNear;
/* 0x16 */ u8 field_0x16;
/* 0x17 */ u8 mEnemyNumVeryFar;
/* 0x18 */ u8 field_0x18;
/* 0x19 */ u8 mGhostEnemyState;
/* 0x1A */ bool field_0x1a;
/* 0x1B */ bool mTwilightBattle;
/* 0x1C */ bool mForceBattle;
}; // Size = 0x20
#endif /* Z2SOUNDOBJMGR_H */
+15 -18
View File
@@ -23,23 +23,20 @@ struct Z2StatusMgr {
//! @todo there are a number of inlines only called from rels: see CHN_debug
u8 mHour;
u8 mMinute;
u8 mWeekday;
u8 field_0x03;
s16 mTime;
u8 field_0x6[2];
void* mEventBit;
bool mIsMenuIn;
u8 field_0xd[3];
u32 mCameraMapInfo;
u32 field_0x14;
float mUnderwaterDepth;
float mCameraInWaterDepthRatio;
Vec mPolygonPosition;
u8 mDemoStatus;
u8 mHeartGaugeOn;
u8 padding[2];
};
/* 0x00 */ u8 mHour;
/* 0x01 */ u8 mMinute;
/* 0x02 */ u8 mWeekday;
/* 0x03 */ u8 field_0x03;
/* 0x04 */ s16 mTime;
/* 0x08 */ void* mEventBit;
/* 0x0C */ bool mIsMenuIn;
/* 0x10 */ u32 mCameraMapInfo;
/* 0x14 */ u32 field_0x14;
/* 0x18 */ float mUnderwaterDepth;
/* 0x1C */ float mCameraInWaterDepthRatio;
/* 0x20 */ Vec mPolygonPosition;
/* 0x2C */ u8 mDemoStatus;
/* 0x2D */ u8 mHeartGaugeOn;
}; // Size = 0x30
#endif /* Z2STATUSMGR_H */
+2 -2
View File
@@ -2909,7 +2909,7 @@ public:
private:
/* 0x0000 */ fopAc_ac_c mActor;
/* 0x0538 */ u8 field_0x538[0xD1C];
/* 0x0570 */ u8 field_0x570[0xCE4];
/* 0x1254 */ daPy_actorKeep_c mZeldaActorKeep;
};
@@ -2932,7 +2932,7 @@ public:
private:
/* 0x0000 */ fopAc_ac_c mActor;
/* 0x0538 */ u8 field_0x538[0x35C];
/* 0x0570 */ u8 field_0x570[0x324];
/* 0x0894 */ u32 mStateFlg1;
/* 0x0898 */ u32 mEndResetStateFlg0;
};
+1 -4
View File
@@ -126,9 +126,6 @@ private:
class daPy_py_c : public fopAc_ac_c {
public:
/* 0x0538 */ u8 field_0x538[0x32];
/* 0x056A */ u8 field_0x56a;
/* 0x056B */ u8 field_0x56b[5];
/* 0x0570 */ int mNoResetFlg0;
/* 0x0574 */ int mNoResetFlg1;
/* 0x0578 */ int mNoResetFlg2;
@@ -390,7 +387,7 @@ public:
inline bool getSumouCameraMode() const {
bool sumouCameraMode = false;
if (field_0x56a != 0 && field_0x56a < 0x26) {
if (field_0x560[0xA] != 0 && field_0x560[0xA] < 0x26) {
sumouCameraMode = true;
}
return sumouCameraMode;
+5
View File
@@ -43,4 +43,9 @@ class dBgS_ObjLinChk : dBgS_LinChk {
/* 80077FB8 */ ~dBgS_ObjLinChk();
};
class dBgS_BombLinChk : dBgS_LinChk {
/* 80078104 */ dBgS_BombLinChk();
/* 80078160 */ ~dBgS_BombLinChk();
};
#endif /* D_BG_D_BG_S_LIN_CHK_H */
+13 -15
View File
@@ -137,9 +137,7 @@ public:
/* 0x03F8C */ dStage_roomControl_c* mRoomControl;
/* 0x03F90 */ dEvt_control_c mEvent;
/* 0x040C0 */ dEvent_manager_c mEvtManager;
/* 0x0477C */ u8 field_0x477C[4];
/* 0x04780 */ dAttention_c mAttention;
/* 0x04C88 */ u8 field_0x4c88[0x14];
/* 0x04C9C */ dVibration_c mVibration;
/* 0x04D2C */ u8 field_0x4d2c[4];
/* 0x04D30 */ JKRArchive* mFieldMapArchive2;
@@ -258,18 +256,18 @@ public:
/* 0x04F07 */ u8 mCStickStatusForce;
/* 0x04F08 */ u8 mSButtonStatusForce;
/* 0x04F09 */ u8 mZStatusForce;
/* 0x04F0A */ u8 mRSetFlag; // related to RStatus
/* 0x04F0B */ u8 mASetFlag; // related to AStatus
/* 0x04F0A */ u8 mRSetFlag;
/* 0x04F0B */ u8 mASetFlag;
/* 0x04F0C */ u8 field_0x4f0c;
/* 0x04F0D */ u8 mNunSetFlag; // related to NunStatus
/* 0x04F0E */ u8 mBottleSetFlag; // related to BottleStatus
/* 0x04F0F */ u8 mRemoConSetFlag; // related to RemoConStatus
/* 0x04F0D */ u8 mNunSetFlag;
/* 0x04F0E */ u8 mBottleSetFlag;
/* 0x04F0F */ u8 mRemoConSetFlag;
/* 0x04F10 */ u8 field_0x4f10[2];
/* 0x04F12 */ u8 mDoSetFlag; // related to DoStatus
/* 0x04F13 */ u8 m3DSetFlag; // related to 3DStatus
/* 0x04F14 */ u8 mCStickSetFlag; // related to CStickStatus
/* 0x04F15 */ u8 mSButtonSetFlag; // related to SButtonStatus
/* 0x04F16 */ u8 mZSetFlag; // related to ZStatus
/* 0x04F12 */ u8 mDoSetFlag;
/* 0x04F13 */ u8 m3DSetFlag;
/* 0x04F14 */ u8 mCStickSetFlag;
/* 0x04F15 */ u8 mSButtonSetFlag;
/* 0x04F16 */ u8 mZSetFlag;
/* 0x04F17 */ u8 mRSetFlagForce;
/* 0x04F18 */ u8 mASetFlagForce;
/* 0x04F19 */ u8 field_0x4f19;
@@ -288,14 +286,14 @@ public:
/* 0x04F27 */ u8 mXSetFlagForce;
/* 0x04F28 */ u8 mYStatus;
/* 0x04F29 */ u8 mYStatusForce;
/* 0x04F2A */ u8 mYSetFlag; // related to YStatus
/* 0x04F2A */ u8 mYSetFlag;
/* 0x04F2B */ u8 mYSetFlagForce;
/* 0x04F2C */ u8 mNunZStatus;
/* 0x04F2D */ u8 mNunZSetFlag; // related to NunZStatus
/* 0x04F2D */ u8 mNunZSetFlag;
/* 0x04F2E */ u8 field_0x4fc6; // related to NunZStatusForce
/* 0x04F2F */ u8 field_0x4fc7; // related to NunZStatusForce
/* 0x04F30 */ u8 mNunCStatus;
/* 0x04F31 */ u8 mNunCSetFlag; // related to NunCStatus
/* 0x04F31 */ u8 mNunCSetFlag;
/* 0x04F32 */ u8 field_0x4fca; // related to NunCStatusForce
/* 0x04F33 */ u8 field_0x4fcb; // related to NunCStatusForce
/* 0x04F34 */ u8 mSelectItem[8];
+81 -83
View File
@@ -25,10 +25,10 @@ private:
class dAttCatch_c {
public:
/* 8007398C */ void convPId(unsigned int);
/* 800739BC */ void init();
/* 800739DC */ void proc();
/* 80073A08 */ void request(fopAc_ac_c*, u8, f32, f32, f32, s16, int);
void convPId(unsigned int);
void init();
void proc();
void request(fopAc_ac_c*, u8, f32, f32, f32, s16, int);
private:
void* field_0x0;
@@ -38,8 +38,9 @@ private:
u8 field_0xd;
u8 field_0xe;
u8 field_0xf;
void* field_0x10;
};
u32 field_0x10;
u8 mChangeItem;
}; // Size = 0x14
class dAttParam_c {
public:
@@ -47,26 +48,29 @@ public:
/* 80070110 */ ~dAttParam_c();
private:
u8 field_0x0;
u8 field_0x1;
u8 field_0x2;
u8 field_0x3;
u8 field_0x4;
u8 field_0x5;
u8 field_0x6;
u8 field_0x7;
u8 field_0x8;
u8 field_0x9;
u8 field_0xa;
u8 field_0xb;
u8 field_0xc;
u8 field_0xd;
u8 field_0xe;
u8 field_0xf;
u8 field_0x10;
u8 field_0x11;
u8 field_0x12;
};
/* 0x00 */ void* vtable;
/* 0x04 */ u8 field_0x4;
/* 0x05 */ u8 field_0x5;
/* 0x06 */ u16 mFlag;
/* 0x08 */ float field_0x8;
/* 0x0C */ float field_0xc;
/* 0x10 */ float field_0x10;
/* 0x14 */ float field_0x14;
/* 0x18 */ float field_0x18;
/* 0x1C */ float field_0x1c;
/* 0x20 */ float field_0x20;
/* 0x24 */ float field_0x24;
/* 0x28 */ float field_0x28;
/* 0x2C */ float field_0x2c;
/* 0x30 */ float field_0x30;
/* 0x34 */ float field_0x34;
/* 0x38 */ u8 field_0x38;
/* 0x39 */ u8 field_0x39;
/* 0x3C */ float field_0x3c;
/* 0x40 */ float field_0x40;
/* 0x44 */ u32 field_0x44;
/* 0x48 */ u32 field_0x48;
}; // Size = 0x4C
class dAttLook_c {
public:
@@ -79,7 +83,8 @@ private:
u32 field_0x0;
u32 field_0x4;
float field_0x8;
};
u32 field_0xc;
}; // Size = 0x10
#pragma pack(push, 1)
class dAttList_c {
@@ -96,7 +101,6 @@ private:
};
#pragma pack(pop)
#pragma pack(push, 1)
class dAttDraw_c {
public:
/* 8003054C */ ~dAttDraw_c();
@@ -123,7 +127,7 @@ public:
/* 0x11C */ mDoExt_bpkAnm bpkAnm2;
/* 0x134 */ mDoExt_brkAnm brkAnm3;
/* 0x14C */ mDoExt_btkAnm btkAnm2;
/* 0x164 */ u8 field_0x164[0xC];
/* 0x164 */ cXyz field_0x164;
/* 0x170 */ u8 field_0x170;
/* 0x171 */ u8 field_0x171;
/* 0x172 */ u8 field_0x172;
@@ -131,7 +135,6 @@ public:
/* 0x174 */ u8 field_0x174;
/* 0x175 */ u8 field_0x175;
};
#pragma pack(pop)
class dAttDraw_CallBack_c {
public:
@@ -187,58 +190,53 @@ public:
static u32 chk_type_tbl;
static u32 chk_type_num;
private:
u8 field_0x0[4];
u32 field_0x4;
dAttDraw_CallBack_c dattdraw_callback;
u32 field_0xc;
u32 field_0x10;
u8 field_0x14[8];
cXyz field_0x1c;
/* 0x028 */ dAttDraw_c attention_draw[2];
int field_0x318;
cXyz field_0x31c;
u8 field_0x328[12];
u32 field_0x334;
/* 0x0338 */ dAttList_c attention_list1[8];
int* field_0x3d8;
int* field_0x3dc;
/* 0x03E0 */ dAttList_c attention_list2[4];
int* field_0x430;
int field_0x434;
/* 0x0438 */ dAttList_c attention_list3[4];
int* field_0x488;
int field_0x48c;
dAttHint_c attention_hint;
dAttCatch_c attention_catch;
u8 field_0x4b0[4];
dAttLook_c attention_look;
u8 field_0x4c0;
u8 field_0x4c1;
u8 field_0x4c2;
u8 field_0x4c3;
int* field_0x4c4;
u8 field_0x4c8;
u8 field_0x4c9;
u8 field_0x4ca;
u8 field_0x4cb;
u8 field_0x4cc;
u8 field_0x4cd;
u8 field_0x4ce;
u8 field_0x4cf;
/* 0x04D0 */ dAttParam_c attention_param;
u8 field_0x4e3;
u8 field_0x4e4;
u8 field_0x4e5;
int* field_0x4e6;
u8 field_0x4ea;
u8 field_0x4eb;
u8 field_0x4ec;
u8 field_0x4ed;
u8 field_0x4ee;
u8 field_0x4ef;
u8 field_0x4f0[0x18];
/* 0x0508 */ void* vtable;
};
public:
/* 0x000 */ fopAc_ac_c* field_0x0;
/* 0x004 */ u32 field_0x4;
/* 0x008 */ dAttDraw_CallBack_c dattdraw_callback;
/* 0x00C */ u32 field_0xc;
/* 0x010 */ u32 field_0x10;
/* 0x014 */ u8 field_0x14[4];
/* 0x018 */ JKRSolidHeap* heap;
/* 0x01C */ cXyz field_0x1c;
/* 0x028 */ dAttDraw_c draw[2];
/* 0x318 */ int field_0x318;
/* 0x31C */ cXyz field_0x31c;
/* 0x328 */ u8 field_0x328;
/* 0x329 */ u8 field_0x329;
/* 0x32A */ u8 field_0x32a;
/* 0x32B */ u8 field_0x32b;
/* 0x32C */ u8 field_0x32c;
/* 0x32D */ u8 field_0x32d;
/* 0x32E */ u8 field_0x32e;
/* 0x32F */ u8 field_0x32f;
/* 0x330 */ u8 field_0x330;
/* 0x331 */ u8 field_0x331;
/* 0x332 */ u8 field_0x332;
/* 0x333 */ u8 field_0x333;
/* 0x334 */ u32 mFlags;
/* 0x338 */ dAttList_c mLockOnList[8];
/* 0x3D8 */ int mLockonCount;
/* 0x3DC */ int field_0x3dc;
/* 0x3E0 */ dAttList_c mActionList[4];
/* 0x430 */ int mActionCount;
/* 0x434 */ int field_0x434;
/* 0x438 */ dAttList_c attention_list3[4];
/* 0x488 */ int mCheckObjectCount;
/* 0x48C */ int field_0x48c;
/* 0x490 */ dAttHint_c mZHintTarget;
/* 0x49C */ dAttCatch_c mCatghTarget;
/* 0x4B4 */ dAttLook_c mLookTarget;
/* 0x4C4 */ int field_0x4c4;
/* 0x4C8 */ u8 field_0x4c8;
/* 0x4C9 */ u8 field_0x4c9;
/* 0x4CA */ u8 field_0x4ca;
/* 0x4CB */ u8 field_0x4cb;
/* 0x4CC */ u8 field_0x4cc;
/* 0x4CD */ u8 field_0x4cd;
/* 0x4CE */ u8 field_0x4ce;
/* 0x4CF */ u8 field_0x4cf;
/* 0x4D0 */ dAttParam_c attention_param;
}; // Size = 0x51C
#endif /* D_D_ATTENTION_H */
+41 -1
View File
@@ -1,6 +1,46 @@
#ifndef D_D_BOMB_H
#define D_D_BOMB_H
#include "dolphin/types.h"
#include "Z2AudioLib/Z2SoundObject.h"
#include "d/bg/d_bg_s_acch.h"
#include "d/cc/d_cc_d.h"
#include "d/kankyo/d_kankyo.h"
#include "f_op/f_op_actor.h"
class daNbomb_c {
public:
enum daNbomb_FLG0 { WATER_BOMB = 16 };
u32 checkStateFlg0(daNbomb_FLG0 flag) const { return mStateFlg0 & flag; }
u32 checkWaterBomb() const { return checkStateFlg0(WATER_BOMB); }
/* 0x000 */ fopAc_ac_c mActor;
/* 0x570 */ u8 field_0x570[8];
/* 0x578 */ dBgS_Acch mAcch;
/* 0x750 */ dBgS_AcchCir mAcchCir;
/* 0x790 */ dCcD_Stts mStts;
/* 0x7CC */ dCcD_Sph mSph1;
/* 0x904 */ dCcD_Sph mSph2;
/* 0xA3C */ u8 field_0xa3c[0x64];
/* 0xAA0 */ dBgS_BombLinChk mLinChk;
/* 0xB10 */ cBgS_PolyInfo mPolyInfo;
/* 0xB20 */ Z2SoundObjSimple mSoundObj;
/* 0xB40 */ u8 field_0xb40[0xC];
/* 0xB4C */ u32 mStateFlg0;
/* 0xB50 */ u8 field_0xb50;
/* 0xB51 */ u8 field_0xb51[0x3];
/* 0xB54 */ u8 field_0xb54;
/* 0xB55 */ u8 field_0xb55[0xB];
/* 0xB60 */ LIGHT_INFLUENCE field_0xb60;
/* 0xB80 */ WIND_INFLUENCE field_0xb80;
};
class dBomb_c : public daNbomb_c {
public:
bool checkStateCarry();
bool checkFlowerBombWait(fopAc_ac_c*);
bool checkWaterBomb(fopAc_ac_c*);
bool checkInsectBombMove(fopAc_ac_c*);
};
#endif /* D_D_BOMB_H */
+2
View File
@@ -8,6 +8,8 @@
class dJntColData_c {};
class fopAc_ac_c;
class dJntCol_c {
public:
/* 80035C8C */ dJntCol_c();
+85 -263
View File
@@ -4,275 +4,94 @@
#include "d/a/d_a_itembase.h"
#include "d/a/d_a_player.h"
#include "d/d_stage.h"
#include "d/event/d_event_manager.h"
#include "d/save/d_save.h"
#include "dolphin/types.h"
#pragma pack(push, 1)
class dEvt_order_c {
public:
/* 80030154 */ ~dEvt_order_c();
/* 800415D4 */ dEvt_order_c();
~dEvt_order_c();
dEvt_order_c();
private:
u8 field_0x0;
u8 field_0x1;
u8 field_0x2;
u8 field_0x3;
u8 field_0x4;
u8 field_0x5;
u8 field_0x6;
u8 field_0x7;
u8 field_0x8;
u8 field_0x9;
u8 field_0xa;
u8 field_0xb;
u8 field_0xc;
u8 field_0xd;
u8 field_0xe;
u8 field_0xf;
u8 field_0x10;
u8 field_0x11;
u8 field_0x12;
u8 field_0x13;
u8 field_0x14;
u8 field_0x15;
u8 field_0x16;
u8 field_0x17;
u8 field_0x18;
u8 field_0x19;
u8 field_0x1a;
u8 field_0x1b;
u8 field_0x1c;
u8 field_0x1d;
u8 field_0x1e;
u8 field_0x1f;
u8 field_0x20;
u8 field_0x21;
u8 field_0x22;
u8 field_0x23;
u8 field_0x24;
u8 field_0x25;
u8 field_0x26;
u8 field_0x27;
u8 field_0x28;
u8 field_0x29;
u8 field_0x2a;
u8 field_0x2b;
u8 field_0x2c;
u8 field_0x2d;
u8 field_0x2e;
u8 field_0x2f;
u8 field_0x30;
u8 field_0x31;
u8 field_0x32;
u8 field_0x33;
u8 field_0x34;
u8 field_0x35;
u8 field_0x36;
u8 field_0x37;
u8 field_0x38;
u8 field_0x39;
u8 field_0x3a;
u8 field_0x3b;
u8 field_0x3c;
u8 field_0x3d;
u8 field_0x3e;
u8 field_0x3f;
u8 field_0x40;
u8 field_0x41;
u8 field_0x42;
u8 field_0x43;
u8 field_0x44;
u8 field_0x45;
u8 field_0x46;
u8 field_0x47;
u8 field_0x48;
u8 field_0x49;
u8 field_0x4a;
u8 field_0x4b;
u8 field_0x4c;
u8 field_0x4d;
u8 field_0x4e;
u8 field_0x4f;
u8 field_0x50;
u8 field_0x51;
u8 field_0x52;
u8 field_0x53;
u8 field_0x54;
u8 field_0x55;
u8 field_0x56;
u8 field_0x57;
u8 field_0x58;
u8 field_0x59;
u8 field_0x5a;
u8 field_0x5b;
u8 field_0x5c;
u8 field_0x5d;
u8 field_0x5e;
u8 field_0x5f;
u8 field_0x60;
u8 field_0x61;
u8 field_0x62;
u8 field_0x63;
u8 field_0x64;
u8 field_0x65;
u8 field_0x66;
u8 field_0x67;
u8 field_0x68;
u8 field_0x69;
u8 field_0x6a;
u8 field_0x6b;
u8 field_0x6c;
u8 field_0x6d;
u8 field_0x6e;
u8 field_0x6f;
u8 field_0x70;
u8 field_0x71;
u8 field_0x72;
u8 field_0x73;
u8 field_0x74;
u8 field_0x75;
u8 field_0x76;
u8 field_0x77;
u8 field_0x78;
u8 field_0x79;
u8 field_0x7a;
u8 field_0x7b;
u8 field_0x7c;
u8 field_0x7d;
u8 field_0x7e;
u8 field_0x7f;
u8 field_0x80;
u8 field_0x81;
u8 field_0x82;
u8 field_0x83;
u8 field_0x84;
u8 field_0x85;
u8 field_0x86;
u8 field_0x87;
u8 field_0x88;
u8 field_0x89;
u8 field_0x8a;
u8 field_0x8b;
u8 field_0x8c;
u8 field_0x8d;
u8 field_0x8e;
u8 field_0x8f;
u8 field_0x90;
u8 field_0x91;
u8 field_0x92;
u8 field_0x93;
u8 field_0x94;
u8 field_0x95;
u8 field_0x96;
u8 field_0x97;
u8 field_0x98;
u8 field_0x99;
u8 field_0x9a;
u8 field_0x9b;
u8 field_0x9c;
u8 field_0x9d;
u8 field_0x9e;
u8 field_0x9f;
u8 field_0xa0;
u8 field_0xa1;
u8 field_0xa2;
u8 field_0xa3;
u8 field_0xa4;
u8 field_0xa5;
u8 field_0xa6;
u8 field_0xa7;
u8 field_0xa8;
u8 field_0xa9;
u8 field_0xaa;
u8 field_0xab;
u8 field_0xac;
u8 field_0xad;
u8 field_0xae;
u8 field_0xaf;
u8 field_0xb0;
u8 field_0xb1;
u8 field_0xb2;
u8 field_0xb3;
u8 field_0xb4;
u8 field_0xb5;
u8 field_0xb6;
u8 field_0xb7;
u8 field_0xb8;
u8 field_0xb9;
u8 field_0xba;
u8 field_0xbb;
u8 field_0xbc;
u8 field_0xbd;
u8 field_0xbe;
};
#pragma pack(pop)
/* 0x00 */ u16 mEventType;
/* 0x02 */ u16 mFlag;
/* 0x04 */ s16 field_0x04;
/* 0x08 */ fopAc_ac_c* mActor1;
/* 0x0C */ fopAc_ac_c* mActor2;
/* 0x10 */ s16 mEventId;
/* 0x12 */ s16 mPriority;
/* 0x14 */ u8 mNextOrderIdx;
/* 0x15 */ u8 mEventInfoIdx;
}; // Size = 0x18
typedef int (*SkipFunc)(void*, int);
#pragma pack(push, 1)
class dEvt_control_c {
public:
/* 80041580 */ dEvt_control_c();
/* 800415D8 */ void orderOld(u16, u16, u16, u16, void*, void*, void const*);
/* 80041668 */ void order(u16, u16, u16, u16, void*, void*, s16, u8);
/* 80041804 */ void setParam(dEvt_order_c*);
/* 80041934 */ void beforeFlagProc(dEvt_order_c*);
/* 80041964 */ void afterFlagProc(dEvt_order_c*);
/* 800419A8 */ void commonCheck(dEvt_order_c*, u16, u16);
/* 80041A20 */ void talkCheck(dEvt_order_c*);
/* 80041B58 */ void talkXyCheck(dEvt_order_c*);
/* 80041C90 */ void catchCheck(dEvt_order_c*);
/* 80041D34 */ void talkEnd();
/* 80041DDC */ void demoCheck(dEvt_order_c*);
/* 80041F18 */ void demoEnd();
/* 80041FA0 */ void potentialCheck(dEvt_order_c*);
/* 80042014 */ void doorCheck(dEvt_order_c*);
/* 8004212C */ void itemCheck(dEvt_order_c*);
/* 800421C0 */ void endProc();
/* 80042254 */ void change();
/* 800422C0 */ void entry();
/* 80042518 */ void reset(void*);
/* 80042468 */ void reset();
/* 800425B4 */ void clearSkipSystem();
/* 8004290C */ void getSkipEventName();
/* 80042914 */ void setSkipProc(void*, int (*)(void*, int), int);
/* 80042958 */ void setSkipZev(void*, char*);
/* 800429A8 */ void onSkipFade();
/* 800429B4 */ void offSkipFade();
/* 800429D4 */ void skipper();
/* 80042BBC */ void Step();
/* 80042FA8 */ void moveApproval(void*);
/* 8004316C */ void compulsory(void*, char const*, u16);
/* 800431E8 */ void remove();
/* 80043278 */ void getStageEventDt();
/* 80043280 */ void sceneChange(int);
/* 800432C8 */ void getPId(void*);
/* 800432EC */ void convPId(unsigned int);
/* 8004331C */ void getStbDemoData(char*);
/* 80043500 */ void searchMapEventData(u8, s32);
/* 800434D8 */ void searchMapEventData(u8);
/* 8004360C */ void runningEventID(s16);
/* 8004362C */ void setPt1(void*);
/* 8004365C */ void setPt2(void*);
/* 8004368C */ void setPtT(void*);
/* 800436BC */ void setPtI(void*);
/* 800436EC */ void setPtI_Id(unsigned int);
/* 800436F4 */ void setPtD(void*);
/* 80043724 */ void setGtItm(u8);
dEvt_control_c();
void orderOld(u16, u16, u16, u16, void*, void*, void const*);
void order(u16, u16, u16, u16, void*, void*, s16, u8);
void setParam(dEvt_order_c*);
s32 beforeFlagProc(dEvt_order_c*);
void afterFlagProc(dEvt_order_c*);
void commonCheck(dEvt_order_c*, u16, u16);
void talkCheck(dEvt_order_c*);
void talkXyCheck(dEvt_order_c*);
void catchCheck(dEvt_order_c*);
void talkEnd();
void demoCheck(dEvt_order_c*);
void demoEnd();
s32 potentialCheck(dEvt_order_c*);
void doorCheck(dEvt_order_c*);
void itemCheck(dEvt_order_c*);
void endProc();
void change();
void entry();
void reset(void*);
void reset();
void clearSkipSystem();
char* getSkipEventName();
void setSkipProc(void*, SkipFunc, int);
void setSkipZev(void*, char*);
void onSkipFade();
void offSkipFade();
void skipper();
void Step();
void moveApproval(void*);
void compulsory(void*, char const*, u16);
void remove();
void* getStageEventDt(); // ret type probably wrong, fix later
void sceneChange(int);
u32 getPId(void*);
void convPId(unsigned int);
void getStbDemoData(char*);
void searchMapEventData(u8, s32);
void searchMapEventData(u8);
s16 runningEventID(s16);
void setPt1(void*);
void setPt2(void*);
void setPtT(void*);
void setPtI(void*);
void setPtI_Id(unsigned int);
void setPtD(void*);
void setGtItm(u8);
private:
u16 chkFlag2(u16 flag) { return flag & mFlag2; }
public:
/* 0x000 */ u8 field_0x0[4];
/* 0x004 */ dEvt_order_c event_order;
/* 0x0C4 */ int mPt1;
/* 0x0C8 */ int mPt2;
/* 0x0CC */ int mPtT;
/* 0x0D0 */ int mPtI;
/* 0x0D4 */ int mPtd;
/* 0x004 */ dEvt_order_c mOrder[8];
/* 0x0C4 */ u32 mPt1;
/* 0x0C8 */ u32 mPt2;
/* 0x0CC */ u32 mPtT;
/* 0x0D0 */ u32 mPtI;
/* 0x0D4 */ u32 mPtd;
/* 0x0D8 */ u16 mEventFlag;
/* 0x0DA */ u16 mFlag2;
/* 0x0DC */ u16 mHindFlag;
/* 0x0DE */ u16 field_0xde;
/* 0x0E0 */ u16 field_0xe0;
/* 0x0E2 */ u8 field_0xe2;
/* 0x0DE */ s16 mSpecifiedEvent; // name maybe wrong
/* 0x0E0 */ s16 field_0xe0;
/* 0x0E2 */ u8 mNum;
/* 0x0E3 */ u8 field_0xe3;
/* 0x0E4 */ u8 mMode;
/* 0x0E5 */ u8 field_0xe5;
@@ -287,15 +106,18 @@ private:
/* 0x0EE */ u8 mPreItemNo;
/* 0x0EF */ u8 mGtItm;
/* 0x0F0 */ float mCullRate;
/* 0x0F4 */ int mStageEventDt;
/* 0x0F8 */ int mChangeOK;
/* 0x0FC */ u8 field_0xfc[20];
/* 0x110 */ bool mSkipFade;
/* 0x114 */ char mSkipEventName[0x14];
/* 0x0F4 */ void* mStageEventDt;
/* 0x0F8 */ void* mChangeOK;
/* 0x0FC */ u8 field_0xfc[4];
/* 0x100 */ SkipFunc mSkipFunc;
/* 0x104 */ u32 field_0x104;
/* 0x108 */ u32 field_0x108;
/* 0x10C */ u32 field_0x10c;
/* 0x110 */ int mSkipFade;
/* 0x114 */ char mSkipEventName[20];
/* 0x128 */ u8 mCompulsory;
/* 0x129 */ u8 field_0x129;
/* 0x129 */ bool field_0x129;
/* 0x12C */ int field_0x12c;
};
#pragma pack(pop)
}; // Size = 0x130
#endif /* D_EVENT_D_EVENT_H */
+90 -38
View File
@@ -5,59 +5,111 @@
#include "d/save/d_save.h"
#include "dolphin/types.h"
struct dEvDtStaff_c {
/* 80043FD8 */ void specialProc_WaitStart(int);
/* 8004403C */ void specialProc_WaitProc(int);
/* 80044080 */ void specialProc();
/* 80044134 */ void init();
/* 80044170 */ void advanceCut(int);
/* 80044190 */ void specialProcLight();
/* 80044324 */ void specialProcMessage();
/* 80044A58 */ void specialProcSound();
/* 80044CB8 */ void specialProcCreate();
/* 80044EE4 */ void specialProcDirector();
/* 80045878 */ void specialProcPackage();
/* 80045AFC */ void specialProcTimekeeper();
/* 80045C34 */ void specialProcEffect();
struct event_binary_data_header {};
struct dEvDtData_c {};
class dEvDtCut_c {
public:
void startCheck();
private:
/* 0x00 */ u8 field_0x0[0x20];
/* 0x20 */ u32 mTagID;
/* 0x28 */ int field_0x28[3];
/* 0x34 */ u32 mFlagId;
/* 0x38 */ u32 mDataTop;
/* 0x3C */ u32 mNext;
};
struct dEvDtEvent_c {
/* 80043E78 */ void finishCheck();
/* 80043EFC */ void forceFinish();
/* 80043F70 */ void specialStaffProc(dEvDtStaff_c*);
class dEvDtStaff_c {
public:
void specialProc_WaitStart(int);
void specialProc_WaitProc(int);
void specialProc();
void init();
void advanceCut(int);
void specialProcLight();
void specialProcMessage();
void specialProcSound();
void specialProcCreate();
void specialProcDirector();
void specialProcPackage();
void specialProcTimekeeper();
void specialProcEffect();
private:
/* 0x00 */ u8 field_0x00[4];
/* 0x04 */ void* field_0x04;
/* 0x08 */ u32 field_0x08;
/* 0x0C */ int field_0x0c;
/* 0x10 */ u32 field_0x10;
/* 0x14 */ u8 field_0x14[0xC];
/* 0x20 */ u32 mTagID;
/* 0x24 */ u32 field_0x24;
/* 0x28 */ u8 field_0x28[4];
/* 0x2C */ int mType;
/* 0x30 */ u32 mStartCut;
/* 0x34 */ u8 field_0x34[2];
/* 0x36 */ s16 field_0x36;
/* 0x38 */ int mCurrentCut;
/* 0x3C */ u32 field_0x3c;
/* 0x40 */ u8 field_0x40;
/* 0x41 */ u8 field_0x41;
/* 0x42 */ s16 field_0x42;
/* 0x44 */ s16 mSoundWait;
/* 0x46 */ u8 field_0x46[4];
/* 0x4A */ int field_0x4a;
};
class dEvDtEvent_c {
public:
void finishCheck();
void forceFinish();
void specialStaffProc(dEvDtStaff_c*);
/* 0x00 */ s32 mEventNum;
};
class dEvDtFlag_c {
public:
/* 80043D60 */ void flagCheck(int);
/* 80043DC8 */ void flagSet(int);
/* 80043E30 */ void flagMaxCheck(int);
/* 80043E58 */ void init();
dEvDtFlag_c() {}
void flagCheck(int);
void flagSet(int);
bool flagMaxCheck(int);
void init();
#define FlagMax 0x2800
private:
u8 field_0x0[320];
};
u32 mFlags[320];
}; // Size = 0x500
#pragma pack(push, 1)
class dEvDtBase_c {
public:
dEvDtBase_c();
~dEvDtBase_c();
/* 80046138 */ void init();
/* 8004616C */ void init(char*, int);
/* 8004628C */ void advanceCut(dEvDtEvent_c*);
/* 800462FC */ void advanceCutLocal(dEvDtStaff_c*);
void init();
void init(char*, int);
void advanceCut(dEvDtEvent_c*);
void advanceCutLocal(dEvDtStaff_c*);
event_binary_data_header* getHeaderP() { return mHeaderP; }
s32 getEventNum() { return mEventP->mEventNum; }
s32 roomNo() { return mRoomNo; }
private:
u32 field_0x0;
u32 field_0x4;
u32 field_0x8;
u32 field_0xc;
u32 field_0x10;
u32 field_0x14;
u32 field_0x18;
u32 field_0x1c;
u32 field_0x20;
};
/* 0x00 */ event_binary_data_header* mHeaderP;
/* 0x04 */ dEvDtEvent_c* mEventP;
/* 0x08 */ dEvDtStaff_c* mStaffP;
/* 0x0C */ dEvDtCut_c* mCutP;
/* 0x10 */ dEvDtData_c* mDataP;
/* 0x14 */ float* mFDataP;
/* 0x18 */ s32* mIDataP;
/* 0x1C */ char* mSDataP;
/* 0x20 */ s32 mRoomNo;
}; // Size = 0x24
#pragma pack(pop)
#endif /* D_EVENT_D_EVENT_DATA_H */

Some files were not shown because too many files have changed in this diff Show More