blob: 0023283ebf05b56a6bbac2f6d02ab2036b28ab37 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#pragma once
#include "engine/bounds.hpp"
#include "engine/vector2.hpp"
#include "random_generator.hpp"
#include <memory>
#include <string_view>
/**
* Application options.
*/
class AppOptions
{
public:
AppOptions() = default;
[[nodiscard]] std::shared_ptr<Bounds> maze_bounds() const;
void maze_bounds(std::shared_ptr<Bounds> maze_bounds);
[[nodiscard]] std::shared_ptr<Vector2> start_coords() const;
void start_coords(std::shared_ptr<Vector2> start_coords);
[[nodiscard]] std::string_view wall() const;
void wall(std::string_view wall);
[[nodiscard]] std::shared_ptr<RandomNumberGenerator> random_gen() const;
void random_gen(std::shared_ptr<RandomNumberGenerator> random_gen);
private:
std::shared_ptr<Bounds> _maze_bounds = nullptr;
std::shared_ptr<Vector2> _start_coords = nullptr;
std::string_view _wall;
std::shared_ptr<RandomNumberGenerator> _random_gen = nullptr;
};
|