/********************************************************************
*
* File: fsCLevelSequencerMinigameComponent.h
*
* Purpose: Show fsCLevelSequencerMiniGameLevel components
*
*********************************************************************/
#ifndef fsCLevelSequencerMinigameComponenthdr
#define fsCLevelSequencerMinigameComponenthdr
#include <fsAppCore/src/components/gui/fsIMessageListenerGuiComponent.h>
#include "../gfCLevelSequencerComponent.h"
class fsCEntity;
class gfCLevelSequencerMinigameComponent : public fsIMessageListenerGuiComponent, public gfCLevelSequencerComponent
{
friend class fsCComponentFactory;
public:
static const fsCUniqueId mTypeId;
fsBool onButtonClicked(fsCButtonComponent* pButtonComp) override;
virtual ~gfCLevelSequencerMinigameComponent();<--- Destructor in derived class
protected:
void listenersRegisterDo() override;
void listenersDeregisterDo() override;
fsBool messageProcessDo(const fsCUniqueId& pMessageType,
const fsIMessageDispatcher::sMessageParameters& pParam) override;
fsBool levelCriteriaMet(const fsCFileListEntry& pFileListEntry) const override;
static fsIComponent* create(fsCEntity* pParent);
void initialiseFromVariableTableDo(const fsCVariableTable& pVars) override;
gfCLevelSequencerLevelComponent* const levelSequencerLevelCreate(const fsStr& pPath, const fsStr& pName) override;
gfCLevelSequencerMinigameComponent(fsCEntity* pParent);
private:
void layoutParametersInitialise(const fsCVariableTable& pVars);
void levelIconsPageVisibletySet();
void levelIconsCreate();
fsS32 mPageStride;
fsPoint mFirstLevelIconPos;
fsPoint mLevelIconPosIncrement;
fsStr mLevelIconLayoutFileName;
fsStr mLevelSourceFolder;
std::vector<gfCLevelSequencerLevelComponent*>::iterator mCurrMinigameLevel;
};
#endif