Straightened out the button bugs and started on the XNA refactor, which is going to be tedious and annoying. The goal is to not have any references to XNA in the engine project; instead, all the XNA-specific objects will live in a separate project and implement interfaces from the engine. It won't be too bad to redo all of the structs and add a DrawManager, but I need to make a TimeManager now to keep the GameTime and figure out how I want things to interact with it. Although on second thought, I'll probably just give it a method to return the current time and then keep everything else exactly the same, so that won't be too bad either.
Just remembered I have homework, so I'm gonna go do that now.