Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef LUMP_H
- #define LUMP_H
- #include <fstream>
- #include <memory>
- #include <string>
- class Lump
- {
- private:
- std::fstream* m_wad;
- int m_offset;
- int m_size;
- std::string m_name;
- public:
- Lump (std::fstream& wad, int offset) : m_wad (&wad)
- {
- char name[8];
- int current = m_wad->tellg ();
- m_wad->seekg (offset);
- m_wad->read ((char*) &m_offset, 4);
- m_wad->read ((char*) &m_size, 4);
- m_wad->read ((char*) &name, 8);
- m_wad->seekg (current);
- m_name = std::string (name, 8).c_str ();
- }
- std::unique_ptr<char> data () const
- {
- std::unique_ptr<char> result (new char[m_size]);
- int current = m_wad->tellg ();
- m_wad->seekg (m_offset);
- m_wad->read ((char*) result.get (), m_size);
- m_wad->seekg (current);
- return result;
- }
- const std::string& name () const
- {
- return m_name;
- }
- };
- #endif // LUMP_H
Advertisement
Add Comment
Please, Sign In to add comment