summaryrefslogtreecommitdiff
path: root/indra/newview/llagentpilot.h
diff options
context:
space:
mode:
authorJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
committerJames Cook <james@lindenlab.com>2007-01-02 08:33:20 +0000
commit420b91db29485df39fd6e724e782c449158811cb (patch)
treeb471a94563af914d3ed3edd3e856d21cb1b69945 /indra/newview/llagentpilot.h
Print done when done.
Diffstat (limited to 'indra/newview/llagentpilot.h')
-rw-r--r--indra/newview/llagentpilot.h77
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