mirror of
https://github.com/jmarshall23/Hellfire.git
synced 2026-08-12 07:50:53 +02:00
Initial commit.
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
/*-----------------------------------------------------------------------**
|
||||
** Diablo
|
||||
**
|
||||
** Constants and Variables
|
||||
**
|
||||
** (C)1995 Condor, Inc. All rights reserved.
|
||||
**-----------------------------------------------------------------------**
|
||||
** $Header: /Diablo/ENGINE.H 1 1/22/97 2:06p Dgartner $
|
||||
**-----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*-----------------------------------------------------------------------**
|
||||
** Prototypes
|
||||
**-----------------------------------------------------------------------*/
|
||||
void DrawCel (long, long, BYTE *, long, long);
|
||||
void DrawCelP (BYTE *, BYTE *, long, long);
|
||||
void DrawSlabCel (long, long, BYTE *, long, long, long, long);
|
||||
void DrawSlabCelP (BYTE *, BYTE *, long, long, long, long);
|
||||
|
||||
void DrawCelL (long, long, BYTE *, long, long);
|
||||
void DrawCelPL (BYTE *, BYTE *, long, long);
|
||||
void DrawSlabCelL (long, long, BYTE *, long, long, long, long);
|
||||
void DrawSlabCelPL (BYTE *, BYTE *, long, long, long, long);
|
||||
void TDrawSlabCelPL (BYTE *, BYTE *, long, long, long, long);
|
||||
|
||||
void CDrawSlabCel (long, long, BYTE *, long, long, long, long);
|
||||
void CDrawSlabCelP (BYTE *, BYTE *, long, long, long, long);
|
||||
void CDrawSlabCelL (long, long, BYTE *, long, long, long, long);
|
||||
void CDrawSlabCelPL (BYTE *, BYTE *, long, long, long, long);
|
||||
void TCDrawSlabCelPL (BYTE *, BYTE *, long, long, long, long);
|
||||
|
||||
void DrawSlabCelI(long, long, BYTE *, long, long, long, long, char);
|
||||
void CDrawSlabCelI(long, long, BYTE *, long, long, long, long, char);
|
||||
|
||||
void OutlineSlabCel(byte, long, long, BYTE *, long, long, long, long);
|
||||
void COutlineSlabCel(byte, long, long, BYTE *, long, long, long, long);
|
||||
|
||||
void DrawBuffCel(BYTE *, long, long, long, BYTE *, long, long);
|
||||
|
||||
void DecodeFullCel (BYTE *, BYTE *, long, long);
|
||||
void DecodeFullCelL (BYTE *, BYTE *, long, long);
|
||||
|
||||
void CDecodeFullCel (BYTE *, BYTE *, long, long);
|
||||
void CDecodeFullCelL (BYTE *, BYTE *, long, long);
|
||||
|
||||
void TranslateCels(byte *, byte *, int);
|
||||
|
||||
int GetDirection(int, int, int, int);
|
||||
|
||||
long GetRndSeed();
|
||||
void SetRndSeed(long);
|
||||
long random(byte, long);
|
||||
|
||||
void DrawLine(int, int, int, int, byte);
|
||||
void DrawPoint(int, int, byte);
|
||||
|
||||
void PlayInGameMovie(const char * pszMovie);
|
||||
|
||||
//******************************************************************
|
||||
// memory management
|
||||
//******************************************************************
|
||||
#define DEBUG_MEM 1 // 0 in final
|
||||
#ifdef NDEBUG
|
||||
#undef DEBUG_MEM
|
||||
#define DEBUG_MEM 0
|
||||
#endif
|
||||
|
||||
// public memory management functions
|
||||
BYTE * DiabloAllocPtr(DWORD dwBytes);
|
||||
BYTE * DiabloAllocPtrSig(DWORD dwBytes,DWORD dwSig);
|
||||
|
||||
// NOTE: DiabloFreePtr behavior
|
||||
//
|
||||
// p MUST be an l-value
|
||||
//
|
||||
// if p is NULL:
|
||||
// no memory is freed
|
||||
// if p is NOT NULL:
|
||||
// p is set to NULL before call to free, and then memory is freed
|
||||
// GUARANTEES p == NULL immediately after DiabloFreePtr is called!
|
||||
void DiabloFreePtr(void * p);
|
||||
|
||||
|
||||
BYTE * LoadFileInMem(const char * pszName, DWORD * pdwFileLen);
|
||||
BYTE * LoadFileInMemSig(const char * pszName, DWORD * pdwFileLen,DWORD dwSig);
|
||||
DWORD LoadFileWithMem(const char * pszName, BYTE * pbMem);
|
||||
void mem_cleanup(BOOL bNormalExit);
|
||||
|
||||
|
||||
#if DEBUG_MEM
|
||||
|
||||
// internal functions
|
||||
void mem_use_sig(DWORD dwSig,DWORD dwBytes);
|
||||
void mem_unuse_sig(DWORD dwSig,DWORD dwBytes);
|
||||
BYTE * mem_malloc_dbg(DWORD dwBytes,DWORD dwSig,DWORD dwLine,const TCHAR * pszFile);
|
||||
void mem_free_dbg(void * p,DWORD dwLine,const TCHAR * pszFile);
|
||||
BYTE * load_file_dbg(const char * pszName,DWORD * pdwFileLen,DWORD dwSig,DWORD dwLine,const TCHAR * pszFile);
|
||||
|
||||
// definitions of public functions
|
||||
#define DiabloAllocPtr(dwBytes) mem_malloc_dbg(dwBytes,'NONE',__LINE__,__FILE__)
|
||||
#define DiabloAllocPtrSig(dwBytes,dwSig) mem_malloc_dbg(dwBytes,dwSig,__LINE__,__FILE__)
|
||||
#define LoadFileInMem(pszName,pdwFileLen) load_file_dbg(pszName,pdwFileLen,'NONE',__LINE__,__FILE__)
|
||||
#define LoadFileInMemSig(pszName,pdwFileLen,dwSig) load_file_dbg(pszName,pdwFileLen,dwSig,__LINE__,__FILE__)
|
||||
|
||||
// free function -- set pointer to NULL before real call to free
|
||||
#define DiabloFreePtr(p) { \
|
||||
void * p__p = (void *) (p); \
|
||||
(p) = NULL; \
|
||||
mem_free_dbg(p__p,__LINE__,__FILE__); \
|
||||
}
|
||||
|
||||
|
||||
#else
|
||||
|
||||
// internal functions
|
||||
void mem_free_dbg(void * p);
|
||||
|
||||
// definitions of public functions
|
||||
#define DiabloAllocPtrSig(dwBytes,dwSig) DiabloAllocPtr(dwBytes)
|
||||
#define LoadFileInMemSig(pszName,pdwFileLen,dwSig) LoadFileInMem(pszName,pdwFileLen)
|
||||
|
||||
// free function -- set pointer to NULL before real call to free
|
||||
#define DiabloFreePtr(p) { \
|
||||
void * p__p = (void *) (p); \
|
||||
(p) = NULL; \
|
||||
mem_free_dbg(p__p); \
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
//******************************************************************
|
||||
// file manager
|
||||
//******************************************************************
|
||||
#ifdef _STORM_H_
|
||||
void patSFileCloseFile(HSFILE handle);
|
||||
DWORD patSFileGetFileSize(HSFILE handle,LPDWORD filesizehigh = NULL);
|
||||
BOOL patSFileOpenFile(LPCTSTR filename,HSFILE *handle,BOOL bCanFail = FALSE);
|
||||
void patSFileReadFile(HSFILE handle,LPVOID buffer,DWORD bytestoread);
|
||||
DWORD patSFileSetFilePointer(HSFILE handle,LONG distancetomove,PLONG distancetomovehigh,DWORD movemethod);
|
||||
#endif
|
||||
Reference in New Issue
Block a user