Changed some of the process GCA uses to check for updates. Previously it was partially asynchronous and partially synchronous. It will now all be synchronous (this means you can’t do other things in GCA while the check for updates is running). It will also pop up the Working dialog while performing the process.
There was a shockingly convoluted system in place for sending messages to the logging pane. I simplified the system and shuffled around a few related routines while doing so.
Did some code cleanup in various areas and with various controls.
Found a pretty insidious little bug that had to do with the ownership of modifiers and traits when making copies of them (such as when making copies to undo changes when cancelling out of dialogs). This resulted in the ownership appearing to be correct, but not actually being so, because ownership was actually assigned to an identical object that was not actually in the correct ownership tree. I believe this mattered only in a tiny number of cases, but that’s still an issue. Anyway, it should now be fixed.
Made some changes to the Simple Edit and Modifiers dialogs in support of correct handling of undo when cancelling out of the dialog.
* Type Safety and Object Cleanup
Did a little more of this.
It was possible to decrement a modifier to level 0, but it almost never provided any indication that you had done so (unless it had levelnames() set to account for that). At least it always set the value to a neutral value, so it no longer affected cost. But this just strikes me as extremely odd behavior, especially for non-leveled modifiers. GCA’s history is very long, so it’s possible that I did this for a reason back in the day, but I can’t think of any good reason for it now. So, I have now set Modifiers to have a minimum level of 1.
* Simple Edit
I’ve moved the Current Modifiers Applied block up above most other things.
I’m trying a new list for the Current Modifiers Applied block, as a listbox instead of a text block. You can do basic manipulation of the modifiers here, such as incrementing, decrementing, or removing.