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.
299 lines
6.4 KiB
299 lines
6.4 KiB
/** |
|
* @file structs.h |
|
* |
|
* Various global structures. |
|
*/ |
|
|
|
DEVILUTION_BEGIN_NAMESPACE |
|
|
|
////////////////////////////////////////////////// |
|
// textdat |
|
////////////////////////////////////////////////// |
|
|
|
typedef struct TextDataStruct { |
|
const char *txtstr; |
|
int scrlltxt; |
|
int txtspd; /* calculated dynamically, 01/23/21 */ |
|
int sfxnr; |
|
} TextDataStruct; |
|
|
|
////////////////////////////////////////////////// |
|
// effects/sound |
|
////////////////////////////////////////////////// |
|
|
|
typedef struct TSnd { |
|
const char *sound_path; |
|
HANDLE file_handle; // for streamed audio |
|
SoundSample *DSB; |
|
int start_tc; |
|
} TSnd; |
|
|
|
typedef struct TSFX { |
|
unsigned char bFlags; |
|
const char *pszName; |
|
TSnd *pSnd; |
|
} TSFX; |
|
|
|
////////////////////////////////////////////////// |
|
// monster |
|
////////////////////////////////////////////////// |
|
|
|
typedef struct AnimStruct { |
|
BYTE *CMem; |
|
BYTE *Data[8]; |
|
int Frames; |
|
int Rate; |
|
} AnimStruct; |
|
|
|
////////////////////////////////////////////////// |
|
// objects |
|
////////////////////////////////////////////////// |
|
|
|
typedef struct ObjDataStruct { |
|
char oload; |
|
char ofindex; |
|
char ominlvl; |
|
char omaxlvl; |
|
char olvltype; |
|
char otheme; |
|
char oquest; |
|
int oAnimFlag; |
|
int oAnimDelay; // Tick length of each frame in the current animation |
|
int oAnimLen; // Number of frames in current animation |
|
int oAnimWidth; |
|
BOOL oSolidFlag; |
|
BOOL oMissFlag; |
|
BOOL oLightFlag; |
|
char oBreak; |
|
char oSelFlag; |
|
BOOL oTrapFlag; |
|
} ObjDataStruct; |
|
|
|
typedef struct ObjectStruct { |
|
int _otype; |
|
int _ox; |
|
int _oy; |
|
bool _oLight; |
|
Uint32 _oAnimFlag; |
|
unsigned char *_oAnimData; |
|
int _oAnimDelay; // Tick length of each frame in the current animation |
|
int _oAnimCnt; // Increases by one each game tick, counting how close we are to _pAnimDelay |
|
int _oAnimLen; // Number of frames in current animation |
|
int _oAnimFrame; // Current frame of animation. |
|
int _oAnimWidth; |
|
int _oAnimWidth2; |
|
BOOL _oDelFlag; |
|
char _oBreak; // check |
|
BOOL _oSolidFlag; |
|
BOOL _oMissFlag; |
|
char _oSelFlag; // check |
|
BOOL _oPreFlag; |
|
BOOL _oTrapFlag; |
|
BOOL _oDoorFlag; |
|
int _olid; |
|
int _oRndSeed; |
|
int _oVar1; |
|
int _oVar2; |
|
int _oVar3; |
|
int _oVar4; |
|
int _oVar5; |
|
int _oVar6; |
|
_speech_id _oVar7; |
|
int _oVar8; |
|
} ObjectStruct; |
|
|
|
////////////////////////////////////////////////// |
|
// gamemenu/gmenu |
|
////////////////////////////////////////////////// |
|
|
|
// TPDEF PTR FCN VOID TMenuFcn |
|
|
|
typedef struct TMenuItem { |
|
DWORD dwFlags; |
|
const char *pszStr; |
|
void (*fnMenu)(BOOL); /* fix, should have one arg */ |
|
} TMenuItem; |
|
|
|
// TPDEF PTR FCN VOID TMenuUpdateFcn |
|
|
|
////////////////////////////////////////////////// |
|
// spells |
|
////////////////////////////////////////////////// |
|
|
|
typedef struct SpellData { |
|
unsigned char sName; |
|
unsigned char sManaCost; |
|
unsigned char sType; |
|
const char *sNameText; |
|
const char *sSkillText; |
|
int sBookLvl; |
|
int sStaffLvl; |
|
BOOL sTargeted; |
|
BOOL sTownSpell; |
|
int sMinInt; |
|
unsigned char sSFX; |
|
unsigned char sMissiles[3]; |
|
unsigned char sManaAdj; |
|
unsigned char sMinMana; |
|
int sStaffMin; |
|
int sStaffMax; |
|
int sBookCost; |
|
int sStaffCost; |
|
} SpellData; |
|
|
|
////////////////////////////////////////////////// |
|
// drlg |
|
////////////////////////////////////////////////// |
|
|
|
typedef struct ShadowStruct { |
|
unsigned char strig; |
|
unsigned char s1; |
|
unsigned char s2; |
|
unsigned char s3; |
|
unsigned char nv1; |
|
unsigned char nv2; |
|
unsigned char nv3; |
|
} ShadowStruct; |
|
|
|
typedef struct HALLNODE { |
|
int nHallx1; |
|
int nHally1; |
|
int nHallx2; |
|
int nHally2; |
|
int nHalldir; |
|
struct HALLNODE *pNext; |
|
} HALLNODE; |
|
|
|
typedef struct ROOMNODE { |
|
int nRoomx1; |
|
int nRoomy1; |
|
int nRoomx2; |
|
int nRoomy2; |
|
int nRoomDest; |
|
} ROOMNODE; |
|
|
|
////////////////////////////////////////////////// |
|
// themes |
|
////////////////////////////////////////////////// |
|
|
|
typedef struct ThemeStruct { |
|
char ttype; /* aligned 4 */ |
|
int ttval; |
|
} ThemeStruct; |
|
|
|
////////////////////////////////////////////////// |
|
// inv |
|
////////////////////////////////////////////////// |
|
|
|
typedef struct InvXY { |
|
int X; |
|
int Y; |
|
} InvXY; |
|
|
|
////////////////////////////////////////////////// |
|
// diabloui |
|
////////////////////////////////////////////////// |
|
|
|
// TPDEF PTR FCN VOID PLAYSND |
|
|
|
typedef struct _uidefaultstats { |
|
WORD strength; |
|
WORD magic; |
|
WORD dexterity; |
|
WORD vitality; |
|
} _uidefaultstats; |
|
|
|
typedef struct _uiheroinfo { |
|
struct _uiheroinfo *next; |
|
char name[16]; |
|
WORD level; |
|
plr_class heroclass; |
|
BYTE herorank; |
|
WORD strength; |
|
WORD magic; |
|
WORD dexterity; |
|
WORD vitality; |
|
int gold; |
|
int hassaved; |
|
BOOL spawned; |
|
} _uiheroinfo; |
|
|
|
// TPDEF PTR FCN UCHAR ENUMHEROPROC |
|
// TPDEF PTR FCN UCHAR ENUMHEROS |
|
// TPDEF PTR FCN UCHAR CREATEHERO |
|
// TPDEF PTR FCN UCHAR DELETEHERO |
|
// TPDEF PTR FCN UCHAR GETDEFHERO |
|
|
|
// TPDEF PTR FCN INT PROGRESSFCN |
|
|
|
////////////////////////////////////////////////// |
|
// storm |
|
////////////////////////////////////////////////// |
|
|
|
// TPDEF PTR FCN UCHAR SMSGIDLEPROC |
|
// TPDEF PTR FCN VOID SMSGHANDLER |
|
|
|
typedef struct _SNETCAPS { |
|
DWORD size; |
|
DWORD flags; |
|
DWORD maxmessagesize; |
|
DWORD maxqueuesize; |
|
DWORD maxplayers; |
|
DWORD bytessec; |
|
DWORD latencyms; |
|
DWORD defaultturnssec; |
|
DWORD defaultturnsintransit; |
|
} _SNETCAPS; |
|
|
|
typedef struct _SNETEVENT { |
|
DWORD eventid; |
|
DWORD playerid; |
|
void *data; |
|
DWORD databytes; |
|
} _SNETEVENT; |
|
|
|
// TPDEF PTR FCN UCHAR SNETABORTPROC |
|
// TPDEF PTR FCN UCHAR SNETCATEGORYPROC |
|
// TPDEF PTR FCN UCHAR SNETCHECKAUTHPROC |
|
// TPDEF PTR FCN UCHAR SNETCREATEPROC |
|
// TPDEF PTR FCN UCHAR SNETDRAWDESCPROC |
|
// TPDEF PTR FCN UCHAR SNETENUMDEVICESPROC |
|
// TPDEF PTR FCN UCHAR SNETENUMGAMESPROC |
|
// TPDEF PTR FCN UCHAR SNETENUMPROVIDERSPROC |
|
// TPDEF PTR FCN VOID SNETEVENTPROC |
|
// TPDEF PTR FCN UCHAR SNETGETARTPROC |
|
// TPDEF PTR FCN UCHAR SNETGETDATAPROC |
|
// TPDEF PTR FCN INT SNETMESSAGEBOXPROC |
|
// TPDEF PTR FCN UCHAR SNETPLAYSOUNDPROC |
|
// TPDEF PTR FCN UCHAR SNETSELECTEDPROC |
|
// TPDEF PTR FCN UCHAR SNETSTATUSPROC |
|
|
|
// TPDEF PTR FCN UCHAR SNETSPIBIND |
|
// TPDEF PTR FCN UCHAR SNETSPIQUERY |
|
|
|
////////////////////////////////////////////////// |
|
// capture |
|
////////////////////////////////////////////////// |
|
|
|
typedef struct _PcxHeader { |
|
BYTE Manufacturer; |
|
BYTE Version; |
|
BYTE Encoding; |
|
BYTE BitsPerPixel; |
|
WORD Xmin; |
|
WORD Ymin; |
|
WORD Xmax; |
|
WORD Ymax; |
|
WORD HDpi; |
|
WORD VDpi; |
|
BYTE Colormap[48]; |
|
BYTE Reserved; |
|
BYTE NPlanes; |
|
WORD BytesPerLine; |
|
WORD PaletteInfo; |
|
WORD HscreenSize; |
|
WORD VscreenSize; |
|
BYTE Filler[54]; |
|
} PCXHEADER; |
|
|
|
DEVILUTION_END_NAMESPACE
|
|
|