From c4269ec3066959725f0f1d7670a14eadc8831a76 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Sun, 20 Dec 2015 18:50:06 +0300
Subject: Move imagesprite into sprite directory.

---
 src/resources/sprite/imagesprite.cpp | 60 ++++++++++++++++++++++++++
 src/resources/sprite/imagesprite.h   | 82 ++++++++++++++++++++++++++++++++++++
 2 files changed, 142 insertions(+)
 create mode 100644 src/resources/sprite/imagesprite.cpp
 create mode 100644 src/resources/sprite/imagesprite.h

(limited to 'src/resources')

diff --git a/src/resources/sprite/imagesprite.cpp b/src/resources/sprite/imagesprite.cpp
new file mode 100644
index 000000000..9b14e3126
--- /dev/null
+++ b/src/resources/sprite/imagesprite.cpp
@@ -0,0 +1,60 @@
+/*
+ *  The ManaPlus Client
+ *  Copyright (C) 2010  The Mana Developers
+ *  Copyright (C) 2011-2015  The ManaPlus Developers
+ *
+ *  This file is part of The ManaPlus Client.
+ *
+ *  This program 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.
+ *
+ *  This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "resources/sprite/imagesprite.h"
+
+#include "render/graphics.h"
+
+#include "debug.h"
+
+ImageSprite::ImageSprite(Image *const image) :
+    mImage(image)
+{
+    if (mImage)
+    {
+        mAlpha = mImage->getAlpha();
+        mImage->incRef();
+    }
+    else
+    {
+        mAlpha = 1;
+    }
+}
+
+ImageSprite::~ImageSprite()
+{
+    if (mImage)
+    {
+        mImage->decRef();
+        mImage = nullptr;
+    }
+}
+
+void ImageSprite::draw(Graphics *const graphics,
+                       const int posX, const int posY) const
+{
+    FUNC_BLOCK("ImageSprite::draw", 1)
+    if (!mImage)
+        return;
+
+    mImage->setAlpha(mAlpha);
+    graphics->drawImage(mImage, posX, posY);
+}
diff --git a/src/resources/sprite/imagesprite.h b/src/resources/sprite/imagesprite.h
new file mode 100644
index 000000000..89a8bdbe1
--- /dev/null
+++ b/src/resources/sprite/imagesprite.h
@@ -0,0 +1,82 @@
+/*
+ *  The ManaPlus Client
+ *  Copyright (C) 2010  The Mana Developers
+ *  Copyright (C) 2011-2015  The ManaPlus Developers
+ *
+ *  This file is part of The ManaPlus Client.
+ *
+ *  This program 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.
+ *
+ *  This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef RESOURCES_SPRITE_IMAGESPRITE_H
+#define RESOURCES_SPRITE_IMAGESPRITE_H
+
+#include "resources/sprite/sprite.h"
+
+#include "resources/image.h"
+
+class Graphics;
+
+class ImageSprite final : public Sprite
+{
+    public:
+        explicit ImageSprite(Image *const image);
+
+        A_DELETE_COPY(ImageSprite)
+
+        ~ImageSprite();
+
+        bool reset() override final
+        { return false; }
+
+        bool play(const std::string &action A_UNUSED) override final
+        { return false; }
+
+        bool update(const int time A_UNUSED) override final
+        { return false; }
+
+        void draw(Graphics *const graphics,
+                  const int posX, const int posY)
+                  const override final A_NONNULL(2);
+
+        int getWidth() const override final A_WARN_UNUSED
+        { return mImage ? mImage->getWidth() : 0; }
+
+        int getHeight() const override final A_WARN_UNUSED
+        { return mImage ? mImage->getHeight() : 0; }
+
+        const Image* getImage() const override final A_WARN_UNUSED
+        { return mImage; }
+
+        bool setSpriteDirection(const SpriteDirection::Type
+                                direction A_UNUSED) override final
+        { return false; }
+
+        int getNumberOfLayers() const A_WARN_UNUSED
+        { return 1; }
+
+        unsigned int getCurrentFrame() const override final A_WARN_UNUSED
+        { return 0; }
+
+        unsigned int getFrameCount() const override final A_WARN_UNUSED
+        { return 1; }
+
+        bool updateNumber(const unsigned num A_UNUSED) override final
+        { return false; }
+
+    private:
+        Image *mImage;
+};
+
+#endif  // RESOURCES_SPRITE_IMAGESPRITE_H
-- 
cgit v1.2.3-70-g09d2