summaryrefslogtreecommitdiff
path: root/src/localplayer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/localplayer.h')
-rw-r--r--src/localplayer.h253
1 files changed, 8 insertions, 245 deletions
diff --git a/src/localplayer.h b/src/localplayer.h
index 8033263b..b1a41697 100644
--- a/src/localplayer.h
+++ b/src/localplayer.h
@@ -22,9 +22,9 @@
#ifndef LOCALPLAYER_H
#define LOCALPLAYER_H
-#include "player.h"
+#include "being.h"
-#include "gui/userpalette.h"
+#include "resources/userpalette.h"
#include <guichan/actionlistener.hpp>
@@ -32,80 +32,18 @@
#include <vector>
class ChatTab;
-class Equipment;
class FloorItem;
class ImageSet;
-class Inventory;
class Item;
class Map;
class OkDialog;
-
-struct Special
-{
- int currentMana;
- int neededMana;
- int recharge;
-};
-
class AwayListener : public gcn::ActionListener
{
public:
void action(const gcn::ActionEvent &event);
};
-
-/**
- * Attributes used during combat. Available to all the beings.
- */
-enum
-{
-BASE_ATTR_BEGIN = 0,
- BASE_ATTR_PHY_ATK_MIN = BASE_ATTR_BEGIN,
- BASE_ATTR_PHY_ATK_DELTA,
- /**< Physical attack power. */
- BASE_ATTR_MAG_ATK, /**< Magical attack power. */
- BASE_ATTR_PHY_RES, /**< Resistance to physical damage. */
- BASE_ATTR_MAG_RES, /**< Resistance to magical damage. */
- BASE_ATTR_EVADE, /**< Ability to avoid hits. */
- BASE_ATTR_HIT, /**< Ability to hit stuff. */
- BASE_ATTR_HP, /**< Hit Points (Base value: maximum, Modded value: current) */
- BASE_ATTR_HP_REGEN,/**< number of HP regenerated every 10 game ticks */
- BASE_ATTR_END,
- BASE_ATTR_NB = BASE_ATTR_END - BASE_ATTR_BEGIN,
-
- BASE_ELEM_BEGIN = BASE_ATTR_END,
- BASE_ELEM_NEUTRAL = BASE_ELEM_BEGIN,
- BASE_ELEM_FIRE,
- BASE_ELEM_WATER,
- BASE_ELEM_EARTH,
- BASE_ELEM_AIR,
- BASE_ELEM_SACRED,
- BASE_ELEM_DEATH,
- BASE_ELEM_END,
- BASE_ELEM_NB = BASE_ELEM_END - BASE_ELEM_BEGIN,
-
- NB_BEING_ATTRIBUTES = BASE_ELEM_END
-};
-
-/**
- * Attributes of characters. Used to derive being attributes.
- */
-enum
-{
- CHAR_ATTR_BEGIN = NB_BEING_ATTRIBUTES,
- CHAR_ATTR_STRENGTH = CHAR_ATTR_BEGIN,
- CHAR_ATTR_AGILITY,
- CHAR_ATTR_DEXTERITY,
- CHAR_ATTR_VITALITY,
- CHAR_ATTR_INTELLIGENCE,
- CHAR_ATTR_WILLPOWER,
- CHAR_ATTR_END,
- CHAR_ATTR_NB = CHAR_ATTR_END - CHAR_ATTR_BEGIN,
-
- NB_CHARACTER_ATTRIBUTES = CHAR_ATTR_END
-};
-
/**
* Reasons an item can fail to be picked up.
*/
@@ -124,7 +62,7 @@ enum
/**
* The local player character.
*/
-class LocalPlayer : public Player
+class LocalPlayer : public Being
{
public:
/**
@@ -159,11 +97,6 @@ class LocalPlayer : public Player
virtual void nextTile(unsigned char dir);
/**
- * Returns the player's inventory.
- */
- Inventory *getInventory() const { return mInventory; }
-
- /**
* Check the player has permission to invite users to specific guild
*/
bool checkInviteRights(const std::string &guildName);
@@ -173,9 +106,6 @@ class LocalPlayer : public Player
*/
void inviteToGuild(Being *being);
- void clearInventory();
- void setInvItem(int index, int id, int amount);
-
void pickUp(FloorItem *item);
/**
@@ -187,33 +117,8 @@ class LocalPlayer : public Player
* Gets the attack range.
*/
int getAttackRange();
-
- /**
- * Returns true when the player is ready to accept a trade offer.
- * Returns false otherwise.
- */
- bool tradeRequestOk() const { return !mTrading; }
-
- /**
- * Sets the trading state of the player, i.e. whether or not he is
- * currently involved into some trade.
- */
- void setTrading(bool trading) { mTrading = trading; }
-
- void useSpecial(int id);
-
- void setSpecialStatus(int id, int current, int max, int recharge);
-
- const std::map<int, Special> &getSpecialStatus() const
- { return mSpecials; }
-
void attack(Being *target = NULL, bool keep = false);
- /**
- * Triggers whether or not to show the name as a GM name.
- */
- virtual void setGM(bool gm);
-
void setGMLevel(int level);
void stopAttack();
@@ -272,16 +177,6 @@ class LocalPlayer : public Player
*/
void stopWalking(bool sendToServer = true);
- /**
- * Uses a character point to raise an attribute
- */
- void raiseAttribute(int attr);
-
- /**
- * Uses a correction point to lower an attribute
- */
- void lowerAttribute(int attr);
-
void toggleSit();
void emote(Uint8 emotion);
@@ -291,85 +186,6 @@ class LocalPlayer : public Player
void pickedUp(const ItemInfo &itemInfo, int amount,
unsigned char fail);
- int getHp() const
- { return mHp; }
-
- int getMaxHp() const
- { return mMaxHp; }
-
- void setHp(int value);
-
- void setMaxHp(int value);
-
- int getLevel() const
- { return mLevel; }
-
- void setLevel(int value);
-
- void setExp(int value, bool notify = true);
-
- int getExp() const
- { return mExp; }
-
- void setExpNeeded(int value);
-
- int getExpNeeded() const
- { return mExpNeeded; }
-
- void setMP(int value);
-
- int getMP() const
- { return mMp; }
-
- void setMaxMP(int value);
-
- int getMaxMP() const
- { return mMaxMp; }
-
- int getMoney() const
- { return mMoney; }
-
- void setMoney(int value);
-
- int getTotalWeight() const
- { return mTotalWeight; }
-
- void setTotalWeight(int value);
-
- int getMaxWeight() const
- { return mMaxWeight; }
-
- void setMaxWeight(int value);
-
- int getAttributeBase(int num)
- { return mAttributeBase[num]; }
-
- void setAttributeBase(int num, int value, bool notify = true);
-
- int getAttributeEffective(int num)
- { return mAttributeEffective[num]; }
-
- void setAttributeEffective(int num, int value);
-
- int getCharacterPoints() const
- { return mCharacterPoints; }
-
- void setCharacterPoints(int n);
-
- int getCorrectionPoints() const
- { return mCorrectionPoints; }
-
- void setCorrectionPoints(int n);
-
- int getSkillPoints() const
- { return mSkillPoints; }
-
- void setSkillPoints(int points);
-
- void setExperience(int skill, int current, int next, bool notify = true);
-
- std::pair<int, int> getExperience(int skill);
-
void setShowIp(bool show)
{ mShowIp = show; }
@@ -396,10 +212,7 @@ class LocalPlayer : public Player
void addMessageToQueue(const std::string &message,
int color = UserPalette::EXP_INFO);
- /**
- * Called when a option (set with config.addListener()) is changed
- */
- void optionChanged(const std::string &value);
+ void event(Channels channel, const Mana::Event &event);
/**
* Tells the engine wether to check
@@ -413,19 +226,10 @@ class LocalPlayer : public Player
*/
bool getCheckNameSetting() const { return mUpdateName; }
- /** Keeps the Equipment related values */
- const std::auto_ptr<Equipment> mEquipment;
-
protected:
-
/** Whether or not the name settings have changed */
bool mUpdateName;
- virtual void handleStatusEffect(StatusEffect *effect, int effectId);
-
- // Colors don't change for local player
- virtual void updateColors() {}
-
void startWalking(unsigned char dir);
int mAttackRange;
@@ -433,73 +237,32 @@ class LocalPlayer : public Player
int mTargetTime; /** How long the being has been targeted **/
int mLastTarget; /** Time stamp of last targeting action, -1 if none. */
- // Character status:
- typedef std::map<int, int> IntMap;
- IntMap mAttributeBase;
- IntMap mAttributeEffective;
- std::map<int, std::pair<int, int> > mSkillExp;
- int mCharacterPoints;
- int mCorrectionPoints;
- int mLevelProgress;
- std::map<int, Special> mSpecials;
- char mSpecialRechargeUpdateNeeded;
- int mLevel;
- int mExp, mExpNeeded;
- int mMp, mMaxMp;
- int mMoney;
- int mTotalWeight;
- int mMaxWeight;
- int mHp;
- int mMaxHp;
- int mSkillPoints;
-
int mGMLevel;
Being *mTarget;
FloorItem *mPickUpTarget;
- bool mTrading;
bool mGoingToTarget;
bool mKeepAttacking; /** Whether or not to continue to attack */
int mLastAction; /**< Time stamp of the last action, -1 if none. */
int mWalkingDir; /**< The direction the player is walking in. */
bool mPathSetByMouse; /**< Tells if the path was set using mouse */
- std::vector<int> mStatusEffectIcons;
-
- Inventory *mInventory;
-
int mLocalWalkTime; /**< Timestamp used to control keyboard walk
messages flooding */
- /** Load the target cursors into memory */
- void initTargetCursor();
-
- /**
- * Helper function for loading target cursors
- */
- void loadTargetCursor(const std::string &filename,
- int width, int height,
- bool outRange, Being::TargetCursorSize size);
-
- /** Images of the target cursor. */
- ImageSet *mTargetCursorImages[2][NUM_TC];
-
- /** Animated target cursors. */
- SimpleAnimation *mTargetCursor[2][NUM_TC];
-
typedef std::pair<std::string, int> MessagePair;
- /** Queued exp messages*/
+ /** Queued messages*/
std::list<MessagePair> mMessages;
int mMessageTime;
+
+ bool mShowIp;
+
AwayListener *mAwayListener;
OkDialog *mAwayDialog;
-
int mAfkTime;
bool mAwayMode;
-
- bool mShowIp;
};
extern LocalPlayer *player_node;