summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2007-06-13 07:14:42 +0000
committerpeter1138 <peter1138@openttd.org>2007-06-13 07:14:42 +0000
commitf477075a0b2234ab0eae048d1256f133927e3c38 (patch)
treed06a65fb982a1fd315fe3f540b8154e38bb9bbce
parentf7e4d4d6e751b0e0e5e7879ab0f3ecb544cdb108 (diff)
downloadopenttd-f477075a0b2234ab0eae048d1256f133927e3c38.tar.xz
(svn r10129) -Fix (r10111): Test for x == INVALID_COORD instead of v->tile == INVALID_TILE to determine if a vehicle should be removed from the has.
-rw-r--r--src/vehicle.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/vehicle.cpp b/src/vehicle.cpp
index 540ef8c0b..a7180809e 100644
--- a/src/vehicle.cpp
+++ b/src/vehicle.cpp
@@ -456,12 +456,12 @@ void *VehicleFromPos(TileIndex tile, void *data, VehicleFromPosProc *proc)
return NULL;
}
-static void UpdateNewVehiclePosHash(Vehicle *v)
+static void UpdateNewVehiclePosHash(Vehicle *v, bool remove)
{
Vehicle **old_hash = v->old_new_hash;
Vehicle **new_hash;
- if (v->tile == INVALID_TILE || v->tile == 0) {
+ if (remove) {
new_hash = NULL;
} else {
int x = GB(TileX(v->tile), HASH_RES, HASH_BITS);
@@ -503,7 +503,7 @@ static Vehicle *_vehicle_position_hash[0x1000];
static void UpdateVehiclePosHash(Vehicle* v, int x, int y)
{
- UpdateNewVehiclePosHash(v);
+ UpdateNewVehiclePosHash(v, x == INVALID_COORD);
Vehicle **old_hash, **new_hash;
int old_x = v->left_coord;
@@ -687,7 +687,6 @@ void DestroyVehicle(Vehicle *v)
InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile);
}
- v->tile = INVALID_TILE;
UpdateVehiclePosHash(v, INVALID_COORD, 0);
v->next_hash = NULL;
v->next_new_hash = NULL;