X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_textures.pas;h=bdf6605849405c044781a9cc89723a2a29c50060;hb=3c27cda3a6e6188d113073beb31a19b82d21e3b6;hp=c96d4c6e05f637edb3cd8b71885b2bd0754b77e4;hpb=1070d03dd32edd73aced8786d3c5a8200a02ed00;p=d2df-sdl.git diff --git a/src/game/g_textures.pas b/src/game/g_textures.pas index c96d4c6..bdf6605 100644 --- a/src/game/g_textures.pas +++ b/src/game/g_textures.pas @@ -1,3 +1,4 @@ +{$MODE DELPHI} unit g_textures; interface @@ -78,7 +79,7 @@ function g_Frames_CreateWAD(ID: PDWORD; Name: ShortString; Resource: String; FWidth, FHeight, FCount: Word; BackAnimation: Boolean = False): Boolean; function g_Frames_CreateFile(ID: PDWORD; Name: ShortString; FileName: String; FWidth, FHeight, FCount: Word; BackAnimation: Boolean = False): Boolean; -function g_Frames_CreateMemory(ID: PDWORD; Name: ShortString; pData: Pointer; +function g_Frames_CreateMemory(ID: PDWORD; Name: ShortString; pData: Pointer; dataSize: LongInt; FWidth, FHeight, FCount: Word; BackAnimation: Boolean = False): Boolean; //function g_Frames_CreateRevert(ID: PDWORD; Name: ShortString; Frames: string): Boolean; function g_Frames_Get(var ID: DWORD; FramesName: ShortString): Boolean; @@ -93,7 +94,7 @@ procedure DumpTextureNames(); implementation uses - g_game, e_log, g_basic, SysUtils, g_console, WADEDITOR, + g_game, e_log, g_basic, SysUtils, g_console, wadreader, g_language; type @@ -143,7 +144,7 @@ end; function g_Texture_CreateWAD(var ID: DWORD; Resource: String): Boolean; var - WAD: TWADEditor_1; + WAD: TWADFile; FileName, SectionName, ResourceName: String; @@ -153,12 +154,12 @@ begin Result := False; g_ProcessResourceStr(Resource, FileName, SectionName, ResourceName); - WAD := TWADEditor_1.Create; + WAD := TWADFile.Create; WAD.ReadFile(FileName); if WAD.GetResource(SectionName, ResourceName, TextureData, ResourceLength) then begin - if e_CreateTextureMem(TextureData, ID) then + if e_CreateTextureMem(TextureData, ResourceLength, ID) then Result := True else FreeMem(TextureData); @@ -183,7 +184,7 @@ end; function g_Texture_CreateWADEx(TextureName: ShortString; Resource: String): Boolean; var - WAD: TWADEditor_1; + WAD: TWADFile; FileName, SectionName, ResourceName: String; @@ -195,12 +196,12 @@ begin find_id := FindTexture(); - WAD := TWADEditor_1.Create; + WAD := TWADFile.Create; WAD.ReadFile(FileName); if WAD.GetResource(SectionName, ResourceName, TextureData, ResourceLength) then begin - Result := e_CreateTextureMem(TextureData, TexturesArray[find_id].ID); + Result := e_CreateTextureMem(TextureData, ResourceLength, TexturesArray[find_id].ID); if Result then begin e_GetTextureSize(TexturesArray[find_id].ID, @TexturesArray[find_id].Width, @@ -349,7 +350,7 @@ begin Result := True; end; -function CreateFramesMem(pData: Pointer; ID: PDWORD; Name: ShortString; +function CreateFramesMem(pData: Pointer; dataSize: LongInt; ID: PDWORD; Name: ShortString; FWidth, FHeight, FCount: Word; BackAnimation: Boolean = False): Boolean; var find_id: DWORD; @@ -365,7 +366,7 @@ begin else SetLength(FramesArray[find_id].TexturesID, FCount); for a := 0 to FCount-1 do - if not e_CreateTextureMemEx(pData, FramesArray[find_id].TexturesID[a], + if not e_CreateTextureMemEx(pData, dataSize, FramesArray[find_id].TexturesID[a], a*FWidth, 0, FWidth, FHeight) then begin FreeMem(pData); @@ -391,7 +392,7 @@ end; function g_Frames_CreateWAD(ID: PDWORD; Name: ShortString; Resource: string; FWidth, FHeight, FCount: Word; BackAnimation: Boolean = False): Boolean; var - WAD: TWADEditor_1; + WAD: TWADFile; FileName, SectionName, ResourceName: string; @@ -402,7 +403,7 @@ begin g_ProcessResourceStr(Resource, FileName, SectionName, ResourceName); - WAD := TWADEditor_1.Create(); + WAD := TWADFile.Create(); WAD.ReadFile(FileName); if not WAD.GetResource(SectionName, ResourceName, TextureData, ResourceLength) then @@ -413,7 +414,7 @@ begin Exit; end; - if not CreateFramesMem(TextureData, ID, Name, FWidth, FHeight, FCount, BackAnimation) then + if not CreateFramesMem(TextureData, ResourceLength, ID, Name, FWidth, FHeight, FCount, BackAnimation) then begin WAD.Free(); Exit; @@ -424,10 +425,10 @@ begin Result := True; end; -function g_Frames_CreateMemory(ID: PDWORD; Name: ShortString; pData: Pointer; +function g_Frames_CreateMemory(ID: PDWORD; Name: ShortString; pData: Pointer; dataSize: LongInt; FWidth, FHeight, FCount: Word; BackAnimation: Boolean = False): Boolean; begin - Result := CreateFramesMem(pData, ID, Name, FWidth, FHeight, FCount, BackAnimation); + Result := CreateFramesMem(pData, dataSize, ID, Name, FWidth, FHeight, FCount, BackAnimation); end; {function g_Frames_CreateRevert(ID: PDWORD; Name: ShortString; Frames: string): Boolean;