diff -urd -X freeciv.current/diff_ignore freeciv.current/client/tilespec.c work/client/tilespec.c --- freeciv.current/client/tilespec.c Wed Sep 12 10:44:16 2001 +++ work/client/tilespec.c Wed Sep 12 19:33:09 2001 @@ -412,8 +412,10 @@ } /* Not very safe, but convenient: */ -#define SET_SPRITE(field, tag) \ - sprites.field = hash_lookup_data(sprite_hash, tag); +#define SET_SPRITE(field, tag) do { \ + sprites.field = hash_lookup_data(sprite_hash, tag);\ + assert(sprites.field);\ + } while(0) /********************************************************************** Initialize 'sprites' structure based on hardwired tags which @@ -468,12 +470,23 @@ SET_SPRITE(rail.isolated, "r.rail_isolated"); if (is_isometric) { - for (i=0; i<8; i++) { - my_snprintf(buffer, sizeof(buffer), "r.road%d", i); - SET_SPRITE(road.dir[i], buffer); - my_snprintf(buffer, sizeof(buffer), "r.rail%d", i); - SET_SPRITE(rail.dir[i], buffer); - } + SET_SPRITE(road.dir[DIR8_NORTH], "r.road_n"); + SET_SPRITE(road.dir[DIR8_WEST], "r.road_w"); + SET_SPRITE(road.dir[DIR8_SOUTH], "r.road_s"); + SET_SPRITE(road.dir[DIR8_EAST], "r.road_e"); + SET_SPRITE(road.dir[DIR8_NORTHWEST], "r.road_nw"); + SET_SPRITE(road.dir[DIR8_NORTHEAST], "r.road_ne"); + SET_SPRITE(road.dir[DIR8_SOUTHWEST], "r.road_sw"); + SET_SPRITE(road.dir[DIR8_SOUTHEAST], "r.road_se"); + + SET_SPRITE(rail.dir[DIR8_NORTH], "r.rail_n"); + SET_SPRITE(rail.dir[DIR8_WEST], "r.rail_w"); + SET_SPRITE(rail.dir[DIR8_SOUTH], "r.rail_s"); + SET_SPRITE(rail.dir[DIR8_EAST], "r.rail_e"); + SET_SPRITE(rail.dir[DIR8_NORTHWEST], "r.rail_nw"); + SET_SPRITE(rail.dir[DIR8_NORTHEAST], "r.rail_ne"); + SET_SPRITE(rail.dir[DIR8_SOUTHWEST], "r.rail_sw"); + SET_SPRITE(rail.dir[DIR8_SOUTHEAST], "r.rail_se"); } else { for(i=1; i