Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
QuestManager.h
Go to the documentation of this file.
1/* QuestManager.h
2 Manages quests. Derives from Singleton.
3*/
4#pragma once
5
6#include "Quest.h"
7#include <vector>
8#include <memory>
9#include <string>
10#include <iostream>
11#include "system/system_utils.h"
12
14{
15public:
17 {
18 name = "QuestManager";
19 SYSTEM_LOG << "QuestManager Initialized\n";
20 }
21 virtual ~QuestManager()
22 {
23 SYSTEM_LOG << "QuestManager Shutdown\n";
24 }
25
27 {
29 return instance;
30 }
31 static QuestManager& Get() { return GetInstance(); }
32
33 void AddQuest(std::unique_ptr<Quest> q)
34 {
35 quests.push_back(std::move(q));
36 }
37
38 const std::vector<std::unique_ptr<Quest>>& GetQuests() const { return quests; }
39
40private:
41 string name;
42 std::vector<std::unique_ptr<Quest>> quests;
43};
ComponentTypeID GetComponentTypeID_Static()
Definition ECS_Entity.h:56
static QuestManager & Get()
void AddQuest(std::unique_ptr< Quest > q)
static QuestManager & GetInstance()
std::vector< std::unique_ptr< Quest > > quests
const std::vector< std::unique_ptr< Quest > > & GetQuests() const
virtual ~QuestManager()
#define SYSTEM_LOG