Browse Source

msg.cpp functions bin exact

pull/914/head
qndel 5 years ago committed by Anders Jenbo
parent
commit
6e2873c3fb
  1. 92
      Source/msg.cpp

92
Source/msg.cpp

@ -194,7 +194,11 @@ static BYTE *DeltaExportItem(BYTE *dst, TCmdPItem *src)
*dst = 0xFF;
dst++;
} else {
#ifdef HELLFIRE
*reinterpret_cast<TCmdPItem *>(dst) = *src;
#else
memcpy(dst, src, sizeof(TCmdPItem));
#endif
dst += sizeof(TCmdPItem);
}
src++;
@ -212,7 +216,11 @@ static BYTE *DeltaImportItem(BYTE *src, TCmdPItem *dst)
memset(dst, 0xFF, sizeof(TCmdPItem));
src++;
} else {
#ifdef HELLFIRE
*dst = *reinterpret_cast<TCmdPItem *>(src);
#else
memcpy(dst, src, sizeof(TCmdPItem));
#endif
src += sizeof(TCmdPItem);
}
dst++;
@ -238,11 +246,15 @@ static BYTE *DeltaExportMonster(BYTE *dst, DMonsterStr *src)
int i;
for (i = 0; i < MAXMONSTERS; i++) {
if (*(BYTE *)src == 0xFF) {
if (src->_mx == 0xFF) {
*dst = 0xFF;
dst++;
} else {
#ifdef HELLFIRE
*reinterpret_cast<DMonsterStr *>(dst) = *src;
#else
memcpy(dst, src, sizeof(DMonsterStr));
#endif
dst += sizeof(DMonsterStr);
}
src++;
@ -260,7 +272,11 @@ static BYTE *DeltaImportMonster(BYTE *src, DMonsterStr *dst)
memset(dst, 0xFF, sizeof(DMonsterStr));
src++;
} else {
#ifdef HELLFIRE
*dst = *reinterpret_cast<DMonsterStr *>(src);
#else
memcpy(dst, src, sizeof(DMonsterStr));
#endif
src += sizeof(DMonsterStr);
}
dst++;
@ -271,30 +287,34 @@ static BYTE *DeltaImportMonster(BYTE *src, DMonsterStr *dst)
static BYTE *DeltaExportJunk(BYTE *dst)
{
int i;
MultiQuests *mq;
DPortal *pD;
int i, q;
for (i = 0; i < MAXPORTAL; i++) {
pD = &sgJunk.portal[i];
if (pD->x == 0xFF) {
if (sgJunk.portal[i].x == 0xFF) {
*dst = 0xFF;
dst++;
} else {
memcpy(dst, pD, sizeof(*pD));
dst += sizeof(*pD);
#ifdef HELLFIRE
*reinterpret_cast<DPortal *>(dst) = sgJunk.portal[i];
#else
memcpy(dst, &sgJunk.portal[i], sizeof(DPortal));
#endif
dst += sizeof(DPortal);
}
}
mq = sgJunk.quests;
for (i = 0; i < MAXQUESTS; i++) {
for (i = 0, q = 0; i < MAXQUESTS; i++) {
if (questlist[i]._qflags & QUEST_ANY) {
mq->qlog = quests[i]._qlog;
mq->qstate = quests[i]._qactive;
mq->qvar1 = quests[i]._qvar1;
memcpy(dst, mq, sizeof(*mq));
dst += sizeof(*mq);
mq++;
sgJunk.quests[q].qlog = quests[i]._qlog;
sgJunk.quests[q].qstate = quests[i]._qactive;
sgJunk.quests[q].qvar1 = quests[i]._qvar1;
#ifdef HELLFIRE
*reinterpret_cast<MultiQuests *>(dst) = sgJunk.quests[q];
#else
memcpy(dst, &sgJunk.quests[q], sizeof(MultiQuests));
#endif
dst += sizeof(MultiQuests);
q++;
}
}
@ -303,8 +323,7 @@ static BYTE *DeltaExportJunk(BYTE *dst)
static void DeltaImportJunk(BYTE *src)
{
int i;
MultiQuests *mq;
int i, q;
for (i = 0; i < MAXPORTAL; i++) {
if (*src == 0xFF) {
@ -312,7 +331,11 @@ static void DeltaImportJunk(BYTE *src)
src++;
SetPortalStats(i, FALSE, 0, 0, 0, DTYPE_TOWN);
} else {
#ifdef HELLFIRE
sgJunk.portal[i] = *reinterpret_cast<DPortal *>(src);
#else
memcpy(&sgJunk.portal[i], src, sizeof(DPortal));
#endif
src += sizeof(DPortal);
SetPortalStats(
i,
@ -324,15 +347,18 @@ static void DeltaImportJunk(BYTE *src)
}
}
mq = sgJunk.quests;
for (i = 0; i < MAXQUESTS; i++) {
for (i = 0, q = 0; i < MAXQUESTS; i++) {
if (questlist[i]._qflags & QUEST_ANY) {
memcpy(mq, src, sizeof(MultiQuests));
#ifdef HELLFIRE
sgJunk.quests[q] = *reinterpret_cast<MultiQuests *>(src);
#else
memcpy(&sgJunk.quests[q], src, sizeof(MultiQuests));
#endif
src += sizeof(MultiQuests);
quests[i]._qlog = mq->qlog;
quests[i]._qactive = mq->qstate;
quests[i]._qvar1 = mq->qvar1;
mq++;
quests[i]._qlog = sgJunk.quests[q].qlog;
quests[i]._qactive = sgJunk.quests[q].qstate;
quests[i]._qvar1 = sgJunk.quests[q].qvar1;
q++;
}
}
}
@ -1058,7 +1084,11 @@ void NetSendCmdGItem2(BOOL usonly, BYTE bCmd, BYTE mast, BYTE pnum, TCmdGItem *p
int ticks;
TCmdGItem cmd;
#ifdef HELLFIRE
cmd = *p;
#else
memcpy(&cmd, p, sizeof(cmd));
#endif
cmd.bPnum = pnum;
cmd.bCmd = bCmd;
cmd.bMaster = mast;
@ -1109,7 +1139,11 @@ void NetSendCmdExtra(TCmdGItem *p)
{
TCmdGItem cmd;
#ifdef HELLFIRE
cmd = *p;
#else
memcpy(&cmd, p, sizeof(cmd));
#endif
cmd.dwTime = 0;
cmd.bCmd = CMD_ITEMEXTRA;
NetSendHiPri((BYTE *)&cmd, sizeof(cmd));
@ -1143,6 +1177,14 @@ void NetSendCmdPItem(BOOL bHiPri, BYTE bCmd, BYTE x, BYTE y)
cmd.bCh = plr[myplr].HoldItem._iCharges;
cmd.bMCh = plr[myplr].HoldItem._iMaxCharges;
cmd.wValue = plr[myplr].HoldItem._ivalue;
#ifdef HELLFIRE
cmd.wToHit = plr[myplr].HoldItem._iPLToHit;
cmd.wMaxDam = plr[myplr].HoldItem._iMaxDam;
cmd.bMinStr = plr[myplr].HoldItem._iMinStr;
cmd.bMinMag = plr[myplr].HoldItem._iMinMag;
cmd.bMinDex = plr[myplr].HoldItem._iMinDex;
cmd.bAC = plr[myplr].HoldItem._iAC;
#endif
}
if (bHiPri)

Loading…
Cancel
Save