Check map errors
This commit is contained in:
parent
0f40d57a22
commit
a1e5f50e58
4 changed files with 72 additions and 33 deletions
45
game.h
45
game.h
|
@ -775,8 +775,9 @@ uint8_t LCR_mapIsBeaten(const char *name)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void LCR_gameLoadMap(unsigned int mapIndex)
|
||||
uint8_t LCR_gameLoadMap(unsigned int mapIndex)
|
||||
{
|
||||
uint8_t result;
|
||||
char name[LCR_MAP_NAME_MAX_LEN + 1];
|
||||
name[0] = 0;
|
||||
|
||||
|
@ -794,8 +795,9 @@ void LCR_gameLoadMap(unsigned int mapIndex)
|
|||
name[i + 1] = 0;
|
||||
}
|
||||
|
||||
LCR_mapLoadFromStr(LCR_gameGetNextDataStrChar,name);
|
||||
result = LCR_mapLoadFromStr(LCR_gameGetNextDataStrChar,name);
|
||||
LCR_game.mapBeaten = LCR_mapIsBeaten(LCR_currentMap.name);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -846,13 +848,12 @@ unsigned int LCR_gameLoadReplay(unsigned int replayIndex)
|
|||
nameHash == _LCR_simpleStrHash(LCR_gameGetNextDataStrChar,';'))
|
||||
{
|
||||
LCR_LOG2("map name hash matches");
|
||||
LCR_gameLoadMap(mapIndex);
|
||||
|
||||
if (mapHash == LCR_currentMap.hash)
|
||||
|
||||
if (LCR_gameLoadMap(mapIndex) && mapHash == LCR_currentMap.hash)
|
||||
return mapIndex;
|
||||
else
|
||||
{
|
||||
LCR_LOG2("map hash doesn't match");
|
||||
LCR_LOG2("bad map");
|
||||
// map hash doesn't match
|
||||
skipTo = mapIndex + 1;
|
||||
break;
|
||||
|
@ -1058,10 +1059,17 @@ void LCR_gameInit(int argc, const char **argv)
|
|||
|
||||
if (quickLoad == 1)
|
||||
{
|
||||
LCR_gameLoadMap(LCR_countData('M') - 1);
|
||||
LCR_gameSetState(LCR_GAME_STATE_LOADING);
|
||||
LCR_game.menu.selectedTab = 1;
|
||||
LCR_gameLoadDataFileChunk(0,'M');
|
||||
if (LCR_gameLoadMap(LCR_countData('M') - 1))
|
||||
{
|
||||
LCR_gameSetState(LCR_GAME_STATE_LOADING);
|
||||
LCR_game.menu.selectedTab = 1;
|
||||
LCR_gameLoadDataFileChunk(0,'M');
|
||||
}
|
||||
else
|
||||
{
|
||||
LCR_LOG0("couldn't load map");
|
||||
LCR_gameSetState(LCR_GAME_STATE_END);
|
||||
}
|
||||
}
|
||||
else if (quickLoad == 2 || quickLoad == 3)
|
||||
{
|
||||
|
@ -1480,9 +1488,15 @@ void LCR_gameHandleInput(void)
|
|||
break;
|
||||
|
||||
case 1: // maps
|
||||
LCR_gameLoadMap(LCR_game.dataFile.firstItemIndex +
|
||||
LCR_game.menu.selectedItem);
|
||||
LCR_gameSetState(LCR_GAME_STATE_LOADING);
|
||||
if (LCR_gameLoadMap(LCR_game.dataFile.firstItemIndex +
|
||||
LCR_game.menu.selectedItem))
|
||||
LCR_gameSetState(LCR_GAME_STATE_LOADING);
|
||||
else
|
||||
{
|
||||
LCR_LOG0("couldn't load map");
|
||||
LCR_gamePopupMessage(LCR_texts[LCR_TEXTS_FAIL]);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 2: // view replay
|
||||
|
@ -1534,6 +1548,9 @@ uint8_t LCR_gameStep(uint32_t time)
|
|||
|
||||
LCR_game.time = time;
|
||||
|
||||
if (LCR_game.state == LCR_GAME_STATE_END)
|
||||
return 0;
|
||||
|
||||
for (int i = 0; i < LCR_KEYS_TOTAL; ++i)
|
||||
LCR_game.keyStates[i] = LCR_keyPressed(i) ?
|
||||
(LCR_game.keyStates[i] < 255 ? LCR_game.keyStates[i] + 1 : 255) : 0;
|
||||
|
@ -1694,7 +1711,7 @@ uint8_t LCR_gameStep(uint32_t time)
|
|||
LCR_game.frame++;
|
||||
LCR_LOG2("game step (end)");
|
||||
|
||||
return LCR_game.state != LCR_GAME_STATE_END;
|
||||
return 1;
|
||||
}
|
||||
|
||||
uint8_t LCR_gameGetNextAudioSample(void)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue