work on d_stage (#50)

This commit is contained in:
TakaRikka
2023-09-17 12:00:36 -07:00
committed by GitHub
parent e806b15578
commit b4d68622e0
12 changed files with 2981 additions and 1222 deletions
+1 -1
View File
@@ -911,7 +911,7 @@ public:
void procFanSwing();
void procFanGlide_init(int);
void procFanGlide();
void getDayNightParamData();
u32 getDayNightParamData();
void setTactModel();
void checkNpcStatus();
void getTactPlayRightArmAnm(s32);
+117
View File
@@ -0,0 +1,117 @@
#ifndef D_A_SHIP_H
#define D_A_SHIP_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_particle.h"
class msg_class;
class daShip_c : public fopAc_ac_c {
public:
daShip_c();
void initStartPos(cXyz const*, s16);
void bodyJointCallBack(int);
void cannonJointCallBack(int);
void craneJointCallBack();
void headJointCallBack0();
void headJointCallBack1(int);
void draw();
void checkForceMessage();
void setInitMessage();
void setNextMessage(msg_class*);
void seStart(u32, cXyz*);
void setSailAngle();
void setControllAngle(s16);
void getMaxWaterY(cXyz*);
void setWaveAngle(s16*, s16*);
void getWaterY();
void setYPos();
void checkOutRange();
void decrementShipSpeed(f32);
void firstDecrementShipSpeed(f32);
void getAimControllAngle(s16);
void setMoveAngle(s16);
void changeDemoEndProc();
void setCrashData(s16);
void checkNextMode(int);
void setPartOnAnime(u8);
void setPartOffAnime();
void setPartAnimeInit(u8);
void setSelfMove(int);
void procWait_init();
void procWait();
void procReady_init();
void procReady();
void procGetOff_init();
void procGetOff();
void procPaddleMove_init();
void procPaddleMove();
void procSteerMove_init();
void procSteerMove();
void procCannonReady_init();
void procCannonReady();
void procCannon_init();
void procCannon();
void procCraneReady_init();
void procCraneReady();
void procCrane_init();
void procCrane();
void procCraneUp_init();
void procCraneUp();
void procToolDemo_init();
void procToolDemo();
void procZevDemo_init();
void procZevDemo();
void procTalkReady_init();
void procTalkReady();
void procTalk_init();
void procTalk();
void procTurn_init();
void procTurn();
void procTornadoUp_init();
void procTornadoUp();
void procStartModeWarp_init();
void procStartModeWarp();
void procTactWarp_init();
void procTactWarp();
void procWhirlDown_init();
void procWhirlDown();
void procStartModeThrow_init();
void procStartModeThrow();
void setEffectData(f32, s16);
void setRoomInfo();
void incRopeCnt(int, int);
void setRopePos();
void getAnglePartRate();
void setTornadoActor();
void setWhirlActor();
void setHeadAnm();
void execute();
void shipDelete();
void createHeap();
void create();
void getCannonAngleX() const;
void checkForceMove() const;
/* 0x0290 */ u8 field_0x0290[0x0300 - 0x0290];
/* 0x0300 */ J3DModel* mpCannonModel;
/* 0x0304 */ J3DModel* mpSalvageArmModel;
/* 0x0308 */ u8 field_0x0308[0x034D - 0x0308];
/* 0x034D */ u8 field_0x034d;
/* 0x034E */ u8 mShipMode;
/* 0x034F */ u8 field_0x034F[0x0358 - 0x034F];
/* 0x0358 */ u32 field_0x0358;
/* 0x035C */ int mNextMessageID;
/* 0x0360 */ int mShadowId;
/* 0x0364 */ u8 field_0x0364[0x183C - 0x0364];
/* 0x183C */ dPa_waveEcallBack field_0x183c;
/* 0x18A0 */ dPa_waveEcallBack field_0x18a0;
/* 0x1904 */ dPa_splashEcallBack field_0x1904;
/* 0x1920 */ dPa_trackEcallBack field_0x1920;
/* 0x1970 */ dPa_rippleEcallBack field_0x1970;
/* 0x1984 */ u8 field_0x1984[0x19C0 - 0x1984];
/* 0x19C0 */ dPa_rippleEcallBack field_0x19c0;
};
#endif /* D_A_SHIP_H */
+191 -3
View File
@@ -17,6 +17,7 @@
#include "d/d_vibration.h"
#include "d/d_wood.h"
#include "d/d_demo.h"
#include "d/d_timer.h"
class JKRArchive;
class JKRExpHeap;
@@ -144,6 +145,7 @@ public:
s16 getStartStagePoint() { return mCurStage.getPoint(); }
void setStartStageLayer(s8 layer) { mCurStage.setLayer(layer); }
void setStartStage(dStage_startStage_c* i_startStage) { mCurStage = *i_startStage; }
dStage_startStage_c* getStartStage() { return &mCurStage; }
const char* getNextStageName() { return mNextStage.getName(); }
dStage_startStage_c* getNextStartStage() { return &mNextStage; }
@@ -164,6 +166,22 @@ public:
void setLkDemoAnmArchive(JKRArchive* i_arc) { mpLkDArc = i_arc; }
void setStatus(u16 status) { mStatus = status; }
void setShipId(u8 i_id) { mShipId = i_id; }
void setShipRoomId(u8 i_id) { mShipRoomId = i_id; }
u8 getShipId() { return mShipId; }
u8 getShipRoomId() { return mShipRoomId; }
void setAgb(fopAc_ac_c* i_agb) { mpAgb = (daAgb_c*)i_agb; }
void setIkadaShipBeforePos(Vec& i_pos) { mIkadaLinkPos = i_pos; }
void setIkadaShipId(u8 i_id) { mIkadaShipId = i_id; }
void setIkadaShipBeforeRoomId(u8 i_roomId) { mIkadaShipBeforeRoomId = i_roomId; }
u8 getIkadaShipId() { return mIkadaShipId; }
u8 getIkadaShipBeforeRoomId() { return mIkadaShipBeforeRoomId; }
dTimer_c* getTimerPtr() { return mTimerInfo.mTimerPtr; }
s32 getTimerMode() { return mTimerInfo.mTimerMode; }
/* 0x0000 */ dBgS mBgS;
/* 0x1404 */ dCcS mCcS;
/* 0x3DF8 */ dADM mADM;
@@ -323,9 +341,10 @@ public:
/* 0x4A58 */ camera_class* field_0x4a58;
/* 0x4A5C */ dDlst_window_c* field_0x4a5c;
/* 0x4A60 */ J2DOrthoGraph* mp2DOrthoGraph;
/* 0x4A64 */ u8 field_0x4A64[0x4A66 - 0x4A64];
/* 0x4A66 */ u8 mLastSeaRoom;
/* 0x4A67 */ u8 field_0x4A67[0x4A68 - 0x4A67];
/* 0x4A64 */ u8 mShipId;
/* 0x4A65 */ u8 mShipRoomId;
/* 0x4A66 */ u8 mIkadaShipBeforeRoomId;
/* 0x4A67 */ u8 mIkadaShipId;
/* 0x4A68 */ cXyz mIkadaLinkPos;
/* 0x4A74 */ void* mpItemTableArchive;
/* 0x4A78 */ void* mpFmapDataArchive;
@@ -374,6 +393,10 @@ inline BOOL dComIfGs_checkReserveItem(u8 i_itemNo) {
return dComIfGs_getpBagItem()->checkReserveItem(i_itemNo);
}
inline void dComIfGs_initZone() {
g_dComIfG_gameInfo.save.initZone();
}
inline u8 dComIfGs_getSelectEquip(int param_0) {
return g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusA().getSelectEquip(param_0);
}
@@ -446,6 +469,14 @@ inline void dComIfGs_setRestartRoomParam(u32 i_param) {
g_dComIfG_gameInfo.save.getRestart().setRoomParam(i_param);
}
inline s8 dComIfGs_getRestartRoomNo() {
return g_dComIfG_gameInfo.save.getRestart().getRoomNo();
}
inline s8 dComIfGs_getTurnRestartRoomNo() {
return g_dComIfG_gameInfo.save.getTurnRestart().getRoomNo();
}
inline void dComIfGs_setStartPoint(s16 i_point) {
g_dComIfG_gameInfo.save.getRestart().setStartPoint(i_point);
}
@@ -528,12 +559,73 @@ inline bool dComIfGs_isItem(int bitNo, int roomNo) {
return g_dComIfG_gameInfo.save.isItem(bitNo, roomNo);
}
inline void dComIfGs_clearRoomSwitch(int i_zoneNo) {
g_dComIfG_gameInfo.save.getZone(i_zoneNo).getZoneBit().clearRoomSwitch();
}
inline void dComIfGs_removeZone(int i_zoneNo) {
g_dComIfG_gameInfo.save.removeZone(i_zoneNo);
}
inline u32 dComIfGs_getTurnRestartParam() {
return g_dComIfG_gameInfo.save.getTurnRestart().getParam();
}
inline cXyz& dComIfGs_getTurnRestartPos() {
return g_dComIfG_gameInfo.save.getTurnRestart().getPos();
}
inline cXyz& dComIfGs_getTurnRestartShipPos() {
return g_dComIfG_gameInfo.save.getTurnRestart().getShipPos();
}
inline s16 dComIfGs_getTurnRestartAngleY() {
return g_dComIfG_gameInfo.save.getTurnRestart().getAngleY();
}
inline s16 dComIfGs_getTurnRestartShipAngleY() {
return g_dComIfG_gameInfo.save.getTurnRestart().getShipAngleY();
}
inline u32 dComIfGs_getRestartRoomParam() {
return g_dComIfG_gameInfo.save.getRestart().getRoomParam();
}
inline cXyz& dComIfGs_getRestartRoomPos() {
return g_dComIfG_gameInfo.save.getRestart().getRoomPos();
}
inline s16 dComIfGs_getRestartRoomAngleY() {
return g_dComIfG_gameInfo.save.getRestart().getRoomAngleY();
}
inline void dComIfGs_putSave(int i_stageNo) {
g_dComIfG_gameInfo.save.putSave(i_stageNo);
}
inline void dComIfGs_getSave(int i_stageNo) {
g_dComIfG_gameInfo.save.getSave(i_stageNo);
}
inline void dComIfGs_initDan(s8 i_stageNo) {
g_dComIfG_gameInfo.save.initDan(i_stageNo);
}
inline BOOL dComIfGs_isActor(int i_no, int i_roomNo) {
return g_dComIfG_gameInfo.save.isActor(i_no, i_roomNo);
}
inline void dComIfGs_setTurnRestart(const cXyz& i_pos, s16 i_angle, s8 i_roomNo, u32 i_param) {
g_dComIfG_gameInfo.save.getTurnRestart().set(i_pos, i_angle, i_roomNo, i_param, i_pos, i_angle, 0);
}
/**
* === 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);
dStage_Ship_data* dComIfGp_getShip(int i_roomNo, int param_1);
inline const char* dComIfGp_getStartStageName() {
return g_dComIfG_gameInfo.play.getStartStageName();
@@ -563,6 +655,10 @@ inline dStage_startStage_c* dComIfGp_getNextStartStage() {
return g_dComIfG_gameInfo.play.getNextStartStage();
}
inline dStage_startStage_c* dComIfGp_getStartStage() {
return g_dComIfG_gameInfo.play.getStartStage();
}
inline void dComIfGp_setStartStage(dStage_startStage_c* p_startStage) {
g_dComIfG_gameInfo.play.setStartStage(p_startStage);
}
@@ -603,6 +699,14 @@ inline stage_stag_info_class* dComIfGp_getStageStagInfo() {
return g_dComIfG_gameInfo.play.getStage().getStagInfo();
}
inline s32 dComIfGp_roomControl_getStayNo() {
return dStage_roomControl_c::getStayNo();
}
inline void dComIfGp_roomControl_init() {
g_dComIfG_gameInfo.play.getRoomControl()->init();
}
inline dStage_roomStatus_c* dComIfGp_roomControl_getStatusRoomDt(int room_no) {
return g_dComIfG_gameInfo.play.getRoomControl()->getStatusRoomDt(room_no);
}
@@ -611,6 +715,26 @@ inline void dComIfGp_roomControl_checkDrawArea() {
return g_dComIfG_gameInfo.play.getRoomControl()->checkDrawArea();
}
inline void dComIfGp_roomControl_setStayNo(int stayNo) {
g_dComIfG_gameInfo.play.getRoomControl()->setStayNo(stayNo);
}
inline void dComIfGp_roomControl_setStatusFlag(int i_roomNo, u8 i_flag) {
g_dComIfG_gameInfo.play.getRoomControl()->setStatusFlag(i_roomNo, i_flag);
}
inline void dComIfGp_roomControl_zoneCountCheck(int i_roomNo) {
g_dComIfG_gameInfo.play.getRoomControl()->zoneCountCheck(i_roomNo);
}
inline void dComIfGp_roomControl_setTimePass(int isPassing) {
g_dComIfG_gameInfo.play.getRoomControl()->SetTimePass(isPassing);
}
inline int dComIfGp_roomControl_loadRoom(int param_0, u8* param_1) {
return g_dComIfG_gameInfo.play.getRoomControl()->loadRoom(param_0, param_1);
}
inline dBgS* dComIfG_Bgsp() {
return &g_dComIfG_gameInfo.play.mBgS;
}
@@ -627,6 +751,30 @@ inline void dComIfGp_getIkadaShipBeforePos(Vec* o_pos) {
*o_pos = g_dComIfG_gameInfo.play.mIkadaLinkPos;
}
inline void dComIfGp_setIkadaShipBeforePos(Vec& i_pos) {
g_dComIfG_gameInfo.play.setIkadaShipBeforePos(i_pos);
}
inline void dComIfGp_setIkadaShipId(u8 i_id) {
g_dComIfG_gameInfo.play.setIkadaShipId(i_id);
}
inline void dComIfGp_setIkadaShipBeforeRoomId(u8 i_roomId) {
g_dComIfG_gameInfo.play.setIkadaShipBeforeRoomId(i_roomId);
}
inline u8 dComIfGp_getIkadaShipId() {
return g_dComIfG_gameInfo.play.getIkadaShipId();
}
inline u8 dComIfGp_getIkadaShipBeforeRoomId() {
return g_dComIfG_gameInfo.play.getIkadaShipBeforeRoomId();
}
inline stage_scls_info_dummy_class* dComIfGp_getStageSclsInfo() {
return g_dComIfG_gameInfo.play.getStage().getSclsInfo();
}
inline dStage_stageDt_c& dComIfGp_getStage() {
return g_dComIfG_gameInfo.play.getStage();
}
@@ -719,6 +867,26 @@ inline void dComIfGp_setStatus(u16 status) {
g_dComIfG_gameInfo.play.setStatus(status);
}
inline void dComIfGp_setShipId(u8 i_id) {
g_dComIfG_gameInfo.play.setShipId(i_id);
}
inline void dComIfGp_setShipRoomId(u8 i_id) {
g_dComIfG_gameInfo.play.setShipRoomId(i_id);
}
inline u8 dComIfGp_getShipId() {
return g_dComIfG_gameInfo.play.getShipId();
}
inline u8 dComIfGp_getShipRoomId() {
return g_dComIfG_gameInfo.play.getShipRoomId();
}
inline void dComIfGp_setAgb(fopAc_ac_c* i_agb) {
g_dComIfG_gameInfo.play.setAgb(i_agb);
}
inline daPy_py_c* daPy_getPlayerActorClass() {
return (daPy_py_c*)dComIfGp_getPlayer(0);
}
@@ -814,6 +982,14 @@ inline void dComIfGp_evmng_execute() {
g_dComIfG_gameInfo.play.executeEvtManager();
}
inline void dComIfGp_evmng_create() {
g_dComIfG_gameInfo.play.getEvtManager().create();
}
inline void dComIfGp_evmng_remove() {
g_dComIfG_gameInfo.play.getEvtManager().remove();
}
/**
* === DRAWLIST ===
*/
@@ -950,4 +1126,16 @@ inline void dComIfGp_particle_readScene(u8 particle_no, mDoDvdThd_toMainRam_c**
class scene_class;
int dComIfG_resetToOpening(scene_class* i_scene);
inline int dComIfG_getTimerMode() {
return g_dComIfG_gameInfo.play.getTimerMode();
}
inline dTimer_c* dComIfG_getTimerPtr() {
return g_dComIfG_gameInfo.play.getTimerPtr();
}
inline void dComIfG_TimerDeleteRequest() {
dComIfG_getTimerPtr()->deleteRequest();
}
#endif /* D_COM_D_COM_INF_GAME_H */
+1 -1
View File
@@ -28,7 +28,7 @@ public:
void getSubstance(dEvDtData_c*, int);
void setData(const char*);
void create();
void remove(const char*);
void remove();
void startProc(dEvDtEvent_c*);
void closeProc(dEvDtEvent_c*);
void endProc(s16, int);
+6
View File
@@ -8,6 +8,12 @@
class J3DModel;
struct color_RGB_class {
u8 r;
u8 g;
u8 b;
};
class dKy_tevstr_c {
public:
/* 0x00 */ J3DLightObj mLightObj;
+65
View File
@@ -1,8 +1,73 @@
#ifndef D_MAP_H
#define D_MAP_H
class fopAc_ac_c;
class dMap_c {
public:
static void create();
void isEnableEnlargementScroll();
void isEnableDispMap();
void getKindMapType();
static void remove();
void setImage(int, int, f32);
void deleteImage(int);
void setNowRoom(int);
void mapDrawIconFree(s16, s16, u8);
void mapDrawIconSelf(s16, s16, u8);
void mapDrawFrame(u8);
void mapDrawEnlargementSize(f32, f32, f32, f32, u8);
void mapDrawRealSize(f32, f32, u8);
void mapAGBSendIslandData();
void setPlayerStayAgbMapTypeNow(f32, f32);
void agbMapNoSet(u8, u8);
void agbMapNoSetCall();
void agbIsMsgSend();
void agbResetCursor();
void agbScrollX();
void agbScrollY();
void agbFlashCheck();
void agbIsActive();
void isInDspArea(f32, f32, bool);
void mapAGBSendStatInit();
void mapAGBSendMapMain(f32, f32);
void calcEnlargementSizeParameter(f32, f32);
void calcScissor();
void mapMoveAll(f32, f32, int, f32);
void mapDrawAll(f32, f32, int, f32);
void mapDrawIcon();
void draw(f32, f32, int, f32);
void point2Grid(f32, f32, s8*, s8*);
void point2GridAndLocal(f32, f32, s8*, s8*, s16*, s16*);
void getCheckPointUseGrid(s8, s8);
void getFmapChkPntPrm(int, s8*, s8*, s16*, s16*, u8*);
void setFmapChkDtPrm();
void getFmapChkPntDtPnt(int);
void initPoint();
void setGbaPoint_ocean(u8, f32, f32, s16, u8, u8, u8, u8);
void isPointStayInDspNowRoomAgbScr(s16, s16);
void setCollectPoint(u8, u8, f32, f32, f32, s8, s16, u8, u8, u8, u8);
void setGbaPoint_dungeon(u8, f32, f32, s16, u8, u8, u8, u8);
void getPosAgbMapType(f32, f32, bool);
void setGbaPoint(u8, f32, f32, s16, u8, u8, u8, u8);
void setArriveInfo(f32, f32);
void drawPointPlayer(f32, f32, s16);
void drawPointEnemy(f32, f32);
void drawPointAgbCursor(f32, f32);
void drawPointTbox(f32, f32, f32, f32);
void drawPointDoor(f32, f32, f32, f32, s16, u8);
void drawPointRestart(f32, f32, s16, f32, f32);
void drawPointFriend(f32, f32, f32);
void drawPointShip(f32, f32, s16, f32, f32);
void drawPointGc(u8, f32, f32, f32, s8, s16, u8, u8, u8, u8);
void drawPointMain(u8, u8, f32, f32, f32, s8, s16, u8, u8, u8, u8);
void drawPointAgb(u8, f32, f32, f32, s8, s16, u8, u8, u8, u8);
void getTypeAgbGcFromTypeAcs(u8, u8*, u8*);
void drawPointSingle(u8, f32, f32, f32, s8, s16, u8, u8, u8);
void drawActorPointMiniMap(fopAc_ac_c*);
void mapBufferSendAGB_commonCursor();
void mapBufferSendAGB_ocean();
void mapBufferSendAGB_dungeon();
void mapSetPointAll();
static void mapBufferSendAGB(int);
};
+84
View File
@@ -1,6 +1,8 @@
#ifndef D_PARTICLE
#define D_PARTICLE
#include "JSystem/J3DGraphBase/J3DVertex.h"
#include "JSystem/JGeometry.h"
#include "JSystem/JParticle/JPAParticle.h"
#include "f_pc/f_pc_node.h"
@@ -25,6 +27,11 @@ public:
/* 0x13 */ u8 mbAffectedByWind;
};
class dPa_levelEcallBack {
public:
virtual ~dPa_levelEcallBack() {}
};
class dPa_simpleEcallBack {
public:
dPa_simpleEcallBack();
@@ -46,6 +53,83 @@ public:
/* 0x010 */ dPa_simpleData_c mSimpleData[32];
};
class dPa_waveEcallBack : public dPa_levelEcallBack {
public:
void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
void remove();
void executeAfter(JPABaseEmitter*);
void draw(JPABaseEmitter*);
~dPa_waveEcallBack();
/* 0x04 */ s16 mState;
/* 0x06 */ s16 mFadeTimer;
/* 0x08 */ f32 mVelFade1;
/* 0x0C */ f32 mVel;
/* 0x10 */ f32 mVelSpeed;
/* 0x14 */ f32 mVelFade2;
/* 0x18 */ f32 mMaxParticleVelocity;
/* 0x1C */ cXyz mCollapsePos[2];
/* 0x34 */ cXyz* mpPos;
/* 0x38 */ csXyz* mpRot;
/* 0x3C */ cXyz mRotMtx[3];
/* 0x60 */ JPABaseEmitter* mpBaseEmitter;
};
class dPa_splashEcallBack : public dPa_levelEcallBack {
public:
void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
void remove();
void execute(JPABaseEmitter*);
~dPa_splashEcallBack();
/* 0x04 */ s16 mState;
/* 0x08 */ f32 mScaleTimer;
/* 0x0C */ f32 mMaxScaleTimer;
/* 0x10 */ cXyz* mpPos;
/* 0x14 */ csXyz* mpRot;
/* 0x18 */ JPABaseEmitter* mpBaseEmitter;
};
class dPa_trackEcallBack : public dPa_levelEcallBack {
public:
void getMaxWaterY(JGeometry::TVec3<f32>*);
void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
void remove();
void execute(JPABaseEmitter*);
void draw(JPABaseEmitter*);
~dPa_trackEcallBack();
/* 0x04 */ s16 mState;
/* 0x08 */ f32 mBaseY;
/* 0x0C */ f32 mMinY;
/* 0x10 */ cXyz mPos[3];
/* 0x34 */ cXyz* mpPos;
/* 0x38 */ csXyz* mpRot;
/* 0x3C */ f32 mExTransY;
/* 0x40 */ f32 mExScaleY;
/* 0x44 */ f32 mVel;
/* 0x48 */ f32 mMinVel;
/* 0x4C */ JPABaseEmitter* mpBaseEmitter;
};
class dPa_rippleEcallBack : public dPa_levelEcallBack {
public:
void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
void end();
void execute(JPABaseEmitter*);
void draw(JPABaseEmitter*);
~dPa_rippleEcallBack();
/* 0x04 */ JPABaseEmitter* mpBaseEmitter;
/* 0x08 */ cXyz* mPos;
/* 0x0C */ u32 mFlags;
/* 0x10 */ f32 mRate;
};
class dPa_modelControl_c {
public:
dPa_modelControl_c(J3DModelData*);
+40 -18
View File
@@ -523,6 +523,8 @@ public:
dSv_zoneActor_c& getActor() { return mZoneActor; }
const dSv_zoneActor_c& getActor() const { return mZoneActor; }
void reset() { mRoomNo = -1; }
/* 0x00 */ s8 mRoomNo;
/* 0x02 */ dSv_zoneBit_c mZoneBit;
/* 0x0C */ dSv_zoneActor_c mZoneActor;
@@ -541,6 +543,13 @@ public:
mLastMode = mode;
}
s16 getStartPoint() const { return mStartCode; }
u32 getLastMode() const { return mLastMode; }
s8 getRoomNo() const { return mRestartRoom; }
u32 getRoomParam() const { return mRestartParam; }
cXyz& getRoomPos() { return mRestartPos; }
s16 getRoomAngleY() const { return mRestartAngle; }
/* 0x00 */ s8 mRestartRoom;
/* 0x01 */ u8 field_0x1;
/* 0x02 */ s8 mRoomNo;
@@ -557,7 +566,15 @@ public:
class dSv_turnRestart_c {
public:
/* 8005D5B4 */ void set(cXyz const&, s16, s8, u32, cXyz const&, s16, int);
void set(cXyz const&, s16, s8, u32, cXyz const&, s16, int);
u32 getParam() const { return mParam; }
cXyz& getPos() { return mPosition; }
s16 getAngleY() const { return mAngleY; }
cXyz& getShipPos() { return field_0x24; }
s16 getShipAngleY() const { return field_0x30; }
s8 getRoomNo() { return mRoomNo; }
/* 0x00 */ cXyz mPosition;
/* 0x0C */ u32 mParam;
@@ -592,29 +609,34 @@ STATIC_ASSERT(sizeof(dSv_save_c) == 0x728);
class dSv_info_c {
public:
/* 8005D604 */ void init();
/* 8005D660 */ void reinit();
/* 8005D8C8 */ void getSave(int);
/* 8005D988 */ void putSave(int);
/* 8005DA70 */ void initZone();
/* 8005DAC8 */ int createZone(int);
/* 8005DB24 */ void onSwitch(int, int);
/* 8005DCEC */ void offSwitch(int, int);
/* 8005DE98 */ BOOL isSwitch(int, int);
/* 8005DFE0 */ BOOL revSwitch(int, int);
/* 8005E190 */ void onItem(int, int);
/* 8005E324 */ BOOL isItem(int, int);
/* 8005E4BC */ void onActor(int, int);
/* 8005E5F0 */ BOOL isActor(int, int);
/* 8005E780 */ void memory_to_card(char*, int);
/* 8005EA24 */ void card_to_memory(char*, int);
/* 8005ED00 */ int initdata_to_card(char*, int);
void init();
void reinit();
void getSave(int);
void putSave(int);
void initZone();
int createZone(int);
void onSwitch(int, int);
void offSwitch(int, int);
BOOL isSwitch(int, int);
BOOL revSwitch(int, int);
void onItem(int, int);
BOOL isItem(int, int);
void onActor(int, int);
BOOL isActor(int, int);
void memory_to_card(char*, int);
void card_to_memory(char*, int);
int initdata_to_card(char*, int);
dSv_save_c& getSavedata() { return mSavedata; }
dSv_player_c& getPlayer() { return mSavedata.getPlayer(); }
dSv_event_c& getEvent() { return mSavedata.getEvent(); }
dSv_restart_c& getRestart() { return mRestart; }
dSv_turnRestart_c& getTurnRestart() { return mTurnRestart; }
dSv_memory_c& getMemory() { return mMemory; }
dSv_zone_c& getZone(int id) { return mZone[id]; }
void removeZone(int zoneNo) { mZone[zoneNo].reset(); }
void initDan(s8 i_stage) { mDan.init(i_stage); }
static const int MEMORY_SWITCH = 0x80;
static const int DAN_SWITCH = 0x40;
+621 -248
View File
File diff suppressed because it is too large Load Diff
+40
View File
@@ -0,0 +1,40 @@
#ifndef D_TIMER_H
#define D_TIMER_H
#include "SSystem/SComponent/c_phase.h"
#include "f_op/f_op_msg_mng.h"
class dDlst_TimerScrnDraw_c;
class dTimer_c {
public:
void _create();
void _execute();
void _draw();
void _delete();
void RestTimeCheck(int);
void deleteCheck();
void SetSE();
void start();
void start(s16);
void stock_start();
void stock_start(s16);
void stop(u8);
void restart(u8);
void end(int);
void deleteRequest();
void getTimeMs();
void getLimitTimeMs();
void getRestTimeMs();
/* 0x000 */ msg_class parent;
/* 0x0FC */ dDlst_TimerScrnDraw_c* mpScrnDraw;
/* 0x100 */ u8 field_0x100[0x104 - 0x100];
/* 0x104 */ request_of_phase_process_class mPhs;
/* 0x10C */ u8 field_0x10C[0x154 - 0x10C];
/* 0x154 */ int field_0x154;
/* 0x158 */ u8 field_0x158[0x170 - 0x158];
/* 0x170 */ JKRHeap* mpSolidHeap;
};
#endif /* D_TIMER_H */
+5 -4
View File
@@ -349,11 +349,12 @@ void fopAcM_delete(fopAc_ac_c* p_actor);
s32 fopAcM_delete(unsigned int actorID);
s32 fopAcM_create(s16 procName, u16 enemyNo, u32 parameter, cXyz* p_pos, int roomNo,
csXyz* p_angle, cXyz* p_scale, s8 subType, createFunc p_createFunc);
s32 fopAcM_create(char*, u32 i_parameter, cXyz* i_pos, int i_roomNo, csXyz* i_angle, cXyz* i_scale, createFunc i_createFunc);
s32 fopAcM_create(s16 procName, u32 parameter, cXyz* p_pos, int roomNo, csXyz* p_angle,
cXyz* p_scale, s8 subType);
s32 fopAcM_create(s16 i_procName, u32 i_parameter, cXyz* i_pos, int i_roomNo, csXyz* i_angle,
cXyz* i_scale, s8 i_subType, createFunc i_createFunc);
inline s32 fopAcM_create(s16 i_procName, createFunc i_createFunc, void*);
void* fopAcM_fastCreate(s16 procName, u32 parameter, cXyz* p_pos, int roomNo,
csXyz* p_angle, cXyz* p_scale, s8 subType,
+1810 -947
View File
File diff suppressed because it is too large Load Diff