From a246c08cef5e4d598fc07a681eb971bfbcf01519 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Fri, 7 Oct 2005 00:12:32 +0000 Subject: Modified finding NPC as by timonator's suggestion in order to allow NPCs to be clicked on their heads too. Also made start to tile engine improvement by adding the Sprite class that is now used by the floor items for being displayed on the map. Finally added documentation to Item class and splitted out Properties class from Map. --- src/sprite.h | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/sprite.h (limited to 'src/sprite.h') diff --git a/src/sprite.h b/src/sprite.h new file mode 100644 index 00000000..97851138 --- /dev/null +++ b/src/sprite.h @@ -0,0 +1,76 @@ +/* + * 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_SPRITE_H_ +#define _TMW_SPRITE_H_ + +#include "graphics.h" + +/** + * A sprite is some visible object on a map. + */ +class Sprite +{ + public: + /** + * Constructor. + */ + Sprite(int x = 0, int y = 0, Image *image = NULL): + mX(x), + mY(y), + mImage(image) + { + } + + /** + * Draws the sprite to the given graphics context. + * + * Note: this function could be simplified if the graphics context + * would support setting a translation offset. It already does this + * partly with the clipping rectangle support. + */ + void + draw(Graphics *graphics, int offsetX, int offsetY) + { + graphics->drawImage(mImage, mX + offsetX, mY + offsetY); + } + + /** + * Returns the X coordinate of the sprite. + */ + int + getY() const { return mY; } + + /** + * Returns the Y coordinate of the sprite. + */ + int + getX() const { return mX; } + + private: + int mX; /**< X coordinate in pixels. */ + int mY; /**< Y coordinate in pixels. */ + Image *mImage; /**< The image currently representing this sprite. */ +}; + +#endif -- cgit v1.2.3-70-g09d2