It’s been almost a month since the last development report, so it’s time for another update. While there have been somewhat substantial changes in that time, most aren’t user-visible, and some haven’t even been pushed to Launchpad yet. (I’m thinking about switching to Github and Git, since I can’t switch to a branch to work on a new feature with the “junk” area of Launchpad.)
The one major change that I actually pushed to Launchpad was a general extension and clean-up of the map format: the
kind property is now (nearly) universally used for specifying the kinds of things (shrubs, animals, stone, minerals, and so on), and towns can now have names. Using an
<event> tag with a
kind tag to specify the kind of event is no longer supported. This was the second item on last month’s roadmap, but I haven’t implemented the “most things should have an owner” feature yet, and only towns, villages, units, and fortresses have names yet.
Next, I removed the old, deprecated map reader and started writing yet another one, to replace the “SimpleXML” reader. The new implementation (which I’m calling “ReaderNG”) should be more CPU- and memory-efficient, and easier to work with for future extensions (if I want to represent Unit internals differently in the viewer and the XML, it’d be tricky at best to read them in the “SimpleXML,” while in “ReaderNG” I can just implement the reading in the Unit reader.
As part of verifying that the new map-reading architecture is correct, I started extending the test suite to cover deprecated XML idioms. (The first step was to make it possible to change warnings to be fatal.) Because I haven’t finished this, and haven’t tested the new reader’s correctness enough to be sure of it, I haven’t pushed the new reader to Launchpad yet.
The roadmap is much the same as last month:
First, I hope to find (or be pointed to) images for my remaining icon needs. (See last month’s roadmap for the list.)
Second, I plan to finish the XML reader test suite, add support for deprecated forms to the new reader, switch to it, and deprecate the old reader.
Third, I hope to continue the XML vocabulary standardization and improvement (names, owners, unit details …)
Fourth, I plan to implement editing of features.
Fifth, I plan to add support for an
<include> tag. (The other major advantage of the “ReaderNG” architecture is that it’s much simpler to implement this using it.)
Sixth, I hope to add a “Find” option.
Seventh, I plan to add larger images (“portraits”) for some kinds of fixtures (units, possibly cities, perhaps animals), and more generally the ability for some fixtures to have custom images and icons.
Among other planned features.