Clean a bit

This commit is contained in:
Miloslav Ciz 2025-01-08 21:28:01 +01:00
parent ac95a4f0b6
commit 614741f6e8
6 changed files with 36 additions and 40 deletions

View file

@ -18,19 +18,23 @@
static const char *LCR_texts[] = static const char *LCR_texts[] =
{ {
// menu tabs: #define LCR_TEXTS_VERSION 0
"0.5d", // version string
#define LCR_TEXTS_TABS 1
"main menu", "main menu",
"play map", "play map",
"view repl", "view repl",
"play repl", "play repl",
// main menu items: #define LCR_TEXTS_MAIN_MENU 5
"camera: $", "camera: $",
"music: $", "music: $",
"sound: $", "sound: $",
"save repl", "save repl",
"exit", "exit",
#define LCR_TEXTS_LOADING 10
"loading" "loading"
}; };

24
audio.h
View file

@ -13,7 +13,6 @@
#define LCR_AUDIO_CRASH_LEN 2048 #define LCR_AUDIO_CRASH_LEN 2048
struct struct
{ {
uint32_t frame; uint32_t frame;
@ -21,20 +20,12 @@ struct
uint8_t soundPlayed; uint8_t soundPlayed;
uint16_t soundPlayedFrame; uint16_t soundPlayedFrame;
uint32_t noise; uint32_t noise;
uint8_t crashSample;
uint8_t crashSample; int engineIntensity;
int engineOsc;
int engineInc;
int engineIntensity;
int engineOsc;
int engineInc;
} LCR_audio; } LCR_audio;
void LCR_audioInit(void) void LCR_audioInit(void)
{ {
LCR_LOG0("initializing audio"); LCR_LOG0("initializing audio");
@ -123,9 +114,7 @@ uint8_t LCR_audioGetNextSample(void)
LCR_audio.soundPlayedFrame++; LCR_audio.soundPlayedFrame++;
else if (LCR_audio.engineIntensity) else if (LCR_audio.engineIntensity)
{ {
LCR_audio.engineOsc += LCR_audio.engineOsc += LCR_audio.engineInc ? (((_LCR_audioNoise() % 256) <
LCR_audio.engineInc ?
(((_LCR_audioNoise() % 256) <
(10 + LCR_audio.engineIntensity))) : -31; (10 + LCR_audio.engineIntensity))) : -31;
if (LCR_audio.engineInc && LCR_audio.engineOsc > if (LCR_audio.engineInc && LCR_audio.engineOsc >
@ -134,8 +123,7 @@ uint8_t LCR_audioGetNextSample(void)
else if ((!LCR_audio.engineInc) && LCR_audio.engineOsc < 10) else if ((!LCR_audio.engineInc) && LCR_audio.engineOsc < 10)
LCR_audio.engineInc = 1; LCR_audio.engineInc = 1;
result += result += LCR_audio.engineIntensity < 20 ?
LCR_audio.engineIntensity < 20 ?
LCR_audio.engineOsc / 2 : LCR_audio.engineOsc; LCR_audio.engineOsc / 2 : LCR_audio.engineOsc;
} }

View file

@ -36,4 +36,9 @@
#define LCR_RESOURCE_FILE_SEPARATOR '#' #define LCR_RESOURCE_FILE_SEPARATOR '#'
#define LCR_RESOURCE_FILE_SEPARATOR2 ';' #define LCR_RESOURCE_FILE_SEPARATOR2 ';'
#define LCR_MENU_MAX_ITEMS 9 // don't change
#define LCR_RESOURCE_ITEM_CHUNK (LCR_MENU_MAX_ITEMS - 1)
#define LCR_MENU_TABS 4
#define LCR_MENU_STRING_SIZE 16
#endif #endif

22
game.h
View file

@ -180,14 +180,6 @@ uint8_t LCR_gameGetNextAudioSample(void);
#define LCR_GAME_STATE_LOADING_MAP 0x04 #define LCR_GAME_STATE_LOADING_MAP 0x04
#define LCR_GAME_STATE_END 0xff #define LCR_GAME_STATE_END 0xff
// TODO: move to consts?
#define LCR_MENU_MAX_ITEMS 9 // don't change
#define LCR_RESOURCE_ITEM_CHUNK (LCR_MENU_MAX_ITEMS - 1)
#define LCR_MENU_TABS 4
#define LCR_MENU_STRING_SIZE 16
struct struct
{ {
uint8_t state; uint8_t state;
@ -214,8 +206,6 @@ struct
const char *itemNamePtrs[LCR_MENU_MAX_ITEMS]; ///< helper array const char *itemNamePtrs[LCR_MENU_MAX_ITEMS]; ///< helper array
} menu; } menu;
// TODO: make menu struct?
struct struct
{ {
int state; ///< -1 if reading external res. f., else pos. int state; ///< -1 if reading external res. f., else pos.
@ -422,7 +412,7 @@ void LCR_gameLoadMainMenuItems(void)
char replaceChar = i == 0 ? '0' + LCR_game.cameraMode : char replaceChar = i == 0 ? '0' + LCR_game.cameraMode :
(i == 1 ? '0' + LCR_game.musicOn : ('0' + LCR_audio.on)); (i == 1 ? '0' + LCR_game.musicOn : ('0' + LCR_audio.on));
LCR_gameSetMenuItemStr(i,LCR_texts[4 + i],replaceChar); LCR_gameSetMenuItemStr(i,LCR_texts[LCR_TEXTS_MAIN_MENU + i],replaceChar);
} }
LCR_game.menu.itemCount = 4; LCR_game.menu.itemCount = 4;
@ -907,9 +897,9 @@ uint8_t LCR_gameStep(uint32_t time)
if (LCR_game.state == LCR_GAME_STATE_MENU || if (LCR_game.state == LCR_GAME_STATE_MENU ||
LCR_game.state == LCR_GAME_STATE_LOADING_MAP) LCR_game.state == LCR_GAME_STATE_LOADING_MAP)
LCR_rendererDrawMenu(LCR_texts[LCR_game.menu.selectedTab], LCR_rendererDrawMenu(LCR_texts[LCR_TEXTS_TABS
LCR_game.menu.itemNamePtrs,LCR_game.menu.itemCount + 1, + LCR_game.menu.selectedTab],LCR_game.menu.itemNamePtrs,
LCR_game.menu.selectedItem); LCR_game.menu.itemCount + 1,LCR_game.menu.selectedItem);
else else
LCR_gameDraw3DView(); LCR_gameDraw3DView();
} }
@ -930,9 +920,9 @@ uint8_t LCR_gameStep(uint32_t time)
LCR_EFFECTIVE_RESOLUTION_Y - 2 * LCR_EFFECTIVE_RESOLUTION_Y / 3, LCR_EFFECTIVE_RESOLUTION_Y - 2 * LCR_EFFECTIVE_RESOLUTION_Y / 3,
0xffff,0); 0xffff,0);
LCR_rendererDrawText(LCR_texts[9], LCR_rendererDrawText(LCR_texts[LCR_TEXTS_LOADING],
(LCR_EFFECTIVE_RESOLUTION_X - (LCR_EFFECTIVE_RESOLUTION_X -
LCR_rendererComputeTextWidth(LCR_texts[9],4)) / 2, LCR_rendererComputeTextWidth(LCR_texts[LCR_TEXTS_LOADING],4)) / 2,
(LCR_EFFECTIVE_RESOLUTION_Y - (LCR_EFFECTIVE_RESOLUTION_Y -
LCR_rendererComputeTextHeight(4)) / 2,0x0000,4); LCR_rendererComputeTextHeight(4)) / 2,0x0000,4);
} }

