* $If() should now support ElseIf blocks.
* Updated verbose data file logging a bit.
* Select()/SelectX() handling will now support use of mixedtype(yes) as synonym for multitype(yes).
* GCA will now reject #newitem() command in Select()/SelectX() that don’t include proper prefix tags.
* Triggers() processing of the various sub-tags now supports initial $function processing of each tag’s contents. This means, for example, that you could use an $if() function to dynamically allow for different possible versions of the same tag, based on other values.
* Triggers() processing of the various sub-tags now supports #BuildSelectList processing of each tag’s contents. In most cases, #BuildSelectList isn’t necessary, or even makes no sense at all. However, it does allow for one way of dynamically changing the intended content of trigger tags based on previous activity in the triggers() tag sequence.
* Added an option to the View > Zoom menu that makes the toolbar icons jumbo sized to better support touch screens. If this looks promising, I’ll expand it out to jumbo-sizing other features as well.
* In support of the jumbo icons, I’ve been moving most toolbar and button icons to the newer image sets that I have, which support larger sizes and alpha channels. Unfortunately, I don’t have the exact same icons in some cases, so some images will look different from what they have been. And I don’t have a 48×48 shield icon at all, so it’s going to look blocky compared to the other icons.
* Added and improved some stuff on the Protection window.
* Traits may now have the location() tag targeted. GCA will currently only create a charlocation() tag if there are bonuses being applied to location(). However, this does allow us to make the Partial: Location modifiers for Damage Resistance more functional, because now their gives could be changed to something like this one for Partial: Arms:
gives(=-Owner::Level to DR, =+owner::level to owner::dr, =arms+nobase to owner::location$)
which will allow GCA to correctly apply the location-specific DR to the correct locations on the paper doll, and will allow the Protection window to display these limited forms in the From Other Sources listing.
* GCA will no longer automatically upscale the Body part coordinates when reading them from data files.
* GCA will now save/load the body part info for the Body corresponding to the “All unassigned items” locations.
* GCA now supports assigning custom images for body types. You can set these in the data files using the [BodyImages] block, where each section in the block corresponds to a body type, and each line in each section corresponds to an image file to use for the body type. GCA will currently use the first image reference it finds, even if it’s invalid (any invalid image will result in GCA using the default image). We’ll expand things in the future to allow the user to select from multiple options, if available. A BodyImages block might look like this:
Note that valid image types are BMP and PNG and whatever else .Net supports natively. (The test.txt in this example was to provoke an error for testing purposes; text files are not valid images.)
GCA will search for the images in the following order: 1) using any fully qualified path that is specified; 2) using any specified path using the standard shortcut variables (%app%, %sys%, %user%, %userbase%); 3) in the System image bin (%sys%\images\); 4) in the User image bin (%user%\images\).
This will also be expanded in the future to allow for removing images for the specified body types.