/********************************************************************
*
* File: fsCDropOffPickListEntryGui.h
*
* Purpose: Text entries, optionally with sprite backgrounds
* which drop off the screen when collected.
*
*********************************************************************/
#ifndef gfCDropOffPickListEntryGuihdr
#define gfCDropOffPickListEntryGuihdr
#include <fsCore/src/fsCUniqueId.h>
#include <fsCore/fsPoint.h>
#include <fsAppCore/src/fsCGraph.h>
#include "gfITextPickListEntryGui.h"
class gfCDropOffPickListEntryGui : public gfITextPickListEntryGui
{
friend class fsCComponentFactory;
public:
static const fsCUniqueId mTypeId;
virtual ~gfCDropOffPickListEntryGui() = default;<--- Destructor in derived class
protected:
void serialiseDo() override;
void deserialiseDo() override;
void deactivateDo() override;
void activateDo(std::vector<fsCEntity*> pMyEntities) override;
fsBool transitionOnUpdate(fsS32 pDeltaMs) override;
fsBool transitionOffUpdate(fsS32 pDeltaMs) override;
fsBool entityCollectedHandle() override;
void initialiseFromVariableTableDo(const fsCVariableTable& pVars) override;
static fsIComponent* create(fsCEntity* pParent);
gfCDropOffPickListEntryGui(fsCEntity* pParent);
private:
void spriteCreateIfRequired(const fsCVariableTable& pVars) const;
void transitionOffInitialise();
fsCGraph<fsF32> mTransitionOnScale;
fsPoint mOriginalPos;
fsF32 mPosX;
fsF32 mPosY;
fsF32 mVelocityX;
fsF32 mVelocityY;
fsF32 mTargetY;
fsF32 mAngle;
fsF32 mRotation;
fsS32 mTransitionDuration;
};
#endif