aboutsummaryrefslogtreecommitdiff
path: root/src/game/RLE_reader.hpp
diff options
context:
space:
mode:
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;
+};