Misc flag mgr ctors -> 100%

This commit is contained in:
CovenEsme
2024-04-27 13:45:07 +01:00
parent 772eb0fee6
commit b7bf72272f
3 changed files with 21 additions and 9 deletions
+3
View File
@@ -108,6 +108,9 @@ toBeSorted/sceneflag_manager.cpp:
toBeSorted/misc_flag_managers.cpp:
.text start:0x800BE7B0 end:0x800BEE00
.data start:0x80510CDC end:0x80510D04
.sbss start:0x805753F0 end:0x805753FC
.bss start:0x805A7AD8 end:0x805A9AD8
toBeSorted/flag_space.cpp:
.text start:0x800BEE00 end:0x800BEF90
+17 -8
View File
@@ -33,16 +33,15 @@ bool CommittableFlagManager::commitIfNecessary() {
}
class TBoxFlagManager : public CommittableFlagManager {
// class TBoxFlagManager {
// bool mNeedsCommit;
// u32 pad;
public:
FlagSpace mFlagSpace;
u16 mSceneIndex;
BitwiseFlagHelper mFlagHelper;
static u16 *sFlags;
static u16 sTBoxFlags[2];
static TBoxFlagManager *sInstance;
public:
virtual void doCommit() override;
bool checkUncommittedFlag(u16 flag);
TBoxFlagManager();
@@ -58,6 +57,9 @@ public:
}
};
TBoxFlagManager *TBoxFlagManager::sInstance = nullptr;
u16 TBoxFlagManager::sTBoxFlags[2] = {};
void TBoxFlagManager::doCommit() {
if (mSceneIndex != 0xFFFF) {
FileManager::getInstance()->setTBoxFlags(mFlagSpace.getFlagPtrUnchecked(), mSceneIndex * 2, 2);
@@ -68,7 +70,7 @@ bool TBoxFlagManager::checkUncommittedFlag(u16 flag) {
return mFlagHelper.checkFlag(flag / 16, flag % 16, mFlagSpace.getFlagPtrUnchecked(), mFlagSpace.mCount);
}
TBoxFlagManager::TBoxFlagManager() : CommittableFlagManager(false), mFlagSpace(sFlags, 2) {
TBoxFlagManager::TBoxFlagManager() : CommittableFlagManager(false), mFlagSpace(sTBoxFlags, ARRAY_LENGTH(sTBoxFlags)) {
mSceneIndex = 0xFFFF;
}
@@ -104,7 +106,9 @@ public:
BitwiseFlagHelper mFlagHelper;
u16 mSceneIndex;
static u16 *sFlags;
static u16 sEnemyDefeatFlags[4096];
static EnemyDefeatManager *sInstance;
void clearSavedFlags();
bool checkUncommittedFlag(u16 flag);
@@ -123,6 +127,9 @@ public:
void setFlag(u16 flag);
};
EnemyDefeatManager *EnemyDefeatManager::sInstance = nullptr;
u16 EnemyDefeatManager::sEnemyDefeatFlags[4096] = {};
void EnemyDefeatManager::clearSavedFlags() {
u16 empty[0x1000];
memset(empty, 0, 0x2000);
@@ -137,7 +144,9 @@ bool EnemyDefeatManager::checkUncommittedFlag(u16 flag) {
}
}
EnemyDefeatManager::EnemyDefeatManager() : CommittableFlagManager(false), mFlagSpace(sFlags, 12 /* later */) {}
EnemyDefeatManager::EnemyDefeatManager() : CommittableFlagManager(false), mFlagSpace(sEnemyDefeatFlags, ARRAY_LENGTH(sEnemyDefeatFlags)) {
}
void EnemyDefeatManager::init() {
mSceneIndex = 0;
+1 -1
View File
@@ -17,7 +17,7 @@ public:
static u16 sTempFlags[4];
static u16 sSceneFlags[8];
static u16 sZoneFlags[0xFC];
// public:
static SceneflagManager *sInstance;
void doNothing();
void setShouldCommit(u16 flag);