Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

sidedefs.hpp

Go to the documentation of this file.
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 
00043 // C++ required.
00044 #if !defined __cplusplus
00045 #error C++ compiler required
00046 #endif
00047 
00048 // Include guard
00049 #if !defined SIDEDEFS_H
00050 #define SIDEDEFS_H
00051 
00052 // C++ headers
00053 #include <vector>
00054 
00055 // Doom headers
00056 #include "global.hpp"
00057 #include "lump.hpp"
00058 #include "wadentry.hpp"
00059 
00060 namespace Doomwad
00061 {
00062 
00075   EXPORT class Sidedef : public WadEntryElement
00076   {
00077     public:
00078 
00079     static const size_t      LENGTH;     
00080     static const std::string NO_TEXTURE; 
00081     static const uint16      NO_SECTOR;  
00082 
00083     int16 x_offset;     
00084     int16 y_offset;     
00085     std::string upper;  
00086     std::string lower;  
00087     std::string middle; 
00088     uint16 sector;      
00089 
00090     Sidedef (int16 = 0, int16 = 0, const std::string& = NO_TEXTURE, const std::string& = NO_TEXTURE, const std::string& = NO_TEXTURE, uint16 = NO_SECTOR) throw ();
00091     virtual ~Sidedef (void) throw ();
00092 
00093     virtual size_t getLength (void) const throw ();
00094     virtual bool write (Lump &lump, Lump::size_type i) const throw ();
00095     virtual bool read (const Lump &lump, Lump::size_type i) throw ();
00096     virtual std::string toString (void) const throw ();
00097   };
00098 
00104   EXPORT class Sidedefs : public WadEntry, public std::vector<Sidedef>
00105   {
00106     public:
00107 
00109     static const std::string NAME;
00110 
00111     Sidedefs (void) throw ();
00112     Sidedefs (const Lump&) throw ();
00113     virtual ~Sidedefs (void) throw ();
00114 
00115     virtual bool setFromLump (const Lump &lump) throw ();
00116     virtual Lump toLump (void) const throw ();
00117     virtual std::string toString (void) const throw ();
00118   };
00119 }
00120 #endif

Generated on Fri Jun 10 19:38:51 2005 for libdoomwad by  doxygen 1.4.0