]> git.mxchange.org Git - quix0rs-blobwars.git/blobdiff - src/CConfig.cpp
Prevent a segmentation fault when using the -map option without specifying a map.
[quix0rs-blobwars.git] / src / CConfig.cpp
index ce87a06ce358c35fdefe27b89b5c29712b48d7d1..ea4eff4d409fb7c412c41a64fdc19e8ca3ff471e 100644 (file)
@@ -43,7 +43,7 @@ void Config::populate(int *data)
        command[CONTROL::PAUSE] = 0;
 }
 
-bool Config::isControl(CONTROL::TYPE type)
+bool Config::isControl(CONTROL::TYPE type) const
 {
        return command[type];
 }
@@ -77,11 +77,11 @@ void Config::doPause()
        }
        else
        {
-               if ((engine->keyState[keyboard.control[CONTROL::PAUSE]]) || (engine->keyState[SDLK_ESCAPE]))
+               if ((engine->keyState[keyboard.control[CONTROL::PAUSE]]) || (engine->keyState[SDL_SCANCODE_ESCAPE]))
                {
                        engine->paused = false;
                        engine->keyState[keyboard.control[CONTROL::PAUSE]] = 0;
-                       engine->keyState[SDLK_ESCAPE] = 0;
+                       engine->keyState[SDL_SCANCODE_ESCAPE] = 0;
                }
        }
 }
@@ -113,6 +113,7 @@ bool Config::loadJoystickConfig()
 
 bool Config::saveJoystickConfig()
 {
+       bool ret = true;
        char filename[PATH_MAX];
        snprintf(filename, sizeof filename, "%sjoystick.cfg", engine->userHomeDirectory);
        
@@ -122,15 +123,19 @@ bool Config::saveJoystickConfig()
        
        if (!fp)
        {
-               debug(("WARNING: Couldn't save joystick config\n"));
+               debug(("WARNING: Couldn't save joystick config: %s\n", strerror(errno)));
                return false;
        }
-               
-       fwrite(&joystick, sizeof(Joystick), 1, fp);
-               
+
+       if (fwrite(&joystick, sizeof(Joystick), 1, fp) != 1)
+       {
+               debug(("WARNING: Couldn't save joystick config: %s\n", strerror(errno)));
+               ret = false;
+       }
+
        fclose(fp);
        
-       return true;
+       return ret;
 }
 
 bool Config::loadKeyConfig()
@@ -163,6 +168,7 @@ bool Config::loadKeyConfig()
 
 bool Config::saveKeyConfig()
 {
+       bool ret = true;
        char filename[PATH_MAX];
        snprintf(filename, sizeof filename, "%skeyboard.cfg", engine->userHomeDirectory);
        
@@ -172,14 +178,19 @@ bool Config::saveKeyConfig()
        
        if (!fp)
        {
+               debug(("WARNING: Couldn't save keyboard config: %s\n", strerror(errno)));
                return false;
        }
-               
-       fwrite(&keyboard, sizeof(keyboard), 1, fp);
-               
+
+       if (fwrite(&keyboard, sizeof(keyboard), 1, fp) != 1)
+       {
+               debug(("WARNING: Couldn't save keyboard config: %s\n", strerror(errno)));
+               ret = false;
+       }
+
        fclose(fp);
        
-       return true;
+       return ret;
 }
 
 void Config::restoreKeyDefaults()