Fix ViewportAddVehiclesIntl using wrong image rotation for ships
When rotating in place
This commit is contained in:
@@ -1789,12 +1789,11 @@ void ViewportAddVehiclesIntl(DrawPixelInfo *dpi)
|
|||||||
ur >= v->coord.left &&
|
ur >= v->coord.left &&
|
||||||
ub >= v->coord.top) {
|
ub >= v->coord.top) {
|
||||||
Vehicle *v_mutable = const_cast<Vehicle *>(v);
|
Vehicle *v_mutable = const_cast<Vehicle *>(v);
|
||||||
Direction current_direction = v_mutable->GetMapImageDirection();
|
|
||||||
switch (v->type) {
|
switch (v->type) {
|
||||||
case VEH_TRAIN: Train::From(v_mutable)->UpdateImageState(current_direction, v_mutable->sprite_seq); break;
|
case VEH_TRAIN: Train::From(v_mutable)->UpdateImageStateUsingMapDirection(v_mutable->sprite_seq); break;
|
||||||
case VEH_ROAD: RoadVehicle::From(v_mutable)->UpdateImageState(current_direction, v_mutable->sprite_seq); break;
|
case VEH_ROAD: RoadVehicle::From(v_mutable)->UpdateImageStateUsingMapDirection(v_mutable->sprite_seq); break;
|
||||||
case VEH_SHIP: Ship::From(v_mutable)->UpdateImageState(current_direction, v_mutable->sprite_seq); break;
|
case VEH_SHIP: Ship::From(v_mutable)->UpdateImageStateUsingMapDirection(v_mutable->sprite_seq); break;
|
||||||
case VEH_AIRCRAFT: Aircraft::From(v_mutable)->UpdateImageState(current_direction, v_mutable->sprite_seq); break;
|
case VEH_AIRCRAFT: Aircraft::From(v_mutable)->UpdateImageStateUsingMapDirection(v_mutable->sprite_seq); break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
v_mutable->UpdateSpriteSeqBound();
|
v_mutable->UpdateSpriteSeqBound();
|
||||||
|
@@ -1385,6 +1385,11 @@ public:
|
|||||||
_sprite_group_resolve_check_veh_check = false;
|
_sprite_group_resolve_check_veh_check = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline void UpdateImageStateUsingMapDirection(VehicleSpriteSeq &seq)
|
||||||
|
{
|
||||||
|
this->UpdateImageState(this->GetMapImageDirection(), seq);
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
inline void UpdateViewportNormalViewportMode(bool force_update, Point pt)
|
inline void UpdateViewportNormalViewportMode(bool force_update, Point pt)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user