/* * Copyright 2007-2008 Ben Boeckel * * 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 3 of the License, or * (at your option) 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 . */ #ifndef __POKEMOD_MAPEFFECT__ #define __POKEMOD_MAPEFFECT__ // Pokemod includes #include "Object.h" // General includes #include "../general/Exception.h" #include "../general/Flag.h" #include "../general/Point.h" // Qt includes #include class MapEffect : public Object { public: enum Effect { E_Item = 0, E_PC = 1, E_StrengthBlock = 2, E_Button = 3, E_SlotMachine = 4, E_CardFlipGame = 5, E_End = 6 }; static const QStringList EffectStr; enum PC { PC_Item = 0, PC_Pokemon = 1, PC_Pokedex = 2, PC_HallOfFame = 3, PC_All = 4, PC_End = 5, }; static const QStringList PCTypeStr; MapEffect(const MapEffect& effect); MapEffect(const Object* parent, const int id); MapEffect(const MapEffect& effect, const Object* parent, const int id); MapEffect(const QDomElement& xml, const Object* parent, const int id = INT_MAX); void load(const QDomElement& xml, int id = INT_MAX); QDomElement save() const; void setName(const QString& name); void setCoordinate(const Point& coordinate) throw(BoundsException); void setExistFlag(const Flag& existFlag); void setSkin(const QPixmap& skin) throw(SizeException); void setEffect(const int effect) throw(BoundsException); void setValue1(const int value1) throw(UnusedException); void setValue2(const int value2) throw(Exception); void setDirection(const int direction) throw(BoundsException); void setIsGhost(const bool isGhost); void setCanMove(const bool canMove); void setDialog(const int dialog) throw(BoundsException); QString name() const; Point coordinate() const; Flag existFlag() const; QPixmap skin() const; int effect() const; int value1() const; int value2() const; int direction() const; bool isGhost() const; bool canMove() const; int dialog() const; MapEffect& operator=(const MapEffect& rhs); private: bool validate() const; QString m_name; Point m_coordinate; Flag m_existFlag; QPixmap m_skin; int m_effect; int m_value1; int m_value2; int m_direction; bool m_isGhost; bool m_canMove; int m_dialog; }; #endif