Upgrade to C++11.
Upgrade to C++11.
Use new C++11 strongly typed enums.

I'm not convinced this is better at my level of complexity. I'm certain
it's better for large, production projects, but here I think it just
made my code more verbose, mostly due to having to specify which enum
the value is in every time. If not for that, I would definitely prefer
this. Still, I'll hold onto it for awhile.
Replace NULL with nullptr.

Side note: Just noticed my compile time go from 4 seconds to 5 seconds.