Fix parachute rewind
This commit is contained in:
parent
97e5e63e7c
commit
d61b74fdd4
@ -110,7 +110,8 @@ Attachment::~Attachment()
|
|||||||
*/
|
*/
|
||||||
void Attachment::set(AttachmentType type, int ticks,
|
void Attachment::set(AttachmentType type, int ticks,
|
||||||
AbstractKart *current_kart,
|
AbstractKart *current_kart,
|
||||||
bool disable_swatter_animation)
|
bool disable_swatter_animation,
|
||||||
|
bool set_by_rewind_parachute)
|
||||||
{
|
{
|
||||||
// Don't override currently player swatter removing bomb animation
|
// Don't override currently player swatter removing bomb animation
|
||||||
Swatter* s = dynamic_cast<Swatter*>(m_plugin);
|
Swatter* s = dynamic_cast<Swatter*>(m_plugin);
|
||||||
@ -179,7 +180,8 @@ void Attachment::set(AttachmentType type, int ticks,
|
|||||||
// A parachute can be attached as result of the usage of an item. In this
|
// A parachute can be attached as result of the usage of an item. In this
|
||||||
// case we have to save the current kart speed so that it can be detached
|
// case we have to save the current kart speed so that it can be detached
|
||||||
// by slowing down.
|
// by slowing down.
|
||||||
if(m_type==ATTACH_PARACHUTE)
|
// if set by rewind the parachute ticks is already correct
|
||||||
|
if (m_type == ATTACH_PARACHUTE && !set_by_rewind_parachute)
|
||||||
{
|
{
|
||||||
const KartProperties *kp = m_kart->getKartProperties();
|
const KartProperties *kp = m_kart->getKartProperties();
|
||||||
float speed_mult;
|
float speed_mult;
|
||||||
@ -306,9 +308,7 @@ void Attachment::rewindTo(BareNetworkString *buffer)
|
|||||||
|
|
||||||
// Attaching an object can be expensive (loading new models, ...)
|
// Attaching an object can be expensive (loading new models, ...)
|
||||||
// so avoid doing this if there is no change in attachment type
|
// so avoid doing this if there is no change in attachment type
|
||||||
// Don't use set to reset a model on local player if it's already cleared
|
if (m_type == new_type)
|
||||||
// (or m_initial_speed is redone / model is re-shown again when rewinding)
|
|
||||||
if (m_type == new_type || m_type == ATTACH_NOTHING)
|
|
||||||
{
|
{
|
||||||
setTicksLeft(ticks_left);
|
setTicksLeft(ticks_left);
|
||||||
if (m_type != new_type && new_type != ATTACH_SWATTER)
|
if (m_type != new_type && new_type != ATTACH_SWATTER)
|
||||||
@ -318,7 +318,8 @@ void Attachment::rewindTo(BareNetworkString *buffer)
|
|||||||
|
|
||||||
set(new_type, ticks_left, m_previous_owner,
|
set(new_type, ticks_left, m_previous_owner,
|
||||||
new_type == ATTACH_SWATTER && !is_removing_bomb
|
new_type == ATTACH_SWATTER && !is_removing_bomb
|
||||||
/*disable_swatter_animation*/);
|
/*disable_swatter_animation*/,
|
||||||
|
new_type == ATTACH_PARACHUTE);
|
||||||
} // rewindTo
|
} // rewindTo
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
@ -116,7 +116,8 @@ public:
|
|||||||
void handleCollisionWithKart(AbstractKart *other);
|
void handleCollisionWithKart(AbstractKart *other);
|
||||||
void set (AttachmentType type, int ticks,
|
void set (AttachmentType type, int ticks,
|
||||||
AbstractKart *previous_kart=NULL,
|
AbstractKart *previous_kart=NULL,
|
||||||
bool disable_swatter_animation = false);
|
bool disable_swatter_animation = false,
|
||||||
|
bool set_by_rewind_parachute = false);
|
||||||
void rewindTo(BareNetworkString *buffer);
|
void rewindTo(BareNetworkString *buffer);
|
||||||
void saveState(BareNetworkString *buffer) const;
|
void saveState(BareNetworkString *buffer) const;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user