-
Notifications
You must be signed in to change notification settings - Fork 0
/
IGfxManager.hpp
147 lines (142 loc) · 2.17 KB
/
IGfxManager.hpp
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
/*
** EPITECH PROJECT, 2018
** Epitech scolarship project (4 years remaining)
** File description:
** Made on 2018/03 by ebernard
*/
#ifndef CPP_ARCADE_IGFXMANAGER_HPP
#define CPP_ARCADE_IGFXMANAGER_HPP
#include <string>
#include <vector>
#include <map>
#include <unordered_map>
#include <memory>
#include "arcade.hpp"
#include "AEntity.hpp"
namespace arcade {
class IGfxManager {
public:
virtual ~IGfxManager() = default;
enum class Keys {
Unknown = -1,
A = 0,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
Num0,
Num1,
Num2,
Num3,
Num4,
Num5,
Num6,
Num7,
Num8,
Num9,
Escape,
LControl,
LShift,
LAlt,
LSystem,
RControl,
RShift,
RAlt,
RSystem,
Menu,
LBracket,
RBracket,
SemiColon,
Comma,
Period,
Quote,
Slash,
BackSlash,
Tilde,
Equal,
Dash,
Space,
Return,
BackSpace,
Tab,
PageUp,
PageDown,
End,
Home,
Insert,
Delete,
Add,
Subtract,
Multiply,
Divide,
Left,
Right,
Up,
Down,
Numpad0,
Numpad1,
Numpad2,
Numpad3,
Numpad4,
Numpad5,
Numpad6,
Numpad7,
Numpad8,
Numpad9,
F1,
F2,
F3,
F4,
F5,
F6,
F7,
F8,
F9,
F10,
F11,
F12,
F13,
F14,
F15,
Pause,
KeyCount
};
virtual void initWindow(arcade::Point <std::size_t> size, std::string name) = 0;
/*
** formatage -> gfxName\n\n\ngameName\n\n\nPlayerName
*/
virtual const arcade::menuInfo showMenu(std::vector<std::string> &gfxName, std::vector<std::string> &gameName) = 0;
virtual void setTraductor(const std::unordered_map<unsigned char, Traductor> &map) = 0;
virtual void drawEntities(const std::vector<AEntity *> &sprite) = 0;
virtual void drawMap(const std::vector<std::vector<unsigned char>> &map) = 0;
virtual void showScoreBoard(const std::vector<std::pair<std::string, std::size_t>> &scoreBoard) = 0;
virtual arcade::IGfxManager::Keys getEvent() = 0;
virtual void drawGUI(const guiInfo &) = 0;
};
}
/*
** std::string getName();
** arcade::IGfxManager *entryPoint();
*/
#endif //CPP_ARCADE_IGFXMANAGER_HPP