b194
GCA should now be cleaning up .tmp files correctly in its AppData folder
GCA should now be cleaning up those empty 5.0.X.X folders in its AppData and ProgramData folders.
I belatedly realized that changing Item.Notes from a property to a function in the last build could unnecessarily break some things that plugins might be doing. So I changed Item.Notes back to a property, and it now returns usernotes() as plain text. If you set it, it sets usernotes() with that text.
I’ve changed the new function that was briefly Notes() to GetNotes(Optional ByVal AsPlainText As Boolean = True) As String instead, and added GetDescription(Optional ByVal AsPlainText As Boolean = True) As String for getting Description as well.
When building protection values, it seems that I didn’t properly trap for non-Equipment traits (such as Damage Resistance) that may have been made children of Equipment items. When a Loadout then tried to calculate protection values, it would crash because it would create a duplicate reference to that item. (Traits that provide protection are separately gathered because they’re not technically part of a loadout, so could still provide protection regardless of the loadout in use.) I have added a trap for the duplicate, which should fix the crash.
GCA wasn’t properly updating the total costs for various types of traits when adding or removing children. Now it should be.
The attack boxes in the Party View cards should now integrate a bit better. Also the gear menu should now be hidden since the options aren’t available here.
Refactored some of the code in the process that finds and initializes plugins. This eliminated a ton of redundant code.
In the Plugins dialog, if you Enable a currently disabled plugin, but GCA isn’t able to activate it when you Close the dialog, it will no longer add it back to the Disabled list as it was doing. It’s possible that GCA isn’t able to reload a plugin if there was some kind of conflict, but that it may be able to load it when restarted; therefore it makes sense to assume it should not be on the Disabled list if the user requested that.
Added a bunch of additional pre-checks and error traps for possible issues related to duplicate entries of various sorts of tracked and keyed objects during program initialization, even in many situations where it shouldn’t be possible to get duplicates.
Dmg() was missing from the tags being processed into mini-modes for Mode.GetMiniModes(). Fixed now.