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

> [EMAIL PROTECTED] - Sat Jul 26 02:02:16 2008]:
> 
> > [book - Sat Jul 19 16:22:16 2008]:
> > 
> > > [EMAIL PROTECTED] - Fri Jul 18 23:31:07 2008]:
> > > 
> > > This transaction appears to have no content
> > > 
> > > Bug: When the wonder "Darwin's voyage" is built, nothing happens
> > > - the production keeps going and each turn, it just says that
> > > it'll be built in 1 turn.
> > >
> > > (see attached screen-shot). At this time, I didn't have any gold
> > > going into science/research so maybe that's why it won't build
> > > (either way, it isn't clear in the help files). I just selected
> > > 2 technologies now so maybe it will give them to me next turn?
> > 
> > It looks like another player finished building the wonder before
> > you. If you are sure that this is not the case, send the savegame
> > and we can investigate further.
> > 
> Right, so I'd say the bug in this case is in
> the UI - how about displaying 'never' instead
> of '1 turn' in the case the wonder is already
> built? Then the unsuspecting player would know
> that it's time to adjust the production.

Attached patches modify city_turns_to_build to
return FC_INFINITY if the great wonder was
already built. This makes the production string
display "never" (or "-" if you have the concise
city prodution option set) in this case.

Note that for wonders that are already built,
the production string will already show a "(B)"
instead of "(w)", and you will get an event
message saying that the city is building some-
thing that has already been built.
 

> I'd like to report two other 'bugs' although
> I'm not sure if they're bug or just not coded
> in that way.
>
> In Civ II you can turn on to see the 'strongest'
> unit on top of a city - is it possible to do
> this in freeciv?  I checked the client options
> but didn't see it.

This does not exist in freeciv; you can make a
new wishlist ticket for it (or a post in the
wishlist forum) and someone might eventually
get to implementing it (it would not be very
hard I think).

By the way, is this supposed to show the strongest
unit in every city (e.g. enemy cities)? Or just
the cities that you can seen inside?


> Also, if you only log on once a day to check
> progress you don't see the message history -
> therefore, if other players are doing important
> things, you don't find out - you also don't even
> find out what's happening in your own kingdom
> for the first turn.

This sounds like you are playing longturn. ;)

Anyway, I previously implemented offline events
for that flavour of freeciv to solve the exact
problem that you have outlined. You can find the
patch in the longturn bug tracker:
http://mantis.pagema.net/view.php?id=999

Although if I were to port it to 2.2 (since it is
likely that no new "big" features will be added to
the 2.1 series, just bug fixes) I would modify it
to also store events you receive while connected
(currently it only stores and resends events that
occured while you were not connected), so that it
is generalized to a kind of "event history".

If you would like this feature, start a new ticket
and I'll see what I can do.


----------------------------------------------------------------------
カキコの上で返事しないでください。

diff --git a/common/city.c b/common/city.c
index 5762b05..2e47924 100644
--- a/common/city.c
+++ b/common/city.c
@@ -1383,6 +1383,12 @@ int city_turns_to_build(const struct city *pcity,
       city_change_production_penalty(pcity, target) : 0;
   int cost = universal_build_shield_cost(&target);
 
+  if (target.kind == VUT_IMPROVEMENT
+      && is_great_wonder(target.value.building)
+      && great_wonder_was_built(target.value.building)) {
+    return FC_INFINITY;
+  }
+
   if (include_shield_stock && (city_shield_stock >= cost)) {
     return 1;
   } else if (city_shield_surplus > 0) {
diff --git a/common/city.c b/common/city.c
index 435bd78..9ced19c 100644
--- a/common/city.c
+++ b/common/city.c
@@ -1296,6 +1296,11 @@ int city_turns_to_build(const struct city *pcity,
 	      ? unit_build_shield_cost(utype_by_number(target.value))
 	      : impr_build_shield_cost(target.value));
 
+  if (!target.is_unit && is_great_wonder(target.value)
+      && great_wonder_was_built(target.value)) {
+    return FC_INFINITY;
+  }
+
   if (include_shield_stock && (city_shield_stock >= cost)) {
     return 1;
   } else if (city_shield_surplus > 0) {
_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to