/* * Copyright 2017, Intel Corporation * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * * Neither the name of the copyright holder nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "MenuView.hpp" MenuView::MenuView(sf::Font &font) { menuItems[NEW_GAME].setString("NEW GAME"); menuItems[RESUME].setString("RESUME"); menuItems[SIMULATION].setString("SIMULATION"); menuItems[EXIT].setString("EXIT"); for (int i = 0; i < MENU_ITEMS; i++) { menuItems[i].setFont(font); menuItems[i].setCharacterSize(MENUVIEW_ITEMS_FONTSIZE); menuItems[i].setPosition( WINDOW_WIDTH / 2 - (float)menuItems[i].getGlobalBounds().width / 2, (float)(i + 1) * MENUITEM_OFFSET - MENUVIEW_ITEMS_FONTSIZE); } } MenuView::~MenuView() { } void MenuView::prepareView(PongGameStatus &gameStatus) { for (int i = 0; i < MENU_ITEMS; i++) { if (i == gameStatus.getMenuItem()) { menuItems[i].setFillColor(sf::Color::Green); } else if (i == RESUME && !gameStatus.getIsGameToResume()) { menuItems[RESUME].setFillColor(sf::Color::White); } else { menuItems[i].setFillColor(sf::Color::Red); } } } void MenuView::displayView(sf::RenderWindow *gameWindow) { gameWindow->clear(); for (int i = 0; i < MENU_ITEMS; i++) { gameWindow->draw(menuItems[i]); } gameWindow->display(); }