/********************************************************************
*
* Created: 3/10/2012 13:41
*
* File: gfCSubSceneViewComponent.h
*
* Author: Martin P King
*
* Purpose: Handle all things related to scrolling and scaling
* the sub scene - main scene is itself a sub scene
*
*********************************************************************/
#ifndef gfCSubSceneViewComponenthdr
#define gfCSubSceneViewComponenthdr
#include <fsAppCore/src/components/fsCEphemeralComponent.h>
#include <fsCore/fsBaseTypes.h>
#include <fsCore/fsPoint.h>
#include <fsCore/fsVec2d.h>
#include "gfILensComponent.h"
class gfCSubSceneViewComponent : public gfILensComponent
{
friend class fsCRollOverButtonComponent;
friend class gfCLevelSequencerMapComponent;
friend class fsCComponentFactory;
friend class gfCDebugWindowGui;
friend class gfCLevelSequencerMapLevelIconComponent;
public:
static const fsCUniqueId mTypeId;
void zoomInit();
void init(const fsPoint& pDimensions, const fsPoint& pScrollWindow, const fsPoint& pDragEnable,
const fsPoint& pLookAt);
gfCSubSceneViewComponent(fsCEntity* pParent);
~gfCSubSceneViewComponent();<--- Destructor in derived class
protected:
void doOnTap(const fsPoint& pTapPos) override;
void listenersRegisterDo() override;
void listenersDeregisterDo() override;
fsBool messageProcessDo(const fsCUniqueId& pMessageType,
const fsIMessageDispatcher::sMessageParameters& pParam) override;
fsBool acceptingInputGet() const override;
static fsIComponent* create(fsCEntity* pParent);
private:
class FncAnimatingSpriteComplete : public fsCEphemeralComponent::fsFncCondition
{
fsBool operator()(fsCEntity* pParent) override;
};
class FncParticleComplete : public fsCEphemeralComponent::fsFncCondition
{
fsBool operator()(fsCEntity* pParent) override;
};
void missedEffectCreate(fsCEntity* pEffectEntity);
void missedTapHandle(const fsPoint& pTapPos);
void missedMarkerCreate(const fsPoint& pTapPos);
void masterCheatMenuToggle();
void cheatTaps();
fsS32 mCheatMenuCount;
fsS32 mCheatMenuTapTime;
};
#endif