diff --git a/src/game/g_player.pas b/src/game/g_player.pas
index 1d036616a4884835132d9bde3643baae1f5f80c8..1ec0ccd237bc56c85df03b3d26c9d286fe1131d5 100644 (file)
--- a/src/game/g_player.pas
+++ b/src/game/g_player.pas
A_SHELLS = 1;
A_ROCKETS = 2;
A_CELLS = 3;
+ A_HIGH = 3;
K_SIMPLEKILL = 0;
K_HARDKILL = 1;
CurrWeap: Byte;
NextWeap: WORD;
NextWeapDelay: Byte;
- Ammo: Array [A_BULLETS..A_CELLS] of Word;
- MaxAmmo: Array [A_BULLETS..A_CELLS] of Word;
- Weapon: Array [WEAPON_KASTET..WEAPON_SUPERPULEMET] of Boolean;
+ Ammo: Array [A_BULLETS..A_HIGH] of Word;
+ MaxAmmo: Array [A_BULLETS..A_HIGH] of Word;
+ Weapon: Array [WP_FIRST..WP_LAST] of Boolean;
Rulez: Set of R_ITEM_BACKPACK..R_BERSERK;
WaitRecall: Boolean;
end;
public
FDamageBuffer: Integer;
- FAmmo: Array [A_BULLETS..A_CELLS] of Word;
- FMaxAmmo: Array [A_BULLETS..A_CELLS] of Word;
- FWeapon: Array [WEAPON_KASTET..WEAPON_SUPERPULEMET] of Boolean;
+ FAmmo: Array [A_BULLETS..A_HIGH] of Word;
+ FMaxAmmo: Array [A_BULLETS..A_HIGH] of Word;
+ FWeapon: Array [WP_FIRST..WP_LAST] of Boolean;
FRulez: Set of R_ITEM_BACKPACK..R_BERSERK;
FBerserk: Integer;
FMegaRulez: Array [MR_SUIT..MR_MAX] of DWORD;
- FReloading: Array [WEAPON_KASTET..WEAPON_SUPERPULEMET] of Word;
+ FReloading: Array [WP_FIRST..WP_LAST] of Word;
FTime: Array [T_RESPAWN..T_FLAGCAP] of DWORD;
FKeys: Array [KEY_LEFT..KEY_CHAT] of TKeyState;
FColor: TRGB;
FlyPrecision: Byte;
Cover: Byte;
CloseJump: Byte;
- WeaponPrior: Array [WEAPON_KASTET..WEAPON_SUPERPULEMET] of Byte;
- CloseWeaponPrior: Array [WEAPON_KASTET..WEAPON_SUPERPULEMET] of Byte;
- //SafeWeaponPrior: Array [WEAPON_KASTET..WEAPON_SUPERPULEMET] of Byte;
+ WeaponPrior: Array [WP_FIRST..WP_LAST] of Byte;
+ CloseWeaponPrior: Array [WP_FIRST..WP_LAST] of Byte;
+ //SafeWeaponPrior: Array [WP_FIRST..WP_LAST] of Byte;
end;
TAIFlag = record
fly_precision: Byte;
cover: Byte;
close_jump: Byte;
- w_prior1: Array [WEAPON_KASTET..WEAPON_SUPERPULEMET] of Byte;
- w_prior2: Array [WEAPON_KASTET..WEAPON_SUPERPULEMET] of Byte;
- w_prior3: Array [WEAPON_KASTET..WEAPON_SUPERPULEMET] of Byte;
+ w_prior1: Array [WP_FIRST..WP_LAST] of Byte;
+ w_prior2: Array [WP_FIRST..WP_LAST] of Byte;
+ w_prior3: Array [WP_FIRST..WP_LAST] of Byte;
end;
const
DIFFICULT_HARD: TDifficult = (DiagFire: 255; InvisFire: 255; DiagPrecision: 255;
FlyPrecision: 255; Cover: 255; CloseJump: 255;
WeaponPrior:(0,0,0,0,0,0,0,0,0,0); CloseWeaponPrior:(0,0,0,0,0,0,0,0,0,0));
- WEAPON_PRIOR1: Array [WEAPON_KASTET..WEAPON_SUPERPULEMET] of Byte =
+ WEAPON_PRIOR1: Array [WP_FIRST..WP_LAST] of Byte =
(WEAPON_SUPERPULEMET, WEAPON_SHOTGUN2, WEAPON_SHOTGUN1,
WEAPON_CHAINGUN, WEAPON_PLASMA, WEAPON_ROCKETLAUNCHER,
WEAPON_BFG, WEAPON_PISTOL, WEAPON_SAW, WEAPON_KASTET);
- WEAPON_PRIOR2: Array [WEAPON_KASTET..WEAPON_SUPERPULEMET] of Byte =
+ WEAPON_PRIOR2: Array [WP_FIRST..WP_LAST] of Byte =
(WEAPON_SUPERPULEMET, WEAPON_BFG, WEAPON_ROCKETLAUNCHER,
WEAPON_SHOTGUN2, WEAPON_PLASMA, WEAPON_SHOTGUN1,
WEAPON_CHAINGUN, WEAPON_PISTOL, WEAPON_SAW, WEAPON_KASTET);
- //WEAPON_PRIOR3: Array [WEAPON_KASTET..WEAPON_SUPERPULEMET] of Byte =
+ //WEAPON_PRIOR3: Array [WP_FIRST..WP_LAST] of Byte =
// (WEAPON_SUPERPULEMET, WEAPON_BFG, WEAPON_PLASMA,
// WEAPON_SHOTGUN2, WEAPON_CHAINGUN, WEAPON_SHOTGUN1,
// WEAPON_SAW, WEAPON_ROCKETLAUNCHER, WEAPON_PISTOL, WEAPON_KASTET);
- WEAPON_RELOAD: Array [WEAPON_KASTET..WEAPON_SUPERPULEMET] of Byte =
+ WEAPON_RELOAD: Array [WP_FIRST..WP_LAST] of Byte =
(5, 2, 6, 18, 36, 2, 12, 2, 14, 2);
PLAYER_SIGNATURE = $52594C50; // 'PLYR'
// Îáúåêò èãðîêà:
Obj_LoadState(@gPlayers[a].FObj, Mem);
// Òåêóùåå êîëè÷åñòâî ïàòðîíîâ:
- for i := A_BULLETS to A_CELLS do
+ for i := A_BULLETS to A_HIGH do
Mem.ReadWord(gPlayers[a].FAmmo[i]);
// Ìàêñèìàëüíîå êîëè÷åñòâî ïàòðîíîâ:
- for i := A_BULLETS to A_CELLS do
+ for i := A_BULLETS to A_HIGH do
Mem.ReadWord(gPlayers[a].FMaxAmmo[i]);
// Íàëè÷èå îðóæèÿ:
- for i := WEAPON_KASTET to WEAPON_SUPERPULEMET do
+ for i := WP_FIRST to WP_LAST do
Mem.ReadBoolean(gPlayers[a].FWeapon[i]);
// Âðåìÿ ïåðåçàðÿäêè îðóæèÿ:
- for i := WEAPON_KASTET to WEAPON_SUPERPULEMET do
+ for i := WP_FIRST to WP_LAST do
Mem.ReadWord(gPlayers[a].FReloading[i]);
// Íàëè÷èå ðþêçàêà:
Mem.ReadByte(b);
else FDifficult := DIFFICULT_HARD;
end;
- for a := WEAPON_KASTET to WEAPON_SUPERPULEMET do
+ for a := WP_FIRST to WP_LAST do
begin
FDifficult.WeaponPrior[a] := WEAPON_PRIOR1[a];
FDifficult.CloseWeaponPrior[a] := WEAPON_PRIOR2[a];
FDifficult.Cover := BotList[num].cover;
FDifficult.CloseJump := BotList[num].close_jump;
- for a := WEAPON_KASTET to WEAPON_SUPERPULEMET do
+ for a := WP_FIRST to WP_LAST do
begin
FDifficult.WeaponPrior[a] := BotList[num].w_prior1[a];
FDifficult.CloseWeaponPrior[a] := BotList[num].w_prior2[a];
if Srv then
begin
// Âûáðîñ îðóæèÿ:
- for a := WEAPON_KASTET to WEAPON_SUPERPULEMET do
+ for a := WP_FIRST to WP_LAST do
if FWeapon[a] then
begin
case a of
i: Byte;
begin
result := false;
- 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 FBFGFireCounter <> -1 then
+ exit;
+ if FTime[T_SWITCH] > gTime then
+ exit;
+ for i := WP_FIRST to WP_LAST do
+ if FReloading[i] > 0 then
+ exit;
result := true;
end;
FAir := AIR_DEF;
FJetFuel := 0;
- for a := WEAPON_KASTET to WEAPON_SUPERPULEMET do
+ for a := WP_FIRST to WP_LAST do
begin
FWeapon[a] := False;
FReloading[a] := 0;
FModel.SetWeapon(FCurrWeap);
- for b := A_BULLETS to A_CELLS do
+ for b := A_BULLETS to A_HIGH do
FAmmo[b] := 0;
FAmmo[A_BULLETS] := 50;
FJetSoundFly.PlayAt(FObj.X, FObj.Y);
end;
- for b := WEAPON_KASTET to WEAPON_SUPERPULEMET do
+ for b := WP_FIRST to WP_LAST do
if FReloading[b] > 0 then
if FNoReload then
FReloading[b] := 0
// Îáúåêò èãðîêà:
Obj_SaveState(@FObj, Mem);
// Òåêóùåå êîëè÷åñòâî ïàòðîíîâ:
- for i := A_BULLETS to A_CELLS do
+ for i := A_BULLETS to A_HIGH do
Mem.WriteWord(FAmmo[i]);
// Ìàêñèìàëüíîå êîëè÷åñòâî ïàòðîíîâ:
- for i := A_BULLETS to A_CELLS do
+ for i := A_BULLETS to A_HIGH do
Mem.WriteWord(FMaxAmmo[i]);
// Íàëè÷èå îðóæèÿ:
- for i := WEAPON_KASTET to WEAPON_SUPERPULEMET do
+ for i := WP_FIRST to WP_LAST do
Mem.WriteBoolean(FWeapon[i]);
// Âðåìÿ ïåðåçàðÿäêè îðóæèÿ:
- for i := WEAPON_KASTET to WEAPON_SUPERPULEMET do
+ for i := WP_FIRST to WP_LAST do
Mem.WriteWord(FReloading[i]);
// Íàëè÷èå ðþêçàêà:
if R_ITEM_BACKPACK in FRulez then
// Îáúåêò èãðîêà:
Obj_LoadState(@FObj, Mem);
// Òåêóùåå êîëè÷åñòâî ïàòðîíîâ:
- for i := A_BULLETS to A_CELLS do
+ for i := A_BULLETS to A_HIGH do
Mem.ReadWord(FAmmo[i]);
// Ìàêñèìàëüíîå êîëè÷åñòâî ïàòðîíîâ:
- for i := A_BULLETS to A_CELLS do
+ for i := A_BULLETS to A_HIGH do
Mem.ReadWord(FMaxAmmo[i]);
// Íàëè÷èå îðóæèÿ:
- for i := WEAPON_KASTET to WEAPON_SUPERPULEMET do
+ for i := WP_FIRST to WP_LAST do
Mem.ReadBoolean(FWeapon[i]);
// Âðåìÿ ïåðåçàðÿäêè îðóæèÿ:
- for i := WEAPON_KASTET to WEAPON_SUPERPULEMET do
+ for i := WP_FIRST to WP_LAST do
Mem.ReadWord(FReloading[i]);
// Íàëè÷èå ðþêçàêà:
Mem.ReadByte(b);
Exit;
end;
- for a := WEAPON_KASTET to WEAPON_SUPERPULEMET do FWeapon[a] := True;
- for a := A_BULLETS to A_CELLS do FAmmo[a] := 30000;
+ for a := WP_FIRST to WP_LAST do FWeapon[a] := True;
+ for a := A_BULLETS to A_HIGH do FAmmo[a] := 30000;
FRulez := FRulez+[R_KEY_RED, R_KEY_GREEN, R_KEY_BLUE];
end;
Inc(gNumBots);
- for a := WEAPON_KASTET to WEAPON_SUPERPULEMET do
+ for a := WP_FIRST to WP_LAST do
begin
FDifficult.WeaponPrior[a] := WEAPON_PRIOR1[a];
FDifficult.CloseWeaponPrior[a] := WEAPON_PRIOR2[a];