From 8a60e11684e84807f3526b37afa8cbf6f103b8fd Mon Sep 17 00:00:00 2001 From: Guillaume Melquiond Date: Sat, 3 Nov 2007 09:58:25 +0000 Subject: Fixed double load of hair graphics. --- src/player.cpp | 45 ++++++++++++++------------------------------- 1 file changed, 14 insertions(+), 31 deletions(-) (limited to 'src/player.cpp') 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) -- cgit v1.2.3-70-g09d2