summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAetias <144526980+AetiasHax@users.noreply.github.com>2025-05-10 13:12:08 +0200
committerGitHub <noreply@github.com>2025-05-10 13:12:08 +0200
commit370133b6dc7cb5273b37b8eceebeb0dfac887804 (patch)
treecf5688d564836b120b861cf9606115fcd0da12aa
parentdc075c39db89c26073f1421ffe1939e6aff2449a (diff)
parentd4a4be5dfcba3568ed18106ed02ca0c28df1e681 (diff)
Merge pull request #56 from mike8699/decompile-AdventureFlags
Partial decomp of `AdventureFlags.cpp`
-rw-r--r--config/eur/arm9/overlays/ov000/symbols.txt6
-rw-r--r--config/usa/arm9/overlays/ov000/symbols.txt6
-rw-r--r--include/Save/AdventureFlags.hpp26
-rw-r--r--src/00_Core/Save/AdventureFlags.cpp124
4 files changed, 124 insertions, 38 deletions
diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt
index 07ca6e05..953088b6 100644
--- a/config/eur/arm9/overlays/ov000/symbols.txt
+++ b/config/eur/arm9/overlays/ov000/symbols.txt
@@ -1323,9 +1323,9 @@ _ZN14AdventureFlags18func_ov00_020980acEv kind:function(arm,size=0x10) addr:0x20
_ZN14AdventureFlags18func_ov00_020980bcEi kind:function(arm,size=0x14) addr:0x20980bc
_ZN8FlagsUnkD1Ev kind:function(arm,size=0x24) addr:0x20980d0
_ZN9FlagsUnk2D1Ev kind:function(arm,size=0x4) addr:0x20980f4
-_ZN8FlagsUnk19func_ov000_020980f8Ev kind:function(arm,size=0x4) addr:0x20980f8
-_ZN15CutsceneHandler19func_ov000_020980fcEiiPPv kind:function(arm,size=0x18) addr:0x20980fc
-_ZN15CutsceneHandler19func_ov000_02098114Ev kind:function(arm,size=0x3c) addr:0x2098114
+_Z19func_ov000_020980f8P15CutsceneHandler kind:function(arm,size=0x4) addr:0x20980f8
+_Z19func_ov000_020980fcP15CutsceneHandler kind:function(arm,size=0x18) addr:0x20980fc
+_Z19func_ov000_02098114P15CutsceneHandler kind:function(arm,size=0x3c) addr:0x2098114
_ZN15CutsceneHandler12SkipCutsceneEi kind:function(arm,size=0x68) addr:0x2098150
_ZN15CutsceneHandler19func_ov000_020981b8EPi kind:function(arm,size=0x408) addr:0x20981b8
_ZN15CutsceneHandler19func_ov000_020985c0Ev kind:function(arm,size=0x4) addr:0x20985c0
diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt
index 84b9f721..c4d6977d 100644
--- a/config/usa/arm9/overlays/ov000/symbols.txt
+++ b/config/usa/arm9/overlays/ov000/symbols.txt
@@ -1323,9 +1323,9 @@ _ZN14AdventureFlags18func_ov00_020980acEv kind:function(arm,size=0x10) addr:0x20
_ZN14AdventureFlags18func_ov00_020980bcEi kind:function(arm,size=0x14) addr:0x209805c
_ZN8FlagsUnkD1Ev kind:function(arm,size=0x24) addr:0x2098070
_ZN9FlagsUnk2D1Ev kind:function(arm,size=0x4) addr:0x2098094
-_ZN8FlagsUnk19func_ov000_020980f8Ev kind:function(arm,size=0x4) addr:0x2098098
-_ZN15CutsceneHandler19func_ov000_020980fcEiiPPv kind:function(arm,size=0x18) addr:0x209809c
-_ZN15CutsceneHandler19func_ov000_02098114Ev kind:function(arm,size=0x3c) addr:0x20980b4
+_Z19func_ov000_020980f8P15CutsceneHandler kind:function(arm,size=0x4) addr:0x2098098
+_Z19func_ov000_020980fcP15CutsceneHandler kind:function(arm,size=0x18) addr:0x209809c
+_Z19func_ov000_02098114P15CutsceneHandler kind:function(arm,size=0x3c) addr:0x20980b4
_ZN15CutsceneHandler12SkipCutsceneEi kind:function(arm,size=0x68) addr:0x20980f0
_ZN15CutsceneHandler19func_ov000_020981b8EPi kind:function(arm,size=0x408) addr:0x2098158
_ZN15CutsceneHandler19func_ov000_020985c0Ev kind:function(arm,size=0x4) addr:0x2098560
diff --git a/include/Save/AdventureFlags.hpp b/include/Save/AdventureFlags.hpp
index b076cd73..0484fba8 100644
--- a/include/Save/AdventureFlags.hpp
+++ b/include/Save/AdventureFlags.hpp
@@ -104,19 +104,19 @@ public:
bool func_ov00_02097bcc();
bool func_ov00_02097bcc(s32 param2);
s32 func_ov00_02097c08();
- bool Get_FlagsUnk_30_Flag(int index);
- unk8 Get_FlagsUnk_49(int index);
- unk8 Get_FlagsUnk_48(int index);
- unk8 Get_FlagsUnk_4a(int index);
- unk16 Get_FlagsUnk_42(int index);
- unk16 Get_FlagsUnk_40(int index);
- unk32 Get_FlagsUnk_38(int index);
- unk32 Get_FlagsUnk_34(int index);
- unk32 Get_FlagsUnk_44(int index);
- static unk32 Get_FlagsUnk_30(int index);
- static bool Get_FlagsUnk_00(int index, FlagsUnk2 *result);
- bool Get_FlagsUnk_18(int index, FlagsUnk2 *result);
- FlagsUnk *Get_FlagsUnk(int index);
+ bool Get_FlagsUnk_30_Flag(s32 index);
+ u8 Get_FlagsUnk_49(s32 index);
+ u8 Get_FlagsUnk_48(s32 index);
+ u8 Get_FlagsUnk_4a(s32 index);
+ u16 Get_FlagsUnk_42(s32 index);
+ u16 Get_FlagsUnk_40(s32 index);
+ unk32 Get_FlagsUnk_38(s32 index);
+ unk32 Get_FlagsUnk_34(s32 index);
+ unk32 Get_FlagsUnk_44(s32 index);
+ static unk32 Get_FlagsUnk_30(s32 index);
+ static bool Get_FlagsUnk_00(s32 index, FlagsUnk2 *result);
+ bool Get_FlagsUnk_18(s32 index, FlagsUnk2 *result);
+ FlagsUnk *Get_FlagsUnk(s32 index);
bool func_ov00_02097e6c();
bool func_ov00_02097e7c();
bool func_ov00_02097ea4();
diff --git a/src/00_Core/Save/AdventureFlags.cpp b/src/00_Core/Save/AdventureFlags.cpp
index 7ba5f7c6..012e9efa 100644
--- a/src/00_Core/Save/AdventureFlags.cpp
+++ b/src/00_Core/Save/AdventureFlags.cpp
@@ -1,9 +1,34 @@
#include "Save/AdventureFlags.hpp"
+#include "Cutscene/CutsceneHandler.hpp"
+
+extern void func_ov000_020980f8(CutsceneHandler *cutsceneHandler);
+extern unk32 func_ov000_020980fc(CutsceneHandler *cutsceneHandler);
+extern bool func_ov000_02098114(CutsceneHandler *cutsceneHandler);
+extern u8 data_ov000_020e310c[];
+extern u8 data_ov000_020e313c[];
+extern u8 data_ov000_020e3140[];
+extern u8 data_ov000_020e3144[];
+extern u8 data_ov000_020e314c[];
+extern u8 data_ov000_020e314e[];
+extern u8 data_ov000_020e3150[];
+extern u8 data_ov000_020e3154[];
+extern u8 data_ov000_020e3155[];
+extern u8 data_ov000_020e3156[];
+
+bool AdventureFlags::Exists() {
+ return gAdventureFlags != NULL;
+}
-bool AdventureFlags::Exists() {}
void AdventureFlags::CopyTo(unk32 *flags) {}
-void AdventureFlags::func_ov00_02097674() {}
-s32 AdventureFlags::func_ov00_02097684() {}
+
+void AdventureFlags::func_ov00_02097674() {
+ func_ov000_020980f8(this->mCutsceneHandler);
+}
+
+s32 AdventureFlags::func_ov00_02097684() {
+ return func_ov000_020980fc(this->mCutsceneHandler);
+}
+
void AdventureFlags::Load() {}
void AdventureFlags::func_ov00_020976c8() {}
void AdventureFlags::func_ov00_02097700() {}
@@ -20,22 +45,83 @@ bool AdventureFlags::func_ov00_02097bbc() {}
bool AdventureFlags::func_ov00_02097bcc() {}
bool AdventureFlags::func_ov00_02097bcc(s32 param2) {}
s32 AdventureFlags::func_ov00_02097c08() {}
-bool AdventureFlags::Get_FlagsUnk_30_Flag(int index) {}
-unk8 AdventureFlags::Get_FlagsUnk_49(int index) {}
-unk8 AdventureFlags::Get_FlagsUnk_48(int index) {}
-unk8 AdventureFlags::Get_FlagsUnk_4a(int index) {}
-unk16 AdventureFlags::Get_FlagsUnk_42(int index) {}
-unk16 AdventureFlags::Get_FlagsUnk_40(int index) {}
-unk32 AdventureFlags::Get_FlagsUnk_38(int index) {}
-unk32 AdventureFlags::Get_FlagsUnk_34(int index) {}
-unk32 AdventureFlags::Get_FlagsUnk_44(int index) {}
-unk32 AdventureFlags::Get_FlagsUnk_30(int index) {}
-bool AdventureFlags::Get_FlagsUnk_00(int index, FlagsUnk2 *result) {}
-bool AdventureFlags::Get_FlagsUnk_18(int index, FlagsUnk2 *result) {}
-FlagsUnk *AdventureFlags::Get_FlagsUnk(int index) {}
-bool AdventureFlags::func_ov00_02097e6c() {}
-bool AdventureFlags::func_ov00_02097e7c() {}
-bool AdventureFlags::func_ov00_02097ea4() {}
+
+bool AdventureFlags::Get_FlagsUnk_30_Flag(s32 index) {
+ unk32 unk30 = this->Get_FlagsUnk_30(index);
+
+ return this->Get(unk30);
+}
+
+u8 AdventureFlags::Get_FlagsUnk_49(s32 index) {
+ return data_ov000_020e3155[index * 0x4C];
+}
+
+u8 AdventureFlags::Get_FlagsUnk_48(s32 index) {
+ return data_ov000_020e3154[index * 0x4C];
+}
+
+u8 AdventureFlags::Get_FlagsUnk_4a(s32 index) {
+ return data_ov000_020e3156[index * 0x4C];
+}
+
+u16 AdventureFlags::Get_FlagsUnk_42(s32 index) {
+ return *(u16 *) (data_ov000_020e314e + index * 0x4C);
+}
+
+u16 AdventureFlags::Get_FlagsUnk_40(s32 index) {
+ return *(unk16 *) (data_ov000_020e314c + index * 0x4C);
+}
+
+unk32 AdventureFlags::Get_FlagsUnk_38(s32 index) {
+ return *(unk32 *) (data_ov000_020e3144 + index * 0x4C);
+}
+
+unk32 AdventureFlags::Get_FlagsUnk_34(s32 index) {
+ return *(unk32 *) (data_ov000_020e3140 + index * 0x4C);
+}
+
+unk32 AdventureFlags::Get_FlagsUnk_44(s32 index) {
+ return *(unk32 *) (data_ov000_020e3150 + index * 0x4C);
+}
+
+unk32 AdventureFlags::Get_FlagsUnk_30(s32 index) {
+ return *(unk32 *) (data_ov000_020e313c + index * 0x4C);
+}
+
+bool AdventureFlags::Get_FlagsUnk_00(s32 index, FlagsUnk2 *result) {}
+bool AdventureFlags::Get_FlagsUnk_18(s32 index, FlagsUnk2 *result) {}
+
+FlagsUnk *AdventureFlags::Get_FlagsUnk(s32 index) {
+ return (FlagsUnk *) (data_ov000_020e310c + index * 0x4C);
+}
+
+bool AdventureFlags::func_ov00_02097e6c() {
+ return func_ov000_02098114(this->mCutsceneHandler);
+}
+
+bool AdventureFlags::func_ov00_02097e7c() {
+ bool bVar1;
+
+ bVar1 = this->func_ov00_02097e6c();
+ if (bVar1) {
+ bVar1 = this->mCutsceneHandler->SkipCutscene(0);
+ return bVar1;
+ }
+
+ return false;
+}
+
+bool AdventureFlags::func_ov00_02097ea4() {
+ bool bVar1;
+
+ bVar1 = this->func_ov00_02097e6c();
+ if (bVar1) {
+ bVar1 = this->mCutsceneHandler->SkipCutscene(1);
+ return bVar1;
+ }
+
+ return false;
+}
unk32 AdventureFlags::func_ov00_02097ecc() {}
void *AdventureFlags::func_ov00_02097f8c() {}
void *AdventureFlags::func_ov00_02097fac() {}