Merge pull request #52 from robojumper/d_t_timer

d_t_counter
This commit is contained in:
Elijah Thomas
2024-06-09 22:53:17 -04:00
committed by GitHub
7 changed files with 231 additions and 81 deletions
+41
View File
@@ -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
+63
View File
@@ -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