Category Archives: General

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.

Updating GCA to the Newest Version

GCA can update a lot of the files it uses through the Package Manager in the Check for Updates system. It can even tell you that a new update for itself is available. Unfortunately, GCA can not update its primary program files through this system. To update GCA itself, you have to reinstall it from the setup program available on Warehouse23–the same way you originally installed GCA.

Here’s how you do that.

In the future, SJGames will no longer be updating the GCA available at the OLD store, but for the time being they have graciously updated that download to the current version. If you originally purchased GCA through the NEW store, however, you must download the updated GCA installer from there.

Continue reading

Probably no December release

It looks like I’m going to miss the release for December that I had planned on. I’m trying to fix a dialog display issue that appears to be the result of Windows 11 interactions, but I don’t have Windows 11 myself. So it’s going very slowly.

I’m continuing to fix new bugs as people find them. I’m continuing to add support for new things. I’m just not going to make this particular informally intended release date.

Although I should probably point out that I had always intended to release updates quarterly, at the fastest. They have occurred more often than that so far due to various crash-bugs that kept coming up. If those are mostly trapped at this point, the release pace should continue to be a bit slower in the future.

(Package updates, for books and sheets, available through the Check for Updates package manager, will continue to happen whenever they need to happen, as quickly as they need to happen.)

b197 Issues

We’ve had a few bugs reported, including Select dialogs not correctly limiting trait selection levels or points, and Party Log crashing. We hope to have another update posted soon to address these issues.

Things Writers of Plugins Should Know

Since release, and as of 5.0.197, there have been some important changes to be aware of:

* Notes/Notes()

As mentioned in the build notes, the purpose of the notes() tag on traits has been pretty muddled over time due to a variety of folks using it in ways that were not intended. That tag was meant to be used in a tiny space to show table notes references such as “[1,2]” for weapon or armor footnotes. Yes, notes() was a bad name for it, but it originated back when GCA did far less.

The notes() tag is now enforced as a mode-specific tag for the original intended purpose (and even that is now discouraged in favor of using itemnotes() instead), and any use of notes() that was intended by a user to be general item-related notes or commentary should be changed to usernotes() or included in the description(), instead.

* Each trait’s Description() and UserNotes() tags are probably RTF formatted strings.

This may not work for you.

The new functions GetNotes(Optional ByVal AsPlainText As Boolean = True) As String and GetDescription(Optional ByVal AsPlainText As Boolean = True) As String allow for retrieving the usernotes() and description() tags of a trait, as normal RTF or as plain-text.

Line breaks (as LF characters) will be preserved.

* The Notes property on GCATrait has been will now return usernotes() as plain-text.

If you set it, it sets usernotes() with that text.

* Character.Settings has an ApplyDBToActiveDefenses property.

When TRUE, all active defense scores (block, parry, dodge) *will* include the DB value for the active shield (one equipped on an arm). When FALSE, those scores won’t include the DB (which is the traditional way GCA has done it).

If your application needs the scores *not* to include the shield DB but this setting is TRUE, you can set the value to FALSE, call RecalculateAll(True, False), do your exporting, then reset things for the user by setting the value back to TRUE and calling RecalculateAll(True, False) before quitting.

You can get the current DB being applied in the DefenseBonus() As Integer or DB() As Integer functions. The applied DB may be 0 if no shield is equipped.

* Each shield will have a charblockscore() tag.

This contains the character’s Block level when using that shield. This will include the DB for the shield, but if ApplyDBToActiveDefenses is TRUE, then the better of the two values (this shield’s DB or equipped shield’s DB) will be included.

* GCA provides the VTTNotes() tag.

This is per-trait as a way for the user to include VTT-specific notes or formulas, such as OTF expressions for Foundry. On an attack-mode level, GCA provides the mode-specific VTTModeNotes() tag for the same purpose.

* I have added Public Function DamageDisplayText() As String to the Mode object.

This function returns a string that represents the standard damage notation including damage, armor divisor, damage type, and radius. Example: 2d+1 (2) cut (2). You can also access this using Item.DamageModeTagItem() with “DamageDisplayText” as the tag, if you’re accessing mode values that way. This should obviate the need for you to build damage strings yourself, and it will correctly show the new comma-separated mini-modes if those are used by a trait.

Working on the User’s Guide

Happy Thanksgiving, if you’re celebrating that today.

Not a lot to report at the moment. I’m working away at the User’s Reference Guide right now, which is basically a bunch of “this dialog does this”. Not hard, but strangely tiring.

I hope to do a tutorial as well. That’s almost certainly something that should also ‘live’ over time, getting added to as more things come up. Hopefully I’ll be able to get a good base down.

That’s pretty much it for the moment.

 

GCA Beta Preview, Release FOUR, now available

The fourth release of the GURPS Character Assistant 5 Beta Preview is now available.

The first release was announced in this post, which has more details.

This release fixes all the reported bugs so far, and includes some updates and other fixes, as detailed in the various build notes posted on this blog.

You can find the installer available for download here:

https://www.sjgames.com/gurps/characterassistant/gca5beta/gca5betapreview.zip

If you want to validate the ZIP after download, there is a PAR2 file here:

https://www.sjgames.com/gurps/characterassistant/gca5beta/gca5betapreview.zip.par2

The GCA5 installer is within the ZIP file. If you already have the previous Beta Preview release installed, this should install smoothly over the top in the same location. Once installed, this should be version 5.0.163.1. (The previous release was 5.0.157.1.)

Please refer to the original announcement for more details and links to the Google Group where we are handling the related discussions. We’d love to have your feedback, suggestions, and (of course!) bug reports.

GCA Beta Preview, Release THREE, now available

The third release of the GURPS Character Assistant 5 Beta Preview is now available.

The first release was announced in this post, which has more details.

This release fixes all the reported bugs so far, and includes some updates and other fixes, as detailed in the various build notes posted on this blog.

You can find the installer available for download here:

https://www.sjgames.com/gurps/characterassistant/gca5beta/gca5betapreview.zip

If you want to validate the ZIP after download, there is a PAR2 file here:

https://www.sjgames.com/gurps/characterassistant/gca5beta/gca5betapreview.zip.par2

The GCA5 installer is within the ZIP file. If you already have the previous Beta Preview release installed, this should install smoothly over the top in the same location. Once installed, this should be version 5.0.157.1. (The previous release was 5.0.149.1.)

Please refer to the original announcement for more details and links to the Google Group where we are handling the related discussions. We’d love to have your feedback, suggestions, and (of course!) bug reports.