diff options
author | James Cook <james@lindenlab.com> | 2007-01-02 08:33:20 +0000 |
---|---|---|
committer | James Cook <james@lindenlab.com> | 2007-01-02 08:33:20 +0000 |
commit | 420b91db29485df39fd6e724e782c449158811cb (patch) | |
tree | b471a94563af914d3ed3edd3e856d21cb1b69945 /indra/newview/llagentpilot.h |
Print done when done.
Diffstat (limited to 'indra/newview/llagentpilot.h')
-rw-r--r-- | indra/newview/llagentpilot.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/indra/newview/llagentpilot.h b/indra/newview/llagentpilot.h new file mode 100644 index 0000000000..c4223ba490 --- /dev/null +++ b/indra/newview/llagentpilot.h @@ -0,0 +1,77 @@ +/** + * @file llagentpilot.h + * @brief LLAgentPilot class definition + * + * Copyright (c) 2002-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#ifndef LL_LLAGENTPILOT_H +#define LL_LLAGENTPILOT_H + +#include "stdtypes.h" +#include "lltimer.h" +#include "v3dmath.h" +#include "lldarray.h" + +// Class that drives the agent around according to a "script". + +class LLAgentPilot +{ +public: + enum EActionType + { + STRAIGHT, + TURN + }; + + LLAgentPilot(); + virtual ~LLAgentPilot(); + + void load(const char *filename); + void save(const char *filename); + + void startRecord(); + void stopRecord(); + void addAction(enum EActionType action); + + void startPlayback(); + void stopPlayback(); + + void updateTarget(); + + static void startRecord(void *); + static void addWaypoint(void *); + static void saveRecord(void *); + static void startPlayback(void *); + static void stopPlayback(void *); + static BOOL sLoop; + + S32 mNumRuns; + BOOL mQuitAfterRuns; +private: + void setAutopilotTarget(const S32 id); + + BOOL mRecording; + F32 mLastRecordTime; + + BOOL mStarted; + BOOL mPlaying; + S32 mCurrentAction; + + class Action + { + public: + + EActionType mType; + LLVector3d mTarget; + F64 mTime; + }; + + LLDynamicArray<Action> mActions; + LLTimer mTimer; +}; + +extern LLAgentPilot gAgentPilot; + +#endif // LL_LLAGENTPILOT_H |