]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/csqcmodel_hooks.qc
Merge branch 'master' into Mario/teams_bitflag
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / csqcmodel_hooks.qc
index 4abf49186d6ca6feff6d478dc7070d37328132a8..30148bdd44e7f4be1fb88b33d406ae203b525788 100644 (file)
@@ -1,3 +1,4 @@
+#include "csqcmodel_hooks.qh"
 #include "mutators/events.qh"
 #include "player_skeleton.qh"
 #include "weapons/projectile.qh"
@@ -352,6 +353,7 @@ void CSQCPlayer_AnimDecide_PostUpdate(entity this, bool isnew)
 }
 int CSQCPlayer_FallbackFrame(entity this, int f)
 {
+    TC(int, f);
        if(frameduration(this.modelindex, f) > 0)
                return f; // goooooood
        if(frameduration(this.modelindex, 1) <= 0)
@@ -367,7 +369,7 @@ int CSQCPlayer_FallbackFrame(entity this, int f)
                case 29: return 4; // anim_duckwalkbackright -> anim_duckwalk
                case 30: return 4; // anim_duckwalkbackleft -> anim_duckwalk
        }
-       LOG_INFOF("Frame %d missing in model %s, and we have no fallback - FAIL!\n", f, this.model);
+       LOG_DEBUGF("Frame %d missing in model %s, and we have no fallback - FAIL!\n", f, this.model);
        return f;
 }
 void CSQCPlayer_FallbackFrame_Apply(entity this)
@@ -387,9 +389,9 @@ void CSQCPlayer_FallbackFrame_Apply(entity this)
 void CSQCModel_AutoTagIndex_Apply(entity this)
 {
        if(this.tag_entity && wasfreed(this.tag_entity))
-               this.tag_entity = world;
+               this.tag_entity = NULL;
 
-       WITH(entity, self, this, viewloc_SetTags());
+       viewloc_SetTags(this);
 
        MUTATOR_CALLHOOK(TagIndex_Update, this);
 
@@ -399,14 +401,14 @@ void CSQCModel_AutoTagIndex_Apply(entity this)
                bool changed = 0;
                if(this.tag_entity.entnum != this.tag_networkentity)
                {
-                       this.tag_entity = findfloat(world, entnum, this.tag_networkentity);
+                       this.tag_entity = findfloat(NULL, entnum, this.tag_networkentity);
                        changed = 1;
                }
 
                // recursive predraw call to fix issues with forcemodels and LOD if bone indexes mismatch
                if(this.tag_entity.classname == "csqcmodel")
                {
-                       WITH(entity, this, this.tag_entity, CSQCModel_Hook_PreDraw(this, (this.entnum >= 1 && this.entnum <= maxclients)));
+                       CSQCModel_Hook_PreDraw(this.tag_entity, (this.tag_entity.entnum >= 1 && this.tag_entity.entnum <= maxclients));
                }
 
                if(this.tag_entity.modelindex != this.tag_entity_lastmodelindex)
@@ -429,7 +431,7 @@ void CSQCModel_AutoTagIndex_Apply(entity this)
                                                if(!this.tag_index)
                                                {
                                                        // we need to prevent this from 'appening
-                                                       this.tag_entity = world;
+                                                       this.tag_entity = NULL;
                                                        this.drawmask = 0;
                                                        LOG_TRACE("h_ model lacks weapon attachment, but v_ model is attached to it\n");
                                                }
@@ -459,26 +461,6 @@ void CSQCModel_AutoTagIndex_Apply(entity this)
        }
 }
 
-// FEATURE: EF_NODRAW workalike
-const int EF_BRIGHTFIELD       = BIT(0);
-const int EF_BRIGHTLIGHT       = BIT(2);
-const int EF_DIMLIGHT          = BIT(3);
-const int EF_DOUBLESIDED       = BIT(15);
-const int EF_NOSELFSHADOW      = BIT(16);
-const int EF_DYNAMICMODELLIGHT = BIT(17);
-const int EF_RESTARTANIM_BIT = BIT(20);
-const int EF_TELEPORT_BIT = BIT(21);
-const int MF_ROCKET  =  BIT(0); // leave a trail
-const int MF_GRENADE =  BIT(1); // leave a trail
-const int MF_GIB     =  BIT(2); // leave a trail
-const int MF_ROTATE  =  BIT(3); // rotate (bonus items)
-const int MF_TRACER  =  BIT(4); // green split trail
-const int MF_ZOMGIB  =  BIT(5); // small blood trail
-const int MF_TRACER2 =  BIT(6); // orange split trail
-const int MF_TRACER3 = BIT(7); // purple trail
-.int csqcmodel_effects;
-.int csqcmodel_modelflags;
-.int csqcmodel_traileffect;
 void CSQCModel_Effects_PreUpdate(entity this)
 {
        this.effects = this.csqcmodel_effects;
@@ -490,7 +472,7 @@ void CSQCModel_Effects_PostUpdate(entity this)
 {
        if (this == csqcplayer) {
                if (this.csqcmodel_teleported) {
-                       WITH(entity, self, this, Reset_ArcBeam());
+                       Reset_ArcBeam();
                }
        }
        this.csqcmodel_effects = this.effects;
@@ -677,14 +659,14 @@ void CSQCModel_Hook_PreDraw(entity this, bool isplayer)
                        this.anim_saveframe2time = this.anim_frame2time;
                        // Note: we always consider lerpfrac "changed", as it uses fixed values every time anyway.
                        // This ensures that .frame etc. are always written.
-                       WITH(entity, self, this, CSQCModel_InterpolateAnimation_2To4_PreNote(sf | CSQCMODEL_PROPERTY_LERPFRAC));
+                       CSQCModel_InterpolateAnimation_2To4_PreNote(this, sf | CSQCMODEL_PROPERTY_LERPFRAC);
                        this.lerpfrac = (doblend ? 0.5 : 0);
                        this.frame = this.anim_frame;
                        this.frame1time = this.anim_frame1time;
                        this.frame2 = this.anim_frame2;
                        this.frame2time = this.anim_frame2time;
-                       WITH(entity, self, this, CSQCModel_InterpolateAnimation_2To4_Note(sf | CSQCMODEL_PROPERTY_LERPFRAC, false));
-                       WITH(entity, self, this, CSQCModel_InterpolateAnimation_2To4_Do());
+                       CSQCModel_InterpolateAnimation_2To4_Note(this, sf | CSQCMODEL_PROPERTY_LERPFRAC, false);
+                       CSQCModel_InterpolateAnimation_2To4_Do(this);
                        if(doblend)
                        {
                                skeleton_from_frames(this, this.csqcmodel_isdead);