index 52c6169b807bf8cd88d4cb6db89a171f0abfb017..5d591577a4854b6697a6c965990363757f6860d0 100644 (file)
implementation
uses
implementation
uses
- e_log, WADEDITOR, g_basic, SysUtils, g_resources;
+ e_log, WADEDITOR, g_basic, SysUtils;
type
_TTexture = record
type
_TTexture = record
end;
end;
end;
end;
-function g_SimpleCreateTextureWAD (var ID: DWORD; Resource: string): Boolean;
- var
- TextureData: Pointer;
- ResourceLength: Integer;
- FileName, SectionName, ResourceName: string;
+function g_SimpleCreateTextureWAD(var ID: DWORD; Resource: string): Boolean;
+var
+ WAD: TWADEditor_1;
+ FileName,
+ SectionName,
+ ResourceName: string;
+ TextureData: Pointer;
+ ResourceLength: Integer;
begin
begin
- Result := False;
- g_ProcessResourceStr(Resource, FileName, SectionName, ResourceName);
- g_ReadResource(FileName, SectionName, ResourceName, TextureData, ResourceLength);
- if TextureData <> nil then
- begin
- if e_CreateTextureMem(TextureData, ResourceLength, ID) then
- Result := True;
- FreeMem(TextureData)
- end
+ Result := False;
+ g_ProcessResourceStr(Resource, FileName, SectionName, ResourceName);
+
+ WAD := TWADEditor_1.Create;
+ WAD.ReadFile(FileName);
+
+ if WAD.GetResource(utf2win(SectionName), utf2win(ResourceName), TextureData, ResourceLength) then
+ begin
+ if e_CreateTextureMem(TextureData, ResourceLength, ID) then Result := True;
+ FreeMem(TextureData);
+ end
else
else
- begin
- e_WriteLog(Format('Error loading texture %s', [Resource]), MSG_WARNING)
- //e_WriteLog(Format('WAD Reader error: %s', [WAD.GetLastErrorStr]), MSG_WARNING);
- end;
+ begin
+ e_WriteLog(Format('Error loading texture %s', [Resource]), MSG_WARNING);
+ e_WriteLog(Format('WAD Reader error: %s', [WAD.GetLastErrorStr]), MSG_WARNING);
+ end;
+ WAD.Destroy;
end;
function g_CreateTextureMemorySize(pData: Pointer; dataLen: Integer; Name: ShortString; X, Y,
end;
function g_CreateTextureMemorySize(pData: Pointer; dataLen: Integer; Name: ShortString; X, Y,
end;
function g_CreateTextureWAD(TextureName: ShortString; Resource: string; flag: Byte = 0): Boolean;
end;
function g_CreateTextureWAD(TextureName: ShortString; Resource: string; flag: Byte = 0): Boolean;
- var
- TextureData: Pointer;
- ResourceLength: Integer;
- FileName, SectionName, ResourceName: string;
- find_id: DWORD;
+var
+ WAD: TWADEditor_1;
+ FileName,
+ SectionName,
+ ResourceName: string;
+ TextureData: Pointer;
+ find_id: DWORD;
+ ResourceLength: Integer;
begin
begin
- find_id := FindTexture;
- g_ProcessResourceStr(Resource, FileName, SectionName, ResourceName);
- g_ReadResource(FileName, SectionName, ResourceName, TextureData, ResourceLength);
- if TextureData <> nil then
- begin
- Result := e_CreateTextureMem(TextureData, ResourceLength, TexturesArray[find_id].ID);
- FreeMem(TextureData);
- if Result then
- begin
- e_GetTextureSize(
- TexturesArray[find_id].ID,
- @TexturesArray[find_id].Width,
- @TexturesArray[find_id].Height
- );
- TexturesArray[find_id].Name := TextureName;
- TexturesArray[find_id].flag := flag
- end
- end
- else
- begin
- e_WriteLog(Format('Error loading texture %s', [Resource]), MSG_WARNING);
- //e_WriteLog(Format('WAD Reader error: %s', [WAD.GetLastErrorStr]), MSG_WARNING);
- Result := False
- end
+ g_ProcessResourceStr(Resource, FileName, SectionName, ResourceName);
+
+ find_id := FindTexture;
+
+ WAD := TWADEditor_1.Create;
+ WAD.ReadFile(FileName);
+
+ if WAD.GetResource(utf2win(SectionName), utf2win(ResourceName), TextureData, ResourceLength) then
+ begin
+ Result := e_CreateTextureMem(TextureData, ResourceLength, TexturesArray[find_id].ID);
+ FreeMem(TextureData);
+ if Result then
+ begin
+ e_GetTextureSize(TexturesArray[find_id].ID, @TexturesArray[find_id].Width,
+ @TexturesArray[find_id].Height);
+ TexturesArray[find_id].Name := TextureName;
+ TexturesArray[find_id].flag := flag;
+ end;
+ end
+ else
+ begin
+ e_WriteLog(Format('Error loading texture %s', [Resource]), MSG_WARNING);
+ e_WriteLog(Format('WAD Reader error: %s', [WAD.GetLastErrorStr]), MSG_WARNING);
+ Result := False;
+ end;
+ WAD.Destroy;
end;
end;
-function g_SimpleCreateTextureWADSize(var ID: DWORD; Resource: String; X, Y, Width, Height: Word): Boolean;
- var
- TextureData: Pointer;
- ResourceLength: Integer;
- FileName, SectionName, ResourceName: String;
+function g_SimpleCreateTextureWADSize(var ID: DWORD; Resource: string; X, Y, Width, Height: Word): Boolean;
+var
+ WAD: TWADEditor_1;
+ FileName,
+ SectionName,
+ ResourceName: String;
+ TextureData: Pointer;
+ ResourceLength: Integer;
begin
begin
- Result := False;
- g_ProcessResourceStr(Resource, FileName, SectionName, ResourceName);
- g_ReadResource(FileName, SectionName, ResourceName, TextureData, ResourceLength);
- if TextureData <> nil then
- begin
- if e_CreateTextureMemEx(TextureData, ResourceLength, ID, X, Y, Width, Height) then
- Result := True;
- FreeMem(TextureData)
- end
- else
- begin
- e_WriteLog(Format('Error loading texture %s', [Resource]), MSG_WARNING)
- //e_WriteLog(Format('WAD Reader error: %s', [WAD.GetLastErrorStr]), MSG_WARNING)
- end
+ Result := False;
+ g_ProcessResourceStr(Resource, FileName, SectionName, ResourceName);
+
+ WAD := TWADEditor_1.Create;
+ WAD.ReadFile(FileName);
+
+ if WAD.GetResource(utf2win(SectionName), utf2win(ResourceName), TextureData, ResourceLength) then
+ begin
+ if e_CreateTextureMemEx(TextureData, ResourceLength, ID, X, Y, Width, Height) then Result := True;
+ FreeMem(TextureData);
+ end
+ else
+ begin
+ e_WriteLog(Format('Error loading texture %s', [Resource]), MSG_WARNING);
+ e_WriteLog(Format('WAD Reader error: %s', [WAD.GetLastErrorStr]), MSG_WARNING);
+ end;
+ WAD.Destroy;
end;
end;
-function g_CreateTextureWADSize(TextureName: ShortString; Resource: String; X, Y, Width, Height: Word; flag: Byte = 0): Boolean;
- var
- TextureData: Pointer;
- ResourceLength: Integer;
- FileName, SectionName, ResourceName: String;
- find_id: DWORD;
+function g_CreateTextureWADSize(TextureName: ShortString; Resource: string;
+ X, Y, Width, Height: Word; flag: Byte = 0): Boolean;
+var
+ WAD: TWADEditor_1;
+ FileName,
+ SectionName,
+ ResourceName: String;
+ TextureData: Pointer;
+ find_id: DWORD;
+ ResourceLength: Integer;
begin
begin
- find_id := FindTexture;
- g_ProcessResourceStr(Resource, FileName, SectionName, ResourceName);
- g_ReadResource(FileName, SectionName, ResourceName, TextureData, ResourceLength);
- if TextureData <> nil then
+ g_ProcessResourceStr(Resource, FileName, SectionName, ResourceName);
+
+ find_id := FindTexture;
+
+ WAD := TWADEditor_1.Create;
+ WAD.ReadFile(FileName);
+
+ if WAD.GetResource(utf2win(SectionName), utf2win(ResourceName), TextureData, ResourceLength) then
+ begin
+ Result := e_CreateTextureMemEx(TextureData, ResourceLength, TexturesArray[find_id].ID, X, Y, Width, Height);
+ FreeMem(TextureData);
+ if Result then
begin
begin
- Result := e_CreateTextureMemEx(TextureData, ResourceLength, TexturesArray[find_id].ID, X, Y, Width, Height);
- FreeMem(TextureData);
- if Result then
- begin
- TexturesArray[find_id].Width := Width;
- TexturesArray[find_id].Height := Height;
- TexturesArray[find_id].Name := TextureName;
- TexturesArray[find_id].flag := flag
- end
- end
+ TexturesArray[find_id].Width := Width;
+ TexturesArray[find_id].Height := Height;
+ TexturesArray[find_id].Name := TextureName;
+ TexturesArray[find_id].flag := flag;
+ end;
+ end
else
else
- begin
- e_WriteLog(Format('Error loading texture %s', [Resource]), MSG_WARNING);
- //e_WriteLog(Format('WAD Reader error: %s', [WAD.GetLastErrorStr]), MSG_WARNING);
- Result := False
- end
+ begin
+ e_WriteLog(Format('Error loading texture %s', [Resource]), MSG_WARNING);
+ e_WriteLog(Format('WAD Reader error: %s', [WAD.GetLastErrorStr]), MSG_WARNING);
+ Result := False;
+ end;
+ WAD.Destroy;
end;
function g_GetTexture(TextureName: ShortString; var ID: DWORD): Boolean;
end;
function g_GetTexture(TextureName: ShortString; var ID: DWORD): Boolean;