Repository navigation
Expand file tree
/
Copy pathcMenuSaves.cpp
More file actions
121 lines (118 loc) · 3.79 KB
/
Copy pathcMenuSaves.cpp
File metadata and controls
121 lines (118 loc) · 3.79 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
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
#include "cMenuSaves.h"
#include "cGraphics.h"
cMenuSaves::cMenuSaves(int width, int height)
{
auto& font = GetFont();
//1
auto textF = sf::Text(font, "Save/Load Game", 60);
textF.setFillColor(Color::White);
textF.setPosition({ 400, 100 });
levels.push_back(textF);
//1
auto text1 = sf::Text(font, "Save to File1", 60);
text1.setFillColor(Color::Green);
text1.setPosition({ 400, 200 });
levels.push_back(text1);
//2
auto text2 = sf::Text(font, "Save to File2", 60);
text2.setFillColor(Color::White);
text2.setPosition({ 400, 300 });
levels.push_back(text2);
//3
auto text3 = sf::Text(font, "Save to File3", 60);
text3.setFillColor(Color::White);
text3.setPosition({ 400, 400 });
levels.push_back(text3);
//4
auto text4 = sf::Text(font, "Load from File1", 60);
text4.setFillColor(Color::White);
text4.setPosition({ 400, 500 });
levels.push_back(text4);
//5
auto text5 = sf::Text(font, "Load from File2", 60);
text5.setFillColor(Color::White);
text5.setPosition({ 400, 600 });
levels.push_back(text5);
//6
auto text6 = sf::Text(font, "Load from File3", 60);
text6.setFillColor(Color::White);
text6.setPosition({ 400, 700 });
levels.push_back(text6);
//back
auto textBack = sf::Text(font, "Go back", 60);
textBack.setFillColor(Color::White);
textBack.setPosition({ 400, 800 });
levels.push_back(textBack);
levelSelected = 0;
}
cMenuSaves::~cMenuSaves()
{
}
//drawing
void cMenuSaves::Draw(RenderWindow& window)
{
for (int i = 0; i < levels.size(); i++)
{
window.draw(levels[i]);
}
opened = true;
}
//move up
void cMenuSaves::MoveUp()
{
if (levelSelected >= 0)
{
levels[levelSelected].setFillColor(Color::White);
levelSelected--;
if (levelSelected == -1)
{
levelSelected = levels.size() - 1;
}
if(levelSelected != 0) levels[levelSelected].setFillColor(Color::Green);
}
}
//move down
void cMenuSaves::MoveDown()
{
if (levelSelected <= levels.size() - 1)
{
levels[levelSelected].setFillColor(Color::White);
levelSelected++;
if (levelSelected == levels.size())
{
levelSelected = 0;
}
if (levelSelected != 0) levels[levelSelected].setFillColor(Color::Green);
//levels[levelSelected].setFillColor(Color::Green);
}
}
//selecting
void cMenuSaves::ChangeToSelected(RenderWindow& window)
{
cGame& game = cGame::Get();
switch (levelSelected)
{
case 0: break; //Manual(possibly)
case 1: game.Save("Save1"); levels[levelSelected].setFillColor(Color::White); levelSelected = 0;break; //Save1
case 2: game.Save("Save2"); levels[levelSelected].setFillColor(Color::White); levelSelected = 0;break; //Save2
case 3: game.Save("Save3"); levels[levelSelected].setFillColor(Color::White); levelSelected = 0;break; //Save3
case 4: game.Load("Save1"); levels[levelSelected].setFillColor(Color::White); levelSelected = 0;break; //Load1
case 5: game.Load("Save2"); levels[levelSelected].setFillColor(Color::White); levelSelected = 0;break; //Load2
case 6: game.Load("Save3"); levels[levelSelected].setFillColor(Color::White); levelSelected = 0;break; //Load3
case 7: levels[levelSelected].setFillColor(Color::White); levelSelected = 0; cMainMenu::ChangeOpened(); cMenuSaves::ChangeOpened(); break; //back
}
}
//event handling
void cMenuSaves::EventHandle(optional<Event> event, RenderWindow& window)
{
if (auto const keyEvent = event->getIf<sf::Event::KeyReleased>())
{
switch (keyEvent->code)
{
case sf::Keyboard::Key::Up: MoveUp(); break;
case sf::Keyboard::Key::Down: MoveDown(); break;
case sf::Keyboard::Key::Enter: ChangeToSelected(window); break;
case sf::Keyboard::Key::Escape: levels[levelSelected].setFillColor(Color::White); levelSelected = 0; cMenuSaves::ChangeOpened(); break;
}
}
}