- hotfixing some Exhumed map transition issues.

This avoids crashing on LEV20, but the whole thing is simply too poorly implemented to actually work - this needs to be redone so that the map transition does not occur in the middle of the game ticker.
This commit is contained in:
Christoph Oelckers 2020-08-30 21:45:21 +02:00
parent 511cb51e7f
commit ba8dc788fe
3 changed files with 6 additions and 8 deletions

View File

@ -117,7 +117,7 @@ static void GameDisplay(void)
drawtime.Reset();
drawtime.Clock();
if (currentLevel->levelNumber == kMap20)
if (currentLevel && currentLevel->levelNumber == kMap20)
{
DoEnergyTile();
DrawClock();
@ -191,6 +191,7 @@ void CheckProgression()
// start a new game on the given level
currentLevel = nullptr;
mylevelnew = GameAction;
currentLevel = FindMapByLevelNum(mylevelnew);
GameAction = -1;
InitNewGame();
if (mylevelnew > 0) STAT_StartNewGame("Exhumed", 1);

View File

@ -77,7 +77,7 @@ uint8_t LoadLevel(int nMap)
initspritelists();
currentLevel = &mapList[nMap];
currentLevel = FindMapByLevelNum(nMap);
// init stuff
{

View File

@ -79,13 +79,10 @@ static int osdcmd_map(CCmdFuncPtr parm)
}
// Check if the map is already defined.
for (int i = 0; i <= ISDEMOVER? 4 : 32; i++)
auto map = FindMapByName(mapname);
if (map)
{
if (mapList[i].labelName.CompareNoCase(mapname) == 0)
{
GameAction = i;
return CCMD_OK;
}
GameAction = map->levelNumber;
}
return CCMD_OK;
}