| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #include "Home.hpp" | ||
| 2 | #include "../core/Core.hpp" | ||
| 3 | |||
| 4 | ✗ | Home::Home(Core *core, int port, std::string ip) : _core(core) { | |
| 5 | |||
| 6 | ✗ | _quitButton = std::make_shared<Button>(sf::Vector2f(100, 500), sf::Vector2f(100, 100), "Quit", _core->getFont()); | |
| 7 | ✗ | _startButton = std::make_shared<Button>(sf::Vector2f(100, 400), sf::Vector2f(100, 100), "Start", _core->getFont()); | |
| 8 | ✗ | _portButton = std::make_shared<Input>(sf::Vector2f(100, 350), sf::Vector2f(100, 100), "Port", _core->getFont(), | |
| 9 | "1234567890"); | ||
| 10 | ✗ | if (port != 0) | |
| 11 | ✗ | _portButton->setInput(std::to_string(port)); | |
| 12 | ✗ | _ipButton = std::make_shared<Input>(sf::Vector2f(100, 300), sf::Vector2f(100, 100), "Ip", _core->getFont(), | |
| 13 | "1234567890."); | ||
| 14 | ✗ | if (ip != "") | |
| 15 | ✗ | _ipButton->setInput(ip); | |
| 16 | |||
| 17 | ✗ | _chat = std::make_shared<Chat>(_core->getFont(), 7); | |
| 18 | _chat->setPosition(sf::Vector2f(50, 720 - 50)); | ||
| 19 | ✗ | _chat->addMessage("Welcome to Zappy 1.0"); | |
| 20 | ✗ | initSprites(); | |
| 21 | ✗ | } | |
| 22 | |||
| 23 | ✗ | void Home::draw(sf::RenderWindow &window) { | |
| 24 | ✗ | _sprites["background"]->draw(window); | |
| 25 | ✗ | _sprites["movingEarth"]->draw(window); | |
| 26 | ✗ | for (auto &starling : _starlings) { | |
| 27 | ✗ | _sprites["starling"]->setPosition(starling._pos); | |
| 28 | ✗ | _sprites["starling"]->setRotation(starling._rotation); | |
| 29 | ✗ | _sprites["starling"]->draw(window); | |
| 30 | } | ||
| 31 | ✗ | _quitButton->draw(window); | |
| 32 | ✗ | _startButton->draw(window); | |
| 33 | ✗ | _ipButton->draw(window, _core->getDeltaTime()); | |
| 34 | ✗ | _portButton->draw(window, _core->getDeltaTime()); | |
| 35 | ✗ | _chat->draw(window); | |
| 36 | ✗ | _sprites["logo"]->draw(window); | |
| 37 | ✗ | } | |
| 38 | |||
| 39 | ✗ | void Home::update(float fElapsedTime) { | |
| 40 | ✗ | _sprites["movingEarth"]->update(fElapsedTime); | |
| 41 | ✗ | for (auto &starling : _starlings) { | |
| 42 | ✗ | starling.update(fElapsedTime); | |
| 43 | } | ||
| 44 | ✗ | } | |
| 45 | |||
| 46 | ✗ | bool Home::update(sf::Event event, sf::RenderWindow &window) { | |
| 47 | ✗ | if (_quitButton->update(event, window)) | |
| 48 | ✗ | window.close(); | |
| 49 | ✗ | if (_startButton->update(event, window)) { | |
| 50 | int port = 0; | ||
| 51 | try { | ||
| 52 | ✗ | port = std::stoi(_portButton->getInput()); | |
| 53 | ✗ | } catch (std::exception &e) { | |
| 54 | ✗ | _chat->addMessage("Invalid port", sf::Color::Red); | |
| 55 | return false; | ||
| 56 | ✗ | } | |
| 57 | ✗ | if (!_core->connectToServer(port, _ipButton->getInput())) { | |
| 58 | ✗ | _chat->addMessage("Failed to connect to server", sf::Color::Red); | |
| 59 | ✗ | return false; | |
| 60 | } | ||
| 61 | ✗ | _core->_scenes[GameState::GAME]->init(); | |
| 62 | ✗ | _core->_state = GameState::GAME; | |
| 63 | } | ||
| 64 | ✗ | _ipButton->update(event, window); | |
| 65 | ✗ | _portButton->update(event, window); | |
| 66 | ✗ | return true; | |
| 67 | } | ||
| 68 | |||
| 69 | ✗ | void Home::initSprites() { | |
| 70 | ✗ | _sprites["background"] = std::make_shared<Sprite>("assets/background.jpg"); | |
| 71 | ✗ | _sprites["background"]->resetOrigin(); | |
| 72 | ✗ | _sprites["movingEarth"] = std::make_shared<Sprite>("assets/earthPlanetMenu75.png", 100, 0.3f); | |
| 73 | ✗ | _sprites["movingEarth"]->setScale(10); | |
| 74 | ✗ | _sprites["logo"] = std::make_shared<Sprite>("assets/logo.png"); | |
| 75 | ✗ | _sprites["logo"]->setPosition(sf::Vector2f(200, 150)); | |
| 76 | ✗ | _sprites["movingEarth"]->setPosition(sf::Vector2f(1080, 720)); | |
| 77 | ✗ | _sprites["starling"] = std::make_shared<Sprite>("assets/trantorian.png"); | |
| 78 | ✗ | _sprites["starling"]->setScale(2); | |
| 79 | ✗ | _starlings.push_back(Starlings()); | |
| 80 | ✗ | _starlings.push_back(Starlings()); | |
| 81 | ✗ | _starlings.push_back(Starlings()); | |
| 82 | ✗ | _starlings.push_back(Starlings()); | |
| 83 | ✗ | _starlings.push_back(Starlings()); | |
| 84 | ✗ | _starlings.push_back(Starlings()); | |
| 85 | ✗ | } | |
| 86 |