mirror of
https://github.com/zeldaret/ss
synced 2026-09-03 01:54:18 -04:00
@@ -0,0 +1,41 @@
|
||||
#ifndef D_T_TIMER_H
|
||||
#define D_T_TIMER_H
|
||||
|
||||
#include <d/a/d_a_base.h>
|
||||
|
||||
class dTgTimerBase_c : public dAcBase_c {
|
||||
public:
|
||||
virtual ~dTgTimerBase_c() {}
|
||||
};
|
||||
|
||||
|
||||
class dTgTimer_c : public dTgTimerBase_c {
|
||||
public:
|
||||
dTgTimer_c() {}
|
||||
virtual ~dTgTimer_c() {}
|
||||
|
||||
virtual int create() override;
|
||||
virtual int actorExecute() override;
|
||||
|
||||
int getSubtypeFromParams();
|
||||
u16 getTimerFromParams();
|
||||
|
||||
u16 getCheckSceneflag();
|
||||
u16 getSetSceneflag();
|
||||
u16 getTimer();
|
||||
u16 setTimer(u16 val);
|
||||
u16 getTargetTime();
|
||||
bool checkShouldTrigger();
|
||||
u16 getStoredTargetTime();
|
||||
|
||||
u16 getConstant0x50();
|
||||
void incrementTimer();
|
||||
void resetTimer();
|
||||
u16 getConstant0x50_Thunk();
|
||||
|
||||
u16 (dTgTimer_c::*mGetTargetTimeFunc)();
|
||||
u16 mTimer;
|
||||
u16 mTargetTime;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,63 @@
|
||||
#ifndef SCENEFLAG_MANAGER_H
|
||||
#define SCENEFLAG_MANAGER_H
|
||||
|
||||
#include <common.h>
|
||||
#include <toBeSorted/flag_space.h>
|
||||
#include <toBeSorted/bitwise_flag_helper.h>
|
||||
|
||||
class SceneflagManager {
|
||||
public:
|
||||
FlagSpace mSceneflags;
|
||||
FlagSpace mTempflags;
|
||||
FlagSpace mZoneflags;
|
||||
BitwiseFlagHelper mFlagHelper;
|
||||
u16 mSceneIdx;
|
||||
u8 mShouldCommit;
|
||||
|
||||
static u16 sTempFlags[4];
|
||||
static u16 sSceneFlags[8];
|
||||
static u16 sZoneFlags[0xFC];
|
||||
|
||||
static SceneflagManager *sInstance;
|
||||
void doNothing();
|
||||
void setShouldCommit(u16 flag);
|
||||
SceneflagManager();
|
||||
s32 isNotTempOrZoneFlag(u16 flag);
|
||||
s32 isZoneFlag(u32 flag);
|
||||
void updateFlagindex(u16 flagindex);
|
||||
void copyFromSave(u32 flagindex);
|
||||
void unsetAllTempflags();
|
||||
void zoneflagsResetAll();
|
||||
void zoneflagsResetForRoom(u16 roomId);
|
||||
void unsetZoneAndTempflags();
|
||||
void unsetAllZoneflags();
|
||||
void unsetZoneflagsForRoom(u16 roomId);
|
||||
u16 getZoneflagSlot(u16 roomId, u16 flag);
|
||||
u16 getSceneflagSlotGlobal(u16 sceneIdx, u16 flag);
|
||||
u16 getSceneflagSlot(u16 flag);
|
||||
u16 getTempflagSlot(u16 flag);
|
||||
bool checkZoneFlag(u16 roomId, u16 flag);
|
||||
bool checkUncommittedZoneflag(u16 roomId, u16 flag);
|
||||
u16 checkUncommittedZoneflag2(u16 roomId, u16 flag) {
|
||||
return checkUncommittedZoneflag(roomId, flag);
|
||||
}
|
||||
bool checkUncommittedTempOrSceneflag(u16 flag);
|
||||
u16 checkUncommittedTempOrSceneflag2(u16 flag) {
|
||||
return checkUncommittedTempOrSceneflag(flag);
|
||||
}
|
||||
u16 checkFlag(u16 roomId, u16 flag);
|
||||
bool checkSceneflagGlobal(u16 sceneIdx, u16 flag);
|
||||
bool checkTempOrSceneflag(u16 flag);
|
||||
bool checkUncommittedFlag(u16 roomId, u16 flag);
|
||||
void setZoneflag(u16 roomId, u16 flag);
|
||||
void setFlag(u16 roomId, u16 flag);
|
||||
void setSceneflagGlobal(u16 sceneIdx, u16 flag);
|
||||
void setTempOrSceneflag(u16 flag);
|
||||
void unsetZoneflag(u16 roomId, u16 flag);
|
||||
void unsetFlag(u16 roomId, u16 flag);
|
||||
void unsetSceneflagGlobal(u16 sceneIdx, u16 flag);
|
||||
void unsetTempOrSceneflag(u16 flag);
|
||||
s32 doCommit();
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user