Commit Graph
1475 Commits
Author SHA1 Message Date
Colin Snover 71294a8a98 SCI32: Remove extra ! in error message 2016-08-24 15:23:30 -05:00
Colin Snover 64f4ad4ad5 SCI32: Fix incorrect boolean operator 2016-08-24 15:22:55 -05:00
Colin Snover 1b6ea78216 SCI32: Remove error check for negative celNo
Negative cel numbers are exploited by at least the hi-res mode of
PQ4CD.
2016-08-24 15:21:42 -05:00
Filippos Karapetis 511d9f1e40 SCI32: Fix crash in Torin, chapter 4, catapult scene (via ScreenItem)
loopNo/celNo are set to unsigned integers in ScreenItem::setFromObject
in SSCI, thus their value will be adjusted when it's negative, like in
this case
2016-08-23 15:52:54 +03:00
Filippos Karapetis 1c19029c58 SCI32: Fix palette in SCI32 Mac games 2016-08-23 05:18:42 +03:00
Filippos Karapetis ba8d6f6c03 SCI32: Move the SCI32 Mac cursor handling code into GfxCursor32
This was left in the SCI16 code in commit 80d9182554
2016-08-22 19:56:06 +03:00
Colin Snover 7f23c91de9 SCI32: Fix limited data range comparison warning
On at least DC platform, the ShowStyleType enum is fit to a 4-bit
data size, so the 16-bit input value needs to be checked for
validity *before* it is cast to a 4-bit ShowStyleType.
2016-08-19 15:23:10 -05:00
Colin Snover da62a99a00 SCI32: Remove unused ResourceManager from GfxFrameout 2016-08-19 15:23:10 -05:00
Colin Snover 051eae4639 SCI32: Increase maximum line width for graphics
Torin renders pics that are wider than 1024px; SCI3 bumps the
maximum line width to 4k.
2016-08-19 15:23:10 -05:00
Colin Snover e55b774584 SCI32: Add kPlayVMDGetStatus kernel call
Used by Lighthouse.
2016-08-19 15:23:10 -05:00
Colin Snover 4e1a9be816 SCI32: Remove CoordAdjuster32, at least for the moment
This may come back in the future to deduplicate some gfx code,
but SCI32 had two different inlined ways of doing coordinate
conversions with different rounding methods, so CoordAdjuster32
didn't get used when the graphics system was rewritten.

At the moment, SCI32 code uses the mulru/mulinc methods from
helper.h for scaling up/down coordinates.
2016-08-19 15:23:10 -05:00
Colin Snover 0f2748b15a SCI32: Implement kRobot 2016-08-19 14:08:22 -05:00
Colin Snover fdb2290415 SCI32: Add some bounds checking, const-correctness, and errors to CelObj 2016-08-19 13:57:40 -05:00
Colin Snover 6e2e862d8e SCI32: Implement kShakeScreen for SCI32 2016-08-19 13:57:40 -05:00
Colin Snover b74532fc1e SCI32: Clean up Cursor32 includes 2016-08-19 13:57:40 -05:00
Colin Snover d5bcef1e66 SCI32: Hide cursors in 24bpp video playback mode
Drawing the cursor in this mode will result in a read overflow as
it is 8bpp.
2016-08-19 13:57:40 -05:00
Colin Snover 89a82f5b55 SCI32: Fix signature of kSetNowSeen 2016-08-19 13:57:40 -05:00
Colin Snover ff00e93c67 SCI32: Remove GfxScreen from SCI32 2016-08-19 13:57:40 -05:00
Colin Snover c8a2b9af22 SCI32: Fix comment 2016-08-19 13:57:40 -05:00
Colin Snover 03177721b8 SCI32: Allow pixel doubling of some cursors to improve usability 2016-08-19 13:57:40 -05:00
Colin Snover 80d9182554 SCI32: Implement SCI32 cursor support 2016-08-19 13:57:40 -05:00
Colin Snover 9bfeb3c297 SCI32: Remove GfxScreen from GfxFrameout
Only cursor remains to be updated to go through GfxFrameout, and
then we can let GfxScreen go back to being SCI16-only.
2016-08-19 13:57:40 -05:00
Colin Snover beba350baa SCI32: Fix cast warnings 2016-08-13 16:33:14 -05:00
Colin Snover 956cbf047a SCI32: Clean up Video32 includes 2016-08-12 09:37:13 -05:00
Colin Snover f3d007ea5b SCI32: Fix KQ7 1.51 video background 2016-08-12 09:28:46 -05:00
Colin Snover 1fc21de2fc SCI32: Fix crash when kShowMovie is called but the video cannot be found 2016-08-12 09:28:46 -05:00
Colin Snover 774056ea4c SCI32: Fix KQ7 1.51 basic video playback
There is still a problem where the background is white instead
of black; this is caused by the palette of the video using entry
0 as white. This seems to have worked out OK in SSCI because the
video was not actually played back inside the engine itself, so
didn't interfere with the palette of the engine. ScummVM has no
such separation, so the palette of the video interferes with the
palette of the blank background pic, turning it white.
2016-08-12 09:28:46 -05:00
Colin Snover f1b7fe1acb SCI32: Additional Video32 documentation 2016-08-12 09:28:46 -05:00
Colin Snover ef2c44bf1f SCI32: Implement kShowMovie 2016-08-12 09:28:46 -05:00
Colin Snover 31f344079f SCI32: Temporarily revert kShowMovie due to buildbot failures
Revert "SCI32: Fix KQ7 1.51 video background"

