hedgewars/GSHandlers.inc
changeset 602 f7628ebfccde
parent 601 78a68cc4d846
child 652 4cca0c7de609
equal deleted inserted replaced
601:78a68cc4d846 602:f7628ebfccde
   818 begin
   818 begin
   819 if (Gear^.Message and gm_Destroy) > 0 then
   819 if (Gear^.Message and gm_Destroy) > 0 then
   820    begin
   820    begin
   821    DeleteGear(Gear);
   821    DeleteGear(Gear);
   822    FreeActionsList;
   822    FreeActionsList;
   823    with CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog] do
   823    with CurrentHedgehog^ do
   824      if Gear <> nil then Gear^.Message:= Gear^.Message and not (gm_LJump or gm_HJump);
   824      if Gear <> nil then Gear^.Message:= Gear^.Message and not (gm_LJump or gm_HJump);
   825    exit
   825    exit
   826    end;
   826    end;
   827 
   827 
   828 if Gear^.Damage > 0 then
   828 if Gear^.Damage > 0 then
  1202    Msg:= Gear^.Message and not gm_Switch;
  1202    Msg:= Gear^.Message and not gm_Switch;
  1203    DeleteGear(Gear);
  1203    DeleteGear(Gear);
  1204    OnUsedAmmo(PHedgehog(HHGear^.Hedgehog)^);
  1204    OnUsedAmmo(PHedgehog(HHGear^.Hedgehog)^);
  1205    ApplyAmmoChanges(PHedgehog(HHGear^.Hedgehog)^);
  1205    ApplyAmmoChanges(PHedgehog(HHGear^.Hedgehog)^);
  1206 
  1206 
  1207    HHGear:= CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear;
  1207    HHGear:= CurrentHedgehog^.Gear;
  1208    ApplyAmmoChanges(PHedgehog(HHGear^.Hedgehog)^);
  1208    ApplyAmmoChanges(PHedgehog(HHGear^.Hedgehog)^);
  1209    HHGear^.Message:= Msg;
  1209    HHGear^.Message:= Msg;
  1210    exit
  1210    exit
  1211    end;
  1211    end;
  1212 
  1212 
  1213 if (Gear^.Message and gm_Switch) <> 0 then
  1213 if (Gear^.Message and gm_Switch) <> 0 then
  1214    begin
  1214    begin
  1215    HHGear:= CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear;
  1215    HHGear:= CurrentHedgehog^.Gear;
  1216    HHGear^.Message:= HHGear^.Message and not gm_Switch;
  1216    HHGear^.Message:= HHGear^.Message and not gm_Switch;
  1217    State:= HHGear^.State;
  1217    State:= HHGear^.State;
  1218    HHGear^.State:= 0;
  1218    HHGear^.State:= 0;
  1219    HHGear^.Active:= false;
  1219    HHGear^.Active:= false;
  1220    HHGear^.Z:= cHHZ;
  1220    HHGear^.Z:= cHHZ;
  1221    RemoveGearFromList(HHGear);
  1221    RemoveGearFromList(HHGear);
  1222    InsertGearToList(HHGear);
  1222    InsertGearToList(HHGear);
  1223 
  1223 
  1224    repeat
  1224    repeat
  1225      CurrentTeam^.CurrHedgehog:= Succ(CurrentTeam^.CurrHedgehog) mod (CurrentTeam^.HedgehogsNumber);
  1225      CurrentTeam^.CurrHedgehog:= Succ(CurrentTeam^.CurrHedgehog) mod (CurrentTeam^.HedgehogsNumber);
  1226    until (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear <> nil);
  1226    until (CurrentHedgehog^.Gear <> nil);
  1227 
  1227 
  1228    HHGear:= CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear;
  1228    HHGear:= CurrentHedgehog^.Gear;
  1229    HHGear^.State:= State;
  1229    HHGear^.State:= State;
  1230    HHGear^.Active:= true;
  1230    HHGear^.Active:= true;
  1231    FollowGear:= HHGear;
  1231    FollowGear:= HHGear;
  1232    HHGear^.Z:= cCurrHHZ;
  1232    HHGear^.Z:= cCurrHHZ;
  1233    RemoveGearFromList(HHGear);
  1233    RemoveGearFromList(HHGear);