diff --git a/src/game/g_player.pas b/src/game/g_player.pas
index f2a98ff8aedc6f6f86c10b39ed904677955781fc..caddc0d9e7612dfa230b9676b010a95373bb6cbb 100644 (file)
--- a/src/game/g_player.pas
+++ b/src/game/g_player.pas
procedure NetFire(Wpn: Byte; X, Y, AX, AY: Integer; WID: Integer = -1);
procedure DoLerp(Level: Integer = 2);
procedure SetLerp(XTo, YTo: Integer);
+ procedure ForceWeapon(Weapon: Byte);
procedure JetpackOn;
procedure JetpackOff;
150, 0, 0);
end;
+procedure TPlayer.ForceWeapon(Weapon: Byte);
+var
+ i: Byte;
+begin
+ if g_Game_IsClient then Exit;
+ if Weapon > High(FWeapon) then Exit;
+ if FBFGFireCounter <> -1 then Exit;
+
+ if FTime[T_SWITCH] > gTime then Exit;
+
+ for i := WEAPON_KASTET to WEAPON_SUPERPULEMET do
+ if FReloading[i] > 0 then Exit;
+
+ if FWeapon[Weapon] then
+ begin
+ FCurrWeap := Weapon;
+ FTime[T_SWITCH] := gTime+156;
+ if FCurrWeap = WEAPON_SAW then
+ FSawSoundSelect.PlayAt(FObj.X, FObj.Y);
+ FModel.SetWeapon(FCurrWeap);
+ if g_Game_IsNet then MH_SEND_PlayerStats(FUID);
+ end;
+end;
+
procedure TPlayer.NextWeapon();
var
i: Byte;