DEADSOFTWARE

game: cosmetic changes for stats
[d2df-sdl.git] / src / game / g_player.pas
index d0275d093fca62244370f201ff0cabb68bcb98f8..22813f1dfac378f0f37af6fa05e0c3e7c9faaa1c 100644 (file)
@@ -112,6 +112,7 @@ type
     Name: String;
     Team: Byte;
     Frags: SmallInt;
+    Assists: SmallInt;
     Deaths: SmallInt;
     Lives: Byte;
     Kills: Word;
@@ -160,6 +161,7 @@ type
     FKills:     Integer;
     FMonsterKills: Integer;
     FFrags:     Integer;
+    FAssists:   Integer;
     FFragCombo: Byte;
     FLastFrag:  LongWord;
     FComboEvnt: Integer;
@@ -383,6 +385,7 @@ type
     property    Air:   Integer read FAir write FAir;
     property    JetFuel: Integer read FJetFuel write FJetFuel;
     property    Frags: Integer read FFrags write FFrags;
+    property    Assists: Integer read FAssists write FAssists;
     property    Death: Integer read FDeath write FDeath;
     property    Kills: Integer read FKills write FKills;
     property    CurrWeap: Byte read FCurrWeap write FCurrWeap;
@@ -419,6 +422,7 @@ type
     property eAir:   Integer read FAir write FAir;
     property eJetFuel: Integer read FJetFuel write FJetFuel;
     property eFrags: Integer read FFrags write FFrags;
+    property eAssists: Integer read FAssists write FAssists;
     property eDeath: Integer read FDeath write FDeath;
     property eKills: Integer read FKills write FKills;
     property eCurrWeap: Byte read FCurrWeap write FCurrWeap;
@@ -1497,6 +1501,7 @@ begin
         Name := gPlayers[a].FName;
         Team := gPlayers[a].FTeam;
         Frags := gPlayers[a].FFrags;
+        Assists := gPlayers[a].FAssists;
         Deaths := gPlayers[a].FDeath;
         Kills := gPlayers[a].FKills;
         Color := gPlayers[a].FModel.Color;
@@ -2779,7 +2784,7 @@ var
   X, Y, SY, a, p, m: Integer;
   tw, th: Word;
   cw, ch: Byte;
-  s: string;
+  s, t: string;
   stat: TPlayerStatArray;
 begin
   X := gPlayerScreenSize.X;
@@ -2835,10 +2840,12 @@ begin
     if gShowStat then
     begin
       s := IntToStr(Frags);
+      t := IntToStr(Assists);
       e_CharFont_GetSize(gMenuFont, s, tw, th);
       e_CharFont_PrintEx(gMenuFont, X-16-tw, Y, s, _RGB(255, 0, 0));
 
       s := '';
+      t := '';
       p := 1;
       m := 0;
       stat := g_Player_GetStats();
@@ -2854,10 +2861,16 @@ begin
           end;
       end;
 
+        // FRAGS
       s := IntToStr(p)+' / '+IntToStr(Length(stat))+' ';
       if Frags >= m then s := s+'+' else s := s+'-';
       s := s+IntToStr(Abs(Frags-m));
 
+        // ASSISTS
+      t := IntToStr(p)+' / '+IntToStr(Length(stat))+' ';
+      if Assists >= m then t := t+'+' else t := t+'-';
+      t := t+IntToStr(Abs(Assists-m));
+
       e_CharFont_GetSize(gMenuSmallFont, s, tw, th);
       e_CharFont_PrintEx(gMenuSmallFont, X-16-tw, Y+32, s, _RGB(255, 0, 0));
     end;
@@ -3839,6 +3852,31 @@ begin
   FNextWeapDelay := 0;
 end;
 
+
+// Assists block
+{procedure TPlayer.Assist(KillType: Byte; SpawnerUID: Word);
+var
+  DoAssists: Boolean;
+  AP: TPlayer;
+
+  procedure Accumulate(FDamage: Byte;);
+  begin
+
+  end;
+
+
+begin
+  DoAssists := (gGameSettings.GameMode = GM_TDM) or (gGameSettings.GameMode = GM_CTF);
+  if DoAssists then
+  begin
+    if (FAccumulatedDamage >= 65) then
+    begin
+      Inc(AP.FAssists);
+    end;
+  end;
+end;}
+
+
 function TPlayer.hasAmmoForWeapon (weapon: Byte): Boolean;
 begin
   result := false;
@@ -4515,6 +4553,7 @@ begin
   FNoTarget := False;
   FNoReload := False;
   FFrags := 0;
+  FAssists := 0;
   FLastFrag := 0;
   FComboEvnt := -1;
   FKills := 0;
@@ -6155,6 +6194,8 @@ begin
   utils.writeInt(st, LongInt(FMonsterKills));
   // Ôðàãîâ
   utils.writeInt(st, LongInt(FFrags));
+  // Àññèñòîâ
+  utils.writeInt(st, LongInt(FAssists));
   // Ôðàãîâ ïîäðÿä
   utils.writeInt(st, Byte(FFragCombo));
   // Âðåìÿ ïîñëåäíåãî ôðàãà
@@ -6259,6 +6300,8 @@ begin
   FMonsterKills := utils.readLongInt(st);
   // Ôðàãîâ
   FFrags := utils.readLongInt(st);
+  // Àññèñòîâ
+  FAssists := utils.readLongInt(st);
   // Ôðàãîâ ïîäðÿä
   FFragCombo := utils.readByte(st);
   // Âðåìÿ ïîñëåäíåãî ôðàãà