summaryrefslogtreecommitdiffstats
path: root/src/serialize
diff options
context:
space:
mode:
authorChuck Miller <shadowmil@gmail.com>2009-10-01 00:26:38 -0400
committerChuck Miller <shadowmil@gmail.com>2009-10-01 09:22:40 -0400
commitf5fdb19e7aac292cca31ec23250587e0d97d0ff6 (patch)
treec0b9aa0ad1040fce1e3ab601aee7bcb489a3d343 /src/serialize
parent54217640c85a97341df7395a9acc39a0b819692d (diff)
downloadmanaserv-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.hpp17
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;