summaryrefslogtreecommitdiff
path: root/src/player.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/player.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/player.h')
-rw-r--r--src/player.h69
1 files changed, 68 insertions, 1 deletions
diff --git a/src/player.h b/src/player.h
index f9911bb8..1904c6d9 100644
--- a/src/player.h
+++ b/src/player.h
@@ -27,6 +27,9 @@
class FlashText;
class Graphics;
class Map;
+#ifdef TMWSERV_SUPPORT
+class Guild;
+#endif
/**
* A player being. Players have their name drawn beneath them. This class also
@@ -36,6 +39,9 @@ class Map;
class Player : public Being
{
public:
+ /**
+ * Constructor.
+ */
Player(int id, int job, Map *map);
~Player();
@@ -45,7 +51,9 @@ class Player : public Being
*/
virtual void setName(const std::string &name);
+#ifdef EATHENA_SUPPORT
virtual void logic();
+#endif
virtual Type getType() const;
@@ -66,17 +74,76 @@ class Player : public Being
/**
* Sets visible equipments for this player.
*/
- virtual void setSprite(int slot, int id, std::string color = "");
+ virtual void setSprite(int slot, int id, const std::string &color = "");
/**
* Flash the player's name
*/
void flash(int time);
+#ifdef TMWSERV_SUPPORT
+ /**
+ * Adds a guild to the player.
+ */
+ Guild* addGuild(short guildId, short rights);
+
+ /**
+ * Removers a guild from the player.
+ */
+ void removeGuild(int id);
+
+ /**
+ * Returns a pointer to the specified guild.
+ */
+ Guild* getGuild(const std::string &guildName);
+
+ /**
+ * Returns a pointer to the guild with matching id.
+ */
+ Guild* getGuild(int id);
+
+ /**
+ * Get number of guilds the player belongs to.
+ */
+ short getNumberOfGuilds();
+
+ /**
+ * Set the player in party
+ */
+ void setInParty(bool value);
+
+ /**
+ * Returns whether player is in the party
+ */
+ bool getInParty() const { return mInParty; }
+#endif
+
+ /**
+ * Gets the way the character is blocked by other objects.
+ */
+ virtual unsigned char getWalkMask() const
+ { return 0x82; } // blocked by walls and monsters (bin 1000 0010)
+
protected:
+ /**
+ * Gets the way the monster blocks pathfinding for other objects.
+ */
+ virtual Map::BlockType getBlockType() const
+ { return Map::BLOCKTYPE_CHARACTER; }
+
virtual void updateCoords();
+#ifdef TMWSERV_SUPPORT
+ // Character guild information
+ std::map<int, Guild*> mGuilds;
+#endif
+
FlashText *mName;
+
+#ifdef TMWSERV_SUPPORT
+ private:
+ bool mInParty;
+#endif
};
#endif