OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
questlog.h
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4#include <string>
5#include <cstdint>
6
7class Serialize;
8
9class QuestLog final {
10 public:
11 QuestLog();
12
13 enum class Status : uint8_t {
14 Running = 1,
15 Success = 2,
16 Failed = 3,
17 Obsolete = 4
18 };
19
20 enum Section : uint8_t {
22 Note = 1
23 };
24
25 struct Quest {
26 std::string name;
29
30 std::vector<std::string> entry;
31 };
32
33 Quest& add (std::string_view name, Section s);
34 void setStatus(std::string_view name, Status s);
35 void addEntry (std::string_view name, std::string_view entry);
36
37 void save(Serialize &fout);
38 void load(Serialize &fin);
39
40 size_t questCount() const { return quests.size(); }
41 auto quest(size_t i) const -> const Quest& { return quests[i]; }
42
43
44 private:
45 Quest* find(std::string_view name);
46
47 std::vector<Quest> quests;
48 };
auto quest(size_t i) const -> const Quest &
Definition questlog.h:41
void save(Serialize &fout)
Definition questlog.cpp:37
void setStatus(std::string_view name, Status s)
Definition questlog.cpp:17
void addEntry(std::string_view name, std::string_view entry)
Definition questlog.cpp:25
void load(Serialize &fin)
Definition questlog.cpp:45
Quest & add(std::string_view name, Section s)
Definition questlog.cpp:7
size_t questCount() const
Definition questlog.h:40
@ Mission
Definition questlog.h:21
Section section
Definition questlog.h:27
Status status
Definition questlog.h:28
std::vector< std::string > entry
Definition questlog.h:30
std::string name
Definition questlog.h:26