# HG changeset patch # User nemo # Date 1323275703 18000 # Node ID 74a04089bb56031f5d463d875762ac055e01e3ad # Parent 8ba891d34ebab03e058cffcba3a171833d7366b0 Suggestion of sheepluva's - disable timebox in crates after SD, and set to disabled in Ammo. Also disable switch hedgehog for teams of 1 hedgehog in size, and try and correct what appears to be a bug in reserved hats. diff -r 8ba891d34eba -r 74a04089bb56 hedgewars/uAmmos.pas --- a/hedgewars/uAmmos.pas Wed Dec 07 17:55:23 2011 +0400 +++ b/hedgewars/uAmmos.pas Wed Dec 07 11:35:03 2011 -0500 @@ -428,11 +428,10 @@ for t:= 0 to Pred(TeamsCount) do with TeamsArray[t]^ do for i:= 0 to cMaxHHIndex do - if Hedgehogs[i].Gear <> nil then - begin - FillAmmoStore(Hedgehogs[i].Ammo, InitialCounts[Hedgehogs[i].AmmoStore]); - Hedgehogs[i].CurAmmoType:= amNothing - end; + begin + FillAmmoStore(Hedgehogs[i].Ammo, InitialCounts[Hedgehogs[i].AmmoStore]); + Hedgehogs[i].CurAmmoType:= amNothing + end; for a:= Low(TAmmoType) to High(TAmmoType) do if Ammoz[a].SkipTurns >= 10000 then dec(Ammoz[a].SkipTurns,10000) diff -r 8ba891d34eba -r 74a04089bb56 hedgewars/uGears.pas --- a/hedgewars/uGears.pas Wed Dec 07 17:55:23 2011 +0400 +++ b/hedgewars/uGears.pas Wed Dec 07 11:35:03 2011 -0500 @@ -39,8 +39,14 @@ procedure freeModule; function SpawnCustomCrateAt(x, y: LongInt; crate: TCrateType; content: Longword ): PGear; function SpawnFakeCrateAt(x, y: LongInt; crate: TCrateType; explode: boolean; poison: boolean ): PGear; +<<<<<<< local function GetAmmo: TAmmoType; function GetUtility: TAmmoType; +======= +function GetAmmo(Hedgehog: PHedgehog): TAmmoType; +function GetUtility(Hedgehog: PHedgehog): TAmmoType; +procedure ResurrectHedgehog(gear: PGear); +>>>>>>> other procedure HideHog(HH: PHedgehog); procedure RestoreHog(HH: PHedgehog); procedure ProcessGears; @@ -350,6 +356,8 @@ ChangeToSDClouds; ChangeToSDFlakes; glClearColor(SDSkyColor.r * (SDTint/255) / 255, SDSkyColor.g * (SDTint/255) / 255, SDSkyColor.b * (SDTint/255) / 255, 0.99); + Ammoz[amTardis].SkipTurns:= 9999; + Ammoz[amTardis].Probability:= 0; end; AddCaption(trmsg[sidSuddenDeath], cWhiteColor, capgrpGameState); playSound(sndSuddenDeath); @@ -1104,7 +1112,7 @@ SpawnFakeCrateAt := FollowGear; end; -function GetAmmo: TAmmoType; +function GetAmmo(Hedgehog: PHedgehog): TAmmoType; var t, aTot: LongInt; i: TAmmoType; begin @@ -1129,14 +1137,14 @@ GetAmmo:= i end; -function GetUtility: TAmmoType; +function GetUtility(Hedgehog: PHedgehog): TAmmoType; var t, uTot: LongInt; i: TAmmoType; begin uTot:= 0; for i:= Low(TAmmoType) to High(TAmmoType) do - if (Ammoz[i].Ammo.Propz and ammoprop_Utility) <> 0 then + if ((Ammoz[i].Ammo.Propz and ammoprop_Utility) <> 0) and ((Hedgehog^.Team^.HedgehogsNumber > 1) or (Ammoz[i].Ammo.AmmoType <> amSwitch)) then inc(uTot, Ammoz[i].Probability); t:= uTot; @@ -1147,7 +1155,7 @@ while t >= 0 do begin inc(i); - if (Ammoz[i].Ammo.Propz and ammoprop_Utility) <> 0 then + if ((Ammoz[i].Ammo.Propz and ammoprop_Utility) <> 0) and ((Hedgehog^.Team^.HedgehogsNumber > 1) or (Ammoz[i].Ammo.AmmoType <> amSwitch)) then dec(t, Ammoz[i].Probability) end end; diff -r 8ba891d34eba -r 74a04089bb56 hedgewars/uGearsHedgehog.pas --- a/hedgewars/uGearsHedgehog.pas Wed Dec 07 17:55:23 2011 +0400 +++ b/hedgewars/uGearsHedgehog.pas Wed Dec 07 11:35:03 2011 -0500 @@ -551,8 +551,8 @@ else begin for i:= 0 to GameTicks and $7F do GetRandom(2); // Burn some random numbers - if Gear^.Pos = posCaseUtility then a:= GetUtility - else a:= GetAmmo + if Gear^.Pos = posCaseUtility then a:= GetUtility(HH^.Hedgehog) + else a:= GetAmmo(HH^.Hedgehog) end; AddAmmo(HH^.Hedgehog^, a); // Possibly needs to check shared clan ammo game flag once added. diff -r 8ba891d34eba -r 74a04089bb56 hedgewars/uStore.pas --- a/hedgewars/uStore.pas Wed Dec 07 17:55:23 2011 +0400 +++ b/hedgewars/uStore.pas Wed Dec 07 11:35:03 2011 -0500 @@ -199,7 +199,7 @@ if Hat <> 'NoHat' then begin if (Length(Hat) > 39) and (Copy(Hat,1,8) = 'Reserved') and (Copy(Hat,9,32) = PlayerHash) then - LoadHedgehogHat(Gear, 'Reserved/' + Copy(Hat,9,Length(s)-8)) + LoadHedgehogHat(Gear, 'Reserved/' + Copy(Hat,9,Length(Hat)-8)) else LoadHedgehogHat(Gear, Hat); end