hedgewars/uTeams.pas
changeset 146 458f4f58c1b6
parent 105 e7cb9bb4a9de
child 162 4822f6face35
equal deleted inserted replaced
145:e593d5266e01 146:458f4f58c1b6
    64              CrossHairRect,
    64              CrossHairRect,
    65              GraveRect, HealthRect: TSDL_Rect;
    65              GraveRect, HealthRect: TSDL_Rect;
    66              GraveName: string;
    66              GraveName: string;
    67              FortName: string;
    67              FortName: string;
    68              TeamHealth: integer;
    68              TeamHealth: integer;
       
    69              TeamHealthBarWidth: integer;
    69              DrawHealthY: integer;
    70              DrawHealthY: integer;
    70              AttackBar: LongWord;
    71              AttackBar: LongWord;
    71              end;
    72              end;
    72 
    73 
    73 var CurrentTeam: PTeam = nil;
    74 var CurrentTeam: PTeam = nil;
   328 procedure RecountTeamHealth(team: PTeam);
   329 procedure RecountTeamHealth(team: PTeam);
   329 var i: integer;
   330 var i: integer;
   330 begin
   331 begin
   331 with team^ do
   332 with team^ do
   332      begin
   333      begin
   333      TeamHealth:= 0;
   334      TeamHealthBarWidth:= 0;
   334      for i:= 0 to cMaxHHIndex do
   335      for i:= 0 to cMaxHHIndex do
   335          if Hedgehogs[i].Gear <> nil then
   336          if Hedgehogs[i].Gear <> nil then
   336             inc(TeamHealth, Hedgehogs[i].Gear.Health);
   337             inc(TeamHealthBarWidth, Hedgehogs[i].Gear.Health);
   337      if TeamHealth > MaxTeamHealth then
   338      TeamHealth:= TeamHealthBarWidth;
       
   339      if TeamHealthBarWidth > MaxTeamHealth then
   338         begin
   340         begin
   339         MaxTeamHealth:= TeamHealth;
   341         MaxTeamHealth:= TeamHealthBarWidth;
   340         RecountAllTeamsHealth;
   342         RecountAllTeamsHealth;
   341         end else TeamHealth:= (TeamHealth * cTeamHealthWidth) div MaxTeamHealth
   343         end else TeamHealthBarWidth:= (TeamHealthBarWidth * cTeamHealthWidth) div MaxTeamHealth
   342      end;
   344      end;
   343 // FIXME: at the game init, gtTeamHealthSorters are created for each team, and they work simultaneously
   345 // FIXME: at the game init, gtTeamHealthSorters are created for each team, and they work simultaneously
   344 AddGear(0, 0, gtTeamHealthSorter, 0)
   346 AddGear(0, 0, gtTeamHealthSorter, 0)
   345 end;
   347 end;
   346 
   348