Exemplo n.º 1
0
/**
 * sound_cb
 * @widget: widget
 * @data: callback data
 *
 * Description:
 * handles message from the 'sound' checkbox
 **/
static void
sound_cb (GtkWidget * widget, gpointer data)
{
  properties.sound = GTK_TOGGLE_BUTTON (widget)->active;
  games_sound_enable (properties.sound);
  conf_set_enable_sound (properties.sound);
}
Exemplo n.º 2
0
void
Tetris::initOptions ()
{
	gchar *bgcolourstr;

	themeno = themeNameToNumber (confGetString (KEY_OPTIONS_GROUP, KEY_THEME, "plain"));
	field->setTheme (themeno);
	preview->setTheme (themeno);

	startingLevel = confGetInt (KEY_OPTIONS_GROUP, KEY_STARTING_LEVEL, 1);
	if (startingLevel < 1)
		startingLevel = 1;
	if (startingLevel > 20)
		startingLevel = 20;

	games_sound_enable (confGetBoolean (KEY_OPTIONS_GROUP, KEY_SOUND, FALSE));

	useTarget = confGetBoolean (KEY_OPTIONS_GROUP, KEY_USE_TARGET, FALSE);

	do_preview = confGetBoolean (KEY_OPTIONS_GROUP, KEY_DO_PREVIEW, TRUE);

	if (preview) {
		preview->enable(do_preview);
	}

	random_block_colors = confGetBoolean (KEY_OPTIONS_GROUP, KEY_RANDOM_BLOCK_COLORS, FALSE);

	rotateCounterClockWise = confGetBoolean (KEY_OPTIONS_GROUP, KEY_ROTATE_COUNTER_CLOCKWISE, TRUE);

	line_fill_height = confGetInt (KEY_OPTIONS_GROUP, KEY_LINE_FILL_HEIGHT, 0);
	if (line_fill_height < 0)
		line_fill_height = 0;
	if (line_fill_height > 19)
		line_fill_height = 19;

	line_fill_prob = confGetInt (KEY_OPTIONS_GROUP, KEY_LINE_FILL_PROBABILITY, 0);
	if (line_fill_prob < 0)
		line_fill_prob = 0;
	if (line_fill_prob > 10)
		line_fill_prob = 10;

	moveLeft = games_conf_get_keyval_with_default (KEY_CONTROLS_GROUP, KEY_MOVE_LEFT, GDK_Left);
	moveRight = games_conf_get_keyval_with_default (KEY_CONTROLS_GROUP, KEY_MOVE_RIGHT, GDK_Right);
	moveDown = games_conf_get_keyval_with_default (KEY_CONTROLS_GROUP, KEY_MOVE_DOWN, GDK_Down);
	moveDrop = games_conf_get_keyval_with_default (KEY_CONTROLS_GROUP, KEY_MOVE_DROP, GDK_Pause);
	moveRotate = games_conf_get_keyval_with_default (KEY_CONTROLS_GROUP, KEY_MOVE_ROTATE, GDK_Up);
	movePause = games_conf_get_keyval_with_default (KEY_CONTROLS_GROUP, KEY_MOVE_PAUSE, GDK_space);

	bgcolourstr = confGetString (KEY_OPTIONS_GROUP, KEY_BG_COLOUR, "Black");
	gdk_color_parse (bgcolourstr, &bgcolour);
	g_free (bgcolourstr);

	usebg = confGetBoolean (KEY_OPTIONS_GROUP, KEY_USE_BG_IMAGE, TRUE);
}
Exemplo n.º 3
0
/**
 * load_properties
 *
 * Description:
 * loads the game properties from a file
 *
 * Returns:
 * TRUE if the properties can be loaded, FALSE otherwise
 **/
gboolean
load_properties (void)
{
  gchar *cname = NULL;
  gint i;
  gchar *bgcolour;

  load_keys ();

  bgcolour = games_conf_get_string_with_default (KEY_PREFERENCES_GROUP,
                                                 KEY_BACKGROUND_COLOR, "#7590AE");
  gdk_color_parse (bgcolour, &properties.bgcolour);
  set_background_color (properties.bgcolour);

  properties.themename = games_conf_get_string_with_default (KEY_PREFERENCES_GROUP,
                                                             KEY_THEME, "robots");

  cname = games_conf_get_string_with_default (KEY_PREFERENCES_GROUP,
                                              KEY_CONFIGURATION, "classic_robots");

  properties.selected_config = 0;
  for (i = 0; i < num_game_configs (); ++i) {
    if (!strcmp (cname, game_config_name (i))) {
      properties.selected_config = i;
      break;
    }
  }
  g_free (cname);

  properties.safe_moves = games_conf_get_boolean (KEY_PREFERENCES_GROUP,
						  KEY_SAFE_MOVES, NULL);
  properties.super_safe_moves = games_conf_get_boolean (KEY_PREFERENCES_GROUP,
						        KEY_SUPER_SAFE_MOVES,
						        NULL);
  properties.sound = games_conf_get_boolean (KEY_PREFERENCES_GROUP,
                                             KEY_ENABLE_SOUND, NULL);
  properties.show_toolbar = games_conf_get_boolean (KEY_PREFERENCES_GROUP,
                                                    KEY_SHOW_TOOLBAR, NULL);

  games_sound_enable (properties.sound);
  set_game_graphics (properties.themename);
  set_game_config (properties.selected_config);
  keyboard_set (properties.keys);
  return TRUE;
}
Exemplo n.º 4
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);
}