X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fanimdecide.qc;h=f5adbe7b77ff655f5d930137a0c3b430bca5924c;hb=e9815ad279dc61506e5e65c34348fa7dcc570b9e;hp=44b3c1baf5fe68a85080bf3666c1783d10922ee4;hpb=5c58050e7fbc8d7a2067e78eff073e5e75d1380d;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/animdecide.qc b/qcsrc/common/animdecide.qc index 44b3c1baf..f5adbe7b7 100644 --- a/qcsrc/common/animdecide.qc +++ b/qcsrc/common/animdecide.qc @@ -1,55 +1,48 @@ #include "animdecide.qh" -#include "monsters/all.qh" +#include #if defined(SVQC) #include "util.qh" #include "../server/defs.qh" #endif -bool monsters_animoverride(entity e) +bool monsters_animoverride(entity this) { Monster monster_id = NULL; - for(int i = MON_FIRST; i <= MON_LAST; ++i) - { - entity mon = get_monsterinfo(i); - - //if(substring(e.model, 0, strlen(mon.model) - 4) == substring(mon.model, 0, strlen(mon.model) - 4)) - if(e.model == mon.model) - { - monster_id = mon; - break; - } - } + FOREACH(Monsters, it != MON_Null && it.model == this.model, { + monster_id = it; + break; + }); if(!monster_id) { return false; } - monster_id.mr_anim(monster_id); + monster_id.mr_anim(monster_id, this); vector none = '0 0 0'; - e.anim_duckwalk = e.anim_walk; - e.anim_duckjump = animfixfps(e, '5 1 10', none); - e.anim_duckidle = e.anim_idle; - e.anim_jump = animfixfps(e, '8 1 10', none); - e.anim_taunt = animfixfps(e, '12 1 0.33', none); - e.anim_runbackwards = e.anim_run; - e.anim_strafeleft = e.anim_run; - e.anim_straferight = e.anim_run; - e.anim_forwardright = e.anim_run; - e.anim_forwardleft = e.anim_run; - e.anim_backright = e.anim_run; - e.anim_backleft = e.anim_run; - e.anim_duckwalkbackwards = e.anim_walk; - e.anim_duckwalkstrafeleft = e.anim_walk; - e.anim_duckwalkstraferight = e.anim_walk; - e.anim_duckwalkforwardright = e.anim_walk; - e.anim_duckwalkforwardleft = e.anim_walk; - e.anim_duckwalkbackright = e.anim_walk; - e.anim_duckwalkbackleft = e.anim_walk; + this.anim_duckwalk = this.anim_walk; + this.anim_duckjump = animfixfps(this, '5 1 10', none); + this.anim_duckidle = this.anim_idle; + this.anim_jump = animfixfps(this, '8 1 10', none); + this.anim_taunt = animfixfps(this, '12 1 0.33', none); + this.anim_runbackwards = this.anim_run; + this.anim_strafeleft = this.anim_run; + this.anim_straferight = this.anim_run; + this.anim_forwardright = this.anim_run; + this.anim_forwardleft = this.anim_run; + this.anim_backright = this.anim_run; + this.anim_backleft = this.anim_run; + this.anim_duckwalkbackwards = this.anim_walk; + this.anim_duckwalkstrafeleft = this.anim_walk; + this.anim_duckwalkstraferight = this.anim_walk; + this.anim_duckwalkforwardright = this.anim_walk; + this.anim_duckwalkforwardleft = this.anim_walk; + this.anim_duckwalkbackright = this.anim_walk; + this.anim_duckwalkbackleft = this.anim_walk; // these anims ought to stay until stopped explicitly by weaponsystem - e.anim_shoot_z = 0.001; - e.anim_melee_z = 0.001; + this.anim_shoot_z = 0.001; + this.anim_melee_z = 0.001; return true; } @@ -271,7 +264,7 @@ void animdecide_setimplicitstate(entity e, float onground) // it slightly less likely to "hit two keys at once", so let's do this // here too - if(vlen(v) > 10) + if(vdist(v, >, 10)) { if(v.x > fabs(v.y) * 0.5) s |= ANIMIMPLICITSTATE_FORWARD;