diff options
-rw-r--r-- | src/gui/debugwindow.cpp | 21 | ||||
-rw-r--r-- | src/gui/viewport.cpp | 22 | ||||
-rw-r--r-- | src/map.h | 7 |
3 files changed, 46 insertions, 4 deletions
diff --git a/src/gui/debugwindow.cpp b/src/gui/debugwindow.cpp index 1eedd638..f3557a09 100644 --- a/src/gui/debugwindow.cpp +++ b/src/gui/debugwindow.cpp @@ -137,6 +137,7 @@ public: mBeingPosition = new CheckBox(_("Being positions")); mBeingPath = new CheckBox(_("Being path")); mMousePath = new CheckBox(_("Mouse path")); + mBeingIds = new CheckBox(_("Being Ids")); Label *specialsLabel = new Label(_("Specials:")); mSpecialNormal = new RadioButton(_("Normal"), "mapdebug"); @@ -154,6 +155,7 @@ public: place(0, 4, mBeingPosition, 1); place(0, 5, mBeingPath, 1); place(0, 6, mMousePath, 1); + place(0, 7, mBeingIds, 1); place(1, 0, specialsLabel, 1); place(1, 1, mSpecialNormal, 1); place(1, 2, mSpecial1, 1); @@ -170,12 +172,28 @@ public: mBeingPosition->addActionListener(this); mBeingPath->addActionListener(this); mMousePath->addActionListener(this); + mBeingIds->addActionListener(this); mSpecialNormal->addActionListener(this); mSpecial1->addActionListener(this); mSpecial2->addActionListener(this); mSpecial3->addActionListener(this); } + ~DebugSwitches() + { + delete mGrid; + delete mCollisionTiles; + delete mBeingCollisionRadius; + delete mBeingPosition; + delete mBeingPath; + delete mMousePath; + delete mBeingIds; + delete mSpecialNormal; + delete mSpecial1; + delete mSpecial2; + delete mSpecial3; + } + void action(const gcn::ActionEvent &event) { int flags = 0; @@ -192,6 +210,8 @@ public: flags |= Map::DEBUG_BEING_PATH; if (mMousePath->isSelected()) flags |= Map::DEBUG_MOUSE_PATH; + if (mBeingIds->isSelected()) + flags |= Map::DEBUG_BEING_IDS; if (mSpecial1->isSelected()) flags |= Map::DEBUG_SPECIAL1; if (mSpecial2->isSelected()) @@ -209,6 +229,7 @@ private: CheckBox *mBeingPosition; CheckBox *mBeingPath; CheckBox *mMousePath; + CheckBox *mBeingIds; RadioButton *mSpecialNormal; RadioButton *mSpecial1; RadioButton *mSpecial2; diff --git a/src/gui/viewport.cpp b/src/gui/viewport.cpp index e93c285d..0f737fb0 100644 --- a/src/gui/viewport.cpp +++ b/src/gui/viewport.cpp @@ -249,6 +249,26 @@ void Viewport::draw(gcn::Graphics *gcnGraphics) b->drawSpeech((int) mPixelViewX, (int) mPixelViewY); } + if (mDebugFlags & Map::DEBUG_BEING_IDS) + { + graphics->setColor(gcn::Color(255, 0, 255, 255)); + ActorSpritesConstIterator it, it_end; + const ActorSprites &actors = actorSpriteManager->getAll(); + for (it = actors.begin(), it_end = actors.end(); it != it_end; ++it) + { + Being *being = dynamic_cast<Being*>(*it); + if (!being) + continue; + + const Vector &beingPos = being->getPosition(); + std::string idString = toString(being->getId()); + graphics->drawText(idString, + beingPos.x - mPixelViewX, + beingPos.y - mPixelViewY, + gcn::Graphics::CENTER); + } + } + // Draw contained widgets WindowContainer::draw(gcnGraphics); } @@ -368,7 +388,7 @@ void Viewport::_drawDebugPath(Graphics *graphics) // Draw the path debug information for every beings. ActorSpritesConstIterator it, it_end; const ActorSprites &actors = actorSpriteManager->getAll(); - for (it = actors.begin(), it_end = actors.end() ; it != it_end; it++) + for (it = actors.begin(), it_end = actors.end(); it != it_end; it++) { Being *being = dynamic_cast<Being*>(*it); if (!being) @@ -170,9 +170,10 @@ class Map : public Properties DEBUG_BEING_POSITION = 0x8, DEBUG_BEING_PATH = 0x10, DEBUG_MOUSE_PATH = 0x20, - DEBUG_SPECIAL1 = 0x40, - DEBUG_SPECIAL2 = 0x80, - DEBUG_SPECIAL3 = 0x100 + DEBUG_BEING_IDS = 0x40, + DEBUG_SPECIAL1 = 0x80, + DEBUG_SPECIAL2 = 0x100, + DEBUG_SPECIAL3 = 0x200 }; /** |