diff options
author | Treeki <treeki@gmail.com> | 2012-09-27 05:25:01 +0200 |
---|---|---|
committer | Treeki <treeki@gmail.com> | 2012-09-27 05:25:01 +0200 |
commit | e30d836af369f251f83375dd9a9dbab435ee61f1 (patch) | |
tree | 3d40f1d067d0fdc845a848516a994b08f6faba19 | |
parent | 411c5a8e210b5cbca330a5438e2406dbe1ffecab (diff) | |
download | kamek-e30d836af369f251f83375dd9a9dbab435ee61f1.tar.gz kamek-e30d836af369f251f83375dd9a9dbab435ee61f1.zip |
world change nodes now don't activate if you're already at that world
-rw-r--r-- | src/koopatlas/pathmanager.cpp | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/src/koopatlas/pathmanager.cpp b/src/koopatlas/pathmanager.cpp index 896707a..97d9265 100644 --- a/src/koopatlas/pathmanager.cpp +++ b/src/koopatlas/pathmanager.cpp @@ -597,22 +597,26 @@ void dWMPathManager_c::moveThroughPath() { OSReport("Activating world change %d\n", to->worldID); const dKPWorldDef_s *world = dScKoopatlas_c::instance->mapData.findWorldDef(to->worldID); if (world) { - OSReport("Found!\n"); - strncpy(save->newerWorldName, world->name, 36); - save->newerWorldName[35] = 0; - save->currentMapMusic = world->trackID; - - for (int i = 0; i < 2; i++) { - save->fsTextColours[i] = world->fsTextColours[i]; - save->fsHintColours[i] = world->fsHintColours[i]; - save->hudTextColours[i] = world->hudTextColours[i]; - } + if (strncmp(save->newerWorldName, world->name, 36) == 0) { + OSReport("Already here\n"); + } else { + OSReport("Found!\n"); + strncpy(save->newerWorldName, world->name, 36); + save->newerWorldName[35] = 0; + save->currentMapMusic = world->trackID; + + for (int i = 0; i < 2; i++) { + save->fsTextColours[i] = world->fsTextColours[i]; + save->fsHintColours[i] = world->fsHintColours[i]; + save->hudTextColours[i] = world->hudTextColours[i]; + } - save->hudHintH = world->hudHintH; - save->hudHintS = world->hudHintS; - save->hudHintL = world->hudHintL; + save->hudHintH = world->hudHintH; + save->hudHintS = world->hudHintS; + save->hudHintL = world->hudHintL; - dWMHud_c::instance->hideAndShowFooter(); + dWMHud_c::instance->hideAndShowFooter(); + } } else { OSReport("Not found!\n"); } |