# HG changeset patch # User Darkvater # Date 2006-10-14 22:22:48 # Node ID 41dc3967353a2239abdd0e8af58b3868d6a136c9 # Parent 23347d73ba8f50103d1fc1fc8ee9ed495479b3e7 (svn r6775) -Codechange: Use some more proper types, especially Owner and PlayerID as these are used intermixed often. diff --git a/functions.h b/functions.h --- a/functions.h +++ b/functions.h @@ -52,7 +52,7 @@ void TileLoop_Water(TileIndex tile); bool CheckPlayerHasMoney(int32 cost); void SubtractMoneyFromPlayer(int32 cost); void SubtractMoneyFromPlayerFract(PlayerID player, int32 cost); -bool CheckOwnership(PlayerID owner); +bool CheckOwnership(Owner owner); bool CheckTileOwnership(TileIndex tile); StringID GetPlayerNameString(PlayerID player, uint index); diff --git a/map.h b/map.h --- a/map.h +++ b/map.h @@ -67,12 +67,13 @@ static inline TileIndex TileVirtXY(uint return (y >> 4 << MapLogX()) + (x >> 4); } -typedef enum Owner { +typedef byte Owner; +enum Owners { OWNER_TOWN = 0x0F, // a town owns the tile OWNER_NONE = 0x10, // nobody owns the tile OWNER_WATER = 0x11, // "water" owns the tile OWNER_END = 0x12, -} Owner; +}; enum { INVALID_TILE = (TileIndex)-1 diff --git a/openttd.h b/openttd.h --- a/openttd.h +++ b/openttd.h @@ -292,7 +292,7 @@ typedef uint AcceptedCargo[NUM_CARGO]; typedef struct TileDesc { StringID str; - byte owner; + Owner owner; Date build_date; uint32 dparam[2]; } TileDesc; diff --git a/player.h b/player.h --- a/player.h +++ b/player.h @@ -202,7 +202,7 @@ typedef struct Player { uint16 GetDrawStringPlayerColor(PlayerID player); void ChangeOwnershipOfPlayerItems(PlayerID old_player, PlayerID new_player); -void GetNameOfOwner(PlayerID owner, TileIndex tile); +void GetNameOfOwner(Owner owner, TileIndex tile); int64 CalculateCompanyValue(const Player* p); void InvalidatePlayerWindows(const Player* p); void UpdatePlayerMoney32(Player *p); diff --git a/players.c b/players.c --- a/players.c +++ b/players.c @@ -259,7 +259,7 @@ void UpdatePlayerMoney32(Player *p) } } -void GetNameOfOwner(PlayerID owner, TileIndex tile) +void GetNameOfOwner(Owner owner, TileIndex tile) { SetDParam(2, owner); @@ -283,7 +283,7 @@ void GetNameOfOwner(PlayerID owner, Tile bool CheckOwnership(PlayerID owner) { - assert(owner <= OWNER_WATER); + assert(owner < OWNER_END); if (owner == _current_player) return true; _error_message = STR_013B_OWNED_BY; @@ -293,9 +293,9 @@ bool CheckOwnership(PlayerID owner) bool CheckTileOwnership(TileIndex tile) { - PlayerID owner = GetTileOwner(tile); + Owner owner = GetTileOwner(tile); - assert(owner <= OWNER_WATER); + assert(owner < OWNER_END); if (owner == _current_player) return true; _error_message = STR_013B_OWNED_BY; diff --git a/road_cmd.c b/road_cmd.c --- a/road_cmd.c +++ b/road_cmd.c @@ -39,7 +39,7 @@ static bool CheckAllowRemoveRoad(TileInd { RoadBits present; RoadBits n; - byte owner; + Owner owner; *edge_road = true; if (_game_mode == GM_EDITOR) return true; @@ -51,9 +51,7 @@ static bool CheckAllowRemoveRoad(TileInd // Only do the special processing if the road is owned // by a town - if (owner != OWNER_TOWN) { - return owner == OWNER_NONE || CheckOwnership(owner); - } + if (owner != OWNER_TOWN) return (owner == OWNER_NONE) || CheckOwnership(owner); if (_cheats.magic_bulldozer.value) return true; @@ -94,7 +92,7 @@ int32 CmdRemoveRoad(TileIndex tile, uint // cost for removing inner/edge -roads static const uint16 road_remove_cost[2] = {50, 18}; - PlayerID owner; + Owner owner; Town *t; /* true if the roadpiece was always removeable, * false if it was a center piece. Affects town ratings drop */ diff --git a/road_map.h b/road_map.h --- a/road_map.h +++ b/road_map.h @@ -178,7 +178,7 @@ RoadBits GetAnyRoadBits(TileIndex); TrackBits GetAnyRoadTrackBits(TileIndex tile); -static inline void MakeRoadNormal(TileIndex t, Owner owner, RoadBits bits, uint town) +static inline void MakeRoadNormal(TileIndex t, Owner owner, RoadBits bits, TownID town) { SetTileType(t, MP_STREET); SetTileOwner(t, owner); diff --git a/tunnelbridge_cmd.c b/tunnelbridge_cmd.c --- a/tunnelbridge_cmd.c +++ b/tunnelbridge_cmd.c @@ -708,7 +708,7 @@ static int32 DoClearBridge(TileIndex til if (GetTransportTypeUnderBridge(c) == TRANSPORT_RAIL) { MakeRailNormal(c, GetTileOwner(c), GetRailBitsUnderBridge(c), GetRailType(c)); } else { - uint town = IsTileOwner(c, OWNER_TOWN) ? ClosestTownFromTile(c, (uint)-1)->index : 0; + TownID town = IsTileOwner(c, OWNER_TOWN) ? ClosestTownFromTile(c, (uint)-1)->index : 0; MakeRoadNormal(c, GetTileOwner(c), GetRoadBitsUnderBridge(c), town); } MarkTileDirtyByTile(c);