Licar/frontend_saf.c
2025-05-23 15:46:24 +02:00

80 lines
1.9 KiB
C

/** @file frontend_saf.c
SAF frontend for Licar.
*/
#define SAF_PLATFORM_SDL2
#define SAF_SETTING_ENABLE_SAVES 0
#define SAF_PROGRAM_NAME "Licar"
#include "saf.h"
#define LCR_SETTING_RESOLUTION_X SAF_SCREEN_WIDTH
#define LCR_SETTING_RESOLUTION_Y SAF_SCREEN_HEIGHT
#define LCR_SETTING_FPS SAF_FPS
#define LCR_SETTING_MUSIC 0
#define LCR_SETTING_ENABLE_DATA_FILE 0
#define LCR_SETTING_332_COLOR 1
#define LCR_SETTING_SKY_SIZE 1
#define LCR_SETTING_CAR_ANIMATION_SUBDIVIDE 0
#define LCR_PLAY_SOUND_CALLBACK(s) playSound(s);
void playSound(uint8_t sound);
#include "game.h"
void playSound(uint8_t sound)
{
switch (sound)
{
case LCR_SOUND_CLICK: SAF_playSound(SAF_SOUND_CLICK); break;
case LCR_SOUND_CRASH_SMALL: SAF_playSound(SAF_SOUND_BUMP); break;
case LCR_SOUND_CRASH_BIG: SAF_playSound(SAF_SOUND_BOOM); break;
case LCR_SOUND_FAN: SAF_playSound(SAF_SOUND_BEEP); break;
case LCR_SOUND_ACCELERATOR: SAF_playSound(SAF_SOUND_BEEP); break;
default: break;
}
}
void LCR_drawPixel(unsigned long index, uint16_t color)
{
SAF_drawPixel(index % SAF_SCREEN_WIDTH,index / SAF_SCREEN_WIDTH,color);
}
char LCR_getNextDataFileChar(void)
{
return 0;
}
void LCR_appendDataStr(const char *str)
{
}
uint8_t LCR_keyPressed(uint8_t key)
{
switch (key)
{
case LCR_KEY_UP: return SAF_buttonPressed(SAF_BUTTON_UP); break;
case LCR_KEY_RIGHT: return SAF_buttonPressed(SAF_BUTTON_RIGHT); break;
case LCR_KEY_DOWN: return SAF_buttonPressed(SAF_BUTTON_DOWN); break;
case LCR_KEY_LEFT: return SAF_buttonPressed(SAF_BUTTON_LEFT); break;
case LCR_KEY_A: return SAF_buttonPressed(SAF_BUTTON_A); break;
case LCR_KEY_B: return SAF_buttonPressed(SAF_BUTTON_B); break;
default: break;
}
return 0;
}
void LCR_sleep(uint16_t timeMs)
{
}
void SAF_init(void)
{
LCR_gameInit(0,0);
}
uint8_t SAF_loop(void)
{
return LCR_gameStep(SAF_time());
}