00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __IVARIA_SEQUENCE_H__
00020 #define __IVARIA_SEQUENCE_H__
00021
00022 #include "csutil/scf.h"
00023
00024 struct iSequenceManager;
00025
00026 SCF_VERSION (iSequenceOperation, 0, 0, 1);
00027
00032 struct iSequenceOperation : public iBase
00033 {
00042 virtual void Do (csTicks dt) = 0;
00043 };
00044
00045 SCF_VERSION (iSequenceCondition, 0, 0, 1);
00046
00051 struct iSequenceCondition : public iBase
00052 {
00061 virtual bool Condition (csTicks dt) = 0;
00062 };
00063
00064 SCF_VERSION (iSequence, 0, 0, 1);
00065
00072 struct iSequence : public iBase
00073 {
00078 virtual void AddOperation (csTicks time, iSequenceOperation* operation) = 0;
00079
00084 virtual void AddRunSequence (csTicks time, iSequence* sequence) = 0;
00085
00091 virtual void AddCondition (csTicks time, iSequenceCondition* condition,
00092 iSequence* trueSequence, iSequence* falseSequence) = 0;
00093
00098 virtual void AddLoop (csTicks time, iSequenceCondition* condition,
00099 iSequence* sequence) = 0;
00100
00104 virtual void Clear () = 0;
00105
00109 virtual bool IsEmpty () = 0;
00110 };
00111
00112 SCF_VERSION (iSequenceManager, 0, 0, 2);
00113
00119 struct iSequenceManager : public iBase
00120 {
00125 virtual void Clear () = 0;
00126
00131 virtual bool IsEmpty () = 0;
00132
00141 virtual void Suspend () = 0;
00142
00148 virtual void Resume () = 0;
00149
00153 virtual bool IsSuspended () = 0;
00154
00167 virtual void TimeWarp (csTicks time, bool skip) = 0;
00168
00174 virtual csTicks GetMainTime () = 0;
00175
00181 virtual iSequence* NewSequence () = 0;
00182
00190 virtual void RunSequence (csTicks time, iSequence* sequence) = 0;
00191 };
00192
00193 #endif // __IVARIA_SEQUENCE_H__
00194