diff --git a/src/server/gamerules.h b/src/server/gamerules.h index a03de21..f825c14 100644 --- a/src/server/gamerules.h +++ b/src/server/gamerules.h @@ -24,6 +24,8 @@ class HLGameRules:CGameRules virtual void(base_player) LevelDecodeParms; virtual void(base_player) LevelChangeParms; virtual void(void) LevelNewParms; + + virtual bool(void) IsMultiplayer; }; class HLSingleplayerRules:HLGameRules @@ -31,6 +33,7 @@ class HLSingleplayerRules:HLGameRules /* client */ virtual void(base_player) PlayerSpawn; virtual void(base_player) PlayerDeath; + virtual bool(void) IsMultiplayer; }; class HLMultiplayerRules:HLGameRules @@ -48,5 +51,5 @@ class HLMultiplayerRules:HLGameRules virtual void(base_player) PlayerSpawn; virtual void(base_player) PlayerDeath; virtual float(base_player, string) ConsoleCommand; - + virtual bool(void) IsMultiplayer; }; diff --git a/src/server/gamerules.qc b/src/server/gamerules.qc index 2a89cd8..a8a7966 100644 --- a/src/server/gamerules.qc +++ b/src/server/gamerules.qc @@ -14,6 +14,12 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +bool +HLGameRules::IsMultiplayer(void) +{ + return false; +} + void HLGameRules::LevelDecodeParms(base_player pp) { diff --git a/src/server/gamerules_multiplayer.qc b/src/server/gamerules_multiplayer.qc index 5ba183a..5224682 100644 --- a/src/server/gamerules_multiplayer.qc +++ b/src/server/gamerules_multiplayer.qc @@ -14,6 +14,12 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +bool +HLMultiplayerRules::IsMultiplayer(void) +{ + return true; +} + void HLMultiplayerRules::FrameStart(void) { diff --git a/src/server/gamerules_singleplayer.qc b/src/server/gamerules_singleplayer.qc index 44b58eb..923a7e9 100644 --- a/src/server/gamerules_singleplayer.qc +++ b/src/server/gamerules_singleplayer.qc @@ -14,6 +14,12 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +bool +HLSingleplayerRules::IsMultiplayer(void) +{ + return false; +} + void HLSingleplayerRules::PlayerDeath(base_player pl) { diff --git a/src/shared/w_crossbow.qc b/src/shared/w_crossbow.qc index 62d3e18..92484eb 100644 --- a/src/shared/w_crossbow.qc +++ b/src/shared/w_crossbow.qc @@ -168,6 +168,7 @@ w_crossbow_primary(player pl) pl.crossbow_mag--; #ifndef CLIENT + HLGameRules rules = (HLGameRules) g_grMode; Weapons_MakeVectors(pl); entity bolt = spawn(); setmodel(bolt, "models/crossbow_bolt.mdl"); @@ -181,7 +182,10 @@ w_crossbow_primary(player pl) bolt.angles = vectoangles(bolt.velocity); bolt.avelocity[2] = 10; bolt.touch = Crossbolt_Touch; - bolt.weapon = pl.viewzoom == 1.0 ? 1 : 0; + + if (rules.IsMultiplayer() == true) + bolt.weapon = pl.viewzoom == 1.0 ? 1 : 0; + setsize(bolt, [0,0,0], [0,0,0]); if (pl.crossbow_mag > 0) {