diff options
author | Erik Schilling <ablu.erikschilling@googlemail.com> | 2013-04-06 21:36:50 +0200 |
---|---|---|
committer | Erik Schilling <ablu.erikschilling@googlemail.com> | 2013-04-11 13:43:00 +0200 |
commit | aa04597c5f8bb806996d604699fc8ebff6d53bdd (patch) | |
tree | 20e6a79a873605b62c80011fd5c80351f60df6fb /src/game-server/postman.h | |
parent | d95fccfca8575d8fb06988e558a338e37776961a (diff) | |
download | manaserv-aa04597c5f8bb806996d604699fc8ebff6d53bdd.tar.gz manaserv-aa04597c5f8bb806996d604699fc8ebff6d53bdd.tar.bz2 manaserv-aa04597c5f8bb806996d604699fc8ebff6d53bdd.tar.xz manaserv-aa04597c5f8bb806996d604699fc8ebff6d53bdd.zip |
Converted the Character class into a component
A CharacterData was created as a proxy class in order to allow using the
old serialization method.
Diffstat (limited to 'src/game-server/postman.h')
-rw-r--r-- | src/game-server/postman.h | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/src/game-server/postman.h b/src/game-server/postman.h index b9cf7bb2..8862ccf6 100644 --- a/src/game-server/postman.h +++ b/src/game-server/postman.h @@ -24,12 +24,12 @@ #include <map> #include <string> -class Character; +class Being; class Script; struct PostCallback { - void (*handler)(Character *, + void (*handler)(Being *, const std::string &sender, const std::string &letter, Script *); @@ -40,32 +40,35 @@ struct PostCallback class PostMan { public: - Character *getCharacter(int id) const + Being *getCharacter(int id) const { - std::map<int, Character*>::const_iterator itr = mCharacters.find(id); + std::map<int, Being*>::const_iterator itr = mCharacters.find(id); if (itr != mCharacters.end()) return itr->second; return 0; } - void addCharacter(Character *player) + void addCharacter(Entity *player) { - std::map<int, Character*>::iterator itr = mCharacters.find(player->getDatabaseID()); + int dataBaseId = player->getComponent<CharacterComponent>() + ->getDatabaseID(); + std::map<int, Being*>::iterator itr = mCharacters.find(dataBaseId); if (itr == mCharacters.end()) { - mCharacters.insert(std::pair<int, Character*>(player->getDatabaseID(), player)); + Being *being = static_cast<Being *>(player); + mCharacters.insert(std::pair<int, Being*>(dataBaseId, being)); } } - void getPost(Character *player, PostCallback &f) + void getPost(Being *player, PostCallback &f) { - mCallbacks.insert(std::pair<Character*, PostCallback>(player, f)); + mCallbacks.insert(std::pair<Being*, PostCallback>(player, f)); accountHandler->getPost(player); } - void gotPost(Character *player, std::string sender, std::string letter) + void gotPost(Being *player, std::string sender, std::string letter) { - std::map<Character*, PostCallback>::iterator itr = mCallbacks.find(player); + std::map<Being*, PostCallback>::iterator itr = mCallbacks.find(player); if (itr != mCallbacks.end()) { itr->second.handler(player, sender, letter, itr->second.script); @@ -73,8 +76,8 @@ public: } private: - std::map<int, Character*> mCharacters; - std::map<Character*, PostCallback> mCallbacks; + std::map<int, Being*> mCharacters; + std::map<Being*, PostCallback> mCallbacks; }; extern PostMan *postMan; |