DEADSOFTWARE

Maps can be saved to zip
[d2df-editor.git] / src / editor / g_map.pas
index fa091deb2cb1c32b6aed93c8fa2975c85e798385..15a83dcd348800152892aca67197aa3577f4fc69 100644 (file)
@@ -246,7 +246,7 @@ implementation
 
 uses
   BinEditor, g_textures, Dialogs, SysUtils, CONFIG, f_main,
-  Forms, Math, f_addresource_texture, WADEDITOR, g_language;
+  Forms, Math, f_addresource_texture, WADEDITOR, g_language, g_resources;
 
 const
   OLD_ITEM_MEDKIT_SMALL          = 1;
@@ -1053,7 +1053,6 @@ end;
 
 function SaveMap(Res: String): Pointer;
 var
-  WAD: TWADEditor_1;
   MapWriter: TMapWriter_1;
   textures: TTexturesRec1Array;
   panels: TPanelsRec1Array;
@@ -1071,7 +1070,6 @@ var
   Len: LongWord;
 
 begin
-  WAD := nil;
   textures := nil;
   panels := nil;
   items := nil;
@@ -1083,17 +1081,6 @@ begin
   Data := nil;
   Len := 0;
 
-// Открываем WAD, если надо:
-  if Res <> '' then
-  begin
-    WAD := TWADEditor_1.Create();
-    g_ProcessResourceStr(Res, FileName, SectionName, ResName);
-    if not WAD.ReadFile(FileName) then
-      WAD.FreeWAD();
-
-    WAD.CreateImage();
-  end;
-
   MapWriter := TMapWriter_1.Create();
 
 // Сохраняем заголовок:
@@ -1350,19 +1337,17 @@ begin
 
 // Записываем в WAD, если надо:
   if Res <> '' then
-    begin
-      s := utf2win(ResName);
-      WAD.RemoveResource('', s);
-      WAD.AddResource(Data, Len, s, '');
-      WAD.SaveTo(FileName);
-
-      FreeMem(Data);
-      WAD.Free();
-
-      Result := nil;
-    end
+  begin
+    g_ProcessResourceStr(Res, FileName, SectionName, ResName);
+    g_AddResource(FileName, SectionName, utf2win(ResName), Data, Len, a);
+    ASSERT(a = 0);
+    FreeMem(Data);
+    Result := nil
+  end
   else
-    Result := Data;
+  begin
+    Result := Data
+  end
 end;
 
 procedure AddTexture(res: String; Error: Boolean);
@@ -1383,7 +1368,6 @@ end;
 
 function LoadMap(Res: String): Boolean;
 var
-  WAD: TWADEditor_1;
   MapReader: TMapReader_1;
   Header: TMapHeaderRec_1;
   textures: TTexturesRec1Array;
@@ -1423,24 +1407,10 @@ begin
   MainForm.lLoad.Caption := _lc[I_LOAD_WAD];
   Application.ProcessMessages();
 
-// Открываем WAD:
-  WAD := TWADEditor_1.Create();
+// Читаем ресурс карты
   g_ProcessResourceStr(Res, FileName, SectionName, ResName);
-
-  if not WAD.ReadFile(FileName) then
-  begin
-    WAD.Free();
-    Exit;
-  end;
-
-// Читаем ресурс карты:
-  if not WAD.GetResource('', utf2win(ResName), pData, Len) then
-  begin
-    WAD.Free();
-    Exit;
-  end;
-
-  WAD.Free();
+  g_ReadResource(FileName, SectionName, ResName, pData, Len);
+  if pData = nil then Exit;
 
   MapReader := TMapReader_1.Create();