Devilution
Diablo devolved - magic behind the 1996 computer game
Macros | Functions | Variables
engine.h File Reference

Go to the source code of this file.

Macros

#define LOAD_LE32(b)   (((DWORD)(b)[3] << 24) | ((DWORD)(b)[2] << 16) | ((DWORD)(b)[1] << 8) | (DWORD)(b)[0])
 

Functions

BYTE * CelGetFrameStart (BYTE *pCelBuff, int nCel)
 
BYTE * CelGetFrame (BYTE *pCelBuff, int nCel, int *nDataSize)
 
BYTE * CelGetFrameClipped (BYTE *pCelBuff, int nCel, int *nDataSize)
 
void CelDraw (int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth)
 Blit CEL sprite to the back buffer at the given coordinates. More...
 
void CelBlitFrame (BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth)
 Blit a given CEL frame to the given buffer. More...
 
void CelClippedDraw (int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth)
 Same as CelDraw but with the option to skip parts of the top and bottom of the sprite. More...
 
void CelDrawLight (int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, BYTE *tbl)
 Blit CEL sprite, and apply lighting, to the back buffer at the given coordinates. More...
 
void CelClippedDrawLight (int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth)
 Same as CelDrawLight but with the option to skip parts of the top and bottom of the sprite. More...
 
void CelClippedBlitLightTrans (BYTE *pBuff, BYTE *pCelBuff, int nCel, int nWidth)
 Same as CelBlitLightTransSafe. More...
 
void CelDrawLightRed (int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, char light)
 Blit CEL sprite, and apply lighting, to the back buffer at the given coordinates, translated to a red hue. More...
 
void CelBlitSafe (BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth)
 Blit CEL sprite to the given buffer, checks for drawing outside the buffer. More...
 
void CelClippedDrawSafe (int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth)
 Same as CelClippedDraw but checks for drawing outside the buffer. More...
 
void CelBlitLightSafe (BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth, BYTE *tbl)
 Blit CEL sprite, and apply lighting, to the given buffer, checks for drawing outside the buffer. More...
 
void CelBlitLightTransSafe (BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth)
 Same as CelBlitLightSafe, with transparancy applied. More...
 
void CelDrawLightRedSafe (int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, char light)
 Same as CelDrawLightRed but checks for drawing outside the buffer. More...
 
void CelBlitWidth (BYTE *pBuff, int x, int y, int wdt, BYTE *pCelBuff, int nCel, int nWidth)
 Blit to a buffer at given coordinates. More...
 
void CelBlitOutline (char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth)
 Blit a solid colder shape one pixel larger then the given sprite shape, to the back buffer at the given coordianates. More...
 
void ENG_set_pixel (int sx, int sy, BYTE col)
 Set the value of a single pixel in the back buffer, checks bounds. More...
 
void engine_draw_pixel (int sx, int sy)
 Set the value of a single pixel in the back buffer to that of gbPixelCol, checks bounds. More...
 
void DrawLine (int x0, int y0, int x1, int y1, BYTE col)
 Draw a line on the back buffer. More...
 
int GetDirection (int x1, int y1, int x2, int y2)
 Calculate the best fit direction between two points. More...
 
void SetRndSeed (int s)
 Set the RNG seed. More...
 
int GetRndSeed ()
 Get the current RNG seed. More...
 
int random_ (BYTE idx, int v)
 Main RNG function. More...
 
void engine_debug_trap (BOOL show_cursor)
 
BYTE * DiabloAllocPtr (DWORD dwBytes)
 Multithreaded safe malloc. More...
 
void mem_free_dbg (void *p)
 Multithreaded safe memfree. More...
 
BYTE * LoadFileInMem (char *pszName, DWORD *pdwFileLen)
 Load a file in to a buffer. More...
 
DWORD LoadFileWithMem (const char *pszName, void *p)
 Load a file in to the given buffer. More...
 
void Cl2ApplyTrans (BYTE *p, BYTE *ttbl, int nCel)
 Apply the color swaps to a CL2 sprite. More...
 
void Cl2Draw (int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth)
 Blit CL2 sprite, to the back buffer at the given coordianates. More...
 
void Cl2DrawOutline (char col, int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth)
 Blit a solid colder shape one pixel larger then the given sprite shape, to the back buffer at the given coordianates. More...
 
void Cl2DrawLightTbl (int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth, char light)
 Blit CL2 sprite, and apply a given lighting, to the back buffer at the given coordianates. More...
 
void Cl2DrawLight (int sx, int sy, BYTE *pCelBuff, int nCel, int nWidth)
 Blit CL2 sprite, and apply lighting, to the back buffer at the given coordinates. More...
 
void Cl2BlitSafe (BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth)
 Blit CL2 sprite to the given buffer. More...
 
void Cl2BlitOutlineSafe (BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth, char col)
 Blit a solid colder shape one pixel larger then the given sprite shape, to the given buffer. More...
 
void Cl2BlitLightSafe (BYTE *pDecodeTo, BYTE *pRLEBytes, int nDataSize, int nWidth, BYTE *pTable)
 Blit CL2 sprite, and apply lighting, to the given buffer. More...
 
void PlayInGameMovie (char *pszMovie)
 Fade to black and play a video. More...
 

Variables

char gbPixelCol
 automap pixel color 8-bit (palette entry) More...
 
BOOL gbRotateMap
 flip - if y < x More...
 
int orgseed
 Seed value before the most recent call to SetRndSeed() More...
 
int SeedCount
 Track number of calls to GetRndSeed() since last call to SetRndSeed() More...
 
BOOL gbNotInView
 valid - if x/y are in bounds More...
 
const int RndInc
 Specifies the increment used in the Borland C/C++ pseudo-random. More...
 
const int RndMult
 Specifies the multiplier used in the Borland C/C++ pseudo-random number generator algorithm. More...
 

Detailed Description

of basic engine helper functions:

Definition in file engine.h.