Fixed #12 #28 #51 issues

This commit is contained in:
Henrique Santiago
2012-08-17 18:36:53 -03:00
parent a91b7ed6be
commit 4d2bd54f6b
17 changed files with 108 additions and 38 deletions

View File

@@ -1198,7 +1198,6 @@ UIWidgetPtr UIWidget::backwardsGetWidgetById(const std::string& id)
return widget;
}
bool UIWidget::setState(Fw::WidgetState state, bool on)
{
if(state == Fw::InvalidState)

View File

@@ -156,7 +156,7 @@ void Creature::internalDrawOutfit(Point dest, float scaleFactor, bool animateWal
if(m_outfit.getCategory() == ThingCategoryEffect)
animationPhase = std::min(animationPhase+1, getAnimationPhases());
rawGetThingType()->draw(dest, scaleFactor, 0, 0, 0, 0, animationPhase);
rawGetThingType()->draw(dest - (getDisplacement() * scaleFactor), scaleFactor, 0, 0, 0, 0, animationPhase);
}
}
@@ -632,6 +632,30 @@ int Creature::getStepDuration()
return interval;
}
Point Creature::getDisplacement()
{
Point displacement = Thing::getDisplacement();
if(m_outfit.getCategory() == ThingCategoryEffect)
displacement = Point(8, 8);
return displacement;
}
int Creature::getDisplacementX()
{
int displacementX = Thing::getDisplacementX();
if(m_outfit.getCategory() == ThingCategoryEffect)
displacementX = 8;
return displacementX;
}
int Creature::getDisplacementY()
{
int displacementY = Thing::getDisplacementY();
if(m_outfit.getCategory() == ThingCategoryEffect)
displacementY = 8;
return displacementY;
}
const ThingTypePtr& Creature::getThingType()
{
return g_things.getThingType(m_outfit.getId(), m_outfit.getCategory());

View File

@@ -84,6 +84,9 @@ public:
Point getDrawOffset();
int getStepDuration();
Point getWalkOffset() { return m_walkOffset; }
virtual Point getDisplacement();
virtual int getDisplacementX();
virtual int getDisplacementY();
void updateShield();

View File

@@ -65,9 +65,9 @@ public:
Size getSize() { return rawGetThingType()->getSize(); }
int getWidth() { return rawGetThingType()->getWidth(); }
int getHeight() { return rawGetThingType()->getHeight(); }
Point getDisplacement() { return rawGetThingType()->getDisplacement(); }
int getDisplacementX() { return rawGetThingType()->getDisplacementX(); }
int getDisplacementY() { return rawGetThingType()->getDisplacementY(); }
virtual Point getDisplacement() { return rawGetThingType()->getDisplacement(); }
virtual int getDisplacementX() { return rawGetThingType()->getDisplacementX(); }
virtual int getDisplacementY() { return rawGetThingType()->getDisplacementY(); }
int getExactSize() { return rawGetThingType()->getExactSize(); }
int getLayers() { return rawGetThingType()->getLayers(); }
int getNumPatternX() { return rawGetThingType()->getNumPatternX(); }