more of d_com_inf_game setup

This commit is contained in:
TakaRikka
2023-09-10 16:02:21 -07:00
parent ef45f47306
commit 0f3b98fdca
12 changed files with 966 additions and 70 deletions
+160
View File
@@ -0,0 +1,160 @@
#ifndef D_D_A_PLAYER_H
#define D_D_A_PLAYER_H
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
#include "d/d_attention.h"
#include "f_op/f_op_actor_mng.h"
#include "m_Do/m_Do_ext.h"
class mDoExt_MtxCalcOldFrame;
class daPy_matAnm_c;
class daPy_py_c : public fopAc_ac_c {
public:
/* 0x290 */ u8 mAttackState;
/* 0x291 */ u8 field_0x291;
/* 0x292 */ u8 field_0x292[0x294 - 0x292];
/* 0x294 */ s16 field_0x294;
/* 0x296 */ s16 mQuakeTimer;
/* 0x298 */ int field_0x298;
/* 0x29C */ u32 field_0x29c;
/* 0x2A0 */ u32 field_0x2a0;
/* 0x2A4 */ u32 field_0x2a4;
/* 0x2A8 */ f32 field_0x2a8;
/* 0x2AC */ u8 field_0x2AC[0x2B0 - 0x2AC];
/* 0x2B0 */ f32 field_0x2b0;
/* 0x2B4 */ u8 field_0x2B4[0x2BC - 0x2B4];
/* 0x2BC */ cXyz mHeadTopPos;
/* 0x2C8 */ cXyz mSwordTopPos;
/* 0x2D4 */ cXyz field_0x2d4;
/* 0x2E0 */ cXyz field_0x2e0;
/* 0x2EC */ cXyz mRopePos;
/* 0x2F8 */ f32 field_0x2f8;
/* 0x2FC */ u8 field_0x2FC[0x300 - 0x2FC];
/* 0x300 */ f32 field_0x300;
};
class daPy_lk_c : public daPy_py_c {
public:
/* 0x0304 */ s16 field_0x0304;
/* 0x0306 */ s16 field_0x0306;
/* 0x0308 */ u8 field_0x0308[0x030C - 0x0308];
/* 0x030C */ int field_0x030c;
/* 0x0310 */ u8 field_0x0310[0x0314 - 0x0310];
/* 0x0314 */ int mDemoMode;
/* 0x0318 */ u8 field_0x0318[0x031C - 0x0318];
/* 0x031C */ void* vtbl;
/* 0x0320 */ request_of_phase_process_class mPhsLoad;
/* 0x0328 */ u8 temp0[0x3480 - 0x0328];
/* 0x3480 */ dAttention_c* mpAttention;
/* 0x3484 */ dAttList_c* mpAttnEntryA;
/* 0x3488 */ dAttList_c* mpAttnEntryX;
/* 0x348C */ dAttList_c* mpAttnEntryY;
/* 0x3490 */ dAttList_c* mpAttnentryZ;
/* 0x3494 */ u8 field_0x3494[0x34B9 - 0x3494];
/* 0x34B9 */ u8 mFrontWallType;
/* 0x34BA */ u8 field_0x34BA[0x34BD - 0x34BA];
/* 0x34BD */ u8 mLastUsedEquipItem;
/* 0x34BE */ u8 field_0x34BE[0x34C0 - 0x34BE];
/* 0x34C0 */ u8 field_0x34c0;
/* 0x34C1 */ u8 field_0x34c1;
/* 0x34C2 */ u8 field_0x34c2;
/* 0x34C3 */ u8 field_0x34c3;
/* 0x34C4 */ u8 field_0x34c4;
/* 0x34C5 */ u8 field_0x34c5;
/* 0x34C6 */ u8 field_0x34C6[0x34C7 - 0x34C6];
/* 0x34C7 */ u8 mActivePlayerBombs;
/* 0x34C8 */ u8 mPressedButtonsBitfield;
/* 0x34C9 */ u8 field_0x34C9[0x34D0 - 0x34C9];
/* 0x34D0 */ s16 field_0x34d0;
/* 0x34D2 */ s16 field_0x34d2;
/* 0x34D4 */ s16 field_0x34d4;
/* 0x34D6 */ u16 field_0x34d6;
/* 0x34D8 */ s16 field_0x34d8;
/* 0x34DA */ s16 field_0x34da;
/* 0x34DC */ u8 field_0x34DC[0x34DE - 0x34DC];
/* 0x34DE */ s16 field_0x34de;
/* 0x34E0 */ u8 field_0x34E0[0x34E2 - 0x34E0];
/* 0x34E2 */ s16 field_0x34e2;
/* 0x34E4 */ u8 field_0x34E4[0x34E6 - 0x34E4];
/* 0x34E6 */ s16 field_0x34e6;
/* 0x34E8 */ u8 field_0x34E8[0x3522 - 0x34E8];
/* 0x3522 */ s16 field_0x3522;
/* 0x3524 */ u8 field_0x3524[0x352C - 0x3524];
/* 0x352C */ s16 field_0x352c;
/* 0x352E */ s16 field_0x352e;
/* 0x3530 */ s16 field_0x3530;
/* 0x3532 */ s16 field_0x3532;
/* 0x3534 */ u8 field_0x3534[0x3544 - 0x3534];
/* 0x3544 */ s16 field_0x3544;
/* 0x3546 */ u8 field_0x3546[0x354E - 0x3546];
/* 0x354E */ s16 field_0x354e;
/* 0x3550 */ u8 field_0x3550[0x3554 - 0x3550];
/* 0x3554 */ s16 field_0x3554;
/* 0x3556 */ u8 field_0x3556[0x355E - 0x3556];
/* 0x355E */ u16 field_0x355e;
/* 0x3560 */ u16 mHeldItemType;
/* 0x3562 */ u8 field_0x3562[0x3566 - 0x3562];
/* 0x3566 */ s16 field_0x3566;
/* 0x3568 */ s16 field_0x3568;
/* 0x356A */ u8 field_0x356A[0x356C - 0x356A];
/* 0x356C */ int mCameraInfoIdx;
/* 0x3570 */ int field_0x3570;
/* 0x3574 */ int field_0x3574;
/* 0x3578 */ u8 field_0x3578[0x3580 - 0x3578];
/* 0x3580 */ int field_0x3580;
/* 0x3584 */ int mCurrentGroundAttributeCode;
/* 0x3588 */ u8 field_0x3588[0x358C - 0x3588];
/* 0x358C */ int mStaffIdx;
/* 0x3590 */ int field_0x3590;
/* 0x3594 */ int field_0x3594;
/* 0x3598 */ u8 field_0x3598[0x35A0 - 0x3598];
/* 0x35A0 */ f32 field_0x35a0;
/* 0x35A4 */ f32 field_0x35a4;
/* 0x35A8 */ u8 field_0x35A8[0x35BC - 0x35A8];
/* 0x35BC */ f32 mVelocity;
/* 0x35C0 */ u8 field_0x35C0[0x35C8 - 0x35C0];
/* 0x35C8 */ f32 field_0x35c8;
/* 0x35CC */ u8 field_0x35CC[0x35D0 - 0x35CC];
/* 0x35D0 */ f32 field_0x35d0;
/* 0x35D4 */ u8 field_0x35D4[0x35D8 - 0x35D4];
/* 0x35D8 */ f32 field_0x35d8;
/* 0x35DC */ u8 field_0x35DC[0x35E4 - 0x35DC];
/* 0x35E4 */ f32 field_0x35e4;
/* 0x35E8 */ f32 field_0x35e8;
/* 0x35EC */ f32 field_0x35ec;
/* 0x35F0 */ u8 field_0x35F0[0x35FC - 0x35F0];
/* 0x35FC */ f32 field_0x35fc;
/* 0x3600 */ f32 field_0x3600;
/* 0x3604 */ u8 field_0x3604[0x3610 - 0x3604];
/* 0x3610 */ f32 field_0x3610;
/* 0x3614 */ int field_0x3614;
/* 0x3618 */ u32 field_0x3618;
/* 0x361C */ u8 field_0x361C[0x3624 - 0x361C];
/* 0x3624 */ int field_0x3624;
/* 0x3628 */ int field_0x3628;
/* 0x362C */ u8 field_0x362C[0x3630 - 0x362C];
/* 0x3630 */ int field_0x3630;
/* 0x3634 */ int field_0x3634;
/* 0x3638 */ u8 field_0x3638[0x3644 - 0x3638];
/* 0x3644 */ f32 field_0x3644;
/* 0x3648 */ u8 field_0x3648[0x3694 - 0x3648];
/* 0x3694 */ cXyz mOldSpeed;
/* 0x36A0 */ cXyz field_0x36a0;
/* 0x36AC */ cXyz field_0x36ac;
/* 0x36B8 */ u8 field_0x36B8[0x36C4 - 0x36B8];
/* 0x36C4 */ cXyz field_0x36c4;
/* 0x36D0 */ u8 field_0x36D0[0x3700 - 0x36D0];
/* 0x3700 */ cXyz field_0x3700;
/* 0x370C */ cXyz field_0x370c;
/* 0x3718 */ u8 field_0x3718[0x3724 - 0x3718];
/* 0x3724 */ cXyz field_0x3724;
/* 0x3730 */ u8 field_0x3730[0x3748 - 0x3730];
/* 0x3748 */ cXyz field_0x3748;
/* 0x3754 */ u8 field_0x3754[0x37E4 - 0x3754];
};
#endif /* D_D_A_PLAYER_H */
+180
View File
@@ -0,0 +1,180 @@
#ifndef D_D_ATTENTION_H
#define D_D_ATTENTION_H
#include "SSystem/SComponent/c_angle.h"
#include "m_Do/m_Do_ext.h"
class fopAc_ac_c;
class dAttHint_c {
public:
dAttHint_c() {}
u32 getPId(void*);
fopAc_ac_c* convPId(unsigned int);
int request(fopAc_ac_c*, int);
void init();
void proc();
private:
/* 0x0 */ u32 mHintActorID;
/* 0x4 */ int mPriority;
/* 0x8 */ u32 field_0x8;
};
class dAttCatch_c {
public:
dAttCatch_c() {}
fopAc_ac_c* convPId(unsigned int);
void init();
void proc();
void request(fopAc_ac_c*, u8, f32, f32, f32, s16, int);
fopAc_ac_c* getCatghTarget() { return convPId(mCatghTargetID); }
u8 getChangeItem() { return mChangeItem; }
private:
/* 0x00 */ u32 field_0x0;
/* 0x04 */ int field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ u8 field_0xc;
/* 0x0D */ u8 field_0xd;
/* 0x0E */ u8 field_0xe;
/* 0x0F */ u8 field_0xf;
/* 0x10 */ u32 mCatghTargetID;
/* 0x14 */ u8 mChangeItem;
}; // Size: 0x18
class dAttParam_c {
public:
/* 0x00 */ u16 field_0x00;
/* 0x02 */ u8 field_0x02[0x04 - 0x02];
/* 0x04 */ f32 field_0x04;
/* 0x08 */ f32 field_0x08;
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
public:
dAttParam_c() {}
dAttParam_c(s32);
virtual ~dAttParam_c();
/* 0x1C vtable */
}; // Size: 0x20
class dAttLook_c {
public:
/* 80073CA4 */ fopAc_ac_c* convPId(unsigned int);
/* 80073CD4 */ void init();
/* 80073CEC */ void proc();
/* 80073D08 */ void request(fopAc_ac_c*, f32, f32, f32, s16, int);
private:
u32 field_0x0;
u32 field_0x4;
f32 field_0x8;
u32 mLookTargetID;
}; // Size: 0x10
class dAttList_c {
public:
fopAc_ac_c* getActor();
void setActor(fopAc_ac_c*);
u32 getPid() { return mActorID; }
/* 0x0 */ f32 mWeight;
/* 0x4 */ f32 mDistance;
/* 0x8 */ u32 mType;
/* 0xC */ u32 mActorID;
}; // Size: 0x10
class dAttDraw_CallBack_c : public mDoExt_McaMorfCallBack1_c {
public:
/* 80070178 */ virtual void execute(u16, J3DTransformInfo*);
};
class daPy_lk_c;
class dAttention_c {
public:
dAttention_c() {}
dAttention_c(fopAc_ac_c*, u32);
~dAttention_c();
void GetActionList(s32);
void GetLockonList(s32);
void getActionBtnB();
void getActionBtnXYZ_local(int);
void getActionBtnX();
void getActionBtnY();
void getActionBtnZ();
void chkAttMask(u32, u32);
void calcWeight(int, fopAc_ac_c*, f32, s16, s16, u32*);
void setLList(fopAc_ac_c*, f32, f32, u32);
void setAList(fopAc_ac_c*, f32, f32, u32);
void initList(u32);
void makeList();
void SelectAttention(fopAc_ac_c*);
void sortList();
void stockAttention(u32);
void nextAttention(u32);
void freeAttention();
void chaseAttention();
void EnemyDistance(fopAc_ac_c*);
void runSoundProc();
void runDrawProc();
void runDebugDisp0();
void runDebugDisp();
void judgementButton();
void judgementTriggerProc();
void judgementLostCheck();
void judgementStatusSw(u32);
void judgementStatusHd(u32);
void Run(u32);
void Draw();
void LockonTarget(s32);
void LockonReleaseDistanse();
void LockonTargetPId(s32);
void ActionTarget(s32);
void LockonTruth();
void Lockon();
public:
/* 0x000 */ daPy_lk_c* mpPlayer;
/* 0x004 */ int mLockOnTargetBsPcID;
/* 0x008 */ dAttDraw_CallBack_c field_0x8;
/* 0x00C */ int mPlayerNo;
/* 0x010 */ u32 mFlagMask;
/* 0x014 */ u8 field_0x014[0x018 - 0x014];
/* 0x018 */ u8 mLockOnState;
/* 0x019 */ u8 field_0x019;
/* 0x01A */ u8 field_0x01a;
/* 0x01B */ u8 field_0x01b;
/* 0x01C */ s16 field_0x01c;
/* 0x01E */ u8 field_0x01E[0x020 - 0x01E];
/* 0x020 */ u32 mFlags;
/* 0x024 */ JKRHeap* mpHeap;
/* 0x028 */ u8 field_0x028;
/* 0x029 */ u8 field_0x029[0x054 - 0x029];
/* 0x054 */ dAttList_c mLockOnList[8];
/* 0x0D4 */ int mLockOnNum;
/* 0x0D8 */ int mLockOnOffs;
/* 0x0DC */ dAttList_c mActionList[4];
/* 0x11C */ int mActionNum;
/* 0x120 */ int mActionOffs;
/* 0x124 */ dAttHint_c mHint;
/* 0x130 */ dAttCatch_c mCatch;
/* 0x148 */ dAttLook_c field_0x148;
/* 0x158 */ dAttLook_c field_0x158;
/* 0x168 */ int mEnemyBsPcId;
/* 0x16C */ f32 mEnemyDistance;
/* 0x170 */ dAttParam_c mAttParam;
}; // Size: 0x190
STATIC_ASSERT(sizeof(dAttention_c) == 0x190);
#endif /* D_D_ATTENTION_H */
+141 -42
View File
@@ -1,13 +1,17 @@
#ifndef D_COM_D_COM_INF_GAME_H
#define D_COM_D_COM_INF_GAME_H
#include "d/d_attention.h"
#include "d/d_bg_s.h"
#include "d/d_cc_s.h"
#include "d/d_detect.h"
#include "d/d_drawlist.h"
#include "d/d_event.h"
#include "d/d_event_manager.h"
#include "d/d_resorce.h"
#include "d/d_save.h"
#include "d/d_stage.h"
#include "d/d_vibration.h"
class JKRArchive;
class JKRExpHeap;
@@ -27,6 +31,22 @@ class dTimer_c;
class camera_class;
class J2DOrthoGraph;
class __d_timer_info_c {
public:
__d_timer_info_c() {
mTimerMode = -1;
mTimerLimitTimeMs = 0;
mTimerNowTimeMs = 0;
mTimerPtr = NULL;
}
/* 0x00 */ dTimer_c* mTimerPtr;
/* 0x04 */ s32 mTimerNowTimeMs;
/* 0x08 */ s32 mTimerLimitTimeMs;
/* 0x0C */ s32 mTimerMode;
/* 0x10 */ u8 mTimerType;
};
class dADM {
public:
/* 0x00 */ int mBlockCount;
@@ -41,37 +61,6 @@ public:
virtual ~dADM();
};
// setup properly later
struct dAttention_c {
u8 temp[0x190];
};
struct dVibration_c {
u8 temp[0x84];
};
struct dDetect_c {
u8 temp[0x14];
};
struct dDlst_list_c {
u8 temp[0x16234];
};
class dDlst_window_c {
public:
/* 0x00 */ f32 mXOrig;
/* 0x04 */ f32 mYOrig;
/* 0x08 */ f32 mWidth;
/* 0x0C */ f32 mHeight;
/* 0x10 */ f32 mNearZ;
/* 0x14 */ f32 mFarZ;
/* 0x18 */ f32 mScissorXOrig;
/* 0x1C */ f32 mScissorYOrig;
/* 0x20 */ f32 mScissorWidth;
/* 0x24 */ f32 mScissorHeight;
};
class dComIfG_camera_info_class {
public:
dComIfG_camera_info_class() {}
@@ -85,8 +74,9 @@ public:
/* 0x08 */ u32 mCameraAttentionStatus;
/* 0x0C */ f32 mCameraZoomScale;
/* 0x10 */ f32 mCameraZoomForcus;
/* 0x14 */ u8 field_0x14[0x34 - 0x14];
};
STATIC_ASSERT(sizeof(dComIfG_camera_info_class) == 0x14);
STATIC_ASSERT(sizeof(dComIfG_camera_info_class) == 0x34);
class dComIfG_play_c {
public:
@@ -95,7 +85,7 @@ public:
void ct();
void init();
void itemInit();
void getLayerNo(int);
int getLayerNo(int i_roomNo);
void createParticle();
void createDemo();
void removeDemo();
@@ -123,6 +113,27 @@ public:
~dComIfG_play_c();
const char* getStartStageName() { return mCurStage.getName(); }
s8 getStartStageRoomNo() { return mCurStage.getRoomNo(); }
s8 getStartStageLayer() { return mCurStage.getLayer(); }
s16 getStartStagePoint() { return mCurStage.getPoint(); }
void setStartStageLayer(s8 layer) { mCurStage.setLayer(layer); }
const char* getNextStageName() { return mNextStage.getName(); }
dStage_startStage_c* getNextStartStage() { return &mNextStage; }
s8 getNextStageRoomNo() { return mNextStage.getRoomNo(); }
s8 getNextStageLayer() { return mNextStage.getLayer(); }
s16 getNextStagePoint() { return mNextStage.getPoint(); }
s8 getNextStageWipe() { return mNextStage.getWipe(); }
bool isEnableNextStage() { return mNextStage.isEnable(); }
void offEnableNextStage() { mNextStage.offEnable(); }
void setNextStage(const char* i_stageName, s8 i_roomNo, s16 i_point, s8 i_layer, s8 i_wipe) {
mNextStage.set(i_stageName, i_roomNo, i_point, i_layer, i_wipe);
}
fopAc_ac_c* getPlayerPtr(int idx) { return (fopAc_ac_c*)mpPlayerPtr[idx]; }
fopAc_ac_c* getPlayer(int idx) { return (fopAc_ac_c*)mpPlayer[idx]; }
/* 0x0000 */ dBgS mBgS;
/* 0x1404 */ dCcS mCcS;
/* 0x3DF8 */ dADM mADM;
@@ -175,10 +186,7 @@ public:
/* 0x4841 */ u8 field_0x4841;
/* 0x4842 */ s16 mVrboxFlags;
/* 0x4844 */ dDlst_window_c mDlstWindow[1];
/* 0x486C */ u8 mCurCameraInfo;
/* 0x486D */ u8 field_0x486D[0x4870 - 0x486D];
/* 0x4870 */ dComIfG_camera_info_class mCameraInfo[1];
/* 0x4884 */ u8 field_0x4884[0x48A4 - 0x4884];
/* 0x48A4 */ daPy_py_c* mpPlayer[1];
/* 0x48A8 */ s8 mCurCamera[1];
/* 0x48A9 */ u8 field_0x48A9[0x48AC - 0x48A9];
@@ -277,12 +285,7 @@ public:
/* 0x4A24 */ daAgb_c* mpAgb;
/* 0x4A28 */ u32 mPlayerStatus[2][2];
/* 0x4A38 */ u8 field_0x4A38[0x4A40 - 0x4A38];
/* 0x4A40 */ dTimer_c* mpRestartTimer;
/* 0x4A44 */ int field_0x4a44;
/* 0x4A48 */ int field_0x4a48;
/* 0x4A4C */ int field_0x4a4c;
/* 0x4A50 */ u16 field_0x4a50;
/* 0x4A52 */ u8 field_0x4A52[0x4A54 - 0x4A52];
/* 0x4A40 */ __d_timer_info_c mTimerInfo;
/* 0x4A54 */ dDlst_window_c* field_0x4a54;
/* 0x4A58 */ camera_class* field_0x4a58;
/* 0x4A5C */ dDlst_window_c* field_0x4a5c;
@@ -333,18 +336,114 @@ inline BOOL dComIfGs_isEventBit(u16 id) {
return g_dComIfG_gameInfo.info.getEvent().isEventBit(id);
}
inline void dComIfGs_setRestartRoomParam(u32 i_param) {
g_dComIfG_gameInfo.info.getRestart().setRoomParam(i_param);
}
inline void dComIfGs_setStartPoint(s16 i_point) {
g_dComIfG_gameInfo.info.getRestart().setStartPoint(i_point);
}
inline int dComIfGs_getTriforceNum() {
return g_dComIfG_gameInfo.info.getPlayer().getCollect().getTriforceNum();
}
/**
* === PLAY ===
*/
void dComIfGp_setNextStage(const char* i_stageName, s16 i_point, s8 i_roomNo, s8 i_layer,
f32 i_lastSpeed, u32 i_lastMode, int, s8 i_wipe);
inline const char* dComIfGp_getStartStageName() {
return g_dComIfG_gameInfo.play.getStartStageName();
}
inline s8 dComIfGp_getStartStageRoomNo() {
return g_dComIfG_gameInfo.play.getStartStageRoomNo();
}
inline s8 dComIfGp_getStartStageLayer() {
return g_dComIfG_gameInfo.play.getStartStageLayer();
}
inline s16 dComIfGp_getStartStagePoint() {
return g_dComIfG_gameInfo.play.getStartStagePoint();
}
inline void dComIfGp_offEnableNextStage() {
g_dComIfG_gameInfo.play.offEnableNextStage();
}
inline const char* dComIfGp_getNextStageName() {
return g_dComIfG_gameInfo.play.getNextStageName();
}
inline dStage_startStage_c* dComIfGp_getNextStartStage() {
return g_dComIfG_gameInfo.play.getNextStartStage();
}
inline s8 dComIfGp_getNextStageRoomNo() {
return g_dComIfG_gameInfo.play.getNextStageRoomNo();
}
inline s8 dComIfGp_getNextStageLayer() {
return g_dComIfG_gameInfo.play.getNextStageLayer();
}
inline s32 dComIfGp_getNextStageWipe() {
return g_dComIfG_gameInfo.play.getNextStageWipe();
}
inline bool dComIfGp_isEnableNextStage() {
return g_dComIfG_gameInfo.play.isEnableNextStage();
}
inline s16 dComIfGp_getNextStagePoint() {
return g_dComIfG_gameInfo.play.getNextStagePoint();
}
inline fopAc_ac_c* dComIfGp_getPlayer(int idx) {
return g_dComIfG_gameInfo.play.getPlayer(idx);
}
inline daPy_lk_c* daPy_getPlayerLinkActorClass() {
return (daPy_lk_c*)g_dComIfG_gameInfo.play.getPlayerPtr(0);
}
/**
* === RESOURCE ===
*/
class request_of_phase_process_class;
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* arc_name);
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* resName, JKRHeap* heap);
int dComIfG_resDelete(request_of_phase_process_class* i_phase, char const* resName);
inline int dComIfG_setObjectRes(const char* name, u8 param_1, JKRHeap* heap) {
return g_dComIfG_gameInfo.mResControl.setObjectRes(name, param_1, heap);
}
inline int dComIfG_setObjectRes(const char* name, void* param_1, u32 param_2) {
return g_dComIfG_gameInfo.mResControl.setObjectRes(name, param_1, param_2, NULL);
}
inline int dComIfG_setStageRes(const char* name, JKRHeap* heap) {
return g_dComIfG_gameInfo.mResControl.setStageRes(name, heap);
}
inline int dComIfG_syncObjectRes(const char* name) {
return g_dComIfG_gameInfo.mResControl.syncObjectRes(name);
}
inline int dComIfG_syncStageRes(const char* name) {
return g_dComIfG_gameInfo.mResControl.syncStageRes(name);
}
inline int dComIfG_deleteObjectResMain(const char* res) {
return g_dComIfG_gameInfo.mResControl.deleteObjectRes(res);
}
inline int dComIfG_deleteStageRes(const char* res) {
return g_dComIfG_gameInfo.mResControl.deleteStageRes(res);
}
+29
View File
@@ -0,0 +1,29 @@
#ifndef D_D_DETECT_H
#define D_D_DETECT_H
#include "SSystem/SComponent/c_xyz.h"
class dDetectPlace_c {
public:
/* 0x00 */ cXyz mPos;
/* 0x0C */ s16 mEnable;
};
class dDetect_c {
public:
dDetect_c();
~dDetect_c();
void proc();
void chk_quake(const cXyz*) const;
void set_quake(const cXyz*);
void chk_quake_area(const cXyz*) const;
void search_tag_light(void*, void*);
void chk_light(const cXyz*) const;
void chk_attention(cXyz*) const;
/* 0x00 */ dDetectPlace_c mPlace[1];
/* 0x10 */ s16 mTimer;
}; // Size: 0x14
#endif /* D_D_DETECT_H */
+216
View File
@@ -0,0 +1,216 @@
#ifndef D_D_DRAWLIST_H
#define D_D_DRAWLIST_H
#include "f_op/f_op_view.h"
#include "global.h"
#include "m_Do/m_Do_ext.h"
class dDlst_base_c {
public:
dDlst_base_c() {}
virtual void draw();
};
class dDlst_window_c {
public:
dDlst_window_c() {}
~dDlst_window_c() {}
void setViewPort(f32, f32, f32, f32, f32, f32);
void setScissor(f32, f32, f32, f32);
view_port_class* getViewPort() { return &mViewport; }
private:
/* 0x00 */ view_port_class mViewport;
/* 0x28 */ s8 mCameraID;
/* 0x29 */ s8 mMode;
};
STATIC_ASSERT(sizeof(dDlst_window_c) == 0x2C);
class dDlst_peekZ_c {
public:
struct dDlst_peekZ_entry {
/* 0x0 */ s16 x;
/* 0x2 */ s16 y;
/* 0x4 */ u32* dst;
};
dDlst_peekZ_c() { mCount = 0; }
int newData(s16, s16, u32*);
void peekData();
/* 0x0 */ u8 mCount;
/* 0x4 */ dDlst_peekZ_entry mEntries[50];
}; // Size: 0x194
STATIC_ASSERT(sizeof(dDlst_peekZ_c) == 0x194);
class dDlst_shadowSimple_c {
public:
void draw();
void set(cXyz*, f32, f32, cXyz*, s16, f32, GXTexObj*);
dDlst_shadowSimple_c();
/* 0x00 */ u8 mAlpha;
/* 0x04 */ GXTexObj* mpTexObj;
/* 0x08 */ Mtx mVolumeMtx;
/* 0x38 */ Mtx mMtx;
}; // Size: 0x68
struct cBgD_Vtx_t;
class dDlst_shadowTri_c {
public:
~dDlst_shadowTri_c() {}
dDlst_shadowTri_c() {}
/* 0x0 */ cXyz mPos[3];
};
class dDlst_shadowPoly_c {
public:
dDlst_shadowPoly_c() {
reset();
}
void reset() { mCount = 0; }
int set(cBgD_Vtx_t*, u16, u16, u16, cM3dGPla*);
void draw();
virtual dDlst_shadowTri_c* getTri() = 0;
virtual s32 getTriMax() = 0;
/* 0x4 */ u16 mCount;
/* 0x6 */ u8 field_0x6[2];
};
class dDlst_shadowRealPoly_c : public dDlst_shadowPoly_c {
public:
virtual dDlst_shadowTri_c* getTri();
virtual s32 getTriMax();
/* 0x8 */ dDlst_shadowTri_c mShadowTri[256];
};
class J3DCallBackPacket;
class dKy_tevstr_c;
class dDlst_shadowReal_c {
public:
void reset();
void imageDraw(f32 (*)[4]);
void draw();
u32 set(u32, J3DModel*, cXyz*, f32, f32, dKy_tevstr_c*, f32, f32);
bool add(J3DModel*);
~dDlst_shadowReal_c() {}
dDlst_shadowReal_c() { mState = 0; }
bool isNoUse() { return mState == 0; }
bool isUse() { return mState == 1; }
bool checkKey(u32 i_key) { return mKey == i_key; }
private:
/* 0x0000 */ u8 mState;
/* 0x0001 */ u8 field_0x1;
/* 0x0002 */ u8 mModelNum;
/* 0x0003 */ u8 field_0x3;
/* 0x0004 */ u32 mKey;
/* 0x0008 */ Mtx mViewMtx;
/* 0x0038 */ Mtx44 mRenderProjMtx;
/* 0x0078 */ Mtx mReceiverProjMtx;
/* 0x00A8 */ void* mpTexData;
/* 0x00AC */ dDlst_shadowRealPoly_c mShadowRealPoly;
/* 0x24B4 */ GXTexObj mTexData;
/* 0x24D4 */ J3DDrawBuffer* mpDrawBuffer;
/* 0x24D8 */ J3DCallBackPacket* mpPacket;
/* 0x24DC */ J3DModel* mpModels[26];
}; // Size: 0x2544
class dDlst_shadowControl_c {
public:
void init();
void reset();
void imageDraw(f32 (*)[4]);
void draw(f32 (*)[4]);
int setReal(u32, s8, J3DModel*, cXyz*, f32, f32, dKy_tevstr_c*);
bool addReal(u32, J3DModel*);
int setSimple(cXyz*, f32, f32, cXyz*, s16, f32, GXTexObj*);
static void setSimpleTex(ResTIMG const*);
static GXTexObj* getSimpleTex() { return &mSimpleTexObj; }
static GXTexObj mSimpleTexObj;
private:
/* 0x00000 */ u8 mRealNum;
/* 0x00001 */ u8 mSimpleNum;
/* 0x00004 */ dDlst_shadowSimple_c mSimple[128];
/* 0x03404 */ int mNextID;
/* 0x03408 */ dDlst_shadowReal_c mReal[8];
}; // Size: 0x15E28
STATIC_ASSERT(sizeof(dDlst_shadowControl_c) == 0x15E28);
struct view_port_class;
struct view_class;
struct camera_class;
struct dDlst_alphaModel_c;
class dDlst_list_c {
public:
dDlst_list_c();
~dDlst_list_c();
void init();
void reset();
void entryZSortXluDrawList(J3DDrawBuffer*, J3DPacket*, cXyz&);
void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*);
void draw(dDlst_base_c**, dDlst_base_c**);
void wipeIn(f32, GXColor&);
void wipeIn(f32);
void calcWipe();
void set2DOpa(dDlst_base_c*);
private:
/* 0x00000 */ J3DDrawBuffer* mpBufSkyOpa;
/* 0x00004 */ J3DDrawBuffer* mpBufSkyXlu;
/* 0x00008 */ J3DDrawBuffer* mpLinkBuf;
/* 0x0000C */ J3DDrawBuffer* field_0x0000c;
/* 0x00010 */ J3DDrawBuffer* field_0x00010;
/* 0x00014 */ J3DDrawBuffer* mpBufWorldOpa;
/* 0x00018 */ J3DDrawBuffer* mpBufWorldXlu;
/* 0x0001C */ J3DDrawBuffer* mpBufInvisibleModelOpa;
/* 0x00020 */ J3DDrawBuffer* mpBufInvisibleModelXlu;
/* 0x00024 */ J3DDrawBuffer* mpWetherFxBuffer;
/* 0x00028 */ J3DDrawBuffer* mpBufInvisibleModelMaskOffOpa;
/* 0x0002C */ J3DDrawBuffer* mpBufInvisibleModelMaskOffXlu;
/* 0x00030 */ J3DDrawBuffer* field_0x00030;
/* 0x00034 */ J3DDrawBuffer* field_0x00034;
/* 0x00038 */ J3DDrawBuffer* field_0x00038;
/* 0x0003C */ u8 field_0x0003C[0x00050 - 0x0003C];
/* 0x00050 */ void* field_0x00050;
/* 0x00054 */ u8 field_0x00054[0x00094 - 0x00054];
/* 0x00094 */ dDlst_base_c** field_0x00094;
/* 0x00098 */ void* field_0x00098;
/* 0x0009C */ dDlst_base_c* mp2DArr[64];
/* 0x0019C */ dDlst_base_c** mp2DOpa;
/* 0x001A0 */ dDlst_base_c*** mp2DOpaEnd;
/* 0x001A4 */ u8 field_0x001A4[0x00224 - 0x001A4];
/* 0x00224 */ dDlst_base_c** field_0x00224;
/* 0x00228 */ dDlst_base_c*** field_0x00228;
/* 0x0022C */ dDlst_window_c* field_0x0022c;
/* 0x00230 */ dDlst_window_c* field_0x00230;
/* 0x00234 */ camera_class* mpCamera;
/* 0x00238 */ u8 field_0x00238[0x00244 - 0x00238];
/* 0x00244 */ dDlst_alphaModel_c* mpAlphaModel0;
/* 0x00248 */ dDlst_alphaModel_c* mpAlphaModel2;
/* 0x0024C */ dDlst_alphaModel_c* mpAlphaModel1;
/* 0x00250 */ dDlst_shadowControl_c mShadowControl;
/* 0x16078 */ mDoExt_3DlineMatSortPacket m3DLineMatSortPacket[2];
/* 0x160A0 */ dDlst_peekZ_c mPeekZ;
}; // Size: 0x16234
STATIC_ASSERT(sizeof(dDlst_list_c) == 0x16234);
#endif /* D_D_DRAWLIST_H */
+2
View File
@@ -64,6 +64,8 @@ public:
extern dScnKy_env_light_c g_env_light;
int dKy_getdaytime_hour();
BOOL dKy_checkEventNightStop();
#endif /* D_KANKYO_D_KANKYO_H */
+18 -6
View File
@@ -302,8 +302,12 @@ STATIC_ASSERT(sizeof(dSv_player_status_b_c) == 0x18);
class dSv_player_return_place_c {
public:
/* 80058B84 */ void init();
/* 80058BC8 */ void set(char const*, s8, u8);
void init();
void set(char const*, s8, u8);
s8 getRoomNo() const { return mRoomNo; }
u8 getPlayerStatus() const { return mPlayerStatus; }
char* getName() { return mName; }
/* 0x00 */ char mName[8];
/* 0x08 */ s8 mRoomNo;
@@ -743,17 +747,26 @@ public:
/* 8005D4C8 */ void setRestartOption(s8);
/* 8005D584 */ void setRestartOption(s8, cXyz*, s16, s8);
void setRoomParam(u32 param) { mRestartParam = param; }
void setStartPoint(s16 point) { mStartCode = point; }
void setLastSceneInfo(f32 speed, u32 mode) {
mLastSpeedF = speed;
mLastMode = mode;
}
/* 0x00 */ s8 mRestartRoom;
/* 0x01 */ u8 field_0x1;
/* 0x02 */ s8 mRoomNo;
/* 0x04 */ s16 field_0x4;
/* 0x06 */ s16 mRoomAngleY;
/* 0x08 */ cXyz mRoomPos;
/* 0x14 */ u16 mStartCode;
/* 0x14 */ s16 mStartCode;
/* 0x16 */ s16 mRestartAngle;
/* 0x18 */ cXyz mRestartPos;
/* 0x24 */ u32 mRestartParam;
}; // Size: 0x28
/* 0x28 */ f32 mLastSpeedF;
/* 0x2C */ u32 mLastMode;
}; // Size: 0x30
class dSv_turnRestart_c {
public:
@@ -810,6 +823,7 @@ public:
dSv_player_c& getPlayer() { return mSavedata.getPlayer(); }
dSv_event_c& getEvent() { return mSavedata.getEvent(); }
dSv_restart_c& getRestart() { return mRestart; }
static const int MEMORY_SWITCH = 0x80;
static const int DAN_SWITCH = 0x40;
@@ -826,8 +840,6 @@ public:
/* 0x079C */ dSv_danBit_c mDan;
/* 0x07A8 */ dSv_zone_c mZone[ZONE_MAX];
/* 0x1128 */ dSv_restart_c mRestart;
/* 0x1150 */ f32 field_0x1150;
/* 0x1154 */ int field_0x1154;
/* 0x1158 */ dSv_event_c mTmp;
/* 0x1258 */ dSv_turnRestart_c mTurnRestart;
/* 0x1290 */ u8 field_0x1290;
+1 -1
View File
@@ -463,7 +463,7 @@ public:
dStage_nextStage_c() {
mEnable = 0; // TODO: maybe wrong
}
void set(const char*, s8, s16, s8, s8, u8);
void set(const char*, s8, s16, s8, s8);
void offEnable() { mEnable = 0; }
s8 isEnable() const { return mEnable; }
s8 getWipe() const { return mWipe; }
+26
View File
@@ -0,0 +1,26 @@
#ifndef D_D_VIBRATION_H
#define D_D_VIBRATION_H
#include "SSystem/SComponent/c_xyz.h"
class dVibration_c {
public:
dVibration_c();
~dVibration_c();
int Run();
bool StartShock(int i_strength, int, cXyz);
bool StartQuake(u8 const*, int, int, cXyz);
bool StartQuake(int, int, cXyz);
int StopQuake(int);
void Kill();
bool CheckQuake();
void setDefault();
void Init();
void Pause();
void Remove();
u8 temp[0x84];
}; // Size: 0x84
#endif /* D_D_VIBRATION_H */
+6
View File
@@ -0,0 +1,6 @@
#ifndef M_DO_AUDIO_H
#define M_DO_AUDIO_H
void mDoAud_setSceneName(const char*, s32, s32);
#endif /* M_DO_AUDIO_H */
+25
View File
@@ -97,6 +97,31 @@ private:
STATIC_ASSERT(sizeof(mDoExt_bckAnm) == 0x10);
class mDoExt_McaMorfCallBack1_c {
public:
virtual void execute(u16, J3DTransformInfo*) = 0;
};
class mDoExt_3DlineMat_c {
public:
/* 0x0 */ void* field_0x0;
/* 0x4 */ mDoExt_3DlineMat_c* field_0x4;
};
class mDoExt_3DlineMatSortPacket : public J3DPacket {
public:
mDoExt_3DlineMatSortPacket() { mp3DlineMat = NULL; }
void reset() { mp3DlineMat = NULL; }
void setMat(mDoExt_3DlineMat_c*);
virtual void draw();
virtual ~mDoExt_3DlineMatSortPacket();
private:
/* 0x10 */ mDoExt_3DlineMat_c* mp3DlineMat;
};
J3DModel* mDoExt_J3DModel__create(J3DModelData* i_modelData, u32 i_modelFlag, u32 i_differedDlistFlag);
void mDoExt_modelUpdate(J3DModel* i_model);
+162 -21
View File
@@ -4,7 +4,13 @@
//
#include "d/d_com_inf_game.h"
#include "JSystem/JUtility/JUTAssert.h"
#include "MSL_C/string.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/actor/d_a_player.h"
#include "d/d_com_lib_game.h"
#include "f_op/f_op_scene_mng.h"
#include "m_Do/m_Do_audio.h"
class J3DModel;
@@ -96,8 +102,84 @@ void dComIfG_play_c::itemInit() {
}
/* 80052400-8005286C .text getLayerNo__14dComIfG_play_cFi */
void dComIfG_play_c::getLayerNo(int) {
/* Nonmatching */
// almost
int dComIfG_play_c::getLayerNo(int i_roomNo) {
int layer = dComIfGp_getStartStageLayer();
if (layer < 0) {
int hour = dKy_getdaytime_hour();
if (dKy_checkEventNightStop()) {
layer = 1;
} else {
layer = (hour >= 6 && hour < 18) == 0;
}
if (strcmp(dComIfGp_getStartStageName(), "sea") == 0) {
if (i_roomNo == 44) {
if (dComIfGs_isEventBit(0x520)) {
return layer | 4;
} else if (dComIfGs_isEventBit(0xE20)) {
return layer | 2;
} else if (dComIfGs_isEventBit(0x101)) {
return 9;
}
} else if (i_roomNo == 11) {
if (dComIfGs_isEventBit(0x2D01)) {
return layer | 4;
} else if (dKy_checkEventNightStop()) {
return layer | 2;
}
} else if (i_roomNo == 1) {
return dComIfGs_isEventBit(0x1820) ? 3 : 1;
}
} else if (strcmp(dComIfGp_getStartStageName(), "A_mori") == 0) {
if (dComIfGs_isEventBit(0xF80)) {
return layer | 2;
}
} else if (strcmp(dComIfGp_getStartStageName(), "Asoko") == 0) {
if (dComIfGs_isEventBit(0x520)) {
return layer | 2;
}
} else if (strcmp(dComIfGp_getStartStageName(), "Hyrule") == 0) {
if (dComIfGs_getTriforceNum() == 8) {
return layer | 4;
} else if (dComIfGs_isEventBit(0x3280)) {
return layer | 2;
}
} else if (strcmp(dComIfGp_getStartStageName(), "Hyroom") == 0) {
if (dComIfGs_getTriforceNum() == 8 && !dComIfGs_isEventBit(0x2C01)) {
return layer | 4;
} else if (dComIfGs_isEventBit(0x3280)) {
return layer | 2;
} else if (dComIfGs_isEventBit(0x3B40)) {
return layer | 6;
}
} else if (strcmp(dComIfGp_getStartStageName(), "kenroom") == 0) {
if (dComIfGs_isEventBit(0x2C01) ||
(dComIfGs_isEventBit(0x3802) && !dComIfGs_isEventBit(0x3280)))
{
return layer | 6;
} else if (dComIfGs_getTriforceNum() == 8) {
return layer | 4;
} else if (dComIfGs_isEventBit(0x3802)) {
return layer | 2;
}
} else if (strcmp(dComIfGp_getStartStageName(), "M2tower") == 0) {
if (dComIfGs_isEventBit(0x2D01)) {
return layer | 2;
}
} else if (strcmp(dComIfGp_getStartStageName(), "GanonK") == 0) {
if (!dComIfGs_isEventBit(0x3B02)) {
return 8;
}
} else if (strcmp(dComIfGp_getStartStageName(), "GTower") == 0 &&
!dComIfGs_isEventBit(0x4002))
{
return 8;
}
}
return layer;
}
/* 8005286C-800528F4 .text createParticle__14dComIfG_play_cFv */
@@ -262,8 +344,18 @@ void dComIfG_inf_c::ct() {
}
/* 800531A8-8005326C .text dComIfG_changeOpeningScene__FP11scene_classs */
void dComIfG_changeOpeningScene(scene_class*, s16) {
/* Nonmatching */
// matches with stringbase offset
int dComIfG_changeOpeningScene(scene_class* i_scene, s16 i_procName) {
dComIfGp_offEnableNextStage();
dComIfGp_setNextStage("sea_T", 0, 44, 0, 0.0f, 0, 1, 0);
mDoAud_setSceneName(dComIfGp_getNextStageName(), dComIfGp_getNextStageRoomNo(),
dComIfGp_getNextStageLayer());
dComIfGs_setRestartRoomParam(0);
fopScnM_ChangeReq(i_scene, i_procName, 0, 30);
fopScnM_ReRequest(i_procName, 0);
return 1;
}
/* 8005326C-800532D8 .text dComIfG_resetToOpening__FP11scene_class */
@@ -272,36 +364,59 @@ void dComIfG_resetToOpening(scene_class*) {
}
/* 800532D8-80053330 .text phase_1__FPc */
void phase_1(char*) {
/* Nonmatching */
// matches with stringbase
int phase_1(char* i_arcName) {
return !dComIfG_setObjectRes(i_arcName, (u8)0, NULL) ? cPhs_ERROR_e : cPhs_NEXT_e;
}
/* 80053330-80053388 .text phase_2__FPc */
void phase_2(char*) {
/* Nonmatching */
int phase_2(char* i_arcName) {
int syncStatus = dComIfG_syncObjectRes(i_arcName);
if (syncStatus < 0) {
return cPhs_ERROR_e;
} else {
return syncStatus > 0 ? 0 : 2;
}
}
/* 80053388-80053390 .text phase_3__FPc */
int phase_3(char*) {
int phase_3(char* i_arcName) {
return cPhs_COMPLEATE_e;
}
/* 80053390-800533D0 .text dComIfG_resLoad__FP30request_of_phase_process_classPCc */
void dComIfG_resLoad(request_of_phase_process_class*, const char*) {
/* Nonmatching */
int dComIfG_resLoad(request_of_phase_process_class* i_phase, const char* i_arcName) {
static int (*l_method[3])(void*) = {(int (*)(void*))phase_1, (int (*)(void*))phase_2,
(int (*)(void*))phase_3};
if (i_phase->id == cPhs_NEXT_e) {
return cPhs_COMPLEATE_e;
}
return dComLbG_PhaseHandler(i_phase, l_method, (void*)i_arcName);
}
/* 800533D0-8005347C .text dComIfG_resDelete__FP30request_of_phase_process_classPCc */
void dComIfG_resDelete(request_of_phase_process_class*, const char*) {
/* Nonmatching */
// matches with stringbase
int dComIfG_resDelete(request_of_phase_process_class* i_phase, const char* i_resName) {
JUT_ASSERT(1048, i_phase->id != 1);
if (i_phase->id == cPhs_NEXT_e) {
dComIfG_deleteObjectResMain(i_resName);
i_phase->id = cPhs_INIT_e;
}
return 0;
}
/* 8005347C-800534C4 .text dComIfGp_getReverb__Fi */
void dComIfGp_getReverb(int) {
s8 dComIfGp_getReverb(int) {
/* Nonmatching */
}
/* 800534C4-800535B8 .text dComIfGd_setSimpleShadow2__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj */
/* 800534C4-800535B8 .text dComIfGd_setSimpleShadow2__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj
*/
void dComIfGd_setSimpleShadow2(cXyz*, f32, f32, cBgS_PolyInfo&, s16, f32, _GXTexObj*) {
/* Nonmatching */
}
@@ -327,8 +442,28 @@ void dComIfGp_getRoomArrow(int) {
}
/* 800537C8-8005388C .text dComIfGp_setNextStage__FPCcsScScfUliSc */
void dComIfGp_setNextStage(const char*, s16, s8, s8, f32, u32, int, s8) {
/* Nonmatching */
void dComIfGp_setNextStage(const char* i_stageName, s16 i_point, s8 i_roomNo, s8 i_layer,
f32 i_lastSpeed, u32 i_lastMode, int i_setPoint, s8 i_wipe) {
g_dComIfG_gameInfo.play.setNextStage(i_stageName, i_roomNo, i_point, i_layer, i_wipe);
if (daPy_getPlayerLinkActorClass() != NULL) {
u32 mode = daPy_getPlayerLinkActorClass()->field_0x2a0;
if (mode & 1) {
i_lastMode |= 0x8000;
}
i_lastMode |= daPy_getPlayerLinkActorClass()->field_0x354e << 0x10;
if (mode & 0x8000) {
i_lastMode |= 0x4000;
}
}
g_dComIfG_gameInfo.info.getRestart().setLastSceneInfo(i_lastSpeed, i_lastMode);
if (i_setPoint) {
dComIfGs_setStartPoint(i_point);
}
}
/* 8005388C-80053918 .text dComIfGs_onStageTbox__Fii */
@@ -366,8 +501,10 @@ void dComIfGs_checkGetItemNum(u8) {
/* Nonmatching */
}
/* 80054578-8005468C .text dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj */
void dComIfGd_setShadow(u32, s8, J3DModel*, cXyz*, f32, f32, f32, f32, cBgS_PolyInfo&, dKy_tevstr_c*, s16, f32, _GXTexObj*) {
/* 80054578-8005468C .text
* dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj */
void dComIfGd_setShadow(u32, s8, J3DModel*, cXyz*, f32, f32, f32, f32, cBgS_PolyInfo&,
dKy_tevstr_c*, s16, f32, _GXTexObj*) {
/* Nonmatching */
}
@@ -393,7 +530,12 @@ void dComIfGs_setGameStartStage() {
/* 80054C70-80054CC0 .text dComIfGs_gameStart__Fv */
void dComIfGs_gameStart() {
/* Nonmatching */
dComIfGp_offEnableNextStage();
s8 roomNo = g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().getRoomNo();
s16 point = g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().getPlayerStatus();
char* name = g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().getName();
dComIfGp_setNextStage(name, point, roomNo, -1, 0.0f, 0, 1, 0);
}
/* 80054CC0-80054E9C .text dComIfGs_copyPlayerRecollectionData__Fv */
@@ -420,4 +562,3 @@ void dComIfGs_exchangePlayerRecollectionData() {
void dComIfGs_setSelectEquip(int, u8) {
/* Nonmatching */
}