From a732939da33ce9b5ae71cc0f37587a28ec1f0eaf Mon Sep 17 00:00:00 2001 From: Eugenio Favalli Date: Sat, 13 Jan 2007 11:25:11 +0000 Subject: Fixed mouse coordinates display in debug window --- ChangeLog | 7 +- src/gui/debugwindow.cpp | 12 +- src/gui/viewport.h | 302 +++++++++++++++++++++++++----------------------- 3 files changed, 170 insertions(+), 151 deletions(-) diff --git a/ChangeLog b/ChangeLog index 22ca8221..bcefbe25 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,9 @@ -2007-01-12 Bjørn Lindeijer +2006-01-13 Eugenio Favalli + + * src/gui/debugwindow.cpp, src/gui/viewport.h: Fixed mouse coordinates + display in debug window. + +2007-01-12 Bjørn Lindeijer * src/gui/viewport.cpp: Fixed initialization of mPlayerFollowMouse, the lack of which sometimes caused the player to start walking when diff --git a/src/gui/debugwindow.cpp b/src/gui/debugwindow.cpp index c44ac1d1..24bd779c 100644 --- a/src/gui/debugwindow.cpp +++ b/src/gui/debugwindow.cpp @@ -28,6 +28,8 @@ #include #include "button.h" +#include "gui.h" +#include "viewport.h" #include "../game.h" #include "../engine.h" @@ -72,15 +74,15 @@ DebugWindow::logic() // Get the current mouse position int mouseX, mouseY; SDL_GetMouseState(&mouseX, &mouseY); - //int mouseTileX = mouseX / 32 + camera_x; - //int mouseTileY = mouseY / 32 + camera_y; + int mouseTileX = mouseX / 32 + viewport->getCameraX(); + int mouseTileY = mouseY / 32 + viewport->getCameraY(); mFPSLabel->setCaption("[" + toString(fps) + " FPS"); mFPSLabel->adjustSize(); - //mTileMouseLabel->setCaption("[Mouse: " + - // toString(mouseTileX) + ", " + toString(mouseTileY) + "]"); - //mTileMouseLabel->adjustSize(); + mTileMouseLabel->setCaption("[Mouse: " + + toString(mouseTileX) + ", " + toString(mouseTileY) + "]"); + mTileMouseLabel->adjustSize(); Map *currentMap = engine->getCurrentMap(); if (currentMap != NULL) diff --git a/src/gui/viewport.h b/src/gui/viewport.h index df78b1da..6bf25be4 100644 --- a/src/gui/viewport.h +++ b/src/gui/viewport.h @@ -1,145 +1,157 @@ -/* - * The Mana World - * Copyright 2004 The Mana World Development Team - * - * This file is part of The Mana World. - * - * The Mana World is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * any later version. - * - * The Mana World is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with The Mana World; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * $Id$ - */ - -#ifndef _TMW_VIEWPORT_H_ -#define _TMW_VIEWPORT_H_ - -#include - -#include "windowcontainer.h" - -#include "../configlistener.h" - -class Map; -class Being; -class FloorItem; -class Item; -class PopupMenu; - -/** - * The viewport on the map. Displays the current map and handles mouse input - * and the popup menu. - * - * TODO: This class is planned to be extended to allow floating widgets on top - * of it such as NPC messages, which are positioned using map pixel - * coordinates. - */ -class Viewport : public WindowContainer, public gcn::MouseListener, - public ConfigListener -{ - public: - /** - * Constructor. - */ - Viewport(); - - /** - * Destructor. - */ - ~Viewport(); - - /** - * Sets the map displayed by the viewport. - */ - void - setMap(Map *map); - - /** - * Draws the viewport. - */ - void - draw(gcn::Graphics *graphics); - - /** - * Implements player to keep following mouse. - */ - void - logic(); - - /** - * Toggles whether the path debug graphics are shown - */ - void toggleDebugPath() { mShowDebugPath = !mShowDebugPath; } - - /** - * Handles mouse press on map. - */ - void - mousePress(int mx, int my, int button); - - /** - * Handles mouse move on map - */ - void - mouseMotion(int mx, int my); - - /** - * Handles mouse button release on map. - */ - void - mouseRelease(int mx, int my, int button); - - /** - * Shows a popup for an item. - * TODO Find some way to get rid of Item here - */ - void showPopup(int x, int y, Item *item); - - /** - * A relevant config option changed. - */ - void - optionChanged(const std::string &name); - - private: - /** - * Shows a popup for a floor item. - * TODO Find some way to get rid of FloorItem here - */ - void showPopup(int x, int y, FloorItem *floorItem); - - /** - * Shows a popup for a being. - * TODO Find some way to get rid of Being here - */ - void showPopup(int x, int y, Being *being); - - - Map *mMap; /**< The current map. */ - - int mScrollRadius; - int mScrollLaziness; - float mViewX; /**< Current viewpoint in pixels. */ - float mViewY; /**< Current viewpoint in pixels. */ - int mCameraX; - int mCameraY; - bool mShowDebugPath; /**< Show a path from player to pointer. */ - - bool mPlayerFollowMouse; - int mWalkTime; - - PopupMenu *mPopupMenu; /**< Popup menu. */ - bool mPopupActive; -}; - -#endif +/* + * The Mana World + * Copyright 2004 The Mana World Development Team + * + * This file is part of The Mana World. + * + * The Mana World is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * The Mana World is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with The Mana World; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * $Id$ + */ + +#ifndef _TMW_VIEWPORT_H_ +#define _TMW_VIEWPORT_H_ + +#include + +#include "windowcontainer.h" + +#include "../configlistener.h" + +class Map; +class Being; +class FloorItem; +class Item; +class PopupMenu; + +/** + * The viewport on the map. Displays the current map and handles mouse input + * and the popup menu. + * + * TODO: This class is planned to be extended to allow floating widgets on top + * of it such as NPC messages, which are positioned using map pixel + * coordinates. + */ +class Viewport : public WindowContainer, public gcn::MouseListener, + public ConfigListener +{ + public: + /** + * Constructor. + */ + Viewport(); + + /** + * Destructor. + */ + ~Viewport(); + + /** + * Sets the map displayed by the viewport. + */ + void + setMap(Map *map); + + /** + * Draws the viewport. + */ + void + draw(gcn::Graphics *graphics); + + /** + * Implements player to keep following mouse. + */ + void + logic(); + + /** + * Toggles whether the path debug graphics are shown + */ + void toggleDebugPath() { mShowDebugPath = !mShowDebugPath; } + + /** + * Handles mouse press on map. + */ + void + mousePress(int mx, int my, int button); + + /** + * Handles mouse move on map + */ + void + mouseMotion(int mx, int my); + + /** + * Handles mouse button release on map. + */ + void + mouseRelease(int mx, int my, int button); + + /** + * Shows a popup for an item. + * TODO Find some way to get rid of Item here + */ + void showPopup(int x, int y, Item *item); + + /** + * A relevant config option changed. + */ + void + optionChanged(const std::string &name); + + /** + * Returns camera x offset in tiles. + */ + int + getCameraX() { return mCameraX; } + + /** + * Returns camera y offset in tiles. + */ + int + getCameraY() { return mCameraY; } + + private: + /** + * Shows a popup for a floor item. + * TODO Find some way to get rid of FloorItem here + */ + void showPopup(int x, int y, FloorItem *floorItem); + + /** + * Shows a popup for a being. + * TODO Find some way to get rid of Being here + */ + void showPopup(int x, int y, Being *being); + + + Map *mMap; /**< The current map. */ + + int mScrollRadius; + int mScrollLaziness; + float mViewX; /**< Current viewpoint in pixels. */ + float mViewY; /**< Current viewpoint in pixels. */ + int mCameraX; /**< Current viewpoint in tiles. */ + int mCameraY; /**< Current viewpoint in tiles. */ + bool mShowDebugPath; /**< Show a path from player to pointer. */ + + bool mPlayerFollowMouse; + int mWalkTime; + + PopupMenu *mPopupMenu; /**< Popup menu. */ + bool mPopupActive; +}; + +#endif -- cgit v1.2.3-70-g09d2