diff --git a/TeamCode/src/main/java/org/cyberarm/engine/V2/CyberarmEngine.java b/TeamCode/src/main/java/org/cyberarm/engine/V2/CyberarmEngine.java index 3a6994c..4a03a27 100644 --- a/TeamCode/src/main/java/org/cyberarm/engine/V2/CyberarmEngine.java +++ b/TeamCode/src/main/java/org/cyberarm/engine/V2/CyberarmEngine.java @@ -170,6 +170,7 @@ public abstract class CyberarmEngine extends OpMode { new Thread(new Runnable() { @Override public void run() { + finalState.prestart(); finalState.start(); finalState.startTime = System.currentTimeMillis(); finalState.run(); @@ -202,6 +203,8 @@ public abstract class CyberarmEngine extends OpMode { */ public CyberarmState insertState(CyberarmState query, CyberarmState state) { int index = cyberarmStates.indexOf(query) + query.insertOffset; + Log.i(TAG, "Adding cyberarmState "+ state.getClass()); + cyberarmStates.add(index, state); query.insertOffset++; diff --git a/TeamCode/src/main/java/org/cyberarm/engine/V2/CyberarmState.java b/TeamCode/src/main/java/org/cyberarm/engine/V2/CyberarmState.java index 1a91428..b0dc1b8 100644 --- a/TeamCode/src/main/java/org/cyberarm/engine/V2/CyberarmState.java +++ b/TeamCode/src/main/java/org/cyberarm/engine/V2/CyberarmState.java @@ -22,6 +22,13 @@ public abstract class CyberarmState implements Runnable { public void init() { } + /** + * Called just before start to ensure state is in correct state + */ + protected void prestart() { + isRunning = true; + } + /** * Called when state has begin to run */ @@ -39,7 +46,6 @@ public abstract class CyberarmState implements Runnable { */ @Override public void run() { - isRunning = true; while (!hasFinished) { exec(); }