00001 // libdoomwad: manipulates Doom wad files. 00002 // Copyright (C) 2005 John Gaughan 00003 // 00004 // This library is free software; you can redistribute it and/or 00005 // modify it under the terms of the GNU Lesser General Public 00006 // License as published by the Free Software Foundation; either 00007 // version 2.1 of the License, or (at your option) any later version. 00008 // 00009 // This library is distributed in the hope that it will be useful, 00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 // Lesser General Public License for more details. 00013 // 00014 // You should have received a copy of the GNU Lesser General Public 00015 // License along with this library; if not, write to the Free Software 00016 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00017 // 00018 // This library is distributed with the full text of the LGPL. Please see 00019 // the accompanying file named COPYING. 00020 // 00021 // You may contact the author at john@johngaughan.net 00022 00039 // C++ required. 00040 #if !defined __cplusplus 00041 #error C++ compiler required 00042 #endif 00043 00044 // Include guard 00045 #if !defined MAP_H 00046 #define MAP_H 00047 00048 // C++ headers 00049 // (none) 00050 00051 // Doom headers 00052 #include "global.hpp" 00053 #include "blockmap.hpp" 00054 #include "linedefs.hpp" 00055 #include "nodes.hpp" 00056 #include "reject.hpp" 00057 #include "sectors.hpp" 00058 #include "segs.hpp" 00059 #include "sidedefs.hpp" 00060 #include "ssectors.hpp" 00061 #include "things.hpp" 00062 #include "vertexes.hpp" 00063 #include "wad.hpp" 00064 00065 namespace Doomwad 00066 { 00067 00069 class HexenMap; 00070 00079 EXPORT class GLMap 00080 { 00081 public: 00082 00084 static const std::string GL_PREFIX; 00085 00087 GLVertexes vertexes; 00088 00090 GLSegs segs; 00091 00093 GLSsectors ssectors; 00094 00096 GLNodes nodes; 00097 }; 00098 00142 EXPORT class Map 00143 { 00144 public: 00145 00147 static const std::string DEFAULT_MAP_NAME; 00148 00150 GLMap gl; 00151 00153 std::string name; 00154 00156 bool glEnabled; 00157 00159 Things things; 00160 00162 Linedefs linedefs; 00163 00165 Sidedefs sidedefs; 00166 00168 Vertexes vertexes; 00169 00171 Segs segs; 00172 00174 Ssectors ssectors; 00175 00177 Nodes nodes; 00178 00180 Sectors sectors; 00181 00183 Reject reject; 00184 00186 Blockmap blockmap; 00187 00188 Map (const std::string& = DEFAULT_MAP_NAME, bool = false) throw (); 00189 Map (Wad::const_iterator) throw (); 00190 virtual ~Map (void) throw (); 00191 }; 00192 00232 EXPORT class HexenMap 00233 { 00234 public: 00235 00237 static const std::string DEFAULT_MAP_NAME; 00238 00240 std::string name; 00241 00243 bool glEnabled; 00244 00246 GLMap gl; 00247 00249 Things things; 00250 00252 Linedefs linedefs; 00253 00255 Sidedefs sidedefs; 00256 00258 Vertexes vertexes; 00259 00261 Segs segs; 00262 00264 Ssectors ssectors; 00265 00267 Nodes nodes; 00268 00270 Sectors sectors; 00271 00273 Reject reject; 00274 00276 Blockmap blockmap; 00277 00279 byte behavior; 00280 00281 HexenMap (const std::string& = DEFAULT_MAP_NAME, bool = false) throw (); 00282 HexenMap (Wad::const_iterator) throw (); 00283 virtual ~HexenMap (void) throw (); 00284 }; 00285 } 00286 #endif
1.4.0