Saturday, June 7, 2014

FMod - Those New Features

Today is a great day for Abiathar!

I first changed all the business with RangeConfigEntry, making the AppliesTo entry that appears on every InfoplaneInspector record to be a list of integers. That cut down the file size by 10KB, only reducing the total size to 50KB, but that was still a huge amount of data being wasted.

I then added a PatchGenerator entry to the file config, containing the extension for the %ext line and the directives for adding maphead, mapdict, and tileinfo. The tileinfo is always a %patchfile with an offset, but only KDRPatch is missing the nice %maphead directive which can be used for the Galaxy episodes. There is now a "Write Patches" entry in the File menu, which dumps the appropriate patcher (record added to DefaultResxLookup.GetFileSet), writes the patch file, and creates a short little batch file to run the thing. This should cut down on the number of e-mails I get about Abiathar.

Then, to make distribution of beta versions easier, I added a "have beta key?" menu option under Help. It doesn't appear unless the appropriate option is set in editor.aconf, so it shouldn't confuse less advanced users. The menu command prompts the user for a key, which will be used to fetch an update file from my Dropbox and update in a similar method to the stable version. If the update file does not exist, Abiathar will get a 404 and tell the user that the beta key is invalid - no secrets are stored in the client program.

Next, I created a simple little template manager to facilitate sharing of the profile/template entries. It required a little reworking of the Dependency Collector to load the updated defaults.aconf, but it's working quite well. It even allows the user to create a template out of a dependency binder, which can be useful if sent one with special configuration.

Finally, because this confuses new modders, I started to tackle the absorption of UNLZEXE. I already had the Windows version of the utility packed in the File Emitter, so it was trivial to add an "Un-LZ EXE" utility to the File menu. It just dumps the utility, runs it on the user-specified file, deletes the old version, and renames the "exenew" back to the normal name. Of course, it does checks to make sure that decompression really happened before deleting stuff.

Abiathar v1.4 is looking great! Tomorrow, some more testing, documentation updates, and maybe the release!

No comments:

Post a Comment