View file

@ -1444,7 +1444,7 @@ S3L_Unit _LCR_rendererSmoothRot(S3L_Unit angleOld, S3L_Unit angleNew,
/** /**
Loads the map models with 8 chunks that are nearest to a certain point Loads the map models with 8 chunks that are nearest to a certain point
towards which camera is looking. towards which the camera is looking.
*/ */
void _LCR_rendererLoadMapChunks(void) void _LCR_rendererLoadMapChunks(void)
{ {
@ -1788,6 +1788,8 @@ void LCR_rendererDrawMenu(const char *tabName,const char **items,
stripHeight / LCR_IMAGE_SIZE,0xffff); stripHeight / LCR_IMAGE_SIZE,0xffff);
#endif #endif
LCR_rendererDrawText(LCR_texts[LCR_TEXTS_VERSION],5,5,0xffff,2);
LCR_renderer.frame++; LCR_renderer.frame++;
} }
@ -1837,7 +1839,8 @@ void LCR_rendererDraw3D(void)
_LCR_rendererAnimateCar(); _LCR_rendererAnimateCar();
#endif #endif
_LCR_rendererLoadMapChunks(); // TODO: call only once in a while? if (LCR_renderer.frame % LCR_SETTING_MAP_CHUNK_RELOAD_INTERVAL == 0)
_LCR_rendererLoadMapChunks();
LCR_rendererDrawSky(LCR_currentMap.environment, LCR_rendererDrawSky(LCR_currentMap.environment,
LCR_renderer.scene.camera.transform.rotation.y, LCR_renderer.scene.camera.transform.rotation.y,

View file

@ -187,4 +187,10 @@
#define LCR_SETTING_COUNTDOWN_SECONDS 1 // for release make 3 #define LCR_SETTING_COUNTDOWN_SECONDS 1 // for release make 3
#endif #endif
#ifndef LCR_SETTING_MAP_CHUNK_RELOAD_INTERVAL
/** Interval in rendering frames of reloading map chunks, should ideally be
kept a power of two, can't be 0. */
#define LCR_SETTING_MAP_CHUNK_RELOAD_INTERVAL 16
#endif
#endif // guard #endif // guard