Starting work on the Cheapo import now. This should be a LOT simpler than it was when adding to LemSet, firstly because most (heck, probably
all) the bugs in the Style Extractor have been ironed out by now, and secondly because there are XML parser libraries available for Delphi, so unlike with LemSet (which was written in QB64) I don't have to write an XML parser; I just have to write code that makes use of the parsed XML data, which is the much easier side.
At first it'll just support importing from extracted styles (via Essman's style extractor), but if it's not too difficult to do, I very well may look into directly importing from STY files.
EDIT: Terrain is now loading perfectly fine; haven't coded it to load objects yet.
EDIT: Cheapo graphic sets are now fully loadable. (Extracted ones that is, not directly from the STY file. Direct STY file importing is something that I probably will wait for a later version to include.)
EDIT: Started work on importing LemSet (uncompiled) format now. Convenience aside, an advantage of supporting importing LemSet source files directly rather than compiling them in LemSet then importing the DAT files, is that if the images are in 24-bit color, it'll import them as such, whereas LemSet downgrades to 18-bit (due to current file format limitations) while compiling. Also, it'll be able to export to this format in both fully LemSet-compatible setups, and an "extended" setup that supports new properties LemSet didn't, thus those who prefer to work with INI and image files can edit the graphic sets that way then just use the tool to rebuild them.
EDIT: Terrains are correctly loaded at least from RGB-based LemSet sources (whether in 18-bit mode or 24-bit mode); still need to try 4-bit and 5-bit ones.
EDIT: Seems they're fine. Just for reference, testing so far has been based on the Dirt set (both DOS and NeoLemmix versions), the Tree set from LPII (traditional version), the Circuit set from LPIII, the Galaxy set from Cheapo, and the Horror set from Doomsday Lemmings. The choices were based on the dirt set being a "default" as well as being one that exists in both untouched and NeoLemmix-ised versions, the Tree and Circuit sets just being convenient and somewhat varied options from their respective games (with one being 4-bit and one being 5-bit), the Galaxy set having a large variety of object types as well as both rectangular and circular trigger areas, and the Horror set being pretty much the only (non-converted-from-Cheapo) RGB-based graphic set so far.
EDIT: LemSet importing is now 100% supported!
Next feature I'm going to work on is saving to LemSet format (both a strictly LemSet-compatible format, and a slightly extended one which will save some extra properties that this tool can handle but LemSet can't - the latter is higher priority, but the differences should be so small that a few simple IF branches are all that's needed to differentiate them).
EDIT: A slight change on a previous decision. Due to the relative ease of doing so, most likely, saving in SuperLemmini format will also be supported (though not nessecerially in the first release) for any graphic set that doesn't make use of NeoLemmix-exclusive object types. I may also consider Lix if there's enough demand for it and not too many extra features need to be implemented to support it. I don't intend to support output for any older engines.
EDIT: LemSet-like format exporting successful. I tested an import and an export of a graphic set (importing it also from LemSet file), and the only differences in the INI file were the addition of a few lines specific to this tool (such as one to mark that the images already contain transparency information and don't need to be patched according to a defined transparent color), and that a very small number of values that were absent (and thus LemSet would use default values) are instead explicitly stated, though with values that match the default ones LemSet would've used.
EDIT: Tested again with the "LemSet Compatibility Mode" (which basically generates 100% LemSet-compatible output), the images (apart from the palette image) are identical to the input ones (apart from being in PNG format rather than BMP), the INI file is identical apart from some values being explicitly specified instead of implicitly using defaults. No additional tool-specific lines.
So at this point, the tool can display properties (and the first frame) of pieces, as well as import graphic sets from either compiled GROUNDxO/VGAGRx files, extracted Cheapo styles, or LemSet source files; and export graphic sets to LemSet source files in either fully LemSet-compatible mode or an "extended" mode that contains extra information beyond what LemSet can handle (but within what
this tool can).
The one missing feature is that it doesn't yet preserve any palette entries other than the one used for the builder bricks / minimap; the other ones are still used in one place in NeoLemmix, namely the explosion particles from bombers / stoners.
Nothing is actually
editable yet, so at this point it's just a convertor / viewer, but at this pace it won't be long before it can truly be called an editor.