[Freeciv-Dev] Re: (PR#12384) use sprites for the citymap overlays
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
<URL: http://bugs.freeciv.org/Ticket/Display.html?id=12384 >
Jason Short wrote:
> <URL: http://bugs.freeciv.org/Ticket/Display.html?id=12384 >
>
> This patch uses tileset sprites for the citymap overlays (the 't'
> behavior). These sprites use alpha so the end result is much prettier
> (see the screenshot attached to the image).
This improved patch removes put_city_worker (which was unused) and
renames sprites.black_tile as sprites.mask.tile.
-jason
? data/misc/overlays.png
? data/misc/overlays.spec
Index: client/mapview_common.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/mapview_common.c,v
retrieving revision 1.199
diff -u -r1.199 mapview_common.c
--- client/mapview_common.c 28 Feb 2005 04:01:52 -0000 1.199
+++ client/mapview_common.c 1 Mar 2005 00:48:50 -0000
@@ -951,10 +951,10 @@
case DRAWN_BG:
/*** Background color. ***/
if (tileset_is_isometric()) {
- canvas_fill_sprite_area(pcanvas, sprites.black_tile, COLOR_STD_BLACK,
+ canvas_fill_sprite_area(pcanvas, sprites.mask.tile, COLOR_STD_BLACK,
canvas_x, canvas_y);
if (fog) {
- canvas_fog_sprite_area(pcanvas, sprites.black_tile,
+ canvas_fog_sprite_area(pcanvas, sprites.mask.tile,
canvas_x, canvas_y);
}
} else {
@@ -1106,14 +1106,8 @@
*
* This array can be added to without breaking anything elsewhere.
*/
-static enum color_std city_colors[] = {
- COLOR_STD_RED,
- COLOR_STD_YELLOW,
- COLOR_STD_CYAN,
- COLOR_STD_WHITE
-};
static int color_index = 0;
-#define NUM_CITY_COLORS ARRAY_SIZE(city_colors)
+#define NUM_CITY_COLORS (sprites.city.worked_tile_overlay.size)
/****************************************************************************
@@ -1712,19 +1706,31 @@
&& pcity->client.colored
&& map_to_city_map(&city_x, &city_y, pcity, ptile)) {
enum city_tile_type worker = get_worker_city(pcity, city_x, city_y);
+ int index = pcity->client.color_index % NUM_CITY_COLORS;
- put_city_worker(mapview.store,
- city_colors[pcity->client.color_index], worker,
- canvas_x2, canvas_y2);
- if (worker == C_TILE_WORKER) {
+ switch (worker) {
+ case C_TILE_EMPTY:
+ canvas_put_sprite_full(mapview.store,
+ canvas_x2, canvas_y2,
+ sprites.city.unworked_tile_overlay.p[index]);
+ break;
+ case C_TILE_WORKER:
+ canvas_put_sprite_full(mapview.store,
+ canvas_x2, canvas_y2,
+ sprites.city.worked_tile_overlay.p[index]);
put_city_tile_output(pcity, city_x, city_y,
mapview.store, canvas_x2, canvas_y2);
+ break;
+ case C_TILE_UNAVAILABLE:
+ break;
}
} else if (punit && punit->client.colored) {
+ int index = punit->client.color_index % NUM_CITY_COLORS;
+
/* Draw citymap overlay for settlers. */
- put_city_worker(mapview.store,
- city_colors[punit->client.color_index], C_TILE_EMPTY,
- canvas_x2, canvas_y2);
+ canvas_put_sprite_full(mapview.store,
+ canvas_x2, canvas_y2,
+ sprites.city.unworked_tile_overlay.p[index]);
}
}
} gui_rect_iterate_end;
Index: client/tilespec.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/tilespec.c,v
retrieving revision 1.248
diff -u -r1.248 tilespec.c
--- client/tilespec.c 28 Feb 2005 20:24:38 -0000 1.248
+++ client/tilespec.c 1 Mar 2005 00:49:02 -0000
@@ -1269,6 +1269,7 @@
{
char buffer[512];
const char dir_char[] = "nsew";
+ const int W = NORMAL_TILE_WIDTH, H = NORMAL_TILE_HEIGHT;
int i;
assert(sprite_hash != NULL);
@@ -1287,10 +1288,13 @@
SET_SPRITE(right_arrow, "s.right_arrow");
if (is_isometric) {
- SET_SPRITE(black_tile, "t.black_tile");
SET_SPRITE(dither_tile, "t.dither_tile");
}
+ SET_SPRITE(mask.tile, "tx.mask.tile");
+ SET_SPRITE(mask.worked_tile, "tx.mask.worked_tile");
+ SET_SPRITE(mask.unworked_tile, "tx.mask.unworked_tile");
+
SET_SPRITE(tax_luxury, "s.tax_luxury");
SET_SPRITE(tax_science, "s.tax_science");
SET_SPRITE(tax_gold, "s.tax_gold");
@@ -1493,12 +1497,48 @@
SET_SPRITE(tx.airbase, "tx.airbase");
SET_SPRITE(tx.fog, "tx.fog");
- if (load_sprite("grid.main.ns")) {
- for (i = 0; i < MAX_NUM_PLAYERS + MAX_NUM_BARBARIANS; i++) {
- my_snprintf(buffer, sizeof(buffer), "colors.player%d", i);
- SET_SPRITE(colors.player[i], buffer);
+ /* Load color sprites. */
+ for (i = 0; i < MAX_NUM_PLAYERS + MAX_NUM_BARBARIANS; i++) {
+ my_snprintf(buffer, sizeof(buffer), "colors.player%d", i);
+ SET_SPRITE(colors.player[i], buffer);
+ }
+ sprite_vector_init(&sprites.colors.overlays);
+ for (i = 0; ; i++) {
+ struct Sprite *sprite;
+
+ my_snprintf(buffer, sizeof(buffer), "tx.colors.overlay_%d", i);
+ sprite = load_sprite(buffer);
+ if (!sprite) {
+ break;
}
+ sprite_vector_append(&sprites.colors.overlays, &sprite);
+ }
+ if (i == 0) {
+ freelog(LOG_FATAL, "Missing overlay-color sprite tx.colors.overlay_0.");
+ exit(EXIT_FAILURE);
+ }
+ /* Chop up and build the overlay graphics. */
+ sprite_vector_reserve(&sprites.city.worked_tile_overlay,
+ sprite_vector_size(&sprites.colors.overlays));
+ sprite_vector_reserve(&sprites.city.unworked_tile_overlay,
+ sprite_vector_size(&sprites.colors.overlays));
+ for (i = 0; i < sprite_vector_size(&sprites.colors.overlays); i++) {
+ struct Sprite *color, *color_mask;
+ struct Sprite *worked, *unworked;
+
+ color = *sprite_vector_get(&sprites.colors.overlays, i);
+ color_mask = crop_sprite(color, 0, 0, W, H, sprites.mask.tile, 0, 0);
+ worked = crop_sprite(color_mask, 0, 0, W, H,
+ sprites.mask.worked_tile, 0, 0);
+ unworked = crop_sprite(color_mask, 0, 0, W, H,
+ sprites.mask.unworked_tile, 0, 0);
+ free_sprite(color_mask);
+ sprites.city.worked_tile_overlay.p[i] = worked;
+ sprites.city.unworked_tile_overlay.p[i] = unworked;
+ }
+
+ if (load_sprite("grid.main.ns")) {
SET_SPRITE(grid.unavailable, "grid.unavailable");
for (i = 0; i < EDGE_COUNT; i++) {
@@ -1881,7 +1921,7 @@
sprite = crop_sprite(sprite,
x[dir], y[dir], W / 2, H / 2,
- sprites.black_tile, xo[dir], yo[dir]);
+ sprites.mask.tile, xo[dir], yo[dir]);
}
draw->layer[l].cells[i] = sprite;
Index: client/tilespec.h
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/tilespec.h,v
retrieving revision 1.112
diff -u -r1.112 tilespec.h
--- client/tilespec.h 28 Feb 2005 20:24:38 -0000 1.112
+++ client/tilespec.h 1 Mar 2005 00:49:02 -0000
@@ -220,10 +220,15 @@
/* The panel sprites for showing tax % allocations. */
*tax_luxury, *tax_science, *tax_gold,
-
- *black_tile, /* only used for isometric view */
*dither_tile; /* only used for isometric view */
+ struct {
+ struct Sprite
+ *tile,
+ *worked_tile,
+ *unworked_tile;
+ } mask;
+
struct citizen_graphic {
/* Each citizen type has up to MAX_NUM_CITIZEN_SPRITES different
* sprites, as defined by the tileset. */
@@ -299,6 +304,8 @@
*tile_tradenum[NUM_TILES_DIGITS],
***tile_wall, /* only used for isometric view */
***tile;
+ struct sprite_vector worked_tile_overlay;
+ struct sprite_vector unworked_tile_overlay;
} city;
struct {
struct Sprite
@@ -336,6 +343,8 @@
*player_borders[MAX_NUM_PLAYERS + MAX_NUM_BARBARIANS][EDGE_COUNT][2];
} grid;
struct {
+ struct sprite_vector overlays;
+
struct Sprite *player[MAX_NUM_PLAYERS + MAX_NUM_BARBARIANS];
} colors;
Index: client/gui-ftwl/mapview.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-ftwl/mapview.c,v
retrieving revision 1.15
diff -u -r1.15 mapview.c
--- client/gui-ftwl/mapview.c 17 Feb 2005 03:12:54 -0000 1.15
+++ client/gui-ftwl/mapview.c 1 Mar 2005 00:49:02 -0000
@@ -599,17 +599,6 @@
}
/**************************************************************************
- Draw in information about city workers on the mapview in the given
- color.
-**************************************************************************/
-void put_city_worker(struct canvas *pcanvas,
- enum color_std color, enum city_tile_type worker,
- int canvas_x, int canvas_y)
-{
- /* PORTME */
-}
-
-/**************************************************************************
This function is called when the tileset is changed.
**************************************************************************/
void tileset_changed(void)
Index: client/gui-gtk/mapview.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-gtk/mapview.c,v
retrieving revision 1.237
diff -u -r1.237 mapview.c
--- client/gui-gtk/mapview.c 28 Feb 2005 04:16:45 -0000 1.237
+++ client/gui-gtk/mapview.c 1 Mar 2005 00:49:02 -0000
@@ -785,40 +785,6 @@
}
}
-/****************************************************************************
- Draw a single tile of the citymap onto the mapview. The tile is drawn
- as the given color with the given worker on it. The exact method of
- drawing is left up to the GUI.
-****************************************************************************/
-void put_city_worker(struct canvas *pcanvas,
- enum color_std color, enum city_tile_type worker,
- int canvas_x, int canvas_y)
-{
- if (worker == C_TILE_EMPTY) {
- gdk_gc_set_stipple(fill_tile_gc, gray25);
- } else if (worker == C_TILE_WORKER) {
- gdk_gc_set_stipple(fill_tile_gc, gray50);
- } else {
- return;
- }
-
- gdk_gc_set_ts_origin(fill_tile_gc, canvas_x, canvas_y);
- gdk_gc_set_foreground(fill_tile_gc, colors_standard[color]);
-
- if (tileset_is_isometric()) {
- gdk_gc_set_clip_origin(fill_tile_gc, canvas_x, canvas_y);
- gdk_gc_set_clip_mask(fill_tile_gc, sprites.black_tile->mask);
- }
-
- gdk_draw_rectangle(pcanvas->pixmap, fill_tile_gc, TRUE,
- canvas_x, canvas_y,
- NORMAL_TILE_WIDTH, NORMAL_TILE_HEIGHT);
-
- if (tileset_is_isometric()) {
- gdk_gc_set_clip_mask(fill_tile_gc, NULL);
- }
-}
-
/**************************************************************************
...
**************************************************************************/
Index: client/gui-gtk-2.0/mapview.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-gtk-2.0/mapview.c,v
retrieving revision 1.160
diff -u -r1.160 mapview.c
--- client/gui-gtk-2.0/mapview.c 28 Feb 2005 04:16:45 -0000 1.160
+++ client/gui-gtk-2.0/mapview.c 1 Mar 2005 00:49:02 -0000
@@ -980,44 +980,6 @@
}
}
-/****************************************************************************
- Draw a single tile of the citymap onto the mapview. The tile is drawn
- as the given color with the given worker on it. The exact method of
- drawing is left up to the GUI.
-****************************************************************************/
-void put_city_worker(struct canvas *pcanvas,
- enum color_std color, enum city_tile_type worker,
- int canvas_x, int canvas_y)
-{
- GdkBitmap *mask;
-
- if (pcanvas->type == CANVAS_PIXMAP) {
- if (worker == C_TILE_EMPTY) {
- gdk_gc_set_stipple(fill_tile_gc, gray25);
- } else if (worker == C_TILE_WORKER) {
- gdk_gc_set_stipple(fill_tile_gc, gray50);
- } else {
- return;
- }
-
- gdk_gc_set_ts_origin(fill_tile_gc, canvas_x, canvas_y);
- gdk_gc_set_foreground(fill_tile_gc, colors_standard[color]);
-
- if (sprites.black_tile && (mask = sprite_get_mask(sprites.black_tile))) {
- gdk_gc_set_clip_origin(fill_tile_gc, canvas_x, canvas_y);
- gdk_gc_set_clip_mask(fill_tile_gc, mask);
- }
-
- gdk_draw_rectangle(pcanvas->v.pixmap, fill_tile_gc, TRUE,
- canvas_x, canvas_y,
- NORMAL_TILE_WIDTH, NORMAL_TILE_HEIGHT);
-
- if (sprites.black_tile && sprites.black_tile->mask) {
- gdk_gc_set_clip_mask(fill_tile_gc, NULL);
- }
- }
-}
-
/**************************************************************************
...
**************************************************************************/
Index: client/gui-sdl/mapview.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-sdl/mapview.c,v
retrieving revision 1.79
diff -u -r1.79 mapview.c
--- client/gui-sdl/mapview.c 28 Feb 2005 04:01:54 -0000 1.79
+++ client/gui-sdl/mapview.c 1 Mar 2005 00:49:03 -0000
@@ -2089,17 +2089,6 @@
}
/**************************************************************************
- Draw in information about city workers on the mapview in the given
- color.
-**************************************************************************/
-void put_city_worker(struct canvas *pcanvas,
- enum color_std color, enum city_tile_type worker,
- int canvas_x, int canvas_y)
-{
- freelog(LOG_DEBUG, "MAPVIEW: put_city_workers : PORT ME");
-}
-
-/**************************************************************************
Area Selection
**************************************************************************/
void draw_selection_rectangle(int canvas_x, int canvas_y, int w, int h)
Index: client/gui-stub/mapview.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-stub/mapview.c,v
retrieving revision 1.49
diff -u -r1.49 mapview.c
--- client/gui-stub/mapview.c 17 Feb 2005 03:12:54 -0000 1.49
+++ client/gui-stub/mapview.c 1 Mar 2005 00:49:03 -0000
@@ -338,18 +338,6 @@
}
/****************************************************************************
- Draw a single tile of the citymap onto the mapview. The tile is drawn
- as the given color with the given worker on it. The exact method of
- drawing is left up to the GUI.
-****************************************************************************/
-void put_city_worker(struct canvas *pcanvas,
- enum color_std color, enum city_tile_type worker,
- int canvas_x, int canvas_y)
-{
- /* PORTME */
-}
-
-/****************************************************************************
Area Selection
****************************************************************************/
void draw_selection_rectangle(int canvas_x, int canvas_y, int w, int h)
Index: client/gui-win32/mapview.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-win32/mapview.c,v
retrieving revision 1.142
diff -u -r1.142 mapview.c
--- client/gui-win32/mapview.c 28 Feb 2005 04:16:45 -0000 1.142
+++ client/gui-win32/mapview.c 1 Mar 2005 00:49:03 -0000
@@ -620,18 +620,6 @@
}
}
-/****************************************************************************
- Draw a single tile of the citymap onto the mapview. The tile is drawn
- as the given color with the given worker on it. The exact method of
- drawing is left up to the GUI.
-****************************************************************************/
-void put_city_worker(struct canvas *pcanvas,
- enum color_std color, enum city_tile_type worker,
- int canvas_x, int canvas_y)
-{
- /* PORTME */
-}
-
/**************************************************************************
**************************************************************************/
@@ -841,7 +829,7 @@
POINT points[4];
/* FIXME: give a real implementation of this function. */
- assert(psprite == sprites.black_tile);
+ assert(psprite == sprites.tile.mask);
points[0].x = canvas_x + NORMAL_TILE_WIDTH / 2;
points[0].y = canvas_y;
Index: client/gui-xaw/mapview.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-xaw/mapview.c,v
retrieving revision 1.190
diff -u -r1.190 mapview.c
--- client/gui-xaw/mapview.c 28 Feb 2005 04:16:46 -0000 1.190
+++ client/gui-xaw/mapview.c 1 Mar 2005 00:49:04 -0000
@@ -778,30 +778,6 @@
}
}
-/****************************************************************************
- Draw a single tile of the citymap onto the mapview. The tile is drawn
- as the given color with the given worker on it. The exact method of
- drawing is left up to the GUI.
-****************************************************************************/
-void put_city_worker(struct canvas *pcanvas,
- enum color_std color, enum city_tile_type worker,
- int canvas_x, int canvas_y)
-{
- if (worker == C_TILE_EMPTY) {
- XSetStipple(display, fill_tile_gc, gray25);
- } else if (worker == C_TILE_WORKER) {
- XSetStipple(display, fill_tile_gc, gray50);
- } else {
- return;
- }
-
- XSetTSOrigin(display, fill_tile_gc, canvas_x, canvas_y);
- XSetForeground(display, fill_tile_gc, colors_standard[color]);
- XFillRectangle(display, pcanvas->pixmap, fill_tile_gc,
- canvas_x, canvas_y,
- NORMAL_TILE_WIDTH, NORMAL_TILE_HEIGHT);
-}
-
/**************************************************************************
...
**************************************************************************/
Index: client/include/mapview_g.h
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/include/mapview_g.h,v
retrieving revision 1.59
diff -u -r1.59 mapview_g.h
--- client/include/mapview_g.h 17 Feb 2005 03:12:55 -0000 1.59
+++ client/include/mapview_g.h 1 Mar 2005 00:49:04 -0000
@@ -75,9 +75,6 @@
void update_map_canvas_scrollbars_size(void);
void put_cross_overlay_tile(struct tile *ptile);
-void put_city_worker(struct canvas *pcanvas,
- enum color_std color, enum city_tile_type worker,
- int canvas_x, int canvas_y);
void draw_selection_rectangle(int canvas_x, int canvas_y, int w, int h);
void tileset_changed(void);
Index: data/isophex.tilespec
===================================================================
RCS file: /home/freeciv/CVS/freeciv/data/isophex.tilespec,v
retrieving revision 1.8
diff -u -r1.8 isophex.tilespec
--- data/isophex.tilespec 28 Feb 2005 20:24:39 -0000 1.8
+++ data/isophex.tilespec 1 Mar 2005 00:49:04 -0000
@@ -58,6 +58,7 @@
; tag is used).
files =
"misc/colors.spec",
+ "misc/overlays.spec",
"isophex/terrain1.spec",
"isophex/terrain2.spec",
"isophex/darkness.spec",
Index: data/isotrident.tilespec
===================================================================
RCS file: /home/freeciv/CVS/freeciv/data/isotrident.tilespec,v
retrieving revision 1.31
diff -u -r1.31 isotrident.tilespec
--- data/isotrident.tilespec 25 Feb 2005 17:31:50 -0000 1.31
+++ data/isotrident.tilespec 1 Mar 2005 00:49:04 -0000
@@ -50,6 +50,7 @@
; tag is used).
files =
"misc/colors.spec",
+ "misc/overlays.spec",
"isotrident/terrain1.spec",
"isotrident/terrain2.spec",
"isotrident/tiles.spec",
Index: data/trident.tilespec
===================================================================
RCS file: /home/freeciv/CVS/freeciv/data/trident.tilespec,v
retrieving revision 1.31
diff -u -r1.31 trident.tilespec
--- data/trident.tilespec 25 Feb 2005 17:31:50 -0000 1.31
+++ data/trident.tilespec 1 Mar 2005 00:49:04 -0000
@@ -46,6 +46,7 @@
; tag is used).
files =
"misc/colors.spec",
+ "misc/overlays.spec",
"trident/tiles.spec",
"misc/small.spec",
"trident/units.spec",
Index: data/trident_shields.tilespec
===================================================================
RCS file: /home/freeciv/CVS/freeciv/data/trident_shields.tilespec,v
retrieving revision 1.22
diff -u -r1.22 trident_shields.tilespec
--- data/trident_shields.tilespec 25 Feb 2005 17:31:50 -0000 1.22
+++ data/trident_shields.tilespec 1 Mar 2005 00:49:04 -0000
@@ -49,6 +49,7 @@
; tag is used).
files =
"misc/colors.spec",
+ "misc/overlays.spec",
"trident/tiles.spec",
"misc/small.spec",
"trident/units.spec",
Index: data/isophex/terrain1.spec
===================================================================
RCS file: /home/freeciv/CVS/freeciv/data/isophex/terrain1.spec,v
retrieving revision 1.3
diff -u -r1.3 terrain1.spec
--- data/isophex/terrain1.spec 5 Feb 2005 05:34:49 -0000 1.3
+++ data/isophex/terrain1.spec 1 Mar 2005 00:49:04 -0000
@@ -134,7 +134,7 @@
0, 0, "t.dither_tile"
0, 0, "tx.darkness"
0, 1, "tx.fog"
- 0, 2, "t.black_tile"
+ 0, 2, "tx.mask.tile"
0, 3, "t.coast_color"
0, 4, "user.attention"
Index: data/isotrident/terrain1.spec
===================================================================
RCS file: /home/freeciv/CVS/freeciv/data/isotrident/terrain1.spec,v
retrieving revision 1.7
diff -u -r1.7 terrain1.spec
--- data/isotrident/terrain1.spec 5 Feb 2005 05:34:49 -0000 1.7
+++ data/isotrident/terrain1.spec 1 Mar 2005 00:49:04 -0000
@@ -133,7 +133,7 @@
0, 0, "t.dither_tile"
0, 0, "tx.darkness"
0, 1, "tx.fog"
- 0, 2, "t.black_tile"
+ 0, 2, "tx.mask.tile"
0, 2, "t.unknown1"
0, 3, "t.ocean1"
Index: data/misc/Makefile.am
===================================================================
RCS file: /home/freeciv/CVS/freeciv/data/misc/Makefile.am,v
retrieving revision 1.9
diff -u -r1.9 Makefile.am
--- data/misc/Makefile.am 25 Feb 2005 17:31:50 -0000 1.9
+++ data/misc/Makefile.am 1 Mar 2005 00:49:04 -0000
@@ -12,6 +12,8 @@
colors.spec \
flags.spec \
intro.png \
+ overlays.png \
+ overlays.spec \
radar.png \
shields.spec \
small.png \
Index: data/trident/tiles.png
===================================================================
RCS file: /home/freeciv/CVS/freeciv/data/trident/tiles.png,v
retrieving revision 1.8
diff -u -r1.8 tiles.png
Binary files /tmp/cvsmu4NWX and tiles.png differ
Index: data/trident/tiles.spec
===================================================================
RCS file: /home/freeciv/CVS/freeciv/data/trident/tiles.spec,v
retrieving revision 1.23
diff -u -r1.23 tiles.spec
--- data/trident/tiles.spec 20 Nov 2004 17:45:52 -0000 1.23
+++ data/trident/tiles.spec 1 Mar 2005 00:49:05 -0000
@@ -361,6 +361,7 @@
12, 14, "tx.village"
12, 15, "tx.fortress"
13, 16, "tx.airbase"
+ 13, 0, "tx.mask.tile"
13, 17, "tx.fog"
13, 18, "tx.fallout"
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Freeciv-Dev] Re: (PR#12384) use sprites for the citymap overlays,
Jason Short <=
|
|