DEADSOFTWARE

fix file opening from command line
[d2df-editor.git] / src / editor / Editor.lpr
index 421a095601225ce80cbc610fc7e1f90fd9b0f996..171c8564c25c7313e70c80e65dc5cd8d0ee7aa10 100644 (file)
@@ -52,6 +52,7 @@ uses
   ImagingTypes,
   Imaging,
   ImagingUtility,
+  g_options in 'g_options.pas',
   g_language in 'g_language.pas',
   f_selectlang in 'f_selectlang.pas' {SelectLanguageForm};
 
@@ -88,6 +89,30 @@ uses
           Inc(i);
           LogFileName := ParamStr(i);
         end;
+      end
+      else if p = '--config' then
+      begin
+        if i + 1 <= ParamCount then
+        begin
+          Inc(i);
+          CfgFileName := ParamStr(i);
+        end;
+      end
+      else if p = '--game-wad' then
+      begin
+        if i + 1 <= ParamCount then
+        begin
+          Inc(i);
+          GameWad := ParamStr(i);
+        end;
+      end
+      else if p = '--editor-wad' then
+      begin
+        if i + 1 <= ParamCount then
+        begin
+          Inc(i);
+          EditorWad := ParamStr(i);
+        end;
       end;
       Inc(i);
     end;
@@ -95,15 +120,11 @@ uses
   end;
 
   procedure CheckParamFiles;
-    var i: Integer; path: AnsiString;
+    var i: Integer;
   begin
     i := ParamFileIndex;
     if i <= ParamCount then
-    begin
-      path := ParamStr(i);
-      if path <> '' then
-        OpenMap(path, '');
-    end;
+      StartMap := ParamStr(i);
   end;
 
   procedure InitLogs;
@@ -127,6 +148,11 @@ begin
   Application.AddOnExceptionHandler(THandlerObject.ExceptionHandler, True);
   Application.Initialize();
 
+  EditorDir := ExtractFilePath(Application.ExeName);
+  CfgFileName := EditorDir + DirectorySeparator + 'Editor.cfg';
+  GameWad := EditorDir + DirectorySeparator + 'data' + DirectorySeparator + 'game.wad';
+  EditorWad := EditorDir + DirectorySeparator + 'data' + DirectorySeparator + 'editor.wad';
+
   CheckParamOptions;
   InitLogs;