Files
PlanetFleet/tradingScreenButton.cpp
T
2024-05-18 20:23:58 +03:00

52 lines
1.7 KiB
C++

#include "tradingScreenButton.h"
#include "concreteGuiManager.h"
#include "activeGameState.h"
#include "offerButton.h"
#include "gameManager.h"
#include "tradeOffer.h"
#include "game.h"
#include <listbox.h>
#include <textbox.h>
#include <stateManager.h>
namespace battleship{
using namespace std;
using namespace vb01;
using namespace vb01Gui;
using namespace gameBase;
TradingScreenButton::TradingScreenButton(Vector3 pos, Vector2 size, Listbox *lb, int plId, string gs, string name, int trigger, string imagePath) :
ActiveStateButton(pos, size, gs, name, trigger, imagePath),
listbox(lb),
playerId(plId)
{}
void TradingScreenButton::onClick(){
if(listbox->getNumLines() > 0){
StateManager *stateManager = GameManager::getSingleton()->getStateManager();
ActiveGameState *activeState = (ActiveGameState*)stateManager->getAppStateByType((int)AppStateType::ACTIVE_STATE);
Player *mainPlayer = activeState->getPlayer();
Game *game = Game::getSingleton();
TradeOffer *tradeOffer = game->findTradeOffers(mainPlayer, game->getPlayer(playerId))[listbox->getSelectedOption()];
ActiveStateButton::onClick();
ConcreteGuiManager *guiManager = ConcreteGuiManager::getSingleton();
vector<Textbox*> textboxes = guiManager->getTextboxes();
textboxes[0]->setEntry(to_wstring(tradeOffer->recRefineds));
textboxes[1]->setEntry(to_wstring(tradeOffer->initRefineds));
textboxes[2]->setEntry(to_wstring(tradeOffer->recWealth));
textboxes[3]->setEntry(to_wstring(tradeOffer->initWealth));
textboxes[4]->setEntry(to_wstring(tradeOffer->recResearch));
textboxes[5]->setEntry(to_wstring(tradeOffer->initResearch));
}
else
ActiveStateButton::onClick();
ConcreteGuiManager::getSingleton()->removeButton(this);
}
}