summaryrefslogtreecommitdiff
path: root/src/npc.h
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2009-03-22 19:45:03 +0100
committerBjørn Lindeijer <bjorn@lindeijer.nl>2009-03-22 19:45:56 +0100
commit0c43d04b438d41c277ae80402d4b4888db1a0b64 (patch)
tree3aaeb75ecd1bcbe85decedab5f1fa426fe0411e3 /src/npc.h
parenta7f5eaeb7f643658d356533a608f0f18d85b6d32 (diff)
parent401802c1d7a1b3d659bdc53a45d9a6292fc1121e (diff)
downloadmana-0c43d04b438d41c277ae80402d4b4888db1a0b64.tar.gz
mana-0c43d04b438d41c277ae80402d4b4888db1a0b64.tar.bz2
mana-0c43d04b438d41c277ae80402d4b4888db1a0b64.tar.xz
mana-0c43d04b438d41c277ae80402d4b4888db1a0b64.zip
Merged the tmwserv client with the eAthena client
This merge involved major changes on both sides, and as such took several weeks. Lots of things are expected to be broken now, however, we now have a single code base to improve and extend, which can be compiled to support either eAthena or tmwserv. In the coming months, the plan is to work towards a client that supports both eAthena and tmwserv, without needing to be recompiled. Conflicts: Everywhere!
Diffstat (limited to 'src/npc.h')
-rw-r--r--src/npc.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/npc.h b/src/npc.h
index 81b6d51e..b003b82e 100644
--- a/src/npc.h
+++ b/src/npc.h
@@ -24,14 +24,20 @@
#include "player.h"
+#ifdef EATHENA_SUPPORT
class Network;
+#endif
class Graphics;
class Text;
class NPC : public Player
{
public:
+#ifdef TMWSERV_SUPPORT
+ NPC(Uint16 id, int sprite, Map *map);
+#else
NPC(Uint32 id, Uint16 job, Map *map, Network *network);
+#endif
~NPC();
@@ -55,8 +61,23 @@ class NPC : public Player
* interface problems
*/
void handleDeath();
+
+ /**
+ * Gets the way an NPC is blocked by other things on the map
+ */
+ virtual unsigned char getWalkMask() const
+ { return 0x83; } // blocked like a monster by walls, monsters and characters ( bin 1000 0011)
+
protected:
+ /**
+ * Gets the way a monster blocks pathfinding for other objects
+ */
+ virtual Map::BlockType getBlockType() const
+ { return Map::BLOCKTYPE_CHARACTER; } //blocks like a player character
+
+#ifdef EATHENA_SUPPORT
Network *mNetwork;
+#endif
void updateCoords();
private:
Text *mName;