diff --git a/src/game/g_player.pas b/src/game/g_player.pas
index 0565c75b2761056ab75ca321ac9c3d6c556cd480..66f0099063c3027084c4b32418d174acf77ed4e3 100644 (file)
--- a/src/game/g_player.pas
+++ b/src/game/g_player.pas
procedure ReleaseKeysNoWeapon();
procedure SetModel(ModelName: String);
procedure SetColor(Color: TRGB);
- procedure SetWeapon(W: Byte);
+ procedure SetWeaponHost(W: Byte);
function IsKeyPressed(K: Byte): Boolean;
function GetKeys(): Byte;
function PickItem(ItemType: Byte; arespawn: Boolean; var remove: Boolean): Boolean; virtual;
FNextWeap := $4000;
end;
-// used by network layer
-procedure TPlayer.SetWeapon(W: Byte);
+// used exclusively by network layer
+procedure TPlayer.SetWeaponHost(W: Byte);
begin
+ if (W > High(FWeapon)) then exit;
+ if (not FWeapon[W]) then exit; // server is authority!
+
if FCurrWeap <> W then
if (W = WEAPON_SAW) then
FSawSoundSelect.PlayAt(FObj.X, FObj.Y);