117742 Commits

Author SHA1 Message Date
Eugene Sandulenko
43f5b0d700
NEWS: Mention recent Loom improvements 2021-05-17 18:51:37 +02:00
ScummVM-Translations
b786b562e0 I18N: Update translations templates 2021-05-17 16:44:40 +00:00
Torbjörn Andersson
f8c4fe63e3 SCUMM: Hack Mac Loom note names to never be light gray
Note names can be drawn in three different colors: Dark gray for notes
you don't know, light gray for notes you know, and white for notes
you're using.

Or at least, that's how the DOS version does it. But there, notes
automatically go back to light gray once the draft is done. In the Mac
version, that doesn't seem to happen. And judging by how it behaves when
running it in a Mac emulator, known notes are always white.
2021-05-17 18:44:29 +02:00
Torbjörn Andersson
c0c072f4c4 SCUMM: Add hack against Mac Loom distaff glitch
Here is what I think happens: When text is removed, the text surface is
cleared in its entirety. This means that the next time the screen is
updated, it may redraw the low-resolution background. Since this has no
information about the high-resolution text, any such text is lost.

The distaff notes and note names are drawn in with the high-resolution
font. When using the distaff, only the note name is redrawn, not the
note itself. The way screen updates are handled, a larger area than just
the note name gets redrawn, and then part of the note may be cleared
away.

