Adventures in configuration continue. I decided to try and split the project in two: engine and configuration to drive that engine. Most of the changes were surprisingly easy. Apparently I had gotten some things correctly and components were easy to pull apart and move in their own namespaces.
Couple components weren’t so easy though and I was left with nasty references from the engine side to direction of configuration. This of course is against everything I was trying to achieve when I started doing the change.
Two biggest problems currently are the player character creation and randomizing appearance of the potions. Which is partly a good thing, since this gives me a good reason to work on the codes that is responsible holding all various tables used in item and creature generation. I’m probably planning to do simple domain-specific language for configuring those things and try to inject results of the configuration into item and creature generators.