? diff ? test.c Index: client/packhand.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/packhand.c,v retrieving revision 1.216 diff -u -r1.216 packhand.c --- client/packhand.c 2002/02/16 17:44:42 1.216 +++ client/packhand.c 2002/02/18 14:16:53 @@ -1231,7 +1231,7 @@ pplayer->is_connected=pinfo->is_connected; - pplayer->ai.is_barbarian=pinfo->is_barbarian; + pplayer->ai.barbarian_type = pinfo->barbarian_type; pplayer->revolution=pinfo->revolution; if(pplayer->ai.control!=pinfo->ai) { pplayer->ai.control=pinfo->ai; Index: common/packets.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/common/packets.c,v retrieving revision 1.181 diff -u -r1.181 packets.c --- common/packets.c 2002/02/16 17:44:43 1.181 +++ common/packets.c 2002/02/18 14:16:57 @@ -1796,7 +1796,7 @@ cptr=put_uint8(cptr, pinfo->revolution); cptr=put_uint8(cptr, pinfo->tech_goal); cptr=put_uint8(cptr, pinfo->ai?1:0); - cptr=put_uint8(cptr, pinfo->is_barbarian); + cptr=put_uint8(cptr, pinfo->barbarian_type); for (i = 0; i < MAX_NUM_WORKLISTS; i++) { cptr = put_worklist(pc, cptr, &pinfo->worklists[i], TRUE); @@ -1858,7 +1858,7 @@ iget_uint8(&iter, &pinfo->revolution); iget_uint8(&iter, &pinfo->tech_goal); iget_uint8(&iter, &pinfo->ai); - iget_uint8(&iter, &pinfo->is_barbarian); + iget_uint8(&iter, &pinfo->barbarian_type); for (i = 0; i < MAX_NUM_WORKLISTS; i++) { iget_worklist(pc, &iter, &pinfo->worklists[i]); Index: common/packets.h =================================================================== RCS file: /home/freeciv/CVS/freeciv/common/packets.h,v retrieving revision 1.104 diff -u -r1.104 packets.h --- common/packets.h 2002/02/16 17:44:44 1.104 +++ common/packets.h 2002/02/18 14:16:58 @@ -477,7 +477,7 @@ bool is_connected; int revolution; bool ai; - bool is_barbarian; + int barbarian_type; struct worklist worklists[MAX_NUM_WORKLISTS]; unsigned int gives_shared_vision; }; Index: common/player.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/common/player.c,v retrieving revision 1.82 diff -u -r1.82 player.c --- common/player.c 2002/02/16 17:05:08 1.82 +++ common/player.c 2002/02/18 14:16:58 @@ -90,7 +90,7 @@ plr->ai.skill_level = 0; plr->ai.fuzzy = 0; plr->ai.expand = 100; - plr->ai.is_barbarian = FALSE; + plr->ai.barbarian_type = NOT_A_BARBARIAN; plr->future_tech=0; plr->economic.tax=PLAYER_DEFAULT_TAX_RATE; plr->economic.science=PLAYER_DEFAULT_SCIENCE_RATE; @@ -580,5 +580,5 @@ **************************************************************************/ bool is_barbarian(const struct player *pplayer) { - return (pplayer->ai.is_barbarian > 0); + return pplayer->ai.barbarian_type != NOT_A_BARBARIAN; } Index: common/player.h =================================================================== RCS file: /home/freeciv/CVS/freeciv/common/player.h,v retrieving revision 1.71 diff -u -r1.71 player.h --- common/player.h 2002/02/14 15:17:18 1.71 +++ common/player.h 2002/02/18 14:16:59 @@ -28,6 +28,15 @@ #define PLAYER_DEFAULT_SCIENCE_RATE 100 #define PLAYER_DEFAULT_LUXURY_RATE 0 +/* + * pplayer->ai.barbarian_type uses this enum. Note that the values + * have to stay since they are used in savegames. + */ +enum barbarian_type { + NOT_A_BARBARIAN = 0, + LAND_BARBARIAN = 1, + SEA_BARBARIAN = 2 +}; enum handicap_type { H_NONE=0, /* no handicaps */ @@ -111,7 +120,7 @@ int fuzzy; /* chance in 1000 to mis-decide */ int expand; /* percentage factor to value new cities */ int warmth; /* threat of global warming */ - int is_barbarian; + enum barbarian_type barbarian_type; }; /* Diplomatic states (how one player views another). Index: server/barbarian.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/barbarian.c,v retrieving revision 1.47 diff -u -r1.47 barbarian.c --- server/barbarian.c 2002/02/16 17:28:16 1.47 +++ server/barbarian.c 2002/02/18 14:16:59 @@ -62,12 +62,12 @@ bool is_land_barbarian(struct player *pplayer) { - return (pplayer->ai.is_barbarian == LAND_BARBARIAN); + return (pplayer->ai.barbarian_type == LAND_BARBARIAN); } bool is_sea_barbarian(struct player *pplayer) { - return (pplayer->ai.is_barbarian == SEA_BARBARIAN); + return (pplayer->ai.barbarian_type == SEA_BARBARIAN); } /************************************************************************** @@ -128,9 +128,9 @@ barbarians->ai.control = TRUE; if( land ) - barbarians->ai.is_barbarian = LAND_BARBARIAN; + barbarians->ai.barbarian_type = LAND_BARBARIAN; else - barbarians->ai.is_barbarian = SEA_BARBARIAN; + barbarians->ai.barbarian_type = SEA_BARBARIAN; set_ai_level_directer(barbarians, game.skill_level); init_tech(barbarians, game.tech); Index: server/barbarian.h =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/barbarian.h,v retrieving revision 1.5 diff -u -r1.5 barbarian.h --- server/barbarian.h 2002/02/14 15:17:24 1.5 +++ server/barbarian.h 2002/02/18 14:16:59 @@ -25,9 +25,6 @@ #define UPRISE_CIV_MORE 30 #define UPRISE_CIV_MOST 50 -#define LAND_BARBARIAN 1 -#define SEA_BARBARIAN 2 - #define BARBARIAN_LIFE 5 #define MAP_FACTOR 2000 /* adjust this to get a good uprising frequency */ Index: server/plrhand.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/plrhand.c,v retrieving revision 1.215 diff -u -r1.215 plrhand.c --- server/plrhand.c 2002/02/14 15:17:35 1.215 +++ server/plrhand.c 2002/02/18 14:17:01 @@ -1088,7 +1088,7 @@ packet->is_alive=plr->is_alive; packet->is_connected=plr->is_connected; packet->ai=plr->ai.control; - packet->is_barbarian=plr->ai.is_barbarian; + packet->barbarian_type = plr->ai.barbarian_type; packet->reputation=plr->reputation; packet->turn_done=plr->turn_done; Index: server/sanitycheck.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/sanitycheck.c,v retrieving revision 1.18 diff -u -r1.18 sanitycheck.c --- server/sanitycheck.c 2002/02/12 08:42:27 1.18 +++ server/sanitycheck.c 2002/02/18 14:17:01 @@ -78,8 +78,9 @@ { int nbarbs = 0; players_iterate(pplayer) { - if (pplayer->ai.is_barbarian) + if (is_barbarian(pplayer)) { nbarbs++; + } } players_iterate_end; assert(nbarbs == game.nbarbarians); Index: server/savegame.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/savegame.c,v retrieving revision 1.55 diff -u -r1.55 savegame.c --- server/savegame.c 2002/02/11 13:55:52 1.55 +++ server/savegame.c 2002/02/18 14:17:03 @@ -573,7 +573,7 @@ server_player_init(plr, TRUE); - plr->ai.is_barbarian = secfile_lookup_int_default(file, 0, "player%d.ai.is_barbarian", + plr->ai.barbarian_type = secfile_lookup_int_default(file, 0, "player%d.ai.is_barbarian", plrno); if (is_barbarian(plr)) game.nbarbarians++; @@ -581,7 +581,7 @@ sz_strlcpy(plr->username, secfile_lookup_str_default(file, "", "player%d.username", plrno)); plr->nation=secfile_lookup_int(file, "player%d.race", plrno); - if (plr->ai.is_barbarian) { + if (is_barbarian(plr)) { plr->nation=game.nation_count-1; } plr->government=secfile_lookup_int(file, "player%d.government", plrno); @@ -1261,7 +1261,7 @@ secfile_insert_int(file, plr->ai.tech_goal, "player%d.ai.tech_goal", plrno); secfile_insert_int(file, plr->ai.skill_level, "player%d.ai.skill_level", plrno); - secfile_insert_int(file, plr->ai.is_barbarian, "player%d.ai.is_barbarian", plrno); + secfile_insert_int(file, plr->ai.barbarian_type, "player%d.ai.is_barbarian", plrno); secfile_insert_int(file, plr->economic.gold, "player%d.gold", plrno); secfile_insert_int(file, plr->economic.tax, "player%d.tax", plrno); secfile_insert_int(file, plr->economic.science, "player%d.science", plrno);