To get around this, when a note name is drawn on the distaff the text
surface is also updated with the note itself. (There is no need to
redraw the note, since we can assume it's already on screen, and we
don't want to bother with getting the color right.)

The only time the printChar() function prints note names should be on
the distaff. The Practice Mode box is handled by drawChar() instead.
2021-05-17 18:44:29 +02:00
Torbjörn Andersson
cdfe9b5b4c SCUMM: Add practice mode box for Mac Loom
Unlike the PC version, the practice mode box appears to be hard-coded in
the Mac version. The script that draws the box in the PC version just
sets variables in the Mac version. This implementation is based on
screenshots.

To keep things a bit saner, I've split out the Mac-specific drawing to
its own file.
2021-05-17 18:44:29 +02:00
Torbjörn Andersson
620d885eac SCUMM: Clarify comment about shadowed text in Mac Loom 2021-05-17 18:44:29 +02:00
Torbjörn Andersson
9051349f31 SCUMM: Always draw notes and note names with a shadow in Mac Loom
But apparently the shadow for notes is a bit different from what I draw.
I have to figure that one out later.
2021-05-17 18:44:29 +02:00
Torbjörn Andersson
3ef517d2a1 SCUMM: Fix some memory leaks
I forgot to free the streams after asking the Mac resource manager for a
resource.
2021-05-17 18:44:29 +02:00
Torbjörn Andersson
93cbb988a6 SCUMM: Some fixes that I'm not sure exactly what they do
I don't know what these fixes do exactly, but judging by the old code
they should be there.
2021-05-17 18:44:29 +02:00
Torbjörn Andersson
ec6f0b1cf3 SCUMM: Some fixes for removing text
Drawing boxes and restoring verb backgrounds now also clears the text
surface in Macintosh Loom.
2021-05-17 18:44:29 +02:00
Torbjörn Andersson
5c0c64bc5a SCUMM: Fixed black screen after loading savegame.
I misunderstood the purpose of _textSurface. Now text is drawn to the
Mac screen, and a text mask is drawn to the _textSurface. I hope that's
better.

Still no luck with the non-disappearing text at the start of the game
though.
2021-05-17 18:44:29 +02:00
Torbjörn Andersson
6980ddb337 SCUMM: Add hard-coded Macintosh palette for Loom
I think this is correct. It's based on Basilisk II.
2021-05-17 18:44:29 +02:00
Torbjörn Andersson
85ba3876e4 SCUMM: Fix Mac text rendering.
The font renderer now remembers if the previous character ended on an
odd X coordinate, and compensates for that when calculating the next
character's position.

Maybe there's a more elegant way to do it, but it will do for now. The
rendering appears identical to the original, at least for the test case
I'm using.
2021-05-17 18:44:29 +02:00
Torbjörn Andersson
27420f78d4 SCUMM: Simplified Mac font rendering
Instead of trying to keep track of the real Mac screen coordinates in
the _charset data type, use the original 320x200 coordinates and only
scale up at the time of rendering.

Either way, the output is not pixel perfect, and this is much less error
prone.

Now if only text removal worked correctly...
2021-05-17 18:44:29 +02:00
Torbjörn Andersson
5b70ddd802 SCUMM: Fix text color and shadow
Text positioning is still all over the place, though.
2021-05-17 18:44:29 +02:00
Torbjörn Andersson
fbefa65da9 SCUMM: Mark screen as dirty in the Mac font renderer
The difficulty buttons are now drawn almost correctly, even if little
else is. (The text position appears to be slightly wrong.)
2021-05-17 18:44:29 +02:00
Torbjörn Andersson
70a36d6b71 SCUMM: Use high-resolution cursor for Mac Loom 2021-05-17 18:44:29 +02:00
Torbjörn Andersson
819cfb8383 SCUMM: Initial work on Mac Loom font renderer
The main purpose of this set of changes is to refactor the code to make
it easier to pass the name of the Macintosh resource file to other parts
of the engine (it used to be hard-coded in the music players), and to
scale-up the graphics by 2.

The actual font rendering is almost completely broken.
2021-05-17 18:44:29 +02:00
ScummVM-Translations
a8d0c0315d I18N: Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: ScummVM/scummvm
Translate-URL: https://translations.scummvm.org/projects/scummvm/scummvm/
2021-05-17 14:19:54 +00:00
Eugene Sandulenko
22e949035b
ASYLUM: Comment out unused variables 2021-05-17 16:19:35 +02:00
ScummVM-Translations
6938b3995d I18N: Update translations templates 2021-05-17 14:07:55 +00:00
Eugene Sandulenko
df1109a22f
ASYLUM: Added POTFILES 2021-05-17 16:07:37 +02:00
ScummVM-Translations
a908532b7c I18N: Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: ScummVM/scummvm
Translate-URL: https://translations.scummvm.org/projects/scummvm/scummvm/
2021-05-17 13:48:56 +00:00
alxpnv
ba2ccee701
ASYLUM: fix Quick Load/Quick Save 2021-05-17 15:37:58 +02:00
alxpnv
b7130bab21
ASYLUM: fix savegame overwriting
Bug reported by digitall
2021-05-17 15:37:58 +02:00
alxpnv
a2d2495588
ASYLUM: add Keymapper support 2021-05-17 15:37:58 +02:00
alxpnv
c81c046450
ASYLUM: clean up destructors 2021-05-17 15:37:58 +02:00
alxpnv
ca1d780730
ASYLUM: clean up metaengine.cpp 2021-05-17 15:37:57 +02:00
alxpnv
cf550f5ce2
ASYLUM: convert AsylumEngine::_gameFlags to uint32 2021-05-17 15:37:57 +02:00
alxpnv
179627fab4
ASYLUM: add some missing updateScreen() calls
Suggested by sev-
2021-05-17 15:37:57 +02:00
alxpnv
0d71da53a6
ASYLUM: remove a useless ifdef
Spotted by sev-
2021-05-17 15:37:57 +02:00
alxpnv
aac8cee532
ASYLUM: optimizations to the board puzzles
Suggested by sev-
2021-05-17 15:37:57 +02:00
alxpnv
cf0049c23b
ASYLUM: (Pipes puzzle) use the engine-level random source 2021-05-17 15:37:56 +02:00
alxpnv
77a35a5c75
ASYLUM: get rid of global constructors 2021-05-17 15:37:56 +02:00
alxpnv
ec5b6935f8
ASYLUM: change return type of PuzzleBoard::updateScreen() to void 2021-05-17 15:37:56 +02:00
alxpnv
139d15347f
ASYLUM: remove an unused puzzle (Puzzle 11) 2021-05-17 15:37:56 +02:00
alxpnv
bf7755aa29
ASYLUM: fix integer overflow in Screen::graphicsSelectionSort() 2021-05-17 15:37:56 +02:00
alxpnv
408a85436a
ASYLUM: (Hive Machine puzzle) get rid of the polygons previously used for hit testing
Requested by sev-
2021-05-17 15:37:55 +02:00
alxpnv
c524688f77
ASYLUM: simplify inventory voice system
Suggested by sev-
2021-05-17 15:37:55 +02:00
alxpnv
c78293e4ce
ASYLUM: simplify computation of inventory ring points 2021-05-17 15:37:55 +02:00
D G Turner
b4a0418525
ASYLUM: Fix Uninitialized Variable Accesses Identified by Valgrind 2021-05-17 15:37:55 +02:00
alxpnv
93f08cc43d
ASYLUM: fixes to the detection tables
Suggested by sev-
2021-05-17 15:37:55 +02:00
alxpnv
ac43968c47
ASYLUM: formatting 2021-05-17 15:37:55 +02:00
alxpnv
48e164b2d7
ASYLUM: clean up includes 2021-05-17 15:37:54 +02:00
alxpnv
c6ab0e8503
ASYLUM: remove getDebugger() declaration 2021-05-17 15:37:54 +02:00
alxpnv
06ebca09c3
ASYLUM: fix signed/unsigned comparison warnings 2021-05-17 15:37:54 +02:00
alxpnv
7c53e7560d
ASYLUM: add const qualifier to silence a warning 2021-05-17 15:37:54 +02:00
alxpnv
b905953e5f
ASYLUM: make FrameSoundItem::frameIndex unsigned 2021-05-17 15:37:53 +02:00
alxpnv
ce59904eff
ASYLUM: rework monster status update 2021-05-17 15:37:53 +02:00
alxpnv
15bb6fd728
ASYLUM: replace 'Fallback to next case' comments with 'fallthrough' 2021-05-17 15:37:53 +02:00