The work-around is no longer required due to 06b02471 (#6685).
Revert "font: Work around chromatic aberration issue with Windows ClearType"
This reverts commit a56497a561b0f491d686fb396029f98fe94fac72.
Many items where the effect does not make sense (or looks especially
bad) were passed over and will appear on top of water as previously.
This could use more definition by using submerge values other than
0 and 1 (numbers from 0.0 to ~2.5 work as it multiplies the base
unit submerge value) however there is a bug with blitting transparent
textures so it will not appear correct for the submerged part.
It does the same thing as PLACE_IMAGE except the created item may
use the same submerge code as units. If not placed on water there
will be no submersion effect. If placed on water it will be submerged
to the same level a unit would be submerged to. In general physical
items placed into water should use this, whereas items placed on top
of water should use PLACE_IMAGE.
The new macro has been applied to the merfolk cages in the Bay of Pearls
scenario in HttT.
This will usually be determined by the monitor's refresh rate,
but also is rounded down to provide some leeway. It also limits
according to the draw_delay preference.
The loading screen now uses this to limit event calls.
When loading into different screens prior to actually starting or joining a game, Wesnoth loads the configs of all add-ons, otherwise it wouldn't know to display eras, campaigns, etc for selection. However starting with a4e8ac3, when loading all add-ons the `active_addons_` variable was no longer being populated with any of the the add-ons that were active. This meant that when checking to see if any of the active add-ons had changed it could falsely determine that nothing had changed and therefore could skip the step where it actually deactivated add-ons.
As an example of the current state prior to this fix:
* Player starts Wesnoth and joins the multiplayer lobby -> all add-ons are active, but `active_addons_` is empty.
* Player joins a game with no add-on content required -> Wesnoth checks the add-ons required for the game (none) against the contents of active_addons_ (empty).
* Wesnoth therefore determines that it doesn't need to deactivate any add-ons since it thinks no add-ons are active, when in fact all add-ons are active.
* Out of sync errors then happen if any of the players that join have add-ons installed that can globally affect other unit_types, such as [resistance_defaults], since those add-ons haven't been correctly deactivated.
The fix then is to make sure that game_config_manager::set_enabled_addon_all() correctly populates active_addons_ when it's called.
Fixes#6650
The blend function SDL (and for that note all GPU frameworks) uses
is incorrect when compositing transparent source pixels onto a
transparent destination. I added a note with the correct blend
function, for possible future implementation.
- Detect obvious cases of inheritance loops
- Don't try to keep track of tags with a super tag that exist within a conditional tag
- When searching for a tag path, don't append the leaf to the full path
Every place it's called already passes a default-constructed config, so this won't affect any existing code.
The removed assert is pointless when it'll be cleared by the call, and the two places that called that function also passed a default-constructed config already, so it was doing nothing.
This sets up writing both the cerr and cout streams to a log file, as well as pulls the log rotation logic out of log_windows.*pp into the general logger.
Note that this is meant for usage on macOS and Linux, not Windows. log_windows.*pp has additional functionality in it, as well as a fair bit related to the --wconsole option.