Monthly Archives: December 2017

Bits of 101


* Miscellaneous

GCA now creates a charbulk() tag for the weapon’s character-specific bulk(). It uses the simplest math version, which means bonuses can be targeted to ‘bulk’, but GCA expects it to be just simple integer math stuff. All places where GCA displays weapon info have been updated to show charbulk().

I have changed how GCA applies the maximum applicable ST cap for muscle-powered weapons. Normally, three times the weapon’s ST value is the maximum, and GCA was doing that for melee weapons, but not for thrown weapons. GCA will now apply a ST cap to all muscle-powered weapons, melee or thrown or whatever. However, because it’s now easier to apply this to weapons that perhaps aren’t actually meant to be capped (either by RAW or in your campaign), GCA now supports a new stcap() tag (mode-based and math-enabled) to turn off capping, or to change the multiplier value if desired. Use stcap(no) to turn off the max ST cap, or use stcap(X), replacing X with a value, to replace the 3*ST cap with an X*ST cap.

GCA should save/load the new stcap() and charbulk() data.

Fixed the oversight in Loadout Manager that caused sorting by the values in the Qty or Wgt columns to be done incorrectly.

Made a small change to the Protection Box paint routine.

Updated a bunch of places in code to perform explicit type conversions, rather than implicit ones, and to change some instances of late-binding to early-binding where possible.

With loadouts, characters now have the option of having all unassigned items treated as if they’re part of the currently active loadout. The default behavior requires that for any item to be included in a loadout it has to be specifically added to that loadout. This new option will include the unassigned items as part of the current loadout for purposes of encumbrance and activation/deactivation (if you’re using that).

Updated the Encumbrance & Move box to show “Loadout (+ Unassigned)” for the current loadout if the IncludeUnassignedItemsInCurrentLoadout option is enabled.

I have added an interface to Options for GCA’s automatic duplicate trait refusal, so it can be turned on or off by trait type. I have also changed the default settings to begin with auto-refusal of dupes turned off, except for attributes (where duplicates are never allowed), and for spells and templates, where IMO auto-refusing dupes still makes more sense.


Updated to support ‘charbulk’ and ‘stcap’ elements.

Updated to support IncludeUnassignedItemsInCurrentLoadout option.

* TagDefs.XML

Updated to include bulk(), charbulk(), stcap(), highlight(), and drnotes().

Fixed some XML character encoding errors.

* Plugins

Sheets were updated to show charbulk() instead of bulk() for attack blocks.

Fixed a couple incorrect labels for weapon data in SimpleTextExport.

Fixed a reference in testOfficialCharacterSheet to the /graphics/ folder, which is no longer being used.

Back to bits


* Miscellaneous

Removed option to save as a GCA4 character file, since there are too many features within characters that have no way to downgrade gracefully to something supported by GCA4.

Fixed a bug where trying to Copy Modifiers when the traits had no modifiers would result in a crash message.

Noticed that somewhere along the line, the skill types for skills and spells had been lost from the display in the character lists. Rather than build it into the default DisplayName of the trait, I added a column for it in the character lists.

Updated the character trait lists in Unified and Classic Views to better respond/resize when an item is being word-wrapped, and its length changes (such as when adding or removing modifiers).

Now post a little message in the Info pane on startup about beta testing.

* Updater

I have updated the Updater within GCA, and the corresponding tools used for updates. This should allow for updating all the system files that don’t require an actual installer. The process used for library updates no longer works as it did, but the new system should fully encapsulate it, as well as adding the needed support for updating other things.

The ‘updates available’ notice should be a bit smarter in how it compiles the message to the user, and now actually supports using RTF messages as originally intended.

Added support for some additional stuff in the Updater code, which helps me in testing but may not ever be needed otherwise: update info xml files can be in a secure area; can have different update channels (currently compiled into GCA, so it supports only a single specific channel in a released build).

Modified things so that the code for accessing/using the login dialog was a bit more reusable, so I could reuse it.

Added the ability to include commands in the Updater information, to run before and/or after the general files are copied. No actual commands have been defined yet, however.

Fixed a bug in comparing version info.

* Pasting

Some of the work done previously to catch and correct for lost parent or child items resulted in the system losing its ability to paste traits that had parent-child relationships; the relationships would be removed, because all parents and children would have unmatching keys at various points in the process, before GCA had a chance to fix up all the references. I have addressed this issue, so that such traits should now insert correctly again.

I have added a snippet of code to allow for some unrelated garbage text before the opening XML tags when pasting XML into GCA. This should add a bit of robustness when pasting into GCA traits copied from elsewhere, such as a forum post, when the cutting of the XML wasn’t precise and some other text was included.

* Controls and Plugins

Since my development environment was rebuilt after my crash, my third-party controls and various other files were updated or otherwise different from the ones used before. As a result, my plug-ins have been rebuilt, and yours may need to be as well. (Plugins that are compiled by GCA on startup should be just fine.)