aboutsummaryrefslogtreecommitdiff
path: root/src/game/RLE_reader.hpp
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2022-06-12 13:44:58 +0200
committerHampusM <hampus@hampusmat.com>2022-06-13 17:57:01 +0200
commit927e065f9829045247be7c0b3296408b6f577c1f (patch)
tree7da3d9cd5aa4070414a8708a582f6c3ab3e1e708 /src/game/RLE_reader.hpp
parenteb66598c326862fd9dfc1899be4eac93f81a8023 (diff)
feat: add reading RLE files
Diffstat (limited to 'src/game/RLE_reader.hpp')
-rw-r--r--src/game/RLE_reader.hpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/game/RLE_reader.hpp b/src/game/RLE_reader.hpp
new file mode 100644
index 0000000..797575e
--- /dev/null
+++ b/src/game/RLE_reader.hpp
@@ -0,0 +1,24 @@
+#pragma once
+
+#include "interfaces/RLE_reader.hpp"
+#include "interfaces/matrix.hpp"
+
+#include <yacppdic/auto_wirable.hpp>
+
+#include <filesystem>
+#include <memory>
+
+class RLEReader
+ : public IRLEReader,
+ public yacppdic::
+ AutoWirable<IRLEReader, RLEReader, IMatrixFactory<IRLEReader::MatrixElement>>
+{
+public:
+ explicit RLEReader(const IMatrixFactory<MatrixElement> &matrix_factory) noexcept;
+
+ [[nodiscard]] auto read_RLE_file(const std::filesystem::path &path) const
+ -> std::unique_ptr<IMatrix<MatrixElement>> override;
+
+private:
+ IMatrixFactory<MatrixElement> _matrix_factory;
+};