From ba177dd9743397cb43dad787fbe7748c8ea51cba Mon Sep 17 00:00:00 2001 From: binarymaster Date: Wed, 9 Aug 2017 15:38:19 +0300 Subject: [PATCH] Refactor: Constants for first and last weapon --- src/game/g_gui.pas | 2 +- src/game/g_netmsg.pas | 4 +-- src/game/g_player.pas | 62 ++++++++++++++++++++------------------ src/game/g_playermodel.pas | 18 +++++------ src/game/g_weapons.pas | 3 ++ 5 files changed, 48 insertions(+), 41 deletions(-) diff --git a/src/game/g_gui.pas b/src/game/g_gui.pas index 1516d44..c276cfd 100644 --- a/src/game/g_gui.pas +++ b/src/game/g_gui.pas @@ -2640,7 +2640,7 @@ begin if FModel = nil then Exit; - if FModel.Weapon < WEAPON_SUPERPULEMET then + if FModel.Weapon < WP_LAST then FModel.SetWeapon(FModel.Weapon+1) else FModel.SetWeapon(WEAPON_KASTET); diff --git a/src/game/g_netmsg.pas b/src/game/g_netmsg.pas index bc54015..e838a9b 100644 --- a/src/game/g_netmsg.pas +++ b/src/game/g_netmsg.pas @@ -1074,7 +1074,7 @@ begin e_Buffer_Write(@NetOut, Lives); e_Buffer_Write(@NetOut, Team); - for I := WEAPON_KASTET to WEAPON_SUPERPULEMET do + for I := WP_FIRST to WP_LAST do e_Buffer_Write(@NetOut, Byte(FWeapon[I])); for I := A_BULLETS to A_CELLS do @@ -2127,7 +2127,7 @@ begin Lives := e_Raw_Read_Byte(P); NewTeam := e_Raw_Read_Byte(P); - for I := WEAPON_KASTET to WEAPON_SUPERPULEMET do + for I := WP_FIRST to WP_LAST do FWeapon[I] := (e_Raw_Read_Byte(P) <> 0); for I := A_BULLETS to A_CELLS do diff --git a/src/game/g_player.pas b/src/game/g_player.pas index 1d03661..7dd22f8 100644 --- a/src/game/g_player.pas +++ b/src/game/g_player.pas @@ -116,7 +116,7 @@ type 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; + Weapon: Array [WP_FIRST..WP_LAST] of Boolean; Rulez: Set of R_ITEM_BACKPACK..R_BERSERK; WaitRecall: Boolean; end; @@ -218,11 +218,11 @@ type FAmmo: Array [A_BULLETS..A_CELLS] of Word; FMaxAmmo: Array [A_BULLETS..A_CELLS] of Word; - FWeapon: Array [WEAPON_KASTET..WEAPON_SUPERPULEMET] of Boolean; + 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; @@ -341,9 +341,9 @@ type 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 @@ -511,9 +511,9 @@ type 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 @@ -549,19 +549,19 @@ 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' @@ -828,10 +828,10 @@ begin for i := A_BULLETS to A_CELLS 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); @@ -997,7 +997,7 @@ begin 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]; @@ -1075,7 +1075,7 @@ begin 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]; @@ -3083,7 +3083,7 @@ begin 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 @@ -3376,9 +3376,13 @@ procedure TPlayer.RealizeCurrentWeapon(); 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; @@ -4103,7 +4107,7 @@ begin 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; @@ -4688,7 +4692,7 @@ begin 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 @@ -5394,10 +5398,10 @@ begin for i := A_BULLETS to A_CELLS 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 @@ -5534,10 +5538,10 @@ begin for i := A_BULLETS to A_CELLS 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); @@ -5600,7 +5604,7 @@ begin Exit; end; - for a := WEAPON_KASTET to WEAPON_SUPERPULEMET do FWeapon[a] := True; + for a := WP_FIRST to WP_LAST do FWeapon[a] := True; for a := A_BULLETS to A_CELLS do FAmmo[a] := 30000; FRulez := FRulez+[R_KEY_RED, R_KEY_GREEN, R_KEY_BLUE]; end; @@ -6010,7 +6014,7 @@ begin 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]; diff --git a/src/game/g_playermodel.pas b/src/game/g_playermodel.pas index b5978c9..8e895a9 100644 --- a/src/game/g_playermodel.pas +++ b/src/game/g_playermodel.pas @@ -58,7 +58,7 @@ type TModelSoundArray = Array of TModelSound; TGibsArray = Array of TGibSprite; - TWeaponPoints = Array [WEAPON_SAW..WEAPON_SUPERPULEMET] of + TWeaponPoints = Array [WP_FIRST + 1..WP_LAST] of Array [A_STAND..A_PAIN] of Array [D_LEFT..D_RIGHT] of Array of TPoint; @@ -143,18 +143,18 @@ const FLAG_BASEPOINT: TPoint = (X:16; Y:43); FLAG_DEFPOINT: TPoint = (X:32; Y:16); FLAG_DEFANGLE = -20; - WEAPONBASE: Array [WEAPON_SAW..WEAPON_SUPERPULEMET] of TPoint = + WEAPONBASE: Array [WP_FIRST + 1..WP_LAST] of TPoint = ((X:8; Y:4), (X:8; Y:8), (X:16; Y:16), (X:16; Y:24), (X:16; Y:16), (X:24; Y:24), (X:16; Y:16), (X:24; Y:24), (X:16; Y:16)); AnimNames: Array [A_STAND..A_PAIN] of String = ('StandAnim','WalkAnim','Die1Anim','Die2Anim','AttackAnim', 'SeeUpAnim','SeeDownAnim','AttackUpAnim','AttackDownAnim','PainAnim'); - WeapNames: Array [WEAPON_SAW..WEAPON_SUPERPULEMET] of String = + WeapNames: Array [WP_FIRST + 1..WP_LAST] of String = ('csaw', 'hgun', 'sg', 'ssg', 'mgun', 'rkt', 'plz', 'bfg', 'spl'); var - WeaponID: Array [WEAPON_SAW..WEAPON_SUPERPULEMET] of + WeaponID: Array [WP_FIRST + 1..WP_LAST] of Array [W_POS_NORMAL..W_POS_DOWN] of Array [W_ACT_NORMAL..W_ACT_FIRE] of DWORD; PlayerModelsArray: Array of TPlayerModelInfo; @@ -163,7 +163,7 @@ procedure g_PlayerModel_LoadData(); var a: Integer; begin - for a := WEAPON_SAW to WEAPON_SUPERPULEMET do + for a := WP_FIRST + 1 to WP_LAST do begin g_Texture_CreateWAD(WeaponID[a][W_POS_NORMAL][W_ACT_NORMAL], GameWAD+':WEAPONS\'+UpperCase(WeapNames[a])); g_Texture_CreateWAD(WeaponID[a][W_POS_NORMAL][W_ACT_FIRE], GameWAD+':WEAPONS\'+UpperCase(WeapNames[a])+'_FIRE'); @@ -313,7 +313,7 @@ begin Exit; end; - for aa := WEAPON_SAW to WEAPON_SUPERPULEMET do + for aa := WP_FIRST + 1 to WP_LAST do for bb := A_STAND to A_PAIN do for cc := D_LEFT to D_RIGHT do begin @@ -391,7 +391,7 @@ begin end; ok := True; - for aa := WEAPON_SAW to WEAPON_SUPERPULEMET do + for aa := WP_FIRST + 1 to WP_LAST do for bb := A_STAND to A_PAIN do if not (bb in [A_DIE1, A_DIE2, A_PAIN]) then begin @@ -594,7 +594,7 @@ var i: DWORD; a, b, c: Integer; begin - for a := WEAPON_SAW to WEAPON_SUPERPULEMET do + for a := WP_FIRST + 1 to WP_LAST do for b := W_POS_NORMAL to W_POS_DOWN do for c := W_ACT_NORMAL to W_ACT_FIRE do e_DeleteTexture(WeaponID[a][b][c]); @@ -703,7 +703,7 @@ begin if FDrawWeapon and (not (FCurrentAnimation in [A_DIE1, A_DIE2, A_PAIN])) and - (FCurrentWeapon in [WEAPON_SAW..WEAPON_SUPERPULEMET]) then + (FCurrentWeapon in [WP_FIRST + 1..WP_LAST]) then begin if FCurrentAnimation in [A_SEEUP, A_ATTACKUP] then pos := W_POS_UP diff --git a/src/game/g_weapons.pas b/src/game/g_weapons.pas index 68843d2..c6f09a9 100644 --- a/src/game/g_weapons.pas +++ b/src/game/g_weapons.pas @@ -106,6 +106,9 @@ const WEAPON_MANCUB_FIRE = 25; WEAPON_SKEL_FIRE = 26; + WP_FIRST = WEAPON_KASTET; + WP_LAST = WEAPON_SUPERPULEMET; + implementation uses -- 2.29.2