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 15:22:36 -07: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 */
+63 -69
View File
@@ -4,87 +4,81 @@
#include "d/event/d_event_data.h"
#include "dolphin/types.h"
struct dEvDtData_c {};
#pragma pack(push, 1)
class dEvent_exception_c {
public:
/* 800463DC */ void init();
/* 800463F0 */ void setStartDemo(int);
/* 80046480 */ void getEventName();
dEvent_exception_c() { mEventInfoIdx = -1; }
void init();
void setStartDemo(int);
void getEventName();
private:
u32 field_0x0;
u32 mEventInfoIdx;
u8 field_0x4;
u8 field_0x5;
u8 field_0x6;
u8 field_0x7;
u32 field_0x8;
u32 mState;
};
#pragma pack(pop)
#pragma pack(push, 1)
struct dEvent_manager_c {
/* 800465E8 */ void getSubstance(dEvDtData_c*, int);
/* 80046688 */ dEvent_manager_c();
/* 80046710 */ void create();
/* 80046800 */ void setObjectArchive(char*);
/* 80046888 */ void demoInit();
/* 80046904 */ void roomInit(int);
/* 800469EC */ void roomFinish(int);
/* 80046A58 */ void orderStartDemo();
/* 80046C0C */ void remove();
/* 80046CB8 */ void startProc(dEvDtEvent_c*);
/* 80046DA0 */ void closeProc(dEvDtEvent_c*);
/* 80046DAC */ void endProc(s16, int);
/* 80046E64 */ void Sequencer();
/* 800473FC */ void Experts();
/* 800474BC */ void getEventData(s16);
/* 80047454 */ void getEventData(s16, int);
/* 80047514 */ void getEventIdx(char const*, u8, s32);
/* 80047698 */ void getEventIdx(fopAc_ac_c*, u8);
/* 80047758 */ void getEventIdx(fopAc_ac_c*, char const*, u8);
/* 80047930 */ void isMapToolCamera(u8, s32);
/* 80047984 */ void order(s16);
/* 800479F8 */ void startCheck(s16);
/* 80047A38 */ void startCheckOld(char const*);
/* 80047A78 */ void endCheck(s16);
/* 80047ADC */ void endCheckOld(char const*);
/* 80047B1C */ void getMyStaffId(char const*, fopAc_ac_c*, int);
/* 80047D4C */ void getIsAddvance(int);
/* 80047E10 */ void getMyActIdx(int, char const* const*, int, int, int);
/* 80047F5C */ void getMyNowCutName(int);
/* 80047FC8 */ void getMyDataP(int, char const*, int);
/* 800480EC */ void getMySubstanceP(int, char const*, int);
/* 80048144 */ void getMySubstanceNum(int, char const*);
/* 8004817C */ void cutEnd(int);
/* 800481F4 */ void getEventPrio(fopAc_ac_c*, s16);
/* 800482CC */ void issueStaff(char const*);
/* 80048348 */ void cancelStaff(char const*);
/* 800483C4 */ void setGoal(cXyz*);
/* 800483E0 */ void getGoal();
/* 800483E8 */ void getRunEventName();
/* 80048520 */ void specialCast_Shutter(s16, int);
/* 80048618 */ void specialCast(char const*, int);
/* 800487F0 */ void ChkPresentEnd();
/* 8004882C */ void checkStartDemo();
class dEvent_manager_c {
public:
void getSubstance(dEvDtData_c*, int);
dEvent_manager_c();
void create();
void setObjectArchive(char*);
void demoInit();
void roomInit(int);
void roomFinish(int);
void orderStartDemo();
void remove();
void startProc(dEvDtEvent_c*);
void closeProc(dEvDtEvent_c*);
void endProc(s16, int);
void Sequencer();
void Experts();
void getEventData(s16);
dEvDtEvent_c* getEventData(s16, int);
void getEventIdx(char const*, u8, s32);
void getEventIdx(fopAc_ac_c*, u8);
void getEventIdx(fopAc_ac_c*, char const*, u8);
void isMapToolCamera(u8, s32);
void order(s16);
void startCheck(s16);
void startCheckOld(char const*);
void endCheck(s16);
void endCheckOld(char const*);
void getMyStaffId(char const*, fopAc_ac_c*, int);
void getIsAddvance(int);
void getMyActIdx(int, char const* const*, int, int, int);
void getMyNowCutName(int);
void getMyDataP(int, char const*, int);
void getMySubstanceP(int, char const*, int);
void getMySubstanceNum(int, char const*);
void cutEnd(int);
void getEventPrio(fopAc_ac_c*, s16);
void issueStaff(char const*);
void cancelStaff(char const*);
void setGoal(cXyz*);
void getGoal();
void getRunEventName();
void specialCast_Shutter(s16, int);
void specialCast(char const*, int);
void ChkPresentEnd();
void checkStartDemo();
/* 0x0000 */ dEvDtBase_c event_data_base[11];
/* 0x018C */ u32 field_0x18c;
/* 0x0190 */ u32 field_0x190;
/* 0x0194 */ u8 field_0x194[0x8];
/* 0x019C */ cXyz goal;
/* 0x01A8 */ u8 field_0x1A8[4];
private:
/* 0x0000 */ dEvDtBase_c mEventList[11];
/* 0x018C */ s32 mCameraPlay;
/* 0x0190 */ dEvent_exception_c mEventException;
/* 0x019C */ cXyz mGoal;
/* 0x01A8 */ u8 field_0x1a8[2];
/* 0x01AA */ u16 field_0x1aa;
/* 0x01AC */ u8 field_0x1ac[0x8];
/* 0x01B4 */ dEvent_exception_c event_exception;
/* 0x01C0 */ cXyz position;
/* 0x01CC */ u8 field_0x1cc[0x14];
/* 0x01E0 */ dEvDtFlag_c event_data_flag;
/* 0x0320 */ u8 field_0x320[0x35C];
/* 0x067C */ void* vtable;
/* 0x0680 */ u8 field_0x680[0x3C];
/* 0x01AC */ u8 field_0x1ac[4];
/* 0x01B0 */ u32 field_0x1b0;
/* 0x01B4 */ u32 field_0x1b4;
/* 0x01B8 */ u32 field_0x1b8;
/* 0x01BC */ dEvDtFlag_c mFlags;
/* 0x06BC */ bool mDataLoaded;
};
#pragma pack(pop)
#endif /* D_EVENT_D_EVENT_MANAGER_H */
+45
View File
@@ -1,6 +1,7 @@
#ifndef D_KANKYO_D_KANKYO_H
#define D_KANKYO_D_KANKYO_H
#include "JSystem/J3DGraphBase/J3DStruct.h"
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/gx/GXTexture.h"
#include "dolphin/types.h"
@@ -16,4 +17,48 @@ struct LIGHT_INFLUENCE {
/* 0x1C */ int field_0x1c;
};
struct WIND_INFLUENCE {
/* 0x00 */ cXyz field_0x00;
/* 0x0C */ cXyz field_0x0c;
/* 0x18 */ u8 field_0x18[0xC];
/* 0x24 */ int field_0x24;
/* 0x28 */ u8 field_0x28;
/* 0x29 */ u8 field_0x29;
};
class dKy_tevstr_c {
public:
private:
/* 0x000 */ J3DLightObj field_0x000;
/* 0x074 */ J3DLightObj field_0x074[6];
/* 0x32C */ cXyz field_0x32c;
/* 0x338 */ cXyz field_0x338;
/* 0x344 */ f32 field_0x344;
/* 0x348 */ int field_0x348;
/* 0x34C */ int field_0x34c;
/* 0x350 */ int field_0x350;
/* 0x354 */ int field_0x354;
/* 0x358 */ int field_0x358;
/* 0x35C */ int field_0x35c;
/* 0x360 */ int field_0x360;
/* 0x364 */ int field_0x364;
/* 0x368 */ f32 field_0x368;
/* 0x36C */ f32 field_0x36c;
/* 0x370 */ f32 field_0x370;
/* 0x374 */ f32 field_0x374;
/* 0x378 */ u16 field_0x378;
/* 0x37A */ u8 field_0x37a;
/* 0x37B */ u8 field_0x37b;
/* 0x37C */ u8 field_0x37c;
/* 0x37D */ u8 field_0x37d;
/* 0x37E */ u8 field_0x37e;
/* 0x37F */ u8 field_0x37f;
/* 0x380 */ u8 field_0x380;
/* 0x381 */ u8 field_0x381;
/* 0x382 */ u8 field_0x382;
/* 0x383 */ u8 field_0x383;
/* 0x384 */ u8 field_0x384;
/* 0x385 */ u8 field_0x385;
}; // Size = 0x388?
#endif /* D_KANKYO_D_KANKYO_H */
+169
View File
@@ -1,6 +1,175 @@
#ifndef D_MENU_D_MENU_WINDOW_H
#define D_MENU_D_MENU_WINDOW_H
#include "d/meter/d_meter2_info.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_controller_pad.h"
struct STControl;
struct CSTControl;
class dDlst_base_c;
class dMenu_Ring_c;
class dMenu_Collect2D_c;
class dMenu_Dmap_c;
class dMenu_Fmap_c;
class dMenu_save_c;
class dMenu_Option_c;
class dMenu_Letter_c;
class dMenu_Fishing_c;
class dMenu_Skill_c;
class dMenu_Insect_c;
class dMw_c {
public:
/* 801FA13C */ void key_wait_init(u8);
/* 801FA220 */ void ring_open_init(u8);
/* 801FA23C */ void ring_move_init(u8);
/* 801FA240 */ void ring_close_init(u8);
/* 801FA244 */ void collect_open_init(u8);
/* 801FA2D0 */ void collect_move_init(u8);
/* 801FA46C */ void collect_close_init(u8);
/* 801FA538 */ void fmap_open_init(u8);
/* 801FA55C */ void fmap_move_init(u8);
/* 801FA560 */ void fmap_close_init(u8);
/* 801FA564 */ void dmap_open_init(u8);
/* 801FA588 */ void dmap_move_init(u8);
/* 801FA58C */ void dmap_close_init(u8);
/* 801FA590 */ void collect_save_open_init(u8);
/* 801FA5E4 */ void collect_save_move_init(u8);
/* 801FA5E8 */ void collect_save_close_init(u8);
/* 801FA608 */ void collect_option_open_init(u8);
/* 801FA65C */ void collect_option_move_init(u8);
/* 801FA660 */ void collect_option_close_init(u8);
/* 801FA680 */ void collect_letter_open_init(u8);
/* 801FA6DC */ void collect_letter_move_init(u8);
/* 801FA6E0 */ void collect_letter_close_init(u8);
/* 801FA738 */ void collect_fishing_open_init(u8);
/* 801FA794 */ void collect_fishing_move_init(u8);
/* 801FA798 */ void collect_fishing_close_init(u8);
/* 801FA7F0 */ void collect_skill_open_init(u8);
/* 801FA84C */ void collect_skill_move_init(u8);
/* 801FA850 */ void collect_skill_close_init(u8);
/* 801FA8A8 */ void collect_insect_open_init(u8);
/* 801FA908 */ void collect_insect_move_init(u8);
/* 801FA90C */ void collect_insect_close_init(u8);
/* 801FA964 */ void insect_open_init(u8);
/* 801FA9E8 */ void insect_open2_init(u8);
/* 801FA9EC */ void insect_move_init(u8);
/* 801FA9F0 */ void insect_close_init(u8);
/* 801FAA48 */ void key_wait_proc();
/* 801FAFDC */ void ring_open_proc();
/* 801FB01C */ void ring_move_proc();
/* 801FB064 */ void ring_close_proc();
/* 801FB0B8 */ void collect_open_proc();
/* 801FB110 */ void collect_move_proc();
/* 801FB1A0 */ void collect_close_proc();
/* 801FB240 */ void fmap_open_proc();
/* 801FB298 */ void fmap_move_proc();
/* 801FB36C */ void fmap_close_proc();
/* 801FB3AC */ void dmap_open_proc();
/* 801FB404 */ void dmap_move_proc();
/* 801FB5DC */ void dmap_close_proc();
/* 801FB61C */ void collect_save_open_proc();
/* 801FB67C */ void collect_save_move_proc();
/* 801FB6D8 */ void collect_save_close_proc();
/* 801FB73C */ void collect_option_open_proc();
/* 801FB7AC */ void collect_option_move_proc();
/* 801FB800 */ void collect_option_close_proc();
/* 801FB81C */ void collect_letter_open_proc();
/* 801FB8AC */ void collect_letter_move_proc();
/* 801FB900 */ void collect_letter_close_proc();
/* 801FB91C */ void collect_fishing_open_proc();
/* 801FB9AC */ void collect_fishing_move_proc();
/* 801FBA00 */ void collect_fishing_close_proc();
/* 801FBA1C */ void collect_skill_open_proc();
/* 801FBAAC */ void collect_skill_move_proc();
/* 801FBB00 */ void collect_skill_close_proc();
/* 801FBB1C */ void collect_insect_open_proc();
/* 801FBBAC */ void collect_insect_move_proc();
/* 801FBC00 */ void collect_insect_close_proc();
/* 801FBC1C */ void insect_open_proc();
/* 801FBC78 */ void insect_open2_proc();
/* 801FBD08 */ void insect_move_proc();
/* 801FBD64 */ void insect_close_proc();
/* 801FBD80 */ void dMw_capture_create();
/* 801FBE14 */ void dMw_capture_delete();
/* 801FBE94 */ void dMw_ring_create(u8);
/* 801FBF60 */ void dMw_ring_delete();
/* 801FBFF8 */ void dMw_collect_create();
/* 801FC090 */ void dMw_collect_delete(bool);
/* 801FC0FC */ void dMw_fmap_create();
/* 801FC264 */ void dMw_fmap_delete(bool);
/* 801FC350 */ void dMw_dmap_create();
/* 801FC46C */ void dMw_dmap_delete(bool);
/* 801FC520 */ void dMw_save_create();
/* 801FC5D0 */ void dMw_save_delete();
/* 801FC668 */ void dMw_option_create();
/* 801FC70C */ void dMw_option_delete();
/* 801FC7BC */ void dMw_letter_create();
/* 801FC85C */ void dMw_letter_delete();
/* 801FC904 */ void dMw_fishing_create();
/* 801FC9A4 */ void dMw_fishing_delete();
/* 801FCA4C */ void dMw_skill_create();
/* 801FCAEC */ void dMw_skill_delete();
/* 801FCB94 */ void dMw_insect_create(u8);
/* 801FCC44 */ void dMw_insect_delete();
/* 801FCCEC */ void dMw_onButtonBit(u8);
/* 801FCCFC */ void dMw_offButtonBit(u8);
/* 801FCD0C */ void dMw_isButtonBit(u8);
/* 801FCD24 */ void dMw_isPush_S_Button();
/* 801FCDD8 */ void isPauseReady();
/* 801FCE08 */ void dMw_fade_out();
/* 801FCE78 */ void dMw_fade_in();
/* 801FCEE8 */ void checkCStickTrigger();
/* 801FCF84 */ void isEventCheck();
/* 801FD094 */ void markMemSize();
/* 801FD0D4 */ void checkMemSize();
/* 801FD140 */ void _create();
/* 801FD2D8 */ void _execute();
/* 801FD450 */ void _draw();
/* 801FD67C */ void _delete();
void onPauseWindow() { mPauseWindow = true; }
void offPauseWindow() { mPauseWindow = false; }
void onShowFlag() { mShowFlag |= 1; }
void offShowFlag() { mShowFlag &= ~1; }
bool isShowFlag() { return mShowFlag & 1 != 0; }
private:
u8 field_0x0[0x100];
/* 0x100 */ void* field_0x100;
/* 0x104 */ STControl* mpStick;
/* 0x108 */ CSTControl* mpCStick;
/* 0x10C */ dDlst_base_c* field_0x10c;
/* 0x110 */ dMenu_Ring_c* mRing;
/* 0x114 */ dMenu_Collect2D_c* mCollect2D;
/* 0x118 */ dMenu_Dmap_c* mDmap;
/* 0x11C */ dMenu_Fmap_c* mFmap;
/* 0x120 */ dMenu_save_c* mSave;
/* 0x124 */ dMenu_Option_c* mOption;
/* 0x128 */ dMenu_Letter_c* mLetter;
/* 0x12C */ dMenu_Fishing_c* mFishing;
/* 0x130 */ dMenu_Skill_c* mSkill;
/* 0x134 */ dMenu_Insect_c* mInsect;
/* 0x138 */ int field_0x138;
/* 0x13C */ u8 field_0x13c[8];
/* 0x144 */ u8 field_0x144;
/* 0x145 */ u8 mButtons;
/* 0x146 */ u8 field_0x146;
/* 0x147 */ u8 mShowFlag;
/* 0x148 */ u8 field_0x148;
/* 0x149 */ u8 field_0x149;
/* 0x14A */ u8 field_0x14A;
/* 0x14B */ u8 field_0x14B;
/* 0x14C */ u8 field_0x14C;
/* 0x14D */ u8 field_0x14D;
/* 0x14E */ u8 field_0x14E;
/* 0x14F */ u8 field_0x14F;
/* 0x150 */ u8 field_0x150;
/* 0x151 */ u8 field_0x151;
/* 0x152 */ u8 field_0x152;
/* 0x153 */ u8 field_0x153;
/* 0x154 */ bool mPauseWindow;
};
#endif /* D_MENU_D_MENU_WINDOW_H */
+28 -6
View File
@@ -3,6 +3,7 @@
#include "JSystem/JUtility/JUTTexture.h"
#include "d/d_resorce.h"
#include "d/menu/d_menu_window.h"
#include "d/msg/d_msg_flow.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
@@ -14,11 +15,16 @@ struct dSv_event_flag_c {
struct dMsgObject_c {
/* 802384C4 */ void setLetterNameID(u16);
/* 802379AC */ void setKillMessageFlag();
/* 8023822C */ void getStatus();
};
class dMeterMap_c {
public:
/* 8020D900 */ bool isMapOpenCheck();
/* 8020D650 */ void isEnableDispMapAndMapDispSizeTypeNo();
/* 8020D874 */ void setDispPosInsideFlg_SE_On();
/* 8020D8BC */ void setDispPosOutsideFlg_SE_On();
};
struct J2DPicture {};
@@ -41,9 +47,12 @@ struct dItem_data {
struct CPaneMgr {};
class dMeter2_c {};
class dMw_c;
class dMw_c {};
class dMeter2_c {
public:
/* 8021F6EC */ void emphasisButtonDelete();
};
class dMeter2Info_c {
public:
@@ -98,8 +107,13 @@ public:
void setMiniGameCount(s8);
void setSaveStageName(const char*);
void setWindowStatus(u8 status) {
unk186 = mWindowStatus;
mWindowStatus = status;
}
u8& getDirectUseItem() { return mDirectUseItem; }
dMeterMap_c* getMeterMapClass() { return mMeterMap; }
dMw_c* getMenuWindowClass() { return mMenuWindowClass; }
void offUseButton(int pButton) { mUseButton &= ~(u16)pButton; }
private:
@@ -187,12 +201,20 @@ private:
extern dMeter2Info_c g_meter2_info;
inline dMeterMap_c* dMeter2Info_getMeterMapClass() {
return g_meter2_info.getMeterMapClass();
}
inline void dMeter2Info_Initialize() {
g_meter2_info.init();
}
inline dMeterMap_c* dMeter2Info_getMeterMapClass() {
return g_meter2_info.getMeterMapClass();
}
inline dMw_c* dMeter2Info_getMenuWindowClass() {
return g_meter2_info.getMenuWindowClass();
}
inline void dMeter2Info_setWindowStatus(u8 status) {
g_meter2_info.setWindowStatus(status);
}
#endif /* D_METER_D_METER2_INFO_H */
+1 -1
View File
@@ -4,7 +4,7 @@
#include "d/bg/d_bg_s_acch.h"
#include "dolphin/types.h"
struct dKy_tevstr_c {};
struct dKy_tevstr_c;
class dPaPo_c {
public:
+72 -12
View File
@@ -3,30 +3,85 @@
#include "SSystem/SComponent/c_sxyz.h"
#include "SSystem/SComponent/c_xyz.h"
#include "d/kankyo/d_kankyo.h"
#include "dolphin/mtx/mtx.h"
#include "f_pc/f_pc_leaf.h"
struct JKRSolidHeap;
class dEvt_info_c {
public:
dEvt_info_c();
virtual ~dEvt_info_c();
void setEventName(char*);
void getEventName();
void beforeProc();
void onCondition(u16);
void offCondition(u16);
bool checkCommandCatch();
bool checkCommandDoor();
bool checkCommandDemoAccrpt();
void setCommand(u16 command) { mCommand = command; }
void setMapToolId(u8 id) { mMapToolId = id; }
void setEventId(s16 id) { mEventId = id; }
void setCondition(u16 condition) { mCondition = condition; }
void setArchiveName(char* name) { mArchiveName = name; }
u8 getMapToolId() { return mMapToolId; }
s16 getEventId() { return mEventId; }
u8 getIdx() { return mIndex; }
char* getArchiveName() { return mArchiveName; }
bool chkCondition(u16 condition) { return mCondition == condition; }
bool checkCommandTalk() { return mCommand == 1; }
bool checkCommandItem() { return mCommand == 4; }
private:
/* 0x04 */ u16 mCommand;
/* 0x06 */ u16 mCondition;
/* 0x08 */ s16 mEventId;
/* 0x0A */ u8 mMapToolId;
public:
/* 0x0B */ u8 mIndex;
/* 0x0C */ char* mArchiveName;
/* 0x10 */ void* field_0x10;
/* 0x14 */ void* field_0x14;
}; // Size = 0x18
struct actor_place {
cXyz mPosition;
csXyz mAngle;
u8 mRoomNo;
u8 field_0x13;
};
struct actor_attention_types {
/* 0x00 */ u32 mDistance1;
/* 0x04 */ u32 mDistance2;
/* 0x08 */ u32 mDistance3;
/* 0x0C */ cXyz mPosition;
/* 0x18 */ u32 mFlags;
}; // Size = 0x1C
class dJntCol_c;
class fopAc_ac_c : public leafdraw_class {
public:
/* 0x0C0 */ int mAcType;
/* 0x0C4 */ create_tag_class mAcTg;
/* 0x0D8 */ create_tag_class mDwTg;
/* 0x0EC */ profile_method_class* mSubMtd;
/* 0x0F0 */ JKRSolidHeap* unk_0x0F0;
/* 0x0F4 */ u8 unk_0x0F4[0x496 - 0xF4];
/* 0x496 */ u8 unk_0x496;
/* 0x497 */ u8 unk_0x497[0x499 - 0x497];
/* 0x499 */ s8 unk_0x499;
/* 0x49A */ u8 unk_0x49A[0x4A8 - 0x49A];
/* 0x0F0 */ JKRSolidHeap* mHeap;
/* 0x0F4 */ dEvt_info_c mEvtInfo;
/* 0x10C */ dKy_tevstr_c mTevStr;
/* 0x494 */ s16 mSetID;
/* 0x496 */ u8 mGroup;
/* 0x497 */ u8 mCullType;
/* 0x498 */ u8 mDemoActorId;
/* 0x499 */ s8 mSubtype;
/* 0x49C */ u32 mStatus;
/* 0x4A0 */ u32 mCondition;
/* 0x4A4 */ u32 mParentPcId;
/* 0x4A8 */ actor_place mOrig;
/* 0x4BC */ actor_place mNext;
/* 0x4D0 */ actor_place mCurrent;
@@ -44,18 +99,23 @@ public:
/* 0x514 */ f32 mRadius;
} mSphere;
} mCull;
/* 0x520 */ u8 unk_0x520[0xC];
/* 0x520 */ float mCullSizeFar;
/* 0x524 */ void* field_0x524; // possibly J3DModel*
/* 0x528 */ dJntCol_c* mJntCol;
/* 0x52C */ f32 mSpeedF;
/* 0x530 */ f32 mGravity;
/* 0x534 */ f32 mMaxFallSpeed;
/* 0x538 */ cXyz mEyePos;
/* 0x544 */ actor_attention_types mAttentionInfo;
/* 0x560 */ u8 field_0x560[0x10]; // not 100% sure on this
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
fopAc_ac_c();
~fopAc_ac_c();
static u8 stopStatus[4];
static u32 stopStatus;
const cXyz& getPosition() const { return mCurrent.mPosition; }
const csXyz& getAngle() const { return mCurrent.mAngle; }
}; // Size: unknown
}; // Size: 0x570?
#endif
+16
View File
@@ -76,6 +76,22 @@ inline s16 fopAcM_GetName(fopAc_ac_c* pActor) {
return fpcM_GetName(pActor);
}
inline u32 fopAcM_checkStatus(fopAc_ac_c* pActor, u32 status) {
return pActor->mStatus & status;
}
inline u32 fopAcM_checkCarryNow(fopAc_ac_c* pActor) {
return pActor->mStatus & 0x2000;
}
inline u32 fopAcM_checkHookCarryNow(fopAc_ac_c* pActor) {
return fopAcM_checkStatus(pActor, 0x100000);
}
inline u32 fopAcM_GetParam(const void* pActor) {
return fpcM_GetParam(pActor);
}
void* fopAcM_FastCreate(s16 pProcTypeID, FastCreateReqFunc param_2, void* param_3, void* pData);
void fopAcM_setStageLayer(void*);
int fopAcM_setRoomLayer(void*, int);
+3
View File
@@ -18,6 +18,9 @@ inline u32 fpcM_GetID(const void* pProc) {
inline s16 fpcM_GetName(const void* pActor) {
return ((base_process_class*)pActor)->mProcName;
}
inline u32 fpcM_GetParam(const void* pActor) {
return ((base_process_class*)pActor)->mParameters;
}
void fpcM_Draw(void* pProc);
s32 fpcM_DrawIterater(fpcM_DrawIteraterFunc pFunc);
+42
View File
@@ -3,4 +3,46 @@
#include "dolphin/types.h"
struct mDoRstData {
/* 0x00 */ int mReset;
/* 0x04 */ int mResetPrepare;
/* 0x08 */ int m3ButtonReset;
/* 0x0C */ int m3ButtonResetPort;
/* 0x10 */ bool mShutdown;
/* 0x11 */ bool mReturnToMenu;
/* 0x12 */ u8 mLogoScnFlag;
/* 0x13 */ u8 mProgSeqFlag;
/* 0x14 */ u8 mProgChgFlag;
/* 0x15 */ u8 mWarningDispFlag;
}; // Size = 0x18
class mDoRst {
public:
static void offReturnToMenu() { mResetData->mReturnToMenu = false; }
static void offShutdown() { mResetData->mShutdown = false; }
static void setWarningDispFlag(u8 flag) { mResetData->mWarningDispFlag = flag; }
static void setProgChgFlag(u8 flag) { mResetData->mProgChgFlag = flag; }
static void setProgSeqFlag(u8 flag) { mResetData->mProgSeqFlag = flag; }
static void setLogoScnFlag(u8 flag) { mResetData->mLogoScnFlag = flag; }
static void set3ButtonResetPort(int port) { mResetData->m3ButtonResetPort = port; }
static void off3ButtonReset() { mResetData->m3ButtonReset = 0; }
static void offResetPrepare() { mResetData->mResetPrepare = 0; }
static void offReset() { mResetData->mReset = 0; }
static u8 getLogoScnFlag() { return mResetData->mLogoScnFlag; }
static bool isReturnToMenu() { return mResetData->mReturnToMenu; }
static bool isShutdown() { return mResetData->mShutdown; }
static int isReset() { return mResetData->mReset; }
static int get3ButtonResetPort() { return mResetData->m3ButtonResetPort; }
static int is3ButtonReset() { return mResetData->m3ButtonReset; }
static void onReset() { mResetData->mReset = 1; }
static void onReturnToMenu() { mResetData->mReturnToMenu = true; }
static void on3ButtonReset() { mResetData->m3ButtonReset = 1; }
static void onShutdown() { mResetData->mShutdown = true; }
static mDoRstData* getResetData();
static void setResetData(mDoRstData* rstData) { mResetData = rstData; }
static mDoRstData* mResetData;
};
#endif /* M_DO_M_DO_RESET_H */
+20
View File
@@ -3,4 +3,24 @@
#include "dolphin/types.h"
// move/fix later
template <typename T>
class JASGlobalInstance {
public:
JASGlobalInstance(bool param_0) {
if (param_0) {
sInstance = this;
}
};
~JASGlobalInstance() {
if (sInstance == this) {
sInstance = NULL;
}
};
T* getInstance() { return sInstance; };
static T* sInstance;
};
#endif /* M_DO_M_DO_AUDIO_H */
+54
View File
@@ -1,6 +1,60 @@
#ifndef M_DO_M_DO_CONTROLLER_PAD_H
#define M_DO_M_DO_CONTROLLER_PAD_H
#include "JSystem/JUtility/JUTGamePad.h"
#include "SSystem/SComponent/c_API_controller_pad.h"
#include "dolphin/types.h"
class mDoCPd_c {
public:
enum { PAD_0, PAD_1, PAD_2, PAD_3 };
void create();
void read();
void convert(interface_of_controller_pad*, JUTGamePad*);
void LRlockCheck(interface_of_controller_pad*);
void recalibrate();
static interface_of_controller_pad& getCpadInfo(u32 pad) { return m_cpadInfo[pad]; }
static JUTGamePad* getGamePad(u32 pad) { return m_gamePad[pad]; }
static u32 getTrig(u32 pad) { return getCpadInfo(pad).mPressedButtonFlags; }
static u32 getTrigLockL(u32 pad) { return getCpadInfo(pad).mTrigLockL; }
static u32 getTrigLockR(u32 pad) { return getCpadInfo(pad).mTrigLockR; }
static u32 getTrigUp(u32 pad) { return getTrig(pad) & CButton::DPAD_UP; }
static u32 getTrigDown(u32 pad) { return getTrig(pad) & CButton::DPAD_DOWN; }
static u32 getTrigLeft(u32 pad) { return getTrig(pad) & CButton::DPAD_LEFT; }
static u32 getTrigRight(u32 pad) { return getTrig(pad) & CButton::DPAD_RIGHT; }
static u32 getTrigL(u32 pad) { return getTrig(pad) & CButton::L; }
static u32 getTrigR(u32 pad) { return getTrig(pad) & CButton::R; }
static u32 getTrigA(u32 pad) { return getTrig(pad) & CButton::A; }
static u32 getTrigB(u32 pad) { return getTrig(pad) & CButton::B; }
static u32 getTrigZ(u32 pad) { return getTrig(pad) & CButton::Z; }
static u32 getTrigY(u32 pad) { return getTrig(pad) & CButton::Y; }
static u32 getTrigX(u32 pad) { return getTrig(pad) & CButton::X; }
static u32 getTrigStart(u32 pad) { return getTrig(pad) & CButton::START; }
static u32 getHold(u32 pad) { return getCpadInfo(pad).mButtonFlags; }
static u32 getHoldLockL(u32 pad) { return getCpadInfo(pad).mHoldLockL; }
static u32 getHoldLockR(u32 pad) { return getCpadInfo(pad).mHoldLockR; }
static u32 getHoldUp(u32 pad) { return getHold(pad) & CButton::DPAD_UP; }
static u32 getHoldDown(u32 pad) { return getHold(pad) & CButton::DPAD_DOWN; }
static u32 getHoldLeft(u32 pad) { return getHold(pad) & CButton::DPAD_LEFT; }
static u32 getHoldRight(u32 pad) { return getHold(pad) & CButton::DPAD_RIGHT; }
static u32 getHoldL(u32 pad) { return getHold(pad) & CButton::L; }
static u32 getHoldR(u32 pad) { return getHold(pad) & CButton::R; }
static u32 getHoldA(u32 pad) { return getHold(pad) & CButton::A; }
static u32 getHoldB(u32 pad) { return getHold(pad) & CButton::B; }
static u32 getHoldZ(u32 pad) { return getHold(pad) & CButton::Z; }
static u32 getHoldY(u32 pad) { return getHold(pad) & CButton::Y; }
static u32 getHoldX(u32 pad) { return getHold(pad) & CButton::X; }
static f32 getStickX(u32 pad) { return getCpadInfo(pad).mMainStickPosX; }
static f32 getStickY(u32 pad) { return getCpadInfo(pad).mMainStickPosY; }
static f32 getSubStickX(u32 pad) { return getCpadInfo(pad).mCStickPosX; }
static f32 getSubStickY(u32 pad) { return getCpadInfo(pad).mCStickPosY; }
static f32 getAnalogR(u32 pad) { return getCpadInfo(pad).mTriggerRight; }
static f32 getAnalogL(u32 pad) { return getCpadInfo(pad).mTriggerLeft; }
static JUTGamePad* m_gamePad[4];
static interface_of_controller_pad m_cpadInfo[4];
};
#endif /* M_DO_M_DO_CONTROLLER_PAD_H */
+33
View File
@@ -1,6 +1,39 @@
#ifndef M_DO_M_DO_MAIN_H
#define M_DO_M_DO_MAIN_H
#include "JSystem/JKernel/JKRExpHeap.h"
#include "dolphin/types.h"
class HeapCheck {
public:
void CheckHeap1(void);
s32 getUsedCount(void) const;
void heapDisplay(void) const;
u32& getUsedCountRef() { return mUsedCount; }
u32& getTotalUsedSizeRef() { return mTotalUsedSize; }
JKRExpHeap* getHeap() { return mHeap; }
void setHeap(JKRExpHeap* i_heap) { mHeap = i_heap; }
void setHeapSize(u32 i_size) { mTargetHeapSize = i_size; }
s32 getMaxTotalUsedSize() { return mMaxTotalUsedSize; }
s32 getMaxTotalFreeSize() { return mMaxTotalFreeSize; }
private:
/* 0x00 */ char* mName;
/* 0x04 */ char* mJName;
/* 0x08 */ JKRExpHeap* mHeap;
/* 0x0C */ s32 mMaxTotalUsedSize;
/* 0x10 */ s32 mMaxTotalFreeSize;
/* 0x14 */ u8 unk20[8];
/* 0x1C */ u32 mTargetHeapSize;
/* 0x20 */ u32 mUsedCount;
/* 0x24 */ u32 mTotalUsedSize;
};
struct mDoMain {
static u8 COPYDATE_STRING[18 + 2 /* padding */];
static u32 memMargin;
static u8 sPowerOnTime[4]; // should be OSTime
static u8 sHungUpTime[4]; // should be OSTime
};
#endif /* M_DO_M_DO_MAIN_H */