Everything OK except for weak dtor order

This commit is contained in:
robojumper
2024-10-25 11:05:26 +02:00
parent e689fbaa42
commit ceac3a6ef8
8 changed files with 105 additions and 67 deletions
+10 -8
View File
@@ -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);
+1 -1
View File
@@ -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);
};
};
+1 -1
View File
@@ -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);