File indexing completed on 2024-12-01 06:51:11

0001 /*
0002     This file is part of Killbots.
0003 
0004     SPDX-FileCopyrightText: 2006-2009 Parker Coates <coates@kde.org>
0005 
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 #ifndef KILLBOTS_SPRITE_H
0010 #define KILLBOTS_SPRITE_H
0011 
0012 #include <KGameRenderedItem>
0013 
0014 namespace Killbots
0015 {
0016 enum SpriteType {
0017     NoSprite,
0018     Junkheap,
0019     Hero,
0020     Robot,
0021     Fastbot
0022 };
0023 
0024 class Sprite : public KGameRenderedItem
0025 {
0026 public: // types
0027     enum {
0028         Type = UserType + 1
0029     };
0030 
0031 public: // functions
0032     explicit Sprite();
0033     virtual ~Sprite() override;
0034 
0035     SpriteType spriteType() const;
0036     void setSpriteType(SpriteType type);
0037 
0038     void enqueueGridPos(QPoint position);
0039     QPoint currentGridPos() const;
0040     QPoint nextGridPos() const;
0041     QPoint gridPos() const;
0042     void advanceGridPosQueue();
0043 
0044     int type() const override;
0045 
0046 protected:
0047     void receivePixmap(const QPixmap &pixmap) override;
0048 
0049 private: // data members
0050     SpriteType m_type;
0051     QList<QPoint> m_gridPositions;
0052 };
0053 }
0054 
0055 #endif