From: Rudolf Polzer Date: Fri, 2 Dec 2011 09:46:12 +0000 (+0100) Subject: move the exterior weapon entity to csqcmodel (preparation for forcemodels) X-Git-Tag: xonotic-v0.6.0~74^2~100^2~29 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=7fc93f6e2e2ed3cb6a6f4626ddbb0718e81922af;p=xonotic%2Fxonotic-data.pk3dir.git move the exterior weapon entity to csqcmodel (preparation for forcemodels) --- diff --git a/qcsrc/csqcmodel/settings.qh b/qcsrc/csqcmodel/settings.qh index 414732924..540238733 100644 --- a/qcsrc/csqcmodel/settings.qh +++ b/qcsrc/csqcmodel/settings.qh @@ -40,3 +40,32 @@ //vector PL_CROUCH_MIN = ...; //vector PL_CROUCH_MAX = ...; //vector PL_CROUCH_VIEW_OFS = ...; + +#ifdef SVQC +# ifdef NO_LEGACY_NETWORKING +# define CSQCMODEL_AUTOINIT() CSQCModel_LinkEntity() +# define CSQCMODEL_AUTOUPDATE() CSQCModel_CheckUpdate() +# else +.float iscsqcmodel; +float autocvar_sv_use_csqc_players; +# define CSQCMODEL_AUTOINIT() \ + if(autocvar_sv_use_csqc_players) \ + { \ + CSQCModel_LinkEntity(); \ + self.iscsqcmodel = 1; \ + } +# define CSQCMODEL_AUTOUPDATE() \ + if(autocvar_sv_use_csqc_players && !self.iscsqcmodel) \ + { \ + CSQCModel_LinkEntity(); \ + self.iscsqcmodel = 1; \ + } \ + if(!autocvar_sv_use_csqc_players && self.iscsqcmodel) \ + { \ + CSQCModel_UnlinkEntity(); \ + self.iscsqcmodel = 0; \ + } \ + if(self.iscsqcmodel) \ + CSQCModel_CheckUpdate(); +# endif +#endif diff --git a/qcsrc/server/autocvars.qh b/qcsrc/server/autocvars.qh index c3e267cce..7f006745e 100644 --- a/qcsrc/server/autocvars.qh +++ b/qcsrc/server/autocvars.qh @@ -1194,6 +1194,3 @@ float autocvar_sv_gameplayfix_gravityunaffectedbyticrate; float autocvar_g_trueaim_minrange; float autocvar_g_debug_defaultsounds; float autocvar_g_loituma; -#ifndef NO_LEGACY_NETWORKING -float autocvar_sv_use_csqc_players; -#endif diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index 2386c3ca9..65b30b1d6 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -1424,10 +1424,6 @@ float PlayerInIDList(entity p, string idlist) return 0; } -#ifndef NO_LEGACY_NETWORKING -.float iscsqcmodel; -#endif - /* ============= ClientConnect @@ -1687,15 +1683,7 @@ void ClientConnect (void) if(!autocvar_g_campaign) Send_CSQC_Centerprint_Generic(self, CPID_MOTD, getwelcomemessage(), autocvar_welcome_message_time, 0); -#ifndef NO_LEGACY_NETWORKING - if(autocvar_sv_use_csqc_players) - { - CSQCModel_LinkEntity(); - self.iscsqcmodel = 1; - } -#else - CSQCModel_LinkEntity(); -#endif + CSQCMODEL_AUTOINIT(); self.model_randomizer = random(); } @@ -3150,22 +3138,5 @@ void PlayerPostThink (void) dprint(sprintf("%f %.6f\n", time, race_GetFractionalLapCount(self))); */ -#ifndef NO_LEGACY_NETWORKING - if(autocvar_sv_use_csqc_players && !self.iscsqcmodel) - { - CSQCModel_LinkEntity(); - self.iscsqcmodel = 1; - } - - if(!autocvar_sv_use_csqc_players && self.iscsqcmodel) - { - CSQCModel_UnlinkEntity(); - self.iscsqcmodel = 0; - } - - if(self.iscsqcmodel) - CSQCModel_CheckUpdate(); -#else - CSQCModel_CheckUpdate(); -#endif + CSQCMODEL_AUTOUPDATE(); } diff --git a/qcsrc/server/cl_weaponsystem.qc b/qcsrc/server/cl_weaponsystem.qc index 4acb8da89..ae275ac67 100644 --- a/qcsrc/server/cl_weaponsystem.qc +++ b/qcsrc/server/cl_weaponsystem.qc @@ -681,6 +681,8 @@ void CL_ExteriorWeaponentity_Think() self.glowmod = self.owner.weaponentity_glowmod; self.colormap = self.owner.colormap; + + CSQCMODEL_AUTOUPDATE(); } // spawning weaponentity for client @@ -708,6 +710,13 @@ void CL_SpawnWeaponentity() self.exteriorweaponentity.angles = '0 0 0'; self.exteriorweaponentity.think = CL_ExteriorWeaponentity_Think; self.exteriorweaponentity.nextthink = time; + + { + entity oldself = self; + self = self.exteriorweaponentity; + CSQCMODEL_AUTOINIT(); + self = oldself; + } } void Send_WeaponComplain (entity e, float wpn, string wpnname, float type)