Mark network pointers as const
This commit is contained in:
parent
9f7c69f4f5
commit
7001ead263
6 changed files with 159 additions and 157 deletions
206
Source/msg.cpp
206
Source/msg.cpp
|
|
@ -168,7 +168,7 @@ int WaitForTurns()
|
|||
return 100 * sgbDeltaChunks / MAX_CHUNKS;
|
||||
}
|
||||
|
||||
byte *DeltaExportItem(byte *dst, TCmdPItem *src)
|
||||
byte *DeltaExportItem(byte *dst, const TCmdPItem *src)
|
||||
{
|
||||
for (int i = 0; i < MAXITEMS; i++, src++) {
|
||||
if (src->bCmd == CMD_INVALID) {
|
||||
|
|
@ -182,34 +182,35 @@ byte *DeltaExportItem(byte *dst, TCmdPItem *src)
|
|||
return dst;
|
||||
}
|
||||
|
||||
byte *DeltaImportItem(byte *src, TCmdPItem *dst)
|
||||
size_t DeltaImportItem(const byte *src, TCmdPItem *dst)
|
||||
{
|
||||
size_t size = 0;
|
||||
for (int i = 0; i < MAXITEMS; i++, dst++) {
|
||||
if (*src == byte { 0xFF }) {
|
||||
if (src[size] == byte { 0xFF }) {
|
||||
memset(dst, 0xFF, sizeof(TCmdPItem));
|
||||
src++;
|
||||
size++;
|
||||
} else {
|
||||
memcpy(dst, src, sizeof(TCmdPItem));
|
||||
src += sizeof(TCmdPItem);
|
||||
memcpy(dst, &src[size], sizeof(TCmdPItem));
|
||||
size += sizeof(TCmdPItem);
|
||||
}
|
||||
}
|
||||
|
||||
return src;
|
||||
return size;
|
||||
}
|
||||
|
||||
byte *DeltaExportObject(byte *dst, DObjectStr *src)
|
||||
byte *DeltaExportObject(byte *dst, const DObjectStr *src)
|
||||
{
|
||||
memcpy(dst, src, sizeof(DObjectStr) * MAXOBJECTS);
|
||||
return dst + sizeof(DObjectStr) * MAXOBJECTS;
|
||||
}
|
||||
|
||||
byte *DeltaImportObject(byte *src, DObjectStr *dst)
|
||||
size_t DeltaImportObject(const byte *src, DObjectStr *dst)
|
||||
{
|
||||
memcpy(dst, src, sizeof(DObjectStr) * MAXOBJECTS);
|
||||
return src + sizeof(DObjectStr) * MAXOBJECTS;
|
||||
return sizeof(DObjectStr) * MAXOBJECTS;
|
||||
}
|
||||
|
||||
byte *DeltaExportMonster(byte *dst, DMonsterStr *src)
|
||||
byte *DeltaExportMonster(byte *dst, const DMonsterStr *src)
|
||||
{
|
||||
for (int i = 0; i < MAXMONSTERS; i++, src++) {
|
||||
if (src->_mx == 0xFF) {
|
||||
|
|
@ -223,19 +224,18 @@ byte *DeltaExportMonster(byte *dst, DMonsterStr *src)
|
|||
return dst;
|
||||
}
|
||||
|
||||
byte *DeltaImportMonster(byte *src, DMonsterStr *dst)
|
||||
void DeltaImportMonster(const byte *src, DMonsterStr *dst)
|
||||
{
|
||||
size_t size = 0;
|
||||
for (int i = 0; i < MAXMONSTERS; i++, dst++) {
|
||||
if (*src == byte { 0xFF }) {
|
||||
if (src[size] == byte { 0xFF }) {
|
||||
memset(dst, 0xFF, sizeof(DMonsterStr));
|
||||
src++;
|
||||
size++;
|
||||
} else {
|
||||
memcpy(dst, src, sizeof(DMonsterStr));
|
||||
src += sizeof(DMonsterStr);
|
||||
memcpy(dst, &src[size], sizeof(DMonsterStr));
|
||||
size += sizeof(DMonsterStr);
|
||||
}
|
||||
}
|
||||
|
||||
return src;
|
||||
}
|
||||
|
||||
byte *DeltaExportJunk(byte *dst)
|
||||
|
|
@ -264,7 +264,7 @@ byte *DeltaExportJunk(byte *dst)
|
|||
return dst;
|
||||
}
|
||||
|
||||
void DeltaImportJunk(byte *src)
|
||||
void DeltaImportJunk(const byte *src)
|
||||
{
|
||||
for (int i = 0; i < MAXPORTAL; i++) {
|
||||
if (*src == byte { 0xFF }) {
|
||||
|
|
@ -317,8 +317,8 @@ void DeltaImportData(BYTE cmd, DWORD recvOffset)
|
|||
DeltaImportJunk(src);
|
||||
} else if (cmd >= CMD_DLEVEL_0 && cmd <= CMD_DLEVEL_24) {
|
||||
BYTE i = cmd - CMD_DLEVEL_0;
|
||||
src = DeltaImportItem(src, sgLevels[i].item);
|
||||
src = DeltaImportObject(src, sgLevels[i].object);
|
||||
src += DeltaImportItem(src, sgLevels[i].item);
|
||||
src += DeltaImportObject(src, sgLevels[i].object);
|
||||
DeltaImportMonster(src, sgLevels[i].monster);
|
||||
} else {
|
||||
app_fatal("Unkown network message type: %i", cmd);
|
||||
|
|
@ -328,7 +328,7 @@ void DeltaImportData(BYTE cmd, DWORD recvOffset)
|
|||
sgbDeltaChanged = true;
|
||||
}
|
||||
|
||||
DWORD OnLevelData(int pnum, TCmd *pCmd)
|
||||
DWORD OnLevelData(int pnum, const TCmd *pCmd)
|
||||
{
|
||||
auto *p = (TCmdPlrInfoHdr *)pCmd;
|
||||
|
||||
|
|
@ -368,7 +368,7 @@ DWORD OnLevelData(int pnum, TCmd *pCmd)
|
|||
return p->wBytes + sizeof(*p);
|
||||
}
|
||||
|
||||
void DeltaSyncGolem(TCmdGolem *pG, int pnum, BYTE bLevel)
|
||||
void DeltaSyncGolem(const TCmdGolem *pG, int pnum, BYTE bLevel)
|
||||
{
|
||||
if (!gbIsMultiplayer)
|
||||
return;
|
||||
|
|
@ -418,7 +418,7 @@ void DeltaSyncObject(int oi, _cmd_id bCmd, BYTE bLevel)
|
|||
sgLevels[bLevel].object[oi].bCmd = bCmd;
|
||||
}
|
||||
|
||||
bool DeltaGetItem(TCmdGItem *pI, BYTE bLevel)
|
||||
bool DeltaGetItem(const TCmdGItem *pI, BYTE bLevel)
|
||||
{
|
||||
if (!gbIsMultiplayer)
|
||||
return true;
|
||||
|
|
@ -477,7 +477,7 @@ bool DeltaGetItem(TCmdGItem *pI, BYTE bLevel)
|
|||
return true;
|
||||
}
|
||||
|
||||
void DeltaPutItem(TCmdPItem *pI, int x, int y, BYTE bLevel)
|
||||
void DeltaPutItem(const TCmdPItem *pI, int x, int y, BYTE bLevel)
|
||||
{
|
||||
if (!gbIsMultiplayer)
|
||||
return;
|
||||
|
|
@ -559,7 +559,7 @@ void PlayerMessageFormat(const char *pszFmt, ...)
|
|||
va_end(va);
|
||||
}
|
||||
|
||||
void NetSendCmdGItem2(bool usonly, _cmd_id bCmd, BYTE mast, BYTE pnum, TCmdGItem *p)
|
||||
void NetSendCmdGItem2(bool usonly, _cmd_id bCmd, BYTE mast, BYTE pnum, const TCmdGItem *p)
|
||||
{
|
||||
TCmdGItem cmd;
|
||||
|
||||
|
|
@ -584,7 +584,7 @@ void NetSendCmdGItem2(bool usonly, _cmd_id bCmd, BYTE mast, BYTE pnum, TCmdGItem
|
|||
multi_msg_add((byte *)&cmd.bCmd, sizeof(cmd));
|
||||
}
|
||||
|
||||
bool NetSendCmdReq2(_cmd_id bCmd, BYTE mast, BYTE pnum, TCmdGItem *p)
|
||||
bool NetSendCmdReq2(_cmd_id bCmd, BYTE mast, BYTE pnum, const TCmdGItem *p)
|
||||
{
|
||||
TCmdGItem cmd;
|
||||
|
||||
|
|
@ -604,7 +604,7 @@ bool NetSendCmdReq2(_cmd_id bCmd, BYTE mast, BYTE pnum, TCmdGItem *p)
|
|||
return true;
|
||||
}
|
||||
|
||||
void NetSendCmdExtra(TCmdGItem *p)
|
||||
void NetSendCmdExtra(const TCmdGItem *p)
|
||||
{
|
||||
TCmdGItem cmd;
|
||||
|
||||
|
|
@ -614,7 +614,7 @@ void NetSendCmdExtra(TCmdGItem *p)
|
|||
NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd));
|
||||
}
|
||||
|
||||
DWORD OnWalk(TCmd *pCmd, Player &player)
|
||||
DWORD OnWalk(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdLoc *)pCmd;
|
||||
|
||||
|
|
@ -627,7 +627,7 @@ DWORD OnWalk(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnAddStrength(TCmd *pCmd, int pnum)
|
||||
DWORD OnAddStrength(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -639,7 +639,7 @@ DWORD OnAddStrength(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnAddMagic(TCmd *pCmd, int pnum)
|
||||
DWORD OnAddMagic(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -651,7 +651,7 @@ DWORD OnAddMagic(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnAddDexterity(TCmd *pCmd, int pnum)
|
||||
DWORD OnAddDexterity(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -663,7 +663,7 @@ DWORD OnAddDexterity(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnAddVitality(TCmd *pCmd, int pnum)
|
||||
DWORD OnAddVitality(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -675,7 +675,7 @@ DWORD OnAddVitality(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnGotoGetItem(TCmd *pCmd, Player &player)
|
||||
DWORD OnGotoGetItem(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdLocParam1 *)pCmd;
|
||||
|
||||
|
|
@ -688,7 +688,7 @@ DWORD OnGotoGetItem(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnRequestGetItem(TCmd *pCmd, Player &player)
|
||||
DWORD OnRequestGetItem(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdGItem *)pCmd;
|
||||
|
||||
|
|
@ -711,7 +711,7 @@ DWORD OnRequestGetItem(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnGetItem(TCmd *pCmd, int pnum)
|
||||
DWORD OnGetItem(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdGItem *)pCmd;
|
||||
|
||||
|
|
@ -742,7 +742,7 @@ DWORD OnGetItem(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnGotoAutoGetItem(TCmd *pCmd, Player &player)
|
||||
DWORD OnGotoAutoGetItem(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdLocParam1 *)pCmd;
|
||||
|
||||
|
|
@ -755,7 +755,7 @@ DWORD OnGotoAutoGetItem(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnRequestAutoGetItem(TCmd *pCmd, Player &player)
|
||||
DWORD OnRequestAutoGetItem(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdGItem *)pCmd;
|
||||
|
||||
|
|
@ -778,7 +778,7 @@ DWORD OnRequestAutoGetItem(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnAutoGetItem(TCmd *pCmd, int pnum)
|
||||
DWORD OnAutoGetItem(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdGItem *)pCmd;
|
||||
|
||||
|
|
@ -809,7 +809,7 @@ DWORD OnAutoGetItem(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnItemExtra(TCmd *pCmd, int pnum)
|
||||
DWORD OnItemExtra(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdGItem *)pCmd;
|
||||
|
||||
|
|
@ -824,7 +824,7 @@ DWORD OnItemExtra(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnPutItem(TCmd *pCmd, int pnum)
|
||||
DWORD OnPutItem(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdPItem *)pCmd;
|
||||
|
||||
|
|
@ -851,7 +851,7 @@ DWORD OnPutItem(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnSyncPutItem(TCmd *pCmd, int pnum)
|
||||
DWORD OnSyncPutItem(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdPItem *)pCmd;
|
||||
|
||||
|
|
@ -874,7 +874,7 @@ DWORD OnSyncPutItem(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnRespawnItem(TCmd *pCmd, int pnum)
|
||||
DWORD OnRespawnItem(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdPItem *)pCmd;
|
||||
|
||||
|
|
@ -893,7 +893,7 @@ DWORD OnRespawnItem(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnAttackTile(TCmd *pCmd, Player &player)
|
||||
DWORD OnAttackTile(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdLoc *)pCmd;
|
||||
|
||||
|
|
@ -907,7 +907,7 @@ DWORD OnAttackTile(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnStandingAttackTile(TCmd *pCmd, Player &player)
|
||||
DWORD OnStandingAttackTile(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdLoc *)pCmd;
|
||||
|
||||
|
|
@ -921,7 +921,7 @@ DWORD OnStandingAttackTile(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnRangedAttackTile(TCmd *pCmd, Player &player)
|
||||
DWORD OnRangedAttackTile(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdLoc *)pCmd;
|
||||
|
||||
|
|
@ -935,7 +935,7 @@ DWORD OnRangedAttackTile(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnSpellWall(TCmd *pCmd, Player &player)
|
||||
DWORD OnSpellWall(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdLocParam4 *)pCmd;
|
||||
|
||||
|
|
@ -960,7 +960,7 @@ DWORD OnSpellWall(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnSpellTile(TCmd *pCmd, Player &player)
|
||||
DWORD OnSpellTile(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdLocParam3 *)pCmd;
|
||||
|
||||
|
|
@ -984,7 +984,7 @@ DWORD OnSpellTile(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnTargetSpellTile(TCmd *pCmd, Player &player)
|
||||
DWORD OnTargetSpellTile(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdLocParam2 *)pCmd;
|
||||
|
||||
|
|
@ -1007,7 +1007,7 @@ DWORD OnTargetSpellTile(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnOperateObjectTile(TCmd *pCmd, Player &player)
|
||||
DWORD OnOperateObjectTile(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdLocParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1020,7 +1020,7 @@ DWORD OnOperateObjectTile(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnDisarm(TCmd *pCmd, Player &player)
|
||||
DWORD OnDisarm(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdLocParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1033,7 +1033,7 @@ DWORD OnDisarm(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnOperateObjectTelekinesis(TCmd *pCmd, Player &player)
|
||||
DWORD OnOperateObjectTelekinesis(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1045,7 +1045,7 @@ DWORD OnOperateObjectTelekinesis(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnAttackMonster(TCmd *pCmd, Player &player)
|
||||
DWORD OnAttackMonster(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1060,7 +1060,7 @@ DWORD OnAttackMonster(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnAttackPlayer(TCmd *pCmd, Player &player)
|
||||
DWORD OnAttackPlayer(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1073,7 +1073,7 @@ DWORD OnAttackPlayer(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnRangedAttackMonster(TCmd *pCmd, Player &player)
|
||||
DWORD OnRangedAttackMonster(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1086,7 +1086,7 @@ DWORD OnRangedAttackMonster(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnRangedAttackPlayer(TCmd *pCmd, Player &player)
|
||||
DWORD OnRangedAttackPlayer(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1099,7 +1099,7 @@ DWORD OnRangedAttackPlayer(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnSpellMonster(TCmd *pCmd, Player &player)
|
||||
DWORD OnSpellMonster(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdParam4 *)pCmd;
|
||||
|
||||
|
|
@ -1122,7 +1122,7 @@ DWORD OnSpellMonster(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnSpellPlayer(TCmd *pCmd, Player &player)
|
||||
DWORD OnSpellPlayer(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdParam4 *)pCmd;
|
||||
|
||||
|
|
@ -1145,7 +1145,7 @@ DWORD OnSpellPlayer(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnTargetSpellMonster(TCmd *pCmd, Player &player)
|
||||
DWORD OnTargetSpellMonster(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdParam3 *)pCmd;
|
||||
|
||||
|
|
@ -1167,7 +1167,7 @@ DWORD OnTargetSpellMonster(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnTargetSpellPlayer(TCmd *pCmd, Player &player)
|
||||
DWORD OnTargetSpellPlayer(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdParam3 *)pCmd;
|
||||
|
||||
|
|
@ -1189,7 +1189,7 @@ DWORD OnTargetSpellPlayer(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnKnockback(TCmd *pCmd, int pnum)
|
||||
DWORD OnKnockback(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1201,7 +1201,7 @@ DWORD OnKnockback(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnResurrect(TCmd *pCmd, int pnum)
|
||||
DWORD OnResurrect(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1215,7 +1215,7 @@ DWORD OnResurrect(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnHealOther(TCmd *pCmd, int pnum)
|
||||
DWORD OnHealOther(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1225,7 +1225,7 @@ DWORD OnHealOther(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnTalkXY(TCmd *pCmd, Player &player)
|
||||
DWORD OnTalkXY(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdLocParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1238,7 +1238,7 @@ DWORD OnTalkXY(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnNewLevel(TCmd *pCmd, int pnum)
|
||||
DWORD OnNewLevel(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam2 *)pCmd;
|
||||
|
||||
|
|
@ -1250,7 +1250,7 @@ DWORD OnNewLevel(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnWarp(TCmd *pCmd, int pnum)
|
||||
DWORD OnWarp(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1263,7 +1263,7 @@ DWORD OnWarp(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnMonstDeath(TCmd *pCmd, int pnum)
|
||||
DWORD OnMonstDeath(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdLocParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1279,7 +1279,7 @@ DWORD OnMonstDeath(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnKillGolem(TCmd *pCmd, int pnum)
|
||||
DWORD OnKillGolem(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdLocParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1294,7 +1294,7 @@ DWORD OnKillGolem(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnAwakeGolem(TCmd *pCmd, int pnum)
|
||||
DWORD OnAwakeGolem(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdGolem *)pCmd;
|
||||
|
||||
|
|
@ -1320,7 +1320,7 @@ DWORD OnAwakeGolem(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnMonstDamage(TCmd *pCmd, int pnum)
|
||||
DWORD OnMonstDamage(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdMonDamage *)pCmd;
|
||||
|
||||
|
|
@ -1343,7 +1343,7 @@ DWORD OnMonstDamage(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnPlayerDeath(TCmd *pCmd, int pnum)
|
||||
DWORD OnPlayerDeath(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1357,7 +1357,7 @@ DWORD OnPlayerDeath(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnPlayerDamage(TCmd *pCmd, Player &player)
|
||||
DWORD OnPlayerDamage(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdDamage *)pCmd;
|
||||
|
||||
|
|
@ -1370,7 +1370,7 @@ DWORD OnPlayerDamage(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnOpenDoor(TCmd *pCmd, int pnum)
|
||||
DWORD OnOpenDoor(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1386,7 +1386,7 @@ DWORD OnOpenDoor(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnCloseDoor(TCmd *pCmd, int pnum)
|
||||
DWORD OnCloseDoor(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1402,7 +1402,7 @@ DWORD OnCloseDoor(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnOperateObject(TCmd *pCmd, int pnum)
|
||||
DWORD OnOperateObject(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1418,7 +1418,7 @@ DWORD OnOperateObject(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnPlayerOperateObject(TCmd *pCmd, int pnum)
|
||||
DWORD OnPlayerOperateObject(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam2 *)pCmd;
|
||||
|
||||
|
|
@ -1434,7 +1434,7 @@ DWORD OnPlayerOperateObject(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnBreakObject(TCmd *pCmd, int pnum)
|
||||
DWORD OnBreakObject(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam2 *)pCmd;
|
||||
|
||||
|
|
@ -1450,7 +1450,7 @@ DWORD OnBreakObject(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnChangePlayerItems(TCmd *pCmd, int pnum)
|
||||
DWORD OnChangePlayerItems(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdChItem *)pCmd;
|
||||
auto bodyLocation = static_cast<inv_body_loc>(p->bLoc);
|
||||
|
|
@ -1467,7 +1467,7 @@ DWORD OnChangePlayerItems(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnDeletePlayerItems(TCmd *pCmd, int pnum)
|
||||
DWORD OnDeletePlayerItems(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdDelItem *)pCmd;
|
||||
|
||||
|
|
@ -1479,7 +1479,7 @@ DWORD OnDeletePlayerItems(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnPlayerLevel(TCmd *pCmd, int pnum)
|
||||
DWORD OnPlayerLevel(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1491,7 +1491,7 @@ DWORD OnPlayerLevel(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnDropItem(TCmd *pCmd, int pnum)
|
||||
DWORD OnDropItem(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdPItem *)pCmd;
|
||||
|
||||
|
|
@ -1503,7 +1503,7 @@ DWORD OnDropItem(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnSendPlayerInfo(TCmd *pCmd, int pnum)
|
||||
DWORD OnSendPlayerInfo(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdPlrInfoHdr *)pCmd;
|
||||
|
||||
|
|
@ -1515,7 +1515,7 @@ DWORD OnSendPlayerInfo(TCmd *pCmd, int pnum)
|
|||
return p->wBytes + sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnPlayerJoinLevel(TCmd *pCmd, int pnum)
|
||||
DWORD OnPlayerJoinLevel(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdLocParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1557,7 +1557,7 @@ DWORD OnPlayerJoinLevel(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnActivatePortal(TCmd *pCmd, int pnum)
|
||||
DWORD OnActivatePortal(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdLocParam3 *)pCmd;
|
||||
|
||||
|
|
@ -1590,7 +1590,7 @@ DWORD OnActivatePortal(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnDeactivatePortal(TCmd *pCmd, int pnum)
|
||||
DWORD OnDeactivatePortal(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
if (gbBufferMsgs == 1) {
|
||||
SendPacket(pnum, pCmd, sizeof(*pCmd));
|
||||
|
|
@ -1604,7 +1604,7 @@ DWORD OnDeactivatePortal(TCmd *pCmd, int pnum)
|
|||
return sizeof(*pCmd);
|
||||
}
|
||||
|
||||
DWORD OnRestartTown(TCmd *pCmd, int pnum)
|
||||
DWORD OnRestartTown(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
if (gbBufferMsgs == 1) {
|
||||
SendPacket(pnum, pCmd, sizeof(*pCmd));
|
||||
|
|
@ -1619,7 +1619,7 @@ DWORD OnRestartTown(TCmd *pCmd, int pnum)
|
|||
return sizeof(*pCmd);
|
||||
}
|
||||
|
||||
DWORD OnSetStrength(TCmd *pCmd, int pnum)
|
||||
DWORD OnSetStrength(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1631,7 +1631,7 @@ DWORD OnSetStrength(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnSetDexterity(TCmd *pCmd, int pnum)
|
||||
DWORD OnSetDexterity(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1643,7 +1643,7 @@ DWORD OnSetDexterity(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnSetMagic(TCmd *pCmd, int pnum)
|
||||
DWORD OnSetMagic(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1655,7 +1655,7 @@ DWORD OnSetMagic(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnSetVitality(TCmd *pCmd, int pnum)
|
||||
DWORD OnSetVitality(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
|
||||
|
|
@ -1667,7 +1667,7 @@ DWORD OnSetVitality(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnString(TCmd *pCmd, int pnum)
|
||||
DWORD OnString(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdString *)pCmd;
|
||||
|
||||
|
|
@ -1678,7 +1678,7 @@ DWORD OnString(TCmd *pCmd, int pnum)
|
|||
return len + 2; // length of string + nul terminator + sizeof(p->bCmd)
|
||||
}
|
||||
|
||||
DWORD OnSyncQuest(TCmd *pCmd, int pnum)
|
||||
DWORD OnSyncQuest(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdQuest *)pCmd;
|
||||
|
||||
|
|
@ -1693,7 +1693,7 @@ DWORD OnSyncQuest(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnCheatExperience(TCmd *pCmd, int pnum) // NOLINT(misc-unused-parameters)
|
||||
DWORD OnCheatExperience(const TCmd *pCmd, int pnum) // NOLINT(misc-unused-parameters)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
if (gbBufferMsgs == 1)
|
||||
|
|
@ -1709,7 +1709,7 @@ DWORD OnCheatExperience(TCmd *pCmd, int pnum) // NOLINT(misc-unused-parameters)
|
|||
return sizeof(*pCmd);
|
||||
}
|
||||
|
||||
DWORD OnCheatSpellLevel(TCmd *pCmd, int pnum) // NOLINT(misc-unused-parameters)
|
||||
DWORD OnCheatSpellLevel(const TCmd *pCmd, int pnum) // NOLINT(misc-unused-parameters)
|
||||
{
|
||||
#ifdef _DEBUG
|
||||
if (gbBufferMsgs == 1) {
|
||||
|
|
@ -1722,12 +1722,12 @@ DWORD OnCheatSpellLevel(TCmd *pCmd, int pnum) // NOLINT(misc-unused-parameters)
|
|||
return sizeof(*pCmd);
|
||||
}
|
||||
|
||||
DWORD OnDebug(TCmd *pCmd)
|
||||
DWORD OnDebug(const TCmd *pCmd)
|
||||
{
|
||||
return sizeof(*pCmd);
|
||||
}
|
||||
|
||||
DWORD OnNova(TCmd *pCmd, int pnum)
|
||||
DWORD OnNova(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdLoc *)pCmd;
|
||||
|
||||
|
|
@ -1747,7 +1747,7 @@ DWORD OnNova(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnSetShield(TCmd *pCmd, Player &player)
|
||||
DWORD OnSetShield(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
if (gbBufferMsgs != 1)
|
||||
player.pManaShield = true;
|
||||
|
|
@ -1755,7 +1755,7 @@ DWORD OnSetShield(TCmd *pCmd, Player &player)
|
|||
return sizeof(*pCmd);
|
||||
}
|
||||
|
||||
DWORD OnRemoveShield(TCmd *pCmd, Player &player)
|
||||
DWORD OnRemoveShield(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
if (gbBufferMsgs != 1)
|
||||
player.pManaShield = false;
|
||||
|
|
@ -1763,7 +1763,7 @@ DWORD OnRemoveShield(TCmd *pCmd, Player &player)
|
|||
return sizeof(*pCmd);
|
||||
}
|
||||
|
||||
DWORD OnSetReflect(TCmd *pCmd, Player &player)
|
||||
DWORD OnSetReflect(const TCmd *pCmd, Player &player)
|
||||
{
|
||||
auto *p = (TCmdParam1 *)pCmd;
|
||||
if (gbBufferMsgs != 1)
|
||||
|
|
@ -1772,7 +1772,7 @@ DWORD OnSetReflect(TCmd *pCmd, Player &player)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnNakrul(TCmd *pCmd)
|
||||
DWORD OnNakrul(const TCmd *pCmd)
|
||||
{
|
||||
if (gbBufferMsgs != 1) {
|
||||
OperateNakrulLever();
|
||||
|
|
@ -1783,7 +1783,7 @@ DWORD OnNakrul(TCmd *pCmd)
|
|||
return sizeof(*pCmd);
|
||||
}
|
||||
|
||||
DWORD OnOpenHive(TCmd *pCmd, int pnum)
|
||||
DWORD OnOpenHive(const TCmd *pCmd, int pnum)
|
||||
{
|
||||
auto *p = (TCmdLocParam2 *)pCmd;
|
||||
if (gbBufferMsgs != 1) {
|
||||
|
|
@ -1794,7 +1794,7 @@ DWORD OnOpenHive(TCmd *pCmd, int pnum)
|
|||
return sizeof(*p);
|
||||
}
|
||||
|
||||
DWORD OnOpenCrypt(TCmd *pCmd)
|
||||
DWORD OnOpenCrypt(const TCmd *pCmd)
|
||||
{
|
||||
if (gbBufferMsgs != 1) {
|
||||
TownOpenGrave();
|
||||
|
|
@ -2540,7 +2540,7 @@ void delta_close_portal(int pnum)
|
|||
sgbDeltaChanged = true;
|
||||
}
|
||||
|
||||
uint32_t ParseCmd(int pnum, TCmd *pCmd)
|
||||
uint32_t ParseCmd(int pnum, const TCmd *pCmd)
|
||||
{
|
||||
sbLastCmd = pCmd->bCmd;
|
||||
if (sgwPackPlrOffsetTbl[pnum] != 0 && sbLastCmd != CMD_ACK_PLRINFO && sbLastCmd != CMD_SEND_PLRINFO)
|
||||
|
|
|
|||
|
|
@ -458,6 +458,6 @@ void NetSendCmdDamage(bool bHiPri, uint8_t bPlr, uint32_t dwDam);
|
|||
void NetSendCmdMonDmg(bool bHiPri, uint16_t wMon, uint32_t dwDam);
|
||||
void NetSendCmdString(uint32_t pmask, const char *pszStr);
|
||||
void delta_close_portal(int pnum);
|
||||
uint32_t ParseCmd(int pnum, TCmd *pCmd);
|
||||
uint32_t ParseCmd(int pnum, const TCmd *pCmd);
|
||||
|
||||
} // namespace devilution
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ void BufferInit(TBuffer *pBuf)
|
|||
pBuf->bData[0] = byte { 0 };
|
||||
}
|
||||
|
||||
void CopyPacket(TBuffer *buf, byte *packet, uint8_t size)
|
||||
void CopyPacket(TBuffer *buf, const byte *packet, uint8_t size)
|
||||
{
|
||||
if (buf->dwNextWriteOffset + size + 2 > 0x1000) {
|
||||
return;
|
||||
|
|
@ -130,13 +130,13 @@ void NetReceivePlayerData(TPkt *pkt)
|
|||
pkt->hdr.bdex = myPlayer._pBaseDex;
|
||||
}
|
||||
|
||||
void SendPacket(int playerId, void *packet, BYTE dwSize)
|
||||
void SendPacket(int playerId, const byte *packet, size_t size)
|
||||
{
|
||||
TPkt pkt;
|
||||
|
||||
NetReceivePlayerData(&pkt);
|
||||
pkt.hdr.wLen = dwSize + sizeof(pkt.hdr);
|
||||
memcpy(pkt.body, packet, dwSize);
|
||||
pkt.hdr.wLen = size + sizeof(pkt.hdr);
|
||||
memcpy(pkt.body, packet, size);
|
||||
if (!SNetSendMessage(playerId, &pkt.hdr, pkt.hdr.wLen))
|
||||
nthread_terminate_game("SNetSendMessage0");
|
||||
}
|
||||
|
|
@ -292,25 +292,27 @@ void BeginTimeout()
|
|||
}
|
||||
}
|
||||
|
||||
void HandleAllPackets(int pnum, byte *pData, size_t nSize)
|
||||
void HandleAllPackets(int pnum, const byte *data, size_t size)
|
||||
{
|
||||
while (nSize != 0) {
|
||||
int nLen = ParseCmd(pnum, (TCmd *)pData);
|
||||
if (nLen == 0) {
|
||||
for (unsigned offset = 0; offset < size;) {
|
||||
int messageSize = ParseCmd(pnum, reinterpret_cast<const TCmd *>(&data[offset]));
|
||||
if (messageSize == 0) {
|
||||
break;
|
||||
}
|
||||
pData += nLen;
|
||||
nSize -= nLen;
|
||||
offset += messageSize;
|
||||
}
|
||||
}
|
||||
|
||||
void ProcessTmsgs()
|
||||
{
|
||||
uint8_t cnt;
|
||||
std::unique_ptr<byte[]> msg;
|
||||
while (true) {
|
||||
std::unique_ptr<byte[]> msg;
|
||||
uint8_t size = tmsg_get(&msg);
|
||||
if (size == 0)
|
||||
break;
|
||||
|
||||
while ((cnt = tmsg_get(&msg)) != 0)
|
||||
HandleAllPackets(MyPlayerId, msg.get(), cnt);
|
||||
HandleAllPackets(MyPlayerId, msg.get(), size);
|
||||
}
|
||||
}
|
||||
|
||||
void SendPlayerInfo(int pnum, _cmd_id cmd)
|
||||
|
|
@ -463,49 +465,49 @@ bool InitMulti(GameData *gameData)
|
|||
|
||||
} // namespace
|
||||
|
||||
void multi_msg_add(byte *pbMsg, BYTE bLen)
|
||||
void multi_msg_add(const byte *data, size_t size)
|
||||
{
|
||||
if (pbMsg != nullptr && bLen != 0) {
|
||||
tmsg_add(pbMsg, bLen);
|
||||
if (data != nullptr && size != 0) {
|
||||
tmsg_add(data, size);
|
||||
}
|
||||
}
|
||||
|
||||
void NetSendLoPri(int playerId, byte *pbMsg, BYTE bLen)
|
||||
void NetSendLoPri(int playerId, const byte *data, size_t size)
|
||||
{
|
||||
if (pbMsg != nullptr && bLen != 0) {
|
||||
CopyPacket(&sgLoPriBuf, pbMsg, bLen);
|
||||
SendPacket(playerId, pbMsg, bLen);
|
||||
if (data != nullptr && size != 0) {
|
||||
CopyPacket(&sgLoPriBuf, data, size);
|
||||
SendPacket(playerId, data, size);
|
||||
}
|
||||
}
|
||||
|
||||
void NetSendHiPri(int playerId, byte *pbMsg, BYTE bLen)
|
||||
void NetSendHiPri(int playerId, const byte *data, size_t size)
|
||||
{
|
||||
if (pbMsg != nullptr && bLen != 0) {
|
||||
CopyPacket(&sgHiPriBuf, pbMsg, bLen);
|
||||
SendPacket(playerId, pbMsg, bLen);
|
||||
if (data != nullptr && size != 0) {
|
||||
CopyPacket(&sgHiPriBuf, data, size);
|
||||
SendPacket(playerId, data, size);
|
||||
}
|
||||
if (!gbShouldValidatePackage) {
|
||||
gbShouldValidatePackage = true;
|
||||
TPkt pkt;
|
||||
NetReceivePlayerData(&pkt);
|
||||
size_t size = gdwNormalMsgSize - sizeof(TPktHdr);
|
||||
byte *hipriBody = ReceivePacket(&sgHiPriBuf, pkt.body, &size);
|
||||
byte *lowpriBody = ReceivePacket(&sgLoPriBuf, hipriBody, &size);
|
||||
size = sync_all_monsters(lowpriBody, size);
|
||||
size_t len = gdwNormalMsgSize - size;
|
||||
size_t msgSize = gdwNormalMsgSize - sizeof(TPktHdr);
|
||||
byte *hipriBody = ReceivePacket(&sgHiPriBuf, pkt.body, &msgSize);
|
||||
byte *lowpriBody = ReceivePacket(&sgLoPriBuf, hipriBody, &msgSize);
|
||||
msgSize = sync_all_monsters(lowpriBody, msgSize);
|
||||
size_t len = gdwNormalMsgSize - msgSize;
|
||||
pkt.hdr.wLen = len;
|
||||
if (!SNetSendMessage(-2, &pkt.hdr, len))
|
||||
nthread_terminate_game("SNetSendMessage");
|
||||
}
|
||||
}
|
||||
|
||||
void multi_send_msg_packet(uint32_t pmask, byte *src, BYTE len)
|
||||
void multi_send_msg_packet(uint32_t pmask, const byte *data, size_t size)
|
||||
{
|
||||
TPkt pkt;
|
||||
NetReceivePlayerData(&pkt);
|
||||
size_t t = len + sizeof(pkt.hdr);
|
||||
size_t t = size + sizeof(pkt.hdr);
|
||||
pkt.hdr.wLen = t;
|
||||
memcpy(pkt.body, src, len);
|
||||
memcpy(pkt.body, data, size);
|
||||
size_t p = 0;
|
||||
for (size_t v = 1; p < MAX_PLRS; p++, v <<= 1) {
|
||||
if ((v & pmask) != 0) {
|
||||
|
|
@ -630,21 +632,21 @@ void multi_process_network_packets()
|
|||
}
|
||||
}
|
||||
}
|
||||
HandleAllPackets(dwID, (byte *)(pkt + 1), dwMsgSize - sizeof(TPktHdr));
|
||||
HandleAllPackets(dwID, (const byte *)(pkt + 1), dwMsgSize - sizeof(TPktHdr));
|
||||
}
|
||||
if (SErrGetLastError() != STORM_ERROR_NO_MESSAGES_WAITING)
|
||||
nthread_terminate_game("SNetReceiveMsg");
|
||||
}
|
||||
|
||||
void multi_send_zero_packet(int pnum, _cmd_id bCmd, byte *pbSrc, DWORD dwLen)
|
||||
void multi_send_zero_packet(int pnum, _cmd_id bCmd, const byte *data, size_t size)
|
||||
{
|
||||
assert(pnum != MyPlayerId);
|
||||
assert(pbSrc);
|
||||
assert(dwLen <= 0x0ffff);
|
||||
assert(data);
|
||||
assert(size <= 0x0ffff);
|
||||
|
||||
uint32_t dwOffset = 0;
|
||||
|
||||
while (dwLen != 0) {
|
||||
while (size != 0) {
|
||||
TPkt pkt;
|
||||
pkt.hdr.wCheck = LoadBE32("\0\0ip");
|
||||
pkt.hdr.px = 0;
|
||||
|
|
@ -660,12 +662,12 @@ void multi_send_zero_packet(int pnum, _cmd_id bCmd, byte *pbSrc, DWORD dwLen)
|
|||
p->bCmd = bCmd;
|
||||
p->wOffset = dwOffset;
|
||||
size_t dwBody = gdwLargestMsgSize - sizeof(pkt.hdr) - sizeof(*p);
|
||||
if (dwLen < dwBody) {
|
||||
dwBody = dwLen;
|
||||
if (size < dwBody) {
|
||||
dwBody = size;
|
||||
}
|
||||
assert(dwBody <= 0x0ffff);
|
||||
p->wBytes = dwBody;
|
||||
memcpy(&pkt.body[sizeof(*p)], pbSrc, p->wBytes);
|
||||
memcpy(&pkt.body[sizeof(*p)], data, p->wBytes);
|
||||
size_t dwMsg = sizeof(pkt.hdr);
|
||||
dwMsg += sizeof(*p);
|
||||
dwMsg += p->wBytes;
|
||||
|
|
@ -675,8 +677,8 @@ void multi_send_zero_packet(int pnum, _cmd_id bCmd, byte *pbSrc, DWORD dwLen)
|
|||
return;
|
||||
}
|
||||
|
||||
pbSrc += p->wBytes;
|
||||
dwLen -= p->wBytes;
|
||||
data += p->wBytes;
|
||||
size -= p->wBytes;
|
||||
dwOffset += p->wBytes;
|
||||
}
|
||||
}
|
||||
|
|
@ -773,7 +775,7 @@ bool NetInit(bool bSinglePlayer)
|
|||
return true;
|
||||
}
|
||||
|
||||
void recv_plrinfo(int pnum, TCmdPlrInfoHdr *p, bool recv)
|
||||
void recv_plrinfo(int pnum, const TCmdPlrInfoHdr *p, bool recv)
|
||||
{
|
||||
const char *szEvent;
|
||||
|
||||
|
|
|
|||
|
|
@ -48,10 +48,10 @@ extern char szPlayerName[128];
|
|||
extern BYTE gbDeltaSender;
|
||||
extern uint32_t player_state[MAX_PLRS];
|
||||
|
||||
void multi_msg_add(byte *pbMsg, BYTE bLen);
|
||||
void NetSendLoPri(int playerId, byte *pbMsg, BYTE bLen);
|
||||
void NetSendHiPri(int playerId, byte *pbMsg, BYTE bLen);
|
||||
void multi_send_msg_packet(uint32_t pmask, byte *src, BYTE len);
|
||||
void multi_msg_add(const byte *data, size_t size);
|
||||
void NetSendLoPri(int playerId, const byte *data, size_t size);
|
||||
void NetSendHiPri(int playerId, const byte *data, size_t size);
|
||||
void multi_send_msg_packet(uint32_t pmask, const byte *data, size_t size);
|
||||
void multi_msg_countdown();
|
||||
void multi_player_left(int pnum, int reason);
|
||||
void multi_net_ping();
|
||||
|
|
@ -61,9 +61,9 @@ void multi_net_ping();
|
|||
*/
|
||||
bool multi_handle_delta();
|
||||
void multi_process_network_packets();
|
||||
void multi_send_zero_packet(int pnum, _cmd_id bCmd, byte *pbSrc, DWORD dwLen);
|
||||
void multi_send_zero_packet(int pnum, _cmd_id bCmd, const byte *data, size_t size);
|
||||
void NetClose();
|
||||
bool NetInit(bool bSinglePlayer);
|
||||
void recv_plrinfo(int pnum, TCmdPlrInfoHdr *p, bool recv);
|
||||
void recv_plrinfo(int pnum, const TCmdPlrInfoHdr *p, bool recv);
|
||||
|
||||
} // namespace devilution
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ struct TMsg {
|
|||
std::unique_ptr<byte[]> body;
|
||||
uint8_t len;
|
||||
|
||||
TMsg(uint32_t time, byte *data, uint8_t len)
|
||||
TMsg(uint32_t time, const byte *data, uint8_t len)
|
||||
: time(time)
|
||||
, body(new byte[len])
|
||||
, len(len)
|
||||
|
|
@ -45,7 +45,7 @@ uint8_t tmsg_get(std::unique_ptr<byte[]> *msg)
|
|||
return len;
|
||||
}
|
||||
|
||||
void tmsg_add(byte *msg, uint8_t len)
|
||||
void tmsg_add(const byte *msg, uint8_t len)
|
||||
{
|
||||
uint32_t time = SDL_GetTicks() + gnTickDelay * 10;
|
||||
TimedMsgList.emplace_back(time, msg, len);
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
namespace devilution {
|
||||
|
||||
uint8_t tmsg_get(std::unique_ptr<byte[]> *msg);
|
||||
void tmsg_add(byte *msg, uint8_t bLen);
|
||||
void tmsg_add(const byte *msg, uint8_t bLen);
|
||||
void tmsg_start();
|
||||
void tmsg_cleanup();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue