Core/Vehicle: delay position update in Vehicles, this may be deleted …

…on UpdatePosition, generating a crash
This commit is contained in:
Aokromes
2016-07-20 19:55:44 +02:00
parent ae7c54eb34
commit 7cb583a657

View File

@@ -529,6 +529,9 @@ void Vehicle::RelocatePassengers()
{
ASSERT(_me->GetMap());
std::vector<std::pair<Unit*, Position>> seatRelocation;
seatRelocation.reserve(Seats.size());
// not sure that absolute position calculation is correct, it must depend on vehicle pitch angle
for (SeatMap::const_iterator itr = Seats.begin(); itr != Seats.end(); ++itr)
{
@@ -539,10 +542,12 @@ void Vehicle::RelocatePassengers()
float px, py, pz, po;
passenger->m_movementInfo.transport.pos.GetPosition(px, py, pz, po);
CalculatePassengerPosition(px, py, pz, &po);
passenger->UpdatePosition(px, py, pz, po);
seatRelocation.emplace_back(passenger, Position(px, py, pz, po));
}
}
for (auto const& pair : seatRelocation)
pair.first->UpdatePosition(pair.second);
}
/**