-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.cpp
More file actions
74 lines (66 loc) · 1.95 KB
/
Copy pathmain.cpp
File metadata and controls
74 lines (66 loc) · 1.95 KB
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
#include "EssentialIncludes.h"
#include "States.h"
using namespace GameEngine;
vector<State*> screens;
void initialize_previous(int);
void pushScreens(vector<State*>&);
int main() {
RenderWindow window(VideoMode(SCREEN_WIDTH, SCREEN_HEIGHT), SCREEN_TITLE);
MenuState menu;
pushScreens(screens);
int screen = 0, previous = -1;
while (screen >= 0) {
initialize_previous(previous);
previous = screen;
screen = screens[screen]->Run(window);
}
return EXIT_SUCCESS;
}
/**
* This function resets specific screen
* Use it if you want to reset a state
* after leaving it
* @param pos refers to the previous screen's position.
*/
void initialize_previous(int pos) {
switch (pos) {
case 0:
screens[pos] = new MenuState;
break;
case 1:
screens[pos] = new OfflineState;
break;
case 2:
screens[pos] = new OnlineState;
break;
case 3:
screens[pos] = new SettingsState;
break;
case 4:
screens[pos] = new SnakeState;
break;
case 5:
screens[pos] = new MinesweeperState;
break;
case 6:
screens[pos] = new ArkanoidState;
case 7:
screens[pos] = new RacingState;
}
}
/**
* Here you push your screen with taking position into account
* Screen's position is used to navigate between screens.
* please see DEFINITIONS.h under Managers directory.
* @param vec refers to our main vector of state*
*/
void pushScreens(vector<State*> &vec) {
vec.push_back(new MenuState); // 0
vec.push_back(new OfflineState); // 1
vec.push_back(new OnlineState); // 2
vec.push_back(new SettingsState); // 3
vec.push_back(new SnakeState); // 4
vec.push_back(new MinesweeperState); // 5
vec.push_back(new ArkanoidState); // 6
vec.push_back(new RacingState); // 7
}