summaryrefslogtreecommitdiff
path: root/src/being/castingeffect.h
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-07-24 20:41:46 +0300
committerAndrei Karas <akaras@inbox.ru>2016-07-24 20:58:46 +0300
commit3cdb0d5516f5234dcebb118a26e405074de701f8 (patch)
treede5cd8f80bc1b762245a78e082676f630447d49b /src/being/castingeffect.h
parentbeca7c9c25815339244c6f2542054d25c59089b5 (diff)
downloadmanaverse-3cdb0d5516f5234dcebb118a26e405074de701f8.tar.gz
manaverse-3cdb0d5516f5234dcebb118a26e405074de701f8.tar.bz2
manaverse-3cdb0d5516f5234dcebb118a26e405074de701f8.tar.xz
manaverse-3cdb0d5516f5234dcebb118a26e405074de701f8.zip
Add castingeffect object for draw casting effect in specified position and sorting.
Now casting effect drawed on ground and not over players or mobs.
Diffstat (limited to 'src/being/castingeffect.h')
-rw-r--r--src/being/castingeffect.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/being/castingeffect.h b/src/being/castingeffect.h
new file mode 100644
index 000000000..c12305b47
--- /dev/null
+++ b/src/being/castingeffect.h
@@ -0,0 +1,81 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2011-2016 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 BEING_CASTINGEFFECT_H
+#define BEING_CASTINGEFFECT_H
+
+#include "being/actor.h"
+
+#include "enums/being/actortype.h"
+
+#include "enums/simpletypes/beingid.h"
+
+#include "localconsts.h"
+
+class AnimatedSprite;
+class Map;
+
+class CastingEffect final : public Actor
+{
+ public:
+ CastingEffect(const int skillId,
+ const int skillLevel,
+ const std::string &animation,
+ const int x,
+ const int y,
+ const int range);
+
+ A_DELETE_COPY(CastingEffect)
+
+ virtual ~CastingEffect();
+
+ virtual ActorTypeT getType() const noexcept2 A_WARN_UNUSED
+ { return ActorType::Unknown; }
+
+ void draw(Graphics *const graphics,
+ const int offsetX,
+ const int offsetY) const override final A_NONNULL(2);
+
+ virtual int getSortPixelY() const restrict2 override A_WARN_UNUSED
+ { return mPixelY - mYDiff; }
+
+ void update(const int time);
+
+ bool isTerminated() const;
+
+ float getAlpha() const override final A_WARN_UNUSED
+ { return 1.0f; }
+
+ void setAlpha(const float alpha A_UNUSED) override final
+ { }
+
+ protected:
+ AnimatedSprite *mSprite;
+ int mPixelX;
+ int mPixelY;
+ int mRectX;
+ int mRectY;
+ int mRectSize;
+ int mAnimationX;
+ int mAnimationY;
+ int mYDiff;
+};
+
+#endif // BEING_CASTINGEFFECT_H