Fix replays
This commit is contained in:
parent
c4bd226d8f
commit
588acd1e7f
6 changed files with 34 additions and 23 deletions
22
game.h
22
game.h
|
@ -233,7 +233,7 @@ static inline void LCR_gameDrawPixelXYSafe(unsigned int x, unsigned int y,
|
|||
#include "renderer.h"
|
||||
|
||||
#define LCR_MENU_MAX_ITEMS 9 // don't change
|
||||
#define LCR_RESOURCE_ITEM_CHUNK (LCR_MENU_MAX_ITEMS - 1)
|
||||
#define LCR_DATA_ITEM_CHUNK (LCR_MENU_MAX_ITEMS - 1)
|
||||
#define LCR_MENU_TABS 4
|
||||
|
||||
#if LCR_SETTING_GHOST_MAX_SAMPLES == 0
|
||||
|
@ -884,9 +884,9 @@ void _LCR_gameDataCharWrite(char c)
|
|||
|
||||
while (_LCR_gameDataFileBuffer[i])
|
||||
{
|
||||
if (i >= LCR_GAME_DATA_FILE_BUFFER_SIZE - 2)
|
||||
if (i >= LCR_GAME_DATA_FILE_BUFFER_SIZE - 3)
|
||||
{
|
||||
_LCR_gameDataFileBuffer[i] = c;
|
||||
_LCR_gameDataFileBuffer[i + 1] = c;
|
||||
LCR_appendDataStr(_LCR_gameDataFileBuffer);
|
||||
_LCR_gameDataFileBuffer[0] = 0;
|
||||
return;
|
||||
|
@ -906,7 +906,7 @@ void _LCR_gameDataCharWrite(char c)
|
|||
}
|
||||
|
||||
/**
|
||||
Loads up to LCR_RESOURCE_ITEM_CHUNK items of given type, starting at given
|
||||
Loads up to LCR_DATA_ITEM_CHUNK items of given type, starting at given
|
||||
index (among items of the same type). This will also load the menu item names.
|
||||
*/
|
||||
void LCR_gameLoadDataFileChunk(unsigned int startIndex, char magicNumber)
|
||||
|
@ -959,7 +959,7 @@ void LCR_gameLoadDataFileChunk(unsigned int startIndex, char magicNumber)
|
|||
state = 255;
|
||||
LCR_game.menu.itemCount++;
|
||||
|
||||
if (LCR_game.menu.itemCount >= LCR_RESOURCE_ITEM_CHUNK)
|
||||
if (LCR_game.menu.itemCount >= LCR_DATA_ITEM_CHUNK)
|
||||
break;
|
||||
}
|
||||
else
|
||||
|
@ -1369,7 +1369,7 @@ void LCR_gameHandleInput(void)
|
|||
else if (LCR_game.menu.selectedTab != 0 &&
|
||||
LCR_game.dataFile.firstItemIndex != 0)
|
||||
{
|
||||
LCR_game.menu.selectedItem = LCR_RESOURCE_ITEM_CHUNK - 1;
|
||||
LCR_game.menu.selectedItem = LCR_DATA_ITEM_CHUNK - 1;
|
||||
LCR_audioPlaySound(LCR_SOUND_CLICK);
|
||||
scrolled = -1;
|
||||
}
|
||||
|
@ -1392,7 +1392,7 @@ void LCR_gameHandleInput(void)
|
|||
LCR_audioPlaySound(LCR_SOUND_CLICK);
|
||||
}
|
||||
else if (LCR_game.dataFile.firstItemIndex +
|
||||
LCR_RESOURCE_ITEM_CHUNK < LCR_game.dataFile.itemsTotal)
|
||||
LCR_DATA_ITEM_CHUNK < LCR_game.dataFile.itemsTotal)
|
||||
{
|
||||
LCR_game.menu.selectedItem = 0;
|
||||
LCR_audioPlaySound(LCR_SOUND_CLICK);
|
||||
|
@ -1434,7 +1434,8 @@ void LCR_gameHandleInput(void)
|
|||
break;
|
||||
|
||||
case 3:
|
||||
if (LCR_game.statePrev == LCR_GAME_STATE_RUN_FINISHED)
|
||||
if (LCR_game.statePrev == LCR_GAME_STATE_RUN_FINISHED &&
|
||||
!LCR_racing.playingReplay)
|
||||
LCR_gameSaveReplay();
|
||||
else
|
||||
LCR_gamePopupMessage(LCR_texts[LCR_TEXTS_FAIL]);
|
||||
|
@ -1488,7 +1489,7 @@ void LCR_gameHandleInput(void)
|
|||
{
|
||||
LCR_gameLoadDataFileChunk(
|
||||
(tabSwitchedTo > 0) ? 0 : (LCR_game.dataFile.firstItemIndex +
|
||||
scrolled * LCR_RESOURCE_ITEM_CHUNK),
|
||||
scrolled * LCR_DATA_ITEM_CHUNK),
|
||||
LCR_game.menu.selectedTab == 1 ? 'M' : 'R');
|
||||
|
||||
if (LCR_game.menu.selectedTab == 1)
|
||||
|
@ -1559,7 +1560,8 @@ uint8_t LCR_gameStep(uint32_t time)
|
|||
{
|
||||
LCR_LOG1("finished");
|
||||
|
||||
if (LCR_game.runTime <= LCR_currentMap.targetTime)
|
||||
if (LCR_game.runTime <= LCR_currentMap.targetTime &&
|
||||
!LCR_racing.playingReplay)
|
||||
{
|
||||
LCR_gameSaveReplay();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue