Author Archives: Armin

Version 5.0.220 Released

GURPS Character Assistant 5.0.220.0 has been released. Get the updated installer from your Warehouse 23 downloads page. (I’ve posted some help on doing that at both the new and old stores here.)

You get the updated installer by re-downloading the ZIP file from your Warehouse 23 account, and running the gca5setup_5.0.220.release.exe program that it contains (see the instructions link above). There is no separate update-only installer, you have to download and reinstall the program. It will not overwrite your personal data, it will overwrite your installation of GCA with the new and updated version.

This update includes all the changes mentioned in Build Notes posts since the last Release.
This time, it’s a bug fix release, fixing two issues:

    • For some reason, GCA would stop responding if you were in an edit field on a Classic View trait list and you clicked on a tab to change to a different list or view. That should no longer happen.
    • Fixes a critical bug related to item weight calculations introduced in b213 (released with version 5.0.218).

A bit of rock dome (b219)

b219

* Bug Fixes

For some reason, GCA would stop responding if you were in an edit field on a Classic View trait list and you clicked on a tab to change to a different list or view. That should no longer happen.

The fixes made to account for base weight usage for equipment, formulas, and modifiers in an earlier build had a serious issue: the base weight was being reconverted every time from the converted value, not from the original source base weight. <sigh> This was a stupid mistake on my part, that I somehow overlooked accounting for at the start of the calculation process. Fixed now.

Version 5.0.218 released

GURPS Character Assistant 5.0.218.0 has been released. Get the updated installer from your Warehouse 23 downloads page. (I’ve posted some help on doing that at both the new and old stores here.)

You get the updated installer by re-downloading the ZIP file from your Warehouse 23 account, and running the gca5setup_5.0.218.release.exe program that it contains (see the instructions link above). There is no separate update-only installer, you have to download and reinstall the program. It will not overwrite your personal data, it will overwrite your installation of GCA with the new and updated version.

This update includes all the changes mentioned in Build Notes posts since the last Release. This time around that is mostly some bug fixes and accessibility improvements, but here are various new things that may be of interest:

    • As usual, a variety of bug fixes, small adjustments, and general improvements
    • Fixed an issue with automatic weight conversions and using the ::baseweight reference
    • Addressed some issues related to modes and how damage might be calculated, in order to allow for a better user experience and less confusion and mistakes in damage formulas
    • Updated handling of damage with special text, such as ‘slam+3’ or ‘HT+formula’, and new user-damage-prefix support using square brackets ‘[prefix]+stuff’
    • Many accessibility fixes and improvements
    • A new Point Summary dialog, both for reference and as an accessible-friendly means of checking points spent
    • Updated gear menu, with new options and handling, for Unified View trait boxes
    • Added a new, bigger Zoom level
    • Added an option to have Templates tracked as their own point expenditure category
    • A new type of plugin which will allow coders to create plugins that users can launch from the Launch menu to do work, either as one-time jobs or as tools that stick around and work while you use GCA

A bit of color (b217)

b217

* Point Summary dialog

I was using the wrong color set, so that is now fixed.

I was using a fixed ‘red’ color for warnings, which didn’t work well on many backgrounds. I’m now using a ‘red’ color on a ‘white’ background which should read clearly regardless of color settings, although it will be rather bright on an otherwise dark configuration.

More various bits of things (b216)

b216

* Miscellaneous

Made some adjustments to the text output and display of the Point Summary window.

The order of the tabs in Classic View had Equipment appearing before Templates, which is backward from intended. I reversed them.

* Separate Template Costs

I have surfaced an option to track points spent on Templates separately from Advantages and Disadvantages, due to requests. That is now available in Options under Windows & Boxes.

GCA will now display a block in the points bar for Templates, if GCA is set to track those separately, and if there is a non-zero point value for them. When you change the setting in Options, the Points Bar at the bottom of the window will not automatically update to include/exclude the Templates block. You will need to do something to force that change, such as hitting F5 to recalculate.

Be aware that with this option on, you will be potentially mixing positive and negative point values into a single total, which may be misleading to you.

The option to track Template points separately was not supported by any of the included sheets when showing the ‘summarized’ totals. I have updated the points boxes on the sheets to include Templates when this option may be in use with the summarized display, but Templates will still only be shown if the total is non-zero.

* Zoom

Made some minor adjustments to the Transform Manager and the Loadout Manager to try and get their central grids to respect the font size for the user’s zoom level.

The Library Pane and Layout buttons on the Unified View toolbar should now size back down correctly when you switch off Jumbo toolbar buttons.

I have added a new Extra Large option to the Zoom menu. I can’t guarantee that every dialog will fit on everyone’s screen when using this option, so if things don’t fit and can’t be resized to work, I’m afraid you’ll have to use a smaller zoom. But let me know! I may be able to redesign the problematic windows to work differently. Note: The location boxes for the various protection displays will almost certainly be too small, with clipped text. Those boxes are set using fixed pixel sizes and locations in order to work on the images, and that doesn’t match well with font-based scaling for the text within them.

* Classic View Attributes

Added some additional options to the right-click menu for Attributes in Classic View: Modifiers, to open the Modifiers dialog; Highlight, to make available the highlighting options; and GM Sheet, to include or exclude from the traits marked for inclusion on the GM Sheet (or for other things that use those watched traits).

Not all output options are necessarily set up to allow for Attributes on the GM Sheet watchlist, so you may have to let me know if they don’t appear somewhere, or in some fashion, that you think they should. (They should automatically appear in Special Abilities on the GM Control Sheet itself.)

* Accessibilty: Input box

The Input box used when GCA needed a quick user entry, such as in the #Input directives and when changing a profile name, used a built-in feature of my programming framework. Unfortunately, that feature did not appear to support accessibility features. It has now been replaced in all use cases by my own input box dialog, which has been updated a bit to better handle accessibility needs.

Character handling has now been plumbed with a new event and handler to allow for requesting this new Input.

* Sheets

The Official Character Sheet has been updated to reflect the use of Separate Template Costs in the Point Summary when the Templates total is non-zero.

The GCA Prime Sheet and Spring Bandit Sheet have been updated to reflect the use of Separate Template Costs in the Point Summary when showing ‘summarized’ point totals and the Templates total is non-zero.

Plugging in a bit of accessibility (b215)

b215

* Editing and Calculations

Edits made to traits in the Edit Traits dialog that are supposed to create new links between traits, such as changes to default() or needs(), were not prompting those links to be created. A full Recalculate All (F5) would update everything correctly, but just changing something that is newly defaulted from, for example, wouldn’t flow the change through as expected. That should now be fixed; GCA will refresh linkages related to edited traits after the Edit Traits dialog is closed.

* Unified View Trait boxes

The Options menu from the gear button has been simplified a bit, as some options are just available from a More Options selection that launches an Options dialog.

The trait boxes can now assign a function to right-clicking the gear button. This function can be one of these options: do nothing (the default), open the Options menu (what left-clicking does), or launch the traits dialog. This should improve usability for tablets and for those who have trouble double-clicking the button when that option is set. This is available through More Options on the gear menu.

I’ve also added an option to swap the left-click and right-click functions, so that you can have right-click be the Options menu and left-click do one of the other things. If you also want to have double-click to launch the Traits dialog enabled, that must always be double left-clicking.

Finally, I added an option to allow mimicing the gear button clicking behavior across the entire title bar. This means right-clicking or left-clicking on the ‘Skills’ header area will work the same as clicking on the gear button, although the area won’t highlight like the button does (and double-clicking is not handled). The title area does not include the column heads, since those are clicked on to change sorting. (To be consistent across Unified View, this option should be available for other boxes, also, but it is not at this time.)

Since each trait box remembers its own individual settings, you’ll unfortunately have to set the desired options individually for each one.

* Called Plugins

I have created a new class of plugin, the Called Plugin using the ICalledPlugin Interface, which doesn’t do anything until you launch it from the Tools > Launch submenu. Authors of these plugins will have to manage their own UI if needed, which does add some complexity. GCA does provide a SheetOptionsManager for persisting user settings, however.

I have created an example of this kind of plugin that uses a form to interact with the user, it is cleverly called ‘CalledPluginExample’. Note that such a plugin must instantiate the form independently as part of its normal operation; DO NOT use the form itself as the plugin. Get the example plugin at my GCA5 blog here: https://www.misersoft.com/gca5/?page_id=1108

Most of the required interface isn’t actually needed for a form-less plugin; structurally that’s pretty simple: Start gets called, do some work there, raise the ShutDown event at the end.

For sheet options for this type of plugin, GCA calls CreateOptions to create them, and will call SetOptions when it launches the plugin, before it calls Start. If you use the ShowOptions event to show the user an Options dialog, GCA will also call SetOptions after the user is done with the Options dialog, but it will not call Start again. This kind of plugin does not have sheet option profiles available, so all options saved and loaded by GCA will be stored under the PluginName alone.

