diff --git a/source/frontend/start.cpp b/source/frontend/start.cpp index a099a41ba..4278d6a97 100644 --- a/source/frontend/start.cpp +++ b/source/frontend/start.cpp @@ -66,6 +66,10 @@ #include "sound\sound.h" #endif +#ifndef __MAP_MAP_H__ +#include "map\map.h" +#endif + /* Std Lib ------- */ @@ -289,9 +293,11 @@ void CFrontEndStart::drawGameSlot(int _xOff,int _slotNumber) if(gameSlot->m_isInUse) { + int chapter,level; char buf[100]; - sprintf(buf,TranslationDatabase::getString(STR__SLOT_SELECT_SCREEN__LEVEL_REACHED),0,0); + gameSlot->getHighestLevelOpen(&chapter,&level); + sprintf(buf,TranslationDatabase::getString(STR__SLOT_SELECT_SCREEN__LEVEL_REACHED),chapter+1,level+1); m_font->print(xbase+SLOT_LEVEL_TEXT_X,SLOT_FRAME_Y+SLOT_LEVEL_TEXT_Y,buf); x=xbase+SLOT_TOKENCOUNT_X; @@ -432,6 +438,9 @@ void CFrontEndStart::think(int _frames) gameSlot=CGameSlotManager::getSlotData(); if(gameSlot->m_isInUse) { + int chapter,level; + gameSlot->getHighestLevelOpen(&chapter,&level); + CMapScene::setLevelToStartOn(chapter,level); m_state=STATE_EXITING_TO_GAME; CFader::setFadingOut(); CSoundMediator::playSfx(CSoundMediator::SFX_FRONT_END__OK); diff --git a/source/game/gameslot.cpp b/source/game/gameslot.cpp index f4a2a7516..04b6a6239 100644 --- a/source/game/gameslot.cpp +++ b/source/game/gameslot.cpp @@ -128,7 +128,6 @@ void CGameSlotManager::eraseGameSlot(unsigned int _slot) slot->m_isInUse=false; slot->m_lives=INITIAL_LIVES; slot->m_continues=INITIAL_CONTINUES; - slot->m_maxLevelCompleted=0; // Clear spatula and kelp token flags for(i=0;i