Index: src/character/character.h =================================================================== --- src/character/character.h (revision 8401) +++ src/character/character.h (working copy) @@ -96,7 +96,6 @@ Body* body; private: - bool MustBeDrawn() const; bool MustDrawLostEnergy() const; bool MustDrawEnergyBar() const; bool MustDrawName() const; @@ -163,6 +162,7 @@ void Draw(); void DrawName() const; void Refresh(); + bool MustBeDrawn() const; void PrepareTurn(); void StartPlaying(); Index: src/character/member.cpp =================================================================== --- src/character/member.cpp (revision 8401) +++ src/character/member.cpp (working copy) @@ -175,7 +175,7 @@ } } -void Member::RefreshSprite(LRDirection direction) +void Member::RefreshSprite(LRDirection direction, bool animate) { // The sprite pointer may be invalid at the weapon sprite. ASSERT(name != "weapon" && type != "weapon"); @@ -189,8 +189,10 @@ spr->SetRotation_rad(-angle_rad); } - spr->SetAlpha(alpha); - spr->Update(); + if (animate) { + spr->SetAlpha(alpha); + spr->Update(); + } } void Member::Draw(const Point2i & _pos, Index: src/character/member.h =================================================================== --- src/character/member.h (revision 8401) +++ src/character/member.h (working copy) @@ -73,7 +73,7 @@ void ApplyMovement(const member_mvt & mvt, std::vector & skel_lst); void SetAngle(const Double & angle) { angle_rad = angle; }; - void RefreshSprite(LRDirection direction); + void RefreshSprite(LRDirection direction, bool animate=true); void SetPos(const Point2d & _pos) { pos = _pos; }; Index: src/character/body.cpp =================================================================== --- src/character/body.cpp (revision 8401) +++ src/character/body.cpp (working copy) @@ -539,12 +539,13 @@ { Member* member; int layersCount = (int)current_clothe->GetLayers().size(); + bool visible = owner->MustBeDrawn(); for (int layer=0; layer < layersCount; layer++) { member = current_clothe->GetLayers()[layer]; if ("weapon" != member->GetName()) { - member->RefreshSprite(direction); + member->RefreshSprite(direction, visible); } } }