OpenXcom  1.0
Open-source clone of the original X-Com
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
PurchaseState.h
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_PURCHASESTATE_H
20 #define OPENXCOM_PURCHASESTATE_H
21 
22 #include "../Engine/State.h"
23 #include <vector>
24 #include <string>
25 
26 namespace OpenXcom
27 {
28 
29 class TextButton;
30 class Window;
31 class Text;
32 class TextList;
33 class Timer;
34 class Base;
35 
40 class PurchaseState : public State
41 {
42 private:
43  Base *_base;
44 
45  TextButton *_btnOk, *_btnCancel;
46  Window *_window;
47  Text *_txtTitle, *_txtFunds, *_txtPurchases, *_txtItem, *_txtCost, *_txtQuantity, *_txtSpaceUsed;
48  TextList *_lstItems;
49  std::vector<std::string> _crafts, _items;
50  std::vector<int> _qtys;
51  size_t _sel, _itemOffset;
52  int _total, _pQty, _cQty;
53  double _iQty;
54  Timer *_timerInc, *_timerDec;
56  int getPrice();
58  bool isExcluded(std::string item);
59 public:
61  PurchaseState(Game *game, Base *base);
65  void think();
67  void btnOkClick(Action *action);
69  void btnCancelClick(Action *action);
71  void lstItemsLeftArrowPress(Action *action);
73  void lstItemsLeftArrowRelease(Action *action);
75  void lstItemsLeftArrowClick(Action *action);
77  void lstItemsRightArrowPress(Action *action);
79  void lstItemsRightArrowRelease(Action *action);
81  void lstItemsRightArrowClick(Action *action);
83  void lstItemsMousePress(Action *action);
85  void increase();
87  void increaseByValue(int change);
89  void decrease();
91  void decreaseByValue(int change);
93  void updateItemStrings();
94 };
95 
96 }
97 
98 #endif
void lstItemsMousePress(Action *action)
Handler for pressing-down a mouse-button in the list.
Definition: PurchaseState.cpp:398
Container for all the information associated with a given user action, like mouse clicks...
Definition: Action.h:34
void btnOkClick(Action *action)
Handler for clicking the OK button.
Definition: PurchaseState.cpp:252
A game state that receives user input and reacts accordingly.
Definition: State.h:44
Box with a coloured border and custom background.
Definition: Window.h:42
Timer used to run code in fixed intervals.
Definition: Timer.h:37
void lstItemsRightArrowPress(Action *action)
Handler for pressing a Decrease arrow in the list.
Definition: PurchaseState.cpp:360
List of Text's split into columns.
Definition: TextList.h:42
Text string displayed on screen.
Definition: Text.h:41
void updateItemStrings()
Updates the quantity-strings of the selected item.
Definition: PurchaseState.cpp:575
void decreaseByValue(int change)
Decreases the quantity of an item by the given value.
Definition: PurchaseState.cpp:547
void lstItemsLeftArrowPress(Action *action)
Handler for pressing an Increase arrow in the list.
Definition: PurchaseState.cpp:322
void think()
Runs the timers.
Definition: PurchaseState.cpp:223
void decrease()
Decreases the quantity of an item by one.
Definition: PurchaseState.cpp:536
void lstItemsRightArrowRelease(Action *action)
Handler for releasing a Decrease arrow in the list.
Definition: PurchaseState.cpp:370
void increaseByValue(int change)
Increases the quantity of an item by the given value.
Definition: PurchaseState.cpp:470
void increase()
Increases the quantity of an item by one.
Definition: PurchaseState.cpp:459
PurchaseState(Game *game, Base *base)
Creates the Purchase state.
Definition: PurchaseState.cpp:57
void lstItemsLeftArrowRelease(Action *action)
Handler for releasing an Increase arrow in the list.
Definition: PurchaseState.cpp:332
Represents a player base on the globe.
Definition: Base.h:47
~PurchaseState()
Cleans up the Purchase state.
Definition: PurchaseState.cpp:214
Coloured button with a text label.
Definition: TextButton.h:40
void lstItemsRightArrowClick(Action *action)
Handler for clicking a Decrease arrow in the list.
Definition: PurchaseState.cpp:383
The core of the game engine, manages the game's entire contents and structure.
Definition: Game.h:44
void btnCancelClick(Action *action)
Handler for clicking the Cancel button.
Definition: PurchaseState.cpp:313
Purchase/Hire screen that lets the player buy new items for a base.
Definition: PurchaseState.h:40
void lstItemsLeftArrowClick(Action *action)
Handler for clicking an Increase arrow in the list.
Definition: PurchaseState.cpp:345