Commit Graph
183 Commits
Author SHA1 Message Date
Scott Percival fb4d1f3bfe DIRECTOR: Make bitmap color correction ignore color cycling operations
Fixes the logo sequence in Alice: An Interactive Museum.
2023-01-10 13:41:53 +01:00
Scott Percival a5ed3bc202 DIRECTOR: Fix palette offset in BitmapCastMembers
When reading the palette ID from a BitmapCastMember, 0 or below
signifies a builtin palette and should be offset by -1. 1 or above
signifies a palette Cast ID.

Also make sure to compare like for like: a cast member ID needs to be
sent through resolvePaletteId to get the index in the actual palette
store.

Fixes palette swapping in the Lost Mind of Dr. Brain demo.
2023-01-10 13:41:53 +01:00
Scott Percival 9fb41d82d1 DIRECTOR: Add support for displaying 2-bit and 4-bit bitmaps 2023-01-10 13:41:53 +01:00
Scott Percival 48740a2ad1 DIRECTOR: Remove all palette reversing workarounds
All of the builtin palette lookup tables have been reversed, to match
the original layout of the tables in the Director 4 projector executable.
This corresponds with the colour indexing used in Lingo.
Likewise, the code to load palettes from the cast no longer reads the
colours in reverse order, and shiftPalette no longer expects
the start index to be after the end index.

DirectorEngine::transformColor still exists to upgrade to 32-bit colour,
but no longer reverses the palette index.

The missing builtin 16-color palettes from Director 4 have been added.
2023-01-10 13:41:53 +01:00
Scott Percival 8f15436896 DIRECTOR: Include more cast information in debug output 2022-11-18 16:28:05 +01:00
Eugene Sandulenko 5def1ad027 DIRECTOR: Properly dither images 2022-11-05 01:52:25 +01:00
Eugene Sandulenko 6bf2881735 DIRECTOR: Remove more leftovers from dithering code 2022-11-03 20:37:02 +01:00
Fedor Antokhin 8fe6e28c72 DIRECTOR: Use common dithering implementation 2022-11-03 19:06:11 +01:00
Scott Percival b2d13c5ea1 DIRECTOR: Stop playing videos when sprite gets replaced
Fixes cupcake song not stopping in Chop Suey.
2022-10-06 00:05:17 +02:00
Scott Percival e477106daa DIRECTOR: Update Channel::_movieTime in Score::updateWidgets
Previously this would be updated in
DigitalVideoCastMember::createWidget, which meant it was possible for a
movie to complete without updating _movieTime to the final end position.

Fixes the cupcakes from not stopping animating once the song is finished
in Chop Suey.
2022-10-06 00:05:17 +02:00
Roland van Laar f2f00d9774 DIRECTOR: Fix Unitialized scalar field
Give BitmapCastMember constructor a default tag of 0.

Fixes COVERITY: 1490381
2022-09-26 13:00:41 +02:00
Scott Percival 46fe41a77c DIRECTOR: Plug memory leak in AVI loader 2022-09-25 10:35:03 +02:00
Roland van Laar 6fada68d76 DIRECTOR: fix memory leak
Delete the quicktime video object when falling back to the AVI decoder.
2022-09-20 00:21:09 +02:00
Scott Percival 7fc407bc4b DIRECTOR: Plug more memory leaks 2022-09-12 15:52:18 +02:00
Pragyansh Chaturvedi 842fe20c5e DIRECTOR: Modify decomposeColor to fix missing text in buttons in 32bpp mode 2022-09-09 02:21:47 +02:00
Roland van Laar bf7d2584a4 DIRECTOR: add reading of kCastMovie cast data
CastMovie cast data is now parsed. A first step to implement
CastMovies.

CastMovies are references to other director movies and
can be played inside the current movie. Star Trek an interactive
manual makes use of them.

The flags raw data was:
  100110 no flags
  101110 sound
  000110 loop
  100100 crop
  100101 crop and center
  110110 enable scripts
  011011 everything
