mirror of
https://github.com/galaxyhaxz/devilution
synced 2024-11-14 16:29:02 +00:00
1685 lines
29 KiB
C
1685 lines
29 KiB
C
//////////////////////////////////////////////////
|
|
// direct x
|
|
//////////////////////////////////////////////////
|
|
typedef HRESULT (WINAPI *DDCREATEPROC)(GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter);
|
|
typedef HRESULT (WINAPI *DSCREATEPROC)(GUID FAR *lpGUID, LPDIRECTSOUND FAR *lplpDS, IUnknown FAR *pUnkOuter);
|
|
|
|
//////////////////////////////////////////////////
|
|
// items
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct PLStruct
|
|
{
|
|
const char *PLName;
|
|
int PLPower;
|
|
int PLParam1;
|
|
int PLParam2;
|
|
char PLMinLvl;
|
|
int PLIType;
|
|
BYTE PLGOE;
|
|
int PLDouble;
|
|
int PLOk;
|
|
int PLMinVal;
|
|
int PLMaxVal;
|
|
int PLMultVal;
|
|
} PLStruct;
|
|
|
|
typedef struct UItemStruct
|
|
{
|
|
char *UIName;
|
|
char UIItemId;
|
|
char UIMinLvl;
|
|
char UINumPL;
|
|
int UIValue;
|
|
char UIPower1;
|
|
int UIParam1;
|
|
int UIParam2;
|
|
char UIPower2;
|
|
int UIParam3;
|
|
int UIParam4;
|
|
char UIPower3;
|
|
int UIParam5;
|
|
int UIParam6;
|
|
char UIPower4;
|
|
int UIParam7;
|
|
int UIParam8;
|
|
char UIPower5;
|
|
int UIParam9;
|
|
int UIParam10;
|
|
char UIPower6;
|
|
int UIParam11;
|
|
int UIParam12;
|
|
} UItemStruct;
|
|
|
|
typedef struct ItemDataStruct
|
|
{
|
|
int iRnd;
|
|
char iClass;
|
|
char iLoc;
|
|
int iCurs;
|
|
char itype;
|
|
char iItemId;
|
|
char *iName;
|
|
char *iSName;
|
|
char iMinMLvl;
|
|
int iDurability;
|
|
int iMinDam;
|
|
int iMaxDam;
|
|
int iMinAC;
|
|
int iMaxAC;
|
|
char iMinStr;
|
|
char iMinMag;
|
|
char iMinDex;
|
|
int iFlags;
|
|
int iMiscId;
|
|
int iSpell;
|
|
int iUsable;
|
|
int iValue;
|
|
int iMaxValue;
|
|
} ItemDataStruct;
|
|
|
|
typedef struct ItemGetRecordStruct
|
|
{
|
|
int nSeed;
|
|
unsigned short wCI;
|
|
int nIndex;
|
|
unsigned int dwTimestamp;
|
|
} ItemGetRecordStruct;
|
|
|
|
typedef struct ItemStruct
|
|
{
|
|
int _iSeed;
|
|
unsigned short _iCreateInfo;
|
|
int _itype;
|
|
int _ix;
|
|
int _iy;
|
|
int _iAnimFlag;
|
|
unsigned char *_iAnimData; // PSX name -> ItemFrame
|
|
int _iAnimLen;
|
|
int _iAnimFrame;
|
|
int _iAnimWidth;
|
|
int _iAnimWidth2; // width 2?
|
|
int _iDelFlag; // set when item is flagged for deletion, deprecated in 1.02
|
|
char _iSelFlag;
|
|
int _iPostDraw;
|
|
int _iIdentified;
|
|
char _iMagical;
|
|
char _iName[64];
|
|
char _iIName[64];
|
|
char _iLoc;
|
|
char _iClass;
|
|
int _iCurs;
|
|
int _ivalue;
|
|
int _iIvalue;
|
|
int _iMinDam;
|
|
int _iMaxDam;
|
|
int _iAC;
|
|
int _iFlags;
|
|
int _iMiscId;
|
|
int _iSpell;
|
|
int _iCharges;
|
|
int _iMaxCharges;
|
|
int _iDurability;
|
|
int _iMaxDur;
|
|
int _iPLDam;
|
|
int _iPLToHit;
|
|
int _iPLAC;
|
|
int _iPLStr;
|
|
int _iPLMag;
|
|
int _iPLDex;
|
|
int _iPLVit;
|
|
int _iPLFR;
|
|
int _iPLLR;
|
|
int _iPLMR;
|
|
int _iPLMana;
|
|
int _iPLHP;
|
|
int _iPLDamMod;
|
|
int _iPLGetHit;
|
|
int _iPLLight;
|
|
char _iSplLvlAdd;
|
|
char _iRequest;
|
|
int _iUid;
|
|
int _iFMinDam;
|
|
int _iFMaxDam;
|
|
int _iLMinDam;
|
|
int _iLMaxDam;
|
|
int _iPLEnAc;
|
|
char _iPrePower;
|
|
char _iSufPower;
|
|
int _iVAdd1;
|
|
int _iVMult1;
|
|
int _iVAdd2;
|
|
int _iVMult2;
|
|
char _iMinStr;
|
|
unsigned char _iMinMag;
|
|
char _iMinDex;
|
|
int _iStatFlag;
|
|
int IDidx;
|
|
int offs016C; // _oldlight or _iInvalid
|
|
} ItemStruct;
|
|
|
|
//////////////////////////////////////////////////
|
|
// player
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct PlayerStruct
|
|
{
|
|
int _pmode;
|
|
char walkpath[25];
|
|
unsigned char plractive;
|
|
int destAction;
|
|
int destParam1;
|
|
int destParam2;
|
|
int destParam3;
|
|
int destParam4;
|
|
int plrlevel;
|
|
int WorldX;
|
|
int WorldY;
|
|
int _px;
|
|
int _py;
|
|
int _ptargx;
|
|
int _ptargy;
|
|
int _pownerx;
|
|
int _pownery;
|
|
int _poldx;
|
|
int _poldy;
|
|
int _pxoff;
|
|
int _pyoff;
|
|
int _pxvel;
|
|
int _pyvel;
|
|
int _pdir;
|
|
int _nextdir;
|
|
int _pgfxnum;
|
|
unsigned char *_pAnimData;
|
|
int _pAnimDelay;
|
|
int _pAnimCnt;
|
|
int _pAnimLen;
|
|
int _pAnimFrame;
|
|
int _pAnimWidth;
|
|
int _pAnimWidth2;
|
|
int _peflag;
|
|
int _plid;
|
|
int _pvid;
|
|
int _pSpell;
|
|
char _pSplType;
|
|
char _pSplFrom;
|
|
int _pTSpell;
|
|
char _pTSplType;
|
|
int _pRSpell;
|
|
char _pRSplType;
|
|
int _pSBkSpell;
|
|
char _pSBkSplType;
|
|
char _pSplLvl[64];
|
|
union {
|
|
__int64 _pMemSpells64;
|
|
int _pMemSpells[2];
|
|
};
|
|
union {
|
|
__int64 _pAblSpells64;
|
|
int _pAblSpells[2];
|
|
};
|
|
union {
|
|
__int64 _pScrlSpells64;
|
|
int _pScrlSpells[2];
|
|
};
|
|
char _pSpellFlags;
|
|
int _pSplHotKey[4];
|
|
char _pSplTHotKey[4];
|
|
int _pwtype;
|
|
unsigned char _pBlockFlag;
|
|
unsigned char _pInvincible;
|
|
char _pLightRad;
|
|
unsigned char _pLvlChanging;
|
|
char _pName[32];
|
|
char _pClass;
|
|
int _pStrength;
|
|
int _pBaseStr;
|
|
int _pMagic;
|
|
int _pBaseMag;
|
|
int _pDexterity;
|
|
int _pBaseDex;
|
|
int _pVitality;
|
|
int _pBaseVit;
|
|
int _pStatPts;
|
|
int _pDamageMod;
|
|
int _pBaseToBlk;
|
|
int _pHPBase;
|
|
int _pMaxHPBase;
|
|
int _pHitPoints;
|
|
int _pMaxHP;
|
|
int _pHPPer;
|
|
int _pManaBase;
|
|
int _pMaxManaBase;
|
|
int _pMana;
|
|
int _pMaxMana;
|
|
int _pManaPer;
|
|
char _pLevel;
|
|
char _pMaxLvl;
|
|
int _pExperience;
|
|
int _pMaxExp;
|
|
int _pNextExper;
|
|
char _pArmorClass;
|
|
char _pMagResist;
|
|
char _pFireResist;
|
|
char _pLghtResist;
|
|
int _pGold;
|
|
int _pInfraFlag;
|
|
int _pVar1;
|
|
int _pVar2;
|
|
int _pVar3;
|
|
int _pVar4;
|
|
int _pVar5;
|
|
int _pVar6;
|
|
int _pVar7;
|
|
int _pVar8;
|
|
unsigned char _pLvlVisited[NUMLEVELS];
|
|
unsigned char _pSLvlVisited[NUMLEVELS]; // only 10 used
|
|
int _pGFXLoad;
|
|
unsigned char *_pNAnim[8];
|
|
int _pNFrames;
|
|
int _pNWidth;
|
|
unsigned char *_pWAnim[8];
|
|
int _pWFrames;
|
|
int _pWWidth;
|
|
unsigned char *_pAAnim[8];
|
|
int _pAFrames;
|
|
int _pAWidth;
|
|
int _pAFNum;
|
|
unsigned char *_pLAnim[8];
|
|
unsigned char *_pFAnim[8];
|
|
unsigned char *_pTAnim[8];
|
|
int _pSFrames;
|
|
int _pSWidth;
|
|
int _pSFNum;
|
|
unsigned char *_pHAnim[8];
|
|
int _pHFrames;
|
|
int _pHWidth;
|
|
unsigned char *_pDAnim[8];
|
|
int _pDFrames;
|
|
int _pDWidth;
|
|
unsigned char *_pBAnim[8];
|
|
int _pBFrames;
|
|
int _pBWidth;
|
|
ItemStruct InvBody[7];
|
|
ItemStruct InvList[40];
|
|
int _pNumInv;
|
|
char InvGrid[40];
|
|
ItemStruct SpdList[8];
|
|
ItemStruct HoldItem;
|
|
int _pIMinDam;
|
|
int _pIMaxDam;
|
|
int _pIAC;
|
|
int _pIBonusDam;
|
|
int _pIBonusToHit;
|
|
int _pIBonusAC;
|
|
int _pIBonusDamMod;
|
|
union {
|
|
__int64 _pISpells64;
|
|
int _pISpells[2];
|
|
};
|
|
int _pIFlags;
|
|
int _pIGetHit;
|
|
char _pISplLvlAdd;
|
|
char _pISplCost; /* unused (beta): reduce mana cost of spells */
|
|
int _pISplDur; /* unused (beta): increase duration of spells */
|
|
int _pIEnAc;
|
|
int _pIFMinDam;
|
|
int _pIFMaxDam;
|
|
int _pILMinDam;
|
|
int _pILMaxDam;
|
|
int _pOilType; /* unused (beta): current oil applied to item */
|
|
unsigned char pTownWarps;
|
|
unsigned char pDungMsgs;
|
|
unsigned char pLvlLoad;
|
|
unsigned char pBattleNet;
|
|
unsigned char pManaShield;
|
|
char bReserved[3];
|
|
short wReserved[8];
|
|
DWORD pDiabloKillLevel;
|
|
int dwReserved[7];
|
|
unsigned char *_pNData;
|
|
unsigned char *_pWData;
|
|
unsigned char *_pAData;
|
|
unsigned char *_pLData;
|
|
unsigned char *_pFData;
|
|
unsigned char *_pTData;
|
|
unsigned char *_pHData;
|
|
unsigned char *_pDData;
|
|
unsigned char *_pBData;
|
|
void *pReserved;
|
|
} PlayerStruct;
|
|
|
|
//////////////////////////////////////////////////
|
|
// textdat
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct TextDataStruct
|
|
{
|
|
char *txtstr;
|
|
int scrlltxt;
|
|
int txtspd;
|
|
int sfxnr;
|
|
} TextDataStruct;
|
|
|
|
//////////////////////////////////////////////////
|
|
// missiles
|
|
//////////////////////////////////////////////////
|
|
|
|
// TPDEF PTR FCN VOID MIADDPRC
|
|
// TPDEF PTR FCN VOID MIPROC
|
|
|
|
typedef struct MissileData
|
|
{
|
|
unsigned char mName;
|
|
void (* mAddProc)(int, int, int, int, int, int, char, int, int);
|
|
void (* mProc)(int);
|
|
int mDraw;
|
|
unsigned char mType;
|
|
unsigned char mResist;
|
|
unsigned char mFileNum;
|
|
int mlSFX;
|
|
int miSFX;
|
|
} MissileData;
|
|
|
|
typedef struct MisFileData
|
|
{
|
|
unsigned char mAnimName;
|
|
unsigned char mAnimFAmt;
|
|
char *mName;
|
|
int mFlags;
|
|
unsigned char *mAnimData[16];
|
|
unsigned char mAnimDelay[16];
|
|
unsigned char mAnimLen[16];
|
|
int mAnimWidth[16];
|
|
int mAnimWidth2[16];
|
|
} MisFileData;
|
|
|
|
typedef struct ChainStruct
|
|
{
|
|
int idx;
|
|
int _mitype;
|
|
int _mirange;
|
|
} ChainStruct;
|
|
|
|
typedef struct MissileStruct
|
|
{
|
|
int _mitype;
|
|
int _mix;
|
|
int _miy;
|
|
int _mixoff;
|
|
int _miyoff;
|
|
int _mixvel;
|
|
int _miyvel;
|
|
int _misx;
|
|
int _misy;
|
|
int _mitxoff;
|
|
int _mityoff;
|
|
int _mimfnum;
|
|
int _mispllvl;
|
|
int _miDelFlag;
|
|
BYTE _miAnimType;
|
|
int _miAnimFlags;
|
|
unsigned char *_miAnimData;
|
|
int _miAnimDelay;
|
|
int _miAnimLen;
|
|
int _miAnimWidth;
|
|
int _miAnimWidth2;
|
|
int _miAnimCnt;
|
|
int _miAnimAdd;
|
|
int _miAnimFrame;
|
|
int _miDrawFlag;
|
|
int _miLightFlag;
|
|
int _miPreFlag;
|
|
int _miUniqTrans;
|
|
int _mirange;
|
|
int _misource;
|
|
int _micaster;
|
|
int _midam;
|
|
int _miHitFlag;
|
|
int _midist;
|
|
int _mlid;
|
|
int _mirnd;
|
|
int _miVar1;
|
|
int _miVar2;
|
|
int _miVar3;
|
|
int _miVar4;
|
|
int _miVar5;
|
|
int _miVar6;
|
|
int _miVar7;
|
|
int _miVar8;
|
|
} MissileStruct;
|
|
|
|
//////////////////////////////////////////////////
|
|
// effects/sound
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct CKINFO {
|
|
DWORD dwSize;
|
|
DWORD dwOffset;
|
|
} CKINFO;
|
|
|
|
typedef struct TSnd
|
|
{
|
|
WAVEFORMATEX fmt;
|
|
CKINFO chunk;
|
|
char *sound_path;
|
|
IDirectSoundBuffer *DSB;
|
|
int start_tc;
|
|
} TSnd;
|
|
|
|
#pragma pack(push, 1)
|
|
typedef struct TSFX
|
|
{
|
|
unsigned char bFlags;
|
|
char *pszName;
|
|
TSnd *pSnd;
|
|
} TSFX;
|
|
#pragma pack(pop)
|
|
|
|
//////////////////////////////////////////////////
|
|
// monster
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct AnimStruct // note: wrong names
|
|
{
|
|
BYTE *CMem; // [unsigned] char * ??
|
|
unsigned char *Frames[8]; // probably Data[8]
|
|
int Rate;
|
|
int Delay;
|
|
} AnimStruct;
|
|
|
|
typedef struct MonsterData
|
|
{
|
|
int flags; // width?
|
|
int mType;
|
|
char *GraphicType;
|
|
int has_special;
|
|
char *sndfile;
|
|
int snd_special;
|
|
int has_trans;
|
|
char *TransFile;
|
|
int Frames[6];
|
|
int Rate[6];
|
|
char *mName;
|
|
char mMinDLvl;
|
|
char mMaxDLvl;
|
|
char mLevel;
|
|
int mMinHP;
|
|
int mMaxHP;
|
|
char mAi;
|
|
int mFlags;
|
|
unsigned char mInt;
|
|
unsigned char mHit;
|
|
unsigned char mAFNum;
|
|
unsigned char mMinDamage;
|
|
unsigned char mMaxDamage;
|
|
unsigned char mHit2;
|
|
unsigned char mAFNum2;
|
|
unsigned char mMinDamage2;
|
|
unsigned char mMaxDamage2;
|
|
char mArmorClass;
|
|
char mMonstClass;
|
|
unsigned short mMagicRes;
|
|
unsigned short mMagicRes2;
|
|
unsigned short mTreasure;
|
|
char mSelFlag;
|
|
unsigned short mExp;
|
|
} MonsterData;
|
|
|
|
typedef struct CMonster
|
|
{
|
|
unsigned char mtype;
|
|
unsigned char mPlaceFlags;
|
|
AnimStruct Anims[6];
|
|
TSnd *Snds[4][2];
|
|
int flags_1; // width
|
|
int flags_2; // width 2
|
|
unsigned char mMinHP;
|
|
unsigned char mMaxHP;
|
|
int has_special;
|
|
unsigned char mAFNum;
|
|
char mdeadval;
|
|
MonsterData *MData;
|
|
BYTE *trans_file;
|
|
} CMonster;
|
|
|
|
typedef struct MonsterStruct // note: missing field _mAFNum
|
|
{
|
|
int _mMTidx;
|
|
int _mmode;
|
|
char _mgoal;
|
|
int _mgoalvar1;
|
|
int _mgoalvar2;
|
|
int _mgoalvar3;
|
|
int field_18; // _mgoalvar4?
|
|
char _pathcount;
|
|
int _mx;
|
|
int _my;
|
|
int _mfutx;
|
|
int _mfuty;
|
|
int _moldx;
|
|
int _moldy;
|
|
int _mxoff;
|
|
int _myoff;
|
|
int _mxvel;
|
|
int _myvel;
|
|
int _mdir;
|
|
int _menemy;
|
|
unsigned char _menemyx;
|
|
unsigned char _menemyy;
|
|
short falign_52;
|
|
unsigned char *_mAnimData;
|
|
int _mAnimDelay;
|
|
int _mAnimCnt;
|
|
int _mAnimLen;
|
|
int _mAnimFrame;
|
|
int _meflag;
|
|
int _mDelFlag;
|
|
int _mVar1;
|
|
int _mVar2;
|
|
int _mVar3;
|
|
int _mVar4;
|
|
int _mVar5;
|
|
int _mVar6;
|
|
int _mVar7;
|
|
int _mVar8;
|
|
int _mmaxhp;
|
|
int _mhitpoints;
|
|
unsigned char _mAi;
|
|
unsigned char _mint;
|
|
short falign_9A;
|
|
int _mFlags;
|
|
BYTE _msquelch;
|
|
int falign_A4;
|
|
int _lastx;
|
|
int _lasty;
|
|
int _mRndSeed;
|
|
int _mAISeed;
|
|
int falign_B8;
|
|
unsigned char _uniqtype;
|
|
unsigned char _uniqtrans;
|
|
char _udeadval;
|
|
char mWhoHit;
|
|
char mLevel;
|
|
unsigned short mExp;
|
|
unsigned char mHit;
|
|
unsigned char mMinDamage;
|
|
unsigned char mMaxDamage;
|
|
unsigned char mHit2;
|
|
unsigned char mMinDamage2;
|
|
unsigned char mMaxDamage2;
|
|
char mArmorClass;
|
|
char falign_CB;
|
|
WORD mMagicRes;
|
|
int mtalkmsg;
|
|
unsigned char leader;
|
|
unsigned char leaderflag;
|
|
unsigned char packsize;
|
|
unsigned char mlid;
|
|
char *mName;
|
|
CMonster *MType;
|
|
MonsterData *MData;
|
|
} MonsterStruct;
|
|
|
|
typedef struct UniqMonstStruct
|
|
{
|
|
char mtype;
|
|
char *mName;
|
|
char *mTrnName;
|
|
unsigned char mlevel;
|
|
unsigned short mmaxhp;
|
|
unsigned char mAi;
|
|
unsigned char mint;
|
|
unsigned char mMinDamage;
|
|
unsigned char mMaxDamage;
|
|
unsigned short mMagicRes;
|
|
unsigned short mUnqAttr;
|
|
unsigned char mUnqVar1;
|
|
unsigned char mUnqVar2;
|
|
int mtalkmsg;
|
|
} UniqMonstStruct;
|
|
|
|
//////////////////////////////////////////////////
|
|
// objects
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct ObjDataStruct
|
|
{
|
|
char oload;
|
|
char ofindex;
|
|
char ominlvl;
|
|
char omaxlvl;
|
|
char olvltype;
|
|
char otheme;
|
|
char oquest;
|
|
int oAnimFlag;
|
|
int oAnimDelay;
|
|
int oAnimLen;
|
|
int oAnimWidth;
|
|
int oSolidFlag;
|
|
int oMissFlag;
|
|
int oLightFlag;
|
|
char oBreak;
|
|
char oSelFlag;
|
|
int oTrapFlag;
|
|
} ObjDataStruct;
|
|
|
|
typedef struct ObjectStruct
|
|
{
|
|
int _otype;
|
|
int _ox;
|
|
int _oy;
|
|
int _oLight;
|
|
int _oAnimFlag;
|
|
unsigned char *_oAnimData;
|
|
int _oAnimDelay;
|
|
int _oAnimCnt;
|
|
int _oAnimLen;
|
|
int _oAnimFrame;
|
|
int _oAnimWidth;
|
|
int _oAnimWidth2;
|
|
int _oDelFlag;
|
|
char _oBreak; // check
|
|
int _oSolidFlag;
|
|
int _oMissFlag;
|
|
char _oSelFlag; // check
|
|
int _oPreFlag;
|
|
int _oTrapFlag;
|
|
int _oDoorFlag;
|
|
int _olid;
|
|
int _oRndSeed;
|
|
int _oVar1;
|
|
int _oVar2;
|
|
int _oVar3;
|
|
int _oVar4;
|
|
int _oVar5;
|
|
int _oVar6;
|
|
int _oVar7;
|
|
int _oVar8;
|
|
} ObjectStruct;
|
|
|
|
//////////////////////////////////////////////////
|
|
// portal
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct PortalStruct
|
|
{
|
|
int open;
|
|
int x;
|
|
int y;
|
|
int level;
|
|
int ltype;
|
|
int setlvl;
|
|
} PortalStruct;
|
|
|
|
//////////////////////////////////////////////////
|
|
// msg
|
|
//////////////////////////////////////////////////
|
|
|
|
#pragma pack(push, 1)
|
|
typedef struct TCmd
|
|
{
|
|
unsigned char bCmd;
|
|
} TCmd;
|
|
|
|
typedef struct TCmdLoc
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned char x;
|
|
unsigned char y;
|
|
} TCmdLoc;
|
|
|
|
typedef struct TCmdLocParam1
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned char x;
|
|
unsigned char y;
|
|
unsigned short wParam1;
|
|
} TCmdLocParam1;
|
|
|
|
typedef struct TCmdLocParam2
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned char x;
|
|
unsigned char y;
|
|
unsigned short wParam1;
|
|
unsigned short wParam2;
|
|
} TCmdLocParam2;
|
|
|
|
typedef struct TCmdLocParam3
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned char x;
|
|
unsigned char y;
|
|
unsigned short wParam1;
|
|
unsigned short wParam2;
|
|
unsigned short wParam3;
|
|
} TCmdLocParam3;
|
|
|
|
typedef struct TCmdParam1
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned short wParam1;
|
|
} TCmdParam1;
|
|
|
|
typedef struct TCmdParam2
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned short wParam1;
|
|
unsigned short wParam2;
|
|
} TCmdParam2;
|
|
|
|
typedef struct TCmdParam3
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned short wParam1;
|
|
unsigned short wParam2;
|
|
unsigned short wParam3;
|
|
} TCmdParam3;
|
|
|
|
typedef struct TCmdGolem
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned char _mx;
|
|
unsigned char _my;
|
|
unsigned char _mdir;
|
|
unsigned char _menemy;
|
|
int _mhitpoints;
|
|
unsigned char _currlevel;
|
|
} TCmdGolem;
|
|
|
|
typedef struct TCmdQuest
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned char q;
|
|
unsigned char qstate;
|
|
unsigned char qlog;
|
|
unsigned char qvar1;
|
|
} TCmdQuest;
|
|
|
|
typedef struct TCmdGItem
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned char bMaster;
|
|
unsigned char bPnum;
|
|
unsigned char bCursitem;
|
|
unsigned char bLevel;
|
|
unsigned char x;
|
|
unsigned char y;
|
|
unsigned short wIndx;
|
|
unsigned short wCI;
|
|
int dwSeed;
|
|
unsigned char bId;
|
|
unsigned char bDur;
|
|
unsigned char bMDur;
|
|
unsigned char bCh;
|
|
unsigned char bMCh;
|
|
unsigned short wValue;
|
|
int dwBuff;
|
|
int dwTime;
|
|
} TCmdGItem;
|
|
|
|
typedef struct TCmdPItem
|
|
{
|
|
char bCmd; /* unsigned */
|
|
unsigned char x;
|
|
unsigned char y;
|
|
unsigned short wIndx;
|
|
unsigned short wCI;
|
|
int dwSeed;
|
|
unsigned char bId;
|
|
unsigned char bDur;
|
|
unsigned char bMDur;
|
|
unsigned char bCh;
|
|
unsigned char bMCh;
|
|
unsigned short wValue;
|
|
int dwBuff;
|
|
} TCmdPItem;
|
|
|
|
typedef struct TCmdChItem
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned char bLoc;
|
|
unsigned short wIndx;
|
|
unsigned short wCI;
|
|
int dwSeed;
|
|
unsigned char bId;
|
|
} TCmdChItem;
|
|
|
|
typedef struct TCmdDelItem
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned char bLoc;
|
|
} TCmdDelItem;
|
|
|
|
typedef struct TCmdDamage
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned char bPlr;
|
|
int dwDam;
|
|
} TCmdDamage;
|
|
|
|
typedef struct TCmdPlrInfoHdr
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned short wOffset;
|
|
unsigned short wBytes;
|
|
} TCmdPlrInfoHdr;
|
|
|
|
typedef struct TCmdString
|
|
{
|
|
unsigned char bCmd;
|
|
char str[80];
|
|
} TCmdString;
|
|
|
|
typedef struct TFakeCmdPlr
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned char bPlr;
|
|
} TFakeCmdPlr;
|
|
|
|
typedef struct TFakeDropPlr
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned char bPlr;
|
|
int dwReason;
|
|
} TFakeDropPlr;
|
|
|
|
typedef struct TSyncHeader
|
|
{
|
|
unsigned char bCmd;
|
|
unsigned char bLevel;
|
|
unsigned short wLen;
|
|
unsigned char bObjId;
|
|
unsigned char bObjCmd;
|
|
unsigned char bItemI;
|
|
unsigned char bItemX;
|
|
unsigned char bItemY;
|
|
unsigned short wItemIndx;
|
|
unsigned short wItemCI;
|
|
int dwItemSeed;
|
|
unsigned char bItemId;
|
|
unsigned char bItemDur;
|
|
unsigned char bItemMDur;
|
|
unsigned char bItemCh;
|
|
unsigned char bItemMCh;
|
|
unsigned short wItemVal;
|
|
unsigned int dwItemBuff;
|
|
unsigned char bPInvLoc;
|
|
unsigned short wPInvIndx;
|
|
unsigned short wPInvCI;
|
|
int dwPInvSeed;
|
|
unsigned char bPInvId;
|
|
} TSyncHeader;
|
|
|
|
typedef struct TSyncMonster
|
|
{
|
|
unsigned char _mndx;
|
|
unsigned char _mx;
|
|
unsigned char _my;
|
|
unsigned char _menemy;
|
|
unsigned char _mdelta;
|
|
} TSyncMonster;
|
|
|
|
typedef struct TPktHdr
|
|
{
|
|
unsigned char px;
|
|
unsigned char py;
|
|
unsigned char targx;
|
|
unsigned char targy;
|
|
int php;
|
|
int pmhp;
|
|
unsigned char bstr;
|
|
unsigned char bmag;
|
|
unsigned char bdex;
|
|
unsigned short wCheck;
|
|
unsigned short wLen;
|
|
} TPktHdr;
|
|
|
|
typedef struct TPkt
|
|
{
|
|
TPktHdr hdr;
|
|
unsigned char body[493];
|
|
} TPkt;
|
|
|
|
typedef struct DMonsterStr
|
|
{
|
|
unsigned char _mx; /* these might be unsigned */
|
|
unsigned char _my;
|
|
unsigned char _mdir;
|
|
unsigned char _menemy;
|
|
unsigned char _mactive;
|
|
int _mhitpoints;
|
|
} DMonsterStr;
|
|
|
|
typedef struct DObjectStr
|
|
{
|
|
unsigned char bCmd;
|
|
} DObjectStr;
|
|
|
|
typedef struct DLevel
|
|
{
|
|
TCmdPItem item[MAXITEMS];
|
|
DObjectStr object[MAXOBJECTS];
|
|
DMonsterStr monster[MAXMONSTERS];
|
|
} DLevel;
|
|
|
|
typedef struct LocalLevel
|
|
{
|
|
unsigned char automapsv[40][40];
|
|
} LocalLevel;
|
|
|
|
typedef struct DPortal
|
|
{
|
|
unsigned char x;
|
|
unsigned char y;
|
|
unsigned char level;
|
|
unsigned char ltype;
|
|
unsigned char setlvl;
|
|
} DPortal;
|
|
|
|
typedef struct MultiQuests
|
|
{
|
|
unsigned char qstate;
|
|
unsigned char qlog;
|
|
unsigned char qvar1;
|
|
} MultiQuests;
|
|
|
|
typedef struct DJunk
|
|
{
|
|
DPortal portal[MAXPORTAL];
|
|
MultiQuests quests[MAXMULTIQUESTS];
|
|
} DJunk;
|
|
#pragma pack(pop)
|
|
|
|
typedef struct TMegaPkt
|
|
{
|
|
struct TMegaPkt *pNext;
|
|
int dwSpaceLeft;
|
|
unsigned char data[32000];
|
|
} TMegaPkt;
|
|
|
|
typedef struct TBuffer
|
|
{
|
|
unsigned int dwNextWriteOffset;
|
|
unsigned char bData[4096];
|
|
} TBuffer;
|
|
|
|
//////////////////////////////////////////////////
|
|
// quests
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct QuestStruct
|
|
{
|
|
unsigned char _qlevel;
|
|
unsigned char _qtype;
|
|
unsigned char _qactive;
|
|
unsigned char _qlvltype;
|
|
int _qtx;
|
|
int _qty;
|
|
unsigned char _qslvl;
|
|
unsigned char _qidx;
|
|
unsigned char _qmsg;
|
|
unsigned char _qvar1;
|
|
unsigned char _qvar2;
|
|
int _qlog; /* char */
|
|
} QuestStruct;
|
|
|
|
typedef struct QuestData
|
|
{
|
|
unsigned char _qdlvl;
|
|
char _qdmultlvl;
|
|
unsigned char _qlvlt;
|
|
unsigned char _qdtype;
|
|
unsigned char _qdrnd;
|
|
unsigned char _qslvl;
|
|
int _qflags; /* unsigned char */
|
|
int _qdmsg;
|
|
char *_qlstr;
|
|
} QuestData;
|
|
|
|
//////////////////////////////////////////////////
|
|
// gamemenu/gmenu
|
|
//////////////////////////////////////////////////
|
|
|
|
// TPDEF PTR FCN VOID TMenuFcn
|
|
|
|
typedef struct TMenuItem
|
|
{
|
|
unsigned int dwFlags;
|
|
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;
|
|
char *sNameText;
|
|
char *sSkillText;
|
|
int sBookLvl;
|
|
int sStaffLvl;
|
|
int 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;
|
|
|
|
//////////////////////////////////////////////////
|
|
// towners
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct TNQ
|
|
{
|
|
unsigned char _qsttype;
|
|
unsigned char _qstmsg;
|
|
unsigned char _qstmsgact;
|
|
} TNQ;
|
|
|
|
typedef struct TownerStruct
|
|
{
|
|
int _tmode;
|
|
int _ttype;
|
|
int _tx;
|
|
int _ty;
|
|
int _txoff;
|
|
int _tyoff;
|
|
int _txvel;
|
|
int _tyvel;
|
|
int _tdir;
|
|
unsigned char *_tAnimData;
|
|
int _tAnimDelay;
|
|
int _tAnimCnt;
|
|
int _tAnimLen;
|
|
int _tAnimFrame;
|
|
int _tAnimFrameCnt;
|
|
char _tAnimOrder;
|
|
int _tAnimWidth;
|
|
int _tAnimWidth2;
|
|
int _tTenPer;
|
|
int _teflag;
|
|
int _tbtcnt;
|
|
int _tSelFlag;
|
|
int _tMsgSaid;
|
|
TNQ qsts[16];
|
|
int _tSeed;
|
|
int _tVar1;
|
|
int _tVar2;
|
|
int _tVar3;
|
|
int _tVar4;
|
|
char _tName[32];
|
|
unsigned char *_tNAnim[8];
|
|
int _tNFrames;
|
|
unsigned char *_tNData;
|
|
} TownerStruct;
|
|
|
|
typedef struct QuestTalkData
|
|
{
|
|
int _qinfra;
|
|
int _qblkm;
|
|
int _qgarb;
|
|
int _qzhar;
|
|
int _qveil;
|
|
int _qmod;
|
|
int _qbutch;
|
|
int _qbol;
|
|
int _qblind;
|
|
int _qblood;
|
|
int _qanvil;
|
|
int _qwarlrd;
|
|
int _qking;
|
|
int _qpw;
|
|
int _qbone;
|
|
int _qvb;
|
|
} QuestTalkData;
|
|
|
|
//////////////////////////////////////////////////
|
|
// gendung
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct ScrollStruct
|
|
{
|
|
int _sxoff;
|
|
int _syoff;
|
|
int _sdx;
|
|
int _sdy;
|
|
int _sdir;
|
|
} ScrollStruct;
|
|
|
|
typedef struct THEME_LOC
|
|
{
|
|
int x;
|
|
int y;
|
|
int ttval;
|
|
int width;
|
|
int height;
|
|
} THEME_LOC;
|
|
|
|
typedef struct MICROS
|
|
{
|
|
WORD mt[16];
|
|
} MICROS;
|
|
|
|
//////////////////////////////////////////////////
|
|
// 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;
|
|
|
|
//////////////////////////////////////////////////
|
|
// lighting
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct LightListStruct
|
|
{
|
|
int _lx;
|
|
int _ly;
|
|
int _lradius;
|
|
int _lid;
|
|
int _ldel;
|
|
int _lunflag;
|
|
int field_18;
|
|
int _lunx;
|
|
int _luny;
|
|
int _lunr;
|
|
int _xoff;
|
|
int _yoff;
|
|
int _lflags;
|
|
} LightListStruct;
|
|
|
|
//////////////////////////////////////////////////
|
|
// dead
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct DeadStruct
|
|
{
|
|
unsigned char *_deadData[8];
|
|
int _deadFrame;
|
|
int _deadWidth;
|
|
int _deadWidth2;
|
|
char _deadtrans;
|
|
} DeadStruct;
|
|
|
|
//////////////////////////////////////////////////
|
|
// storm
|
|
//////////////////////////////////////////////////
|
|
|
|
// TPDEF PTR FCN VOID SEVTHANDLER
|
|
|
|
// 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
|
|
|
|
typedef struct _SNETPLAYERDATA
|
|
{
|
|
int size;
|
|
char *playername;
|
|
char *playerdescription;
|
|
int reserved;
|
|
} _SNETPLAYERDATA;
|
|
|
|
typedef struct _SNETPROGRAMDATA
|
|
{
|
|
int size;
|
|
char *programname;
|
|
char *programdescription;
|
|
int programid;
|
|
int versionid;
|
|
int reserved1;
|
|
int maxplayers;
|
|
void *initdata;
|
|
int initdatabytes;
|
|
void *reserved2;
|
|
int optcategorybits;
|
|
char *cdkey;
|
|
char *registereduser;
|
|
int spawned;
|
|
int lcid;
|
|
} _SNETPROGRAMDATA;
|
|
|
|
typedef struct _SNETUIDATA
|
|
{
|
|
int size;
|
|
int uiflags;
|
|
HWND parentwindow;
|
|
void (* artcallback)();
|
|
void (* authcallback)();
|
|
void (* createcallback)();
|
|
void (* drawdesccallback)();
|
|
void (* selectedcallback)();
|
|
void (* messageboxcallback)();
|
|
void (* soundcallback)();
|
|
void (* statuscallback)();
|
|
void (* getdatacallback)();
|
|
void (* categorycallback)();
|
|
void (* categorylistcallback)();
|
|
void (* newaccountcallback)();
|
|
void (* profilecallback)();
|
|
int profilefields;
|
|
void (* profilebitmapcallback)();
|
|
void (* selectnamecallback)();
|
|
void (* changenamecallback)();
|
|
} _SNETUIDATA;
|
|
|
|
typedef struct _SNETVERSIONDATA
|
|
{
|
|
int size;
|
|
char *versionstring;
|
|
char *executablefile;
|
|
char *originalarchivefile;
|
|
char *patcharchivefile;
|
|
} _SNETVERSIONDATA;
|
|
|
|
// TPDEF PTR FCN UCHAR SNETSPIBIND
|
|
// TPDEF PTR FCN UCHAR SNETSPIQUERY
|
|
|
|
//////////////////////////////////////////////////
|
|
// diabloui
|
|
//////////////////////////////////////////////////
|
|
|
|
// TPDEF PTR FCN VOID PLAYSND
|
|
|
|
typedef struct _gamedata
|
|
{
|
|
DWORD dwSeed;
|
|
unsigned char bDiff;
|
|
} _gamedata;
|
|
|
|
typedef struct _uidefaultstats
|
|
{
|
|
unsigned short strength;
|
|
unsigned short magic;
|
|
unsigned short dexterity;
|
|
unsigned short vitality;
|
|
} _uidefaultstats;
|
|
|
|
typedef struct _uiheroinfo
|
|
{
|
|
struct _uiheroinfo *next;
|
|
char name[16];
|
|
unsigned short level;
|
|
unsigned char heroclass;
|
|
unsigned char herorank;
|
|
unsigned short strength;
|
|
unsigned short magic;
|
|
unsigned short dexterity;
|
|
unsigned short vitality;
|
|
int gold;
|
|
int hassaved;
|
|
int 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
|
|
|
|
//////////////////////////////////////////////////
|
|
// pack
|
|
//////////////////////////////////////////////////
|
|
|
|
#pragma pack(push, 1)
|
|
typedef struct PkItemStruct
|
|
{
|
|
int iSeed;
|
|
short iCreateInfo;
|
|
short idx;
|
|
char bId;
|
|
char bDur;
|
|
char bMDur;
|
|
char bCh;
|
|
char bMCh;
|
|
short wValue;
|
|
int dwBuff;
|
|
} PkItemStruct;
|
|
|
|
typedef struct PkPlayerStruct
|
|
{
|
|
FILETIME archiveTime;
|
|
char destAction;
|
|
char destParam1;
|
|
char destParam2;
|
|
char plrlevel;
|
|
char px;
|
|
char py;
|
|
char targx;
|
|
char targy;
|
|
char pName[32];
|
|
char pClass;
|
|
char pBaseStr;
|
|
char pBaseMag;
|
|
char pBaseDex;
|
|
char pBaseVit;
|
|
char pLevel;
|
|
char pStatPts;
|
|
int pExperience;
|
|
int pGold;
|
|
int pHPBase;
|
|
int pMaxHPBase;
|
|
int pManaBase;
|
|
int pMaxManaBase;
|
|
char pSplLvl[37];
|
|
int pMemSpells; /* __int64 */
|
|
int pMemSpells2;
|
|
PkItemStruct InvBody[7];
|
|
PkItemStruct InvList[40];
|
|
char InvGrid[40];
|
|
char _pNumInv;
|
|
PkItemStruct SpdList[8];
|
|
char pTownWarps;
|
|
char pDungMsgs;
|
|
char pLvlLoad;
|
|
char pBattleNet;
|
|
char pManaShield;
|
|
char bReserved[3];
|
|
short wReserved[8];
|
|
DWORD pDiabloKillLevel;
|
|
int dwReserved[7];
|
|
} PkPlayerStruct;
|
|
#pragma pack(pop)
|
|
|
|
//////////////////////////////////////////////////
|
|
// path
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct PATHNODE
|
|
{
|
|
char f;
|
|
char h;
|
|
char g;
|
|
int x;
|
|
int y;
|
|
struct PATHNODE *Parent;
|
|
struct PATHNODE *Child[8];
|
|
struct PATHNODE *NextNode;
|
|
} PATHNODE;
|
|
|
|
// TPDEF PTR FCN UCHAR CHECKFUNC1
|
|
|
|
// TPDEF PTR FCN UCHAR CHECKFUNC
|
|
|
|
//////////////////////////////////////////////////
|
|
// sha
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct SHA1Context
|
|
{
|
|
int state[5];
|
|
int count[2];
|
|
char buffer[64];
|
|
} SHA1Context;
|
|
|
|
//////////////////////////////////////////////////
|
|
// tmsg
|
|
//////////////////////////////////////////////////
|
|
|
|
#pragma pack(push, 1)
|
|
typedef struct TMsg TMsg;
|
|
|
|
typedef struct TMsgHdr
|
|
{
|
|
TMsg *pNext;
|
|
unsigned int dwTime;
|
|
unsigned char bLen;
|
|
} TMsgHdr;
|
|
|
|
typedef struct TMsg
|
|
{
|
|
TMsgHdr hdr;
|
|
unsigned char body[3];
|
|
} TMsg;
|
|
#pragma pack(pop)
|
|
|
|
//////////////////////////////////////////////////
|
|
// mpqapi
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct _FILEHEADER
|
|
{
|
|
int signature;
|
|
int headersize;
|
|
int filesize;
|
|
short version;
|
|
short sectorsizeid;
|
|
int hashoffset;
|
|
int blockoffset;
|
|
int hashcount;
|
|
int blockcount;
|
|
char pad[72];
|
|
} _FILEHEADER;
|
|
|
|
typedef struct _HASHENTRY
|
|
{
|
|
int hashcheck[2];
|
|
int lcid;
|
|
int block;
|
|
} _HASHENTRY;
|
|
|
|
typedef struct _BLOCKENTRY
|
|
{
|
|
int offset;
|
|
int sizealloc;
|
|
int sizefile;
|
|
int flags;
|
|
} _BLOCKENTRY;
|
|
|
|
// TPDEF PTR FCN UCHAR TGetNameFcn
|
|
|
|
// TPDEF PTR FCN VOID TCrypt
|
|
|
|
//////////////////////////////////////////////////
|
|
// trigs
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct TriggerStruct
|
|
{
|
|
int _tx;
|
|
int _ty;
|
|
int _tmsg;
|
|
int _tlvl;
|
|
} TriggerStruct;
|
|
|
|
//////////////////////////////////////////////////
|
|
// stores
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct STextStruct
|
|
{
|
|
int _sx;
|
|
int _syoff;
|
|
char _sstr[128];
|
|
int _sjust;
|
|
char _sclr;
|
|
int _sline;
|
|
BOOL _ssel;
|
|
int _sval;
|
|
} STextStruct;
|
|
|
|
//////////////////////////////////////////////////
|
|
// wave
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct MEMFILE
|
|
{
|
|
int end;
|
|
int offset;
|
|
int buf_len;
|
|
int dist;
|
|
int bytes_to_read;
|
|
char *buf;
|
|
int file;
|
|
} MEMFILE;
|
|
|
|
//////////////////////////////////////////////////
|
|
// plrmsg
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct _plrmsg
|
|
{
|
|
int time;
|
|
char player;
|
|
char str[144];
|
|
} _plrmsg;
|
|
|
|
//////////////////////////////////////////////////
|
|
// 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;
|
|
|
|
//////////////////////////////////////////////////
|
|
// encrypt
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct TDataInfo
|
|
{
|
|
unsigned char *pbInBuff;
|
|
unsigned char *pbInBuffEnd;
|
|
unsigned char *pbOutBuff;
|
|
unsigned char *pbOutBuffEnd;
|
|
unsigned char *pbSize;
|
|
} TDataInfo;
|
|
|
|
//////////////////////////////////////////////////
|
|
// codec
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct CODECCHUNK {
|
|
DWORD checksum;
|
|
BYTE failed;
|
|
BYTE last_chunk_size;
|
|
WORD unused;
|
|
} CODECCHUNK;
|
|
|
|
//////////////////////////////////////////////////
|
|
// dthread
|
|
//////////////////////////////////////////////////
|
|
|
|
typedef struct TDeltaInfo {
|
|
TDeltaInfo *pNext;
|
|
int pnum;
|
|
BYTE cmd;
|
|
DWORD size;
|
|
BYTE data[4];
|
|
} TDeltaInfo;
|