diff options
Diffstat (limited to 'src/being.h')
-rw-r--r-- | src/being.h | 104 |
1 files changed, 26 insertions, 78 deletions
diff --git a/src/being.h b/src/being.h index 6e90b39d..ad7f3459 100644 --- a/src/being.h +++ b/src/being.h @@ -46,11 +46,11 @@ #define SPEECH_MAX_TIME 1000 class AnimatedSprite; +class FlashText; +class Graphics; class Image; class ItemInfo; class Item; -class Map; -class Graphics; class Particle; class Position; class SimpleAnimation; @@ -59,16 +59,6 @@ class Text; class StatusEffect; -typedef std::list<Sprite*> Sprites; -typedef Sprites::iterator SpriteIterator; - -enum Gender -{ - GENDER_MALE = 0, - GENDER_FEMALE = 1, - GENDER_UNSPECIFIED = 2 -}; - class Being : public Sprite, public ConfigListener { public: @@ -95,29 +85,6 @@ class Being : public Sprite, public ConfigListener HURT }; - enum Sprite - { - BASE_SPRITE = 0, - SHOE_SPRITE, - BOTTOMCLOTHES_SPRITE, - TOPCLOTHES_SPRITE, -#ifdef EATHENA_SUPPORT - MISC1_SPRITE, - MISC2_SPRITE, -#endif - HAIR_SPRITE, - HAT_SPRITE, -#ifdef EATHENA_SUPPORT - CAPE_SPRITE, - GLOVES_SPRITE, -#endif - WEAPON_SPRITE, -#ifdef EATHENA_SUPPORT - SHIELD_SPRITE, -#endif - VECTOREND_SPRITE - }; - enum TargetCursorSize { TC_SMALL = 0, @@ -246,42 +213,17 @@ class Being : public Sprite, public ConfigListener * * @param name The name that should appear. */ - virtual void setName(const std::string &name) - { mName = name; } + virtual void setName(const std::string &name); - /** - * Gets the hair color for this being. - */ - int getHairColor() const { return mHairColor; } + const bool getShowName() const { return mShowName; } - /** - * Gets the hair style for this being. - */ - int getHairStyle() const { return mHairStyle; } + virtual void setShowName(bool doShowName); /** * Get the number of hairstyles implemented */ static int getNumOfHairstyles() { return mNumberOfHairstyles; } - /** - * Sets the hair style and color for this being. - */ - virtual void setHairStyle(int style, int color); - - /** - * Sets visible equipments for this being. - */ - virtual void setSprite(int slot, int id, - const std::string &color = ""); - - /** - * Sets the gender of this being. - */ - virtual void setGender(Gender gender) { mGender = gender; } - - Gender getGender() const { return mGender; } - #ifdef EATHENA_SUPPORT /** * Makes this being take the next step of his path. @@ -307,7 +249,7 @@ class Being : public Sprite, public ConfigListener /** * Returns the type of the being. */ - virtual Type getType() const; + virtual Type getType() const { return UNKNOWN; } /** * Sets the walk speed (in pixels per second). @@ -496,14 +438,14 @@ class Being : public Sprite, public ConfigListener internalTriggerEffect(effectId, false, true); } - static int getHairStyleCount(); - virtual AnimatedSprite *getSprite(int index) const { return mSprites[index]; } static void load(); - void optionChanged(const std::string &value) {} + virtual void optionChanged(const std::string &value) {} + + void flashName(int time); protected: /** @@ -512,9 +454,9 @@ class Being : public Sprite, public ConfigListener void setPath(const Path &path); /** - * Let the sub-classes react to a replacement. + * Updates name's location. */ - virtual void updateCoords() {} + virtual void updateCoords(); /** * Gets the way the object blocks pathfinding for other objects @@ -551,14 +493,23 @@ class Being : public Sprite, public ConfigListener */ virtual void handleStatusEffect(StatusEffect *effect, int effectId); + virtual void showName(); + int mId; /**< Unique sprite id */ Uint8 mDirection; /**< Facing direction */ Uint8 mSpriteDirection; /**< Facing direction */ Map *mMap; /**< Map on which this being resides */ std::string mName; /**< Name of character */ - SpriteIterator mSpriteIterator; + MapSprite mMapSprite; bool mParticleEffects; /**< Whether to display particles or not */ + /** + * Holds a text object when the being displays it's name, 0 otherwise + */ + FlashText *mDispName; + const gcn::Color *mNameColor; + bool mShowName; + /** Engine-related infos about weapon. */ const ItemInfo *mEquippedWeapon; @@ -567,17 +518,14 @@ class Being : public Sprite, public ConfigListener Path mPath; std::string mSpeech; Text *mText; - int mHairStyle; - int mHairColor; - Gender mGender; + const gcn::Color *mTextColor; Uint16 mStunMode; /**< Stun mode; zero if not stunned */ std::set<int> mStatusEffects; /**< set of active status effects */ - const gcn::Color *mNameColor; - - std::vector<AnimatedSprite*> mSprites; - std::vector<int> mSpriteIDs; - std::vector<std::string> mSpriteColors; + typedef std::vector<AnimatedSprite*> Sprites; + typedef Sprites::iterator SpriteIterator; + typedef Sprites::const_iterator SpriteConstIterator; + Sprites mSprites; ParticleList mStunParticleEffects; ParticleVector mStatusParticleEffects; ParticleList mChildParticleEffects; |