2022-08-29 23:16:42 +02:00
Scott Percival d9cf093c95 DIRECTOR: Fix film loops with more than 8 cast members 2022-07-23 23:49:35 +02:00
Pragyansh Chaturvedi 5c17fe70b8 JANITORIAL: Fix conventions and reimplement MacFontManager::rectifyId() 2022-07-17 13:04:14 +02:00
Pragyansh Chaturvedi 8cb2e1bb07 GRAPHICS: Add rectifyId to check for changed font IDs 2022-07-17 13:04:14 +02:00
Eugene Sandulenko 8640f14e58 DIRECTOR: Do not remap palette 8bpp -> 8bpp 2022-07-09 13:35:51 +02:00
Eugene Sandulenko 26f0dbb158 DIRECTOR: Added different dithering algirithms 2022-07-05 18:48:40 +02:00
Eugene Sandulenko 3e2904b199 DIRECTOR: Made dithering code generic 2022-07-05 18:48:40 +02:00
Eugene Sandulenko cd35dc6911 DIRECTOR: Added support for remapping palettes 2022-07-05 00:26:28 +02:00
Eugene Sandulenko 4e1afe31b3 DIRECTOR: Render 8bpp stretched images in 32bpp mode 2022-07-05 00:26:28 +02:00
Eugene Sandulenko bb427be636 DIRECTOR: Implement Floyd-Steinberg dithering 2022-07-04 01:36:18 +02:00
Eugene Sandulenko c01657fc6e DIRECTOR: Implement naive image dithering 2022-07-04 01:36:18 +02:00
Eugene Sandulenko 1edcbcb53e JANITORIAL: Fix formatting 2022-07-04 01:36:14 +02:00
Pragyansh Chaturvedi 2e071fbeb2 DIRECTOR: LINGO: Create new constructors without stream for CastMember and BitmapCastMember 2022-07-03 19:24:04 +02:00
Pragyansh Chaturvedi (r41k0u) 761c99cbd8 DIRECTOR: LINGO: Implement kTheModified field in CastMember::getField() 2022-06-23 20:26:02 +02:00
Pragyansh Chaturvedi (r41k0u) a2a37604ce DIRECTOR: LINGO: Implement setting of ForeColor and BackColor properties of CastMember 2022-06-14 23:27:33 +02:00
Pragyansh Chaturvedi (r41k0u) 334bbd11a3 DIRECTOR: LINGO: Implement MacText::enforceTextFont() and use it to implement STUB kTheTextFont in TextCastMember::setField() 2022-06-06 18:32:14 +02:00
Pragyansh Chaturvedi (r41k0u) 26779bbd1d DIRECTOR: Revert _ptext change check omission in TextCastMember::setText(), remove unnecessary initialisation of string in MacText::getPlainText() 2022-06-06 18:32:14 +02:00
Pragyansh Chaturvedi (r41k0u) f241bdefd3 DIRECTOR: LINGO: Implement kTheTextFont, kTheTextStyle, kTheTextHeight and kTheTextSize in Lingo::setField() 2022-06-06 18:32:14 +02:00
Pragyansh Chaturvedi (r41k0u) 3610df85c6 DIRECTOR: Implement erase lingo command 2022-03-26 22:58:55 +01:00
Eugene Sandulenko 17141b0e7b DIRECTOR: Probe relative paths in external vide loading.
This fixes bug in Opera Fatal intro
2022-03-17 00:41:14 +01:00
Roland van Laar c52befe02e JANITORIAL: Code style fixes 2022-03-11 19:44:22 +01:00
Roland van Laar 3a77a95a6a DIRECTOR: fall back to AVI decoder
AVI video is used in the mckenzie-demo-win game.
2022-03-11 00:02:04 +01:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Scott Percival 2e77b6eaf6 DIRECTOR: Fix position of film loop subchannels
Sprites stored in frames are referenced by position (minus the
registration offset), width and height. Film loops are the same. As
such, fix the bounding box calculation for the film loop to use the
correct sprite positions (e.g. center for bitmaps), then fix the
subchannel generator to take these into account.
2021-11-09 21:46:44 +08:00
Scott Percival 6d32f570f5 DIRECTOR: Rework film loops to render as channels
The engine treats film loops as N full channels getting rendered to the
screen in the space of one. As such, it's impossible to pre-blit together
the content, as any blitter mode can be used for each of the items.
2021-11-07 12:05:29 +08:00
Scott Percival 29973e8627 DIRECTOR: Revert change to inkBlitShape
Using the dest. rect for everything leaves snail trails
in most of Spaceship Warlock.
2021-10-12 08:19:29 +08:00
Scott Percival 8b240f69b8 DIRECTOR: Fix inkBlitShape to use destRect for drawing 2021-10-12 01:08:34 +08:00
Scott Percival 257fd958e7 DIRECTOR: Add blitting code to FilmLoopCastMember 2021-10-12 01:08:34 +08:00
Scott Percival 6f60e8c54e DIRECTOR: Add stub for FilmLoopCastMember::createWidget 2021-10-12 01:08:34 +08:00
Scott Percival 0efc7139a9 DIRECTOR: Refactor FilmLoopCastMember to use Sprite 2021-10-12 01:08:34 +08:00
Scott Percival 0ecdd9b26f DIRECTOR: Add preliminary loader for film loops 2021-10-12 01:08:34 +08:00
ysj1173886760 afec76a083 DIRECTOR: fix trails of sprite.
This fix is aimed for fixing the bug in jman. And the fix may not be thoroughly.
2021-08-19 16:12:09 +08:00
ysj1173886760 8e8f640e69 DIRECTOR: fix editableText both in D2/3 and in D4. 2021-08-18 20:19:18 +08:00
djsrv b82735f0df DIRECTOR: Remove "no auto" comment
This comment was vague (auto what?) and added in an incorrect
implementation of autohilite which has since been removed.
(f89ec907c5)
2021-08-18 07:30:38 -04:00
Roland van Laar aff5e7ea2b DIRECTOR: load editable textFlags for D3 TextCast
The flags are the same as for D4:
1: editable
2: auto tab
4: don't wrap
2021-08-14 23:43:31 +02:00