summaryrefslogtreecommitdiff
path: root/le/le_entry_table.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'le/le_entry_table.hpp')
-rw-r--r--le/le_entry_table.hpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/le/le_entry_table.hpp b/le/le_entry_table.hpp
index f31f542..ad2bbe5 100644
--- a/le/le_entry_table.hpp
+++ b/le/le_entry_table.hpp
@@ -1,15 +1,32 @@
#pragma once
-#include "le_entry_table_entry.hpp"
+#include "types.hpp"
+
+#include <boost/variant.hpp>
#include <map>
#include <iostream>
+#include <vector>
namespace le {
+using namespace binparse;
+
struct EntryTable
{
- std::map<uint32_t, EntryTableEntry> entries;
+ struct Entry {
+ struct EntryPoint {
+ Value8 flags;
+ boost::variant<Offset16, Offset32> entry;
+ };
+
+ Value8 nr_entries;
+ Value8 flags;
+ Value16 object_index;
+ std::vector<EntryPoint> entries;
+ };
+
+ std::map<uint32_t, EntryTable::Entry> entries;
};
EntryTable parse_entry_table(std::istream& is, binparse::Offset32 offset);