/********************************************************************
*
* File: gfCInGameShopGui.h
*
* Purpose: Marketplace for virtual items
*
*********************************************************************/
#ifndef gfCInGameShopGuihdr
#define gfCInGameShopGuihdr
#include <vector>
#include <fsCore/fsPoint.h>
#include "../gfICatalogueGui.h"
class gfICatalogueEntry;
class gfCCatalogueCatalogue;
class gfCCatalogueItem;
class gfCInGameShopGui : public gfICatalogueGui
{
friend class fsCComponentFactory;
public:
static const fsCUniqueId mItemPurchasedMsg;
static const fsCUniqueId mTypeId;
static fsBool itemPurchased(const gfCCatalogueItem* pShopItem);
fsStr currencyStringGet(fsS32 pCurrencyAmount) const;
fsStr postPurchaseActionGet() const;
virtual void currencyDisplayRefresh();
protected:
void catalogueLoadDo() override;
void itemInfoSetDo(fsS32 pEntIndex, fsS32 pChildIndex) const override;
fsBool onButtonClicked(fsCButtonComponent* pButtonComp) override;
void itemSelect(const gfICatalogueEntry* pShopItem) override;
virtual void onBackSelection();
void initialiseFromVariableTableDo(const fsCVariableTable& pVars) override;
static fsIComponent* const create(fsCEntity* pParent);
gfCInGameShopGui(fsCEntity* pParent);
virtual ~gfCInGameShopGui();<--- Destructor in derived class
private:
fsStr mPostPurchaseAction;
fsStr mCurrencyKey;
fsStr mConfirmPurchaseFileName;
static fsBool notEnoughFunds(const gfCCatalogueItem* pItem);
static void disablePurchase(fsCEntity* pEnt, fsBool pDisable);
static fsBool purchasedSet(fsCEntity* pEnt, fsBool pDisable);
};
#endif