Disabled Autonomous Selection/Competition Template Release (With Mirroring)

I have decided to release custom competition template our teams have been using over the past years. The reason I decided to do this is because of the new regulation that you cannot select your autonomous at the very beginning of the autonomous period. I felt bad for young teams, so I decided to release this.

Features:
Autonomous selection takes place during the disabled period of the match via a LCD(no timeouts needed like in the pre-autonomous function)

Each autonomous is stored in a single file for easy access

13 different routines are available: 3 red left, 3 red right, 3 blue left, 3 blue right, 1 skills

Routine names are very generic (red, blue, left, right) so this program is not game specific

Autonomous mirroring: allows an autonomous to be mirrored for the opposite side of the field. Note: this works best with a time based autonomous because sensor values are not swapped (maybe in a future version?)

E-Stop button: If the E-Stop is pressed during autonomous, the autonomous is ended.

Single and dual controller switching: if 1 controller is connected, a different program will run compared to if 2 controllers are used

Standard functions library: Some useful functions to save on code in a program
—*joystickDeadzone *-creates a deadzone on a joystick, returns value
—*mecanumStrafeBtns *-mecanum drive with tank drive and strafe on back buttons, holding both buttons=full speed, 1 button= half speed
—*mecanumJoystick *-standard 3 axis joystick mecanum drive
—*digitalMotor *-applies a set of digital buttons to control a motor
—*digitalOutLatch *-applies a set of digital buttons to control a pneumatic State, holds until opposite button is pressed

Usage:
Use the Main Template.c file-this is how everything should be setup
Normal driver code can be written in the 1 and 2 controller portions of operator control
Pre autonomous code can be added
The inverse motor array can be set up to allow motor mirroring in autonomous.-see instructions in main template.c
Autonomous code is written in the given code files that can be found by View-User Include files- autonomous name

[ATTACH]8464[/ATTACH]

Please post any bugs, questions, or requested features.
Disclaimer: I am not responsible if this program causes you robot to malfunction or sends smoke pouring from your cortex
Disabled Autonomous Selection.zip (6.55 KB)

Reserved for future updates/change log