Convert drivetrain mode from a bool to a number

This lets us support more than 2 drivetrain controller types in
perparation for splines.

Change-Id: I943d6073e6c5facae7223cc6111551a57b039a04
diff --git a/frc971/control_loops/drivetrain/drivetrain.cc b/frc971/control_loops/drivetrain/drivetrain.cc
index 523c9b3..62f31fa 100644
--- a/frc971/control_loops/drivetrain/drivetrain.cc
+++ b/frc971/control_loops/drivetrain/drivetrain.cc
@@ -242,9 +242,9 @@
 
   dt_openloop_.SetPosition(position, left_gear_, right_gear_);
 
-  bool control_loop_driving = false;
+  int controller_type = 0;
   if (goal) {
-    control_loop_driving = goal->control_loop_driving;
+    controller_type = goal->controller_type;
 
     dt_closedloop_.SetGoal(*goal);
     dt_openloop_.SetGoal(*goal);
@@ -252,13 +252,15 @@
 
   dt_openloop_.Update();
 
-  if (control_loop_driving) {
-    dt_closedloop_.Update(output != NULL);
-    dt_closedloop_.SetOutput(output);
-  } else {
-    dt_openloop_.SetOutput(output);
-    // TODO(austin): Set profile to current spot.
-    dt_closedloop_.Update(false);
+  dt_closedloop_.Update(output != NULL && controller_type == 1);
+
+  switch (controller_type) {
+    case 0:
+      dt_openloop_.SetOutput(output);
+      break;
+    case 1:
+      dt_closedloop_.SetOutput(output);
+      break;
   }
 
   // The output should now contain the shift request.