DEADSOFTWARE

don't skip drawing disabled panels
[d2df-sdl.git] / src / game / g_panel.pas
index af9d35f89cb78dd58e2f60395e06aeb7fd00de01..96bd7f1817f333246c470eea1933052bf2c2df83 100644 (file)
@@ -13,7 +13,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *)
-{$MODE DELPHI}
+{$INCLUDE ../shared/a_modes.inc}
 unit g_panel;
 
 interface
@@ -41,6 +41,11 @@ type
                             True:  (AnTex: TAnimation);
                         end;
 
+  private
+    function getx1 (): Integer; inline;
+    function gety1 (): Integer; inline;
+    function getvisvalid (): Boolean; inline;
+
   public
     FCurTexture:      Integer; // Íîìåð òåêóùåé òåêñòóðû
     FCurFrame:        Integer;
@@ -54,6 +59,9 @@ type
     Moved:            Boolean;
     LiftType:         Byte;
     LastAnimLoop:     Byte;
+    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;
                        AddTextures: TAddTextureArray;
@@ -72,6 +80,12 @@ type
 
     procedure   SaveState(var Mem: TBinMemoryWriter);
     procedure   LoadState(var Mem: TBinMemoryReader);
+
+    property x0: Integer read X;
+    property y0: Integer read Y;
+    property x1: Integer read getx1; // inclusive!
+    property y1: Integer read gety1; // inclusive!
+    property visvalid: Boolean read getvisvalid; // panel is "visvalid" when it's width and height are positive
   end;
 
   PPanel = ^TPanel;
@@ -246,13 +260,17 @@ begin
   Inherited;
 end;
 
+function TPanel.getx1 (): Integer; inline; begin result := X+Width-1; end;
+function TPanel.gety1 (): Integer; inline; begin result := Y+Height-1; end;
+function TPanel.getvisvalid (): Boolean; inline; begin result := (Width > 0) and (Height > 0); end;
+
 procedure TPanel.Draw();
 var
   xx, yy: Integer;
   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