diff options
author | frosch <frosch@openttd.org> | 2009-01-27 19:44:36 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2009-01-27 19:44:36 +0000 |
commit | 7dbd0582b6c1aa22a0345d63a2b71b98013c84d2 (patch) | |
tree | 9bca7c140f273d8118cf91dd362615b924c68ba5 | |
parent | e836f18ff18d51a7d04e51c418712755430a82ff (diff) | |
download | openttd-7dbd0582b6c1aa22a0345d63a2b71b98013c84d2.tar.xz |
(svn r15286) -Fix: Refitting did not invalidate vehicle-colour-maps of road-vehicles, ships and aircraft, as well vehicle-length of road-vehicles.
-rw-r--r-- | src/aircraft_cmd.cpp | 1 | ||||
-rw-r--r-- | src/roadveh_cmd.cpp | 6 | ||||
-rw-r--r-- | src/ship_cmd.cpp | 2 |
3 files changed, 9 insertions, 0 deletions
diff --git a/src/aircraft_cmd.cpp b/src/aircraft_cmd.cpp index cec144be4..4a14c2887 100644 --- a/src/aircraft_cmd.cpp +++ b/src/aircraft_cmd.cpp @@ -593,6 +593,7 @@ CommandCost CmdRefitAircraft(TileIndex tile, uint32 flags, uint32 p1, uint32 p2, u->cargo.Truncate(v->cargo_type == new_cid ? mail : 0); v->cargo_type = new_cid; v->cargo_subtype = new_subtype; + v->colormap = PAL_NONE; // invalidate vehicle colour map InvalidateWindow(WC_VEHICLE_DETAILS, v->index); InvalidateWindow(WC_VEHICLE_DEPOT, v->tile); InvalidateWindowClassesData(WC_AIRCRAFT_LIST, 0); diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index 7e587b5be..209801d18 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -47,6 +47,7 @@ #include "core/alloc_func.hpp" #include "table/strings.h" +#include "table/sprites.h" static const uint16 _roadveh_images[63] = { 0xCD4, 0xCDC, 0xCE4, 0xCEC, 0xCF4, 0xCFC, 0xD0C, 0xD14, @@ -160,6 +161,9 @@ void RoadVehUpdateCache(Vehicle *v) /* Update the length of the vehicle. */ u->u.road.cached_veh_length = GetRoadVehLength(u); + + /* Invalidate the vehicle colour map */ + u->colormap = PAL_NONE; } } @@ -2099,6 +2103,8 @@ CommandCost CmdRefitRoadVeh(TileIndex tile, uint32 flags, uint32 p1, uint32 p2, if (only_this) break; } + if (flags & DC_EXEC) RoadVehUpdateCache(GetVehicle(p1)->First()); + _returned_refit_capacity = total_capacity; return cost; diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index 37d2ef78e..e675ebd77 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -44,6 +44,7 @@ #include "ai/ai.hpp" #include "table/strings.h" +#include "table/sprites.h" static const uint16 _ship_sprites[] = {0x0E5D, 0x0E55, 0x0E65, 0x0E6D}; @@ -953,6 +954,7 @@ CommandCost CmdRefitShip(TileIndex tile, uint32 flags, uint32 p1, uint32 p2, con v->cargo.Truncate((v->cargo_type == new_cid) ? capacity : 0); v->cargo_type = new_cid; v->cargo_subtype = new_subtype; + v->colormap = PAL_NONE; // invalidate vehicle colour map InvalidateWindow(WC_VEHICLE_DETAILS, v->index); InvalidateWindow(WC_VEHICLE_DEPOT, v->tile); InvalidateWindowClassesData(WC_SHIPS_LIST, 0); |