animdecide_setframes(clone, false, frame, frame1time, frame2, frame2time);
}
-void player_setupanimsformodel()
-{SELFPARAM();
+void player_setupanimsformodel(entity this)
+{
// load animation info
- animdecide_load_if_needed(self);
- animdecide_setstate(self, 0, false);
+ animdecide_load_if_needed(this);
+ animdecide_setstate(this, 0, false);
}
-void player_anim ()
-{SELFPARAM();
+void player_anim(entity this)
+{
int deadbits = (this.anim_state & (ANIMSTATE_DEAD1 | ANIMSTATE_DEAD2));
if(IS_DEAD(this)) {
if (!deadbits) {
save = v.y;
}
- frag_damage = damage;
- MUTATOR_CALLHOOK(PlayerDamage_SplitHealthArmor, inflictor, attacker, this, force, take, save);
- take = bound(0, damage_take, this.health);
- save = bound(0, damage_save, this.armorvalue);
+ MUTATOR_CALLHOOK(PlayerDamage_SplitHealthArmor, inflictor, attacker, this, force, take, save, deathtype, damage);
+ take = bound(0, M_ARGV(4, float), this.health);
+ save = bound(0, M_ARGV(5, float), this.armorvalue);
excess = max(0, damage - take - save);
if(sound_allowed(MSG_BROADCAST, attacker))
if(accuracy_isgooddamage(attacker, this))
attacker.accuracy.(accuracy_frags[w.m_id-1]) += 1;
- MUTATOR_CALLHOOK(PlayerDies, inflictor, attacker, this, deathtype);
- excess = frag_damage;
+ MUTATOR_CALLHOOK(PlayerDies, inflictor, attacker, this, deathtype, excess);
+ excess = M_ARGV(4, float);
Weapon wep = PS(this).m_weapon;
WITHSELF(this, wep.wr_playerdeath(wep, this));
// reset fields the weapons may use just in case
FOREACH(Weapons, it != WEP_Null, LAMBDA(
- WITHSELF(this, it.wr_resetplayer(it, this));
+ it.wr_resetplayer(it, this);
for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
{
ATTACK_FINISHED_FOR(this, it.m_id, slot) = 0;
// for now, just give "say" back and only handle say_team
if(!teamsay)
{
- clientcommand(self, strcat("say ", msgin));
+ clientcommand(source, strcat("say ", msgin));
return;
}
*/