00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00043
00044 #if !defined __cplusplus
00045 #error C++ compiler required
00046 #endif
00047
00048
00049 #if !defined SIDEDEFS_H
00050 #define SIDEDEFS_H
00051
00052
00053 #include <vector>
00054
00055
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