Monthly Archives: May 2017

A little bit’s notta lot but it’s better than notta bit


* Miscellaneous

Rewrote the routines for encrypting/decrypting the saved login creditials for getting updates. It now appears to work as intended, but your first new usage will still show messed up text (or nothing, if it was so messed up it caused an error in the new routine).

Added a ‘Force Update’ option to the Help menu, which will force GCA to see any available update as a new update, allowing you to effectively force a reinstall using the update system.

Standardized the round() tag a bit for more consistency across attributes and modifiers. You can now specify ‘up’ or ‘1’ for rounding up, ‘down’ or ‘-1’ for rounding down, and ‘no’, ‘0’, and ‘none’ for no rounding. Note, however, that modifiers only actually support rounding up or down, so any usage they see that isn’t ‘down’ or ‘-1’ is the same as ‘up’ or ‘1’.

Discovered that the default setting for rounding modifier calculations was different between traits and modifiers, when calculating modifiers that applied to the owner. For traits, default handling of modifiers was set to round up, while for modifiers, default handling of modifiers was set to round down. I have changed the default for modifier’s modifiers to be round up, as it was with traits. Of course, if there is a round() tag on the modifier, it will continue to honor that setting.

Fixed a bug that was causing trait symbols/flags to be lost when editing items from Unified View.

Fixed a display bug that was causing the trait edit buttons on a selected item in a Unified View box to continue to be displayed even when multiple items were selected.

* Substitutions

Added some robustness code to the Substitutions table creation routine.

Substitutions will now be seen as valid results in more places.

Hooked Substitutions into the Affects cross-linking system, which should allow for the same immediate results to be visible when making changes as there are normally. (Without this, for example, Trait A might find and base a Needs requirement on Trait S, which was found because it substitutes for the Trait B specified in Trait A’s needs() tag; but when Trait S is changed, Trait A wouldn’t be notified that something it depends on was changed.)

* Needs checking

I have added support for using the special directives #any, #best, and #worst in the name extensions in needs() items. These are supported for any traits that are properly identified with the correct prefix tags, and that have a valid base name.

GCA will assemble a list of all traits of the correct type that have the given base name, and then process them in this fashion:

  • #any – all traits will be evaluated and used to test the condition, but only until the first trait found that satisfies the given condition; or until all traits fail.
  • #best – all traits will be evaluated, and the one with the best (highest) value will be used to test the condition.
  • #worst – all traits will be evaluated, and the one with the worst (lowest) value will be used to test the condition.

Obviously, this only works for numeric values and conditions that evaluate numeric expressions. Inactive traits are not valid, and won’t be considered.

Bits of mish and mash


* Miscellaneous

Double-click to sort trait lists has been changed to single-click to sort, when on the column headings of the trait lists.

The old, temporary, feature of double-clicking the trait list title to summon the context menu has been removed, since the context menu has since been incorporated into the Traits menu on the main menu bar.

Somewhere in the work on the Campaign Log in an earlier build, it appears that a calculation step was lost, so GCA wasn’t including newly logged points when recalculating Unpsent Points, as it should have been. That should be fixed.

Added Money to the Points bar after Equipment. (This value may currently be rounded off.)

GCA will no longer ‘redline’ the Equipment value on the Points bar if the Character In Play checkbox is checked.

Due to some oddness in the design-time functionality of the third-party control used for Print Preview, such as is used in Sheet View, I’ve had to remove the design-time component, and now add it procedurally during program startup. If you notice something not working anymore in Sheet View, I probably missed hooking back up an event handler, so please let me know.

* Campaign Settings dialog

Made some changes to the appearance/structure.

Addressed a math issue.

* General Info box

A Transform drop-down list will now appear under the Race field when the user has transforms, to allow switching between them.

A field for “Campaign” has been added below Player, for the name of the campaign.

The Character In Play checkbox has been added.

Fixed some display issues when zooming.

Replaced the General Info section in the middle of the Attributes tab of Classic View with this box.

* Plug-ins

I have added the

Event RequestRunSpecificOptions(sender As IPrinterSheet, e As DialogOptions_RequestedOptions)

to the IPrinterSheet interface. As with the IExportSheet interface, this allows the sheet to request run-specific options to be set by the user, if desired. This is intended to support things that might need to be handled on a per-print basis, but you don’t have to use it. Sheets WILL have to be updated to support it, though, even if you don’t use it, since it’s part of the interface. Just include this line:

Public Event RequestRunSpecificOptions(sender As GCA5.Interfaces.IPrinterSheet, e As GCA5.Interfaces.DialogOptions_RequestedOptions) Implements GCA5.Interfaces.IPrinterSheet.RequestRunSpecificOptions

after your Implements GCA5.Interfaces.IPrinterSheet declaration, and you should be good.

I have also updated the third-party controls. This breaks sheet plug-ins, which will have to be re-compiled against the new versions. Since I changed the Interface module too, things were already in need of recompilation.

From past experience, updating the third-party controls can also lead to strange behavior in GCA if some things are a little incompatible. This might affect the tab controls, the grids in Advanced Edit and maybe a couple other things.

All included plug-ins have been updated and recompiled as necessary.