X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_textures.pas;h=72b65b560c814875b020eb124a2e0068d419c9c8;hb=331297e82162a6acd3e9e07605368e329ce66105;hp=5958e93b498f15d27a74e878e4850d32bb835942;hpb=8c440b23bbf779d21e2ee59836a2af737718d839;p=d2df-sdl.git diff --git a/src/game/g_textures.pas b/src/game/g_textures.pas index 5958e93..72b65b5 100644 --- a/src/game/g_textures.pas +++ b/src/game/g_textures.pas @@ -1,4 +1,4 @@ -(* Copyright (C) DooM 2D:Forever Developers +(* Copyright (C) Doom 2D: Forever Developers * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -88,9 +88,11 @@ type function g_Texture_CreateWAD (var ID: LongWord; const Resource: AnsiString): Boolean; function g_Texture_CreateFile (var ID: LongWord; const FileName: AnsiString): Boolean; -function g_Texture_CreateWADEx (const textureName, Resource: AnsiString; const altrsrc: AnsiString=''): Boolean; +function g_Texture_CreateWADEx (const textureName, Resource: AnsiString): Boolean; function g_Texture_CreateFileEx (const textureName, FileName: AnsiString): Boolean; function g_Texture_Get (const textureName: AnsiString; var ID: LongWord): Boolean; +function g_Texture_GetSize (const textureName: AnsiString; var w, h: Integer): Boolean; overload; +function g_Texture_GetSize (ID: LongWord; var w, h: Integer): Boolean; overload; procedure g_Texture_Delete (const textureName: AnsiString); procedure g_Texture_DeleteAll (); @@ -117,8 +119,13 @@ function g_Texture_Light (): Integer; implementation uses +{$IFDEF USE_NANOGL} + nanoGL, +{$ELSE} + GL, +{$ENDIF} g_game, e_log, g_basic, g_console, wadreader, - g_language, GL, utils, xstreams; + g_language, utils, xstreams; type _TTexture = record @@ -247,7 +254,7 @@ begin end; -function texture_CreateWADExInternal (const textureName, Resource: AnsiString; showmsg: Boolean): Boolean; +function g_Texture_CreateWADEx (const textureName, Resource: AnsiString): Boolean; var WAD: TWADFile; FileName: AnsiString; @@ -278,10 +285,7 @@ begin end else begin - if showmsg then - begin - e_WriteLog(Format('Error loading texture %s', [Resource]), TMsgType.Warning); - end; + e_WriteLog(Format('Error loading texture %s', [Resource]), TMsgType.Warning); //e_WriteLog(Format('WAD Reader error: %s', [WAD.GetLastErrorStr]), MSG_WARNING); result := false; end; @@ -289,17 +293,6 @@ begin end; -function g_Texture_CreateWADEx (const textureName, Resource: AnsiString; const 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 (const textureName, FileName: AnsiString): Boolean; var find_id: LongWord; @@ -335,6 +328,48 @@ begin end; +function g_Texture_GetSize (const textureName: AnsiString; var w, h: Integer): Boolean; overload; +var + a: Integer; +begin + result := false; + w := 0; + h := 0; + if (Length(texturesArray) = 0) or (Length(textureName) = 0) then exit; + for a := 0 to High(texturesArray) do + begin + if (StrEquCI1251(texturesArray[a].name, textureName)) then + begin + w := texturesArray[a].width; + h := texturesArray[a].height; + result := true; + break; + end; + end; +end; + + +function g_Texture_GetSize (ID: LongWord; var w, h: Integer): Boolean; overload; +var + a: Integer; +begin + result := false; + w := 0; + h := 0; + if (Length(texturesArray) = 0) then exit; + for a := 0 to High(texturesArray) do + begin + if (texturesArray[a].id = ID) then + begin + w := texturesArray[a].width; + h := texturesArray[a].height; + result := true; + break; + end; + end; +end; + + procedure g_Texture_Delete (const textureName: AnsiString); var a: Integer;