X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Fclient%2Fcsqcmodel_hooks.qc;h=6499a683e8f4c2cf198be39cb0bee2c9eb9e9a3f;hb=d865de7a9a17c5a1d9286aec40f68c3530697660;hp=35f28bdca4dec5baea11b3a20dc3db4ca0a76322;hpb=37cf62041a76248472ef6a78feaaed33e35a2260;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/csqcmodel_hooks.qc b/qcsrc/client/csqcmodel_hooks.qc index 35f28bdca..6499a683e 100644 --- a/qcsrc/client/csqcmodel_hooks.qc +++ b/qcsrc/client/csqcmodel_hooks.qc @@ -1,10 +1,16 @@ #include "csqcmodel_hooks.qh" +#include "autocvars.qh" +#include "csqcmodel_hooks.qh" +#include "miscfunctions.qh" #include "mutators/events.qh" #include "player_skeleton.qh" #include "weapons/projectile.qh" #include +#include #include #include +#include +#include #include #include #include @@ -128,11 +134,14 @@ void CSQCPlayer_ModelAppearance_PostUpdate(entity this) this.forceplayermodels_isgoodmodel = fexists(this.forceplayermodels_savemodel); this.forceplayermodels_isgoodmodel_mdl = this.forceplayermodels_savemodel; if(!this.forceplayermodels_isgoodmodel) - LOG_INFOF("Warning: missing model %s has been used\n", this.forceplayermodels_savemodel); + LOG_INFOF("Warning: missing model %s has been used", this.forceplayermodels_savemodel); } } void CSQCPlayer_ModelAppearance_Apply(entity this, bool islocalplayer) { + if(MUTATOR_CALLHOOK(ForcePlayermodels_Skip, this, islocalplayer)) + goto skipforcemodels; + // FORCEMODEL // which one is ALWAYS good? if (!forceplayermodels_goodmodel) @@ -142,7 +151,7 @@ void CSQCPlayer_ModelAppearance_Apply(entity this, bool islocalplayer) _setmodel(e, cvar_defstring("_cl_playermodel")); forceplayermodels_goodmodel = e.model; forceplayermodels_goodmodelindex = e.modelindex; - remove(e); + delete(e); } // first, try finding it from the server @@ -175,7 +184,7 @@ void CSQCPlayer_ModelAppearance_Apply(entity this, bool islocalplayer) forceplayermodels_model = e.model; forceplayermodels_modelindex = e.modelindex; forceplayermodels_skin = autocvar__cl_playerskin; - remove(e); + delete(e); } if(autocvar_cl_forcemyplayermodel != "" && autocvar_cl_forcemyplayermodel != forceplayermodels_mymodel) @@ -185,14 +194,14 @@ void CSQCPlayer_ModelAppearance_Apply(entity this, bool islocalplayer) forceplayermodels_myisgoodmodel = fexists(e.model); forceplayermodels_mymodel = e.model; forceplayermodels_mymodelindex = e.modelindex; - remove(e); + delete(e); } // apply it bool isfriend; int cm; cm = this.forceplayermodels_savecolormap; - cm = (cm >= 1024) ? cm : (stof(getplayerkeyvalue(cm - 1, "colors")) + 1024); + cm = (cm >= 1024) ? cm : (entcs_GetClientColors(cm - 1) + 1024); if(teamplay) isfriend = (cm == 1024 + 17 * myteam); @@ -277,9 +286,11 @@ void CSQCPlayer_ModelAppearance_Apply(entity this, bool islocalplayer) this.colormap = player_localnum + 1; } + LABEL(skipforcemodels) + // GLOWMOD AND DEATH FADING if(this.colormap > 0) - this.glowmod = colormapPaletteColor(((this.colormap >= 1024) ? this.colormap : stof(getplayerkeyvalue(this.colormap - 1, "colors"))) & 0x0F, true) * 2; + this.glowmod = colormapPaletteColor(((this.colormap >= 1024) ? this.colormap : entcs_GetClientColors(this.colormap - 1)) & 0x0F, true) * 2; else this.glowmod = '1 1 1'; @@ -369,7 +380,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_DEBUGF("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!", f, this.model); return f; } void CSQCPlayer_FallbackFrame_Apply(entity this) @@ -389,9 +400,7 @@ void CSQCPlayer_FallbackFrame_Apply(entity this) void CSQCModel_AutoTagIndex_Apply(entity this) { if(this.tag_entity && wasfreed(this.tag_entity)) - this.tag_entity = world; - - viewloc_SetTags(this); + this.tag_entity = NULL; MUTATOR_CALLHOOK(TagIndex_Update, this); @@ -401,7 +410,7 @@ 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; } @@ -431,9 +440,9 @@ 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"); + LOG_TRACE("h_ model lacks weapon attachment, but v_ model is attached to it"); } } else if(this.tag_entity.isplayermodel) @@ -562,7 +571,7 @@ void CSQCModel_Effects_Apply(entity this) { if(!this.snd_looping) { - sound(this, CH_TRIGGER_SINGLE, SND_JETPACK_FLY, VOL_BASE, autocvar_g_jetpack_attenuation); + sound(this, CH_TRIGGER_SINGLE, SND_JETPACK_FLY, VOL_BASE, autocvar_cl_jetpack_attenuation); this.snd_looping = CH_TRIGGER_SINGLE; } } @@ -570,7 +579,7 @@ void CSQCModel_Effects_Apply(entity this) { if(this.snd_looping) { - sound(this, this.snd_looping, SND_Null, VOL_BASE, autocvar_g_jetpack_attenuation); + sound(this, this.snd_looping, SND_Null, VOL_BASE, autocvar_cl_jetpack_attenuation); this.snd_looping = 0; } }