summaryrefslogtreecommitdiff
path: root/le/le_file.cpp
diff options
context:
space:
mode:
authorDennis Brentjes <d.brentjes@gmail.com>2016-06-23 18:07:42 +0200
committerDennis Brentjes <d.brentjes@gmail.com>2016-06-23 18:07:42 +0200
commita7bcede17b4c10e172c7877fc2ce89862dc454af (patch)
treed89b8ff274d18d67d695c5f320a1d079e1bb26b6 /le/le_file.cpp
parent0f2d7c9ed9dfa3716840fc112bd53e5ec6b6315b (diff)
downloadopenwar-a7bcede17b4c10e172c7877fc2ce89862dc454af.tar.gz
openwar-a7bcede17b4c10e172c7877fc2ce89862dc454af.tar.bz2
openwar-a7bcede17b4c10e172c7877fc2ce89862dc454af.zip
adds alot more binary parsing.
Diffstat (limited to 'le/le_file.cpp')
-rw-r--r--le/le_file.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/le/le_file.cpp b/le/le_file.cpp
index 4a9f57e..b6aa54f 100644
--- a/le/le_file.cpp
+++ b/le/le_file.cpp
@@ -18,6 +18,9 @@ BOOST_FUSION_ADAPT_STRUCT(
(std::vector<uint8_t>, dos_exe)
(le::Header, le_header)
(le::ObjectTable, object_table)
+ (le::ObjectPageTable, object_page_table)
+ (le::ResidentNameTable, resident_name_table)
+ (le::EntryTable, entry_table)
)
namespace le {
@@ -39,6 +42,12 @@ File parse_file(std::istream& is) {
auto object_table = parse_object_table(is, le_offset + le_h.object_table_offset, le_h.nr_objects_in_module);
+ auto object_page_table = parse_object_page_table(is, le_offset + le_h.object_page_table_offset, le_h.module_nr_of_pages);
+
+ auto resident_name_table = parse_resident_name_table(is, le_offset + le_h.resident_name_table_offset);
+
+ auto entry_table = parse_entry_table(is, le_offset + le_h.entry_table_offset);
+
return {
mz_h,
unused,
@@ -48,6 +57,9 @@ File parse_file(std::istream& is) {
dos_exe,
le_h,
object_table,
+ object_page_table,
+ resident_name_table,
+ entry_table
};
}