static void ai_start_game(void) { if (algorithms[active_algorithm].request_player == my_player_viewer() && algorithms[active_algorithm].quit_if_not_request) { ai_panic(N_("The game is already full. I'm leaving.")); } }
static gint expose_identity_area_cb(GtkWidget * area, G_GNUC_UNUSED GdkEventExpose * event, G_GNUC_UNUSED gpointer user_data) { GdkPoint points[MAX_POINTS]; Polygon poly; gint offset; GdkColor *colour; const GameParams *game_params; gint i; if (area->window == NULL || my_player_num() < 0) return FALSE; if (identity_gc == NULL) identity_gc = gdk_gc_new(area->window); colour = player_or_viewer_color(my_player_num()); gdk_gc_set_foreground(identity_gc, colour); gdk_draw_rectangle(area->window, identity_gc, TRUE, 0, 0, area->allocation.width, area->allocation.height); if (my_player_viewer()) colour = &white; else colour = &black; gdk_gc_set_foreground(identity_gc, colour); game_params = get_game_params(); if (game_params == NULL) return TRUE; offset = 5; poly.points = points; if (game_params->num_build_type[BUILD_ROAD] > 0) { poly.num_points = MAX_POINTS; guimap_road_polygon(&bogus_map, NULL, &poly); offset = draw_building_and_count(identity_gc, area, offset, &poly, stock_num_roads()); } if (game_params->num_build_type[BUILD_SHIP] > 0) { poly.num_points = MAX_POINTS; guimap_ship_polygon(&bogus_map, NULL, &poly); offset = draw_building_and_count(identity_gc, area, offset, &poly, stock_num_ships()); } if (game_params->num_build_type[BUILD_BRIDGE] > 0) { poly.num_points = MAX_POINTS; guimap_bridge_polygon(&bogus_map, NULL, &poly); offset = draw_building_and_count(identity_gc, area, offset, &poly, stock_num_bridges()); } if (game_params->num_build_type[BUILD_SETTLEMENT] > 0) { poly.num_points = MAX_POINTS; guimap_settlement_polygon(&bogus_map, NULL, &poly); offset = draw_building_and_count(identity_gc, area, offset, &poly, stock_num_settlements()); } if (game_params->num_build_type[BUILD_CITY] > 0) { poly.num_points = MAX_POINTS; guimap_city_polygon(&bogus_map, NULL, &poly); offset = draw_building_and_count(identity_gc, area, offset, &poly, stock_num_cities()); } if (game_params->num_build_type[BUILD_CITY_WALL] > 0) { poly.num_points = MAX_POINTS; guimap_city_wall_polygon(&bogus_map, NULL, &poly); offset = draw_building_and_count(identity_gc, area, offset, &poly, stock_num_city_walls()); } if (die_num[0] > 0 && die_num[1] > 0) { GdkColor *die_border_color[2]; GdkColor *die_color[2]; GdkColor *die_dots_color[2]; if (game_params->use_cities_and_knights_rules) { die_border_color[0] = &ck_die_yellow; die_color[0] = &ck_die_red; die_dots_color[0] = &ck_die_yellow; die_border_color[1] = &ck_die_red; die_color[1] = &ck_die_yellow; die_dots_color[1] = &ck_die_red; } else { die_border_color[0] = &black; die_color[0] = &white; die_dots_color[0] = &black; die_border_color[1] = &black; die_color[1] = &white; die_dots_color[1] = &black; } for (i = 0; i < 2; i++) { show_die(identity_gc, area, area->allocation.width - 70 + 35 * i, die_num[i], die_border_color[i], die_color[i], die_dots_color[i]); } } return TRUE; }