summaryrefslogtreecommitdiff
path: root/le/le_file.hpp
diff options
context:
space:
mode:
authorDennis Brentjes <d.brentjes@gmail.com>2016-06-19 22:30:07 +0200
committerDennis Brentjes <d.brentjes@gmail.com>2016-06-19 22:30:07 +0200
commitdd8f1658c47db665481c725b9469408cf17e8c2e (patch)
tree185d0354c57f717068e348b322482dd4f826b77d /le/le_file.hpp
parentde95ca22ec87cc8b79ceb7beba475301461713a6 (diff)
downloadopenwar-dd8f1658c47db665481c725b9469408cf17e8c2e.tar.gz
openwar-dd8f1658c47db665481c725b9469408cf17e8c2e.tar.bz2
openwar-dd8f1658c47db665481c725b9469408cf17e8c2e.zip
implements a LE file parser and bare outputter.
Diffstat (limited to 'le/le_file.hpp')
-rw-r--r--le/le_file.hpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/le/le_file.hpp b/le/le_file.hpp
new file mode 100644
index 0000000..010c49b
--- /dev/null
+++ b/le/le_file.hpp
@@ -0,0 +1,33 @@
+#pragma once
+
+#include "binparse.hpp"
+#include "mz_header.hpp"
+#include "le_header.hpp"
+
+#include <cstdint>
+#include <cstddef>
+#include <memory>
+#include <array>
+#include <vector>
+
+namespace le {
+
+using namespace binparse;
+
+struct LEFile
+{
+ mz::MZHeader mz_header;
+ std::array<uint8_t, 8> unused_1;
+ Value16 OEM_id;
+ std::array<uint8_t, 22> OEM_info;
+ Offset32 le_offset;
+ std::vector<uint8_t> dos_exe;
+ LEHeader le_header;
+ std::vector<uint8_t> le_exe;
+};
+
+LEFile parse_file(std::istream& is);
+
+std::ostream& operator<<(std::ostream& os, LEFile const& file);
+
+}