The state system is now condensed down and only the GameState class stores the state based data. The SceneEngine and Pathfinder have been combined into a single class. Most importantly (kind of), the state system is working exactly as it should now; objects aren't being marked as modified as soon as they're loaded, they're only loaded once when loading a game, and the correct information is being stored (so on the load screen it shows the scene's name rather than ID) and the time played accumulates properly.
There is only one thing left that I might still refactor and that is the UIManager class. It's working perfectly fine as is, but it kind of bugs me the way that it is set up. Basically I have 3 widgets/controls: VerbSelector, ConversationDisplay, and InventoryDisplay. These are created at load-time and then just displayed via function calls (there's also a collection of SpeechBubbles stored.) They're functioning perfectly fine now that the rest of the system is set up properly, but it's not very elegant. I guess if it's working properly I should just leave it be.
Tomorrow I will tackle the in-game/pause menu and then the options menu (not even sure this is necessary though as the only thing it would really have is a volume option and I was thinking of having a little icon display on screen for that.) Hopefully I'll have some more screenshots tomorrow.
Blargh, time for bed.