1 /* ScummVM - Graphic Adventure Engine 2 * 3 * ScummVM is the legal property of its developers, whose names 4 * are too numerous to list here. Please refer to the COPYRIGHT 5 * file distributed with this source distribution. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 * 21 */ 22 23 #ifndef ULTIMA4_CORE_TYPES_H 24 #define ULTIMA4_CORE_TYPES_H 25 26 #include "ultima/ultima4/map/direction.h" 27 #include "common/scummsys.h" 28 29 namespace Ultima { 30 namespace Ultima4 { 31 32 class Tile; 33 34 typedef uint TileId; 35 typedef byte MapId; 36 37 enum TileSpeed { 38 FAST, 39 SLOW, 40 VSLOW, 41 VVSLOW 42 }; 43 44 enum TileEffect { 45 EFFECT_NONE, 46 EFFECT_FIRE, 47 EFFECT_SLEEP, 48 EFFECT_POISON, 49 EFFECT_POISONFIELD, 50 EFFECT_ELECTRICITY, 51 EFFECT_LAVA 52 }; 53 54 enum TileAnimationStyle { 55 ANIM_NONE, 56 ANIM_SCROLL, 57 ANIM_CAMPFIRE, 58 ANIM_CITYFLAG, 59 ANIM_CASTLEFLAG, 60 ANIM_SHIPFLAG, 61 ANIM_LCBFLAG, 62 ANIM_FRAMES 63 }; 64 65 /** 66 * An Uncopyable has no default copy constructor of operator=. A subclass may derive from 67 * Uncopyable at any level of visibility, even private, and subclasses will not have a default copy 68 * constructor or operator=. See also, boost::noncopyable Uncopyable (from the Boost project) and 69 * Item 6 from Scott Meyers Effective C++. 70 */ 71 class Uncopyable { 72 protected: Uncopyable()73 Uncopyable() {} ~Uncopyable()74 ~Uncopyable() {} 75 76 private: 77 Uncopyable(const Uncopyable &); 78 const Uncopyable &operator=(const Uncopyable &); 79 }; 80 81 } // End of namespace Ultima4 82 } // End of namespace Ultima 83 84 #endif 85