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

 Use tile_remove_base() to remove base from tile instead of modifying
specials directly in pillage code.


 - ML

diff -Nurd -X.diff_ignore freeciv/server/unittools.c freeciv/server/unittools.c
--- freeciv/server/unittools.c	2007-02-28 23:02:37.000000000 +0200
+++ freeciv/server/unittools.c	2007-03-01 20:51:42.000000000 +0200
@@ -672,10 +672,11 @@
                                      punit->activity_target) >= 1) {
       enum tile_special_type what_pillaged = punit->activity_target;
 
-      /* FIXME: If pillaging some kind of base, should not
-       *        touch specials directly but to use base related
-       *        functions. */
-      tile_clear_special(ptile, what_pillaged);
+      if (what_pillaged == S_FORTRESS || what_pillaged == S_AIRBASE) {
+        tile_remove_base(ptile);
+      } else {
+        tile_clear_special(ptile, what_pillaged);
+      }
       unit_list_iterate (ptile->units, punit2) {
         if ((punit2->activity == ACTIVITY_PILLAGE) &&
 	    (punit2->activity_target == what_pillaged)) {
_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to