summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorYohann Ferreira <bertram@cegetel.net>2005-12-27 03:42:40 +0000
committerYohann Ferreira <bertram@cegetel.net>2005-12-27 03:42:40 +0000
commit205579c3be58537060785d174f9f67c89444a21b (patch)
tree31c7c8e0af476e70259650e1c577eaf299f3fc78 /src/main.cpp
parentad9ecbf35e0d986d704deba6f8f20ad72a94a99e (diff)
downloadmanaserv-205579c3be58537060785d174f9f67c89444a21b.tar.gz
manaserv-205579c3be58537060785d174f9f67c89444a21b.tar.bz2
manaserv-205579c3be58537060785d174f9f67c89444a21b.tar.xz
manaserv-205579c3be58537060785d174f9f67c89444a21b.zip
Implemented common chat handling, except for chatting in channels. Also the Channel registering/unregistering isn't there yet and the commands needs to be implemented. Added a small slangs filter to reduce bad words in account names and in conversations a little.
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp52
1 files changed, 27 insertions, 25 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 052f86c5..46a87b9b 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -90,7 +90,8 @@ ChatHandler *chatHandler = new ChatHandler();
/** Core game message handler */
GameHandler *gameHandler = new GameHandler();
-ConnectionHandler connectionHandler; /**< Primary connection handler */
+/** Primary connection handler */
+ConnectionHandler *connectionHandler = new ConnectionHandler();
/**
* SDL timer callback, sends a <code>TMW_WORLD_TICK</code> event.
@@ -217,6 +218,7 @@ void deinitialize()
delete accountHandler;
delete chatHandler;
delete gameHandler;
+ delete connectionHandler;
// Get rid of persistent data storage
tmwserv::Storage::destroy();
@@ -298,29 +300,29 @@ int main(int argc, char *argv[])
//
// Register message handlers
- connectionHandler.registerHandler(CMSG_LOGIN, accountHandler);
- connectionHandler.registerHandler(CMSG_LOGOUT, accountHandler);
- connectionHandler.registerHandler(CMSG_REGISTER, accountHandler);
- connectionHandler.registerHandler(CMSG_UNREGISTER, accountHandler);
- connectionHandler.registerHandler(CMSG_CHAR_CREATE, accountHandler);
- connectionHandler.registerHandler(CMSG_CHAR_SELECT, accountHandler);
- connectionHandler.registerHandler(CMSG_CHAR_DELETE, accountHandler);
- connectionHandler.registerHandler(CMSG_CHAR_LIST, accountHandler);
-
- connectionHandler.registerHandler(CMSG_SAY, chatHandler);
- connectionHandler.registerHandler(CMSG_ANNOUNCE, chatHandler);
-
- connectionHandler.registerHandler(CMSG_PICKUP, gameHandler);
- connectionHandler.registerHandler(CMSG_USE_OBJECT, gameHandler);
- connectionHandler.registerHandler(CMSG_USE_ITEM, gameHandler); // NOTE: this is probably redundant (CMSG_USE_OBJECT)
- connectionHandler.registerHandler(CMSG_TARGET, gameHandler);
- connectionHandler.registerHandler(CMSG_WALK, gameHandler);
- connectionHandler.registerHandler(CMSG_START_TRADE, gameHandler);
- connectionHandler.registerHandler(CMSG_START_TALK, gameHandler);
- connectionHandler.registerHandler(CMSG_REQ_TRADE, gameHandler);
- connectionHandler.registerHandler(CMSG_EQUIP, gameHandler);
-
- session->startListen(&connectionHandler, SERVER_PORT);
+ connectionHandler->registerHandler(CMSG_LOGIN, accountHandler);
+ connectionHandler->registerHandler(CMSG_LOGOUT, accountHandler);
+ connectionHandler->registerHandler(CMSG_REGISTER, accountHandler);
+ connectionHandler->registerHandler(CMSG_UNREGISTER, accountHandler);
+ connectionHandler->registerHandler(CMSG_CHAR_CREATE, accountHandler);
+ connectionHandler->registerHandler(CMSG_CHAR_SELECT, accountHandler);
+ connectionHandler->registerHandler(CMSG_CHAR_DELETE, accountHandler);
+ connectionHandler->registerHandler(CMSG_CHAR_LIST, accountHandler);
+
+ connectionHandler->registerHandler(CMSG_SAY, chatHandler);
+ connectionHandler->registerHandler(CMSG_ANNOUNCE, chatHandler);
+
+ connectionHandler->registerHandler(CMSG_PICKUP, gameHandler);
+ connectionHandler->registerHandler(CMSG_USE_OBJECT, gameHandler);
+ connectionHandler->registerHandler(CMSG_USE_ITEM, gameHandler); // NOTE: this is probably redundant (CMSG_USE_OBJECT)
+ connectionHandler->registerHandler(CMSG_TARGET, gameHandler);
+ connectionHandler->registerHandler(CMSG_WALK, gameHandler);
+ connectionHandler->registerHandler(CMSG_START_TRADE, gameHandler);
+ connectionHandler->registerHandler(CMSG_START_TALK, gameHandler);
+ connectionHandler->registerHandler(CMSG_REQ_TRADE, gameHandler);
+ connectionHandler->registerHandler(CMSG_EQUIP, gameHandler);
+
+ session->startListen(connectionHandler, SERVER_PORT);
LOG_INFO("Listening on port " << SERVER_PORT << "...", 0)
using namespace tmwserv;
@@ -352,7 +354,7 @@ int main(int argc, char *argv[])
// - Handle all messages that are in the message queue
// - Update all active objects/beings
- state.update(connectionHandler);
+ state.update(*connectionHandler);
}
else if (event.type == SDL_QUIT) {
running = false;