This reverts commit c8affb54cc.

Revert "SCI32: Fix crash when kShowMovie is called but the video cannot be found"

This reverts commit 93b06f4a9e.

Revert "SCI32: Fix KQ7 1.51 basic video playback"

This reverts commit cdab24aa07.

Revert "SCI32: Additional Video32 documentation"

This reverts commit 4ff0924e57.

Revert "SCI32: Implement kShowMovie"

This reverts commit 13297c1929.
2016-08-11 21:43:57 -05:00
Colin Snover c8affb54cc SCI32: Fix KQ7 1.51 video background 2016-08-11 20:50:33 -05:00
Colin Snover 93b06f4a9e SCI32: Fix crash when kShowMovie is called but the video cannot be found 2016-08-11 20:50:33 -05:00
Colin Snover cdab24aa07 SCI32: Fix KQ7 1.51 basic video playback
There is still a problem where the background is white instead
of black; this is caused by the palette of the video using entry
0 as white. This seems to have worked out OK in SSCI because the
video was not actually played back inside the engine itself, so
didn't interfere with the palette of the engine. ScummVM has no
such separation, so the palette of the video interferes with the
palette of the blank background pic, turning it white.
2016-08-11 20:50:33 -05:00
Colin Snover 4ff0924e57 SCI32: Additional Video32 documentation 2016-08-11 20:50:33 -05:00
Colin Snover 13297c1929 SCI32: Implement kShowMovie 2016-08-11 20:50:33 -05:00
Colin Snover c28a5733e0 SCI32: Fix GfxFrameout::_isHiRes flag to be accurate for all games 2016-08-11 20:50:33 -05:00
Eugene Sandulenko 6f87a2b2e8 SCI: Fix warnings 2016-08-01 23:56:32 +03:00
Colin Snover 10f9cb7023 SCI32: Fix crash when destroying GfxTransitions32 2016-08-01 10:37:14 -05:00
Colin Snover 2071196f42 SCI32: Add bitmap segment and remove GC option from hunk segment 2016-08-01 10:37:14 -05:00
Colin Snover 4e31c9aaf4 SCI32: Don't crash on zero-dimension show rects
In the original engine this would have simply resulted in no draw,
but ScummVM is more strict about it. It is not 100% clear whether
these are normal and should be allowed or not, so for the moment
we'll emit a warning whenever a zero-dimension show rect is seen.

For now they only seem to be generated by plane transitions, and
these zero-dimension screen items cannot simply be omitted because
the 2.1early transitions code requires a fixed number of screen
items per step.
2016-08-01 10:37:14 -05:00
Colin Snover 0f535e79f5 SCI32: Add 6-argument signature of kAddPicAt
This is used by Torin in room 50900.
2016-08-01 10:37:14 -05:00
Colin Snover 156c68fe58 SCI32: Implement plane transitions (kSetShowStyle and kSetScroll)
This commit implements all of the known plane transitions from
SCI2 through SCI2.1mid games. Because kSetShowStyle is always
called indirectly via the Styler game script, it is difficult to
find all the places where transitions are used. As such,
transitions that appeared to never be used have been added as
stubs which will trigger a game crash with a message to report
what was being done, so any missed transition types can be
identified quickly and then implemented.
2016-08-01 10:37:14 -05:00
Colin Snover 4a637d65c3 SCI32: Enable optional explicit memory management of hunk entries
Bitmaps in ScrollWindow and Robot code are managed by the kernel
and not by game scripts, although they must be able to be
referenced through a reg_t. To prevent incorrect GC of bitmaps
that are in use but not referenced by any game script, explicit
memory management of hunk entries can be enabled.
2016-08-01 10:37:14 -05:00
Colin Snover 6b6ee74f00 SCI32: Fix crash in Torin when opening save dialog 2016-07-30 11:57:50 -05:00
Colin Snover ce0f1b9c33 SCI32: Give default skip color a name 2016-07-27 08:50:13 -05:00
Colin Snover 631d22c4ac SCI32: Remove dead placeholder rendering code 2016-07-27 08:50:03 -05:00
Colin Snover 49eed5dd24 SCI32: Use extern instead of #include frameout.h for splitRects 2016-07-27 08:49:44 -05:00
Colin Snover 20106fff7b SCI32: Fix backwards kFrameOut throttle timings 2016-07-27 08:49:38 -05:00
Colin Snover bb0d5e00d0 SCI32: Handle remap data outside the game's remap range 2016-07-27 08:49:33 -05:00
Colin Snover 1c228c488e SCI32: Fix bad VMD palettes in GK2 2016-07-24 11:36:48 -05:00