From 0d1785db275eef3e9170fcb049ac6636fdc529e8 Mon Sep 17 00:00:00 2001 From: Sheldon Johnson Date: Tue, 30 Apr 2024 22:42:22 +1000 Subject: [PATCH] Stop preview if building --- csqc/events.qc | 3 +++ share/commondefs.qc | 1 + ssqc/engineer.qc | 2 ++ ssqc/status.qc | 10 ++++++++++ 4 files changed, 16 insertions(+) diff --git a/csqc/events.qc b/csqc/events.qc index b15e7733..bc2e30fb 100644 --- a/csqc/events.qc +++ b/csqc/events.qc @@ -359,6 +359,9 @@ void() CSQC_Parse_Event = { flag_team = readfloat(); pick_up_time = time; break; + case MSG_BUILDING: + SentryPreviewStop(); + break; } } diff --git a/share/commondefs.qc b/share/commondefs.qc index e85fa2ad..fe8aabdf 100644 --- a/share/commondefs.qc +++ b/share/commondefs.qc @@ -214,6 +214,7 @@ const float SERVER_FRAME_MS = SERVER_FRAME_DT * 1000.0; #define MSG_HITFLAG 27 #define MSG_RELOADSOUND 28 #define MSG_FLAG_PICKUP 29 +#define MSG_BUILDING 30 #define FLAGINFO_HOME 1 #define FLAGINFO_CARRIED 2 diff --git a/ssqc/engineer.qc b/ssqc/engineer.qc index 2fd86a44..38c5ed09 100644 --- a/ssqc/engineer.qc +++ b/ssqc/engineer.qc @@ -615,6 +615,8 @@ void (float objtobuild, float offset) TeamFortress_Build = { return; } } + + UpdateClientBuilding(self); self.is_building = 1; if (!engineer_move) { self.immune_to_check = time + 5; diff --git a/ssqc/status.qc b/ssqc/status.qc index 19d40cf9..0038e6ff 100644 --- a/ssqc/status.qc +++ b/ssqc/status.qc @@ -757,6 +757,16 @@ string GetSBClassInfo(entity pl, float csqcactive) return st1; } +void UpdateClientBuilding(entity pl) { + if(!infokeyf(pl, INFOKEY_P_CSQCACTIVE)) + return; + + msg_entity = pl; + WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET); + WriteByte(MSG_MULTICAST, MSG_BUILDING); + multicast('0 0 0', MULTICAST_ONE_NOSPECS); +} + void UpdateClientReloadSound(entity pl, float weapon) { if(!infokeyf(pl, INFOKEY_P_CSQCACTIVE)) return;