hedgewars/uAmmos.pas
changeset 371 731ad6d27bd1
parent 351 29bc9c36ad5f
child 393 db01cc79f278
equal deleted inserted replaced
370:c75410fe3133 371:731ad6d27bd1
     7 
     7 
     8 procedure AddAmmoStore(s: shortstring);
     8 procedure AddAmmoStore(s: shortstring);
     9 procedure AssignStores;
     9 procedure AssignStores;
    10 procedure AddAmmo(Hedgehog: pointer; ammo: TAmmoType);
    10 procedure AddAmmo(Hedgehog: pointer; ammo: TAmmoType);
    11 function  HHHasAmmo(Hedgehog: pointer; Ammo: TAmmoType): boolean;
    11 function  HHHasAmmo(Hedgehog: pointer; Ammo: TAmmoType): boolean;
    12 procedure PackAmmo(Ammo: PHHAmmo; Slot: integer);
    12 procedure PackAmmo(Ammo: PHHAmmo; Slot: LongInt);
    13 procedure OnUsedAmmo(Ammo: PHHAmmo);
    13 procedure OnUsedAmmo(Ammo: PHHAmmo);
    14 
    14 
    15 implementation
    15 implementation
    16 uses uMisc, uTeams, uGears;
    16 uses uMisc, uTeams, uGears;
    17 type TAmmoCounts = array[TAmmoType] of Longword;
    17 type TAmmoCounts = array[TAmmoType] of Longword;
    76       end
    76       end
    77 end;
    77 end;
    78 
    78 
    79 procedure AddAmmo(Hedgehog: pointer; ammo: TAmmoType);
    79 procedure AddAmmo(Hedgehog: pointer; ammo: TAmmoType);
    80 var ammos: TAmmoCounts;
    80 var ammos: TAmmoCounts;
    81     slot, ami: integer;
    81     slot, ami: LongInt;
    82     hhammo: PHHAmmo;
    82     hhammo: PHHAmmo;
    83 begin
    83 begin
    84 FillChar(ammos, sizeof(ammos), 0);
    84 FillChar(ammos, sizeof(ammos), 0);
    85 hhammo:= PHedgehog(Hedgehog)^.Ammo;
    85 hhammo:= PHedgehog(Hedgehog)^.Ammo;
    86 
    86 
    91 
    91 
    92 if ammos[ammo] <> AMMO_INFINITE then inc(ammos[ammo]);
    92 if ammos[ammo] <> AMMO_INFINITE then inc(ammos[ammo]);
    93 FillAmmoStore(hhammo, ammos)
    93 FillAmmoStore(hhammo, ammos)
    94 end;
    94 end;
    95 
    95 
    96 procedure PackAmmo(Ammo: PHHAmmo; Slot: integer);
    96 procedure PackAmmo(Ammo: PHHAmmo; Slot: LongInt);
    97 var ami: integer;
    97 var ami: LongInt;
    98     b: boolean;
    98     b: boolean;
    99 begin
    99 begin
   100     repeat
   100     repeat
   101       b:= false;
   101       b:= false;
   102       ami:= 0;
   102       ami:= 0;
   127              end
   127              end
   128      end
   128      end
   129 end;
   129 end;
   130 
   130 
   131 function  HHHasAmmo(Hedgehog: pointer; Ammo: TAmmoType): boolean;
   131 function  HHHasAmmo(Hedgehog: pointer; Ammo: TAmmoType): boolean;
   132 var slot, ami: integer;
   132 var slot, ami: LongInt;
   133 begin
   133 begin
   134 Slot:= Ammoz[Ammo].Slot;
   134 Slot:= Ammoz[Ammo].Slot;
   135 ami:= 0;
   135 ami:= 0;
   136 while (ami <= cMaxSlotAmmoIndex) do
   136 while (ami <= cMaxSlotAmmoIndex) do
   137       begin
   137       begin