Avoid using deleted end controller when rewind
This commit is contained in:
parent
136b649716
commit
8950354e62
@ -951,10 +951,16 @@ void Kart::finishedRace(float time, bool from_server)
|
||||
World::getWorld()->getTicksSinceStart(),
|
||||
/*undo_function*/[old_controller, this]()
|
||||
{
|
||||
if (m_network_finish_check_ticks == -1)
|
||||
return;
|
||||
|
||||
m_controller = old_controller;
|
||||
},
|
||||
/*replay_function*/[ec, old_controller, this]()
|
||||
{
|
||||
if (m_network_finish_check_ticks == -1)
|
||||
return;
|
||||
|
||||
m_saved_controller = old_controller;
|
||||
ec->reset();
|
||||
m_controller = ec;
|
||||
@ -1319,13 +1325,13 @@ void Kart::eliminate()
|
||||
*/
|
||||
void Kart::update(int ticks)
|
||||
{
|
||||
if (m_network_finish_check_ticks != 0 &&
|
||||
if (m_network_finish_check_ticks > 0 &&
|
||||
World::getWorld()->getTicksSinceStart() >
|
||||
m_network_finish_check_ticks &&
|
||||
!m_finished_race && m_saved_controller != NULL)
|
||||
{
|
||||
Log::warn("Kart", "Missing finish race from server.");
|
||||
m_network_finish_check_ticks = 0;
|
||||
m_network_finish_check_ticks = -1;
|
||||
delete m_controller;
|
||||
m_controller = m_saved_controller;
|
||||
m_saved_controller = NULL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user