summaryrefslogtreecommitdiff
path: root/src/game-server/postman.h
diff options
context:
space:
mode:
authorErik Schilling <ablu.erikschilling@googlemail.com>2013-04-06 21:36:50 +0200
committerErik Schilling <ablu.erikschilling@googlemail.com>2013-04-11 13:43:00 +0200
commitaa04597c5f8bb806996d604699fc8ebff6d53bdd (patch)
tree20e6a79a873605b62c80011fd5c80351f60df6fb /src/game-server/postman.h
parentd95fccfca8575d8fb06988e558a338e37776961a (diff)
downloadmanaserv-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.h29
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;