diff options
author | Ben Boeckel <MathStuf@gmail.com> | 2009-03-19 19:52:51 -0400 |
---|---|---|
committer | Ben Boeckel <MathStuf@gmail.com> | 2009-03-19 19:52:51 -0400 |
commit | e5985d56f8ff4ed33a3c282661cc9bf084c76e96 (patch) | |
tree | d696f29be45318744f2f8d03c7f023d311a6dea9 /sigmodr | |
parent | 48a39876252c617fa67cd108f4c4ad76ebd05e7d (diff) | |
download | sigen-e5985d56f8ff4ed33a3c282661cc9bf084c76e96.tar.gz sigen-e5985d56f8ff4ed33a3c282661cc9bf084c76e96.tar.xz sigen-e5985d56f8ff4ed33a3c282661cc9bf084c76e96.zip |
Get the size of the trainer from the skin
Diffstat (limited to 'sigmodr')
-rw-r--r-- | sigmodr/widgets/TrainerItem.cpp | 15 | ||||
-rw-r--r-- | sigmodr/widgets/TrainerItem.h | 1 |
2 files changed, 14 insertions, 2 deletions
diff --git a/sigmodr/widgets/TrainerItem.cpp b/sigmodr/widgets/TrainerItem.cpp index 00e7bf1a..55f1ee19 100644 --- a/sigmodr/widgets/TrainerItem.cpp +++ b/sigmodr/widgets/TrainerItem.cpp @@ -19,7 +19,10 @@ #include "TrainerItem.h" // Sigmod includes +#include <sigmod/Game.h> #include <sigmod/MapTrainer.h> +#include <sigmod/Skin.h> +#include <sigmod/Trainer.h> // Qt includes #include <QtGui/QPainter> @@ -43,7 +46,7 @@ TrainerItem::TrainerItem(MapTrainer* trainer, QGraphicsScene* parent) : QRectF TrainerItem::boundingRect() const { - return QRect(m_trainer->position(), QSize(32, 32)); + return QRect(m_trainer->position(), m_size); } void TrainerItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) @@ -61,6 +64,14 @@ void TrainerItem::moveTo(const QPoint& point) void TrainerItem::trainerChanged() { + const Trainer* trainer = m_trainer->game()->trainerById(m_trainer->trainerClass()); + m_size = QSize(32, 32); + if (trainer) + { + const Skin* skin = m_trainer->game()->skinById(trainer->skin()); + if (skin) + m_size = skin->size(); + } setPos(m_trainer->position()); m_label->setText(m_trainer->name()); resetLabel(); @@ -69,6 +80,6 @@ void TrainerItem::trainerChanged() void TrainerItem::resetLabel() { - QSizeF size = m_label->boundingRect().size() / 2 - QSize(32, 32) / 2; + QSizeF size = m_label->boundingRect().size() / 2 - m_size / 2; m_label->setPos(-size.width(), -size.height()); } diff --git a/sigmodr/widgets/TrainerItem.h b/sigmodr/widgets/TrainerItem.h index d0fd3daf..f8c4cd6e 100644 --- a/sigmodr/widgets/TrainerItem.h +++ b/sigmodr/widgets/TrainerItem.h @@ -49,6 +49,7 @@ class SIGMODRWIDGETS_NO_EXPORT TrainerItem : public MapItem void resetLabel(); Sigmod::MapTrainer* m_trainer; + QSize m_size; }; } } |