mirror of
https://github.com/zeldaret/ss
synced 2026-09-03 01:54:18 -04:00
d_stage progress
This commit is contained in:
@@ -0,0 +1,163 @@
|
||||
#ifndef D_STAGE_TYPES_H
|
||||
#define D_STAGE_TYPES_H
|
||||
|
||||
#include "common.h"
|
||||
#include "m/m_angle.h"
|
||||
#include "m/m_vec.h"
|
||||
|
||||
|
||||
// Size 0x20
|
||||
struct AREA {
|
||||
/* 0x00 */ mVec3_c mPos;
|
||||
/* 0x0C */ mVec3_c mScale;
|
||||
/* 0x18 */ mAng mAngleY;
|
||||
/* 0x1A */ mAng mAngleLink;
|
||||
/* 0x1C */ u8 field_0x1C;
|
||||
};
|
||||
|
||||
// TODO: double check, copied from ss-tools
|
||||
// Size 0x28
|
||||
struct BPNT {
|
||||
/* 0x00 */ mVec3_c position1;
|
||||
/* 0x0C */ mVec3_c position2;
|
||||
/* 0x18 */ mVec3_c position3;
|
||||
/* 0x24 */ u8 _0x24[4];
|
||||
};
|
||||
|
||||
// TODO: double check, copied from ss-tools
|
||||
// Size 0x2C
|
||||
struct CAM {
|
||||
/* 0x00 */ u8 _0x00[4];
|
||||
/* 0x04 */ mVec3_c position;
|
||||
/* 0x10 */ f32 angle;
|
||||
/* 0x14 */ u8 _0x14[8];
|
||||
/* 0x1C */ char name[16];
|
||||
};
|
||||
|
||||
// Size 0x38
|
||||
struct EVNT {
|
||||
/* 0x00 */ u8 _0x00[2];
|
||||
/* 0x02 */ u16 storyFlag1;
|
||||
/* 0x04 */ u16 storyFlag2;
|
||||
/* 0x06 */ u8 _0x06[3];
|
||||
/* 0x09 */ u8 exitId;
|
||||
/* 0x0A */ u8 _0x0A[3];
|
||||
/* 0x0D */ u8 skipEvent;
|
||||
/* 0x0E */ u8 _0x0E[1];
|
||||
/* 0x0F */ u8 sceneFlag1;
|
||||
/* 0x10 */ u8 sceneFlag2;
|
||||
/* 0x11 */ u8 skipFlag;
|
||||
/* 0x12 */ u8 _0x12[2];
|
||||
/* 0x14 */ u16 item;
|
||||
/* 0x16 */ u16 _0x16[2];
|
||||
/* 0x18 */ char name[32];
|
||||
};
|
||||
|
||||
// Size 0x04
|
||||
struct LYLT {
|
||||
/* 0x0 */ u8 layer;
|
||||
/* 0x1 */ u8 demoHigh;
|
||||
/* 0x2 */ u8 demoLow;
|
||||
/* 0x3 */ u8 dummy;
|
||||
};
|
||||
|
||||
// Size 0x04
|
||||
struct LYSE {
|
||||
/* 0x0 */ u16 storyFlag;
|
||||
/* 0x2 */ u8 night;
|
||||
/* 0x3 */ u8 layer;
|
||||
};
|
||||
|
||||
// Size 0x24
|
||||
struct OBJ {
|
||||
/* 0x00 */ u32 params1;
|
||||
/* 0x04 */ u32 params2;
|
||||
/* 0x08 */ mVec3_c position;
|
||||
/* 0x14 */ mAng3_c angle;
|
||||
/* 0x1A */ u16 id;
|
||||
/* 0x1C */ char name[8];
|
||||
};
|
||||
|
||||
// Size 0xC
|
||||
struct PATH {
|
||||
/* 0x00 */ u8 field_0x00;
|
||||
/* 0x01 */ u8 field_0x01;
|
||||
/* 0x02 */ u16 pointStartIndex;
|
||||
/* 0x04 */ u16 pointCount;
|
||||
/* 0x06 */ u8 _0x06[4];
|
||||
/* 0x0A */ u8 firstBitIsWrapAround;
|
||||
/* 0x0B */ u8 _0x0B[1];
|
||||
};
|
||||
|
||||
// Size 0x24
|
||||
struct PCAM {
|
||||
/* 0x00 */ mVec3_c position1;
|
||||
/* 0x0C */ mVec3_c position2;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1C;
|
||||
/* 0x20 */ u8 id;
|
||||
/* 0x21 */ u8 _0x21[3];
|
||||
};
|
||||
|
||||
// Size 0x18
|
||||
struct PLY {
|
||||
/* 0x00 */ u16 storyFlag;
|
||||
/* 0x02 */ u8 playCutscene;
|
||||
/* 0x03 */ u8 _0x03[1];
|
||||
/* 0x04 */ mVec3_c position;
|
||||
/* 0x10 */ mAng3_c angle;
|
||||
/* 0x16 */ u16 entranceId;
|
||||
};
|
||||
|
||||
// Size 0x10
|
||||
struct PNT {
|
||||
/* 0x00 */ mVec3_c position;
|
||||
/* 0x0C */ u8 _0x0C[4];
|
||||
};
|
||||
|
||||
// Size 0x4
|
||||
struct RMPL {
|
||||
/* 0x0 */ u8 roomId;
|
||||
/* 0x1 */ u8 count;
|
||||
/* 0x2 */ u16 offset;
|
||||
};
|
||||
|
||||
// Size 0x28
|
||||
struct SCEN {
|
||||
/* 0x00 */ char name[32];
|
||||
/* 0x20 */ u8 room;
|
||||
/* 0x21 */ u8 layer;
|
||||
/* 0x22 */ u8 entrance;
|
||||
/* 0x23 */ u8 night;
|
||||
/* 0x24 */ u8 transitionType;
|
||||
/* 0x25 */ u8 transitionFadeFrames;
|
||||
/* 0x26 */ u8 zero;
|
||||
/* 0x27 */ u8 savePrompt;
|
||||
};
|
||||
|
||||
// Size 0x30
|
||||
struct SOBJ {
|
||||
/* 0x00 */ u32 params1;
|
||||
/* 0x04 */ u32 params2;
|
||||
/* 0x08 */ mVec3_c position;
|
||||
/* 0x14 */ mVec3_c scale;
|
||||
/* 0x20 */ mAng3_c angle;
|
||||
/* 0x26 */ u16 id;
|
||||
/* 0x28 */ char name[8];
|
||||
};
|
||||
|
||||
// Size 0x14
|
||||
struct STIF {
|
||||
/* 0x00 */ f32 field_0x00;
|
||||
/* 0x04 */ f32 field_0x04;
|
||||
/* 0x08 */ f32 defaultCullingDistance;
|
||||
/* 0x0C */ u16 flagIndex;
|
||||
/* 0x0E */ u8 areaType;
|
||||
/* 0x0F */ u8 field_0x0F;
|
||||
/* 0x10 */ u8 field_0x10;
|
||||
/* 0x11 */ u8 field_0x11;
|
||||
/* 0x12 */ u8 mapNameId;
|
||||
/* 0x13 */ u8 field_0x13;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -59,6 +59,10 @@ public:
|
||||
mFadeInFrame = frame;
|
||||
}
|
||||
|
||||
void setFadeOutFrame(u16 frame) {
|
||||
mFadeOutFrame = frame;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x08 */ mColorFader_c *mpColorFader;
|
||||
/* 0x0C */ dLytFader_c *mpLytFader;
|
||||
|
||||
+17
-16
@@ -5,6 +5,7 @@
|
||||
#include "d/a/d_a_base.h"
|
||||
#include "d/col/bg/d_bg_w_kcol.h"
|
||||
#include "d/d_base.h"
|
||||
#include "d/d_bzs_types.h"
|
||||
#include "m/m3d/m_anmmatclr.h"
|
||||
#include "m/m3d/m_anmtexpat.h"
|
||||
#include "m/m3d/m_anmtexsrt.h"
|
||||
@@ -115,13 +116,13 @@ public:
|
||||
dRoom_c()
|
||||
: mStateMgr(*this, sStateID::null),
|
||||
field_0x15C(nullptr),
|
||||
SCEN(nullptr),
|
||||
PLY(nullptr),
|
||||
CAM(nullptr),
|
||||
EVNT(nullptr),
|
||||
PATH(nullptr),
|
||||
PNT(nullptr),
|
||||
BPNT(nullptr),
|
||||
scen(nullptr),
|
||||
ply(nullptr),
|
||||
cam(nullptr),
|
||||
evnt(nullptr),
|
||||
path(nullptr),
|
||||
pnt(nullptr),
|
||||
bpnt(nullptr),
|
||||
AREA(nullptr),
|
||||
unkCount(0),
|
||||
scenCount(0),
|
||||
@@ -175,17 +176,17 @@ private:
|
||||
/* 0x4E0 */ STATE_MGR_DECLARE(dRoom_c);
|
||||
|
||||
/* 0x51C */ void *field_0x15C;
|
||||
/* 0x520 */ void *SCEN;
|
||||
/* 0x524 */ void *PLY;
|
||||
/* 0x528 */ void *CAM;
|
||||
/* 0x52C */ void *EVNT;
|
||||
/* 0x530 */ void *PATH;
|
||||
/* 0x534 */ void *PNT;
|
||||
/* 0x538 */ void *BPNT;
|
||||
/* 0x53C */ void *SPTH;
|
||||
/* 0x520 */ SCEN *scen;
|
||||
/* 0x524 */ PLY *ply;
|
||||
/* 0x528 */ CAM *cam;
|
||||
/* 0x52C */ EVNT *evnt;
|
||||
/* 0x530 */ PATH *path;
|
||||
/* 0x534 */ PNT *pnt;
|
||||
/* 0x538 */ BPNT *bpnt;
|
||||
/* 0x53C */ PATH *spth;
|
||||
/* 0x540 */ void *field_0x540;
|
||||
/* 0x544 */ void *field_0x544;
|
||||
/* 0x548 */ void *AREA;
|
||||
/* 0x548 */ AREA *AREA;
|
||||
/* 0x54C */ u16 unkCount;
|
||||
/* 0x54E */ u16 scenCount;
|
||||
/* 0x550 */ u16 plyCount;
|
||||
|
||||
@@ -152,6 +152,10 @@ public:
|
||||
void clearSpawnInfo();
|
||||
const SpawnInfoExt &getSpawnInfo() const;
|
||||
|
||||
static void resetUpdateFrameCount() {
|
||||
sUpdateFrameCount = 0;
|
||||
}
|
||||
|
||||
protected:
|
||||
static u32 sUpdateFrameCount;
|
||||
static u8 sCurrentLayer;
|
||||
|
||||
@@ -0,0 +1,174 @@
|
||||
#ifndef D_STAGE_H
|
||||
#define D_STAGE_H
|
||||
|
||||
#include "common.h"
|
||||
#include "d/d_base.h"
|
||||
#include "d/d_fader.h"
|
||||
#include "d/d_room.h"
|
||||
#include "m/m_allocator.h"
|
||||
#include "m/m_mtx.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "s/s_FPhase.h"
|
||||
|
||||
#define MAX_ROOM_NUMBER 64
|
||||
|
||||
class dRoomTable_c {
|
||||
public:
|
||||
/* 801b4670 */ dRoomTable_c();
|
||||
virtual ~dRoomTable_c() {}
|
||||
|
||||
void setRoom(int roomid, dRoom_c *room) {
|
||||
mRooms[roomid] = room;
|
||||
}
|
||||
|
||||
dRoom_c *getRoom(s32 idx) {
|
||||
return mRooms[idx];
|
||||
}
|
||||
|
||||
private:
|
||||
dRoom_c *mRooms[MAX_ROOM_NUMBER - 1];
|
||||
};
|
||||
|
||||
class EggScreenEffectBlur {
|
||||
public:
|
||||
EggScreenEffectBlur();
|
||||
~EggScreenEffectBlur();
|
||||
|
||||
private:
|
||||
u8 _0x00[0x38 - 0x00];
|
||||
};
|
||||
|
||||
class EggPostEffectBlur {
|
||||
public:
|
||||
EggPostEffectBlur();
|
||||
~EggPostEffectBlur() {}
|
||||
|
||||
void setField0x30(f32 val) {
|
||||
field_0x30 = val;
|
||||
}
|
||||
|
||||
private:
|
||||
u8 _0x00[0x30 - 0x00];
|
||||
f32 field_0x30;
|
||||
u8 _0x03[0x78 - 0x34];
|
||||
};
|
||||
|
||||
class MapRelated {
|
||||
friend class dStage_c;
|
||||
struct Child {
|
||||
Child() : a(mVec3_c::Zero), b(mVec3_c::Zero), c(false) {}
|
||||
~Child() {}
|
||||
mVec3_c a;
|
||||
mVec3_c b;
|
||||
bool c;
|
||||
};
|
||||
|
||||
public:
|
||||
MapRelated();
|
||||
~MapRelated();
|
||||
/* 0x000 */ mHeapAllocator_c mAllocator;
|
||||
/* 0x01C */ Child mChildren[8];
|
||||
/* 0x0FC */ mVec3_c field_0x0FC;
|
||||
/* 0x108 */ f32 field_0x108;
|
||||
/* 0x10C */ f32 field_0x10C;
|
||||
/* 0x110 */ f32 field_0x110;
|
||||
/* 0x114 */ f32 field_0x114;
|
||||
/* 0x118 */ f32 field_0x118;
|
||||
/* 0x11C */ f32 field_0x11C;
|
||||
/* 0x120 */ f32 field_0x120;
|
||||
/* 0x124 */ f32 field_0x124;
|
||||
/* 0x128 */ f32 field_0x128;
|
||||
/* 0x12C */ f32 field_0x12C;
|
||||
/* 0x130 */ EggScreenEffectBlur mScreenEffect;
|
||||
/* 0x168 */ EggPostEffectBlur mPostEffect;
|
||||
/* 0x1E0 */ u32 field_0x1E0;
|
||||
/* 0x1E4 */ u16 field_0x1E4;
|
||||
/* 0x1E6 */ u16 field_0x1E6;
|
||||
/* 0x1E8 */ u8 field_0x1E8;
|
||||
/* 0x1E9 */ u8 field_0x1E9;
|
||||
/* 0x1EA */ s8 field_0x1EA;
|
||||
/* 0x1EB */ u8 field_0x1EB;
|
||||
/* 0x1EC */ u8 field_0x1EC;
|
||||
/* 0x1ED */ u8 field_0x1ED;
|
||||
/* 0x1EE */ u8 field_0x1EE;
|
||||
/* 0x1EF */ u8 field_0x1EF;
|
||||
/* 0x1F0 */ u8 field_0x1F0;
|
||||
|
||||
public:
|
||||
/* 801b4780 */ void init(MapRelated *);
|
||||
/* 801b4900 */ void fn_801b4900();
|
||||
void fn_801B4B80(u32 mapParams, const mVec3_c ¢er, const mVec3_c &size);
|
||||
void fn_801B4C70(const mVec3_c &);
|
||||
void fn_801B50C0(s32);
|
||||
};
|
||||
|
||||
// OBJ NAME: STAGE
|
||||
// Ghidra: RoomManager
|
||||
// size: 0x239c
|
||||
// vtable: 8052dff4
|
||||
class dStage_c : public dBase_c {
|
||||
public:
|
||||
dStage_c();
|
||||
virtual ~dStage_c() {
|
||||
sInstance = nullptr;
|
||||
}
|
||||
|
||||
int create() override;
|
||||
int doDelete() override;
|
||||
int execute() override;
|
||||
int draw() override;
|
||||
void deleteReady() override;
|
||||
|
||||
void drawMap(mMtx_c *mtx, int);
|
||||
dRoom_c *getRoom(s32 idx);
|
||||
void setRoom(int roomid, dRoom_c *room);
|
||||
|
||||
bool fadeIn(s32 fadeType, u16 frames);
|
||||
bool fadeOut(s32 fadeType, u16 frames);
|
||||
|
||||
void forceFadeIn();
|
||||
void forceFadeOut();
|
||||
|
||||
bool hasVisitedRoom(int roomid) const;
|
||||
void setRoomVisited(int roomid);
|
||||
|
||||
|
||||
static void bindStageResToFile(nw4r::g3d::ResFile *file);
|
||||
static void bindSkyCmnToResFile(nw4r::g3d::ResFile *file);
|
||||
static bool getMA0AnmTexSrt(nw4r::g3d::ResAnmTexSrt *, const char *matName);
|
||||
static bool getMA0IndirectSrt(nw4r::g3d::ResAnmTexSrt *, const nw4r::g3d::ResMdl &mdl);
|
||||
|
||||
/** Returns stage if idx == -1, otherwise room */
|
||||
static dBase_c *getParentForRoom(s32 idx);
|
||||
|
||||
void changeLoadedEntities(u32 index_shift, bool set);
|
||||
|
||||
static dStage_c *GetInstance() {
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
u8 getCurrRoomId() const {
|
||||
return curr_room_id;
|
||||
}
|
||||
|
||||
private:
|
||||
dRoom_c *createRoom(int roomid, bool flag0x40);
|
||||
void createLytSeekerStone();
|
||||
|
||||
sFPhaseBase::sFPhaseState createRooms();
|
||||
sFPhaseBase::sFPhaseState waitForRooms();
|
||||
|
||||
static sFPhase<dStage_c>::phaseCallback sCallbacks[];
|
||||
|
||||
/* 0x0068 */ sFPhase<dStage_c> mPhase;
|
||||
/* 0x007C */ dRoomTable_c rooms;
|
||||
/* 0x017C */ dFader_c mFader;
|
||||
/* 0x01A0 */ MapRelated mapRelated;
|
||||
/* 0x0394 */ u8 _0x394[0x39C - 0x394];
|
||||
/* 0x039C */ u32 loaded_entities[2047];
|
||||
/* 0x2398 */ u8 curr_room_id;
|
||||
|
||||
/* 80575760 */ static dStage_c *sInstance;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
}
|
||||
u16 checkFlag(u16 roomId, u16 flag);
|
||||
bool checkSceneflagGlobal(u16 sceneIdx, u16 flag);
|
||||
bool checkTempOrSceneflag(u16 flag);
|
||||
u16 checkTempOrSceneflag(u16 flag);
|
||||
u16 checkUncommittedFlag(u16 roomId, u16 flag);
|
||||
void setZoneflag(u16 roomId, u16 flag);
|
||||
void setFlag(u16 roomId, u16 flag);
|
||||
|
||||
+6
-2
@@ -8,14 +8,18 @@ public:
|
||||
void draw();
|
||||
bool setFader(mFaderBase_c *fader);
|
||||
|
||||
bool isStatus(mFaderBase_c::EStatus status) {
|
||||
bool isStatus(mFaderBase_c::EStatus status) const {
|
||||
return mpFader->getStatus() == status;
|
||||
}
|
||||
|
||||
bool isNotStatus(mFaderBase_c::EStatus status) {
|
||||
bool isNotStatus(mFaderBase_c::EStatus status) const {
|
||||
return isStatus(status) != true;
|
||||
}
|
||||
|
||||
mFaderBase_c::EStatus getStatus() const {
|
||||
return mpFader->getStatus();
|
||||
}
|
||||
|
||||
void setStatus(mFaderBase_c::EStatus status) {
|
||||
mpFader->setStatus(status);
|
||||
}
|
||||
|
||||
@@ -565,6 +565,10 @@ public:
|
||||
return ResTexPlttInfo(&pData[id]);
|
||||
}
|
||||
|
||||
const char *GetName() const {
|
||||
return ofs_to_ptr<const char>(ref().name);
|
||||
}
|
||||
|
||||
ResMatDLData *GetResMatDLData() {
|
||||
return ofs_to_ptr<ResMatDLData>(ref().toResMatDLData);
|
||||
}
|
||||
|
||||
@@ -1,16 +1,8 @@
|
||||
#ifndef AREA_UTILS_H
|
||||
#define AREA_UTILS_H
|
||||
|
||||
#include "m/m_angle.h"
|
||||
#include "m/m_vec.h"
|
||||
|
||||
struct AREA {
|
||||
/* 0x00 */ mVec3_c mPos;
|
||||
/* 0x0C */ mVec3_c mScale;
|
||||
/* 0x18 */ mAng mAngleY;
|
||||
/* 0x1A */ mAng mAngleLink;
|
||||
/* 0x1C */ u8 field_0x1C;
|
||||
};
|
||||
#include "d/d_bzs_types.h"
|
||||
|
||||
/* 800a9b00 */ bool checkPosInArea(AREA **area, const mVec3_c &pos);
|
||||
/* 800a9bd0 */ AREA *getAreaForIndexInRoom(s32 areaIndex, s32 roomId);
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#include "sized_string.h"
|
||||
#include "toBeSorted/event.h"
|
||||
|
||||
#include <cstring>
|
||||
|
||||
class dAcBase_c;
|
||||
|
||||
class EventManager {
|
||||
|
||||
@@ -10,4 +10,7 @@ extern "C" void fn_8035E310(void *);
|
||||
extern "C" void *ENEMY_SOUND_MGR;
|
||||
extern "C" void fn_80362150(void *, u16);
|
||||
|
||||
extern "C" void *ENEMY_BGM_RELATED_MGR;
|
||||
extern "C" void fn_80384570(void *, bool);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
#ifndef ROOM_MANAGER_H
|
||||
#define ROOM_MANAGER_H
|
||||
|
||||
#include "common.h"
|
||||
#include "d/d_base.h"
|
||||
#include "d/d_room.h"
|
||||
#include "m/m_allocator.h"
|
||||
#include "m/types_m.h"
|
||||
#include "nw4r/g3d/res/g3d_resmdl.h"
|
||||
|
||||
#define MAX_ROOM_NUMBER 64
|
||||
|
||||
class dRoomTable {
|
||||
/* 801b4670 */ dRoomTable(dRoomTable *roomTable);
|
||||
virtual ~dRoomTable();
|
||||
dRoom_c *rooms[MAX_ROOM_NUMBER - 1];
|
||||
};
|
||||
|
||||
class MapRelated {
|
||||
public:
|
||||
mAllocator_c allocator;
|
||||
char unk[472];
|
||||
|
||||
public:
|
||||
/* 801b4780 */ void init(MapRelated *);
|
||||
/* 801b4900 */ void fn_801b4900();
|
||||
};
|
||||
|
||||
// OBJ NAME: STAGE
|
||||
// Ghidra: RoomManager
|
||||
// size: 0x239c
|
||||
// vtable: 8052dff4
|
||||
class RoomManager : public dBase_c {
|
||||
public:
|
||||
/* 0068 */ char field_0x68[0x7C - 0x68];
|
||||
/* 007C */ dRoomTable rooms;
|
||||
/* 017c */ char fader[0x1a0 - 0x174]; // size unk
|
||||
/* 01a0 */ MapRelated mapRelated;
|
||||
/* 039c */ u32 loaded_entities[2047];
|
||||
/* 2398 */ u8 curr_room_id;
|
||||
|
||||
public:
|
||||
/* 80575760 */ static RoomManager *m_Instance;
|
||||
|
||||
public:
|
||||
/* 801b3970 */ dRoom_c *GetRoomByIndex(int roomid);
|
||||
/* 801b42b0 */ static dRoom_c *getRoom(int roomid);
|
||||
/* 801b42d0 */ static void bindStageResToFile(nw4r::g3d::ResFile *);
|
||||
/* 801b4320 */ static void bindSkyCmnToResFile(nw4r::g3d::ResFile *);
|
||||
/* 801b4380 */ static bool getMA0AnmTexSrt(nw4r::g3d::ResAnmTexSrt *, char *);
|
||||
/* 801b4420 */ static bool getMA0IndirectSrt(nw4r::g3d::ResAnmTexSrt *, const nw4r::g3d::ResMdl &mdl);
|
||||
/* 801b44c0 */ static void changeLoadedEntities(RoomManager *mgr, u32 index_shift, bool set);
|
||||
/* 801b4510 */ static u32 checkRoomFlag(RoomManager *mgr, u32 flag);
|
||||
/* 801b4550 */ static bool checkEnemyDefeatFlag(RoomManager *mgr, u32 flag);
|
||||
/* 801b45c0 */ static bool fn_801B45C0(RoomManager *mgr /* plus others */);
|
||||
/* 801b6c60 */ bool hasVisitedRoomId(s32 roomid) const;
|
||||
|
||||
void setRoom(int roomid, dRoom_c *room);
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -69,6 +69,10 @@ public:
|
||||
return field_0x78;
|
||||
}
|
||||
|
||||
void setField0x78(bool val) {
|
||||
field_0x78 = val;
|
||||
}
|
||||
|
||||
void setField0x7A(bool val) {
|
||||
field_0x7A = val;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user