? diff ? capstr1.diff ? special_and1.diff Index: ai/aiunit.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/ai/aiunit.c,v retrieving revision 1.166 diff -u -r1.166 aiunit.c --- ai/aiunit.c 2002/02/11 13:55:44 1.166 +++ ai/aiunit.c 2002/02/11 17:35:12 @@ -318,7 +318,7 @@ else unknown += 9 * (threshold - warmap.cost[x1][y1]); if ((unknown > most_unknown || (unknown == most_unknown && myrand(2))) - && !(is_barbarian(pplayer) && ptile->special & S_HUT)) { + && !(is_barbarian(pplayer) && BOOL_VAL(ptile->special & S_HUT))) { best_x = x1; best_y = y1; most_unknown = unknown; Index: client/tilespec.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/tilespec.c,v retrieving revision 1.66 diff -u -r1.66 tilespec.c --- client/tilespec.c 2002/02/11 13:55:45 1.66 +++ client/tilespec.c 2002/02/11 17:35:13 @@ -1132,7 +1132,7 @@ /* painted via coasts. */ for (dir = 0; dir < 4; dir++) { - if (tspecial_near[DIR4_TO_DIR8[dir]] & S_RIVER) + if (BOOL_VAL(tspecial_near[DIR4_TO_DIR8[dir]] & S_RIVER)) *sprs++ = sprites.tx.river_outlet[dir]; } } else { @@ -1167,21 +1167,21 @@ break; } - if (tspecial & S_IRRIGATION && !pcity && draw_irrigation) { - if (tspecial & S_FARMLAND) + if (BOOL_VAL(tspecial & S_IRRIGATION) && !pcity && draw_irrigation) { + if (BOOL_VAL(tspecial & S_FARMLAND)) *sprs++ = sprites.tx.farmland; else *sprs++ = sprites.tx.irrigation; } - if (tspecial & S_RIVER) { - tileno = INDEX_NSEW(tspecial_near[DIR8_NORTH] & S_RIVER + if (BOOL_VAL(tspecial & S_RIVER)) { + tileno = INDEX_NSEW(BOOL_VAL(tspecial_near[DIR8_NORTH] & S_RIVER) || ttype_near[DIR8_NORTH] == T_OCEAN, - tspecial_near[DIR8_SOUTH] & S_RIVER + BOOL_VAL(tspecial_near[DIR8_SOUTH] & S_RIVER) || ttype_near[DIR8_SOUTH] == T_OCEAN, - tspecial_near[DIR8_EAST] & S_RIVER + BOOL_VAL(tspecial_near[DIR8_EAST] & S_RIVER) || ttype_near[DIR8_EAST] == T_OCEAN, - tspecial_near[DIR8_WEST] & S_RIVER + BOOL_VAL(tspecial_near[DIR8_WEST] & S_RIVER) || ttype_near[DIR8_WEST] == T_OCEAN); *sprs++ = sprites.tx.spec_river[tileno]; } @@ -1189,23 +1189,23 @@ } else { *solid_bg = 1; - if (tspecial & S_IRRIGATION && !pcity && draw_irrigation) { - if (tspecial & S_FARMLAND) + if (BOOL_VAL(tspecial & S_IRRIGATION) && !pcity && draw_irrigation) { + if (BOOL_VAL(tspecial & S_FARMLAND)) *sprs++ = sprites.tx.farmland; else *sprs++ = sprites.tx.irrigation; } } - if (tspecial & S_MINE && draw_mines) { + if (BOOL_VAL(tspecial & S_MINE) && draw_mines) { /* We do not have an oil tower in isometric view yet... */ *sprs++ = sprites.tx.mine; } if (draw_specials) { - if (tspecial & S_SPECIAL_1) + if (BOOL_VAL(tspecial & S_SPECIAL_1)) *sprs++ = tile_types[ttype].special[0].sprite; - else if (tspecial & S_SPECIAL_2) + else if (BOOL_VAL(tspecial & S_SPECIAL_2)) *sprs++ = tile_types[ttype].special[1].sprite; } @@ -1233,14 +1233,14 @@ } } else { if (draw_roads_rails) { - if (tspecial & S_RAILROAD) { + if (BOOL_VAL(tspecial & S_RAILROAD)) { int found = 0; for (dir = 0; dir < 8; dir++) { - if (tspecial_near[dir] & S_RAILROAD) { + if (BOOL_VAL(tspecial_near[dir] & S_RAILROAD)) { *sprs++ = sprites.rail.dir[dir]; found = 1; - } else if (tspecial_near[dir] & S_ROAD) { + } else if (BOOL_VAL(tspecial_near[dir] & S_ROAD)) { *sprs++ = sprites.road.dir[dir]; found = 1; } @@ -1249,11 +1249,11 @@ if (!found && !pcity) *sprs++ = sprites.rail.isolated; - } else if (tspecial & S_ROAD) { + } else if (BOOL_VAL(tspecial & S_ROAD)) { int found = 0; for (dir = 0; dir < 8; dir++) { - if (tspecial_near[dir] & S_ROAD) { + if (BOOL_VAL(tspecial_near[dir] & S_ROAD)) { *sprs++ = sprites.road.dir[dir]; found = 1; } @@ -1264,12 +1264,12 @@ } } - if (tspecial & S_HUT && draw_specials) + if (BOOL_VAL(tspecial & S_HUT) && draw_specials) *sprs++ = sprites.tx.village; /* These are drawn later in isometric view (on top of city.) - if (tspecial & S_POLLUTION) *sprs++ = sprites.tx.pollution; - if (tspecial & S_FALLOUT) *sprs++ = sprites.tx.fallout; + if (BOOL_VAL(tspecial & S_POLLUTION)) *sprs++ = sprites.tx.pollution; + if (BOOL_VAL(tspecial & S_FALLOUT)) *sprs++ = sprites.tx.fallout; */ } @@ -1414,31 +1414,31 @@ *sprs++ = sprites.tx.coast_cape[tileno]; for (dir = 0; dir < 4; dir++) { - if (tspecial_near[DIR4_TO_DIR8[dir]] & S_RIVER || + if (BOOL_VAL(tspecial_near[DIR4_TO_DIR8[dir]] & S_RIVER) || ttype_near[DIR4_TO_DIR8[dir]] == T_RIVER) { *sprs++ = sprites.tx.river_outlet[dir]; } } } - if (tspecial&S_RIVER && draw_terrain) { - tileno = INDEX_NSEW(tspecial_near[DIR8_NORTH] & S_RIVER + if (BOOL_VAL(tspecial & S_RIVER) && draw_terrain) { + tileno = INDEX_NSEW(BOOL_VAL(tspecial_near[DIR8_NORTH] & S_RIVER) || ttype_near[DIR8_NORTH] == T_OCEAN, - tspecial_near[DIR8_SOUTH] & S_RIVER + BOOL_VAL(tspecial_near[DIR8_SOUTH] & S_RIVER) || ttype_near[DIR8_SOUTH] == T_OCEAN, - tspecial_near[DIR8_EAST] & S_RIVER + BOOL_VAL(tspecial_near[DIR8_EAST] & S_RIVER) || ttype_near[DIR8_EAST] == T_OCEAN, - tspecial_near[DIR8_WEST] & S_RIVER + BOOL_VAL(tspecial_near[DIR8_WEST] & S_RIVER) || ttype_near[DIR8_WEST] == T_OCEAN); *sprs++=sprites.tx.spec_river[tileno]; } - if(tspecial & S_IRRIGATION && draw_irrigation) { - if(tspecial & S_FARMLAND) *sprs++=sprites.tx.farmland; + if(BOOL_VAL(tspecial & S_IRRIGATION) && draw_irrigation) { + if(BOOL_VAL(tspecial & S_FARMLAND)) *sprs++=sprites.tx.farmland; else *sprs++=sprites.tx.irrigation; } - if(((tspecial & S_ROAD) || (tspecial & S_RAILROAD)) && draw_roads_rails) { + if((BOOL_VAL(tspecial & S_ROAD) || BOOL_VAL(tspecial & S_RAILROAD)) && draw_roads_rails) { int n, s, e, w; n = BOOL_VAL(tspecial_near[DIR8_NORTH] & S_RAILROAD); @@ -1469,10 +1469,10 @@ road_semi_count = n + s + e + w; road_semi_tileno = INDEX_NSEW(n,s,e,w); - if(tspecial & S_RAILROAD) { + if(BOOL_VAL(tspecial & S_RAILROAD)) { road_card_tileno&=~rail_card_tileno; road_semi_tileno&=~rail_semi_tileno; - } else if(tspecial & S_ROAD) { + } else if(BOOL_VAL(tspecial & S_ROAD)) { rail_card_tileno&=~road_card_tileno; rail_semi_tileno&=~road_semi_tileno; } @@ -1511,13 +1511,13 @@ } if(draw_specials) { - if(tspecial & S_SPECIAL_1) + if (BOOL_VAL(tspecial & S_SPECIAL_1)) *sprs++ = tile_types[ttype].special[0].sprite; - else if(tspecial & S_SPECIAL_2) + else if (BOOL_VAL(tspecial & S_SPECIAL_2)) *sprs++ = tile_types[ttype].special[1].sprite; } - if(tspecial & S_MINE && draw_mines) { + if(BOOL_VAL(tspecial & S_MINE) && draw_mines) { if(ttype==T_HILLS || ttype==T_MOUNTAINS) *sprs++ = sprites.tx.mine; else /* desert */ @@ -1525,14 +1525,14 @@ } if (draw_roads_rails) { - if (tspecial & S_RAILROAD) { + if (BOOL_VAL(tspecial & S_RAILROAD)) { int adjacent = rail_card_tileno; if (draw_diagonal_roads) adjacent |= rail_semi_tileno; if (!adjacent) *sprs++ = sprites.rail.isolated; } - else if (tspecial & S_ROAD) { + else if (BOOL_VAL(tspecial & S_ROAD)) { int adjacent = (rail_card_tileno | road_card_tileno); if (draw_diagonal_roads) adjacent |= (rail_semi_tileno | road_semi_tileno); @@ -1541,11 +1541,11 @@ } } - if(tspecial & S_HUT && draw_specials) *sprs++ = sprites.tx.village; - if(tspecial & S_FORTRESS && draw_fortress_airbase) *sprs++ = sprites.tx.fortress; - if(tspecial & S_AIRBASE && draw_fortress_airbase) *sprs++ = sprites.tx.airbase; - if(tspecial & S_POLLUTION && draw_pollution) *sprs++ = sprites.tx.pollution; - if(tspecial & S_FALLOUT && draw_pollution) *sprs++ = sprites.tx.fallout; + if(BOOL_VAL(tspecial & S_HUT) && draw_specials) *sprs++ = sprites.tx.village; + if(BOOL_VAL(tspecial & S_FORTRESS) && draw_fortress_airbase) *sprs++ = sprites.tx.fortress; + if(BOOL_VAL(tspecial & S_AIRBASE) && draw_fortress_airbase) *sprs++ = sprites.tx.airbase; + if(BOOL_VAL(tspecial & S_POLLUTION) && draw_pollution) *sprs++ = sprites.tx.pollution; + if(BOOL_VAL(tspecial & S_FALLOUT) && draw_pollution) *sprs++ = sprites.tx.fallout; if(tile_get_known(abs_x0,abs_y0) == TILE_KNOWN_FOGGED && draw_fog_of_war) *sprs++ = sprites.tx.fog; Index: client/gui-gtk/mapctrl.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/gui-gtk/mapctrl.c,v retrieving revision 1.56 diff -u -r1.56 mapctrl.c --- client/gui-gtk/mapctrl.c 2002/02/11 10:37:53 1.56 +++ client/gui-gtk/mapctrl.c 2002/02/11 17:35:14 @@ -127,7 +127,7 @@ NULL); count++; - if(ptile->special&S_HUT) { + if (BOOL_VAL(ptile->special & S_HUT)) { gtk_widget_new(GTK_TYPE_LABEL, "GtkWidget::parent", b, "GtkLabel::label", _("Minor Tribe Village"), NULL); Index: client/gui-gtk/mapview.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/gui-gtk/mapview.c,v retrieving revision 1.116 diff -u -r1.116 mapview.c --- client/gui-gtk/mapview.c 2002/02/11 10:37:54 1.116 +++ client/gui-gtk/mapview.c 2002/02/11 17:35:15 @@ -2239,19 +2239,19 @@ offset_x, offset_y_unit, width, height_unit, fog); } - if (special & S_AIRBASE && draw_fortress_airbase) + if (BOOL_VAL(special & S_AIRBASE) && draw_fortress_airbase) pixmap_put_overlay_tile_draw(pm, canvas_x, canvas_y-NORMAL_TILE_HEIGHT/2, sprites.tx.airbase, offset_x, offset_y_unit, width, height_unit, fog); - if (special & S_FALLOUT && draw_pollution) + if (BOOL_VAL(special & S_FALLOUT) && draw_pollution) pixmap_put_overlay_tile_draw(pm, canvas_x, canvas_y, sprites.tx.fallout, offset_x, offset_y, width, height, fog); - if (special & S_POLLUTION && draw_pollution) + if (BOOL_VAL(special & S_POLLUTION) && draw_pollution) pixmap_put_overlay_tile_draw(pm, canvas_x, canvas_y, sprites.tx.pollution, @@ -2287,7 +2287,7 @@ width, height_unit, fog); } - if (special & S_FORTRESS && draw_fortress_airbase) + if (BOOL_VAL(special & S_FORTRESS) && draw_fortress_airbase) pixmap_put_overlay_tile_draw(pm, canvas_x, canvas_y-NORMAL_TILE_HEIGHT/2, sprites.tx.fortress, Index: client/gui-mui/graphics.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/gui-mui/graphics.c,v retrieving revision 1.19 diff -u -r1.19 graphics.c --- client/gui-mui/graphics.c 2002/01/09 18:44:47 1.19 +++ client/gui-mui/graphics.c 2002/02/11 17:35:16 @@ -1381,19 +1381,19 @@ offset_x, offset_y_unit, width, height_unit, fog); } - if (special & S_AIRBASE && draw_fortress_airbase) + if (BOOL_VAL(special & S_AIRBASE) && draw_fortress_airbase) put_overlay_tile_draw(rp, canvas_x, canvas_y-NORMAL_TILE_HEIGHT/2, sprites.tx.airbase, offset_x, offset_y_unit, width, height_unit, fog); - if (special & S_FALLOUT && draw_pollution) + if (BOOL_VAL(special & S_FALLOUT) && draw_pollution) put_overlay_tile_draw(rp, canvas_x, canvas_y, sprites.tx.fallout, offset_x, offset_y, width, height, fog); - if (special & S_POLLUTION && draw_pollution) + if (BOOL_VAL(special & S_POLLUTION) && draw_pollution) put_overlay_tile_draw(rp, canvas_x, canvas_y, sprites.tx.pollution, @@ -1429,7 +1429,7 @@ width, height_unit, fog); } - if (special & S_FORTRESS && draw_fortress_airbase) + if (BOOL_VAL(special & S_FORTRESS) && draw_fortress_airbase) put_overlay_tile_draw(rp, canvas_x, canvas_y-NORMAL_TILE_HEIGHT/2, sprites.tx.fortress, Index: client/gui-mui/mapclass.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/gui-mui/mapclass.c,v retrieving revision 1.75 diff -u -r1.75 mapclass.c --- client/gui-mui/mapclass.c 2002/02/11 13:55:47 1.75 +++ client/gui-mui/mapclass.c 2002/02/11 17:35:19 @@ -101,7 +101,7 @@ text_obj = TextObject, MUIA_Text_Contents, s, End; DoMethod(group, OM_ADDMEMBER, text_obj); - if (ptile->special & S_HUT) + if (BOOL_VAL(ptile->special & S_HUT)) { text_obj = TextObject, MUIA_Text_Contents, _("Minor Tribe Village"), End; DoMethod(group, OM_ADDMEMBER, text_obj); Index: client/gui-win32/mapview.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/gui-win32/mapview.c,v retrieving revision 1.19 diff -u -r1.19 mapview.c --- client/gui-win32/mapview.c 2001/12/18 13:52:36 1.19 +++ client/gui-win32/mapview.c 2002/02/11 17:35:20 @@ -1878,19 +1878,19 @@ width, height_unit, fog); } - if (special & S_AIRBASE && draw_fortress_airbase) + if (BOOL_VAL(special & S_AIRBASE) && draw_fortress_airbase) pixmap_put_overlay_tile_draw(hdc, canvas_x, canvas_y-NORMAL_TILE_HEIGHT/2, sprites.tx.airbase, offset_x, offset_y_unit, width, height_unit, fog); - if (special & S_FALLOUT && draw_pollution) + if (BOOL_VAL(special & S_FALLOUT) && draw_pollution) pixmap_put_overlay_tile_draw(hdc, canvas_x, canvas_y, sprites.tx.fallout, offset_x, offset_y, width, height, fog); - if (special & S_POLLUTION && draw_pollution) + if (BOOL_VAL(special & S_POLLUTION) && draw_pollution) pixmap_put_overlay_tile_draw(hdc, canvas_x, canvas_y, sprites.tx.pollution, @@ -1927,7 +1927,7 @@ width, height_unit, fog); } - if (special & S_FORTRESS && draw_fortress_airbase) + if (BOOL_VAL(special & S_FORTRESS) && draw_fortress_airbase) pixmap_put_overlay_tile_draw(hdc, canvas_x, canvas_y-NORMAL_TILE_HEIGHT/2, sprites.tx.fortress, Index: client/gui-xaw/mapctrl.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/gui-xaw/mapctrl.c,v retrieving revision 1.49 diff -u -r1.49 mapctrl.c --- client/gui-xaw/mapctrl.c 2002/02/11 10:37:59 1.49 +++ client/gui-xaw/mapctrl.c 2002/02/11 17:35:21 @@ -124,7 +124,7 @@ map_get_tile_fpt_text(xtile, ytile)); XtCreateManagedWidget(s, smeBSBObjectClass, p, NULL, 0); - if(ptile->special&S_HUT) { + if (BOOL_VAL(ptile->special & S_HUT)) { XtCreateManagedWidget(_("Minor Tribe Village"), smeBSBObjectClass, p, NULL, 0); } Index: common/map.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/common/map.c,v retrieving revision 1.109 diff -u -r1.109 map.c --- common/map.c 2002/02/11 13:55:49 1.109 +++ common/map.c 2002/02/11 17:35:27 @@ -93,13 +93,13 @@ int first; sz_strlcpy(s, tile_types[ptile->terrain].terrain_name); - if(ptile->special&S_RIVER) { + if (BOOL_VAL(ptile->special & S_RIVER)) { sz_strlcat(s, "/"); sz_strlcat(s, _(get_special_name(S_RIVER))); } first = TRUE; - if (ptile->special & S_SPECIAL_1) { + if (BOOL_VAL(ptile->special & S_SPECIAL_1)) { if (first) { first = FALSE; sz_strlcat(s, " ("); @@ -108,7 +108,7 @@ } sz_strlcat(s, tile_types[ptile->terrain].special_1_name); } - if (ptile->special & S_SPECIAL_2) { + if (BOOL_VAL(ptile->special & S_SPECIAL_2)) { if (first) { first = FALSE; sz_strlcat(s, " ("); @@ -122,7 +122,7 @@ } first = TRUE; - if (ptile->special & S_POLLUTION) { + if (BOOL_VAL(ptile->special & S_POLLUTION)) { if (first) { first = FALSE; sz_strlcat(s, " ["); @@ -131,7 +131,7 @@ } sz_strlcat(s, _(get_special_name(S_POLLUTION))); } - if (ptile->special & S_FALLOUT) { + if (BOOL_VAL(ptile->special & S_FALLOUT)) { if (first) { first = FALSE; sz_strlcat(s, " ["); @@ -554,9 +554,9 @@ ***************************************************************/ int get_tile_food_base(struct tile * ptile) { - if (ptile->special & S_SPECIAL_1) + if (BOOL_VAL(ptile->special & S_SPECIAL_1)) return tile_types[ptile->terrain].food_special_1; - else if (ptile->special & S_SPECIAL_2) + else if (BOOL_VAL(ptile->special & S_SPECIAL_2)) return tile_types[ptile->terrain].food_special_2; else return tile_types[ptile->terrain].food; @@ -567,9 +567,9 @@ ***************************************************************/ int get_tile_shield_base(struct tile * ptile) { - if (ptile->special & S_SPECIAL_1) + if (BOOL_VAL(ptile->special & S_SPECIAL_1)) return tile_types[ptile->terrain].shield_special_1; - else if(ptile->special&S_SPECIAL_2) + else if(BOOL_VAL(ptile->special&S_SPECIAL_2)) return tile_types[ptile->terrain].shield_special_2; else return tile_types[ptile->terrain].shield; @@ -580,9 +580,9 @@ ***************************************************************/ int get_tile_trade_base(struct tile * ptile) { - if (ptile->special & S_SPECIAL_1) + if (BOOL_VAL(ptile->special & S_SPECIAL_1)) return tile_types[ptile->terrain].trade_special_1; - else if (ptile->special & S_SPECIAL_2) + else if (BOOL_VAL(ptile->special & S_SPECIAL_2)) return tile_types[ptile->terrain].trade_special_2; else return tile_types[ptile->terrain].trade; @@ -675,16 +675,16 @@ ptile = map_get_tile(x, y); if (ptile->terrain == T_OCEAN || ptile->terrain == T_RIVER - || ptile->special & S_RIVER - || ptile->special & S_IRRIGATION) + || BOOL_VAL(ptile->special & S_RIVER) + || BOOL_VAL(ptile->special & S_IRRIGATION)) return 1; cartesian_adjacent_iterate(x, y, x1, y1) { ptile = map_get_tile(x1, y1); if (ptile->terrain == T_OCEAN || ptile->terrain == T_RIVER - || ptile->special & S_RIVER - || ptile->special & S_IRRIGATION) + || BOOL_VAL(ptile->special & S_RIVER) + || BOOL_VAL(ptile->special & S_IRRIGATION)) return 1; } cartesian_adjacent_iterate_end; @@ -967,16 +967,16 @@ if (punit && !is_ground_unit(punit)) return SINGLE_MOVE; - if( (t1->special&S_RAILROAD) && (t2->special&S_RAILROAD) ) + if (BOOL_VAL(t1->special & S_RAILROAD) && BOOL_VAL(t2->special & S_RAILROAD)) return MOVE_COST_RAIL; /* return (unit_move_rate(punit)/RAIL_MAX) */ if (punit && unit_flag(punit, F_IGTER)) return SINGLE_MOVE/3; - if( (t1->special&S_ROAD) && (t2->special&S_ROAD) ) + if (BOOL_VAL(t1->special & S_ROAD) && BOOL_VAL(t2->special & S_ROAD)) return MOVE_COST_ROAD; - if( ( (t1->terrain==T_RIVER) && (t2->terrain==T_RIVER) ) || - ( (t1->special&S_RIVER) && (t2->special&S_RIVER) ) ) { + if (((t1->terrain == T_RIVER) && (t2->terrain == T_RIVER)) || + (BOOL_VAL(t1->special & S_RIVER) && BOOL_VAL(t2->special & S_RIVER))) { cardinal_move = is_move_cardinal(x1, y1, x2, y2); switch (terrain_control.river_move_mode) { case RMV_NORMAL: Index: common/unit.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/common/unit.c,v retrieving revision 1.143 diff -u -r1.143 unit.c --- common/unit.c 2002/02/11 13:55:50 1.143 +++ common/unit.c 2002/02/11 17:35:37 @@ -564,7 +564,7 @@ return FALSE; ptile=map_get_tile(punit->x, punit->y); - if(ptile->special&S_AIRBASE) + if (BOOL_VAL(ptile->special & S_AIRBASE)) return TRUE; if(!(pcity = map_get_city(punit->x, punit->y))) @@ -628,17 +628,17 @@ return TRUE; case ACTIVITY_POLLUTION: - return unit_flag(punit, F_SETTLERS) && (ptile->special&S_POLLUTION); + return unit_flag(punit, F_SETTLERS) && BOOL_VAL(ptile->special & S_POLLUTION); case ACTIVITY_FALLOUT: - return unit_flag(punit, F_SETTLERS) && (ptile->special&S_FALLOUT); + return unit_flag(punit, F_SETTLERS) && BOOL_VAL(ptile->special & S_FALLOUT); case ACTIVITY_ROAD: return (terrain_control.may_road && unit_flag(punit, F_SETTLERS) && - !(ptile->special&S_ROAD) && type->road_time && - ((ptile->terrain!=T_RIVER && !(ptile->special&S_RIVER)) || - player_knows_techs_with_flag(pplayer, TF_BRIDGE))); + !BOOL_VAL(ptile->special & S_ROAD) && type->road_time && + ((ptile->terrain != T_RIVER && !BOOL_VAL(ptile->special & S_RIVER)) + || player_knows_techs_with_flag(pplayer, TF_BRIDGE))); case ACTIVITY_MINE: /* Don't allow it if someone else is irrigating this tile. @@ -646,7 +646,7 @@ if (terrain_control.may_mine && unit_flag(punit, F_SETTLERS) && ( (ptile->terrain==type->mining_result && - !(ptile->special&S_MINE)) || + !BOOL_VAL(ptile->special & S_MINE)) || (ptile->terrain!=type->mining_result && type->mining_result!=T_LAST && (ptile->terrain!=T_OCEAN || type->mining_result==T_OCEAN || @@ -667,8 +667,8 @@ * *Do* allow it if they're transforming - the irrigation may survive */ if (terrain_control.may_irrigate && unit_flag(punit, F_SETTLERS) && - (!(ptile->special&S_IRRIGATION) || - (!(ptile->special&S_FARMLAND) && + (!BOOL_VAL(ptile->special & S_IRRIGATION) || + (!BOOL_VAL(ptile->special & S_FARMLAND) && player_knows_techs_with_flag(pplayer, TF_FARMLAND))) && ( (ptile->terrain==type->irrigation_result && is_water_adjacent_to_tile(punit->x, punit->y)) || @@ -700,12 +700,12 @@ return (unit_flag(punit, F_SETTLERS) && !map_get_city(punit->x, punit->y) && player_knows_techs_with_flag(pplayer, TF_FORTRESS) && - !(ptile->special&S_FORTRESS) && ptile->terrain!=T_OCEAN); + !BOOL_VAL(ptile->special & S_FORTRESS) && ptile->terrain!=T_OCEAN); case ACTIVITY_AIRBASE: return (unit_flag(punit, F_AIRBASE) && player_knows_techs_with_flag(pplayer, TF_AIRBASE) && - !(ptile->special&S_AIRBASE) && ptile->terrain!=T_OCEAN); + !BOOL_VAL(ptile->special & S_AIRBASE) && ptile->terrain!=T_OCEAN); case ACTIVITY_SENTRY: return TRUE; @@ -714,12 +714,12 @@ /* if the tile has road, the terrain must be ok.. */ return (terrain_control.may_road && unit_flag(punit, F_SETTLERS) && - ((ptile->special&S_ROAD) || + (BOOL_VAL(ptile->special & S_ROAD) || (punit->connecting && (type->road_time && - ((ptile->terrain!=T_RIVER && !(ptile->special&S_RIVER)) + ((ptile->terrain!=T_RIVER && !BOOL_VAL(ptile->special & S_RIVER)) || player_knows_techs_with_flag(pplayer, TF_BRIDGE))))) && - !(ptile->special&S_RAILROAD) && + !BOOL_VAL(ptile->special & S_RAILROAD) && player_knows_techs_with_flag(pplayer, TF_RAILROAD)); case ACTIVITY_PILLAGE: Index: server/gotohand.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/gotohand.c,v retrieving revision 1.134 diff -u -r1.134 gotohand.c --- server/gotohand.c 2002/02/11 10:38:10 1.134 +++ server/gotohand.c 2002/02/11 17:35:44 @@ -1055,7 +1055,7 @@ if (num_of_allied_units == 0) { fitness[dir] = rating_of_unit; - } else if (pcity || ptile->special & S_FORTRESS) { + } else if (pcity || BOOL_VAL(ptile->special & S_FORTRESS)) { fitness[dir] = MAX(rating_of_unit, rating_of_ally); } else if (rating_of_unit <= rating_of_ally) { fitness[dir] = rating_of_ally * (num_of_allied_units / @@ -1074,7 +1074,7 @@ * In case we change directions next turn, roads and railroads are * nice. */ - if ((ptile->special & S_ROAD) || (ptile->special & S_RAILROAD)) { + if (BOOL_VAL(ptile->special & S_ROAD) || BOOL_VAL(ptile->special & S_RAILROAD)) { fitness[dir] += 10; } @@ -1456,7 +1456,7 @@ refuels[refuellist_size++] = prefuel; continue; } - if ((ptile = map_get_tile(x, y))->special & S_AIRBASE) { + if (BOOL_VAL((ptile = map_get_tile(x, y))->special & S_AIRBASE)) { if (is_non_allied_unit_tile(ptile, pplayer)) continue; prefuel = fc_malloc(sizeof(struct refuel)); Index: server/sanitycheck.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/sanitycheck.c,v retrieving revision 1.17 diff -u -r1.17 sanitycheck.c --- server/sanitycheck.c 2002/02/11 10:38:12 1.17 +++ server/sanitycheck.c 2002/02/11 17:35:53 @@ -35,16 +35,16 @@ int terrain = map_get_terrain(x, y); int special = map_get_special(x, y); - if (special & S_RAILROAD) + if (BOOL_VAL(special & S_RAILROAD)) assert(special & S_ROAD); - if (special & S_FARMLAND) + if (BOOL_VAL(special & S_FARMLAND)) assert(special & S_IRRIGATION); - if (special & S_SPECIAL_1) + if (BOOL_VAL(special & S_SPECIAL_1)) assert(!(special & S_SPECIAL_2)); - if (special & S_MINE) + if (BOOL_VAL(special & S_MINE)) assert(get_tile_type(terrain)->mining_result == terrain); - if (special & S_IRRIGATION) + if (BOOL_VAL(special & S_IRRIGATION)) assert(get_tile_type(terrain)->irrigation_result == terrain); assert(terrain >= T_ARCTIC && terrain < T_UNKNOWN); Index: server/settlers.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/settlers.c,v retrieving revision 1.120 diff -u -r1.120 settlers.c --- server/settlers.c 2002/02/11 13:55:53 1.120 +++ server/settlers.c 2002/02/11 17:35:55 @@ -225,7 +225,7 @@ food[i][j] += 2 * MORT; } if (ptype->irrigation_result == ptile->terrain && con2 == con) { - if (ptile->special & S_IRRIGATION || is_city_center(i, j)) { + if (BOOL_VAL(ptile->special & S_IRRIGATION) || is_city_center(i, j)) { irrig[i][j] = MORT * ptype->irrigation_food_incr; } else if (is_water_adjacent_to_tile(map_x, map_y) && @@ -243,13 +243,13 @@ term (after SEWER). These cities will all eventually have OFFSHORE, and I need to acknowledge that. I probably shouldn't treat it as free, but that's the easiest, and I doubt pathological behavior will result. -- Syela */ - if (ptile->special&S_MINE) + if (BOOL_VAL(ptile->special & S_MINE)) mine[i][j] = sh * ptype->mining_shield_incr; else if (ptile->terrain == T_HILLS && con2 == con) mine[i][j] = sh * ptype->mining_shield_incr - 300; /* KLUGE */ trade[i][j] = get_tile_trade_base(ptile) * t; if (ptype->road_trade_incr > 0) { - if (ptile->special & S_ROAD || is_city_center(i, j)) { + if (BOOL_VAL(ptile->special & S_ROAD) || is_city_center(i, j)) { road[i][j] = t * ptype->road_trade_incr; } else if (con2 == con) @@ -528,17 +528,17 @@ ptile->special = s; return(m); } else if((ptile->terrain==type->irrigation_result && - !(ptile->special&S_IRRIGATION) && - !(ptile->special&S_MINE) && !(ptile->city) && + !BOOL_VAL(ptile->special & S_IRRIGATION) && + !BOOL_VAL(ptile->special & S_MINE) && !(ptile->city) && (is_wet_or_is_wet_cardinal_around(pplayer, x, y)))) { map_set_special(x, y, S_IRRIGATION); m = city_tile_value(pcity, i, j, 0, 0); map_clear_special(x, y, S_IRRIGATION); return(m); } else if((ptile->terrain==type->irrigation_result && - (ptile->special&S_IRRIGATION) && !(ptile->special&S_FARMLAND) && + BOOL_VAL(ptile->special & S_IRRIGATION) && !(ptile->special & S_FARMLAND) && player_knows_techs_with_flag(pplayer, TF_FARMLAND) && - !(ptile->special&S_MINE) && !(ptile->city) && + !BOOL_VAL(ptile->special & S_MINE) && !(ptile->city) && (is_wet_or_is_wet_cardinal_around(pplayer, x, y)))) { map_set_special(x, y, S_FARMLAND); m = city_tile_value(pcity, i, j, 0, 0); @@ -578,7 +578,7 @@ /* Note that this code means we will never try to mine a city into the ocean */ if ((ptile->terrain == T_HILLS || ptile->terrain == T_MOUNTAINS) && - !(ptile->special&S_IRRIGATION) && !(ptile->special&S_MINE)) { + !BOOL_VAL(ptile->special & S_IRRIGATION) && !BOOL_VAL(ptile->special & S_MINE)) { map_set_special(x, y, S_MINE); m = city_tile_value(pcity, i, j, 0, 0); map_clear_special(x, y, S_MINE); @@ -694,9 +694,9 @@ return -1; ptile = map_get_tile(x, y); if (ptile->terrain != T_OCEAN && - (((ptile->terrain != T_RIVER) && !(ptile->special&S_RIVER)) || + (((ptile->terrain != T_RIVER) && !BOOL_VAL(ptile->special & S_RIVER)) || player_knows_techs_with_flag(pplayer, TF_BRIDGE)) && - !(ptile->special&S_ROAD)) { + !BOOL_VAL(ptile->special & S_ROAD)) { ptile->special|=S_ROAD; /* have to do this to avoid reset_move_costs -- Syela */ m = city_tile_value(pcity, i, j, 0, 0); ptile->special&=~S_ROAD; @@ -720,7 +720,7 @@ ptile = map_get_tile(x, y); if (ptile->terrain != T_OCEAN && player_knows_techs_with_flag(pplayer, TF_RAILROAD) && - !(ptile->special&S_RAILROAD)) { + !BOOL_VAL(ptile->special & S_RAILROAD)) { spe_sav = ptile->special; ptile->special|=(S_ROAD | S_RAILROAD); m = city_tile_value(pcity, i, j, 0, 0); Index: server/unithand.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/unithand.c,v retrieving revision 1.212 diff -u -r1.212 unithand.c --- server/unithand.c 2002/02/11 10:38:16 1.212 +++ server/unithand.c 2002/02/11 17:35:57 @@ -860,7 +860,7 @@ struct city *pcity = pdesttile->city; /* barbarians shouldn't enter huts */ - if (is_barbarian(pplayer) && pdesttile->special&S_HUT) { + if (is_barbarian(pplayer) && BOOL_VAL(pdesttile->special & S_HUT)) { return FALSE; } Index: server/unittools.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/server/unittools.c,v retrieving revision 1.154 diff -u -r1.154 unittools.c --- server/unittools.c 2002/02/11 13:55:53 1.154 +++ server/unittools.c 2002/02/11 17:36:00 @@ -1547,7 +1547,7 @@ if ((is_allied_city_tile(map_get_tile(x, y), pplayer) && !is_non_allied_unit_tile(map_get_tile(x, y), pplayer)) - || (plrtile->special & S_AIRBASE + || (BOOL_VAL(plrtile->special & S_AIRBASE) && !is_non_allied_unit_tile(map_get_tile(x, y), pplayer))) return TRUE; @@ -2568,7 +2568,7 @@ map_get_player_tile(x, y, unit_owner(ptrans)); int is_refuel_point = is_allied_city_tile(map_get_tile(x, y), unit_owner(ptrans)) - || (plrtile->special & S_AIRBASE + || (BOOL_VAL(plrtile->special & S_AIRBASE) && !is_non_allied_unit_tile(map_get_tile(x, y), unit_owner(ptrans))); int missiles_only = unit_flag(ptrans, F_MISSILE_CARRIER) @@ -2967,7 +2967,7 @@ /* Enhace vision if unit steps into a fortress */ if (unit_profits_of_watchtower(punit) - && pdesttile->special & S_FORTRESS) + && BOOL_VAL(pdesttile->special & S_FORTRESS)) unfog_area(pplayer, dest_x, dest_y, get_watchtower_vision(punit)); else unfog_area(pplayer, dest_x, dest_y, @@ -2996,7 +2996,7 @@ send_unit_info_to_onlookers(NULL, punit, src_x, src_y, FALSE, FALSE); if (unit_profits_of_watchtower(punit) - && psrctile->special & S_FORTRESS) + && BOOL_VAL(psrctile->special & S_FORTRESS)) fog_area(pplayer, src_x, src_y, get_watchtower_vision(punit)); else fog_area(pplayer, src_x, src_y,