diff options
author | Roderic Morris <roderic@ccs.neu.edu> | 2008-10-27 15:46:23 +0000 |
---|---|---|
committer | Roderic Morris <roderic@ccs.neu.edu> | 2008-10-27 15:46:23 +0000 |
commit | 59233e49d85d2c805c46d5519b0224da1239c4f5 (patch) | |
tree | ec12d1f37b15fa736e243c7124f41ea80ab0b4dc /src/net | |
parent | db7eb254e97f1b3560b2e12f12cd2b4ff1828f4a (diff) | |
download | mana-client-59233e49d85d2c805c46d5519b0224da1239c4f5.tar.gz mana-client-59233e49d85d2c805c46d5519b0224da1239c4f5.tar.bz2 mana-client-59233e49d85d2c805c46d5519b0224da1239c4f5.tar.xz mana-client-59233e49d85d2c805c46d5519b0224da1239c4f5.zip |
add effect handler (by Chuck Miller)
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/effecthandler.cpp | 59 | ||||
-rw-r--r-- | src/net/effecthandler.h | 39 | ||||
-rw-r--r-- | src/net/protocol.h | 1 |
3 files changed, 99 insertions, 0 deletions
diff --git a/src/net/effecthandler.cpp b/src/net/effecthandler.cpp new file mode 100644 index 00000000..04951d46 --- /dev/null +++ b/src/net/effecthandler.cpp @@ -0,0 +1,59 @@ +/* + * The Mana World + * Copyright 2004 The Mana World Development Team + * + * This file is part of The Mana World. + * + * The Mana World is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * The Mana World is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with The Mana World; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include "effecthandler.h" + +#include "messagein.h" +#include "protocol.h" + +#include "../effectmanager.h" + + +EffectHandler::EffectHandler() +{ + static const Uint16 _messages[] = { + GPMSG_CREATE_EFFECT, + 0 + }; + handledMessages = _messages; +} + +void EffectHandler::handleMessage(MessageIn &msg) +{ + switch (msg.getId()) + { + case GPMSG_CREATE_EFFECT: + handleCreateEffects(msg); + break; + default: + break; + } +} + +void EffectHandler::handleCreateEffects(MessageIn &msg) +{ + int id = msg.readInt16(); + Uint16 x = msg.readInt16(); + Uint16 y = msg.readInt16(); + effectManager->trigger(id, x, y); +} + diff --git a/src/net/effecthandler.h b/src/net/effecthandler.h new file mode 100644 index 00000000..d836b341 --- /dev/null +++ b/src/net/effecthandler.h @@ -0,0 +1,39 @@ +/* + * The Mana World + * Copyright 2004 The Mana World Development Team + * + * This file is part of The Mana World. + * + * The Mana World is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * The Mana World is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with The Mana World; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef _TMW_NET_EFFECTSHANDLER_H +#define _TMW_NET_EFFECTSHANDLER_H + +#include "messagehandler.h" + +class EffectHandler : public MessageHandler +{ + public: + EffectHandler(); + + void handleMessage(MessageIn &msg); + + private: + void handleCreateEffects(MessageIn &msg); +}; + +#endif diff --git a/src/net/protocol.h b/src/net/protocol.h index ad1eebdb..abbad442 100644 --- a/src/net/protocol.h +++ b/src/net/protocol.h @@ -131,6 +131,7 @@ enum { PGMSG_USE_ITEM = 0x0300, // B slot GPMSG_USE_RESPONSE = 0x0301, // B error GPMSG_BEINGS_DAMAGE = 0x0310, // { W being id, W amount }* + GPMSG_CREATE_EFFECT = 0x0320, // W effect id, W*2 position // Guild PCMSG_GUILD_CREATE = 0x0350, // S name |