| [Freeciv-Dev] (PR#13240) Feature: colour overview by players colors[Top] [All Lists][Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
 
| Subject: | [Freeciv-Dev] (PR#13240) Feature: colour overview by players colors |  
| From: | "Egor Vyscrebentsov" <evyscr@xxxxxxxxx> |  
| Date: | Wed, 8 Jun 2005 11:48:58 -0700 |  
| Reply-to: | bugs@xxxxxxxxxxx |  
 
<URL: http://bugs.freeciv.org/Ticket/Display.html?id=13240 >
Good daytime!
At 2005-06-01 midnight, Katze on #freeciv-dev suggest to use players colors
(get_player_color()) in overview for players territory tiles.
I hope, attached patch implement this idea.
Thanks, evyscr.
 Index: client/overview_common.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/overview_common.c,v
retrieving revision 1.11
diff -u -r1.11 overview_common.c
--- client/overview_common.c    7 Jun 2005 16:18:53 -0000       1.11
+++ client/overview_common.c    8 Jun 2005 18:28:02 -0000
@@ -100,42 +100,47 @@
 /****************************************************************************
   Return color for overview map tile.
 ****************************************************************************/
-static enum color_std overview_tile_color(struct tile *ptile)
+static struct color *overview_tile_color(struct tile *ptile)
 {
   struct unit *punit;
   struct city *pcity;
+  struct player *pplayer;
 
   if (client_tile_get_known(ptile) == TILE_UNKNOWN) {
-    return COLOR_OVERVIEW_UNKNOWN;
+    return get_color(tileset, COLOR_OVERVIEW_UNKNOWN);
   } else if ((pcity = tile_get_city(ptile))) {
     if (pcity->owner == game.info.player_idx) {
-      return COLOR_OVERVIEW_MY_CITY;
+      return get_color(tileset, COLOR_OVERVIEW_MY_CITY);
     } else if (pplayers_allied(city_owner(pcity), game.player_ptr)) {
       /* Includes teams. */
-      return COLOR_OVERVIEW_ALLIED_CITY;
+      return get_color(tileset, COLOR_OVERVIEW_ALLIED_CITY);
     } else {
-      return COLOR_OVERVIEW_ENEMY_CITY;
+      return get_color(tileset, COLOR_OVERVIEW_ENEMY_CITY);
     }
   } else if ((punit = find_visible_unit(ptile))) {
     if (punit->owner == game.info.player_idx) {
-      return COLOR_OVERVIEW_MY_UNIT;
+      return get_color(tileset, COLOR_OVERVIEW_MY_UNIT);
     } else if (pplayers_allied(unit_owner(punit), game.player_ptr)) {
       /* Includes teams. */
-      return COLOR_OVERVIEW_ALLIED_UNIT;
+      return get_color(tileset, COLOR_OVERVIEW_ALLIED_UNIT);
     } else {
-      return COLOR_OVERVIEW_ENEMY_UNIT;
+      return get_color(tileset, COLOR_OVERVIEW_ENEMY_UNIT);
     }
   } else if (is_ocean(ptile->terrain)) {
     if (client_tile_get_known(ptile) == TILE_KNOWN_FOGGED && draw_fog_of_war) {
-      return COLOR_OVERVIEW_FOGGED_OCEAN;
+      return get_color(tileset, COLOR_OVERVIEW_FOGGED_OCEAN);
     } else {
-      return COLOR_OVERVIEW_OCEAN;
+      return get_color(tileset, COLOR_OVERVIEW_OCEAN);
     }
   } else {
     if (client_tile_get_known(ptile) == TILE_KNOWN_FOGGED && draw_fog_of_war) {
-      return COLOR_OVERVIEW_FOGGED_LAND;
+      return get_color(tileset, COLOR_OVERVIEW_FOGGED_LAND);
     } else {
-      return COLOR_OVERVIEW_LAND;
+      if ((pplayer = tile_get_owner(ptile)) != NULL) {
+       return get_player_color(tileset, pplayer);
+      } else {
+       return get_color(tileset, COLOR_OVERVIEW_LAND);
+      }
     }
   }
 }
@@ -340,8 +345,7 @@
          /* This tile is shown half on the left and half on the right
           * side of the overview.  So we have to draw it in two parts. */
          canvas_put_rectangle(overview.map,
-                              get_color(tileset,
-                                        overview_tile_color(ptile)),
+                              overview_tile_color(ptile),
                               overview_x - overview.width, overview_y,
                               OVERVIEW_TILE_WIDTH, OVERVIEW_TILE_HEIGHT); 
        }     
@@ -352,8 +356,7 @@
       }
     } 
 
-    canvas_put_rectangle(overview.map,
-                        get_color(tileset, overview_tile_color(ptile)),
+    canvas_put_rectangle(overview.map, overview_tile_color(ptile),
                         overview_x, overview_y,
                         OVERVIEW_TILE_WIDTH, OVERVIEW_TILE_HEIGHT);
 
 
| [Prev in Thread] | Current Thread | [Next in Thread] |  
[Freeciv-Dev] (PR#13240) Feature: colour overview by players colors,
Egor Vyscrebentsov <=
 
 |  |