made all the shooter tests pass again

There were a couple of little bugs in other stuff that broke the tests.
diff --git a/aos/linux_code/queue-tmpl.h b/aos/linux_code/queue-tmpl.h
index 98091cf..15029986 100644
--- a/aos/linux_code/queue-tmpl.h
+++ b/aos/linux_code/queue-tmpl.h
@@ -177,6 +177,7 @@
     queue_ = NULL;
     queue_msg_.set_queue(NULL);
   }
+  index_ = 0;
 }
 
 template <class T>
diff --git a/frc971/control_loops/shooter/shooter.cc b/frc971/control_loops/shooter/shooter.cc
index fbd8c54..4a3e6e4 100755
--- a/frc971/control_loops/shooter/shooter.cc
+++ b/frc971/control_loops/shooter/shooter.cc
@@ -192,7 +192,8 @@
   // Don't even let the control loops run.
   bool shooter_loop_disable = false;
 
-  const bool disabled = !::aos::robot_state->enabled;
+  const bool disabled =
+      !::aos::robot_state.get() || !::aos::robot_state->enabled;
   // If true, move the goal if we saturate.
   bool cap_goal = false;
 
diff --git a/frc971/control_loops/shooter/shooter_lib_test.cc b/frc971/control_loops/shooter/shooter_lib_test.cc
index ceb3beb..669e147 100755
--- a/frc971/control_loops/shooter/shooter_lib_test.cc
+++ b/frc971/control_loops/shooter/shooter_lib_test.cc
@@ -472,7 +472,7 @@
 // power.
 TEST_F(ShooterTest, LoadTooFar) {
   shooter_queue_group_.goal.MakeWithBuilder().shot_power(500.0).Send();
-  for (int i = 0; i < 300; ++i) {
+  for (int i = 0; i < 150; ++i) {
     shooter_motor_plant_.SendPositionMessage();
     shooter_motor_.Iterate();
     shooter_motor_plant_.Simulate();