Index: server/srv_main.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/srv_main.c,v retrieving revision 1.84 diff -u -r1.84 srv_main.c --- server/srv_main.c 2002/06/12 07:24:49 1.84 +++ server/srv_main.c 2002/06/27 12:34:27 @@ -1966,6 +1966,54 @@ send_game_state(&game.est_connections, CLIENT_GAME_RUNNING_STATE); +#define T(x) if(a->x!=b->x) { \ + freelog(LOG_NORMAL, " %20s: %3d -- > %3d %+3d%%", \ + #x, a->x,b->x, b->x?(a->x?(((b->x-a->x)*100)/a->x):9999):-9999); \ + } + + { + unit_type_iterate(a_id) { + struct unit_type *a=get_unit_type(a_id); + struct unit_type *b; + int f; + +static const char *flag_names[] = { + "TradeRoute" ,"HelpWonder", "Missile", "IgZOC", "NonMil", "IgTer", + "Carrier", "OneAttack", "Pikemen", "Horse", "IgWall", "FieldUnit", + "AEGIS", "Fighter", "Marines", "Partial_Invis", "Settlers", "Diplomat", + "Trireme", "Nuclear", "Spy", "Transform", "Paratroopers", + "Airbase", "Cities", "IgTired", "Missile_Carrier", "No_Land_Attack", + "AddToCity", "Fanatic" +}; + + if(!unit_type_exists(a->obsoleted_by)) { + continue; + } + b=get_unit_type(a->obsoleted_by); + freelog(LOG_NORMAL, "%s -> %s",a->name, b->name); + T(build_cost); + T(attack_strength); + T(defense_strength); + T(move_rate); + T(vision_range); + T(transport_capacity); + T(hp); + T(firepower); + T(fuel); + for(f=0;fflags,f)&& !TEST_BIT(b->flags,f)) { + freelog(LOG_NORMAL, "%22s: -%s","flags",flag_names[f]); + } + if(!TEST_BIT(a->flags,f)&& TEST_BIT(b->flags,f)) { + freelog(LOG_NORMAL, "%22s: +%s","flags",flag_names[f]); + } + + } + freelog(LOG_NORMAL, "%s",""); + } unit_type_iterate_end; + exit(0); + } + /*** Where the action is. ***/ main_loop();