summaryrefslogtreecommitdiff
path: root/src/account-server/character.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/account-server/character.cpp')
-rw-r--r--src/account-server/character.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/account-server/character.cpp b/src/account-server/character.cpp
index cafc256b..35a8b079 100644
--- a/src/account-server/character.cpp
+++ b/src/account-server/character.cpp
@@ -91,6 +91,16 @@ void CharacterData::serialize(MessageOut &msg)
msg.writeInt32(abilityId);
}
+
+ // questlog
+ msg.writeInt16(mQuests.size());
+ for (QuestInfo &quest : mQuests) {
+ msg.writeInt16(quest.id);
+ msg.writeInt8(quest.state);
+ msg.writeString(quest.title);
+ msg.writeString(quest.description);
+ }
+
// inventory - must be last because size isn't transmitted
const Possessions &poss = getPossessions();
const EquipData &equipData = poss.getEquipment();
@@ -166,6 +176,18 @@ void CharacterData::deserialize(MessageIn &msg)
giveAbility(id);
}
+ // questlog
+ int questlogSize = msg.readInt16();
+ mQuests.clear();
+ for (int i = 0; i < questlogSize; ++i) {
+ QuestInfo quest;
+ quest.id = msg.readInt16();
+ quest.state = msg.readInt8();
+ quest.title = msg.readString();
+ quest.description = msg.readString();
+ mQuests.push_back(quest);
+ }
+
// inventory - must be last because size isn't transmitted
Possessions &poss = getPossessions();