mirror of https://github.com/OpenTTD/OpenTTD
(svn r15286) -Fix: Refitting did not invalidate vehicle-colour-maps of road-vehicles, ships and aircraft, as well vehicle-length of road-vehicles.
parent
e836f18ff1
commit
7dbd0582b6
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue