index 660e999351988a4fb3dad1ccdecabe614d6dda3b..af3b29ff8e464f1fe8467a2b804ea384bd8d0ba5 100644 (file)
--- a/src/game/g_textures.pas
+++ b/src/game/g_textures.pas
interface
uses
- e_graphics, BinEditor, ImagingTypes, Imaging, ImagingUtility;
+ e_graphics, MAPDEF, BinEditor, ImagingTypes, Imaging, ImagingUtility;
Type
TLevelTexture = record
constructor Create(FramesID: DWORD; Loop: Boolean; Speed: Byte);
destructor Destroy(); override;
procedure Draw(X, Y: Integer; Mirror: TMirrorType);
- procedure DrawEx(X, Y: Integer; Mirror: TMirrorType; RPoint: TPoint;
+ procedure DrawEx(X, Y: Integer; Mirror: TMirrorType; RPoint: TDFPoint;
Angle: SmallInt);
procedure Reset();
procedure Update();
function g_Texture_CreateWAD(var ID: DWORD; Resource: String): Boolean;
function g_Texture_CreateFile(var ID: DWORD; FileName: String): Boolean;
-function g_Texture_CreateWADEx(TextureName: ShortString; Resource: String): Boolean;
+function g_Texture_CreateWADEx(TextureName: ShortString; Resource: String; altrsrc: AnsiString=''): Boolean;
function g_Texture_CreateFileEx(TextureName: ShortString; FileName: String): Boolean;
function g_Texture_Get(TextureName: ShortString; var ID: DWORD): Boolean;
procedure g_Texture_Delete(TextureName: ShortString);
end;
end;
-function g_Texture_CreateWADEx(TextureName: ShortString; Resource: String): Boolean;
+function texture_CreateWADExInternal (TextureName: ShortString; Resource: String; showmsg: Boolean): Boolean;
var
WAD: TWADFile;
FileName: String;
if WAD.GetResource(g_ExtractFilePathName(Resource), TextureData, ResourceLength) then
begin
- Result := e_CreateTextureMem(TextureData, ResourceLength, TexturesArray[find_id].ID);
- if Result then
+ result := e_CreateTextureMem(TextureData, ResourceLength, TexturesArray[find_id].ID);
+ if result then
begin
- e_GetTextureSize(TexturesArray[find_id].ID, @TexturesArray[find_id].Width,
- @TexturesArray[find_id].Height);
+ e_GetTextureSize(TexturesArray[find_id].ID, @TexturesArray[find_id].Width, @TexturesArray[find_id].Height);
TexturesArray[find_id].Name := LowerCase(TextureName);
end
else
+ begin
FreeMem(TextureData);
+ end;
end
else
begin
- e_WriteLog(Format('Error loading texture %s', [Resource]), MSG_WARNING);
+ if showmsg then
+ begin
+ e_WriteLog(Format('Error loading texture %s', [Resource]), MSG_WARNING);
+ end;
//e_WriteLog(Format('WAD Reader error: %s', [WAD.GetLastErrorStr]), MSG_WARNING);
- Result := False;
+ result := false;
end;
WAD.Free();
end;
+function g_Texture_CreateWADEx(TextureName: ShortString; Resource: String; altrsrc: AnsiString=''): Boolean;
+begin
+ if (Length(altrsrc) > 0) then
+ begin
+ result := texture_CreateWADExInternal(TextureName, altrsrc, false);
+ if result then exit;
+ end;
+ result := texture_CreateWADExInternal(TextureName, Resource, true);
+end;
+
function g_Texture_CreateFileEx(TextureName: ShortString; FileName: String): Boolean;
var
find_id: DWORD;
FEnabled := True;
end;
-procedure TAnimation.DrawEx(X, Y: Integer; Mirror: TMirrorType; RPoint: TPoint;
+procedure TAnimation.DrawEx(X, Y: Integer; Mirror: TMirrorType; RPoint: TDFPoint;
Angle: SmallInt);
begin
if not FEnabled then