# HG changeset patch
# User smxx
# Date 1266499404 0
# Node ID db7c35a0e9c1eb841ba13dd4e9a061e9768bd66f
# Parent  2d25e49bc2e866387779b1a69e5d403a5c7c8c3c
Engine:
* Removed memory leaks displaying usage / syntax

diff -r 2d25e49bc2e8 -r db7c35a0e9c1 hedgewars/hwengine.pas
--- a/hedgewars/hwengine.pas	Thu Feb 18 01:02:28 2010 +0000
+++ b/hedgewars/hwengine.pas	Thu Feb 18 13:23:24 2010 +0000
@@ -437,7 +437,6 @@
 	for i:=0 to ParamCount do
 		Write(ParamStr(i) + ' ');
 	WriteLn();
-	halt(1);
 end;
 
 ////////////////////
@@ -509,7 +508,7 @@
 						cFullScreen:= ParamStr(5) = '1';
 						cShowFPS:= ParamStr(6) = '1';
 					end
-					else DisplayUsage;
+					else GameType:= gmtSyntax;
 				end
 			end;
 		end;
@@ -531,7 +530,7 @@
 				cLocaleFName:= ParamStr(10);
 				cFullScreen:= ParamStr(11) = '1';
 			end
-			else DisplayUsage;
+			else GameType:= gmtSyntax;
 		end;
 		15: begin
 			PathPrefix:= ParamStr(1);
@@ -554,9 +553,9 @@
 				val(ParamStr(14), cTimerInterval);
 				cReducedQuality:= ParamStr(15) = '1';
 			end
-			else DisplayUsage;
+			else GameType:= gmtSyntax;
 		end;
-		else DisplayUsage;
+		else GameType:= gmtSyntax;
 	end;
 
 {$IFDEF DEBUGFILE}
@@ -580,8 +579,13 @@
 	Randomize();
 
 	if GameType = gmtLandPreview then GenLandPreview()
+	else if GameType = gmtSyntax then DisplayUsage()
 	else Game();
 	freeEverything();
-	ExitCode:= 0;
+	
+	if GameType = gmtSyntax then
+		ExitCode:= 1
+	else
+		ExitCode:= 0;
 {$ENDIF}
 end.
diff -r 2d25e49bc2e8 -r db7c35a0e9c1 hedgewars/uConsts.pas
--- a/hedgewars/uConsts.pas	Thu Feb 18 01:02:28 2010 +0000
+++ b/hedgewars/uConsts.pas	Thu Feb 18 13:23:24 2010 +0000
@@ -41,7 +41,7 @@
 		
 	TGameState = (gsLandGen, gsStart, gsGame, gsChat, gsConfirm, gsExit);
 
-	TGameType = (gmtLocal, gmtDemo, gmtNet, gmtSave, gmtLandPreview);
+	TGameType = (gmtLocal, gmtDemo, gmtNet, gmtSave, gmtLandPreview, gmtSyntax);
 
 	TPathType = (ptNone, ptData, ptGraphics, ptThemes, ptCurrTheme, ptTeams, ptMaps,
 			ptMapCurrent, ptDemos, ptSounds, ptGraves, ptFonts, ptForts,