Changing to warning was done previously for all other messages of this
type but forgotten for this one (commit 7185d6cc80). Also, there’s not
been any recorded bug caused by this in many years, so there is no need
to keep the second part of the text.
It's only use was to pass refresh_lobby on process_gamelist_diff fail. It makes more sense to
delegate that to the caller - in this case, the lobby. This also means the chatbox widget owns
a twesnothd_connection pointer so the chatbox can be used in situations where no server connection
is present.
This can happen when enemy units are hidden under fog or have the hides
ability. Either way, enemy units always blocks the tunnel.
Invisible allied units may or may not block the tunnel, depending on
the setting of pass_allied_units in the [tunnel] tag. It is therefore
necessary to get and check the full teleport map during a unit’s move
through a teleport, but with see_all=true (while the path finding uses
see_all=false).
This commit fixes the behavior and reinstates the ‘failed teleport’
message.
If you have already killed Agadla by turn 4, instead of offering a choice, the three who appear simply join your forces.
This means it is possible to never get the Thieves, and not be able to recruit them. But you'd have to win before turn 4; so it's not possible unless you're cheating.
It is possible to take Elesenfar without ever capturing a village. To allow for this, and ensure the player always gets the Theives, they appear when Agadla dies as well as upon capturing a village.
Instead of a moveto, use a capture event so the theives only appear when actually capturing a village on the island.
Instead of listing the position of each village, use a radius so we can move them around, or add or remove a village more easily.
There was an old designer's note that killing the leaders in S01 ('The Elves Besieged') should reduce the number of ambushers hiding in S07 ('Crossroads').
It seems plausible that this removed code somehow caused the test failures
on Travis. Though it would be better to work out exactly WHY that is,
restoring the code does serve as a quick-fix to get Travis working again.
The comment stated that the keys 1 through 9 show how far a unit can
move in that many turns. However, the code did not support 8 or 9, for
no apparent reason.
This file seemed to be some sort of reimplementation of <cassert> except
with some "feature" of trying to force the debugger to hit a breakpoint.
However, any decent debugger already hits a breakpoint with a standard
assert(), and this file really only served to make it harder to see the
actual error when using a Windows console.
Some instances of these macros were replaced with assert(), others with
VALIDATE() which instead throws an exception (and possibly puts up a
dialog, if the exception is caught before main()).
A few other related changes that got mixed in:
- Several error conditions now have a better error message (or indeed
any error message at all)
- Removed an unnecessary use of std::distance on a Boost iterator range.
- Removed a large chunk of code which did nothing but construct a widget
builder and then crash; the code was unreachable since an earlier loop
did the same thing (without crashing), and the comment seems to suggest
that it was a (seemingly no longer necessary) workaround for some buggy
compilers / linkers.
- noreturn added to the list of compatibilty C++11 features in global.hpp
(Of supported compilers, only VC12 lacks the new [[attribute]] syntax.)
- Fix detection of GCC in global.hpp
# Conflicts:
# src/gui/widgets/settings.cpp