(svn r1834) - Fix: NPF does not check the owner of its target, busses try to enter other players' depots. TODO

- Add: asserts to find the v->u.rail.track == 0 problem.
- Add: IsValidDepot(), IsValidTown(), IsValidSign(), IsValidVehicle(), IsValidStation()
- Add: GetTileOwner(), IsTileOwner()
- Codechange: Replaced IsShipDepotTile(), IsTrainDepotTile(), IsRoadDepotTile() by IsTileDepotType().
- Codechange: typedeffed the MAP_OWNERS as Owner. Should be used as variable type.
- Codechange: Replaced a few uint by TileIndex.
This commit is contained in:
matthijs
2005-02-06 22:36:08 +00:00
parent eed181245d
commit c5c5c9b17c
24 changed files with 180 additions and 130 deletions

31
depot.c
View File

@@ -45,33 +45,6 @@ Depot *GetDepotByTile(uint tile)
return NULL;
}
/**
* Check if a tile is a road-depot
*/
bool IsRoadDepotTile(TileIndex tile)
{
return IsTileType(tile, MP_STREET) &&
(_map5[tile] & 0xF0) == 0x20;
}
/**
* Check if a tile is a train-depot
*/
bool IsTrainDepotTile(TileIndex tile)
{
return IsTileType(tile, MP_RAILWAY) &&
(_map5[tile] & 0xFC) == 0xC0;
}
/**
* Check if a tile is a ship-depot
*/
bool IsShipDepotTile(TileIndex tile)
{
return IsTileType(tile, MP_WATER) &&
(_map5[tile] & ~3) == 0x80;
}
/**
* Allocate a new depot
*/
@@ -80,7 +53,7 @@ Depot *AllocateDepot(void)
Depot *depot;
FOR_ALL_DEPOTS(depot) {
if (depot->xy == 0) {
if (!IsValidDepot(depot)) {
uint index = depot->index;
memset(depot, 0, sizeof(Depot));
@@ -142,7 +115,7 @@ static void Save_DEPT(void)
Depot *depot;
FOR_ALL_DEPOTS(depot) {
if (depot->xy != 0) {
if (IsValidDepot(depot)) {
SlSetArrayIndex(depot->index);
SlObject(depot, _depot_desc);
}