+ else if (access(p1, F_OK) && !access(p2, F_OK))
+ {
+ sprintf(msg, "%s%s%s%s%s", msg1, p2, msg2, p1, msg3);
+ errno = 0;
+ exit_err(1, w, msg);
+ }
+}
+
+
+
+extern void check_tempfile(char * path, struct World * w)
+{
+ char * msg1 = "A file '";
+ char * msg2 = "' exists, probably from a corrupted previous file saving "
+ "process. To avoid corruption of game files, the game won't "
+ "start until it is removed or renamed.";
+ uint16_t size = strlen(msg1) + strlen(path) + strlen(msg2);
+ char msg[size];
+ sprintf(msg, "%s%s%s", msg1, path, msg2);
+ exit_err(!access(path, F_OK), w, msg);
+}
+
+
+
+extern void save_interface_conf(struct World * world)
+{
+ save_keybindings(world, "config/keybindings_global", &world->kb_global);
+ save_keybindings(world, "config/keybindings_wingeom", &world->kb_wingeom);
+ save_keybindings(world, "config/keybindings_winkeys", &world->kb_winkeys);
+ save_win_configs(world);
+}
+
+
+
+extern void load_interface_conf(struct World * world)
+{
+ init_keybindings(world, "config/keybindings_global", &world->kb_global);
+ init_keybindings(world, "config/keybindings_wingeom", &world->kb_wingeom);
+ init_keybindings(world, "config/keybindings_winkeys", &world->kb_winkeys);
+ init_winconfs(world);
+ init_wins(world);
+ sorted_wintoggle_and_activate(world);
+}
+
+
+
+extern void unload_interface_conf(struct World * world)
+{
+ free_keybindings(world->kb_global.kbs);
+ free_keybindings(world->kb_wingeom.kbs);
+ free_keybindings(world->kb_winkeys.kbs);
+ while (0 != world->wmeta->active)