diff --git a/src/game/g_player.pas b/src/game/g_player.pas
index 28c28b15f9e118a74f9c3940d6da46da8bb42656..caddc0d9e7612dfa230b9676b010a95373bb6cbb 100644 (file)
--- a/src/game/g_player.pas
+++ b/src/game/g_player.pas
+(* Copyright (C) DooM 2D:Forever Developers
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *)
+{$MODE DELPHI}
unit g_player;
interface
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;
var
ID: DWORD;
w, h: Word;
+ dr: Boolean;
begin
if FLive then
begin
begin
if (gPlayerDrawn <> nil) and ((Self = gPlayerDrawn) or
((FTeam = gPlayerDrawn.Team) and (gGameSettings.GameMode <> GM_DM))) then
- FModel.Draw(FObj.X, FObj.Y, 200)
+ begin
+ if (FMegaRulez[MR_INVIS] - gTime) <= 2100 then
+ dr := not Odd((FMegaRulez[MR_INVIS] - gTime) div 300)
+ else
+ dr := True;
+ if dr then
+ FModel.Draw(FObj.X, FObj.Y, 200)
+ else
+ FModel.Draw(FObj.X, FObj.Y);
+ end
else
FModel.Draw(FObj.X, FObj.Y, 254);
end
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;
g_Player_CreateGibs(FObj.X+FObj.Rect.X+(FObj.Rect.Width div 2),
FObj.Y+FObj.Rect.Y+(FObj.Rect.Height div 2),
FModelName, FColor);
+ // Çâóê ìÿñà îò òðóïà:
pm := g_PlayerModel_Get(FModelName);
- pm.PlaySound(MODELSOUND_DIE, 3, FObj.X, FObj.Y);
+ pm.PlaySound(MODELSOUND_DIE, 5, FObj.X, FObj.Y);
pm.Free;
end;
end