X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Fanimdecide.qc;h=b53a9ba0e9cbf6123d7438736785e8206200358a;hp=44b3c1baf5fe68a85080bf3666c1783d10922ee4;hb=5aab6120acfc624751d20a695d1b911b3e919831;hpb=678a61b45f332fcd560083b01e6b0bf5a5ae268c diff --git a/qcsrc/common/animdecide.qc b/qcsrc/common/animdecide.qc index 44b3c1baf..b53a9ba0e 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.m_model.model_str() == 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;