summaryrefslogtreecommitdiff
path: root/src/koopatlas
diff options
context:
space:
mode:
authorTreeki <treeki@gmail.com>2013-04-18 00:41:28 +0200
committerTreeki <treeki@gmail.com>2013-04-18 00:42:11 +0200
commitad4ca391a7fe8397a4322b44d6c35bc667e9e0ed (patch)
tree579ff6031a33e2db708990478ca6e05d92fcf5f5 /src/koopatlas
parent737948128161916ffa9e5422d910d983179f1e7f (diff)
downloadkamek-ad4ca391a7fe8397a4322b44d6c35bc667e9e0ed.tar.gz
kamek-ad4ca391a7fe8397a4322b44d6c35bc667e9e0ed.zip
reset static variables used by the world map in File Select
Diffstat (limited to 'src/koopatlas')
-rw-r--r--src/koopatlas/pathmanager.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/koopatlas/pathmanager.cpp b/src/koopatlas/pathmanager.cpp
index ad39c69..697b9fb 100644
--- a/src/koopatlas/pathmanager.cpp
+++ b/src/koopatlas/pathmanager.cpp
@@ -18,6 +18,7 @@ bool CanFinishAllCoins = false;
bool CanFinishAllExits = false;
bool CanFinishEverything = false;
void ResetAllCompletionCandidates() {
+ // This is called by File Select, btw
MaybeFinishingLevel[0] = 0xFF;
LastLevelPlayed[0] = 0xFF;
CanFinishCoins = false;
@@ -273,15 +274,23 @@ void dWMPathManager_c::setup() {
static u8 *PathAvailabilityData = 0;
static u8 *NodeAvailabilityData = 0;
-dWMPathManager_c::~dWMPathManager_c() {
- bool entering8_25 = (MaybeFinishingLevel[0] == 7) && (MaybeFinishingLevel[1] == 24);
- if (PathAvailabilityData && !isEnteringLevel && !entering8_25) {
+void ClearOldPathAvailabilityData() {
+ // This is called by File Select
+ if (PathAvailabilityData) {
delete[] PathAvailabilityData;
PathAvailabilityData = 0;
-
+ }
+ if (NodeAvailabilityData) {
delete[] NodeAvailabilityData;
NodeAvailabilityData = 0;
}
+}
+
+dWMPathManager_c::~dWMPathManager_c() {
+ bool entering8_25 = (MaybeFinishingLevel[0] == 7) && (MaybeFinishingLevel[1] == 24);
+ if (!isEnteringLevel && !entering8_25) {
+ ClearOldPathAvailabilityData();
+ }
if (isEnteringLevel) {
ResetAllCompletionCandidates();