diff options
author | Yohann Ferreira <bertram@cegetel.net> | 2005-12-12 22:17:35 +0000 |
---|---|---|
committer | Yohann Ferreira <bertram@cegetel.net> | 2005-12-12 22:17:35 +0000 |
commit | d187c54000b40dcebb742a89f9962a6f12921a62 (patch) | |
tree | 5711f5a05f7c1d0a28327203eb8fa001d8d25e4e /src/netcomputer.cpp | |
parent | 5ef4627a825d2c1ffd59a8ad33d05a6d72240a69 (diff) | |
download | manaserv-d187c54000b40dcebb742a89f9962a6f12921a62.tar.gz manaserv-d187c54000b40dcebb742a89f9962a6f12921a62.tar.bz2 manaserv-d187c54000b40dcebb742a89f9962a6f12921a62.tar.xz manaserv-d187c54000b40dcebb742a89f9962a6f12921a62.zip |
Use setCharacter() and unsetcharacter() to deal with addBeing() and removeBeing() in the world (which are buggy). Add check when character's name already exists. Added Character list packet support.
Diffstat (limited to 'src/netcomputer.cpp')
-rw-r--r-- | src/netcomputer.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/netcomputer.cpp b/src/netcomputer.cpp index 663d74a8..ff1c93a1 100644 --- a/src/netcomputer.cpp +++ b/src/netcomputer.cpp @@ -22,6 +22,7 @@ */ #include "netcomputer.h" +#include "state.h" #include <cstdlib> #include <iostream> @@ -55,5 +56,27 @@ void NetComputer::setAccount(tmwserv::Account *acc) void NetComputer::setCharacter(tmwserv::Being *ch) { + tmwserv::State &state = tmwserv::State::instance(); + if (character != NULL) + { + // Remove being from the world : This is buggy for now. + //state.removeBeing(character); + } character = ch; + state.addBeing(character, character->getMap()); } + +void NetComputer::unsetAccount() +{ + unsetCharacter(); + account = NULL; +} + +void NetComputer::unsetCharacter() +{ + // remove being from world + //tmwserv::State &state = tmwserv::State::instance(); + //state.removeBeing(character); + character = NULL; +} + |