Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Code matches disassembly and works like in the original. I can't spot
anything out of the ordinary with regards to audio playback either.
|
|
|
|
Despite what the comment says this does not seem to be in the original
game and I cannot replicate this in either the original or a current
ScummVM build. It is highly likely that this was one of several sprite
offset bugs which were present in our implementation earlier but which
have since been fixed.
|
|
three
If you don't have the appointment card yet and use the map to go to
Seedy Street Bud ends up being teleported back to the mall.
Because of the destination coordinates which warp Bud past x==583
Violet's logic, which makes him refuse Bud entrance to the dentist,
triggers. On top of that the graphics end up all garbled which
indicates that even worse things happen under the hood.
To work around this we only trigger Violet if Bud actually _walked_
past the trigger coordinates (as opposed to using the map).
This fixes Trac#10452.
|
|
23fd97c99a
|
|
When the 'mof' opcode was added in commit 1946dead77 it was implemented
as a NOOP, but what it actually should do is disable the mouse (set
_cursorState to kCursorStateDisabledHidden).
This is used in at least the Spanish and Polish versions of the game to
work around an earlier script bug which allowed the player to use the
mouse while freeing the professor in part two.
This commit fixes the 'mof' instruction so that the original script works
as intended in those versions that ship with the fix.
TODO: Add a workaround for those game versions which don't do the 'mof'
themselves.
|
|
This commit adds the 'buv' and 'c0v' opcodes which are used to set speech
volume. Because these only seem to be used once in the English demo and
we right now playback all speech at kMaxSoundVolume anyway we can treat
them as NOOPs.
This fixes a bug in said demo which resulted in Bud being unable to talk
to Del.
|
|
|
|
|
|
The original game unconditionally reads into _sprC02Table[] in
updateSprite() which results in out-of-bounds reads when a sprite's
_state is -1. To make sure that sprites update correctly under all
circumstances we always reset a sprite's animation data when it is
disabled (_state == -1). This most prominently fixes a bug where
Lola's transition from dancing -> sitting happens too late.
Fixes Trac#6644.
|
|
|
|
|
|
|
|
|
|
Setting _mousePosY is only necessary if we actually set the cursor
position which we currently don't do. I don't plan on enabling it
but for the sake of matching disassembly let's add the required
warpMouse() call and disable the whole code block for now.
|
|
|
|
|
|
|
|
Fixes Trac#6376, Trac#6377 and probably many more unreported instances
of wrong audio samples being played.
|
|
Fixes Trac#6645.
|
|
infobar.txt contains all text used for the sentence bar and, among
other things, the prepositions to use for the "Use" and "Give" verbs.
In the English and Spanish versions of the game the preposition for
"Use" ("With" and "Con", respectively) is incorrectly stored in
capitalized form which this commit fixes.
Fixes Trac#10445.
|
|
|
|
|
|
The new _panelState tells if the panel is currently in the process
of being toggled between icon-style and text-style verbs and thus
animated.
The new _panelStyle tells wich verb-style the panel currently uses.
The new _panelType tells which mode the panel currently is in:
- verbs + inventory (normal)
- empty (used for dialogs)
- save, load, play, quit buttons
- save/load savegame
Also, switchPanelType() has been renamed to togglePanelStyle() and
kInputKeyToggleInventory to kInputKeyTogglePanelStyle to better
match the above changes.
_switchPanelFlag has been dropped in favor of using the new _panelState.
TODO: Store _panelStyle in savegames.
|
|
|
|
|
|
Escape, period or right mouse click skips one sentence at a time.
|
|
When Bud is walked to specific coordinates using the 'buw' opcode the
walkable area is not enforced (_locationMaskIgnore == true).
This is usually not a problem because the player is not allowed to click,
however, when entering the club, this allows the player to move Bud to
coordinates from which he can never return, leaving him stuck there.
As a workaround, do not ignore the location mask during this specific
action when entering the club.
Fixes Trac#5838.
|
|
|
|
Some backgrounds use colors in the reserved range [0xE0-0xF8] in a
walkable area which results in a number of pixels being falsely drawn
in the foreground (on top of Bud).
This fixes Trac#10423 to work around these original game bugs and
also removes the workaround for location 14 which does not seem to be
needed anymore.
|
|
The glue actually _is_ a unary usage object in the original game so
this was simply a miss in our implementation which is now fixed.
In other words, this wasn't a workaround and the original game does
behave the same as ours now.
|
|
|
|
Fixes Trac#10430.
|
|
|
|
This fixed the statue but broke the park entrance which I had missed.
|
|
Fixes Trac#10423.
|
|
Workaround for Trac#5511.
|
|
Fixes Trac#6639.
|
|
Fixes Trac#10422.
|
|
Fixes Trac#10424.
|
|
Non-English versions of the game include a charsize.dta/charszgr.dta
which specifies the width to use when printing glyphs from the character
set to the screen. ScummVM includes a hard-coded lookup table for games
which do not ship with such a file.
For some reason, our current hard-coded table includes widths for all
possible glyphs except one. This fix allows to properly play the German
version, which needs the character 'ß' (eszett), even when charszgr.dta
is missing.
Fixes Trac#4602.
|
|
Before, the ingame load dialog pretended to allow loading savegames from
all possible slots even if no savegames existed.
This introduces the original interpreter's behavior which instead loads
a resource string from infobar.txt informing the user that no savegames
are available.
|
|
Fixes Trac#10413 and Trac#10414.
|
|
|
|
|
|
|
|
Fixes Trac#6641.
|