summaryrefslogtreecommitdiff
path: root/NET/worlds/scape/SequenceActionState.java
diff options
context:
space:
mode:
Diffstat (limited to 'NET/worlds/scape/SequenceActionState.java')
-rw-r--r--NET/worlds/scape/SequenceActionState.java314
1 files changed, 314 insertions, 0 deletions
diff --git a/NET/worlds/scape/SequenceActionState.java b/NET/worlds/scape/SequenceActionState.java
new file mode 100644
index 0000000..a427c87
--- /dev/null
+++ b/NET/worlds/scape/SequenceActionState.java
@@ -0,0 +1,314 @@
+/* */ package NET.worlds.scape;
+/* */
+/* */ import java.io.IOException;
+/* */ import java.util.Vector;
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ class SequenceActionState
+/* */ implements Persister
+/* */ {
+/* */ int currentLoop;
+/* */ boolean loopInfinite;
+/* */ Vector<Action> actions;
+/* */ Persister seqID;
+/* */ int currentAct;
+/* */
+/* */ SequenceActionState() {}
+/* */
+/* */ SequenceActionState(SequenceAction sa)
+/* */ {
+/* 226 */ this.currentLoop = sa.loopCount;
+/* 227 */ this.loopInfinite = sa.loopInfinite;
+/* */
+/* 229 */ this.actions = ((Vector)sa.actions.clone());
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ boolean run(Event evt)
+/* */ {
+/* 238 */ if ((this.currentLoop <= 0) && (!this.loopInfinite)) {
+/* 239 */ return false;
+/* */ }
+/* 243 */ for (;
+/* */
+/* 243 */ this.currentAct < this.actions.size(); this.currentAct += 1)
+/* */ {
+/* 245 */ Action act = (Action)this.actions.elementAt(this.currentAct);
+/* */
+/* */
+/* 248 */ if ((this.seqID = act.trigger(evt, this.seqID)) != null)
+/* 249 */ return true;
+/* */ }
+/* 251 */ this.currentAct = 0;
+/* */
+/* 253 */ if (this.currentLoop > 0) {
+/* 254 */ this.currentLoop -= 1;
+/* */ }
+/* 256 */ return true;
+/* */ }
+/* */
+/* */ public String toString()
+/* */ {
+/* 261 */ String stateString = "Action #" + this.currentAct + " of loop " + this.currentLoop +
+/* 262 */ ", status " + this.seqID;
+/* 263 */ if (!this.loopInfinite)
+/* 264 */ stateString = stateString + " NOT";
+/* 265 */ stateString = stateString + " Infinite";
+/* */
+/* 267 */ return stateString;
+/* */ }
+/* */
+/* */
+/* */
+/* 272 */ private static Object classCookie = new Object();
+/* */
+/* */ public void saveState(Saver s) throws IOException
+/* */ {
+/* 276 */ s.saveVersion(1, classCookie);
+/* 277 */ s.saveBoolean(this.loopInfinite);
+/* 278 */ s.saveInt(this.currentLoop);
+/* 279 */ s.saveInt(this.currentAct);
+/* 280 */ s.saveVector(this.actions);
+/* 281 */ s.saveMaybeNull(this.seqID);
+/* */ }
+/* */
+/* */ public void restoreState(Restorer r) throws IOException, TooNewException
+/* */ {
+/* 286 */ switch (r.restoreVersion(classCookie)) {
+/* */ case 1:
+/* 288 */ this.loopInfinite = r.restoreBoolean();
+/* 289 */ this.currentLoop = r.restoreInt();
+/* 290 */ this.currentAct = r.restoreInt();
+/* 291 */ this.actions = r.restoreVectorActions();
+/* 292 */ this.seqID = r.restoreMaybeNull();
+/* 293 */ break;
+/* */ case 0:
+/* 295 */ this.currentLoop = r.restoreInt();
+/* 296 */ this.loopInfinite = (this.currentLoop < 0);
+/* 297 */ this.currentLoop = Math.abs(this.currentLoop);
+/* 298 */ this.currentAct = r.restoreInt();
+/* 299 */ this.actions = r.restoreVectorActions();
+/* 300 */ this.seqID = r.restoreMaybeNull();
+/* 301 */ break;
+/* */ default:
+/* 303 */ throw new TooNewException();
+/* */ }
+/* */ }
+/* */
+/* */ public void postRestore(int version) {}
+/* */ }
+
+
+/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\scape\SequenceActionState.class
+ * Java compiler version: 6 (50.0)
+ * JD-Core Version: 0.7.1
+ */ \ No newline at end of file