Google

Main Page   Class Hierarchy   Compound List   File List   Compound Members  

iSequenceManager Struct Reference

The sequence manager. More...

#include <sequence.h>

Inheritance diagram for iSequenceManager:

iBase List of all members.

Public Methods

virtual void Clear ()=0
 Clear all sequence operations currently in memory (this will call DecRef() on them).

virtual bool IsEmpty ()=0
 Return true if the sequence manager has nothing to do (i.e. More...

virtual void Suspend ()=0
 Suspend the sequence manager. More...

virtual void Resume ()=0
 Resume the sequence manager at exactly the point it was previously suspended. More...

virtual bool IsSuspended ()=0
 Return true if the sequence manager is suspended.

virtual void TimeWarp (csTicks time, bool skip)=0
 Perform a time warp. More...

virtual csTicks GetMainTime ()=0
 Get the current time for the sequence manager. More...

virtual iSequenceNewSequence ()=0
 Create a new empty sequence. More...

virtual void RunSequence (csTicks time, iSequence *sequence)=0
 Execute a sequence at the given time. More...


Detailed Description

The sequence manager.

The sequence manager is a plugin that will perform sequences of operations depending on elapsed time. It is mostly useful for demo's or intros of games.


Member Function Documentation

csTicks iSequenceManager::GetMainTime ( ) [pure virtual]
 

Get the current time for the sequence manager.

This is not directly related to the real current time. Suspending the sequence manager will also freeze this time.

bool iSequenceManager::IsEmpty ( ) [pure virtual]
 

Return true if the sequence manager has nothing to do (i.e.

the queue of sequence operations is empty).

iSequence * iSequenceManager::NewSequence ( ) [pure virtual]
 

Create a new empty sequence.

This sequence is not attached to the sequence manager in any way. After calling NewSequence() you can add operations to it and then use RunSequence() to run it.

void iSequenceManager::Resume ( ) [pure virtual]
 

Resume the sequence manager at exactly the point it was previously suspended.

Calling Resume() on a running sequence manager has no effect.

void iSequenceManager::RunSequence ( csTicks time,
iSequence * sequence ) [pure virtual]
 

Execute a sequence at the given time.

This will effectively put the sequence on the queue to be executed when the time has elapsed. Modifications on a sequence after it has been added have no effect. You can also remove the sequence (with DecRef()) immediatelly after running it.

void iSequenceManager::Suspend ( ) [pure virtual]
 

Suspend the sequence manager.

This will totally stop all actions that the sequence manager was doing. Use Resume() to resume. Calling Suspend() on an already suspended sequence manager has no effect. Note that a sequence manager is suspended by default. This is so you can set it up and add the needed operations and then call resume to start it all.

void iSequenceManager::TimeWarp ( csTicks time,
bool skip ) [pure virtual]
 

Perform a time warp.

This will effectively let the sequence manager think that the given time has passed. If the 'skip' flag is set then all sequence parts that would have been executed in the skipped time are not executed. Otherwise they will all be executed at the same time (but the delta time parameter to 'Do' and 'Condition' will contain the correct difference). 'time' is usually positive. When 'time' is negative this will have the effect of adding extra time before the first operation in the queue will be executed. i.e. we jump in the past but operations that used to be there before are already deleted and will not be executed again.


The documentation for this struct was generated from the following file:
Generated for Crystal Space by doxygen 1.2.5 written by Dimitri van Heesch, ©1997-2000