Start map text format

This commit is contained in:
Miloslav Ciz 2024-11-27 20:30:54 +01:00
parent a388a915f9
commit 2cbbd8fb1a
5 changed files with 392 additions and 80 deletions

31
game.h
View file

@ -117,8 +117,17 @@ uint8_t LCR_gameStep(uint32_t timeMs);
#define LCR_CONTROL_MODE_FREECAM 0x00
#define LCR_CONTROL_MODE_DRIVE 0x01
#define LCR_GAME_STATE_MENU 0x00
#define LCR_GAME_STATE_RUN_STARTING 0x01
#define LCR_GAME_STATE_RUN 0x02
#define LCR_GAME_STATE_RUN_FINISHED 0x03
struct
{
uint8_t state;
uint32_t stateStartTime;
uint32_t time;
uint32_t nextRenderFrameTime;
uint32_t nextRacingTickTime;
uint8_t controlMode;
@ -163,12 +172,29 @@ static inline void LCR_drawPixelXYSafe(unsigned int x, unsigned int y,
LCR_drawPixelXYUnsafe(x,y,color);
}
void LCR_gameSetState(uint8_t state)
{
LCR_LOG1("changing state");
LCR_game.state = state;
LCR_game.stateStartTime = LCR_game.time;
}
void LCR_gameResetRun(void)
{
LCR_LOG0("resetting run");
LCR_game.checkpointsTaken = 0;
LCR_mapReset();
LCR_rendererUnmarkCPs();
LCR_gameSetState(LCR_GAME_STATE_RUN_STARTING);
}
//void LCR_gameStartRun(const uint8_t *map)
void LCR_gameStartRun(const char *mapStr)
{
LCR_mapLoadFromStr(mapStr);
LCR_rendererLoadMap();
LCR_gameResetRun();
LCR_racingRestart();
}
void LCR_gameInit(void)
@ -178,7 +204,6 @@ void LCR_gameInit(void)
for (int i = 0; i < LCR_KEYS_TOTAL; ++i)
LCR_keyStates[i] = 0;
LCR_mapLoad(map1);
LCR_rendererInit();
LCR_racingInit();
@ -188,7 +213,7 @@ void LCR_gameInit(void)
LCR_game.controlMode = LCR_CONTROL_MODE_FREECAM;
LCR_game.debugDraw = 0;
LCR_gameResetRun();
LCR_gameStartRun(LCR_maps[0]);
}
void LCR_gameEnd(void)
@ -200,6 +225,8 @@ uint8_t LCR_gameStep(uint32_t time)
{
LCR_LOG2("game step start");
LCR_game.time = time;
LCR_GameUnit carTransform[6];
for (int i = 0; i < LCR_KEYS_TOTAL; ++i)