The intent is to avoid UMC authors accidentally mistyping a file name
and making an addon that doesn't work correctly on GNU/Linux.
Thanks to @Arcanister for suggesting the GetFinalPathNameByHandle function.
When the game is cluttered with units from any side, the probability
of 'landing' the mouse cursor on top of a unit after activating the
'show [best possible] enemy moves' facility (via mouse) increases
drastically. In that scenario, the slightest mouse move rewinded back
enemy units movements highlight.
After this rev, if the cursor lands on a unit, an object field gets
toggled and it prevents normal single unit movements highlight until
mouse stops hovering units. Then it gets switched back to normal
interaction.
Final form of changes largely credited to review from @CelticMinstrel,
@jyrkive and @Vultraz. Abstraction `mouse_handler::hex_hosts_unit`
devised by @CelticMinstrel. Abstraction `mouse_handler::hovered_hex`
devised by @jyrkive.
src/menu_events.cpp: Disable unit movements highlighting when mouse
landing on unit after activating 'show [best possible] enemy moves'
via mouse.
src/mouse_events.cpp: On mouse_handler construction, normal units
highlighting is allowed. If the mouse is hovering a unit, do not show
unit paths if the toggle for preventing it is active. If the mouse is
not on a unit, disable the toggle.
src/mouse_events.hpp: Add object field that will be responsible to
control prevention of unit paths highlighting when that gets judged
as improper. Add new public function for querying if a given hex is
occupied by a unit. Add new public function for returning the hex the
mouse is hovering, if any.
This accomplishes several things:
1. Harmony with HttT plot point with Relgorn.
2. A free Ulrek in S19 allows another recall, helping with a stronger I-M.
3. Slightly strengthens him in S18, to deal with I-M now having a side.
4. Dialog in S19 helps characterization of Delfador.
Add character macro for Iliah-Malal.
Make Iliah-Malal an Ancient Lich.
Add Iliah-Malal 'heal when killed' motif from S19.
Improve dialog to better convey reason for running away.
Make portal guardian stronger.
Make Iliah-Malal's castle area look like the one in S11, except ruined.
So they are both elven castles. Slight map tweaks in the area as well.
Use human castles for portal guard so closing portal effects look more natural.
Previously it was going from dwarven castle to ruined human castle.
Give player control of the ghosts and ghouls as they are found.
Update dialog to match ghosts and ghouls joining Delfador.
Enable gold carryover so player doesn't pointlessly wait till last turn.
Lower turn limit, as board is easier with additional units on player side.
Set start gold to 0, so final carryover is lower. With gold and turn limit
changes, it lessens amount in next scenario, but 300 is still achievable,
which is plenty.
Add cave wall to map around tomb. Otherwise a ghost going through the
secret passage causes an akward triggering of the village warning dialog.
Also makes it harder to get to the staff without using the secret passage.
Add dialog and fixe objectives to ensure that player will hear about
the magical artifact (staff) instead of relying on finding a specifc ghost
in a village. This prevents situations where the player can reach the
signpost without having heard of the staff.
It looks like this was done in the days when [move_unit_fake] was the
only option, and thus needed to keep the unit in a certain spot for the
animation to work right. With [move_unit], it is no longer needed.
If Ur-Thorodor moves off of keep and Delfador is next to him, scenario
doesn't end, which looks odd. So prevent Ur-Thorodor from moving.
Make end scene look better by moving Delfador to the keep for meditating.
Also fixes dialog refering to 'stones' by ensuring all difficulies have at
least two stones. The addtional stone on easy is added where it can be
easily destroyed right away. A third stone is added on hard.