From f477075a0b2234ab0eae048d1256f133927e3c38 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Wed, 13 Jun 2007 07:14:42 +0000 Subject: (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. --- src/vehicle.cpp | 7 +++---- 1 file 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; -- cgit v1.2.3-54-g00ecf