void initConfiguration(int argc, const char *argv[]) { /* load some more defaults from config file */ runScript(PATH_SCRIPTS, "config.lua"); runScript(PATH_SCRIPTS, "artpack.lua"); /* go for .gltronrc (or whatever is defined in RC_NAME) */ { char *path; path = getPossiblePath(PATH_PREFERENCES, RC_NAME); if (path != NULL) { if (fileExists(path)) { printf("[status] loading settings from %s\n", path); scripting_RunFile(path); } else { printf("[error] cannot load %s from %s\n", RC_NAME, path); } free(path); } else { printf("[fatal] can't get valid pref path for %s\n", RC_NAME); exit(1); // something is seriously wrong } } if(!isSetting("version") || getSettingf("version") < 0.70f) { /* load some more defaults from config file */ runScript(PATH_SCRIPTS, "config.lua"); runScript(PATH_SCRIPTS, "artpack.lua"); printf("[warning] old config file found, overriding using defaults\n"); } // check if config is valid scripting_GetGlobal("save_completed", NULL); if(scripting_IsNilResult()) { runScript(PATH_SCRIPTS, "config.lua"); runScript(PATH_SCRIPTS, "artpack.lua"); printf("[warning] defunct config file found, overriding using defaults\n"); } setSettingf("version", 0.70f); /* parse any comandline switches overrinding the loaded settings */ parse_args(argc, argv); /* sanity check some settings */ checkSettings(); /* intialize the settings cache, remember to do that everytime you change something */ updateSettingsCache(); }
void checkSettings(void) { /* sanity check: speed */ if(getSettingf("speed") <= 0) { fprintf(stderr, "[gltron] sanity check failed: speed = %.2ff\n", getSettingf("speed")); setSettingf("speed", 6.0); fprintf(stderr, "[gltron] reset speed: speed = %.2f\n", getSettingf("speed")); } #ifndef NEW_LEVEL if(getSettingi("grid_size") % 8) { fprintf(stderr, "[gltron] sanity check failed: grid_size %% 8 != 0: " "grid_size = %d\n", getSettingi("grid_size")); setSettingi("grid_size", 240); fprintf(stderr, "[gltron] reset grid_size: grid_size = %d\n", getSettingi("grid_size")); } #endif }
void setSettingi(const char *name, int i) { setSettingf(name, (float)i); }