rendered paste bodyIndex: 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<class c_junction *> & 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);
}
}
}