131 lines
2.8 KiB
C
131 lines
2.8 KiB
C
/** @file frontend_helper.h
|
|
|
|
Helper file for generic PC frontends that can use the stdio library, to avoid
|
|
duplication of code.
|
|
*/
|
|
|
|
// TODO: quality presets?
|
|
|
|
#if PRESET_QUALITY == 1 // ultra low
|
|
#define LCR_SETTING_RESOLUTION_X 256
|
|
#define LCR_SETTING_RESOLUTION_Y 200
|
|
#define LCR_SETTING_POTATO_GRAPHICS 1
|
|
#define LCR_SETTING_332_COLOR 1
|
|
#define LCR_SETTING_FPS 25
|
|
#define LCR_SETTING_CAR_SHADOW 0
|
|
#define LCR_SETTING_CAR_ANIMATION_SUBDIVIDE 0
|
|
#define LCR_SETTING_PARTICLES 0
|
|
#define LCR_SETTING_TEXTURE_SUBSAMPLE 16
|
|
#define LCR_SETTING_FOG 0
|
|
#define LCR_SETTING_MUSIC 0
|
|
#elif PRESET_QUALITY == 2 // low
|
|
#define LCR_SETTING_RESOLUTION_X 512
|
|
#define LCR_SETTING_RESOLUTION_Y 400
|
|
#define LCR_SETTING_RESOLUTION_SUBDIVIDE 2
|
|
#define LCR_SETTING_CAR_SHADOW 0
|
|
#define LCR_SETTING_CAR_ANIMATION_SUBDIVIDE 0
|
|
#define LCR_SETTING_PARTICLES 0
|
|
#define LCR_SETTING_TEXTURE_SUBSAMPLE 8
|
|
#define LCR_SETTING_FOG 0
|
|
#define LCR_SETTING_FPS 30
|
|
#elif PRESET_QUALITY == 3 // normal
|
|
#define LCR_SETTING_RESOLUTION_X 800
|
|
#define LCR_SETTING_RESOLUTION_Y 600
|
|
#define LCR_SETTING_RESOLUTION_SUBDIVIDE 1
|
|
#define LCR_SETTING_CAR_SHADOW 1
|
|
#define LCR_SETTING_CAR_ANIMATION_SUBDIVIDE 1
|
|
#define LCR_SETTING_PARTICLES 1
|
|
#define LCR_SETTING_TEXTURE_SUBSAMPLE 4
|
|
#define LCR_SETTING_FOG 0
|
|
#define LCR_SETTING_FPS 30
|
|
#elif PRESET_QUALITY == 4 // high
|
|
#define LCR_SETTING_RESOLUTION_X 1024
|
|
#define LCR_SETTING_RESOLUTION_Y 768
|
|
#define LCR_SETTING_RESOLUTION_SUBDIVIDE 1
|
|
#define LCR_SETTING_CAR_SHADOW 1
|
|
#define LCR_SETTING_CAR_ANIMATION_SUBDIVIDE 1
|
|
#define LCR_SETTING_PARTICLES 1
|
|
#define LCR_SETTING_TEXTURE_SUBSAMPLE 1
|
|
#define LCR_SETTING_FOG 1
|
|
#define LCR_SETTING_FPS 45
|
|
#endif
|
|
|
|
#include <stdint.h>
|
|
#include <stdio.h>
|
|
|
|
#define DATA_FILE_NAME "data"
|
|
|
|
FILE *dataFile = 0;
|
|
|
|
char LCR_getNextDataFileChar(void)
|
|
{
|
|
#ifdef __EMSCRIPTEN__
|
|
return 0;
|
|
#else
|
|
if (!dataFile)
|
|
return 0;
|
|
|
|
int c = fgetc(dataFile);
|
|
|
|
if (c == EOF)
|
|
{
|
|
rewind(dataFile);
|
|
return 0;
|
|
}
|
|
|
|
return c;
|
|
#endif
|
|
}
|
|
|
|
void LCR_appendDataStr(const char *str)
|
|
{
|
|
#ifndef __EMSCRIPTEN__
|
|
if (!dataFile)
|
|
return;
|
|
|
|
if (str == 0 || *str == 0)
|
|
rewind(dataFile);
|
|
else
|
|
{
|
|
#if LCR_SETTING_LOG_LEVEL > 1
|
|
printf("SDL: appending data \"%s\"\n",str);
|
|
#endif
|
|
|
|
fclose(dataFile);
|
|
|
|
dataFile = fopen(DATA_FILE_NAME,"a");
|
|
|
|
if (dataFile)
|
|
{
|
|
fprintf(dataFile,"%s",str);
|
|
fclose(dataFile);
|
|
dataFile = fopen(DATA_FILE_NAME,"r");
|
|
}
|
|
}
|
|
#else
|
|
printf("%s",str);
|
|
#endif
|
|
}
|
|
|
|
void LCR_log(const char *str)
|
|
{
|
|
printf("%s\n",str);
|
|
}
|
|
|
|
void openDataFile(void)
|
|
{
|
|
#ifndef __EMSCRIPTEN__
|
|
dataFile = fopen(DATA_FILE_NAME,"r");
|
|
|
|
if (!dataFile)
|
|
puts("WARNING: couldn't open data file");
|
|
#endif
|
|
}
|
|
|
|
void closeDataFile(void)
|
|
{
|
|
#ifndef __EMSCRIPTEN__
|
|
if (dataFile)
|
|
fclose(dataFile);
|
|
#endif
|
|
}
|