Note that these plugins can sit around and work over time. If you launch a window, for example, the window is non-modal and can be refreshed and interacted with alongside GCA. The example plugin does this to some extent, updating the interface as traits and characters change.

* Accessibilty: Point Summary dialog

I have created a new dialog, available from the Character menu. This Point Summary dialog simply shows the point summary information in text format as a serious of text lines. Since the points bar at the bottom of the main window is not really accessible to screen readers, adding this dialog seemed like the best route to making that information available.

* Accessibilty: MiserCheckedListBox

The custom checked listbox used in various places, such as in the Choose Multi dialog, did not allow you to check the selected item using the spacebar. That is fixed.

In addition, the list did not correctly return any useful information for the accessibility text, which made using the listbox impossible for screen readers. That is now fixed.

In addition to adding useful text returns, the list has been updated to rebuild when the state of a checkbox changes, so that the returned text will remain correct (and the reader should re-read the changed state; at least Windows Reader does).

* Accessibilty: ChooseMulti dialog

In addition to the changes resulting from updating the MiserCheckedListBox, the hint bar at the bottom will now return accessibility text reflecting the current status of the desired selections, so tabbing to it will provide feedback on what’s still required, if anything.

* Accessibilty: Campaign Log

Fixed the return text for the button that changes the order of the entries in the All Log Entries list.

Added actual text returns for the entries in the All Log Entries list.

In the Points & Money Earned pane, added explicit names for the various fields, and fixed the tab order.

Added explicit names for the fields in the Selected Log Entry pane.

Changed returns for the Search, Add, and Delete buttons.

Adjusted tab order.

The text of the log entries in the list would get repainted when changes were made, but the Accessible text returned to a screen reader would not be updated unless the list was rebuilt. I have adjusted the refresh process so that the list will get rebuilt. This may result in the position of the entry within the list changing when editing a log entry in the edit area, but the selected list entry should still remain visible and selected in the list.

* Accessibilty: Classic View

Added button names for the buttons in the filter panes for the Classic View standard trait panes.

As with many other things that use listboxes, the text for traits would not get updated for screen readers unless the item itself was replaced, even though it appeared correctly on-screen. That should now be fixed for the various trait lists in Classic View.

* Accessibilty: Loadout Manager

Added column names for the Item, Quantity, and Weight columns in the grid.

In the Acitve Loadout pane, changed the reported text for the fields of Encumbrance Level and Load Weight to actually report “Encumbrance Level” and “Load Weight”.

The gear menu button should now report “Gear menu”.

Changed the tab order a bit.

 

I was going to rant a bit about Accessibility, but just rambled on a bit instead

Accessibility stuff can be challenging. I’ve spent hours trying to figure out how I can have listboxes correctly report their underlying values through the Accessible properties, and have completely failed to find any solution. Even finding how listbox items are used in such a context has proven more than I can find. Searches of all sorts just bring up either the most basic stuff (how do I use a listbox level stuff) or leads me to the Microsoft docs, which are useless. Very frustrating.

What I’ve ended up doing is a mix of two things: (1) rebuilding the list during the refresh of data, or (2) replacing the dirty items in place during the refresh. I tended toward the full rebuilding on smaller lists in places where there’s already less robust handling, and I have so far used the replace-in-place method for the Classic View trait lists. Either way is a performance hit versus the simple repainting that I was doing, or what I wanted to do which was create a new AccessibleObject that could report itself correctly. However, at least now I have something that works, so I’m just not going to waste my time trying to find the best solution I was looking for.

Now I think I only have to write a new InputBox for simple ‘enter a value’ options used by the Input directives in lots of places. InputBox is a built-in feature from Microsoft, so I was pretty surprised that it appears to have no Accessibility support. Anyway, once that’s done, I think I’ll have the current set of Accessibility issues clear.

And there are a lot of places with terrible tab orders, which I should try to find and fix as well.

Package Updates

* Official Character Sheet (now 1.0.24)

Official Character Sheet updated so that the names of weapons in the weapons list will match the names in the Equipment lists. (Now using DisplayName instead of FullNameTL, so no more /TL)

Package Updates

* Old-Style XML Export (1.0.1)

Initial release of this new export plugin.

Exports a character in the XML format exported by GCA4. GCA5 save files are natively XML, but complex, and this format allows for continued use of third-party tools that were created to use the simplistic CDATA-heavy XML output that GCA4 exported.