void gnibbles_properties_update (GnibblesProperties * tmp) { gint i; gchar buffer[256]; gchar *category; gchar *color_name; tmp->human = games_conf_get_integer (KEY_PREFERENCES_GROUP, KEY_NUM_WORMS, NULL); if (tmp->human < 0) tmp->human = 0; else if (tmp->human > NUMWORMS) tmp->human = NUMWORMS; tmp->ai = games_conf_get_integer (KEY_PREFERENCES_GROUP, KEY_NUM_AI, NULL); if (tmp->ai < 0) tmp->ai = 0; else if (tmp->ai > NUMWORMS) tmp->ai = NUMWORMS; tmp->numworms = tmp->human + tmp->ai; tmp->gamespeed = games_conf_get_integer (KEY_PREFERENCES_GROUP, KEY_SPEED, NULL); if (tmp->gamespeed < 1) tmp->gamespeed = 2; else if (tmp->gamespeed > MAX_SPEED) tmp->gamespeed = MAX_SPEED; tmp->fakes = games_conf_get_boolean (KEY_PREFERENCES_GROUP, KEY_FAKES, NULL); tmp->random = games_conf_get_boolean (KEY_PREFERENCES_GROUP, KEY_RANDOM, NULL); tmp->startlevel = games_conf_get_integer (KEY_PREFERENCES_GROUP, KEY_START_LEVEL, NULL); if (tmp->startlevel < 1) tmp->startlevel = 1; if (tmp->startlevel > MAXLEVEL) tmp->startlevel = MAXLEVEL; tmp->sound = games_conf_get_boolean (KEY_PREFERENCES_GROUP, KEY_SOUND, NULL); games_sound_enable (tmp->sound); tmp->tilesize = games_conf_get_integer (KEY_PREFERENCES_GROUP, KEY_TILE_SIZE, NULL); if (tmp->tilesize < 1) tmp->tilesize = 5; if (tmp->tilesize > 30) tmp->tilesize = 30; for (i = 0; i < NUMWORMS; i++) { tmp->wormprops[i] = g_slice_new0 (GnibblesWormProps); g_snprintf (buffer, sizeof (buffer), KEY_WORM_COLOR, i); color_name = games_conf_get_string_with_default (KEY_PREFERENCES_GROUP, buffer, "red"); tmp->wormprops[i]->color = colorval_from_name (color_name); g_free (color_name); if (tmp->wormprops[i]->color < 1) tmp->wormprops[i]->color = (i % NUM_COLORS) + WORMRED; if (tmp->wormprops[i]->color > WORMRED + NUM_COLORS) tmp->wormprops[i]->color = (i % NUM_COLORS) + WORMRED; g_snprintf (buffer, sizeof (buffer), KEY_WORM_REL_MOVE, i); tmp->wormprops[i]->relmove = games_conf_get_boolean (KEY_PREFERENCES_GROUP, buffer, NULL); g_snprintf (buffer, sizeof (buffer), KEY_WORM_UP, i); tmp->wormprops[i]->up = games_conf_get_keyval_with_default (KEY_PREFERENCES_GROUP, buffer, GDK_Up); g_snprintf (buffer, sizeof (buffer), KEY_WORM_DOWN, i); tmp->wormprops[i]->down = games_conf_get_keyval_with_default (KEY_PREFERENCES_GROUP, buffer, GDK_Down); g_snprintf (buffer, sizeof (buffer), KEY_WORM_LEFT, i); tmp->wormprops[i]->left = games_conf_get_keyval_with_default (KEY_PREFERENCES_GROUP, buffer, GDK_Left); g_snprintf (buffer, sizeof (buffer), KEY_WORM_RIGHT, i); tmp->wormprops[i]->right = games_conf_get_keyval_with_default (KEY_PREFERENCES_GROUP, buffer, GDK_Right); } category = g_strdup_printf ("%d.%d", tmp->gamespeed, tmp->fakes); games_scores_set_category (highscores, category); g_free (category); }
void gnibbles_properties_update (GnibblesProperties * tmp) { gint i; gchar *category; gchar *color_name; tmp->human = g_settings_get_int (settings, "players"); if (tmp->human < 0) tmp->human = 0; else if (tmp->human > NUMWORMS) tmp->human = NUMWORMS; tmp->ai = g_settings_get_int (settings, "ai"); if (tmp->ai < 0) tmp->ai = 0; else if (tmp->ai > NUMWORMS) tmp->ai = NUMWORMS; tmp->numworms = tmp->human + tmp->ai; tmp->gamespeed = g_settings_get_int (settings, "speed"); if (tmp->gamespeed < 1) tmp->gamespeed = 2; else if (tmp->gamespeed > MAX_SPEED) tmp->gamespeed = MAX_SPEED; tmp->fakes = g_settings_get_boolean (settings, "fakes"); tmp->random = g_settings_get_boolean (settings, "random"); tmp->startlevel = g_settings_get_int (settings, "start-level"); if (tmp->startlevel < 1) tmp->startlevel = 1; if (tmp->startlevel > MAXLEVEL) tmp->startlevel = MAXLEVEL; tmp->sound = g_settings_get_boolean (settings, "sound"); sound_enable (tmp->sound); tmp->tilesize = g_settings_get_int (settings, "tile-size"); if (tmp->tilesize < 1) tmp->tilesize = 5; if (tmp->tilesize > 30) tmp->tilesize = 30; for (i = 0; i < NUMWORMS; i++) { tmp->wormprops[i] = g_slice_new0 (GnibblesWormProps); color_name = g_settings_get_string (worm_settings[i], "color"); tmp->wormprops[i]->color = colorval_from_name (color_name); g_free (color_name); if (tmp->wormprops[i]->color < 1) tmp->wormprops[i]->color = (i % NUM_COLORS) + WORMRED; if (tmp->wormprops[i]->color > WORMRED + NUM_COLORS) tmp->wormprops[i]->color = (i % NUM_COLORS) + WORMRED; tmp->wormprops[i]->relmove = g_settings_get_boolean (worm_settings[i], "move-relative"); tmp->wormprops[i]->up = g_settings_get_int (worm_settings[i], "key-up"); tmp->wormprops[i]->down = g_settings_get_int (worm_settings[i], "key-down"); tmp->wormprops[i]->left = g_settings_get_int (worm_settings[i], "key-left"); tmp->wormprops[i]->right = g_settings_get_int (worm_settings[i], "key-right"); } category = g_strdup_printf ("%d.%d", tmp->gamespeed, tmp->fakes); games_scores_set_category (highscores, category); g_free (category); }