]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/animdecide.qc
Merge branch 'master' into terencehill/tooltips_cleanup
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / animdecide.qc
index 8a624aa2aa98d2c6dc1e966d9fc088dbaa1e07e7..23f43b9e94a74535614eb5919480d1a2db41236c 100644 (file)
@@ -1,18 +1,15 @@
-#if defined(CSQC)
-       #include "../dpdefs/csprogsdefs.qh"
-       #include "animdecide.qh"
-#elif defined(MENUQC)
-#elif defined(SVQC)
-       #include "../dpdefs/progsdefs.qh"
-    #include "../dpdefs/dpextensions.qh"
+#include "animdecide.qh"
+
+#include "monsters/all.qh"
+
+#if defined(SVQC)
     #include "util.qh"
-    #include "animdecide.qh"
     #include "../server/defs.qh"
 #endif
 
 bool monsters_animoverride(entity e)
 {
-       int monster_id = 0;
+       Monster monster_id = NULL;
        for(int i = MON_FIRST; i <= MON_LAST; ++i)
        {
                entity mon = get_monsterinfo(i);
@@ -20,14 +17,14 @@ bool monsters_animoverride(entity e)
                //if(substring(e.model, 0, strlen(mon.model) - 4) == substring(mon.model, 0, strlen(mon.model) - 4))
                if(e.model == mon.model)
                {
-                       monster_id = i;
+                       monster_id = mon;
                        break;
                }
        }
 
        if(!monster_id) { return false; }
 
-       MON_ACTION(monster_id, MR_ANIM);
+       monster_id.mr_anim(monster_id);
 
        vector none = '0 0 0';
        e.anim_duckwalk = e.anim_walk;
@@ -158,6 +155,8 @@ vector animdecide_getupperanim(entity e)
 vector animdecide_getloweranim(entity e)
 {
        // death etc.
+       if(e.anim_state & ANIMSTATE_FOLLOW)
+               return vec3(((e.anim_state & ANIMSTATE_DUCK) ? e.anim_duckidle_x : e.anim_idle_x), e.anim_time, ANIMPRIO_DEAD); // dead priority so it's above all
        if(e.anim_state & ANIMSTATE_FROZEN)
                return vec3(e.anim_idle.x, e.anim_time, ANIMPRIO_DEAD);
        if(e.anim_state & ANIMSTATE_DEAD1)