Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

179 lines
3.2 KiB

5 years ago
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Implementation of the IEditorTexture interface for WAD textures.
//
//=============================================================================//
#ifndef WADTEXTURE_H
#define WADTEXTURE_H
#ifdef _WIN32
#pragma once
#endif
#include <afxtempl.h>
#include "BlockArray.h"
#include "IEditorTexture.h"
class IMaterial;
class CWADTexture : public IEditorTexture
{
public:
CWADTexture(void);
virtual ~CWADTexture(void);
static bool Initialize(void);
static void ShutDown(void);
BOOL Init(int, DWORD, BOOL, LPCTSTR);
BOOL AdjustTexture(char *pLoadBuf);
inline const char *GetName(void) const
{
return(m_szName);
}
int GetShortName(char *pszName) const;
int GetKeywords(char *pszKeywords) const;
void Draw(CDC *pDC, RECT &rect, int iFontHeight, int iIconHeight, DrawTexData_t &DrawTexData);//, DWORD dwFlags = (drawCaption|drawIcons));
void GetSize(SIZE &size);
const char *GetFileName(void) const;
int GetImageDataRGB( void *pImageRGB );
int GetImageDataRGBA( void *pImageRGBA );
inline int GetImageWidth() const
{
return( m_datawidth );
}
inline int GetImageHeight() const
{
return( m_dataheight );
}
inline int GetWidth() const
{
return(m_nWidth);
}
inline int GetHeight() const
{
return(m_nHeight);
}
inline float GetDecalScale() const
{
return( 1.0f );
}
CPalette *GetPalette() const;
inline int GetTextureID() const
{
return( m_nTextureID );
}
inline TEXTUREFORMAT GetTextureFormat() const
{
return(format);
}
inline int GetSurfaceAttributes() const
{
return(m_WALsurface);
}
inline int GetSurfaceContents() const
{
return(m_WALcontents);
}
inline int GetSurfaceValue() const
{
return(m_WALvalue);
}
inline bool HasAlpha() const
{
return( false );
}
inline bool HasData( void ) const
{
return(m_pData != NULL);
}
inline bool HasPalette() const
{
return(m_bLocalPalette == TRUE);
}
inline bool IsDummy( void ) const
{
return( false );
}
bool Load( void );
void Reload( bool bFullReload ) {}
bool IsLoaded() const;
inline void SetTextureFormat(TEXTUREFORMAT eFormat)
{
format = eFormat;
}
inline void SetTextureID( int nTextureID )
{
m_nTextureID = nTextureID;
}
bool IsWater( void ) const
{
return false;
}
protected:
BOOL Load(int fd, HANDLE hFile);
void DrawNoImage(CDC *pDC, RECT &rect, int iFontHeight);
char m_szName[MAX_PATH];
char m_szFileName[MAX_PATH];
// additional data for new .WAL textures:
int m_WALsurface;
int m_WALvalue;
int m_WALcontents;
// Used when the texture is in a .WAD or a .PAK file.
// Otherwise, texture is loaded automatically.
DWORD m_ulFileOffset; // Offset to texture in WAD file.
DWORD m_ulFileID; // ID of WAD file the texture is in.
TEXTUREFORMAT format;
LOGPALETTE *m_pPalette; // This texture's palette.
BOOL m_bLocalPalette; // Use m_pPalette?
int m_nTextureID; // Uniquely identifies this texture in all 3D renderers.
int m_datawidth;
int m_dataheight;
int m_nWidth;
int m_nHeight;
void *m_pData; // Loaded pixel data (NULL if not loaded)
};
#endif // WADTEXTURE_H