1 /* 2 * Copyright 2010-2014 OpenXcom Developers. 3 * 4 * This file is part of OpenXcom. 5 * 6 * OpenXcom is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * OpenXcom is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with OpenXcom. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 #ifndef OPENXCOM_EXPLOSION_H 20 #define OPENXCOM_EXPLOSION_H 21 22 #include "Position.h" 23 24 namespace OpenXcom 25 { 26 27 /** 28 * A class that represents an explosion animation. Map is the owner of an instance of this class during its short life. 29 * It represents both a bullet hit, as a real explosion animation. 30 */ 31 class Explosion 32 { 33 private: 34 Position _position; 35 int _currentFrame, _startFrame; 36 bool _big, _hit; 37 public: 38 /// Creates a new Explosion. 39 Explosion(Position _position, int startFrame, bool big, bool hit = false); 40 /// Cleans up the Explosion. 41 ~Explosion(); 42 /// Moves the Explosion on one frame. 43 bool animate(); 44 /// Gets the current position in voxel space. 45 Position getPosition() const; 46 /// Gets the current frame. 47 int getCurrentFrame() const; 48 /// Checks if this is a real explosion. 49 bool isBig() const; 50 /// Checks if this is a melee or psi hit. 51 bool isHit() const; 52 }; 53 54 } 55 56 #endif 57