//////////////////////////////////////////////////////////////////////////////////
// Project Name: [ CDX Class Library - CDX.lib ]
// Source File:  [ CDXTile Implementation ]
// Author:       [ Danny Farley - danny@jags.co.uk ]
// Revision:     [ 1.4 ]
/////////////////////////////////////////////////////////////////////////////////

unit CDXTileX;

interface

uses
  Windows, DirectDraw, Classes, DDUtil, CDXScreenX, graphics;

type
  CDXTile = class (CDXSurface)
    constructor CDXTile;
    constructor CDXTileCustom(const pScreen : CDXScreen;
                              const szFilename : PChar;
                              const w, h, num : Integer);

    function Create(const pScreen : CDXScreen;
                    const szFilename : PChar;
                    const w,h,num : Integer) : BOOL;

  public
    m_BlockWidth : Integer;
    m_BlockHeight : Integer;
    m_BlockNum : Integer;
  end;

implementation

//////////////////////////////////////////////////////////////////////////////////
// CDXTile Create
//////////////////////////////////////////////////////////////////////////////////
function CDXTile.Create(const pScreen : CDXScreen;
                        const szFilename : PChar;
                        const w,h,num : Integer) : BOOL;
var
  wrkBitMap : TBitmap;
begin
  wrkBitMap := TBitmap.Create;
  wrkBitMap.LoadFromFile (szFilename);
  m_PixelWidth := wrkBitMap.Width;
  m_PixelHeight := wrkBitMap.Height;
  wrkBitMap.Free;
  m_lpDDS := DDLoadBitmap(pScreen.m_lpDD,szFilename,m_PixelWidth,m_PixelHeight);
  if m_lpDDS <> nil then begin
     m_pFilename := szFilename;
     GScreen := pScreen;
     m_BlockWidth := w;
     m_BlockHeight := h;
     m_BlockNum := num;

     DestRect.Top := 0;
     DestRect.Left := 0;
     DestRect.Bottom := m_PixelHeight;
     DestRect.Right := m_PixelWidth;

     SrcRect.Top := 0;
     SrcRect.Left := 0;
     SrcRect.Bottom := m_PixelHeight;
     SrcRect.Right := m_PixelWidth;
     Create := True;
     end
     else
     Create := False;
end;

//////////////////////////////////////////////////////////////////////////////////
// CDXTile constructor
//////////////////////////////////////////////////////////////////////////////////
constructor CDXTile.CDXTileCustom(const pScreen : CDXScreen;
                                  const szFilename : PChar;
                                  const w,h,num : Integer);
begin
  Create(pScreen,szFilename,w,h,num);
end;

//////////////////////////////////////////////////////////////////////////////////
// CDXTile constructor
//////////////////////////////////////////////////////////////////////////////////
constructor CDXTile.CDXTile;
begin
  DestRect.Top := 0;
  DestRect.Left := 0;
  DestRect.Bottom := 0;
  DestRect.Right := 0;
end;


end.

