diff --git a/changelog b/changelog index cb569c5a069..e65b7865c8c 100644 --- a/changelog +++ b/changelog @@ -36,6 +36,8 @@ Version 1.13.0-dev: when the campaign is reloaded from a non-host side, or after a player rejoins from observer status. Hopefully, reloading campaigns is easier after this. * Fix bug #21797: "Mandatory WML child missing" when leaving a reloaded game. + * Fixed halos glitching through locations that become shrouded after the + halo is rendered for the first time. Version 1.11.11: * Add-ons server: diff --git a/players_changelog b/players_changelog index daeecdaa0c6..aa9bd30339f 100644 --- a/players_changelog +++ b/players_changelog @@ -5,14 +5,18 @@ changelog: https://github.com/wesnoth/wesnoth/blob/master/changelog Version 1.13.0-dev: * Language and i18n: * Updated translations: German, Scottish Gaelic, Slovak. - + * Units: * Increased the experience requirement for the Rami from 32 to 39. * Increased the experience requirement for the Saree from 56 to 64. - + * User interface: * Made orb and minmap colors configurable by the game preferences. + * Miscellaneous and bug fixes: + * Fixed halos glitching through locations that become shrouded after the + halo is rendered for the first time. + Version 1.11.11: * Campaigns: diff --git a/src/halo.cpp b/src/halo.cpp index 221020fe33c..c8343b42c10 100644 --- a/src/halo.cpp +++ b/src/halo.cpp @@ -215,6 +215,15 @@ void effect::unrender() return; } + // Shrouded haloes are never rendered unless shroud has been re-placed; in + // that case, unrendering causes the hidden terrain (and previous halo + // frame, when dealing with animated halos) to glitch through shroud. We + // don't need to unrender them because shroud paints over the underlying + // area anyway. + if (loc_.x != -1 && loc_.y != -1 && disp->shrouded(loc_)) { + return; + } + surface screen = disp->get_screen_surface(); SDL_Rect clip_rect = disp->map_outside_area();