diff options
author | Chuck Miller <shadowmil@gmail.com> | 2009-10-01 00:26:38 -0400 |
---|---|---|
committer | Chuck Miller <shadowmil@gmail.com> | 2009-10-01 09:22:40 -0400 |
commit | f5fdb19e7aac292cca31ec23250587e0d97d0ff6 (patch) | |
tree | c0b9aa0ad1040fce1e3ab601aee7bcb489a3d343 /src/serialize | |
parent | 54217640c85a97341df7395a9acc39a0b819692d (diff) | |
download | manaserv-f5fdb19e7aac292cca31ec23250587e0d97d0ff6.tar.gz manaserv-f5fdb19e7aac292cca31ec23250587e0d97d0ff6.tar.xz manaserv-f5fdb19e7aac292cca31ec23250587e0d97d0ff6.zip |
Adds code for saving and getting status effects from the database
Diffstat (limited to 'src/serialize')
-rw-r--r-- | src/serialize/characterdata.hpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/serialize/characterdata.hpp b/src/serialize/characterdata.hpp index ac281e7..0f3f4c5 100644 --- a/src/serialize/characterdata.hpp +++ b/src/serialize/characterdata.hpp @@ -54,6 +54,14 @@ void serializeCharacterData(const T &data, MessageOut &msg) msg.writeLong(skill_it->second); } + msg.writeShort(data.getStatusEffectSize()); + std::map<int, int>::const_iterator status_it; + for (status_it = data.getStatusEffectBegin(); status_it != data.getStatusEffectEnd(); status_it++) + { + msg.writeShort(status_it->first); + msg.writeShort(status_it->second); + } + msg.writeShort(data.getMapId()); const Point &pos = data.getPosition(); @@ -99,6 +107,15 @@ void deserializeCharacterData(T &data, MessageIn &msg) data.setExperience(skill,level); } + int statusSize = msg.readShort(); + + for (int i = 0; i < statusSize; i++) + { + int status = msg.readShort(); + int time = msg.readShort(); + data.applyStatusEffect(status, time); + } + data.setMapId(msg.readShort()); Point temporaryPoint; |