mirror of
https://github.com/jmarshall23/Hellfire.git
synced 2026-08-11 23:40:51 +02:00
261 lines
5.5 KiB
C++
261 lines
5.5 KiB
C++
//******************************************************************
|
|
// msg.h
|
|
//******************************************************************
|
|
|
|
enum {
|
|
CMD_STAND = 0,
|
|
CMD_WALKXY,
|
|
CMD_ACK_PLRINFO,
|
|
CMD_ADDSTR,
|
|
CMD_ADDMAG,
|
|
CMD_ADDDEX,
|
|
CMD_ADDVIT,
|
|
CMD_SBSPELL,
|
|
CMD_GETITEM,
|
|
CMD_AGETITEM,
|
|
CMD_PUTITEM,
|
|
CMD_RESPAWNITEM,
|
|
CMD_ATTACKXY,
|
|
CMD_RATTACKXY,
|
|
CMD_SPELLXY,
|
|
CMD_TSPELLXY,
|
|
CMD_OPOBJXY,
|
|
CMD_DISARMXY,
|
|
CMD_ATTACKID,
|
|
CMD_ATTACKPID,
|
|
CMD_RATTACKID,
|
|
CMD_RATTACKPID,
|
|
CMD_SPELLID,
|
|
CMD_SPELLPID,
|
|
CMD_TSPELLID,
|
|
CMD_TSPELLPID,
|
|
CMD_RESURRECT,
|
|
CMD_OPOBJT,
|
|
CMD_KNOCKBACK,
|
|
CMD_TALKXY,
|
|
CMD_NEWLVL,
|
|
CMD_WARP,
|
|
CMD_CHEAT_EXPERIENCE,
|
|
CMD_CHEAT_SPELL_LEVEL,
|
|
CMD_DEBUG,
|
|
CMD_SYNCDATA,
|
|
CMD_MONSTDEATH,
|
|
CMD_MONSTDAMAGE,
|
|
CMD_PLRDEAD,
|
|
CMD_REQUESTGITEM,
|
|
CMD_REQUESTAGITEM,
|
|
CMD_GOTOGETITEM,
|
|
CMD_GOTOAGETITEM,
|
|
CMD_OPENDOOR,
|
|
CMD_CLOSEDOOR,
|
|
CMD_OPERATEOBJ,
|
|
CMD_PLROPOBJ,
|
|
CMD_BREAKOBJ,
|
|
CMD_CHANGEPLRITEMS,
|
|
CMD_DELPLRITEMS,
|
|
CMD_PLRDAMAGE,
|
|
CMD_PLRLEVEL,
|
|
CMD_DROPITEM,
|
|
CMD_PLAYER_JOINLEVEL,
|
|
CMD_SEND_PLRINFO,
|
|
CMD_SATTACKXY,
|
|
CMD_ACTIVATEPORTAL,
|
|
CMD_DEACTIVATEPORTAL,
|
|
CMD_DLEVEL_0,
|
|
CMD_DLEVEL_1,
|
|
CMD_DLEVEL_2,
|
|
CMD_DLEVEL_3,
|
|
CMD_DLEVEL_4,
|
|
CMD_DLEVEL_5,
|
|
CMD_DLEVEL_6,
|
|
CMD_DLEVEL_7,
|
|
CMD_DLEVEL_8,
|
|
CMD_DLEVEL_9,
|
|
CMD_DLEVEL_10,
|
|
CMD_DLEVEL_11,
|
|
CMD_DLEVEL_12,
|
|
CMD_DLEVEL_13,
|
|
CMD_DLEVEL_14,
|
|
CMD_DLEVEL_15,
|
|
CMD_DLEVEL_16,
|
|
CMD_DLEVEL_17,
|
|
CMD_DLEVEL_18,
|
|
CMD_DLEVEL_19,
|
|
CMD_DLEVEL_20,
|
|
CMD_DLEVEL_21,
|
|
CMD_DLEVEL_22,
|
|
CMD_DLEVEL_23,
|
|
CMD_DLEVEL_24,
|
|
CMD_DLEVEL_JUNK,
|
|
CMD_DLEVEL_END,
|
|
CMD_HEALOTHER,
|
|
CMD_STRING,
|
|
CMD_SETSTR,
|
|
CMD_SETMAG,
|
|
CMD_SETDEX,
|
|
CMD_SETVIT,
|
|
CMD_RETOWN,
|
|
CMD_SPELLXYD,
|
|
CMD_ITEMEXTRA,
|
|
CMD_SYNCPUTITEM,
|
|
CMD_KILLGOLEM,
|
|
CMD_SYNCQUEST,
|
|
CMD_ENDSHIELD,
|
|
CMD_AWAKEGOLEM,
|
|
CMD_ENDREFLECT,
|
|
CMD_OPEN_NAKRUL,
|
|
CMD_OPEN_NEST,
|
|
CMD_OPEN_CRYPT,
|
|
|
|
// thse are commands which are never sent
|
|
FAKE_CMD_SETID,
|
|
FAKE_CMD_DROPID,
|
|
NUM_CMDS
|
|
};
|
|
|
|
|
|
//******************************************************************
|
|
// net commands
|
|
//******************************************************************
|
|
#pragma pack(push,1)
|
|
typedef struct TCmd {
|
|
BYTE bCmd;
|
|
} TCmd;
|
|
void NetSendCmd(BOOL bHiPri,BYTE bCmd);
|
|
|
|
void NetSendCmdLoc(BOOL bHiPri,BYTE bCmd,BYTE x,BYTE y);
|
|
void NetSendCmdLocParam1(BOOL bHiPri,BYTE bCmd,BYTE x,BYTE y,WORD wParam1);
|
|
void NetSendCmdLocParam2(BOOL bHiPri,BYTE bCmd,BYTE x,BYTE y,WORD wParam1,WORD wParam2);
|
|
void NetSendCmdLocParam3(BOOL bHiPri,BYTE bCmd,BYTE x,BYTE y,WORD wParam1,WORD wParam2,WORD wParam3);
|
|
|
|
void NetSendCmdParam1(BOOL bHiPri,BYTE bCmd,WORD wParam1);
|
|
void NetSendCmdParam2(BOOL bHiPri,BYTE bCmd,WORD wParam1,WORD wParam2);
|
|
void NetSendCmdParam3(BOOL bHiPri,BYTE bCmd,WORD wParam1,WORD wParam2, WORD wParam3 );
|
|
|
|
void NetSendCmdQuest(BOOL bHiPri,BYTE q);
|
|
|
|
void NetSendCmdGItem(BOOL bHiPri,BYTE bCmd,BYTE mast,BYTE pnum,BYTE bCursitem);
|
|
void NetSendCmdPItem(BOOL bHiPri,BYTE bCmd,BYTE x,BYTE y);
|
|
void NetSendCmdDItem(BOOL bHiPri,int ii);
|
|
void NetSendCmdChItem(BOOL bHiPri,BYTE bLoc);
|
|
void NetSendCmdDelItem(BOOL bHiPri,BYTE bLoc);
|
|
|
|
void NetSendCmdDamage(BOOL bHiPri,BYTE bPlr,DWORD dwDam);
|
|
void NetSendCmdMonstDamage(BOOL bHiPri,WORD bMonst,DWORD dwDam);
|
|
|
|
typedef struct TCmdPlrInfoHdr {
|
|
BYTE bCmd;
|
|
WORD wOffset;
|
|
WORD wBytes;
|
|
} TCmdPlrInfoHdr;
|
|
|
|
// better not be bigger than this, the net will choke
|
|
#define MAX_SEND_STR_LEN 80
|
|
#define SEND_ALL_MASK 0xffffffff
|
|
void NetSendString(DWORD dwSendMask,const char * pszStr);
|
|
|
|
|
|
#pragma pack(pop)
|
|
|
|
|
|
//******************************************************************
|
|
// net syncing
|
|
//******************************************************************
|
|
#pragma pack(push,1)
|
|
typedef struct TSyncHeader {
|
|
BYTE bCmd;
|
|
BYTE bLevel;
|
|
WORD wLen;
|
|
BYTE bObjId;
|
|
BYTE bObjCmd;
|
|
BYTE bItemI;
|
|
BYTE bItemX;
|
|
BYTE bItemY;
|
|
WORD wItemIndx;
|
|
WORD wItemCI;
|
|
int dwItemSeed;
|
|
BYTE bItemId;
|
|
BYTE bItemDur;
|
|
BYTE bItemMDur;
|
|
BYTE bItemCh;
|
|
BYTE bItemMCh;
|
|
WORD wItemVal;
|
|
DWORD dwItemBuff;
|
|
BYTE bPInvLoc;
|
|
WORD wPInvIndx;
|
|
WORD wPInvCI;
|
|
int dwPInvSeed;
|
|
// drb.patch1.start.02/10/97
|
|
BYTE bPInvId;
|
|
// drb.patch1.end.02/10/97
|
|
WORD wPLToHit;
|
|
WORD wMaxDam;
|
|
BYTE bMinStr;
|
|
BYTE bMinMag;
|
|
BYTE bMinDex;
|
|
BYTE bAC;
|
|
} TSyncHeader;
|
|
|
|
typedef struct TSyncMonster {
|
|
BYTE _mndx;
|
|
BYTE _mx;
|
|
BYTE _my;
|
|
BYTE _menemy;
|
|
BYTE _mdelta;
|
|
} TSyncMonster;
|
|
#pragma pack(pop)
|
|
|
|
|
|
//******************************************************************
|
|
// msg sizes
|
|
//******************************************************************
|
|
#define MIN_MSG_SIZE 128
|
|
#define MAX_MSG_SIZE 512
|
|
extern DWORD gdwNormalMsgSize; // MIN_MSG_SIZE..MAX_MSG_SIZE
|
|
extern DWORD gdwLargestMsgSize; // MIN_MSG_SIZE..MAX_MSG_SIZE
|
|
|
|
|
|
//******************************************************************
|
|
// net packets (which hold net commands inside them)
|
|
//******************************************************************
|
|
#pragma pack(push,1)
|
|
typedef struct TPktHdr {
|
|
BYTE px;
|
|
BYTE py;
|
|
BYTE targx;
|
|
BYTE targy;
|
|
DWORD php;
|
|
DWORD pmhp;
|
|
BYTE bstr;
|
|
BYTE bmag;
|
|
BYTE bdex;
|
|
WORD wCheck; // @@ debug -- delete this
|
|
WORD wLen; // @@ debug -- delete this
|
|
} TPktHdr;
|
|
typedef struct TPkt {
|
|
TPktHdr hdr;
|
|
BYTE body[MAX_MSG_SIZE - sizeof TPktHdr];
|
|
} TPkt;
|
|
#pragma pack(pop)
|
|
|
|
|
|
//******************************************************************
|
|
//******************************************************************
|
|
extern BOOL deltaload;
|
|
void DeltaSaveLevel();
|
|
void DeltaLoadLevel();
|
|
void DeltaSendAllLevels(int pnum);
|
|
DWORD ParseCmd(int pnum, const TCmd * pCmd);
|
|
void DeltaAddItem(int ii);
|
|
|
|
// PATCH1.JMM
|
|
#if _DEBUG
|
|
void __cdecl DROPLOG(const char * pszFmt,...);
|
|
void VerifyItemActiveList( void );
|
|
#else
|
|
#define VerifyItemActiveList( )
|
|
#define DROPLOG //
|
|
#endif
|
|
// ENDPATCH1
|
|
|