Haven't been as active on this as I would prefer due to work, but there is a fair amount going on that I thought I might update everyone on...
Large scale refactoring in-progress:
1.) Unit testing is now setup using GTest and tests can be added to any Chkdraft code with ease.
2.) Code is now split up into several projects in the solution, introduction of unit tests forces at least some project separation, but to improve performance the solution has been fractured further than would otherwise be required (where before all 261 files had to be recompiled every time taking several minutes, now only the modified project needs to be recompiled), this also further enforces separation of concerns, which was already loosely in place along the mapping core/windows ui lines, and now also on the command system.
3.) Organized documentation of any project configuration settings (project dependencies, predefined macros, any compiler options non-standard to VS2017), configuration in visual studios is a huge pain, organizing and documenting this has helped greatly in this refactor and should help if refactoring again or if parts of the project are reused elsewhere.
3.) Unicode support, following the philosophy UTF-8 everywhere except adjacent to system calls; will be making a larger effort to support internationalization at some point, but for now just making the required high-level changes for full unicode support.
4.) While still a bit tentative I'll most likely be breaking up with SFmpq, StormLib inspired more confidence on the unicode front, has better cross-platform support, is similarly open source, uses an MIT License (same as Chkdraft), doesn't appear to have any further external dependencies to complicate things, and generally seems more up to date.
5.) Commands - much of the framework was finished and tested, but given how complex much of the logic ended up being, it required unit tests to fully iron out, and given the extent of the refactoring required to use commands I wanted any project/solution-level refactors sorted out before going further - meaning unicode and separating out projects in the solution - lest I end up doubling my work later.
TheNitesWhoSay - Clan Aura -
githubReached the top of StarCraft theory crafting 2:12 AM CST, August 2nd, 2014.