DEADSOFTWARE

no more old-styled map structured; sadly, most triggers aren't working; also, save...
[d2df-sdl.git] / src / game / g_panel.pas
index ab996040406168f29ced2f9c131f576d080b86fd..5eec8e780a546456cf85a75a25c04b6160b08b62 100644 (file)
@@ -19,7 +19,7 @@ unit g_panel;
 interface
 
 uses
-  MAPSTRUCT, BinEditor, g_textures;
+  MAPDEF, BinEditor, g_textures, xdynrec;
 
 type
   TAddTextureArray = Array of
@@ -59,10 +59,11 @@ type
     Moved:            Boolean;
     LiftType:         Byte;
     LastAnimLoop:     Byte;
-    ArrIdx:           Integer; // index in one of internal arrays; sorry
+    arrIdx:           Integer; // index in one of internal arrays; sorry
     tag:              Integer; // used in coldets and such; sorry
+    proxyId:          Integer; // proxy id in map grid (DO NOT USE!)
 
-    constructor Create(PanelRec: TPanelRec_1;
+    constructor Create(PanelRec: TDynRecord;
                        AddTextures: TAddTextureArray;
                        CurTex: Integer;
                        var Textures: TLevelTextureArray);
@@ -93,7 +94,7 @@ type
 implementation
 
 uses
-  SysUtils, g_basic, g_map, MAPDEF, g_game, e_graphics,
+  SysUtils, g_basic, g_map, g_game, e_graphics,
   g_console, g_language, e_log, GL;
 
 const
@@ -101,7 +102,7 @@ const
 
 { T P a n e l : }
 
-constructor TPanel.Create(PanelRec: TPanelRec_1;
+constructor TPanel.Create(PanelRec: TDynRecord;
                           AddTextures: TAddTextureArray;
                           CurTex: Integer;
                           var Textures: TLevelTextureArray);
@@ -186,11 +187,11 @@ begin
 
     case PanelRec.PanelType of
       PANEL_WATER:
-        FTextureIDs[0].Tex := TEXTURE_SPECIAL_WATER;
+        FTextureIDs[0].Tex := LongWord(TEXTURE_SPECIAL_WATER);
       PANEL_ACID1:
-        FTextureIDs[0].Tex := TEXTURE_SPECIAL_ACID1;
+        FTextureIDs[0].Tex := LongWord(TEXTURE_SPECIAL_ACID1);
       PANEL_ACID2:
-        FTextureIDs[0].Tex := TEXTURE_SPECIAL_ACID2;
+        FTextureIDs[0].Tex := LongWord(TEXTURE_SPECIAL_ACID2);
     end;
 
     FCurTexture := 0;
@@ -269,10 +270,9 @@ var
   NoTextureID: DWORD;
   NW, NH: Word;
 begin
-  if Enabled and (FCurTexture >= 0) and
+  if {Enabled and} (FCurTexture >= 0) and
      (Width > 0) and (Height > 0) and (FAlpha < 255) and
-     g_Collide(X, Y, Width, Height,
-               sX, sY, sWidth, sHeight) then
+     (g_dbg_scale_05 or g_Collide(X, Y, Width, Height, sX, sY, sWidth, sHeight)) then
   begin
     if FTextureIDs[FCurTexture].Anim then
       begin // Àíèìèðîâàííàÿ òåêñòóðà
@@ -288,16 +288,16 @@ begin
     else
       begin // Îáû÷íàÿ òåêñòóðà
         case FTextureIDs[FCurTexture].Tex of
-          TEXTURE_SPECIAL_WATER:
+          LongWord(TEXTURE_SPECIAL_WATER):
             e_DrawFillQuad(X, Y, X+Width-1, Y+Height-1,
                            0, 0, 255, 0, B_FILTER);
-          TEXTURE_SPECIAL_ACID1:
+          LongWord(TEXTURE_SPECIAL_ACID1):
             e_DrawFillQuad(X, Y, X+Width-1, Y+Height-1,
                            0, 128, 0, 0, B_FILTER);
-          TEXTURE_SPECIAL_ACID2:
+          LongWord(TEXTURE_SPECIAL_ACID2):
             e_DrawFillQuad(X, Y, X+Width-1, Y+Height-1,
                            128, 0, 0, 0, B_FILTER);
-          TEXTURE_NONE:
+          LongWord(TEXTURE_NONE):
             if g_Texture_Get('NOTEXTURE', NoTextureID) then
             begin
               e_GetTextureSize(NoTextureID, @NW, @NH);
@@ -353,10 +353,10 @@ begin
     if not FTextureIDs[FCurTexture].Anim then
     begin
       case FTextureIDs[FCurTexture].Tex of
-        TEXTURE_SPECIAL_WATER: exit;
-        TEXTURE_SPECIAL_ACID1: exit;
-        TEXTURE_SPECIAL_ACID2: exit;
-        TEXTURE_NONE: exit;
+        LongWord(TEXTURE_SPECIAL_WATER): exit;
+        LongWord(TEXTURE_SPECIAL_ACID1): exit;
+        LongWord(TEXTURE_SPECIAL_ACID2): exit;
+        LongWord(TEXTURE_NONE): exit;
       end;
     end;
     if (X+Width < lightX-radius) then exit;
@@ -497,7 +497,7 @@ end;
 
 function TPanel.GetTextureID(): DWORD;
 begin
-  Result := TEXTURE_NONE;
+  Result := LongWord(TEXTURE_NONE);
 
   if (FCurTexture >= 0) then
   begin