diff options
author | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2025-01-21 09:25:46 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2025-01-21 09:29:23 +0100 |
commit | e224a015dbb69db35a9403f40ede7fc397d549fc (patch) | |
tree | 97bb25d8302ef3cc60077383abd3076753f34b71 /src/localplayer.cpp | |
parent | db9b9f316d7bdcb9504092908bb18e82fc21de2f (diff) | |
download | mana-e224a015dbb69db35a9403f40ede7fc397d549fc.tar.gz mana-e224a015dbb69db35a9403f40ede7fc397d549fc.tar.bz2 mana-e224a015dbb69db35a9403f40ede7fc397d549fc.tar.xz mana-e224a015dbb69db35a9403f40ede7fc397d549fc.zip |
Fixed ConfigOptionChanged events
With the statically typed config we no longer get an event for each
changed config value. Where relevant, this is now done through
`setConfigValue`.
The `Event` now uses a `std::any`, which for `ConfigOptionChanged`
events is set to the changed `Config` member. This allows for a
type-safe check on which config value was changed.
Diffstat (limited to 'src/localplayer.cpp')
-rw-r--r-- | src/localplayer.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/localplayer.cpp b/src/localplayer.cpp index 7e66632b..e2af5fa3 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -1002,10 +1002,16 @@ void LocalPlayer::event(Event::Channel channel, const Event &event) } else if (channel == Event::ConfigChannel) { - if (event.getType() == Event::ConfigOptionChanged && - event.getString("option") == "showownname") + if (event.getType() == Event::ConfigOptionChanged) { - setShowName(config.showOwnName); + if (event.hasValue(&Config::showOwnName)) + { + setShowName(config.showOwnName); + } + else if (event.hasValue(&Config::visibleNames)) + { + return; + } } } |