diff options
Diffstat (limited to 'src/koopatlas')
| -rw-r--r-- | src/koopatlas/pathmanager.cpp | 17 | 
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(); | 
