1 /* 2 * Copyright 2010-2014 OpenXcom Developers. 3 * 4 * This file is part of OpenXcom. 5 * 6 * OpenXcom is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * OpenXcom is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with OpenXcom. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 #ifndef OPENXCOM_MONTHLYREPORTSTATE_H 20 #define OPENXCOM_MONTHLYREPORTSTATE_H 21 22 #include "../Engine/State.h" 23 #include <string> 24 25 namespace OpenXcom 26 { 27 28 class TextButton; 29 class Window; 30 class Text; 31 class Globe; 32 33 /** 34 * Report screen shown monthly to display 35 * changes in the player's performance and funding. 36 */ 37 class MonthlyReportState : public State 38 { 39 private: 40 TextButton *_btnOk, *_btnBigOk; 41 Window *_window; 42 Text *_txtTitle, *_txtMonth, *_txtRating, *_txtChange, *_txtDesc, *_txtFailure; 43 bool _psi, _gameOver; 44 int _ratingTotal, _fundingDiff, _lastMonthsRating; 45 std::vector<std::string> _happyList, _sadList, _pactList; 46 Globe *_globe; 47 /// Builds a country list string. 48 std::wstring countryList(const std::vector<std::string> &countries, const std::string &singular, const std::string &plural); 49 public: 50 /// Creates the Monthly Report state. 51 MonthlyReportState(Game *game, bool psi, Globe *globe); 52 /// Cleans up the Monthly Report state. 53 ~MonthlyReportState(); 54 /// Handler for clicking the OK button. 55 void btnOkClick(Action *action); 56 /// Calculate monthly scores. 57 void calculateChanges(); 58 }; 59 60 } 61 62 #endif 63