DEADSOFTWARE

no more old-styled map structured; sadly, most triggers aren't working; also, save...
[d2df-sdl.git] / src / game / g_gui.pas
index 45b2364f8adba30e40aa89565fc3648bfd26e24a..d7735ab374d568a4e51cf47c543f1a2c458d7522 100644 (file)
@@ -2775,10 +2775,9 @@ end;
 procedure TGUIMapPreview.SetMap(Res: string);
 var
   WAD: TWADFile;
-  //MapReader: TMapReader_1;
-  panels: TPanelsRec1Array;
-  header: TMapHeaderRec_1;
-  a: Integer;
+  panlist: TDynField;
+  pan: TDynRecord;
+  //header: TMapHeaderRec_1;
   FileName: string;
   Data: Pointer;
   Len: Integer;
@@ -2815,48 +2814,36 @@ begin
     raise;
   end;
 
-  {
-  MapReader := TMapReader_1.Create();
-  if not MapReader.LoadMap(Data) then
-  begin
-    FreeMem(Data);
-    MapReader.Free();
-    FMapSize.X := 0;
-    FMapSize.Y := 0;
-    FScale := 0.0;
-    FMapData := nil;
-    Exit;
-  end;
-  }
-
   FreeMem(Data);
 
-  panels := GetPanels(map);
-  header := GetMapHeader(map);
+  panlist := map.field['panel'];
+  //header := GetMapHeader(map);
 
-  FMapSize.X := header.Width div 16;
-  FMapSize.Y := header.Height div 16;
+  FMapSize.X := map.Width div 16;
+  FMapSize.Y := map.Height div 16;
 
-  rX := Ceil(header.Width / (MAPPREVIEW_WIDTH*256.0));
-  rY := Ceil(header.Height / (MAPPREVIEW_HEIGHT*256.0));
+  rX := Ceil(map.Width / (MAPPREVIEW_WIDTH*256.0));
+  rY := Ceil(map.Height / (MAPPREVIEW_HEIGHT*256.0));
   FScale := max(rX, rY);
 
   FMapData := nil;
 
-  if panels <> nil then
-    for a := 0 to High(panels) do
-      if WordBool(panels[a].PanelType and (PANEL_WALL or PANEL_CLOSEDOOR or
+  if (panlist <> nil) then
+  begin
+    for pan in panlist do
+    begin
+      if (pan.PanelType and (PANEL_WALL or PANEL_CLOSEDOOR or
                                            PANEL_STEP or PANEL_WATER or
-                                           PANEL_ACID1 or PANEL_ACID2)) then
+                                           PANEL_ACID1 or PANEL_ACID2)) <> 0 then
       begin
         SetLength(FMapData, Length(FMapData)+1);
         with FMapData[High(FMapData)] do
         begin
-          X1 := panels[a].X div 16;
-          Y1 := panels[a].Y div 16;
+          X1 := pan.X div 16;
+          Y1 := pan.Y div 16;
 
-          X2 := (panels[a].X + panels[a].Width) div 16;
-          Y2 := (panels[a].Y + panels[a].Height) div 16;
+          X2 := (pan.X + pan.Width) div 16;
+          Y2 := (pan.Y + pan.Height) div 16;
 
           X1 := Trunc(X1/FScale + 0.5);
           Y1 := Trunc(Y1/FScale + 0.5);
@@ -2871,13 +2858,12 @@ begin
               Y2 := Y2 + 1;
           end;
 
-          PanelType := panels[a].PanelType;
+          PanelType := pan.PanelType;
+        end;
       end;
-   end;
-
-  panels := nil;
+    end;
+  end;
 
-  //MapReader.Free();
   map.Free();
 end;