/********************************************************************
*
* File: gfCPairsMiniGameLogicComponent.h
*
* Purpose: Logic component added to a scene to control the
* pairs as a mini game - need to
* track them and reset if required
*
*********************************************************************/
#ifndef gfCPairsMiniGameLogicComponenthdr
#define gfCPairsMiniGameLogicComponenthdr
#include "gfCPairsMinigameComponent.h"
#include "../gfIMinigameLogic.h"
class gfCPairsMinigameComponent;
class gfCPairsMiniGameLogicComponent : public gfIMinigameLogic
{
friend class fsCComponentFactory;
public:
enum eTRANSITION{
eFADE,
eROTATE,
};
fsBool shuffleGet() const;
eTRANSITION transitionGet() const;
std::vector<gfCPairsMinigameComponent*> gamePiecesGet() const;<--- Function 'gamePiecesGet()' should return member 'mGamePieces' by const reference.
static const fsCUniqueId mTypeId;
protected:
void skipDo() override;<--- Function in derived class
void listenersRegisterDo() override;
void listenersDeregisterDo() override;
fsBool messageProcessDo(const fsCUniqueId& pMessageType,<--- Function in derived class
const fsIMessageDispatcher::sMessageParameters& pParam) override;
void resetDo() override;
void deserialiseDo() override;
void serialiseDo() override;
void initialiseFromVariableTableDo(const fsCVariableTable& pVars) override;
static fsIComponent* create(fsCEntity* pParent);
gfCPairsMiniGameLogicComponent(fsCEntity* pParent);
virtual ~gfCPairsMiniGameLogicComponent();<--- Destructor in derived class
private:
void transitionSet(const fsStr& pFade);
void gamePiecesCollect();
std::vector<gfCPairsMinigameComponent*> mGamePieces;
eTRANSITION mTransition = eFADE;
fsBool mShuffle = false;
};
#endif