If an action could not be undone, it makes no sense to "redo" it, and
vice-versa.
(In particular, certain movement undos produce a message stating
"Possible abuse of [allow_undo]" without crashing, but then redoing
that move caused an assertion failure before this change.)
Since changes to fog are not allowed to be undone, no need to clear_shroud().
Redos were not updating the minimap.
And otherwise making the invalidations/draws consistent across the
various events.
The foundation for this was introduced with the enter/ext hex events.
This update allows more of the game to take advantage of this (as
well as consolidating some code to make it more robust in the face
of edits).
* Gave the dialog a title
* Hardcoded trailing blanks previous found in translatable strings
* Removed 'excited' exclamation marks from UI strings
* Removed the silly "My lord" at the start; merits no further
explanation
Modified pathfind::paths to take a unit as argument instead of its
location; updated all callers.
As observed by mattsc, the function did in its callstack
re-query the unit at the location of a passed private proxy unit,
calculating the reach for the unit in the unit_map at that
location instead of the private one.
The other pathfind bindings already work for private proxy
units. Private lua proxy units were introduced after the pathfinder
functions were already exposed in the lua API.
"Auto-execute remaining whiteboard planned actions at end of turn" for now.
Attacks were executing on remote clients but not locally, because of
the seed callback mechanism no having a chance to trigger.
Some compilers are calling destructors for static objects before other
static objects use them in their destructors. This patch initializes
static t_interned objects with new and intentionally doesn't call
delete in order to guarrantee their existence throughout the static
de-initialization phase. It creates a new function
generate_safe_static_const_t_interned for this purpose. It might
address bug #18666, although I can not duplicate the crash with gcc on
fedora 15.
...of config::attribute_value & to tstring & or t_token reference
causes crashes. Some compilers were generating a temporary object and
binding a reference to the temporary when creating an implicit cast to
an attribute value. I removed the implicit cast and replaced all (I
think) instances of the implicit cast with explicit 2 step operation.
This fixes bugs like bug #18663, bug #18684
1. Updated terrain_builder to use t_token in place of std::string to
facilitate fast copying, hashing and comparison
2. Added utils::parenthetical_split_token, a cached parenthetical
version of the string version
3. Made the lru_cache faster for the cache miss case.
...to deal with :unit advances=2 , as well. Also, add a :unit fail=now
command as a testcase for iterator stability guarantee, violation of
which is the real cause behind bug #18488