From addcb84802e114a73da2403bca3ab57b485ac921 Mon Sep 17 00:00:00 2001 From: Benau Date: Sat, 29 Sep 2018 00:15:35 +0800 Subject: [PATCH] Undo to before kart animation position for item collection --- src/karts/abstract_kart_animation.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/karts/abstract_kart_animation.cpp b/src/karts/abstract_kart_animation.cpp index 2f969f02c..4ac48462b 100644 --- a/src/karts/abstract_kart_animation.cpp +++ b/src/karts/abstract_kart_animation.cpp @@ -143,9 +143,19 @@ void AbstractKartAnimation::addNetworkAnimationChecker(bool reset_powerup) { // Prevent access to deleted kart animation object std::weak_ptr cct = m_check_created_ticks; + Vec3 original_position; + AbstractKart* k = m_kart; + if (k) + original_position = k->getXYZ(); RewindManager::get()->addRewindInfoEventFunction(new RewindInfoEventFunction(m_created_ticks, - [](){}, + /*undo_function*/[cct, k, original_position]() + { + auto cct_sp = cct.lock(); + if (!cct_sp || !k) + return; + k->setXYZ(original_position); + }, /*replay_function*/[p]() { if (p)