added a couple symbols, address comments

This commit is contained in:
elijah-thomas774
2024-04-27 15:48:55 -04:00
parent d8a9270643
commit c71784b420
2 changed files with 30 additions and 8 deletions
+8 -8
View File
@@ -4189,8 +4189,8 @@ setFlag__15SkipflagManagerFUs = .text:0x800BFC50; // type:function size:0xD0
checkFlag__15SkipflagManagerFUs = .text:0x800BFD20; // type:function size:0x68
commitFlags__15SkipflagManagerFv = .text:0x800BFD90; // type:function size:0x70
fn_800BFE00 = .text:0x800BFE00; // type:function size:0x294
fn_800C00A0 = .text:0x800C00A0; // type:function size:0x40
fn_800C00E0 = .text:0x800C00E0; // type:function size:0x40
__dt__15TBoxFlagManagerFv = .text:0x800C00A0; // type:function size:0x40
__dt__18EnemyDefeatManagerFv = .text:0x800C00E0; // type:function size:0x40
fn_800C0120 = .text:0x800C0120; // type:function size:0x58
fn_800C0180 = .text:0x800C0180; // type:function size:0x58
fn_800C01E0 = .text:0x800C01E0; // type:function size:0x8
@@ -31012,8 +31012,8 @@ lbl_80510C14 = .data:0x80510C14; // type:object size:0x14
lbl_80510C28 = .data:0x80510C28; // type:object size:0x3C
lbl_80510C64 = .data:0x80510C64; // type:object size:0x3C
lbl_80510CA0 = .data:0x80510CA0; // type:object size:0x3C
lbl_80510CDC = .data:0x80510CDC; // type:object size:0x14
lbl_80510CF0 = .data:0x80510CF0; // type:object size:0x14
__vt__18EnemyDefeatManager = .data:0x80510CDC; // type:object size:0x14
__vt__15TBoxFlagManager = .data:0x80510CF0; // type:object size:0x14
__vt__9FlagSpace = .data:0x80510D04; // type:object size:0xC
lbl_80510D10 = .data:0x80510D10; // type:object size:0x38 data:4byte
lbl_80510D48 = .data:0x80510D48; // type:object size:0x18
@@ -39843,9 +39843,9 @@ lbl_805753D0 = .sbss:0x805753D0; // type:object size:0x8 data:4byte
lbl_805753D8 = .sbss:0x805753D8; // type:object size:0x8 data:4byte
sInstance__16SceneflagManager = .sbss:0x805753E0; // type:object size:0x4 data:4byte
sTempFlags__16SceneflagManager = .sbss:0x805753E8; // type:object size:0x8
lbl_805753F0 = .sbss:0x805753F0; // type:object size:0x4 data:4byte
lbl_805753F4 = .sbss:0x805753F4; // type:object size:0x4
lbl_805753F8 = .sbss:0x805753F8; // type:object size:0x4 data:4byte
sInstance__15TBoxFlagManager = .sbss:0x805753F0; // type:object size:0x4 data:4byte
sTBoxFlags__15TBoxFlagManager = .sbss:0x805753F4; // type:object size:0x4
sInstance__18EnemyDefeatManager = .sbss:0x805753F8; // type:object size:0x4 data:4byte
lbl_805753FC = .sbss:0x805753FC; // type:object size:0x4 data:4byte
lbl_80575400 = .sbss:0x80575400; // type:object size:0x4 data:4byte
lbl_80575404 = .sbss:0x80575404; // type:object size:0x4 data:4byte
@@ -48233,7 +48233,7 @@ lbl_805A78B8 = .bss:0x805A78B8; // type:object size:0xC
lbl_805A78C4 = .bss:0x805A78C4; // type:object size:0xC data:4byte
lbl_805A78D0 = .bss:0x805A78D0; // type:object size:0x10
lbl_805A78E0 = .bss:0x805A78E0; // type:object size:0x1F8
lbl_805A7AD8 = .bss:0x805A7AD8; // type:object size:0x2000
sEnemyDefeatFlags__18EnemyDefeatManager = .bss:0x805A7AD8; // type:object size:0x2000
lbl_805A9AD8 = .bss:0x805A9AD8; // type:object size:0x100
lbl_805A9BD8 = .bss:0x805A9BD8; // type:object size:0x80
lbl_805A9C58 = .bss:0x805A9C58; // type:object size:0x10
+22
View File
@@ -21,6 +21,7 @@ public:
}
};
/* 0x800BE7B0 */
bool CommittableFlagManager::commitIfNecessary() {
if (mNeedsCommit) {
doCommit();
@@ -59,22 +60,27 @@ public:
TBoxFlagManager *TBoxFlagManager::sInstance = nullptr;
u16 TBoxFlagManager::sTBoxFlags[2] = {};
/* 0x800BE810 */
void TBoxFlagManager::doCommit() {
if (mSceneIndex != 0xFFFF) {
FileManager::getInstance()->setTBoxFlags(mFlagSpace.getFlagPtrUnchecked(), mSceneIndex * 2, 2);
}
}
/* 0x800BE870 */
bool TBoxFlagManager::checkUncommittedFlag(u16 flag) {
return mFlagHelper.checkFlag(flag / 16, flag % 16, mFlagSpace.getFlagPtrUnchecked(), mFlagSpace.mCount);
}
/* 0x800BE8E0 */
TBoxFlagManager::TBoxFlagManager() : CommittableFlagManager(false), mFlagSpace(sTBoxFlags, ARRAY_LENGTH(sTBoxFlags)) {
mSceneIndex = 0xFFFF;
}
/* 0x800BE920 */
void TBoxFlagManager::init() {}
/* 0x800BE930 */
void TBoxFlagManager::copyFromSave(s16 sceneIndex) {
u16 idx = sceneIndex;
mSceneIndex = idx;
@@ -82,16 +88,19 @@ void TBoxFlagManager::copyFromSave(s16 sceneIndex) {
mFlagSpace.copyFromSaveFile2(flags + (idx * 2), 0, 2);
}
/* 0x800BE990 */
bool TBoxFlagManager::checkFlag(u16 sceneIndex, u16 flag) {
s32 actualFlag = (flag + sceneIndex * 0x20);
return mFlagHelper.checkFlag(actualFlag / 16, flag % 16, FileManager::getInstance()->getTBoxFlagsConst(),
getFlagCount());
}
/* 0x800BEA30 */
u16 TBoxFlagManager::getFlagCount() const {
return 0x200;
}
/* 0x800BEA40 */
void TBoxFlagManager::setFlag(u16 flag) {
if (checkUncommittedFlag2(flag) != 1) {
mFlagHelper.setFlag(flag / 16, flag % 16, mFlagSpace.getFlagPtrChecked(), mFlagSpace.mCount);
@@ -99,6 +108,8 @@ void TBoxFlagManager::setFlag(u16 flag) {
}
}
// NOTE: Not actually Enemy Defeat.
// This is a little more than that, it keeps track of live objects based on their id as a whole
class EnemyDefeatManager : public CommittableFlagManager {
public:
FlagSpace mFlagSpace;
@@ -129,12 +140,14 @@ public:
EnemyDefeatManager *EnemyDefeatManager::sInstance = nullptr;
u16 EnemyDefeatManager::sEnemyDefeatFlags[4096] = {};
/* 0x800BEAC0 */
void EnemyDefeatManager::clearSavedFlags() {
u16 empty[0x1000];
memset(empty, 0, 0x2000);
FileManager::getInstance()->setEnemyDefeatFlags(empty, 0, 0x1000);
}
/* 0x800BEB00 */
bool EnemyDefeatManager::checkUncommittedFlag(u16 flag) {
if (checkIsValidFlag(flag)) {
return mFlagHelper.checkFlag(flag / 16, flag % 16, mFlagSpace.getFlagPtrUnchecked(), mFlagSpace.mCount);
@@ -143,14 +156,17 @@ bool EnemyDefeatManager::checkUncommittedFlag(u16 flag) {
}
}
/* 0x800BEB80 */
EnemyDefeatManager::EnemyDefeatManager()
: CommittableFlagManager(false), mFlagSpace(sEnemyDefeatFlags, ARRAY_LENGTH(sEnemyDefeatFlags)) {}
/* 0x800BEBC0 */
void EnemyDefeatManager::init() {
mSceneIndex = 0;
clearAll();
}
/* 0x800BEBD0 */
void EnemyDefeatManager::copyFromSave(u16 sceneIndex) {
mSceneIndex = sceneIndex;
u16 count = mFlagSpace.mCount;
@@ -158,6 +174,7 @@ void EnemyDefeatManager::copyFromSave(u16 sceneIndex) {
mFlagSpace.copyFromSaveFile(flags, 0, count);
}
/* 0x800BEC30 */
void EnemyDefeatManager::updateFlagIndex(u16 sceneIndex) {
if (mSceneIndex == sceneIndex) {
return;
@@ -166,15 +183,18 @@ void EnemyDefeatManager::updateFlagIndex(u16 sceneIndex) {
clearAll();
}
/* 0x800BEC50 */
void EnemyDefeatManager::clearAll() {
clearSavedFlags();
mFlagSpace.unsetAll();
}
/* 0x800BEC90 */
bool EnemyDefeatManager::checkIsValidFlag(u16 flag) {
return flag < 0xFFFF;
}
/* 0x800BECB0 */
bool EnemyDefeatManager::checkFlag(u16 flag) {
if (!checkIsValidFlag(flag)) {
return false;
@@ -184,10 +204,12 @@ bool EnemyDefeatManager::checkFlag(u16 flag) {
}
}
/* 0x800BED50 */
u16 EnemyDefeatManager::getFlagCount() const {
return 0x1000;
}
/* 0x800BED60 */
void EnemyDefeatManager::setFlag(u16 flag) {
if (checkUncommittedFlag2(flag) != 1 && checkIsValidFlag(flag)) {
mFlagHelper.setFlag(flag / 16, flag % 16, mFlagSpace.getFlagPtrChecked(), mFlagSpace.mCount);