]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
add a cvar sv_use_csqc_players to toggle csqc player networking at runtime
authorRudolf Polzer <divverent@xonotic.org>
Mon, 14 Nov 2011 08:13:22 +0000 (09:13 +0100)
committerRudolf Polzer <divverent@xonotic.org>
Mon, 14 Nov 2011 08:14:10 +0000 (09:14 +0100)
defaultXonotic.cfg
qcsrc/client/miscfunctions.qc
qcsrc/csqcmodel/sv_model.qc
qcsrc/csqcmodel/sv_model.qh
qcsrc/server/autocvars.qh
qcsrc/server/cl_client.qc

index 69b97a9c8ad39f6f559c19e00e15004a83610643..2003d80d89503ee27ee954b2c23b54e73c1b0826 100644 (file)
@@ -1878,6 +1878,7 @@ set developer_shtest 0 "experimental speedhack detection"
 set waypoint_benchmark 0 "quit after waypoint loading to benchmark bot navigation code"
 set g_debug_bot_commands 0 "print scripted bot commands before executing"
 set g_debug_defaultsounds 0 "always use default sounds"
+set sv_use_csqc_players 0 "set to 1 to network players to CSQC"
 
 // debug cvars for keyhunt attaching
 set _angles "0 0 0"
index 26bed80f2a1621592c40d023e6ee8513a343dc99..ce779634c66487200fca102a2d9aa1365216a881 100644 (file)
@@ -579,6 +579,12 @@ vector getplayerorigin(float pl)
        if(e)
                return e.origin;
 
+#ifndef NO_LEGACY_NETWORKING
+       s = getplayerkey(pl, "TEMPHACK_origin");
+       if(s != "")
+               return stov(s);
+#endif
+
        e = entcs_receiver[pl];
        if(e)
                return e.origin;
index 010258b10f6230e50b2f3e581dffce368f55461d..42339b75984f6e04b63ab8abcc41897e8f6f4be1 100644 (file)
@@ -71,5 +71,11 @@ void CSQCModel_CheckUpdate()
 
 void CSQCModel_LinkEntity()
 {
-       Net_LinkEntity(self, TRUE, 0, CSQCModel_Send);
+       e.SendEntity = CSQCModel_Send;
+       e.SendFlags = 0xFFFFFF;
+}
+
+void CSQCModel_UnlinkEntity()
+{
+       e.SendEntity = func_null;
 }
index bb45a74b4984ac93a551c56797998125c6fef9c3..40d1dc6c763360660ce3a50ec84b5bc52353a538 100644 (file)
@@ -24,3 +24,4 @@
 
 void CSQCModel_CheckUpdate();
 void CSQCModel_LinkEntity();
+void CSQCModel_UnlinkEntity();
index 3b64b1b63f458cb7d2716671efdcaaeca828a785..86521da8edd9433ad8a0d5028719e24d04b31ba4 100644 (file)
@@ -1203,3 +1203,6 @@ 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
index 352be72107c837cbb222ee6bfa25d81132a6df36..3ed4699b32cd703ac5bef003738faf36630b253a 100644 (file)
@@ -1534,6 +1534,10 @@ float PlayerInIDList(entity p, string idlist)
        return 0;
 }
 
+#ifndef NO_LEGACY_NETWORKING
+.float iscsqcmodel;
+#endif
+
 /*
 =============
 ClientConnect
@@ -1796,7 +1800,15 @@ 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
 }
 
 /*
@@ -3265,5 +3277,22 @@ 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.iscsqcplayer)
+               CSQCModel_CheckUpdate();
+#else
        CSQCModel_CheckUpdate();
+#endif
 }