move d_a_alink and some related stuff (#130)

* clean up d_a_player

* move some of daalink

* more daalink / daplayer

* setup some daalink members

* rest of daalink members setup

* remove comment

* few more matches

* remove asm

* more matches

* more matches + move e_wb_class

* fix some d_save classes

Co-authored-by: lepelog <lepelog@users.noreply.github.com>
This commit is contained in:
TakaRikka
2021-05-23 03:09:59 -07:00
committed by GitHub
parent 462d71cbef
commit e915df66c8
196 changed files with 5322 additions and 6569 deletions
+2935 -1
View File
File diff suppressed because it is too large Load Diff
+27
View File
@@ -1,6 +1,33 @@
#ifndef D_A_D_A_HORSE_STATIC_H
#define D_A_D_A_HORSE_STATIC_H
#include "Z2AudioLib/Z2Creature.h"
#include "dolphin/types.h"
class e_wb_class {
public:
BOOL checkWait(void);
void setPlayerRideNow(void);
void setPlayerRide(void);
void getOff(void);
BOOL checkDownDamage(void);
u8 checkNormalRideMode(void) const;
void setRunRideMode(void);
private:
u8 unk0[0x5b4];
s16 unk1460;
u8 unk1462[0x36];
Z2CreatureRide mZ2Ride;
u8 unk1673[7];
s16 unk1680;
u16 unk1682;
u8 unk1684[0x2a];
u16 unk1726;
};
class daTagHstop_c {
static daTagHstop_c* m_top;
};
#endif /* D_A_D_A_HORSE_STATIC_H */
+121 -50
View File
@@ -2,24 +2,51 @@
#define D_A_D_A_PLAYER_H
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
#include "JSystem/JUtility/JUTTexture.h"
#include "SSystem/SComponent/c_bg_s_poly_info.h"
#include "d/d_drawlist.h"
#include "d/d_resorce.h"
#include "d/d_stage.h"
#include "d/save/d_save.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
class daPy_sightPacket_c {
/* 80140CDC */ ~daPy_sightPacket_c();
virtual void test(); // temp to build OK, remove later
/* 8015F1A0 */ virtual void draw();
/* 8015F2FC */ void setSight();
/* 8015F384 */ void setSightImage(ResTIMG*);
private:
/* 0x04 */ bool mDrawFlag;
/* 0x05 */ u8 field_0x5[3];
/* 0x08 */ cXyz mPos;
/* 0x14 */ Mtx field_0x14;
/* 0x44 */ ResTIMG* field_0x44;
/* 0x48 */ ResTIMG* field_0x48;
};
struct daPy_boomerangMove_c {
/* 8015E5B0 */ void initOffset(cXyz const*);
/* 8015E654 */ void posMove(cXyz*, s16*, fopAc_ac_c*, s16);
/* 8015E87C */ void bgCheckAfterOffset(cXyz const*);
};
class daPy_anmHeap_c {
public:
enum daAlinkHEAP_TYPE {};
/* 80140DCC */ void __defctor();
daPy_anmHeap_c(u32);
~daPy_anmHeap_c();
void initData();
void mallocBuffer();
void createHeap(daPy_anmHeap_c::daAlinkHEAP_TYPE);
void loadData(u16);
void loadDataIdx(u16);
void loadDataPriIdx(u16);
void loadDataDemoRID(u16, u16);
J3DAnmBase* loadData(u16);
J3DAnmBase* loadDataIdx(u16);
J3DAnmBase* loadDataPriIdx(u16);
J3DAnmBase* loadDataDemoRID(u16, u16);
void setAnimeHeap();
u16 getIdx() const { return mIdx; }
@@ -56,6 +83,8 @@ private:
#pragma pack(push, 1)
class daPy_frameCtrl_c : public J3DFrameCtrl {
public:
/* 80140D24 */ ~daPy_frameCtrl_c();
/* 80140D80 */ daPy_frameCtrl_c();
bool checkAnmEnd(void);
void updateFrame(void);
void setFrameCtrl(u8, short, short, float, float);
@@ -78,6 +107,11 @@ private:
class daPy_demo_c {
public:
void setSpecialDemoType();
void setDemoType(u16 pType) { mDemoType = pType; }
u16 getDemoType() const { return mDemoType; }
private:
/* 0x00 */ u16 mDemoType;
/* 0x02 */ s16 mDemoMoveAngle;
@@ -91,7 +125,7 @@ private:
}; // Size = 0x24
class daPy_py_c : public fopAc_ac_c {
private:
public:
/* 0x0538 */ u8 field_0x538[0x32];
/* 0x056A */ u8 field_0x56a;
/* 0x056B */ u8 field_0x56b[5];
@@ -116,16 +150,26 @@ private:
/* 0x0604 */ daPy_demo_c mDemo;
public:
enum daPy_FLG0 { EquipHeavyBoots = 0x2000000 };
enum daPy_FLG2 {};
enum daPy_FLG0 {
EquipHeavyBoots = 0x2000000,
MagneBootsOn = 0x1000,
UnkFrollCrashFlg2 = 0x10,
UnkFrollCrashFlg1 = 0x8
};
enum daPy_FLG1 { Wolf = 0x2000000, ThrowDamage = 0x4000 };
enum daPy_FLG2 { BoarSingleBattle = 0x1800000, UnkArmor = 0x80000, Unk = 1 };
enum daPy_FLG3 { CopyRodThrowAfter = 0x40000 };
enum daPy_ERFLG0 {};
enum daPy_ERFLG1 { GanonFinish = 0x80000000, UnkForcePutPos = 0x2000 };
enum daPy_ERFLG2 {};
enum daPy_RFLG0 {};
void setParamData(int, int, int, int);
void checkFishingRodItem(int);
int checkFishingRodItem(int);
void checkBombItem(int);
void checkBottleItem(int);
void checkDrinkBottleItem(int);
void checkOilBottleItem(int);
int checkOilBottleItem(int);
void checkOpenBottleItem(int);
void checkBowItem(int);
void checkHookshotItem(int);
@@ -156,23 +200,38 @@ public:
void setMidnaFaceNum(int);
int checkNoResetFlg0(daPy_FLG0) const;
int checkEquipHeavyBoots() const;
u32 checkBoarSingleBattle(void) const;
u32 checkEndResetFlg0(daPy_ERFLG0) const;
int checkBoarSingleBattle(void) const;
int checkEndResetFlg0(daPy_ERFLG0) const;
void onNoResetFlg2(daPy_py_c::daPy_FLG2);
void offNoResetFlg0(daPy_py_c::daPy_FLG0);
int checkEndResetFlg2(daPy_py_c::daPy_ERFLG2) const;
bool getSumouMode() const;
int checkNoResetFlg3(daPy_py_c::daPy_FLG3) const;
void checkShieldGet();
void onNoResetFlg0(daPy_py_c::daPy_FLG0);
int checkEndResetFlg1(daPy_py_c::daPy_ERFLG1) const;
void offNoResetFlg1(daPy_py_c::daPy_FLG1);
void offNoResetFlg2(daPy_py_c::daPy_FLG2);
int checkWolf() const;
void checkSwordGet();
int checkResetFlg0(daPy_py_c::daPy_RFLG0) const;
int checkNoResetFlg2(daPy_py_c::daPy_FLG2) const;
int checkMagneBootsOn() const;
virtual void unk();
virtual bool getMidnaAtnPos(void) const;
virtual void setMidnaMsgNum(fopAc_ac_c*, u16);
virtual u32 getModelMtx(void);
virtual u32 getInvMtx(void);
virtual Mtx* getModelMtx(void);
virtual Mtx* getInvMtx(void);
virtual cXyz* getShadowTalkAtnPos(void);
virtual float getGroundY();
virtual u32 getLeftItemMatrix(void);
virtual u32 getRightItemMatrix(void);
virtual u32 getLeftHandMatrix(void);
virtual u32 getRightHandMatrix(void);
virtual u32 getLinkBackBone1Matrix(void);
virtual u32 getWolfMouthMatrix(void);
virtual u32 getWolfBackbone2Matrix(void);
virtual Mtx* getLeftItemMatrix(void);
virtual Mtx* getRightItemMatrix(void);
virtual Mtx* getLeftHandMatrix(void);
virtual Mtx* getRightHandMatrix(void);
virtual Mtx* getLinkBackBone1Matrix(void);
virtual Mtx* getWolfMouthMatrix(void);
virtual Mtx* getWolfBackbone2Matrix(void);
virtual bool getBottleMtx(void);
virtual bool checkPlayerGuard(void) const;
virtual bool checkPlayerFly() const;
@@ -216,45 +275,45 @@ public:
virtual bool checkHorseElecDamage(void) const;
virtual float getBaseAnimeFrameRate(void) const;
virtual float getBaseAnimeFrame(void) const;
virtual float setAnimeFrame(float);
virtual void setAnimeFrame(float);
virtual bool checkWolfLock(fopAc_ac_c*) const;
virtual bool cancelWolfLock(fopAc_ac_c*) const;
virtual bool cancelWolfLock(fopAc_ac_c*);
virtual bool getAtnActorID(void) const;
virtual bool getItemID(void) const;
virtual s32 getItemID(void) const;
virtual bool getGrabActorID(void) const;
virtual bool exchangeGrabActor(fopAc_ac_c*);
virtual bool setForceGrab(fopAc_ac_c*, bool, bool);
virtual bool setForceGrab(fopAc_ac_c*, int, int);
virtual void setForcePutPos(cXyz const&);
virtual bool checkPlayerNoDraw(void);
virtual bool checkRopeTag(void);
virtual void voiceStart(u32);
virtual void seStartOnlyReverb(u32);
virtual void seStartOnlyReverbLevel(u32);
virtual float setOutPower(float, short, bool);
virtual void setGrabCollisionOffset(float, float, void*);
virtual void setOutPower(float, short, int);
virtual void setGrabCollisionOffset(float, float, cBgS_PolyInfo*);
virtual void onMagneGrab(float, float);
virtual void onFrollCrashFlg(u8, bool);
virtual bool getModelJoboolMtx(u16);
virtual void onFrollCrashFlg(u8, int);
virtual bool getModelJointMtx(u16);
virtual bool getHeadMtx(void);
virtual bool setHookshotCarryOffset(u32, cXyz const*);
virtual bool setHookshotCarryOffset(unsigned int, cXyz const*);
virtual bool checkIronBallReturn(void) const;
virtual bool checkIronBallGroundStop(void) const;
virtual bool checkSingleBoarBattleSecondBowReady(void) const;
virtual bool checkPoboolSubWindowMode(void) const;
virtual void setClothesChange(bool);
virtual bool checkPointSubWindowMode(void) const;
virtual void setClothesChange(int);
virtual void setPlayerPosAndAngle(float (*)[4]);
virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*);
virtual void setPlayerPosAndAngle(cXyz const*, short, bool);
virtual bool setThrowDamage(short, float, float, bool, bool, bool);
virtual bool checkSetNpcTks(cXyz*, bool, bool);
virtual void setPlayerPosAndAngle(cXyz const*, short, int);
virtual bool setThrowDamage(short, float, float, int, int, int);
virtual bool checkSetNpcTks(cXyz*, int, int);
virtual bool setRollJump(float, float, short);
virtual void playerStartCollisionSE(u32, u32);
virtual void changeTextureAnime(u16, u16, bool);
virtual void changeTextureAnime(u16, u16, int);
virtual void cancelChangeTextureAnime(void);
virtual void cancelDungeonWarpReadyNeck(void);
virtual void onSceneChangeArea(u8, u8, fopAc_ac_c*);
virtual void onSceneChangeAreaJump(u8, u8, fopAc_ac_c*);
virtual void onSceneChangeDead(u8, bool);
virtual void onSceneChangeDead(u8, int);
virtual bool checkHorseRide() const;
virtual bool checkBoarRide() const;
virtual bool checkCanoeRide() const;
@@ -263,23 +322,23 @@ public:
virtual bool getSpinnerActor(void);
virtual bool checkHorseRideNotReady(void) const;
virtual bool checkArrowChargeEnd(void) const;
virtual float getSearchBallScale(void) const;
virtual void getSearchBallScale(void) const;
virtual bool checkFastShotTime(void);
virtual bool checkNoEquipItem(void) const;
virtual bool checkFireMaterial(void) const;
virtual bool checkKandelaarSwing(bool) const;
virtual bool checkKandelaarSwing(int) const;
virtual bool getBoardCutTurnOffsetAngleY(void) const;
virtual bool getMagneHitPos(void);
virtual bool getMagneBootsTopVec(void);
virtual cXyz* getMagneHitPos(void);
virtual cXyz* getMagneBootsTopVec(void);
virtual bool getKandelaarFlamePos();
virtual bool checkUseKandelaar(bool);
virtual bool checkUseKandelaar(int);
virtual void setDkCaught(fopAc_ac_c*);
virtual void onPressedDamage(cXyz const&, short);
virtual bool checkPriActorOwn(fopAc_ac_c const*) const;
virtual bool onWolfEnemyBiteAll(fopAc_ac_c*, daPy_FLG2);
virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const*) const;
virtual void setWolfEnemyHangBiteAngle(short);
virtual void setKandelaarMtx(float (*)[4], bool, bool);
virtual void setKandelaarMtx(float (*)[4], int, int);
virtual bool getStickAngleFromPlayerShape(short*) const;
virtual bool checkSpinnerPathMove(void);
virtual bool checkSpinnerTriggerAttack(void);
@@ -290,13 +349,13 @@ public:
virtual bool checkCanoeFishingGetRight(void) const;
virtual bool checkBeeChildDrink(void) const;
virtual void skipPortalObjWarp(void);
virtual bool checkTreasureRupeeReturn(bool) const;
virtual bool checkTreasureRupeeReturn(int) const;
virtual void setSumouReady(fopAc_ac_c*);
virtual bool checkAcceptDungeonWarpAlink(bool);
virtual bool checkAcceptDungeonWarpAlink(int);
virtual bool getSumouCounter(void) const;
virtual bool checkSumouWithstand(void) const;
virtual void cancelGoronThrowEvent(void);
virtual void setSumouGraspCancelCount(bool);
virtual void setSumouGraspCancelCount(int);
virtual void setSumouPushBackDirection(short);
virtual void setSumouLoseHeadUp(void);
virtual s16 getGiantPuzzleAimAngle(void) const;
@@ -318,7 +377,7 @@ public:
virtual bool checkMetamorphose(void) const;
virtual bool checkWolfDownAttackPullOut(void) const;
virtual bool checkBootsOrArmorHeavy(void) const;
virtual bool getBottleOpenAppearItem(void) const;
virtual s32 getBottleOpenAppearItem(void) const;
virtual bool checkItemSwordEquip(void) const;
virtual float getSinkShapeOffset(void) const;
virtual bool checkSinkDead(void) const;
@@ -329,10 +388,22 @@ public:
virtual bool checkCopyRodEquip(void) const;
virtual bool checkCutJumpMode(void) const;
inline void onNoResetFlg0(int pFlg) { mNoResetFlg0 |= pFlg; }
inline void onNoResetFlg3(int pFlg) { mNoResetFlg3 |= pFlg; }
inline void offNoResetFlg3(int pFlg) { mNoResetFlg3 &= ~pFlg; }
// inline fopAc_ac_c& getActor() { return mActor; }
inline bool getSumouCameraMode() const {
bool sumouCameraMode = false;
if (field_0x56a != 0 && field_0x56a < 0x26) {
sumouCameraMode = true;
}
return sumouCameraMode;
}
// some functions use these function as an inline
// is there a better way to handle this?
int i_checkNoResetFlg0(daPy_FLG0 pFlag) const { return mNoResetFlg0 & pFlag; }
int i_checkNoResetFlg1(daPy_FLG1 pFlag) const { return mNoResetFlg1 & pFlag; }
int i_checkNoResetFlg2(daPy_FLG2 pFlag) const { return mNoResetFlg2 & pFlag; }
void i_onNoResetFlg0(int pFlg) { mNoResetFlg0 |= pFlg; }
void i_onEndResetFlg1(daPy_ERFLG1 pFlg) { mEndResetFlg1 |= pFlg; }
int i_checkWolf() { return i_checkNoResetFlg1(Wolf); }
static u8 m_midnaActor[4];
};
+9 -1
View File
@@ -8,6 +8,7 @@
#include "SSystem/SComponent/c_m3d_g_pla.h"
#include "d/a/d_a_player.h"
#include "d/bg/d_bg_s_gnd_chk.h"
#include "d/bg/d_bg_s_lin_chk.h"
#include "d/bg/d_bg_s_roof_chk.h"
#include "d/bg/d_bg_s_wtr_chk.h"
#include "dolphin/types.h"
@@ -69,6 +70,11 @@ public:
/* 800773EC */ void OnWallSort();
/* 800773FC */ void ChkWallSort();
/* 80077408 */ void ChkLineDown();
/* 800D00D0 */ void ChkRoofHit() const;
/* 800D00DC */ void ClrGroundHit();
/* 80141404 */ void ChkGroundHit() const;
float GetGroundH() const { return mGroundH; }
private:
/* 0x000 */ cBgS_Chk field_0x000;
@@ -108,6 +114,8 @@ private:
/* 0x1D4 */ u8 mWtrChkMode;
};
class dBgS_LinkAcch : public dBgS_Acch {};
class dBgS_LinkAcch : public dBgS_Acch {
/* 80140F30 */ ~dBgS_LinkAcch();
};
#endif /* D_BG_D_BG_S_ACCH_H */
+4 -1
View File
@@ -15,7 +15,10 @@ private:
/* 0x3C */ dBgS_Chk mChk;
}; // Size = 0x54
class dBgS_LinkGndChk : dBgS_GndChk {};
class dBgS_LinkGndChk : dBgS_GndChk {
virtual void temp(); // temp to build OK
/* 80140EB8 */ virtual ~dBgS_LinkGndChk();
};
class dBgS_ObjGndChk : dBgS_GndChk {};
+2
View File
@@ -6,6 +6,8 @@
class cBgS_GrpPassChk {
public:
~cBgS_GrpPassChk();
void* vtable;
};
class dBgS_GrpPassChk : public cBgS_GrpPassChk {
+40
View File
@@ -1,6 +1,46 @@
#ifndef D_BG_D_BG_S_LIN_CHK_H
#define D_BG_D_BG_S_LIN_CHK_H
#include "SSystem/SComponent/c_bg_s_lin_chk.h"
#include "d/bg/d_bg_s_chk.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
class dBgS_LinChk {
public:
/* 80077C68 */ dBgS_LinChk();
/* 80077CDC */ ~dBgS_LinChk();
/* 80077D64 */ void Set(cXyz const*, cXyz const*, fopAc_ac_c const*);
private:
/* 0x00 */ cBgS_LinChk mLinChk;
/* 0x58 */ dBgS_Chk mChk;
};
class dBgS_LinkLinChk : dBgS_LinChk {
public:
/* 80078030 */ dBgS_LinkLinChk();
/* 8007808C */ ~dBgS_LinkLinChk();
};
class dBgS_RopeLinChk : dBgS_LinChk {
/* 8007838C */ dBgS_RopeLinChk();
/* 800783E8 */ ~dBgS_RopeLinChk();
};
class dBgS_BoomerangLinChk : dBgS_LinChk {
/* 800782B8 */ dBgS_BoomerangLinChk();
/* 80078314 */ ~dBgS_BoomerangLinChk();
};
class dBgS_ArrowLinChk : dBgS_LinChk {
/* 800781D8 */ dBgS_ArrowLinChk();
/* 80078240 */ ~dBgS_ArrowLinChk();
};
class dBgS_ObjLinChk : dBgS_LinChk {
/* 80077F5C */ dBgS_ObjLinChk();
/* 80077FB8 */ ~dBgS_ObjLinChk();
};
#endif /* D_BG_D_BG_S_LIN_CHK_H */
+2
View File
@@ -6,6 +6,8 @@
class cBgS_PolyPassChk {
public:
~cBgS_PolyPassChk();
void* vtable;
};
class dBgS_PolyPassChk : public cBgS_PolyPassChk {
+5 -1
View File
@@ -12,6 +12,7 @@ public:
/* 80078FF4 */ dBgS_RoofChk();
/* 80079090 */ ~dBgS_RoofChk();
/* 80079124 */ void Init();
/* 800B146C */ void SetPos(cXyz const&);
private:
/* 0x00 */ cBgS_PolyInfo field_0x00;
@@ -22,6 +23,9 @@ private:
/* 0x4C */ float mNowY;
}; // Size = 0x50
class dBgS_LinkRoofChk : dBgS_RoofChk {};
class dBgS_LinkRoofChk : dBgS_RoofChk {
public:
/* 80140E40 */ ~dBgS_LinkRoofChk();
};
#endif /* D_BG_D_BG_S_ROOF_CHK_H */
+2
View File
@@ -152,6 +152,7 @@ public:
/* 80084954 */ void MoveCAt(cXyz&);
/* 800849C4 */ void MoveCTg(cXyz&);
/* 80084D60 */ ~dCcD_Cyl();
dCcD_Cyl();
private:
/* 0x104 */ cCcD_CylAttr mCylAttr;
@@ -176,6 +177,7 @@ public:
/* 80084824 */ void CalcAtVec();
/* 80084854 */ void CalcTgVec();
/* 8008506C */ ~dCcD_Cps();
dCcD_Cps();
private:
/* 0x104 */ cCcD_CpsAttr mCpsAttr;
+3 -18
View File
@@ -1,6 +1,7 @@
#ifndef D_COM_D_COM_INF_GAME_H
#define D_COM_D_COM_INF_GAME_H
#include "d/a/d_a_alink.h"
#include "d/bg/d_bg_s.h"
#include "d/cc/d_cc_s.h"
#include "d/d_attention.h"
@@ -13,16 +14,6 @@
#include "d/save/d_save.h"
#include "dolphin/types.h"
struct JKRExpHeap {
/* 802CEE2C */ void create(u32, JKRHeap*, bool);
};
struct daAlink_c {
/* 800BDE48 */ void setLastSceneMode(u32*);
};
struct daHorse_c {};
struct dTimer_c {
/* 8025D524 */ void deleteCheck();
/* 8025D618 */ void start(int, s16);
@@ -392,23 +383,17 @@ public:
u8 setWorldDark() { return mWorldDark; }
dSv_player_c& getPlayer() { return info.getPlayer(); }
dSv_save_c& getSaveFile() { return info.getSaveFile(); }
dSv_save_c& getSaveFile() { return info.getSavedata(); }
u32 getNowVibration() { return play.getNowVibration(); }
dDlst_peekZ_c& getdlstPeekZ() { return draw_list_list.dlstPeekZ; }
dComIfG_play_c& getPlay() { return play; }
dSv_memory_c& getMemory() { return info.getMemory(); }
dSv_event_c& getEvent() { return info.getEvent(); }
dSv_event_c& getEvent() { return info.getTmp(); }
dSv_info_c& getInfo() { return info; }
inline dDlst_list_c& getDrawlist() { return draw_list_list; }
private:
/* 0x00000 */ dSv_info_c info;
/* 0x00EEC */ u8 field_0xeec[0x38];
/* 0x00F24 */ u32 saveTotalTime;
/* 0x00F28 */ u32 saveStartTime;
/* 0x00F2C */ u32 field_0xf2c;
/* 0x00F30 */ u32 field_0xf30;
/* 0x00F34 */ u32 field_0xf34;
/* 0x00F38 */ dComIfG_play_c play;
/* 0x05F64 */ dDlst_list_c draw_list_list;
/* 0x1C110 */ u8 field_0x1C114[0x1E8];
+5 -12
View File
@@ -1,21 +1,13 @@
#ifndef D_D_DRAWLIST_H
#define D_D_DRAWLIST_H
#include "JSystem/J3DGraphBase/J3DPacket.h"
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/gx/GXTexture.h"
#include "dolphin/mtx/mtx44.h"
#include "dolphin/mtx/mtxvec.h"
#include "dolphin/types.h"
struct J3DPacket {};
struct _GXColor;
struct J3DDrawBuffer {
/* 80324F08 */ void initialize();
/* 80324F70 */ void allocBuffer(u32);
/* 80325008 */ ~J3DDrawBuffer();
/* 80325068 */ void frameInit();
/* 8032548C */ void entryImm(J3DPacket*, u16);
/* 803254AC */ void draw() const;
};
class dDlst_FileInfo_c {
public:
void draw(void);
@@ -59,6 +51,7 @@ private:
class dDlst_base_c {
public:
virtual void temp(); // temp to build OK, remove later
virtual void draw();
};
+29
View File
@@ -1,6 +1,35 @@
#ifndef D_D_EYE_HL_H
#define D_D_EYE_HL_H
#include "JSystem/J3DGraphAnimator/J3DModelData.h"
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
#include "JSystem/JUtility/JUTTexture.h"
#include "dolphin/types.h"
class dEyeHL_c;
class dEyeHL_mng_c {
public:
/* 8009CA48 */ void update();
/* 8009CB14 */ void entry(dEyeHL_c*);
/* 8009CB34 */ void remove(dEyeHL_c*);
static u8 m_obj[4 + 4 /* padding */];
private:
/* 0x00 */ void* vtable;
/* 0x04 */ ResTIMG* field_0x04;
/* 0x08 */ u16 field_0x08;
/* 0x0A */ u8 field_0x0a[2];
/* 0x0C */ dEyeHL_mng_c* field_0x0c;
/* 0x10 */ dEyeHL_mng_c* field_0x10;
};
class dEyeHL_c : public dEyeHL_mng_c {
public:
/* 8009C964 */ void entry(J3DModelData*, char const*);
/* 8009CA28 */ void remove();
/* 80140C80 */ ~dEyeHL_c();
};
#endif /* D_D_EYE_HL_H */
+21
View File
@@ -1,6 +1,27 @@
#ifndef D_D_JNT_COL_H
#define D_D_JNT_COL_H
#include "JSystem/J3DGraphAnimator/J3DModel.h"
#include "SSystem/SComponent/c_m3d_g_lin.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
class dJntColData_c {};
class dJntCol_c {
public:
/* 80035C8C */ dJntCol_c();
/* 80035CA0 */ void init(fopAc_ac_c*, dJntColData_c const*, J3DModel*, int);
/* 80035CC8 */ void setNowLine(cM3dGLin*, cXyz const*, csXyz const*, cXyz*);
/* 80035DC8 */ void searchNearPos(cM3dGLin const*, cXyz const*, cXyz*, int) const;
/* 80036AEC */ void getArrowOffsetPosAndAngle(cXyz const*, csXyz const*, cXyz*, cXyz*) const;
/* 80036C44 */ void getHitmarkPosAndAngle(cXyz const*, csXyz const*, cXyz*, csXyz*, int) const;
/* 80036FA8 */ void setArrowPosAndAngle(cXyz const*, cXyz const*, int, cXyz*, csXyz*);
/* 0x00 */ dJntColData_c* mData;
/* 0x04 */ J3DModel* mModel;
/* 0x08 */ int field_0x8;
/* 0x0C */ int field_0xc;
};
#endif /* D_D_JNT_COL_H */
+1 -9
View File
@@ -2,18 +2,10 @@
#define D_D_RESORCE_H
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_ext.h"
struct JKRHeap {
/* 802CE6B0 */ void getSize(void*, JKRHeap*);
/* 802CE784 */ void getTotalFreeSize();
/* 802CE5CC */ void freeAll();
/* 802CE83C */ void findFromRoot(void*);
static u8 sCurrentHeap[4];
};
struct JKRArchive {
/* 802D5CE4 */ void getIdxResource(u32);
/* 802D625C */ void getFileAttribute(u32) const;
+13
View File
@@ -1,6 +1,19 @@
#ifndef D_KANKYO_D_KANKYO_H
#define D_KANKYO_D_KANKYO_H
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/gx/GXTexture.h"
#include "dolphin/types.h"
struct LIGHT_INFLUENCE {
/* 800CFC7C */ ~LIGHT_INFLUENCE();
/* 8019F4F8 */ LIGHT_INFLUENCE();
/* 0x00 */ cXyz field_0x00;
/* 0x0C */ _GXColorS10 mColor;
/* 0x14 */ float field_0x14;
/* 0x18 */ float field_0x18;
/* 0x1C */ int field_0x1c;
};
#endif /* D_KANKYO_D_KANKYO_H */
+4 -10
View File
@@ -1,7 +1,9 @@
#ifndef D_METER_D_METER2_INFO_H
#define D_METER_D_METER2_INFO_H
#include "JSystem/JUtility/JUTTexture.h"
#include "d/d_resorce.h"
#include "d/msg/d_msg_flow.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
//#include "JSystem/JUtility/JUTFont.h"
@@ -14,14 +16,6 @@ struct dMsgObject_c {
/* 802384C4 */ void setLetterNameID(u16);
};
struct dMsgFlow_c {
/* 80249F00 */ dMsgFlow_c();
/* 80249F48 */ ~dMsgFlow_c();
/* 80249F90 */ void init(fopAc_ac_c*, int, int, fopAc_ac_c**);
/* 8024A2D8 */ void doFlow(fopAc_ac_c*, fopAc_ac_c**, int);
/* 8024A538 */ void getMsgNo();
};
class dMeterMap_c {
public:
/* 8020D900 */ bool isMapOpenCheck();
@@ -51,8 +45,6 @@ class dMeter2_c {};
class dMw_c {};
struct ResTIMG {};
class dMeter2Info_c {
public:
class WarpInfo_c {
@@ -105,8 +97,10 @@ public:
void resetMiniGameItem(bool);
void setMiniGameCount(s8);
void setSaveStageName(const char*);
u8& getDirectUseItem() { return mDirectUseItem; }
dMeterMap_c* getMeterMapClass() { return mMeterMap; }
void offUseButton(int pButton) { mUseButton &= ~(u16)pButton; }
private:
/* 0x04 */ u8 unk4[4];
+169
View File
@@ -2,5 +2,174 @@
#define D_MSG_D_MSG_FLOW_H
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
struct mesg_flow_node_branch {};
struct mesg_flow_node_event {};
struct mesg_flow_node {};
class dMsgFlow_c {
public:
/* 80249F00 */ dMsgFlow_c();
/* 80249F48 */ ~dMsgFlow_c();
/* 80249F90 */ void init(fopAc_ac_c*, int, int, fopAc_ac_c**);
/* 8024A13C */ void checkOpenDoor(fopAc_ac_c*, int*);
/* 8024A2D8 */ void doFlow(fopAc_ac_c*, fopAc_ac_c**, int);
/* 8024A424 */ void checkEventRender(int*, int*, int*, int*);
/* 8024A4C4 */ void remove();
/* 8024A528 */ void getEventId(int*);
/* 8024A538 */ void getMsgNo();
/* 8024A540 */ void getNowMsgNo();
/* 8024A548 */ void getMsg();
/* 8024A580 */ void setInitValue(int);
/* 8024A618 */ void setInitValueGroupChange(int, fopAc_ac_c**);
/* 8024A6EC */ void getMsgDataBlock(char const*);
/* 8024A784 */ void getInitNodeIndex(u16);
/* 8024A7CC */ void setNodeIndex(u16, fopAc_ac_c**);
/* 8024A95C */ void setSelectMsg(mesg_flow_node*, mesg_flow_node*, fopAc_ac_c*);
/* 8024AA50 */ void setNormalMsg(mesg_flow_node*, fopAc_ac_c*);
/* 8024AB30 */ void messageNodeProc(fopAc_ac_c*, fopAc_ac_c**);
/* 8024AD54 */ void branchNodeProc(fopAc_ac_c*, fopAc_ac_c**);
/* 8024ADEC */ void eventNodeProc(fopAc_ac_c*, fopAc_ac_c**);
/* 8024AFF8 */ void nodeProc(fopAc_ac_c*, fopAc_ac_c**);
/* 8024B0F0 */ void getParam(u16*, u16*, u8*);
/* 8024B108 */ void getParam(u8*, u8*);
/* 8024B130 */ void getParam(u8*);
/* 8024B138 */ void query001(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B180 */ void query002(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B208 */ void query003(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B250 */ void query004(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B2C0 */ void query005(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B2F8 */ void query006(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B32C */ void query007(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B45C */ void query008(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B4A4 */ void query009(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B4D0 */ void query010(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B504 */ void query011(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B54C */ void query012(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B584 */ void query013(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B5BC */ void query014(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B5F4 */ void query015(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B62C */ void query016(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B664 */ void query017(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B6A8 */ void query018(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B6EC */ void query019(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B730 */ void query020(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B774 */ void query021(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B8E4 */ void query022(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B918 */ void query023(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B954 */ void query024(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B974 */ void query025(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B9BC */ void query026(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024B9E8 */ void query027(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024BA4C */ void query028(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024BAA0 */ void query029(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024BAE0 */ void query030(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024BB18 */ void query031(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024BB74 */ void query032(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024BB9C */ void query033(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024BBE4 */ void query034(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024BC14 */ void query035(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024BC3C */ void query036(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024BC80 */ void query037(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024BCC4 */ void query038(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024BDB0 */ void query039(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024BE4C */ void query040(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024BF50 */ void query041(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024BFEC */ void query042(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024C0A8 */ void query043(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024C144 */ void query044(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024C18C */ void query045(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024C218 */ void query046(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024C248 */ bool query047(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024C250 */ void query048(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024C2A0 */ void query049(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024C2FC */ void query050(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024C340 */ void query051(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024C3A0 */ void query052(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024C3D4 */ void query053(mesg_flow_node_branch*, fopAc_ac_c*, int);
/* 8024C3FC */ void event000(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024C488 */ void event001(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024C514 */ void event002(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024C550 */ void event003(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024C590 */ void event004(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024C5F0 */ void event005(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024C654 */ void event006(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024C694 */ void event007(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024C6D8 */ void event008(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024C744 */ void event009(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024C76C */ void event010(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024C7F8 */ void event011(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024C884 */ bool event012(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024C88C */ void event013(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024C8CC */ void event014(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024C994 */ void event015(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024CA5C */ void event016(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024CA94 */ void event017(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024CBB0 */ void event018(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024CCA4 */ bool event019(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024CCAC */ void event020(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024CD84 */ void event021(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024CDAC */ void event022(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024CE40 */ void event023(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024CF2C */ void event024(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024CF54 */ void event025(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024CF9C */ void event026(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024D004 */ void event027(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024D3C4 */ void event028(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024D500 */ void event029(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024D544 */ void event030(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024D5BC */ void event031(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024D5EC */ void event032(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024D6BC */ void event033(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024D788 */ void event034(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024D7C8 */ void event035(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024D870 */ void event036(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024D8C4 */ void event037(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024D918 */ void event038(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024D93C */ void event039(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024D970 */ void event040(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024DA78 */ void event041(mesg_flow_node_event*, fopAc_ac_c*);
/* 8024DAA8 */ bool event042(mesg_flow_node_event*, fopAc_ac_c*);
static u8 mQueryList[636];
static u8 mEventList[516];
private:
/* 0x00 */ void* vtable;
/* 0x04 */ void* field_0x04;
/* 0x08 */ void* field_0x08;
/* 0x0C */ void* field_0x0c;
/* 0x10 */ u16 field_0x10;
/* 0x12 */ u16 field_0x12;
/* 0x14 */ fopAc_ac_c* field_0x14;
/* 0x18 */ int field_0x18;
/* 0x1C */ u16 field_0x1c;
/* 0x1E */ u8 field_0x1e[2];
/* 0x20 */ int mMsg;
/* 0x24 */ u8 mSelectMessage;
/* 0x25 */ u8 field_0x25;
/* 0x26 */ u8 field_0x26;
/* 0x27 */ u8 field_0x27;
/* 0x28 */ int mMsgNo;
/* 0x2C */ int mNowMsgNo;
/* 0x30 */ u16 field_0x30;
/* 0x32 */ u16 mEventId;
/* 0x34 */ int field_0x34;
/* 0x38 */ u16 field_0x38;
/* 0x3A */ s16 mChoiceNo;
/* 0x3C */ int field_0x3c;
/* 0x40 */ u8 field_0x40;
/* 0x41 */ u8 field_0x41;
/* 0x42 */ s8 field_0x42;
/* 0x43 */ s8 field_0x43;
/* 0x44 */ s8 field_0x44;
/* 0x45 */ s8 field_0x45;
/* 0x46 */ u8 field_0x46;
/* 0x47 */ u8 field_0x47;
/* 0x48 */ u8 mNonStopJunpFlowFlag;
};
#endif /* D_MSG_D_MSG_FLOW_H */
+33
View File
@@ -1,6 +1,39 @@
#ifndef D_PARTICLE_D_PARTICLE_H
#define D_PARTICLE_D_PARTICLE_H
#include "JSystem/JParticle/JPAParticle.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
class JPAEmitterCallBack {
public:
/* 80050368 */ void execute(JPABaseEmitter*);
/* 8005036C */ void draw(JPABaseEmitter*);
/* 80050370 */ void drawAfter(JPABaseEmitter*);
/* 80050374 */ void executeAfter(JPABaseEmitter*);
/* 8027E6A4 */ ~JPAEmitterCallBack();
};
class dPa_levelEcallBack : public JPAEmitterCallBack {
public:
/* 8004FB18 */ ~dPa_levelEcallBack();
/* 8004FB8C */ void cleanup();
};
class dPa_hermiteEcallBack_c : public dPa_levelEcallBack {
public:
/* 8004F6B8 */ void setOldPosP(cXyz const*, cXyz const*);
/* 8004F6C4 */ void executeAfter(JPABaseEmitter*);
/* 8004FABC */ void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
/* 8004FCC8 */ ~dPa_hermiteEcallBack_c();
private:
/* 0x00 */ void* vtable;
/* 0x04 */ float mRate;
/* 0x08 */ int mMaxCnt;
/* 0x0C */ cXyz* field_0xc;
/* 0x10 */ cXyz* field_0x10;
/* 0x14 */ cXyz* field_0x14;
};
#endif /* D_PARTICLE_D_PARTICLE_H */
+25
View File
@@ -1,6 +1,31 @@
#ifndef D_PARTICLE_D_PARTICLE_COPOLY_H
#define D_PARTICLE_D_PARTICLE_COPOLY_H
#include "d/bg/d_bg_s_acch.h"
#include "dolphin/types.h"
struct dKy_tevstr_c {};
class dPaPo_c {
public:
/* 80050C9C */ void init(dBgS_Acch*, f32, f32);
/* 80050CC4 */ void checkWaterIn(cXyz*, cXyz const*, dKy_tevstr_c const*, u32, s8, f32, f32);
/* 80050E7C */ void setEffect(u32*, int, dKy_tevstr_c const*, cXyz const*, u32, u32,
cXyz const*, csXyz const*, s8, u8*, u8*);
/* 80051008 */ void setEffectCenter(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
csXyz const*, cXyz const*, s8, f32, f32);
/* 8005113C */ void clearID(u32*, u8*);
/* 80051488 */ void getCenterEffType(int) const;
/* 80051524 */ void getCenterEmitter(int, int);
/* 0x00 */ u8 field_0x00[0x28];
/* 0x28 */ dBgS_Acch* field_0x28;
/* 0x2C */ float field_0x2c;
/* 0x30 */ float field_0x30;
/* 0x34 */ u8 field_0x34;
/* 0x35 */ u8 field_0x35;
/* 0x36 */ u8 field_0x36;
/* 0x37 */ u8 field_0x37;
};
#endif /* D_PARTICLE_D_PARTICLE_COPOLY_H */
+172 -145
View File
@@ -13,6 +13,8 @@
#define LETTER_INFO_BIT 64
#define BOMB_BAG_MAX 3
#define BOTTLE_MAX 4
#define TBOX_MAX 64
#define DSV_MEMBIT_ENUM_MAX 8
enum Wallets { WALLET, BIG_WALLET, GIANT_WALLET };
@@ -302,7 +304,7 @@ enum ItemTable {
NO_ITEM
};
enum EquipmentBits { CLOTHING_BITFIELD, SWORD_BITFIELD, SHIELD_BITFIELD };
enum CollectItem { COLLECT_CLOTHING, COLLECT_SWORD, COLLECT_SHIELD, COLLECT_SMELL, B_BUTTON_ITEM };
enum Swords { ORDON_SWORD_FLAG, MASTER_SWORD_FLAG, WOODEN_SWORD_FLAG, LIGHT_SWORD_FLAG };
@@ -310,9 +312,9 @@ enum Shields { ORDON_SHIELD_FLAG, HYLIAN_SHIELD_FLAG, WOODEN_SHIELD_FLAG };
enum Armors { KOKIRI_CLOTHES_FLAG };
enum DungeonItem { MAP_FLAG, COMPASS_FLAG, BOSS_KEY_FLAG, OOCCOO_NOTE_FLAG = 6 };
enum LightDropStages { FARON_VESSEL, ELDIN_VESSEL, LANAYRU_VESSEL };
enum AreaVessel { FARON_VESSEL, ELDIN_VESSEL, LANAYRU_VESSEL };
enum ItemMax { ARROW_MAX, NORMAL_BOMB_MAX, WATER_BOMB_MAX, POKE_BOMB_MAX = 6 };
class dSv_player_status_a_c {
public:
@@ -324,42 +326,42 @@ public:
u16 getRupeeMax(void) const;
int isMagicFlag(u8) const;
u16& getMaxLife() { return mMaxHealth; }
u16& getLife() { return mCurrentHealth; }
u16& getRupee() { return mCurrentRupees; }
u16& getOil() { return mCurrentLanternOil; }
u8 getSelectEquip(int item) const { return mEquipment[item]; }
void setWalletLV(u8 lv) { mCurrentWallet = lv; }
void setOil(u16 oil) { mCurrentLanternOil = oil; }
void setMaxOil(u16 max) { mMaxLanternOil = max; }
void setWalletSize(u8 size) { mCurrentWallet = size; }
void setMagic(u8 magic) { mCurrentMagic = magic; }
u16& getMaxLife() { return mMaxLife; }
u16& getLife() { return mLife; }
u16& getRupee() { return mRupee; }
u16& getOil() { return mOil; }
u8 getSelectEquip(int item) const { return mSelectEquip[item]; }
void setWalletLV(u8 lv) { mWalletSize = lv; }
void setOil(u16 oil) { mOil = oil; }
void setMaxOil(u16 max) { mMaxOil = max; }
void setWalletSize(u8 size) { mWalletSize = size; }
void setMagic(u8 magic) { mMagic = magic; }
void setMaxMagic(u8 max) { mMaxMagic = max; }
void setRupee(u16 rupees) { mCurrentRupees = rupees; }
void setLife(u16 life) { mCurrentHealth = life; }
void setMaxLife(u8 max) { mMaxHealth = max; }
void setSelectEquip(int item_index, u8 item) { mEquipment[item_index] = item; }
void setRupee(u16 rupees) { mRupee = rupees; }
void setLife(u16 life) { mLife = life; }
void setMaxLife(u8 max) { mMaxLife = max; }
void setSelectEquip(int item_index, u8 item) { mSelectEquip[item_index] = item; }
private:
u16 mMaxHealth;
u16 mCurrentHealth;
u16 mCurrentRupees;
u16 mMaxLanternOil;
u16 mCurrentLanternOil;
u8 unk10;
u8 mSelectItem[3];
u8 mMixItem[3];
u8 unk17;
u8 unk18;
u8 mEquipment[6];
u8 mCurrentWallet;
u8 mMaxMagic;
u8 mCurrentMagic;
u8 mMagicFlag;
u8 unk29;
u8 unk30;
u8 unk31[3];
u8 padding[6];
/* 0x00 */ u16 mMaxLife;
/* 0x02 */ u16 mLife;
/* 0x04 */ u16 mRupee;
/* 0x06 */ u16 mMaxOil;
/* 0x08 */ u16 mOil;
/* 0x0A */ u8 unk10;
/* 0x0B */ u8 mSelectItem[3];
/* 0x0E */ u8 mMixItem[3];
/* 0x11 */ u8 unk17;
/* 0x12 */ u8 unk18;
/* 0x13 */ u8 mSelectEquip[6];
/* 0x19 */ u8 mWalletSize;
/* 0x1A */ u8 mMaxMagic;
/* 0x1B */ u8 mMagic;
/* 0x1C */ u8 mMagicFlag;
/* 0x1D */ u8 unk29;
/* 0x1E */ u8 mTransformStatus;
/* 0x1F */ u8 unk31[3];
/* 0x22 */ u8 padding[6];
};
class dSv_player_status_b_c {
@@ -371,14 +373,13 @@ public:
BOOL isTransformLV(int) const;
private:
u32 unk0;
u32 unk4;
u64 mDateIpl;
u8 mTransformLevelFlag;
u8 mDarkClearLevelFlag;
u8 unk10;
u8 unk11;
float mTimeOfDay;
u16 unk16;
float mTime;
u16 mDate;
u8 unk18[3];
u8 padding[3];
};
@@ -417,13 +418,13 @@ public:
void set(const char*, const cXyz&, s16, s8, u8);
private:
cXyz mLastPosition;
s16 mLastAngle;
char mLastStage[8];
cXyz mPos;
s16 mAngleY;
char mName[8];
u8 mLastSpawnId;
u8 mLastRoomId;
u8 unk24;
u8 mLastRegion;
u8 mRegionNo;
bool mFieldDataExistFlag;
u8 mRegion;
u8 unk26[2];
};
@@ -501,13 +502,13 @@ public:
u8 addBottleNum(u8, s16);
u8 getBottleNum(u8) const;
void setArrowNum(u8 amount) { mBow = amount; }
void setArrowNum(u8 amount) { mArrowNum = amount; }
private:
u8 mBow;
u8 mBombBags[3];
u8 mBottles[4];
u8 mSlingshot;
u8 mArrowNum;
u8 mBombNum[3];
u8 mBottleNum[4];
u8 mPachinkoNum;
u8 unk5[3];
};
@@ -517,11 +518,11 @@ public:
void setBombNum(u8, u8);
u8 getBombNum(u8) const;
void setArrowNum(u8 max) { mItemCapacities[0] = max; }
u8 getArrowNum() { return mItemCapacities[0]; }
void setArrowNum(u8 max) { mItemMax[ARROW_MAX] = max; }
u8 getArrowNum() { return mItemMax[ARROW_MAX]; }
private:
u8 mItemCapacities[8];
u8 mItemMax[8];
};
class dSv_player_collect_c {
@@ -534,15 +535,15 @@ public:
void onCollectMirror(u8);
BOOL isCollectMirror(u8) const;
u8 getPohNum() { return mPoeCount; }
u8 getPohNum() { return mPohNum; }
private:
u8 unk0[8];
u8 mItem[8];
u8 unk8;
u8 mCrystal;
u8 mMirror;
u8 unk11;
u8 mPoeCount;
u8 mPohNum;
u8 padding[3];
};
@@ -564,7 +565,7 @@ public:
BOOL isLightDropGetFlag(u8) const;
private:
u8 mLightDropCounts[4];
u8 mLightDropNum[4];
u8 mLightDropGetFlag;
u8 unk5[3];
};
@@ -586,31 +587,30 @@ private:
class dSv_fishing_info_c {
public:
void init(void);
void addFishCount(u8); // merged with init in the assembly
void addFishCount(u8);
private:
u16 mFishCount[16];
u8 unk32[16];
u8 mMaxSize[16];
u8 padding[4];
};
class dSv_player_info_c {
public:
void init(void);
char* getLinkName() { return (char*)link_name; }
char* getLinkName() { return (char*)mPlayerName; }
private:
u32 unk0;
u32 unk4;
u32 unk8;
u32 unk12;
u64 mTotalTime;
u16 unk16;
u16 unk18;
u8 link_name[16];
u16 mDeathCount;
u8 mPlayerName[16];
u8 unk36;
u8 epona_name[16];
u8 mHorseName[16];
u8 unk53;
u8 unk54;
u8 mClearCount;
u8 unk55[5];
u8 padding[4];
};
@@ -627,15 +627,15 @@ public:
private:
u8 unk0;
u8 mSoundMode;
u8 unk2;
u8 mVibrationStatus;
u8 mAttentionType;
u8 mVibration;
u8 unk4;
u8 unk5;
u16 unk6;
u8 unk8;
u8 unk9;
u8 unk10;
u8 unk11;
u16 mCalibrateDist;
u8 mCalValue;
u8 mShortCut;
u8 mCameraControl;
u8 mPointer;
u8 padding[4];
};
@@ -652,8 +652,6 @@ public:
dSv_light_drop_c& getLightDrop() { return light_drop; }
dSv_player_get_item_c& getPlayerGetItem() { return player_get_item; }
void setPlayerStatusAWalletLV(u8 lv) { player_status_a.setWalletLV(lv); }
private:
dSv_player_status_a_c player_status_a;
dSv_player_status_b_c player_status_b;
@@ -677,6 +675,17 @@ private:
#pragma pack(push, 1)
class dSv_memBit_c {
public:
enum {
MAP_FLAG,
COMPASS_FLAG,
BOSS_KEY_FLAG,
STAGE_BOSS_ENEMY,
STAGE_LIFE,
STAGE_BOSS_DEMO,
OOCCOO_NOTE_FLAG,
STAGE_BOSS_ENEMY_2
};
void init(void);
void onTbox(int);
void offTbox(int);
@@ -690,7 +699,7 @@ public:
void onDungeonItem(int);
bool isDungeonItem(int) const;
u8 getKeyNum() { return small_key_flags; }
u8 getKeyNum() { return mKeyNum; }
void onDungeonItemMap() { onDungeonItem(MAP_FLAG); }
bool isDungeonItemMap() const { return isDungeonItem(MAP_FLAG); }
void onDungeonItemCompass() { onDungeonItem(COMPASS_FLAG); }
@@ -699,11 +708,11 @@ public:
bool isDungeonItemBossKey() const { return isDungeonItem(BOSS_KEY_FLAG); }
private:
u32 area_flags_bitfields1[2];
u32 area_flags_bitfields2[4];
u32 rupee_flags_bitfields;
u8 small_key_flags;
u8 dungeons_flags;
/* 0x00 */ u32 mTbox[2];
/* 0x08 */ u32 mSwitch[4];
/* 0x18 */ u32 mItem[1]; // not sure if this is right
/* 0x1C */ u8 mKeyNum;
/* 0x1D */ u8 mDungeonItem;
};
#pragma pack(pop)
@@ -717,7 +726,7 @@ public:
u8 getEventReg(u16) const;
private:
u8 events[256];
u8 mEvent[256];
};
class dSv_MiniGame_c {
@@ -728,34 +737,34 @@ private:
u8 unk0;
u8 unk1[3];
u32 unk4;
u32 unk8;
u32 unk12;
u32 mBalloonScore;
u32 mRaceGameTime;
u32 unk16;
u32 unk20;
};
class dSv_memory_c {
public:
dSv_memory_c(void); // the assembly for this is in d_com_inf_game.s
dSv_memory_c(void);
void init(void);
dSv_memBit_c& getTempFlags() { return temp_flags; }
const dSv_memBit_c& getTempFlagsConst() const { return temp_flags; }
dSv_memBit_c& getMemBit() { return mMemBit; }
const dSv_memBit_c& getMemBitConst() const { return mMemBit; }
private:
dSv_memBit_c temp_flags;
dSv_memBit_c mMemBit;
u8 padding30[2];
};
class dSv_memory2_c {
public:
dSv_memory2_c(void); // the assembly for this is in d_com_inf_game.s
dSv_memory2_c(void);
void init(void);
void onVisitedRoom(int);
void offVisitedRoom(int);
BOOL isVisitedRoom(int);
private:
u32 unk0[2];
u32 mVisitedRoom[2];
};
class dSv_danBit_c {
@@ -769,11 +778,11 @@ public:
BOOL isItem(int) const;
private:
s8 mStageNum;
s8 mStageNo;
u8 unk1;
u8 unk2[2];
u32 switch_bitfield[2];
u32 item_bitfield[4];
u32 mSwitch[2];
u32 mItem[4];
s16 unk28[16];
};
@@ -796,10 +805,10 @@ public:
BOOL isOneItem(int) const;
private:
u16 switch_bitfield[2];
u16 room_switch;
u16 item_bitfield[2];
u16 room_item;
u16 mSwitch[2];
u16 mRoomSwitch;
u16 mItem[2];
u16 mRoomItem;
u16 unk12;
};
@@ -820,18 +829,18 @@ class dSv_zone_c {
public:
dSv_zone_c(void); // the assembly for this is in d_com_inf_game.s
void init(int);
dSv_zoneBit_c& getZoneBit() { return zone_bit; }
const dSv_zoneBit_c& getZoneBitConst() const { return zone_bit; }
dSv_zoneActor_c& getZoneActor() { return zone_actor; }
const dSv_zoneActor_c& getZoneActorConst() const { return zone_actor; }
dSv_zoneBit_c& getZoneBit() { return mBit; }
const dSv_zoneBit_c& getZoneBitConst() const { return mBit; }
dSv_zoneActor_c& getZoneActor() { return mActor; }
const dSv_zoneActor_c& getZoneActorConst() const { return mActor; }
s8& getUnk0() { return unk0; }
s8& getRoomNo() { return mRoomNo; }
private:
s8 unk0;
s8 mRoomNo;
u8 unk1;
dSv_zoneBit_c zone_bit;
dSv_zoneActor_c zone_actor;
dSv_zoneBit_c mBit;
dSv_zoneActor_c mActor;
};
class dSv_restart_c {
@@ -839,22 +848,34 @@ public:
void setRoom(const cXyz&, s16, s8);
private:
u8 unk0;
u8 unk1[5];
s16 mXRotation;
cXyz mPosition;
u8 padding20[16];
/* 0x00 */ s8 mRoomNo;
/* 0x01 */ u8 field_0x01[3];
/* 0x04 */ s16 mStartPoint;
/* 0x06 */ s16 mRoomAngleY;
/* 0x08 */ cXyz mRoomPos;
/* 0x14 */ u32 mRoomParam;
/* 0x18 */ f32 mLastSpeedF;
/* 0x1C */ u32 mLastMode;
/* 0x20 */ s16 mLastAngleY;
};
class dSv_turnRestart_c {
public:
class dSv_turnRestart_camera_c {
cXyz mCameraCtr;
cXyz mCameraEye;
cXyz mCameraUp;
};
void set(const cXyz&, s16, s8, u32);
private:
cXyz mPosition;
u32 unk12;
s16 mXRotation;
s8 unk18;
/* 0x00 */ cXyz mPosition;
/* 0x0C */ u32 mParam;
/* 0x10 */ s16 mAngleY;
/* 0x12 */ s8 unk18;
/* 0x14 */ dSv_turnRestart_camera_c mCamera;
/* 0x38 */ f32 mCameraFvy;
};
class dSv_reserve_c {
@@ -867,28 +888,27 @@ class dSv_save_c {
public:
void init(void);
dSv_memory2_c* getSave2(int);
dSv_player_c& getPlayer() { return player; }
dSv_player_status_a_c& getPlayerStatusA() { return player.getPlayerStatusA(); }
dSv_player_get_item_c& getPlayerGetItem() { return player.getPlayerGetItem(); }
dSv_player_item_record_c& getPlayerItemRecord() { return player.getPlayerItemRecord(); }
dSv_player_item_max_c& getPlayerItemMax() { return player.getPlayerItemMax(); }
dSv_player_last_mark_info_c& getPlayerLastMarkInfo() { return player.getPlayerLastMarkInfo(); }
dSv_player_item_c& getPlayerItem() { return player.getPlayerItem(); }
dSv_player_collect_c& getPlayerCollect() { return player.getPlayerCollect(); }
dSv_light_drop_c& getLightDrop() { return player.getLightDrop(); }
dSv_event_c& getEventFlags() { return event_flags; }
dSv_player_c& getPlayer() { return mPlayer; }
dSv_player_status_a_c& getPlayerStatusA() { return mPlayer.getPlayerStatusA(); }
dSv_player_get_item_c& getPlayerGetItem() { return mPlayer.getPlayerGetItem(); }
dSv_player_item_record_c& getPlayerItemRecord() { return mPlayer.getPlayerItemRecord(); }
dSv_player_item_max_c& getPlayerItemMax() { return mPlayer.getPlayerItemMax(); }
dSv_player_last_mark_info_c& getPlayerLastMarkInfo() { return mPlayer.getPlayerLastMarkInfo(); }
dSv_player_item_c& getPlayerItem() { return mPlayer.getPlayerItem(); }
dSv_player_collect_c& getPlayerCollect() { return mPlayer.getPlayerCollect(); }
dSv_light_drop_c& getLightDrop() { return mPlayer.getLightDrop(); }
dSv_event_c& getEvent() { return mEvent; }
void setPlayerStatusAWallet(u8 lv) { player.setPlayerStatusAWalletLV(lv); }
static const int STAGE_MAX = 4;
static const int STAGE_MAX = 32;
static const int STAGE2_MAX = 64;
private:
dSv_player_c player;
dSv_memory_c area_flags[32];
dSv_memory2_c unk_flags[64];
dSv_event_c event_flags;
dSv_player_c mPlayer;
dSv_memory_c mSave[STAGE_MAX];
dSv_memory2_c mSave2[STAGE2_MAX];
dSv_event_c mEvent;
dSv_reserve_c reserve;
dSv_MiniGame_c minigame_flags;
dSv_MiniGame_c mMiniGame;
};
#pragma pack(push, 1)
class dSv_info_c {
@@ -911,20 +931,27 @@ public:
void card_to_memory(char*, int);
void initdata_to_card(char*, int);
dSv_save_c& getSaveFile() { return save_file; }
dSv_memory_c& getMemory() { return memory; }
dSv_zone_c* getZones() { return zones; }
dSv_player_c& getPlayer() { return save_file.getPlayer(); }
dSv_event_c& getEvent() { return events; }
dSv_save_c& getSavedata() { return mSavedata; }
dSv_memory_c& getMemory() { return mMemory; }
dSv_zone_c* getZones() { return mZone; }
dSv_player_c& getPlayer() { return mSavedata.getPlayer(); }
dSv_event_c& getTmp() { return mTmp; }
private:
/* 0x000 */ dSv_save_c save_file;
/* 0x958 */ dSv_memory_c memory;
/* 0x978 */ dSv_danBit_c dungeon_bit;
/* 0x9B4 */ dSv_zone_c zones[32];
/* 0xDB4 */ dSv_restart_c restart;
/* 0xDD8 */ dSv_event_c events;
/* 0xED8 */ dSv_turnRestart_c turn_restart;
/* 0x000 */ dSv_save_c mSavedata;
/* 0x958 */ dSv_memory_c mMemory;
/* 0x978 */ dSv_danBit_c mDan;
/* 0x9B4 */ dSv_zone_c mZone[32];
/* 0xDB4 */ dSv_restart_c mRestart;
/* 0xDD8 */ dSv_event_c mTmp;
/* 0xED8 */ dSv_turnRestart_c mTurnRestart;
/* 0xF14 */ u8 field_0xf14[4];
/* 0xF18 */ u8 mDataNum;
/* 0xF19 */ u8 mNewFile;
/* 0xF1A */ u8 mNoFile;
/* 0xF1B */ u8 field_0xf1b[13];
/* 0xF28 */ u64 mStartTime;
/* 0xF30 */ u64 mSaveTotalTime;
};
#pragma pack(pop)