<URL: http://bugs.freeciv.org/Ticket/Display.html?id=39388 >

The ancient bug had been fixed in trunk months ago.

Tested against all 5 tilesets.

Committed S2_1 revision 13006.


Index: client/tilespec.c
===================================================================
--- client/tilespec.c   (revision 13005)
+++ client/tilespec.c   (working copy)
@@ -2638,7 +2638,6 @@
   /* Set up each layer of the drawing. */
   for (l = 0; l < draw->num_layers; l++) {
     sprite_vector_init(&draw->layer[l].base);
-    sprite_vector_reserve(&draw->layer[l].base, 1);
 
     switch (draw->layer[l].cell_type) {
     case CELL_SINGLE:
@@ -2673,7 +2672,6 @@
            lookup_sprite_tag_alt(t, buffer, "", TRUE, "matched terrain",
                                                          pterrain->name_rule);
        }
-       draw->layer[l].base.p[0] = draw->layer[l].match[0];
        break;
       };
       break;
@@ -2779,10 +2777,6 @@
          };
        }
       }
-      my_snprintf(buffer, sizeof(buffer), "t.%s1", draw->name);
-      draw->layer[l].base.p[0]
-        = lookup_sprite_tag_alt(t, buffer, "", TRUE, "base (blend) terrain",
-                                pterrain->name_rule);
       break;
     };
   }
@@ -2795,6 +2789,14 @@
     };
     enum direction4 dir;
 
+    if (draw->layer[0].base.size < 1) {
+      my_snprintf(buffer, sizeof(buffer), "t.%s1", draw->name);
+      sprite_vector_reserve(&draw->layer[0].base, 1);
+      draw->layer[0].base.p[0]
+       = lookup_sprite_tag_alt(t, buffer, "", TRUE, "base (blend) terrain",
+                               pterrain->name_rule);
+    }
+
     for (dir = 0; dir < 4; dir++) {
       assert(sprite_vector_size(&draw->layer[0].base) > 0);
       draw->blend[dir] = crop_sprite(draw->layer[0].base.p[0],
_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to