#include "csqcmodel_hooks.qh"
-#include "autocvars.qh"
-#include "main.qh"
-#include "miscfunctions.qh"
+
#include <client/mutators/_mod.qh>
-#include <client/main.qh>
-#include "player_skeleton.qh"
-#include "weapons/projectile.qh"
+#include <client/player_skeleton.qh>
+#include <client/weapons/projectile.qh>
#include <common/animdecide.qh>
+#include <common/effects/all.inc>
+#include <common/effects/all.qh>
#include <common/ent_cs.qh>
#include <common/gamemodes/_mod.qh>
#include <common/mapinfo.qh>
#include <common/physics/movetypes/movetypes.qh>
#include <common/physics/player.qh>
#include <common/viewloc.qh>
-#include <common/effects/all.qh>
-#include <common/effects/all.inc>
#include <lib/csqcmodel/cl_model.qh>
#include <lib/csqcmodel/cl_player.qh>
#include <lib/csqcmodel/interpolate.qh>
if(autocvar_cl_forcemyplayercolors)
forcecolor_friend = 1024 + autocvar_cl_forcemyplayercolors;
- if((autocvar_cl_forceplayercolors == 2 && team_count == 2)
- || (autocvar_cl_forceplayercolors == 3 && IS_GAMETYPE(DUEL)))
+ if(autocvar_cl_forceplayercolors != 3 && autocvar_cl_forceplayercolors == 2 && team_count == 2)
forcecolor_enemy = 1024 + autocvar__cl_color;
if(forcecolor_enemy && !forcecolor_friend)
{
if(autocvar_cl_forcemyplayercolors && islocalplayer)
this.colormap = 1024 + autocvar_cl_forcemyplayercolors;
- else if(autocvar_cl_forceplayercolors)
+ else if(autocvar_cl_forceplayercolors && (autocvar_cl_forceplayercolors != 3 || ISGAMETYPE(DUEL)))
this.colormap = player_localnum + 1;
}
}
// recursive predraw call to fix issues with forcemodels and LOD if bone indexes mismatch
- if(this.tag_entity.classname == "csqcmodel")
+ if(this.tag_entity.classname == "ENT_CLIENT_MODEL")
{
CSQCModel_Hook_PreDraw(this.tag_entity, (this.tag_entity.isplayermodel & ISPLAYER_CLIENT));
}
return;
this.csqcmodel_predraw_run = framecount;
- if(!this.modelindex || this.model == "null" || this.alpha < 0)
+ if(!this.modelindex || this.model == "null")
{
this.drawmask = 0;
if(this.snd_looping > 0)
bool is_playermodel = (substring(this.model, 0, 14) == "models/player/" || substring(this.model, 0, 17) == "models/ok_player/" ||
(substring(this.model, 0, 16) == "models/monsters/" && (this.isplayermodel & BIT(1))));
this.isplayermodel = BITSET(this.isplayermodel, ISPLAYER_MODEL, is_playermodel);
+ this.csqcmodel_isdead = false; // workaround for dead players who become a spectator
// save values set by server
if((this.isplayermodel & ISPLAYER_MODEL))