Browse Source

Sync Quest._qmsg

pull/5766/head^2
obligaron 3 years ago committed by Anders Jenbo
parent
commit
5e9801f0cf
  1. 6
      Source/msg.cpp
  2. 1
      Source/msg.h
  3. 3
      Source/quests.cpp
  4. 2
      Source/quests.h

6
Source/msg.cpp

@ -203,6 +203,7 @@ struct MultiQuests {
uint8_t qlog;
uint8_t qvar1;
uint8_t qvar2;
int16_t qmsg;
};
struct DJunk {
@ -536,6 +537,7 @@ byte *DeltaExportJunk(byte *dst)
sgJunk.quests[q].qstate = quest._qactive;
sgJunk.quests[q].qvar1 = quest._qvar1;
sgJunk.quests[q].qvar2 = quest._qvar2;
sgJunk.quests[q].qmsg = static_cast<int16_t>(quest._qmsg);
memcpy(dst, &sgJunk.quests[q], sizeof(MultiQuests));
dst += sizeof(MultiQuests);
q++;
@ -2431,7 +2433,7 @@ size_t OnSyncQuest(const TCmd *pCmd, size_t pnum)
SendPacket(pnum, &message, sizeof(message));
} else {
if (pnum != MyPlayerId && message.q < MAXQUESTS && message.qstate <= QUEST_HIVE_DONE)
SetMultiQuest(message.q, message.qstate, message.qlog != 0, message.qvar1, message.qvar2);
SetMultiQuest(message.q, message.qstate, message.qlog != 0, message.qvar1, message.qvar2, message.qmsg);
sgbDeltaChanged = true;
}
@ -2732,6 +2734,7 @@ void DeltaSyncJunk()
quest._qactive = sgJunk.quests[q].qstate;
quest._qvar1 = sgJunk.quests[q].qvar1;
quest._qvar2 = sgJunk.quests[q].qvar2;
quest._qmsg = static_cast<_speech_id>(sgJunk.quests[q].qmsg);
}
q++;
}
@ -3125,6 +3128,7 @@ void NetSendCmdQuest(bool bHiPri, const Quest &quest)
cmd.qlog = quest._qlog ? 1 : 0;
cmd.qvar1 = quest._qvar1;
cmd.qvar2 = quest._qvar2;
cmd.qmsg = quest._qmsg;
if (bHiPri)
NetSendHiPri(MyPlayerId, (byte *)&cmd, sizeof(cmd));

1
Source/msg.h

@ -537,6 +537,7 @@ struct TCmdQuest {
uint8_t qlog;
uint8_t qvar1;
uint8_t qvar2;
int16_t qmsg;
};
struct TItemDef {

3
Source/quests.cpp

@ -830,7 +830,7 @@ void QuestlogESC()
}
}
void SetMultiQuest(int q, quest_state s, bool log, int v1, int v2)
void SetMultiQuest(int q, quest_state s, bool log, int v1, int v2, int16_t qmsg)
{
if (gbIsSpawn)
return;
@ -846,6 +846,7 @@ void SetMultiQuest(int q, quest_state s, bool log, int v1, int v2)
if (v1 > quest._qvar1)
quest._qvar1 = v1;
quest._qvar2 = v2;
quest._qmsg = static_cast<_speech_id>(qmsg);
if (!UseMultiplayerQuests()) {
// Ensure that changes on another client is also updated on our own
ResyncQuests();

2
Source/quests.h

@ -103,7 +103,7 @@ void QuestlogUp();
void QuestlogDown();
void QuestlogEnter();
void QuestlogESC();
void SetMultiQuest(int q, quest_state s, bool log, int v1, int v2);
void SetMultiQuest(int q, quest_state s, bool log, int v1, int v2, int16_t qmsg);
bool UseMultiplayerQuests();
/* rdata */

Loading…
Cancel
Save