diff -r d44ae883896b -r 13a53315ae18 hedgewars/uAmmos.pas --- a/hedgewars/uAmmos.pas Wed Feb 24 16:41:35 2010 +0000 +++ b/hedgewars/uAmmos.pas Thu Feb 25 04:04:26 2010 +0000 @@ -88,7 +88,7 @@ ammos: TAmmoCounts; substr: shortstring; // TEMPORARY begin -TryDo(byte(s[0]) = byte(ord(High(TAmmoType))) * 2, 'Invalid ammo scheme (incompatible frontend)', true); +TryDo(byte(s[0]) = byte(ord(High(TAmmoType))) * 4, 'Invalid ammo scheme (incompatible frontend)', true); // FIXME - TEMPORARY hardcoded check on shoppa pending creation of crate *type* probability editor substr:= Copy(s,1,15); @@ -106,6 +106,8 @@ if a <> amNothing then begin Ammoz[a].Probability:= probability[byte(s[ord(a) + ord(High(TAmmoType))]) - byte('0')]; + Ammoz[a].SkipTurns:= (byte(s[ord(a) + ord(High(TAmmoType)) + ord(High(TAmmoType))]) - byte('0')); + Ammoz[a].NumberInCase:= (byte(s[ord(a) + ord(High(TAmmoType)) + ord(High(TAmmoType)) + ord(High(TAmmoType))]) - byte('0')); if (TrainingFlags and tfIgnoreDelays) <> 0 then Ammoz[a].SkipTurns:= 0; cnt:= byte(s[ord(a)]) - byte('0'); // avoid things we already have infinite number @@ -114,6 +116,8 @@ cnt:= AMMO_INFINITE; Ammoz[a].Probability:= 0 end; + if Ammoz[a].NumberInCase = 0 then Ammoz[a].Probability:= 0; + // avoid things we already have by scheme // merge this into DisableSomeWeapons ? if ((a = amLowGravity) and ((GameFlags and gfLowGravity) <> 0)) or @@ -125,7 +129,6 @@ Ammoz[a].Probability:= 0 end; ammos[a]:= cnt; - if shoppa then Ammoz[a].NumberInCase:= 1; // FIXME - TEMPORARY remove when crate number in case editor is added if ((GameFlags and gfKing) <> 0) and ((GameFlags and gfPlaceHog) = 0) and (Ammoz[a].SkipTurns = 0) and (a <> amTeleport) and (a <> amSkip) then Ammoz[a].SkipTurns:= 1;