First patch fixes (IMHO) the server wiping clean the "KNOWN_MAGICAL" flag on items once they are identified. Just because an item is identified shouldn't mean it's magical "aura" is wiped away.
Some players have expressed concern they will be annoyed at all their items now showing up in inventory as "blue"/magical...
So, the second patch adds a config button to the client (Gtk only for now) so that the individual player has control on whether to continue to see the "magical aura" or not.
Giving each player the ability to control this should be the right thing to do, not allow the server to indiscriminately clear the flag.
The server patch seems fine :)
I'm just wondering whether there aren't side-effects in other places (assumptions about flag being absent).
These are some newly created patches that I've tested to work with today's current code.
The patch: 0001-KNOWN_MAGICAL-fix-0907-keep-server-from-wiping-flag-.patch
prevents the server from wiping the "KNOWN_MAGICAL" flag from identified items,
as seeing the magical "aura" (or not), is probably something we should let the player
decide for themselves in the client.
And, 0001-Adds-a-new-configuration-button-so-the-player-0907.patch
Adds a configuration button to the GTK client, so the player can turn that on or off if they want.
Server patch committed as f9661f9d06c4ef18f6a941b72a6a972bb89ddfd8, thanks :)
I'll let someone who knows the client better than me review the client-side patch ;)
As a result of this patch, old items that were identified no longer stack with new items that retain the
KNOWN_MAGICAL
flag. Item stacking is determined on the server side, so the client patch does not help.This basically introduced a state duplication/inconsistency bug. Whether an object is "magical" or not is determined by the
is_magical()
function.FLAG_KNOWN_MAGICAL
is intended to represent if an object was determined to be magical by detect magic. This intention is clear if you look at the nearbyFLAG_KNOWN_CURSED
in addition toFLAG_CURSED
.I believe the "correct" fix is to restore the old behavior to clear
FLAG_KNOWN_MAGICAL
for identified items, then send additional information to the client about whether it is magical or not based on testingis_magical()
. This would allow items to stack correctly again.