Now they are kept in a separate list using a different interface, since
otherwise it'll be harder to keep track of which bookmarks are
user-defined and which aren't, in the file dialog.
The path label above the fileview now stands on its own without the
"Location:" label since it's self-explanatory for anyone who's managed
to get this far and install Wesnoth. The Delete and New Folder buttons
have had their order reversed so that destructive actions are on the
side opposite to the dialog's control buttons (OK/Cancel), the "Places"
heading no longer has a colon.
The bookmarks bar holds predefined bookmarks (as in the stuff
src/desktop/paths.hpp exposes) and allows users to easily browse to them
in a single click. It will eventually be possible for the user to add or
remove custom bookmarks as well.
I might add a method to disable specific irrelevant bookmarks later, not
sure (e.g. nobody cares about the preferences dir when trying to find
wesnothd).
This allows querying things such as the user's home dir, drive letters
(Windows-only), and game paths such as the data dir, preferences, user
data, and binaries. The results are presented in a format that's
suitable for UI use, with translatable labels used wherever applicable.
At some point there'll be support for listing user-defined bookmarks as
well.
This is used by all widgets that inherit from the textbox abstract
class, ttext_. The cursor is updated every 750 ms by toggling the
cursor alpha every time. When the cursor position is set by a method
(e.g. in reaction to a keyboard event), the cursor is reset to full
alpha, and the blink timer restarted.
The color attribute specifically doesn't support formulas. Adding
support for formulas to it would present us with the issue that commas
are already part of the formula language, so we'd need to update all
existing instances accordingly. So, instead, there's this short hack
used for a very particular piece of functionality coming in the next
commit.
For some reason, I swapped these grow factors in the past since the chatbox was growing... not sure why.
It works fine like this, and plus, the chatbox is now equal in height those in Staging and Join.
For some reason, changing the slider and canceling the dialog caused a crash. Changing the value
while in a networked game also caused a crash. If I remember correctly, this did not occur when the
code used a refence to the side_engine directly, so I'm not sure why this crashed.
This makes it so the "selected" segment of the groove (towards the
slider origin) is drawn with a brighter color than the "empty" segment
(opposite from the origin). Since this obviously wouldn't work with
RGB #FFFFFF, and the color is too distracting anyway (it was pretty much
the only widget using the general *text* color), we now use the standard
UI border colors to match buttons, checkboxes and so on. This should
hopefully help with harmonizing Wesnoth's UI color scheme across the
board.
For this purpose we also introduce a macro for a darker/shaded disabled
text color, used for the unselected segment of disabled sliders.
The standing animation prevented the new unit type from appearing on the map. Once it showed, scrolling made it less noticable; so pre-scroll to Karrag and hold there for a while. Also, switching back failed to show immediately due to a missing redraw.
The scene makes no sense at all if you don't capture a village. So, if you sight the Masked Dwarves before you find Ollin, have him appear and run the conversation!
When you lose the last Mage from Master Perrin’s academy, you lose the ability to recruit Mages immediately instead of at the start of the next scenario.
Also, the check was omitted from S11.
Ratheln must remain a Hero thoughout this scenario since, if he dies, the end sequence suffers terribly. On EASY, for later scenario, he is no longer a Hero; simply Loyal.
It was possible to bypass Ratheln. Use enter_hex to stop the triggering unit, and extend the tripwire to the full height of the map. No need to check Ratheln is not there since this is a one-shot which creates him.
Separate commit because this is a logic change. Use the previous owner (owner_side) to determine if the village should spawn indigenous units. This removes a large number of variable artifacts.