- [NEW] Afegides funcions pa guardar i carregar del arxiu de configuració enters, floats i bools, a més de cadenes que ja estaven.
- [NEW] Ja guarda i recupera la configuració de zoom, fullscreen i shader.
This commit is contained in:
@@ -120,7 +120,8 @@ namespace draw
|
||||
// Inicialització de tot el que fa falta per a carregar gràfics i pintar en pantalla
|
||||
void init(const char *titol, const uint16_t width, const uint16_t height, const int zoom, const bool fullscreen, const float ratio)
|
||||
{
|
||||
screen_zoom = zoom;
|
||||
screen_zoom = file::getConfigValueInteger("zoom", zoom);
|
||||
screen_fullscreen = file::getConfigValueBool("fullscreen", fullscreen);
|
||||
window_ratio = ratio;
|
||||
canvas_width = width;
|
||||
canvas_height = height;
|
||||
@@ -195,8 +196,7 @@ namespace draw
|
||||
screen_zoom = value;
|
||||
destroyDisplay();
|
||||
createDisplay();
|
||||
char strzoom[3];
|
||||
file::setConfigValue("zoom", SDL_itoa(screen_zoom, strzoom, 10));
|
||||
file::setConfigValueInteger("zoom", screen_zoom);
|
||||
}
|
||||
|
||||
const int getZoom()
|
||||
@@ -232,7 +232,7 @@ namespace draw
|
||||
screen_fullscreen=value;
|
||||
destroyDisplay();
|
||||
createDisplay();
|
||||
file::setConfigValue("fullscreen", screen_fullscreen?"true":"false");
|
||||
file::setConfigValueBool("fullscreen", screen_fullscreen);
|
||||
}
|
||||
|
||||
void loadShader()
|
||||
@@ -253,6 +253,7 @@ namespace draw
|
||||
screen_shader = (char*)malloc(strlen(shader_file)+1);
|
||||
strcpy(screen_shader, shader_file);
|
||||
loadShader();
|
||||
if (file::getConfigValueBool("shader_enabled", false)) enableShader();
|
||||
}
|
||||
|
||||
void enableShader()
|
||||
@@ -261,6 +262,7 @@ namespace draw
|
||||
shader::enable();
|
||||
//destroyDisplay();
|
||||
//createDisplay();
|
||||
file::setConfigValueBool("shader_enabled", shader_enabled);
|
||||
}
|
||||
|
||||
void disableShader()
|
||||
@@ -269,6 +271,7 @@ namespace draw
|
||||
shader::disable();
|
||||
//destroyDisplay();
|
||||
//createDisplay();
|
||||
file::setConfigValueBool("shader_enabled", shader_enabled);
|
||||
}
|
||||
|
||||
void toggleShader()
|
||||
|
||||
@@ -207,7 +207,7 @@ namespace file
|
||||
}
|
||||
}
|
||||
|
||||
const char* getConfigValue(const char *key) {
|
||||
const char* getConfigValueString(const char *key) {
|
||||
if (config.empty()) loadConfigValues();
|
||||
for (auto pair : config) {
|
||||
if (pair.key == std::string(key)) {
|
||||
@@ -218,7 +218,28 @@ namespace file
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void setConfigValue(const char* key, const char* value) {
|
||||
const int getConfigValueInteger(const char *key, const int default_value)
|
||||
{
|
||||
const char* value = getConfigValueString(key);
|
||||
if (!value) return default_value;
|
||||
return atoi(value);
|
||||
}
|
||||
|
||||
const float getConfigValueFloat(const char *key, const float default_value)
|
||||
{
|
||||
const char* value = getConfigValueString(key);
|
||||
if (!value) return default_value;
|
||||
return atof(value);
|
||||
}
|
||||
|
||||
const bool getConfigValueBool(const char *key, const bool default_value)
|
||||
{
|
||||
const char* value = getConfigValueString(key);
|
||||
if (!value) return default_value;
|
||||
return strcmp(value, "true")==0?true:false;
|
||||
}
|
||||
|
||||
void setConfigValueString(const char* key, const char* value) {
|
||||
if (config.empty()) loadConfigValues();
|
||||
for (auto &pair : config) {
|
||||
if (pair.key == std::string(key)) {
|
||||
@@ -231,4 +252,24 @@ namespace file
|
||||
saveConfigValues();
|
||||
return;
|
||||
}
|
||||
|
||||
void setConfigValueInteger(const char* key, const int value)
|
||||
{
|
||||
char tmp[256];
|
||||
sprintf(tmp, "%i", value);
|
||||
setConfigValueString(key, tmp);
|
||||
}
|
||||
|
||||
void setConfigValueFloat(const char* key, const float value)
|
||||
{
|
||||
char tmp[256];
|
||||
sprintf(tmp, "%.2f", value);
|
||||
setConfigValueString(key, tmp);
|
||||
}
|
||||
|
||||
void setConfigValueBool(const char* key, const bool value)
|
||||
{
|
||||
setConfigValueString(key, value?"true":"false");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,6 +16,12 @@ namespace file
|
||||
FILE *getFilePointer(const char *resourcename, int& filesize, const bool binary=false);
|
||||
char *getFileBuffer(const char *resourcename, int& filesize, const bool zero_terminate=false);
|
||||
|
||||
const char* getConfigValue(const char *key);
|
||||
void setConfigValue(const char* key, const char* value);
|
||||
const char* getConfigValueString(const char *key);
|
||||
const int getConfigValueInteger(const char *key, const int default_value=0);
|
||||
const float getConfigValueFloat(const char *key, const float default_value=0.0f);
|
||||
const bool getConfigValueBool(const char *key, const bool default_value=false);
|
||||
void setConfigValueString(const char* key, const char* value);
|
||||
void setConfigValueInteger(const char* key, const int value);
|
||||
void setConfigValueFloat(const char* key, const float value);
|
||||
void setConfigValueBool(const char* key, const bool value);
|
||||
}
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
|
||||
void game::init()
|
||||
{
|
||||
file::setConfigFolder("arounders");
|
||||
draw::init("Arounders", 320, 200, 3, false, 3.0f/4.0f);
|
||||
draw::setShader("gbc.glsl");
|
||||
draw::setTrans(0);
|
||||
audio::init(48000, SDL_AUDIO_S16, 2);
|
||||
draw::hideCursor();
|
||||
|
||||
file::setConfigFolder("arounders");
|
||||
font::init();
|
||||
|
||||
game::setUpdateTicks(16);
|
||||
|
||||
Reference in New Issue
Block a user