Ejemplo n.º 1
0
/* Change the currently viewed score category. There is a little bit
 * of silly-buggers here to make sure the change is temporary and
 * we end up on the right page next time. */
static void games_scores_dialog_change_category (GtkComboBox *widget, 
						 GamesScoresDialog *self)
{
  gchar *catcopy;
  gint idx;
  gchar *newcat;
  
  /* This seems like a bit of a hack, but since we're trying to
   * temporarily change the category it sort of makes sense. */

  catcopy = g_strdup (games_scores_get_category (self->priv->scores));
  idx = gtk_combo_box_get_active (widget);
  newcat = g_hash_table_lookup (self->priv->catindices,
				 GINT_TO_POINTER (idx));

  games_scores_set_category (self->priv->scores, newcat);
  if (self->priv->preservehilight) {
    self->priv->preservehilight = FALSE;
  } else {
    self->priv->hilight = 0;
  }
  games_scores_dialog_redraw (self);
  games_scores_set_category (self->priv->scores, catcopy);

  g_free (catcopy);
}
Ejemplo n.º 2
0
static void
GyahtzeeNewGame (void)
{
  int i;

  say (_("Select dice to roll or choose a score slot."));

  game_type = get_new_game_type();
  games_scores_set_category(highscores, SCORES_CATEGORY);
  NewGame ();
  setup_score_list (ScoreList);
  UpdateRollLabel ();

  for (i = 0; i < NumberOfPlayers; i++)
    ShowoffPlayer (ScoreList, i, 0);
  ShowoffPlayer (ScoreList, 0, 1);
}
Ejemplo n.º 3
0
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);
}
Ejemplo n.º 4
0
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);
}