diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-08-31 21:54:52 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-08-31 21:54:52 +0300 |
commit | 5919cdc663d5f60a8c5cc7e50ad0c43a18cf9829 (patch) | |
tree | 8c5be5f1f93551b676660e76b4d639ea2501e972 /src/particlecontainer.h | |
parent | 8a999b66fd697404c6640778a6dd1ce0e747334a (diff) | |
download | plus-5919cdc663d5f60a8c5cc7e50ad0c43a18cf9829.tar.gz plus-5919cdc663d5f60a8c5cc7e50ad0c43a18cf9829.tar.bz2 plus-5919cdc663d5f60a8c5cc7e50ad0c43a18cf9829.tar.xz plus-5919cdc663d5f60a8c5cc7e50ad0c43a18cf9829.zip |
move particles into particle dir.
Diffstat (limited to 'src/particlecontainer.h')
-rw-r--r-- | src/particlecontainer.h | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/src/particlecontainer.h b/src/particlecontainer.h deleted file mode 100644 index c78c0dbb9..000000000 --- a/src/particlecontainer.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - * The ManaPlus Client - * Copyright (C) 2008-2009 The Mana World Development Team - * Copyright (C) 2009-2010 The Mana Developers - * Copyright (C) 2011-2013 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 PARTICLECONTAINER_H -#define PARTICLECONTAINER_H - -#include <list> -#include <vector> - -#include "localconsts.h" - -class Particle; - -/** - * Set of particle effects. May be stacked with other ParticleContainers. All - * operations herein affect such stacked containers, unless the operations end - * in `Locally'. - */ -class ParticleContainer -{ -public: - /** - * Constructs a new particle container and assumes responsibility for - * its parent (for all operations defined herein, except when ending in `Locally') - * - * delParent means that the destructor should also free the parent. - */ - explicit ParticleContainer(ParticleContainer *const parent = nullptr, - const bool delParent = true); - - A_DELETE_COPY(ParticleContainer) - - virtual ~ParticleContainer(); - - /** - * Kills and removes all particle effects - */ - void clear(); - - /** - * Kills and removes all particle effects (only in this container) - */ - virtual void clearLocally() - { } - - /** - * Sets the positions of all elements - */ - virtual void moveTo(const float x, const float y); - -protected: - ParticleContainer *mNext; /**< Contained container, if any */ - bool mDelParent; /**< Delete mNext in destructor */ -}; - -/** - * Linked list of particle effects. - */ -class ParticleList final : public ParticleContainer -{ -public: - explicit ParticleList(ParticleContainer *const parent = nullptr, - const bool delParent = true); - - A_DELETE_COPY(ParticleList) - - virtual ~ParticleList(); - - /** - * Takes control of and adds a particle - */ - void addLocally(Particle *const particle); - - /** - * `kills' and removes a particle - */ - void removeLocally(const Particle *const particle); - - virtual void clearLocally() override; - - virtual void moveTo(const float x, const float y) override; - -protected: - std::list<Particle *> mElements; /**< Contained particle effects */ -}; - -/** - * Particle container with indexing facilities - */ -class ParticleVector final : public ParticleContainer -{ -public: - explicit ParticleVector(ParticleContainer *const parent = nullptr, - const bool delParent = true); - - A_DELETE_COPY(ParticleVector) - - virtual ~ParticleVector(); - - /** - * Sets a particle at a specified index. Kills the previous particle - * there, if needed. - */ - virtual void setLocally(const int index, Particle *const particle); - - /** - * Removes a particle at a specified index - */ - virtual void delLocally(const int index); - - virtual void clearLocally() override; - - virtual void moveTo(const float x, const float y) override; - -protected: - std::vector<Particle *> mIndexedElements; -}; - -#endif // PARTICLECONTAINER_H |