* revise I-type terrain codes so they can be filtered with wildcard
* update the few MP maps using these I-type codes
* update the few campaigm maps using these I-type codes
This replaces the code for handling backstab with code that converts it to something new that still works.
Thus, the deprecation message is now INDEFINITE instead of PREEMPTIVE.
- coro_ read function returns empty unique_ptr on error
- coro_ write functions close socket on error
- caller does need only to handle empty unique_ptr from reads, generally
with immediate return
This simplifies the drawing buffer implementation. Instead of storing textures (or lists of textures),
we now store a function which takes the rect of the specified hex. This function is responsible for
actually rendering textures. The upsides of this are several. First, it means the whole drawing buffer
interface is much cleaner, since it no longer has to worry about texture mods or anything of the sort
(alpha, color mod, etc). The drawing functions themselves can handle them as needed. Second, it means
the messy, hacky, surface-based unit HP/XP bar drawing code can be replaced with simple rectangles!
Also includes:
* The whiteboard arrows now use the drawing buffer. The complexities of render_image were not needed.
* display::render_image has been removed and made local to the unit frame drawing code, which it is
intended for.
* unit_drawer::scaled_to_zoom has been removed
* Added a point overload of display::scaled_to_zoom
* Merged drawing buffer calls which can now be logically handled together
* Removed drawing_buffer_key class in favor of a simple function to generate the key.
* Made display::add_submerge_ipf_mod a public static function
* Added display::get_location which combines get_location_x and get_location_y
* Avoid looping through invalidated hexes twice when rendering
* Refactored how hex debug aids are rendered
* stone border revision
* corner case transitions
* add MP example scenario/map for elevated terrain
* simplify the floodfill
* change ravine from ^Qhx to ^Qhux, for better filtering
* reorganize images
Bot-hosted games are now shown in a separate tab from player-hosted games, based on the new auto_hosted attribute on the game creation WML. This is not something that's available to be selected during game creation since it's assumed it will instead be set by the bot implementation. Note that this isn't *really* putting games into two separate tabs, it just looks that way for UI/UX reasons.
Resolves#6939
The AES implementation wasn't working, so someone using macos will need to investigate that in the future probably. For now though RC4 isn't deprecated yet on macos.
* DiD S8: Handle situations where factions have not yet appeared (resolves#7005).
* Convert 'arrived' flags to booleans.
* DiD S8: po hint to clarify 'Dela's men'.
* Accommodate feedback by getting rid of all the new work and just removing any reference to paladins or Dela altogether. Conversion of flag to boolean remains, however.