Age | Commit message (Collapse) | Author |
|
In SCI3, index-to-selector tables no longer exist in compiled
object data (instead, the SCI3 VM uses selectors directly and
object data contains a bit map of valid selectors). In ScummVM,
the table is generated by Object::initSelectorsSci3 for
compatibility with the design of the ScummVM SCI VM. For
consistency, _baseVars is converted to use a standard container,
which works for all SCI versions.
The table for SCI3 property offsets is also changed to use a
standard container instead of manually managing the memory with
malloc/free.
|
|
|
|
|
|
Locals offset needs to be set even when the script has no exports.
|
|
|
|
Skipping a search for .CSC scripts when any .SCR files exist does
not work with at least Phant2, because it comes with an INSTALL.SCR
file. Searching unconditionally for .CSC files should not cause any
issues since the game scripts will either be in .SCR format or in
.CSC format, not both in the same game.
|
|
|
|
|
|
|
|
This happens in Phant2 when trying to delete a save game from the
in-game save dialogue.
|
|
SCI3 changes the way that monitored channel works. In SCI2/2.1,
when a channel is monitored, it is the only audible channel. In
SCI3, monitored channels mix normally.
This is very noticeable in LSL7, where music disappears totally
during speech if the monitored channel is the only channel played
back.
|
|
|
|
|
|
The field at +8 is for the MemID associated with a relocation.
|
|
|
|
Used by LSL7.
|
|
|
|
|
|
Map format is the same as SCI2/2.1 and volume format is detected
correctly as SCI3.
|
|
This happens e.g. on the About page in LSL7 because of an
interpreter problem where bitmap handles are destroyed and then
reused without a kFrameOut call to remove old screen items from
the visible plane list before a kIsOnMe call that causes the
engine to try to read from reused bitmap handles with different
contents and dimensions.
This replaces bad memory reads on the About page in LSL7 with an
assertion failure, until the problem with the About page can be
properly addressed.
|
|
This code branch, existing since at least SQ6 but apparently never
used by any SCI2/2.1 game, is in fact the algorithm used by SCI3.
This fixes (at least) doubled rendering of transparent surfaces
like the background of the inventory window and conversation
choices panel in LSL7.
|
|
This was causing uninitialised garbage data from the scale buffer
to be drawn to the screen.
|
|
|
|
|
|
Used by RAMA, when playing a video at the Hub Camp computer at the
beginning of the game (room 1004).
|
|
|
|
|
|
|
|
|
|
|
|
In Phant2, when going to email on Curtis's office computer, a
screen item that contained a bitmap on the last frame was updated
to contain a view on the next frame. This crashed the engine when
it tried to reuse the old disposed bitmap instead of the new view
because the cel type was never changed from kCelTypeMem to
kCelTypeView.
|
|
Currently translated at 100.0% (947 of 947 strings)
|
|
Currently translated at 100.0% (947 of 947 strings)
|
|
Currently translated at 99.7% (945 of 947 strings)
|
|
Currently translated at 100.0% (947 of 947 strings)
|
|
Currently translated at 100.0% (947 of 947 strings)
|
|
Currently translated at 100.0% (947 of 947 strings)
|
|
Currently translated at 99.0% (938 of 947 strings)
|
|
Currently translated at 98.9% (937 of 947 strings)
|
|
Currently translated at 100.0% (947 of 947 strings)
|
|
Currently translated at 100.0% (947 of 947 strings)
|
|
|
|
This command lists all resources that are currently loaded into
memory, plus the number of locks that exist on each loaded
resource.
|
|
lookupSelector will raise an error if the passed object ID is
invalid.
|
|
The boost is intended to compensate for the darkness caused by the
black lines, so should not be applied when there are no black
lines. This fixes too-bright videos in at least LSL7.
|
|
In at least RAMA, when using the pocket computer to view a mail
and then pressing the "return" button, the ScreenItem containing
the VMD will be destroyed before the VMD player is told to close
the video, resulting in a use-after-free trying to access the
bitmap ID through the deleted ScreenItem.
|
|
Previously, this code was interpolating samples if the previous
block had missing samples, instead of interpolating when samples
are missing in the upcoming block of samples.
|
|
This should make things trivially faster, and matches more
accurately how the original engine worked.
|
|
|
|
The typo was `if (kCelTypeColor)` instead of
`if (type == kCelTypeColor)`. Changed to use a switch instead for
improved clarity and code intelligence.
|