Pretty much all of the code for supporting OpenPandora is gone from the
source tree, and the last two mentions have just been slated for
removal, so it's effectively dead.
This also delegates the redraw_background handling to a separate flag, since retvals are, by nature, a post-display]
value, and as such cannot be evaluated prior to display.
There's *massive* performance loss with the blurred version. This is most likely due to surface
blur being reevaluated every draw cycle, causing massive slowdowns.
If this is not done, there are some rare cases in which a Lua AI might
get caught in an infinite loop by trying the same failed action over
and over again.
Deal with units with ai_special=guardian before all other units in the
move-to-targets candidate action. This can speed up move times on maps
with many guardians significantly, as the movemaps calculated for the
AI units later in the MtT CA do not include the guardians any more.
Delay evaluating AI and enemy movemaps in the move-to-targets candidate
action until they are needed. This speeds up the AI move time on maps
with many ai_special=guardian units significantly, because no movemaps
are needed for these guardians.
An (admittedly extreme) tests case with 200 guardians saw a reduction
of MtT execution time from 10 seconds to 0.2 seconds.
Before, it was displayed as skip_ai_moves but used as show_ai_moves internally. This caused problems
with the dialog field system in the prefs dialog, since the actual use of the value didn't match the
yes/no state the value was saved as.
Adds the keys: mirror, second_image, second_mirror. These allow a portrait to be displayed on the right and left of a message simultaneously as well as to mirror them.
This is so lobby games without the requisite era installed can display a name other than the
era's id, which isn't very nice to look at.
Note that I'm not sure if this is the best or cleanest way to handle this. At some point I'll
need to look more closely at the way addons configs are handled with regards to such games.
The lobby calls tlistbox::set_row_shown() every single time there is *any*
change in the gamelist. Most of the time, the visibility of rows hasn't
even changed.
Tlistbox::set_row_shown() calls content_resize_request() to determine if
twindow::invalidate_layout() needs to be called. Content_resize_request()
unconditionally calls show_content_rect() that checks if the selected item
is visible and scrolls to it if it isn't.
With this commit, set_row_shown() returns early if visibility of rows
hasn't changed. This reduces the frequency of scrolling.
This commit isn't a complete fix, since the selected game will still come
into view when, for example, a new game is created. However, at least this
improves the situation.
Instead of immediately regenerating the side configs and pushing them to server in every widget callback (which
is especially expensive in the case of the gold and income sliders), we push updates to the server when the
network callback is called if the state_changed_ flag has been set.
This also cleans up some code from the previous attempt to make both the host and clients utilize this dialog.
Additionally, this fixes gold/income changes not being sent to the server.
For some reason, the left/right borders made them even more out of alignment. Optimally, these should still be
shifted 5 px to the right each, but that's a problem for another day (it'd likely mean a new label definition).