summaryrefslogtreecommitdiff
path: root/src/player.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/player.cpp')
-rw-r--r--src/player.cpp45
1 files changed, 14 insertions, 31 deletions
diff --git a/src/player.cpp b/src/player.cpp
index 0fe6460c..062c1135 100644
--- a/src/player.cpp
+++ b/src/player.cpp
@@ -31,7 +31,7 @@
#include "resources/itemdb.h"
#include "resources/iteminfo.h"
-#include "utils/tostring.h"
+#include "utils/strprintf.h"
#include "gui/gui.h"
@@ -103,42 +103,25 @@ void Player::setGender(int sex)
}
}
-void Player::setHairColor(int color)
+void Player::setHairStyle(int style, int color)
{
- if (color != mHairColor)
- {
- mHairColor = color < NR_HAIR_COLORS ? color : 0;
-
- AnimatedSprite *newHairSprite = AnimatedSprite::load(
- "graphics/sprites/hairstyle" + toString(getHairStyle()) + ".xml",
- mHairColor);
- if (newHairSprite)
- newHairSprite->setDirection(getSpriteDirection());
-
- delete mSprites[HAIR_SPRITE];
- mSprites[HAIR_SPRITE] = newHairSprite;
+ style = style < 0 ? mHairStyle : style % NR_HAIR_STYLES;
+ color = color < 0 ? mHairColor : color % NR_HAIR_COLORS;
+ if (style == mHairStyle && color == mHairColor) return;
- setAction(mAction);
- }
-}
+ mHairStyle = style;
+ mHairColor = color;
-void Player::setHairStyle(int style)
-{
- if (style != mHairStyle)
- {
- mHairStyle = style < NR_HAIR_STYLES ? style : 0;
+ AnimatedSprite *newHairSprite = AnimatedSprite::load
+ (strprintf("graphics/sprites/hairstyle%d.xml", style), color);
- AnimatedSprite *newHairSprite = AnimatedSprite::load(
- "graphics/sprites/hairstyle" + toString(getHairStyle()) + ".xml",
- mHairColor);
- if (newHairSprite)
- newHairSprite->setDirection(getSpriteDirection());
+ if (newHairSprite)
+ newHairSprite->setDirection(getSpriteDirection());
- delete mSprites[HAIR_SPRITE];
- mSprites[HAIR_SPRITE] = newHairSprite;
+ delete mSprites[HAIR_SPRITE];
+ mSprites[HAIR_SPRITE] = newHairSprite;
- setAction(mAction);
- }
+ setAction(mAction);
}
void Player::setVisibleEquipment(int slot, int id)