Made a small visual change to the Save Body Type dialog.
GCA is now saving and loading the character’s body image to the character file (if it’s actually set to something other than the built-in default) as Base64 encoded data.
Updated Protection box in Unified View to work with embedded character body images.
Updated GetProtectionPaperDoll() routine for sheets to work with embedded character body images.
* Protection Dialog
Corrected a tooltip on the Locations tab.
Changed the Save To… button to Save Body… on the Locations tab.
Added a browse button for the Body Image on the Locations tab, allowing you to load a custom image directly.
* #any, #best, and #worst
In places that support the special directives #any, #best, and #worst in name extensions (currently GetItemVal, GetItemTextVal, @ItemHasMod, and Needs), I have expanded support to include the #none directive, to explicitly look only for traits with no specified name extension.
I have also added support for clauses to contract the acceptable pool of traits by the name extensions found, should you wish to do that. All the directives *excluding #none* support the new ‘of’ and ‘except’ clauses. ‘Of’ specifies the extensions that are valid, and only traits with one of those specified extensions will be considered. ‘Except’ specifies the extensions that are not valid, and only traits that don’t have a specified extension will be considered.
So, here’s a completely arbitrary and silly example of the needs() usage:
needs(SK:Animal Handling (#any of equines, big cats) = 12, SK:Animal Handling (#best) > 15, SK:Animal Handling (#worst except "raptors") < 8)
In this example, only the
Animal Handling (Equines) or
Animal Handling (Big Cats) skills will satisfy the need for an Animal Handling skill at 12 or higher, but any version at all will work to satisfy the need that some skill is over 15, and finally, the worst Animal Handling skill must be less than 8, but can’t be
Animal Handling (Raptors) because that’s excluded.
The templates are like this:
#any [ of List ][ except List ]
#best [ of List ][ except List ]
#worst [ of List ][ except List ]
List is a list of the applicable name extensions for that clause. Enclose individual list items within quotes or braces if they include a comma or one of the other keywords. The ‘of’ and ‘except’ clauses should never have any reason to be used at the same time, but should you do so, order isn’t important as long as the clauses always follow the #keyword.
If it’s not obvious, #none doesn’t support the new clauses because it retrieves only traits without extensions, so there’s nothing to check against from the new clauses.
* Books & Data
Included updated book files from Eric.
Added the ‘bodyimage’ element to the gca5.xsd file, for the character’s saved body image (used for the protection paper doll).