void apply_options(AG_Event *event) { int opengl = *static_cast<int*>(AG_PTR(1)); int fs = *static_cast<int*>(AG_PTR(2)); int lang = *static_cast<int*>(AG_PTR(3)); std::stringstream str; str << "Fullscreen: " << fs; logger->logDebug(str.str()); if (lang == -1) return; switch (lang) { case 0: game->setLanguage("en"); break; case 1: game->setLanguage("pt"); break; case 2: game->setLanguage("es"); break; } interfaceManager->removeAllWindows(); game->restart(opengl, fs, width, height); XMLFile file; if (file.load(resourceManager->getDataPath("townslife.cfg"))) { file.setElement("graphics"); file.changeInt("graphics", "opengl", opengl); if (fs) file.changeString("graphics", "fullscreen", "true"); else file.changeString("graphics", "fullscreen", "false"); file.changeInt("graphics", "width", width); file.changeInt("graphics", "height", height); file.setElement("language"); file.changeString("language", "value", game->getLanguage()); file.save(); } GameState *state = new LoginState; game->changeState(state); }