diff options
Diffstat (limited to 'src/account-server/character.cpp')
-rw-r--r-- | src/account-server/character.cpp | 22 |
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(); |