41 lines
1.3 KiB
C++
41 lines
1.3 KiB
C++
#pragma once
|
|
|
|
// 4J Stu - An abstract class that represents a constraint on what the user is able to do
|
|
class TutorialConstraint
|
|
{
|
|
private:
|
|
int descriptionId;
|
|
bool m_deleteOnDeactivate;
|
|
bool m_queuedForRemoval;
|
|
public:
|
|
enum ConstraintType
|
|
{
|
|
e_ConstraintInput = 0, // Constraint on controller input
|
|
e_ConstraintArea,
|
|
e_ConstraintAllInput,
|
|
e_ConstraintXuiInput,
|
|
e_ConstraintChangeState,
|
|
};
|
|
|
|
TutorialConstraint(int descriptionId) : descriptionId( descriptionId ), m_deleteOnDeactivate( false ), m_queuedForRemoval( false ) {}
|
|
virtual ~TutorialConstraint() {}
|
|
|
|
int getDescriptionId() { return descriptionId; }
|
|
|
|
virtual ConstraintType getType() = 0;
|
|
|
|
virtual void tick(int iPad) {}
|
|
virtual bool isConstraintSatisfied(int iPad) { return true; }
|
|
virtual bool isConstraintRestrictive(int iPad) { return true; }
|
|
|
|
virtual bool isMappingConstrained(int iPad, int mapping) { return false;}
|
|
virtual bool isXuiInputConstrained(int vk) { return false;}
|
|
|
|
void setDeleteOnDeactivate(bool deleteOnDeactivated) { m_deleteOnDeactivate = deleteOnDeactivated; }
|
|
bool getDeleteOnDeactivate() { return m_deleteOnDeactivate; }
|
|
|
|
void setQueuedForRemoval(bool queued) { m_queuedForRemoval = queued; }
|
|
bool getQueuedForRemoval() { return m_queuedForRemoval; }
|
|
|
|
virtual bool canMoveToPosition(double xo, double yo, double zo, double xt, double yt, double zt) { return true; }
|
|
}; |