[Freeciv-Dev] Re: (PR#7211) units can't be upgraded
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
<URL: http://rt.freeciv.org/Ticket/Display.html?id=7211 >
Jason Short wrote:
> <URL: http://rt.freeciv.org/Ticket/Display.html?id=7211 >
>
> Genevieve Gracian wrote:
>
>><URL: http://rt.freeciv.org/Ticket/Display.html?id=7211 >
>>
>>Hello,
>>
>>On recent cvs head version (less than 1 week), units can't be upgraded :
>>
>>- units in cities are too 'expensive',
>>- leonardo crashes the server.
>
>
> My patch was incredibly buggy. I'm not sure how it happened; I clearly
> remember testing it. I think I just bungled this patch altogther - at
> one point it was lost and I had to rewrite it...
This patch removes the unnecessary freelog.
jason
Index: client/gui-gtk-2.0/citydlg.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-gtk-2.0/citydlg.c,v
retrieving revision 1.68
diff -u -r1.68 citydlg.c
--- client/gui-gtk-2.0/citydlg.c 2004/01/06 08:11:34 1.68
+++ client/gui-gtk-2.0/citydlg.c 2004/01/07 23:16:01
@@ -2215,7 +2215,7 @@
return;
}
- if (get_unit_upgrade_info(buf, sizeof(buf), punit) == UR_OK) {
+ if (get_unit_upgrade_info(buf, sizeof(buf), punit) != UR_OK) {
shell = gtk_message_dialog_new(NULL, 0,
GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, buf);
gtk_window_set_title(GTK_WINDOW(shell), _("Upgrade Unit!"));
Index: common/unit.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/common/unit.c,v
retrieving revision 1.191
diff -u -r1.191 unit.c
--- common/unit.c 2004/01/06 08:11:34 1.191
+++ common/unit.c 2004/01/07 23:16:01
@@ -1552,7 +1552,7 @@
if (!is_free) {
cost = unit_upgrade_price(pplayer, punit->type, to_unittype);
- if (!pplayer->economic.gold < cost) {
+ if (pplayer->economic.gold < cost) {
return UR_NO_MONEY;
}
@@ -1584,21 +1584,21 @@
enum unit_upgrade_result get_unit_upgrade_info(char *buf, size_t bufsz,
struct unit *punit)
{
+ struct player *pplayer = unit_owner(punit);
enum unit_upgrade_result result = test_unit_upgrade(punit, FALSE);
int upgrade_cost;
Unit_Type_id from_unittype = punit->type;
- Unit_Type_id to_unittype = can_upgrade_unittype(game.player_ptr,
+ Unit_Type_id to_unittype = can_upgrade_unittype(pplayer,
punit->type);
switch (result) {
case UR_OK:
- upgrade_cost = unit_upgrade_price(game.player_ptr,
- from_unittype, to_unittype);
+ upgrade_cost = unit_upgrade_price(pplayer, from_unittype, to_unittype);
/* This message is targeted toward the GUI callers. */
my_snprintf(buf, bufsz, _("Upgrade %s to %s for %d gold?\n"
"Treasury contains %d gold."),
unit_types[from_unittype].name, unit_types[to_unittype].name,
- upgrade_cost, game.player_ptr->economic.gold);
+ upgrade_cost, pplayer->economic.gold);
break;
case UR_NO_UNITTYPE:
my_snprintf(buf, bufsz,
@@ -1606,13 +1606,12 @@
unit_types[from_unittype].name);
break;
case UR_NO_MONEY:
- upgrade_cost = unit_upgrade_price(game.player_ptr,
- from_unittype, to_unittype);
+ upgrade_cost = unit_upgrade_price(pplayer, from_unittype, to_unittype);
my_snprintf(buf, bufsz,
_("Upgrading %s to %s costs %d gold.\n"
"Treasury contains %d gold."),
unit_types[from_unittype].name, unit_types[to_unittype].name,
- upgrade_cost, game.player_ptr->economic.gold);
+ upgrade_cost, pplayer->economic.gold);
break;
case UR_NOT_IN_CITY:
case UR_NOT_CITY_OWNER:
|
|