mirror of
https://github.com/zeldaret/ss.git
synced 2024-12-13 16:45:41 +00:00
Everything OK except for weak dtor order
This commit is contained in:
parent
e689fbaa42
commit
ceac3a6ef8
@ -4069,7 +4069,7 @@ fn_800BD7A0 = .text:0x800BD7A0; // type:function size:0x74
|
||||
fn_800BD820 = .text:0x800BD820; // type:function size:0x8
|
||||
fn_800BD830 = .text:0x800BD830; // type:function size:0x78
|
||||
fn_800BD8B0 = .text:0x800BD8B0; // type:function size:0x10
|
||||
doNothing__16SceneflagManagerFv = .text:0x800BD8C0; // type:function size:0x4
|
||||
init__16SceneflagManagerFv = .text:0x800BD8C0; // type:function size:0x4
|
||||
setShouldCommit__16SceneflagManagerFUs = .text:0x800BD8D0; // type:function size:0xC
|
||||
__ct__16SceneflagManagerFv = .text:0x800BD8E0; // type:function size:0x64
|
||||
isNotTempOrZoneFlag__16SceneflagManagerFUs = .text:0x800BD950; // type:function size:0xC
|
||||
@ -4161,22 +4161,22 @@ onDirty__20ItemStoryManagerBaseFv = .text:0x800BF630; // type:function size:0x4
|
||||
FUN_800bf640__20ItemStoryManagerBaseFUs = .text:0x800BF640; // type:function size:0x10
|
||||
doCommit_Priv__20ItemStoryManagerBaseFv = .text:0x800BF650; // type:function size:0x40
|
||||
FUN_800bf690__20ItemStoryManagerBaseFv = .text:0x800BF690; // type:function size:0x4
|
||||
__ct__16StoryFlagManagerFv = .text:0x800BF6A0; // type:function size:0x5C
|
||||
copyFlagsFromSave__16StoryFlagManagerFv = .text:0x800BF700; // type:function size:0x3C
|
||||
setupUnkFlagsStuff__16StoryFlagManagerFv = .text:0x800BF740; // type:function size:0x10
|
||||
onDirty__16StoryFlagManagerFv = .text:0x800BF750; // type:function size:0x4
|
||||
commit__16StoryFlagManagerFv = .text:0x800BF760; // type:function size:0x4C
|
||||
unsetFlag__16StoryFlagManagerFUs = .text:0x800BF7B0; // type:function size:0x4
|
||||
__ct__15ItemFlagManagerFv = .text:0x800BF7C0; // type:function size:0x5C
|
||||
copyFlagsFromSave__15ItemFlagManagerFv = .text:0x800BF820; // type:function size:0x3C
|
||||
setupUnkFlagsStuff__15ItemFlagManagerFv = .text:0x800BF860; // type:function size:0x10
|
||||
onDirty__15ItemFlagManagerFv = .text:0x800BF870; // type:function size:0x4
|
||||
commit__15ItemFlagManagerFv = .text:0x800BF880; // type:function size:0x4C
|
||||
copyFromSave__18DungeonflagManagerFUs = .text:0x800BF8D0; // type:function size:0x54
|
||||
__ct__16StoryflagManagerFv = .text:0x800BF6A0; // type:function size:0x5C
|
||||
copyFlagsFromSave__16StoryflagManagerFv = .text:0x800BF700; // type:function size:0x3C
|
||||
setupUnkFlagsStuff__16StoryflagManagerFv = .text:0x800BF740; // type:function size:0x10
|
||||
onDirty__16StoryflagManagerFv = .text:0x800BF750; // type:function size:0x4
|
||||
commit__16StoryflagManagerFv = .text:0x800BF760; // type:function size:0x4C
|
||||
unsetFlag__16StoryflagManagerFUs = .text:0x800BF7B0; // type:function size:0x4
|
||||
__ct__15ItemflagManagerFv = .text:0x800BF7C0; // type:function size:0x5C
|
||||
copyFlagsFromSave__15ItemflagManagerFv = .text:0x800BF820; // type:function size:0x3C
|
||||
setupUnkFlagsStuff__15ItemflagManagerFv = .text:0x800BF860; // type:function size:0x10
|
||||
onDirty__15ItemflagManagerFv = .text:0x800BF870; // type:function size:0x4
|
||||
commit__15ItemflagManagerFv = .text:0x800BF880; // type:function size:0x4C
|
||||
copyFromSave_Internal__18DungeonflagManagerFUs = .text:0x800BF8D0; // type:function size:0x54
|
||||
setCommitFlag__18DungeonflagManagerFUs = .text:0x800BF930; // type:function size:0xC
|
||||
__ct__18DungeonflagManagerFv = .text:0x800BF940; // type:function size:0x3C
|
||||
setupFlagStuff__18DungeonflagManagerFv = .text:0x800BF980; // type:function size:0x54
|
||||
copyFromSave__18DungeonflagManagerFs = .text:0x800BF9E0; // type:function size:0xC
|
||||
init__18DungeonflagManagerFv = .text:0x800BF980; // type:function size:0x54
|
||||
copyFromSave__18DungeonflagManagerFUl = .text:0x800BF9E0; // type:function size:0xC
|
||||
setToValue__18DungeonflagManagerFUsUl = .text:0x800BF9F0; // type:function size:0x6C
|
||||
setFlag__18DungeonflagManagerFUs = .text:0x800BFA60; // type:function size:0x60
|
||||
getDungeonFlag__18DungeonflagManagerFUs = .text:0x800BFAC0; // type:function size:0x50
|
||||
@ -4184,7 +4184,7 @@ doCommit__18DungeonflagManagerFv = .text:0x800BFB10; // type:function size:0x8C
|
||||
copyFromSave__15SkipflagManagerFv = .text:0x800BFBA0; // type:function size:0x44
|
||||
setCommitFlag__15SkipflagManagerFUs = .text:0x800BFBF0; // type:function size:0xC
|
||||
__ct__15SkipflagManagerFv = .text:0x800BFC00; // type:function size:0x2C
|
||||
unsetCommitFlag__15SkipflagManagerFv = .text:0x800BFC30; // type:function size:0xC
|
||||
init__15SkipflagManagerFv = .text:0x800BFC30; // type:function size:0xC
|
||||
thunk_copyFromSave__15SkipflagManagerFv = .text:0x800BFC40; // type:function size:0x4
|
||||
setFlag__15SkipflagManagerFUs = .text:0x800BFC50; // type:function size:0xD0
|
||||
checkFlag__15SkipflagManagerFUs = .text:0x800BFD20; // type:function size:0x68
|
||||
@ -4192,27 +4192,27 @@ commitFlags__15SkipflagManagerFv = .text:0x800BFD90; // type:function size:0x70
|
||||
setupFlagManagers__FPQ23EGG4Heap = .text:0x800BFE00; // type:function size:0x294
|
||||
__dt__15TBoxFlagManagerFv = .text:0x800C00A0; // type:function size:0x40
|
||||
__dt__18EnemyDefeatManagerFv = .text:0x800C00E0; // type:function size:0x40
|
||||
__dt__16StoryFlagManagerFv = .text:0x800C0120; // type:function size:0x58
|
||||
__dt__15ItemFlagManagerFv = .text:0x800C0180; // type:function size:0x58
|
||||
__dt__16StoryflagManagerFv = .text:0x800C0120; // type:function size:0x58
|
||||
__dt__15ItemflagManagerFv = .text:0x800C0180; // type:function size:0x58
|
||||
postSetup__Fv = .text:0x800C01E0; // type:function size:0x8
|
||||
copyAllFlagManagersFromSave__Fv = .text:0x800C01F0; // type:function size:0x78
|
||||
updateFlagForFlagIndex__FUs = .text:0x800C0270; // type:function size:0x58
|
||||
commitAllFlagManagers = .text:0x800C02D0; // type:function size:0x54
|
||||
commitAllFlagManagers__Fv = .text:0x800C02D0; // type:function size:0x54
|
||||
checkedMemcpy = .text:0x800C0330; // type:function size:0x54
|
||||
getSaveFlagSpace__15ItemFlagManagerCFv = .text:0x800C0390; // type:function size:0x8
|
||||
unk3__15ItemFlagManagerFUs = .text:0x800C03A0; // type:function size:0x8
|
||||
getUncommittedValue__15ItemFlagManagerFUs = .text:0x800C03B0; // type:function size:0x8
|
||||
getCounterOrFlag__15ItemFlagManagerCFUs = .text:0x800C03C0; // type:function size:0x8
|
||||
setFlagOrCounterToValue__15ItemFlagManagerFUsUs = .text:0x800C03D0; // type:function size:0x8
|
||||
unsetFlag__15ItemFlagManagerFUs = .text:0x800C03E0; // type:function size:0x8
|
||||
doCommit__15ItemFlagManagerFv = .text:0x800C03F0; // type:function size:0x44
|
||||
setFlagszptr__15ItemFlagManagerFv = .text:0x800C0440; // type:function size:0xC
|
||||
getSaveFlagSpace__16StoryFlagManagerCFv = .text:0x800C0450; // type:function size:0x8
|
||||
doCommit__16StoryFlagManagerFv = .text:0x800C0460; // type:function size:0x44
|
||||
setFlagszptr__16StoryFlagManagerFv = .text:0x800C04B0; // type:function size:0xC
|
||||
getSaveFlagSpace__15ItemflagManagerCFv = .text:0x800C0390; // type:function size:0x8
|
||||
unk3__15ItemflagManagerFUs = .text:0x800C03A0; // type:function size:0x8
|
||||
getUncommittedValue__15ItemflagManagerFUs = .text:0x800C03B0; // type:function size:0x8
|
||||
getCounterOrFlag__15ItemflagManagerCFUs = .text:0x800C03C0; // type:function size:0x8
|
||||
setFlagOrCounterToValue__15ItemflagManagerFUsUs = .text:0x800C03D0; // type:function size:0x8
|
||||
unsetFlag__15ItemflagManagerFUs = .text:0x800C03E0; // type:function size:0x8
|
||||
doCommit__15ItemflagManagerFv = .text:0x800C03F0; // type:function size:0x44
|
||||
setFlagszptr__15ItemflagManagerFv = .text:0x800C0440; // type:function size:0xC
|
||||
getSaveFlagSpace__16StoryflagManagerCFv = .text:0x800C0450; // type:function size:0x8
|
||||
doCommit__16StoryflagManagerFv = .text:0x800C0460; // type:function size:0x44
|
||||
setFlagszptr__16StoryflagManagerFv = .text:0x800C04B0; // type:function size:0xC
|
||||
doCommit__18EnemyDefeatManagerFv = .text:0x800C04C0; // type:function size:0x44
|
||||
__dt__18ItemFlagManagerSubFv = .text:0x800C0510; // type:function size:0x5C
|
||||
__dt__19StoryFlagManagerSubFv = .text:0x800C0570; // type:function size:0x5C
|
||||
__dt__18ItemflagManagerSubFv = .text:0x800C0510; // type:function size:0x5C
|
||||
__dt__19StoryflagManagerSubFv = .text:0x800C0570; // type:function size:0x5C
|
||||
__dt__21EnemyDefeatManagerSubFv = .text:0x800C05D0; // type:function size:0x40
|
||||
__dt__18TBoxFlagManagerSubFv = .text:0x800C0610; // type:function size:0x40
|
||||
fn_800C0650 = .text:0x800C0650; // type:function size:0x3C
|
||||
@ -31008,12 +31008,12 @@ lbl_80510B48 = .data:0x80510B48; // type:object size:0xC
|
||||
lbl_80510B54 = .data:0x80510B54; // type:object size:0xC
|
||||
lbl_80510B60 = .data:0x80510B60; // type:object size:0x10
|
||||
lbl_80510B70 = .data:0x80510B70; // type:object size:0x18
|
||||
__vt__18ItemFlagManagerSub = .data:0x80510B88; // type:object size:0x3C
|
||||
__vt__19StoryFlagManagerSub = .data:0x80510BC4; // type:object size:0x3C
|
||||
__vt__18ItemflagManagerSub = .data:0x80510B88; // type:object size:0x3C
|
||||
__vt__19StoryflagManagerSub = .data:0x80510BC4; // type:object size:0x3C
|
||||
__vt__21EnemyDefeatManagerSub = .data:0x80510C00; // type:object size:0x14
|
||||
__vt__18TBoxFlagManagerSub = .data:0x80510C14; // type:object size:0x14
|
||||
__vt__15ItemFlagManager = .data:0x80510C28; // type:object size:0x3C
|
||||
__vt__16StoryFlagManager = .data:0x80510C64; // type:object size:0x3C
|
||||
__vt__15ItemflagManager = .data:0x80510C28; // type:object size:0x3C
|
||||
__vt__16StoryflagManager = .data:0x80510C64; // type:object size:0x3C
|
||||
__vt__20ItemStoryManagerBase = .data:0x80510CA0; // type:object size:0x3C
|
||||
__vt__18EnemyDefeatManager = .data:0x80510CDC; // type:object size:0x14
|
||||
__vt__15TBoxFlagManager = .data:0x80510CF0; // type:object size:0x14
|
||||
@ -48333,8 +48333,8 @@ TIMESHIFT_STONE_REFS = .bss:0x805A78C4; // type:object size:0xC data:4byte
|
||||
sSceneFlags__16SceneflagManager = .bss:0x805A78D0; // type:object size:0x10
|
||||
sZoneFlags__16SceneflagManager = .bss:0x805A78E0; // type:object size:0x1F8
|
||||
sEnemyDefeatFlags__18EnemyDefeatManager = .bss:0x805A7AD8; // type:object size:0x2000
|
||||
STATIC_STORYFLAGS = .bss:0x805A9AD8; // type:object size:0x100
|
||||
STATIC_ITEM_FLAGS = .bss:0x805A9BD8; // type:object size:0x80
|
||||
sFlags__16StoryflagManager = .bss:0x805A9AD8; // type:object size:0x100
|
||||
sFlags__15ItemflagManager = .bss:0x805A9BD8; // type:object size:0x80
|
||||
sDungeonFlags__18DungeonflagManager = .bss:0x805A9C58; // type:object size:0x10
|
||||
sSkipFlags__15SkipflagManager = .bss:0x805A9C68; // type:object size:0x20
|
||||
lbl_805A9C88 = .bss:0x805A9C88; // type:object size:0x10 data:4byte
|
||||
|
@ -18,7 +18,7 @@ public:
|
||||
/** 0x10 */ virtual void onDirty();
|
||||
/** 0x14 */ virtual void copyFlagsFromSave() = 0;
|
||||
/** 0x18 */ virtual void setupUnkFlagsStuff() = 0;
|
||||
/** 0x1C */ virtual bool doCommit() = 0;
|
||||
/** 0x1C */ virtual void doCommit() = 0;
|
||||
/** 0x20 */ virtual void setFlag(u16 flag);
|
||||
/** 0x24 */ virtual void unsetFlag(u16 flag);
|
||||
/** 0x28 */ virtual void setFlagOrCounterToValue(u16 flag, u16 value);
|
||||
@ -59,16 +59,19 @@ public:
|
||||
|
||||
FlagSpace storyFlags;
|
||||
|
||||
void init();
|
||||
bool commit();
|
||||
|
||||
/** 0x0C */ virtual void setFlagszptr() override {
|
||||
|
||||
storyFlagsPtr = &storyFlags;
|
||||
}
|
||||
/** 0x10 */ virtual void onDirty() override;
|
||||
/** 0x14 */ virtual void copyFlagsFromSave() override;
|
||||
/** 0x18 */ virtual void setupUnkFlagsStuff() override;
|
||||
/** 0x1C */ virtual bool doCommit() override {}
|
||||
/** 0x1C */ virtual void doCommit() override {
|
||||
u16 sz = flagSizeMaybe;
|
||||
u16 *flags = storyFlagsPtr->getFlagPtrUnchecked();
|
||||
FileManager::sInstance->setStoryFlags(flags, 0, sz);
|
||||
}
|
||||
/** 0x20 */ virtual void setFlag(u16 flag) override;
|
||||
/** 0x24 */ virtual void unsetFlag(u16 flag) override;
|
||||
/** 0x28 */ virtual void setFlagOrCounterToValue(u16 flag, u16 value) override;
|
||||
@ -92,16 +95,15 @@ public:
|
||||
ItemflagManager();
|
||||
virtual ~ItemflagManager() {}
|
||||
|
||||
void init();
|
||||
bool commit();
|
||||
|
||||
/** 0x0C */ virtual void setFlagszptr() override {
|
||||
|
||||
storyFlagsPtr = &itemFlags;
|
||||
}
|
||||
/** 0x10 */ virtual void onDirty() override;
|
||||
/** 0x14 */ virtual void copyFlagsFromSave();
|
||||
/** 0x18 */ virtual void setupUnkFlagsStuff();
|
||||
/** 0x1C */ virtual bool doCommit() {
|
||||
/** 0x1C */ virtual void doCommit() {
|
||||
u16 sz = flagSizeMaybe;
|
||||
u16 *flags = storyFlagsPtr->getFlagPtrUnchecked();
|
||||
FileManager::sInstance->setItemFlags(flags, 0, sz);
|
||||
@ -117,7 +119,7 @@ public:
|
||||
return getFlag(flag & ~0x4000);
|
||||
}
|
||||
/** 0x30 */ virtual u16 getUncommittedValue(u16 flag) {
|
||||
return getUncommittedValue_Priv(flag & ~0x4000);
|
||||
return ItemStoryManagerBase::getUncommittedValue(flag & ~0x4000);
|
||||
}
|
||||
/** 0x34 */ virtual void unk3(u16 arg) {
|
||||
FUN_800bf600(arg & ~0x4000);
|
||||
|
@ -80,7 +80,7 @@ public:
|
||||
|
||||
virtual void doCommit() override {
|
||||
FileManager *mgr = FileManager::sInstance;
|
||||
mgr->setItemFlags(mFlagSpace.getFlagPtrUnchecked(), 0, 0x1000);
|
||||
mgr->setEnemyDefeatFlags(mFlagSpace.getFlagPtrUnchecked(), 0, 0x1000);
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -20,7 +20,7 @@ public:
|
||||
static u16 sZoneFlags[0xFC];
|
||||
|
||||
static SceneflagManager *sInstance;
|
||||
void doNothing();
|
||||
void init();
|
||||
void setShouldCommit(u16 flag);
|
||||
SceneflagManager();
|
||||
s32 isNotTempOrZoneFlag(u16 flag);
|
||||
|
@ -18,11 +18,11 @@ public:
|
||||
static u16 sDungeonFlags[8];
|
||||
// static DungeonflagManager *sInstance;
|
||||
|
||||
void copyFromSave(s16 flag);
|
||||
void copyFromSave(u16 flagIndex);
|
||||
void copyFromSave(u32 flag);
|
||||
void copyFromSave_Internal(u16 flagIndex);
|
||||
void setCommitFlag(u16 flag);
|
||||
DungeonflagManager();
|
||||
void setupFlagStuff();
|
||||
void init();
|
||||
void setToValue(u16 flag, u32 value);
|
||||
void setFlag(u16 flag);
|
||||
u16 getDungeonFlag(u16 flag);
|
||||
@ -38,13 +38,13 @@ public:
|
||||
};
|
||||
|
||||
/** 80575404 */
|
||||
// DungeonflagManager *DungeonflagManager::sInstance = nullptr;
|
||||
DungeonflagManager *DungeonflagManager::sInstance = nullptr;
|
||||
|
||||
/** 805a9c58 */
|
||||
u16 DungeonflagManager::sDungeonFlags[8] = {};
|
||||
|
||||
/** 800bf8d0 */
|
||||
void DungeonflagManager::copyFromSave(u16 flagIndex) {
|
||||
void DungeonflagManager::copyFromSave_Internal(u16 flagIndex) {
|
||||
mFlagSpace.copyFromSaveFile(saveFilePtr(flagIndex), 0, 0x8);
|
||||
}
|
||||
|
||||
@ -59,15 +59,15 @@ DungeonflagManager::DungeonflagManager()
|
||||
mFlagSpace(sDungeonFlags, ARRAY_LENGTH(sDungeonFlags)) {}
|
||||
|
||||
/** 800bf980 */
|
||||
void DungeonflagManager::setupFlagStuff() {
|
||||
void DungeonflagManager::init() {
|
||||
mFlagStuff = new UnkFlagStuff(0x11, DungeonflagManager__FLAG_DEFINITIONS);
|
||||
mShouldCommit = false;
|
||||
}
|
||||
|
||||
/** 800bf9e0 */
|
||||
void DungeonflagManager::copyFromSave(s16 flag) {
|
||||
void DungeonflagManager::copyFromSave(u32 flag) {
|
||||
mStageIndex = flag;
|
||||
copyFromSave((u16)flag);
|
||||
copyFromSave_Internal(flag);
|
||||
}
|
||||
|
||||
/** 800bf9f0 */
|
||||
|
@ -1,5 +1,7 @@
|
||||
// clang-format off
|
||||
|
||||
#include "common.h"
|
||||
#include "toBeSorted/sceneflag_manager.h"
|
||||
#include <toBeSorted/flag_space.h>
|
||||
#include <toBeSorted/misc_flag_managers.h>
|
||||
#include <toBeSorted/item_story_flag_manager.h>
|
||||
@ -11,6 +13,12 @@
|
||||
#include <toBeSorted/flag_managers/unk_flag_stuff.inc>
|
||||
#include <toBeSorted/flag_managers/bitwise_flag_helper.inc>
|
||||
|
||||
u16 StoryflagManager::sFlags[0x80];
|
||||
u16 ItemflagManager::sFlags[0x40];
|
||||
|
||||
|
||||
StoryflagManager *StoryflagManager::sInstance = nullptr;
|
||||
ItemflagManager *ItemflagManager::sInstance = nullptr;
|
||||
|
||||
ItemStoryManagerBase::ItemStoryManagerBase(): flagSizeMaybe(0), anotherSizeMaybe(0), storyFlagsPtr(nullptr), unkFlagsPtr(nullptr), dirty(false) {}
|
||||
ItemStoryManagerBase::~ItemStoryManagerBase() {
|
||||
@ -197,6 +205,10 @@ bool ItemflagManager::commit() {
|
||||
static void postSetup();
|
||||
static void updateFlagForFlagIndex(u16 stage);
|
||||
class TBoxFlagManagerSub : public TBoxFlagManager {
|
||||
public:
|
||||
TBoxFlagManagerSub() {
|
||||
TBoxFlagManager::sInstance = this;
|
||||
}
|
||||
// virtual ~TBoxFlagManagerSub() {}
|
||||
};
|
||||
|
||||
@ -213,14 +225,23 @@ class ItemflagManagerSub : public ItemflagManager {
|
||||
// virtual ~ItemflagManagerSub() {}
|
||||
};
|
||||
|
||||
class SceneflagManagerSub : public SceneflagManager {
|
||||
|
||||
};
|
||||
|
||||
class DungeonflagManagerSub : public DungeonflagManager {
|
||||
|
||||
};
|
||||
|
||||
class SkipflagManagerSub : public SkipflagManager {
|
||||
|
||||
};
|
||||
|
||||
void setupFlagManagers(EGG::Heap *heap) {
|
||||
if (SceneflagManager::sInstance == nullptr) {
|
||||
SceneflagManager::sInstance = new (heap) SceneflagManager();
|
||||
SceneflagManager::sInstance = new (heap) SceneflagManagerSub();
|
||||
mHeap m(heap);
|
||||
SceneflagManager::sInstance->doNothing();
|
||||
SceneflagManager::sInstance->init();
|
||||
}
|
||||
|
||||
if (TBoxFlagManager::sInstance == nullptr) {
|
||||
@ -248,15 +269,15 @@ void setupFlagManagers(EGG::Heap *heap) {
|
||||
}
|
||||
|
||||
if (DungeonflagManager::sInstance == nullptr) {
|
||||
DungeonflagManager::sInstance = new (heap) DungeonflagManager();
|
||||
DungeonflagManager::sInstance = new (heap) DungeonflagManagerSub();
|
||||
mHeap m(heap);
|
||||
DungeonflagManager::sInstance->setupFlagStuff();
|
||||
DungeonflagManager::sInstance->init();
|
||||
}
|
||||
|
||||
if (SkipflagManager::sInstance == nullptr) {
|
||||
SkipflagManager::sInstance = new (heap) SkipflagManager();
|
||||
SkipflagManager::sInstance = new (heap) SkipflagManagerSub();
|
||||
mHeap m(heap);
|
||||
SkipflagManager::sInstance->unsetCommitFlag();
|
||||
SkipflagManager::sInstance->init();
|
||||
}
|
||||
|
||||
postSetup();
|
||||
@ -273,11 +294,26 @@ void copyAllFlagManagersFromSave() {
|
||||
StoryflagManager::sInstance->copyFlagsFromSave_Priv();
|
||||
ItemflagManager::sInstance->copyFlagsFromSave_Priv();
|
||||
DungeonflagManager::sInstance->copyFromSave(flag);
|
||||
SkipflagManager::sInstance->copyFromSave();
|
||||
SkipflagManager::sInstance->thunk_copyFromSave();
|
||||
EnemyDefeatManager::sInstance->copyFromSave(flag);
|
||||
}
|
||||
|
||||
static void updateFlagForFlagIndex(u16 stage) {}
|
||||
static void updateFlagForFlagIndex(u16 stage) {
|
||||
SceneflagManager::sInstance->updateFlagindex(stage);
|
||||
TBoxFlagManager::sInstance->copyFromSave(stage);
|
||||
EnemyDefeatManager::sInstance->updateFlagIndex(stage);
|
||||
DungeonflagManager::sInstance->copyFromSave(stage);
|
||||
}
|
||||
|
||||
void commitAllFlagManagers() {
|
||||
StoryflagManager::sInstance->commit();
|
||||
ItemflagManager::sInstance->commit();
|
||||
DungeonflagManager::sInstance->doCommit();
|
||||
SkipflagManager::sInstance->commitFlags();
|
||||
SceneflagManager::sInstance->doCommit();
|
||||
TBoxFlagManager::sInstance->commitIfNecessary();
|
||||
EnemyDefeatManager::sInstance->commitIfNecessary();
|
||||
}
|
||||
|
||||
extern "C" bool checkedMemcpy(void *dest, u32 destLen, const void *src, u32 count) {
|
||||
if (dest == nullptr || src == nullptr || destLen < count || destLen > 0xFFFF) {
|
||||
|
@ -10,7 +10,7 @@ u16 SceneflagManager::sTempFlags[] = {};
|
||||
u16 SceneflagManager::sSceneFlags[8] = {};
|
||||
u16 SceneflagManager::sZoneFlags[0xFC] = {};
|
||||
|
||||
void SceneflagManager::doNothing() {}
|
||||
void SceneflagManager::init() {}
|
||||
void SceneflagManager::setShouldCommit(u16 flag) {
|
||||
mShouldCommit = 1;
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ public:
|
||||
void copyFromSave();
|
||||
void setCommitFlag(u16 flag);
|
||||
SkipflagManager();
|
||||
void unsetCommitFlag();
|
||||
void init();
|
||||
void thunk_copyFromSave();
|
||||
void setFlag(u16 flag);
|
||||
bool checkFlag(u16 flag);
|
||||
@ -44,7 +44,7 @@ void SkipflagManager::setCommitFlag(u16 flag) {
|
||||
SkipflagManager::SkipflagManager() : mFlagSpace(sSkipFlags, ARRAY_LENGTH(sSkipFlags)), mShouldCommit(false) {}
|
||||
|
||||
// 800bfc30
|
||||
void SkipflagManager::unsetCommitFlag() {
|
||||
void SkipflagManager::init() {
|
||||
mShouldCommit = false;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user