summaryrefslogtreecommitdiff
path: root/src/koopatlas
diff options
context:
space:
mode:
Diffstat (limited to 'src/koopatlas')
-rw-r--r--src/koopatlas/hud.cpp6
-rw-r--r--src/koopatlas/mapdata.h4
-rw-r--r--src/koopatlas/pathmanager.cpp6
3 files changed, 11 insertions, 5 deletions
diff --git a/src/koopatlas/hud.cpp b/src/koopatlas/hud.cpp
index 7ed1b5d..117773f 100644
--- a/src/koopatlas/hud.cpp
+++ b/src/koopatlas/hud.cpp
@@ -475,14 +475,14 @@ void dWMHud_c::loadHeaderInfo() {
void dWMHud_c::loadFooterInfo() {
SaveBlock *save = GetSaveFile()->GetBlock(-1);
- wchar_t convertedWorldName[36];
+ wchar_t convertedWorldName[32];
int i;
- for (i = 0; i < 36; i++) {
+ for (i = 0; i < 32; i++) {
convertedWorldName[i] = save->newerWorldName[i];
if (convertedWorldName[i] == 0)
break;
}
- convertedWorldName[35] = 0;
+ convertedWorldName[31] = 0;
WorldName->SetString(convertedWorldName);
WorldNameS->SetString(convertedWorldName);
diff --git a/src/koopatlas/mapdata.h b/src/koopatlas/mapdata.h
index 8c133b4..9c1cd50 100644
--- a/src/koopatlas/mapdata.h
+++ b/src/koopatlas/mapdata.h
@@ -197,7 +197,9 @@ struct dKPWorldDef_s {
s8 hudHintS, hudHintL;
u8 key, trackID;
u8 worldID;
- u8 padding;
+ u8 titleScreenWorld;
+ u8 titleScreenLevel;
+ u8 padding[3];
};
struct dKPMapFile_s {
diff --git a/src/koopatlas/pathmanager.cpp b/src/koopatlas/pathmanager.cpp
index 49ba3cd..acaee42 100644
--- a/src/koopatlas/pathmanager.cpp
+++ b/src/koopatlas/pathmanager.cpp
@@ -135,7 +135,8 @@ dWMPathManager_c::~dWMPathManager_c() {
if (isEnteringLevel) {
SaveBlock *save = GetSaveFile()->GetBlock(-1);
- if (enteredLevel->displayLevel >= 21 && enteredLevel->displayLevel <= 28 && enteredLevel->displayLevel != 26) {
+ if ((enteredLevel->displayLevel >= 21 && enteredLevel->displayLevel <= 27 && enteredLevel->displayLevel != 26)
+ || (enteredLevel->displayLevel >= 29 && enteredLevel->displayLevel <= 42)) {
if (!save->CheckLevelCondition(enteredLevel->worldSlot, enteredLevel->levelSlot, COND_NORMAL)) {
MaybeFinishingLevel[0] = enteredLevel->worldSlot;
MaybeFinishingLevel[1] = enteredLevel->levelSlot;
@@ -666,6 +667,9 @@ void dWMPathManager_c::moveThroughPath() {
save->hudHintS = world->hudHintS;
save->hudHintL = world->hudHintL;
+ save->titleScreenWorld = world->titleScreenWorld;
+ save->titleScreenLevel = world->titleScreenLevel;
+
if (dWMHud_c::instance)
dWMHud_c::instance->showFooter();
}