Coverage report for gui


src/
File: src/render/scenes/Menu.cpp
Date: 2024-06-25 10:57:02
Lines:
0/66
0.0%
Functions:
0/4
0.0%
Branches:
0/68
0.0%

Line Branch Exec Source
1 #include "Menu.hpp"
2 #include "../core/Core.hpp"
3
4 Menu::Menu(Core *core) : _core(core) {
5 _fullscreenButton = std::make_shared<Button>(sf::Vector2f(100, 100),
6 sf::Vector2f(100, 100), "Windowed", _core->getFont());
7 _resolutionButtons.push_back(std::make_shared<Button>(sf::Vector2f(100, 150),
8 sf::Vector2f(100, 100), "1920x1080", _core->getFont()));
9 _resolutionButtons.push_back(std::make_shared<Button>(sf::Vector2f(300, 150),
10 sf::Vector2f(100, 100), "1280x720", _core->getFont()));
11 _quitButton = std::make_shared<Button>(sf::Vector2f(100, 500), sf::Vector2f(100, 100), "Quit", _core->getFont());
12 _homeButton = std::make_shared<Button>(sf::Vector2f(100, 450), sf::Vector2f(100, 100), "Home", _core->getFont());
13 _homeButton->setCallBack(std::bind(&Menu::getBackHome, this));
14 _hzInput = std::make_shared<Input>(sf::Vector2f(100, 200), sf::Vector2f(100, 100), "60", _core->getFont(), "1234567890");
15 _hzInput->setEnd("Hz");
16 _hzInput->setInput("60");
17 _funMode = std::make_shared<Button>(sf::Vector2f(100, 250), sf::Vector2f(100, 100), "Fun Mode Off", _core->getFont());
18 }
19
20 bool Menu::update(sf::Event event, sf::RenderWindow &window) {
21 if (event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Escape)
22 _core->_upperState = GameState::DEFAULT;
23 if (_fullscreenButton->update(event, window)) {
24 _core->switchFullscreen();
25 _fullscreenButton->setText(_core->isFullscreen() ? "Fullscreen" : "Windowed");
26 return true;
27 }
28 if (_resolutionButtons[0]->update(event, window)) {
29 _core->newResolution(sf::Vector2f(1920, 1080));
30 return true;
31 }
32 if (_resolutionButtons[1]->update(event, window)) {
33 _core->newResolution(sf::Vector2f(1280, 720));
34 return true;
35 }
36 if (_funMode->update(event, window)) {
37 if (_funMode->getText() == "Fun Mode Off")
38 _funMode->setText("Fun Mode On");
39 else
40 _funMode->setText("Fun Mode Off");
41 _core->_funMode = !_core->_funMode;
42 }
43 if (_quitButton->update(event, window))
44 window.close();
45 _homeButton->update(event, window);
46 if (_hzInput->isFocused() == false) {
47 if (_hzInput->getInput().size() == 0)
48 _hzInput->setInput("0");
49 if (std::atoi(_hzInput->getInput().c_str()) != _core->_tickRate)
50 _hzInput->setInput(std::to_string(_core->_tickRate));
51 }
52 if (_hzInput->update(event, window)) {
53 int newTickRate = 2;
54 try {
55 newTickRate = std::stoi(_hzInput->getInput());
56 } catch (std::exception &e) {
57 }
58 if (newTickRate < 2)
59 newTickRate = 2;
60 if (newTickRate > 1000)
61 newTickRate = 1000;
62 _core->_tickRate = newTickRate;
63 _core->_data.requestNewTickRate(newTickRate, _core->_server);
64 _hzInput->setInput(std::to_string(newTickRate));
65 return true;
66 }
67 return true;
68 }
69
70 void Menu::draw(sf::RenderWindow &window) {
71 _fullscreenButton->draw(window);
72 for (auto &button : _resolutionButtons)
73 button->draw(window);
74 _quitButton->draw(window);
75 _homeButton->draw(window);
76 _funMode->draw(window);
77 _hzInput->draw(window, _core->getDeltaTime());
78 }
79
80 void Menu::getBackHome() {
81 if (_core->_server.disconectFromServer() == true)
82 _core->_data.resetGame();
83 _core->_upperState = GameState::DEFAULT;
84 _core->_state = GameState::HOME;
85 }
86