diff -r b29c1358498d -r bd1909984a09 hedgewars/uWorld.pas --- a/hedgewars/uWorld.pas Mon Mar 01 19:57:09 2010 +0000 +++ b/hedgewars/uWorld.pas Mon Mar 01 22:25:57 2010 +0000 @@ -78,7 +78,7 @@ g: ansistring; // helper functions to create the goal/game mode string - function AddGoal(s: ansistring; gf: LongInt; si: TGoalStrId; i: LongInt): ansistring; + function AddGoal(s: ansistring; gf: longword; si: TGoalStrId; i: LongInt): ansistring; var t: ansistring; begin if (GameFlags and gf) <> 0 then @@ -89,7 +89,7 @@ AddGoal:= s; end; - function AddGoal(s: ansistring; gf: LongInt; si: TGoalStrId): ansistring; + function AddGoal(s: ansistring; gf: longword; si: TGoalStrId): ansistring; begin if (GameFlags and gf) <> 0 then s:= s + trgoal[si] + '|'; @@ -117,8 +117,25 @@ CurrentTeam:= ClansArray[0]^.Teams[0]; end; -// if special game flags are set, add them to the game mode notice window and then show it +// if special game flags/settings are changed, add them to the game mode notice window and then show it g:= ''; // no text/things to note yet + +// modified damage modificator? +if cDamagePercent <> 100 then + g:= AddGoal(g, gfAny, gidDamageModifier, cDamagePercent); + +// modified mine timers? +if cMinesTime <> 3000 then + begin + if cMinesTime = 0 then + g:= AddGoal(g, gfMines, gidNoMineTimer) + else if cMinesTime < 0 then + g:= AddGoal(g, gfMines, gidRandomMineTimer) + else + g:= AddGoal(g, gfMines, gidMineTimer, cMinesTime div 1000); + end; + +// check different game flags g:= AddGoal(g, gfForts, gidForts); // forts? g:= AddGoal(g, gfLowGravity, gidLowGravity); // low gravity? g:= AddGoal(g, gfInvulnerable, gidInvulnerable); // invulnerability? @@ -129,15 +146,7 @@ g:= AddGoal(g, gfArtillery, gidArtillery); // artillery? g:= AddGoal(g, gfSolidLand, gidSolidLand); // solid land? g:= AddGoal(g, gfSharedAmmo, gidSharedAmmo); // shared ammo? -if cMinesTime <> 3000 then // changed mine timer? - begin - if cMinesTime = 0 then - g:= AddGoal(g, gfMines, gidNoMineTimer) - else if cMinesTime < 0 then - g:= AddGoal(g, gfMines, gidRandomMineTimer) - else - g:= AddGoal(g, gfMines, gidMineTimer, cMinesTime div 1000); - end; + // if the string has been set, show it for (default timeframe) seconds if g <> '' then ShowMission(trgoal[gidCaption], trgoal[gidSubCaption], g, 1, 0);