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

On Wed, 14 Mar 2007, [EMAIL PROTECTED] wrote:
> I found a bug in the 2.1.0-beta3: spies are always executed when trying
> to establish an embassy, even if they haven't been in any contact with
> the enemy.
>
> I quickly checked the source code, and it would seem to me that the
> problem is actually that the spies are always created with the "foul"
> status:
>
> In server/cityturn.c, line 1212 units are created with 0 moves left,
> which in turn is interpreted as "already moved" in server/unittools.c
> line 1339, where spies are flagged as "foul".
>
> In the stable version the units are created with -1 moves left, so there
> it works as intended. However, as somebody has obviously intentionally
> changed the moves_left argument from -1 to 0 for the beta version,
> changing it back might break something that I'm not aware of. This is
> why I didn't submit a patch but just a bug report.

This is the change:

[EMAIL PROTECTED] freeciv]$ svn log -r 9884
------------------------------------------------------------------------
r9884 | jdorje | 2005-02-23 04:34:06 +0100 (Wed, 23 Feb 2005) | 9 lines

Introduce an alternating-movement mode for freeciv.  In this mode (off by
default for now), each player moves in sequence rather than all
simultaneously.  Actions other than unit movement may be done during at
any time.

Feature request by many in PR#576.  Patch by me.  Thanks to Thomas Strub
for advice on end-of-turn actions.  Thanks to "canophone" and "gilles" for
playtesting.

[EMAIL PROTECTED] freeciv]$ svn diff -r 9883:9884 server/cityturn.c|more
Index: server/cityturn.c
===================================================================
--- server/cityturn.c   (revision 9883)
+++ server/cityturn.c   (revision 9884)
@@ -1083,7 +1083,7 @@

      (void) create_unit(pplayer, pcity->tile, pcity->currently_building,
                        do_make_unit_veteran(pcity, pcity->currently_building),
-                      pcity->id, -1);
+                      pcity->id, 0);

      /* After we created the unit remove the citizen. This will also
         rearrange the worker to take into account the extra resources
@@ -1418,7 +1418,7 @@

    (void) create_unit(pplayer, ptile, pcity->currently_building,
                      do_make_unit_veteran(pcity, pcity->currently_building),
-                    pcity->id, -1);
+                    pcity->id, 0);

    /* Shift all the units supported by pcity (including the new unit)
     * to rcity.  transfer_city_units does not make sure no units are

I am not sure what changing it back would do to alternating movement mode. 
Jason?

   - Per



_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to