X-Git-Url: http://deadsoftware.ru/gitweb?p=d2df-sdl.git;a=blobdiff_plain;f=src%2Fgame%2Fg_player.pas;h=66f0099063c3027084c4b32418d174acf77ed4e3;hp=0565c75b2761056ab75ca321ac9c3d6c556cd480;hb=249437fb26187bc1db9b35f59ad597e169ec9c01;hpb=8a0bb6df836d0e815a261280d628cfd766fa02e7 diff --git a/src/game/g_player.pas b/src/game/g_player.pas index 0565c75..66f0099 100644 --- a/src/game/g_player.pas +++ b/src/game/g_player.pas @@ -280,7 +280,7 @@ type 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; @@ -3887,9 +3887,12 @@ begin 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);