this.viewmodel_angles = this.angles;
}
anim_update(this);
- if (!this.animstate_override && !this.animstate_looping)
+ if ((!this.animstate_override && !this.animstate_looping) || time > this.animstate_endtime)
anim_set(this, this.anim_idle, true, false, false);
}
float f = 0; // 0..1; 0: fully active
int slot = ReadByte();
bool restartanim = ReadByte();
entity wepent = viewmodels[slot];
- anim_set(wepent, a, !restartanim, restartanim, restartanim);
+ if(a.x == wepent.anim_idle_x) // we don't need to enforce idle animation
+ wepent.animstate_looping = false;
+ else
+ anim_set(wepent, a, !restartanim, restartanim, restartanim);
wepent.state = ReadByte();
wepent.weapon_nextthink = ReadFloat();
switch (wepent.state)
this.clip_load = this.clip_size = 0;
}
- weapon_thinkf(actor, weaponentity, WFRAME_IDLE, newwep.switchdelay_raise, w_ready);
+ weapon_thinkf(actor, weaponentity, WFRAME_DONTCHANGE, newwep.switchdelay_raise, w_ready);
break;
}
case WS_DROP: