OP2Utility contains enough functionality to extract the contents of a .PRT file and .BMP file although it needs to be cleaned up a bit. We haven't decided on a front-end application yet. I was considering adding it to OP2Archive and thought this was a better idea than having another application floating around.
Looking for input from the community if anyone has preferences or ideas. Especially if anyone is interested in modding sprites for use with Outpost 2.
We would want to decide on a format for extracting the metadata contained in the .prt file. Hooman has mentioned JSON in the past which seems reasonable. I might have considered XML since it is popular. Whatever format we choose will likely require adding a third party library to OP2Utility. I'd rather not write a parser from hand unless people are against using a third party library. We would need to find one with an agreeable license.
If we want to go with JSON, might want to consider this one: https://github.com/nlohmann/json. It has an agreeable license, is popular, and is in active development. Not sure how I feel about everything being in one header file though.
Phossy has already accomplished .PRT/.BMP extraction and packing here: https://github.com/phossy/op2art. Basically I am repeating functionality using C++ and consolidating it into OP2Utility. Maybe not the best use of time. I believe this program uses YAML for the data.
Console Commands
The console commands get a bit weird since you typically pair op2_art.prt and op2_art.bmp together. The following assumptions might ease the command line interface:
* The prt and bmp file contain the same filename and must have the extension of prt and bmp
* The two files must to be in the same directory
One could have to specify the PRT file for OP2Archive to understand that you want to unpack:
# Extract everything
OP2Archive EXTRACT op2_art.prt
# Extract specific image (no metadata parsed)
OP2Archive EXTRACT op2_art.prt --image 1234
# Extract a couple of images (no metadata parsed)
OP2Archive EXTRACT op2_art.prt --image 1234 2345 3456
I'm not sure about adding special extraction for a specific animation or animation frame. It would require pulling some specific metadata and a presentation format for the pulled bitmaps. Maybe once basic extraction is working we can explore what works or doesn't work here.
-Brett