Looking at a video of the original, it looks like the DE version should use the
same font for the dialogs and menus in order to get the umlauts.
This fixes#15817.
Some willy beamish scenes contain hacky 20x20 type 4 dialogs to do some other
action. They appear over the main dialog.
Eg, CD version dlg file D25.DDS dialogs 102 and 103 - one of these is triggered
when Tiffany stands on the scales on day 3.
This causes a flashing artifact over the dialog even in the original. Work
around this issue by not drawing anything if the dialog is too small to
actually contain text.
Willy handles dragging of items a bit differently to the other games, try to be
a bit more like the original. Specifically:
* Drag-drop does not need the mouse to be held down
* Don't reopen the inventory if that's where we dragged an item from
Also fix some small crashes in an older Willy Beamish demo.
There are a few differences in the way the talking heads work in Willy Beamish
vs HoC. This only implements the FDD version of Willy Beamish heads. The CD
version has different data to implement animated talking heads and voice
acting.
The font functions take u32 but that was sign-extending when coming out of a
non-u32 string. This never comes up in the English version, but the German
font has codepoints over 128.
Also fixed a couple of places where it was incorrectly measuring a string
position instead of a char value.
This fixes#15450.
Dragon arcade sequences should run at 15 FPS, the rest of the game runs at 30.
This also fixes a potential issue with stale data after load/save, and
correclty starts the music.
Thanks to @eriktorbjorn for noticing the inconsistencies and suggesting fixes.
* Adjust X position of timestamp in RotD inventory
* Fix y offset of type 2 dialogs
* Make inventory button visible in background after opening inventory
Most dialogs now render correctly and the game is partly playable. Still a
bunch of work to do for inventory and menus to render correctly.
Added loading for TDS (talking head) data structures too, but they are not yet
used.