Commit Graph
87 Commits
Author SHA1 Message Date
eientei c616314c65 DIRECTOR: Add ispippin xlib for Circus! (Pippin) and stubbed qtmovie xlib 2022-12-01 01:18:11 +01:00
eientei 54727fec84 DIRECTOR: Add xlibs for Yearn2Learn: The Flintstones Coloring Book 2022-12-01 01:18:11 +01:00
eientei 467c393f03 DIRECTOR: Add xobjs for Ednovation games 2022-12-01 01:18:11 +01:00
Scott Percival 75a0de4110 DIRECTOR: LINGO: Initial XObjs for AskUser and SpaceMgr 2022-10-22 19:53:22 +02:00
Roland van Laar cf8f854960 DIRECTOR: LINGO: XOBJ: Scaffolding for Widget
Widget is an XObject used in Alice: An Interactive Museum.
The assumption is that getPro returns the drive letter as
the return value of getPro is assigned to a variable called drv.

Resolves the following errors from: https://bugs.scummvm.org/ticket/13204
- WARNING: BUILDBOT: Uncaught Lingo error: Call to undefined handler 'Widget'. Dropping 1 stack items!
- WARNING: varFetch: global variable drv not defined!
2022-10-17 12:49:46 +02:00
Roland van Laar 55ba933b76 DIRECTOR: LINGO: XOBJ: Implement MoovXOBJ
The game C.H.A.O.S. Continuum (D3, win) uses an XOBJ to play Quicktime Video.

Implements the methods that are called in game.
In contrast to the documentation the mMovieDone function returns true when the movie is _not_ done. Otherwise movies are disposed of while playing.
The videos don't use sound.
2022-09-07 10:57:15 +02:00
eientei 356e1264df DIRECTOR: Add stubbed AppleCD, Barake, JITDraw3 and MiscX XObjs; add more functions to memoryxobj and flushxobj 2022-06-22 23:38:15 +02:00
Einar Johan Trøan Sømåen 4ddf23d393 DIRECTOR: Implement AIFF Xobject 2022-06-15 16:35:41 +02:00
Einar Johan Trøan Sømåen 039537bcd8 DIRECTOR: Stub MovUtils XObject 2022-06-15 16:35:41 +02:00
Einar Johan Trøan Sømåen a07723a8df DIRECTOR: Implement GPID XObject 2022-06-15 16:35:41 +02:00
Einar Johan Trøan Sømåen 54091dd50d DIRECTOR: Stub JWXINI XObject 2022-06-15 16:35:41 +02:00
Eugene Sandulenko 93412a5bab DIRECTOR: Created file for hosting game-specific quirks and moved a few there 2022-06-03 14:04:16 +02:00
Roland van Laar 0799ed3b1e DIRECTOR: LINGO: Stub XCMD RegisterCommand
RegisterCommand is an XCMD used in Star Trek: The Next Generation
Interactive Technical Manual. It's unclear what it's purpose is.
2022-03-25 19:24:33 +01:00
Roland van Laar 738def31a0 DIRECTOR: Implement lingo repl in debugger
When in debug mode enter: lingo on
The prompt will start with lingo) to indicate the repl is active.
To stop enter: lingo off

This will allow developers to interactively inspect the current state of
the program.

Only statements that fit on one line are supported.
2022-03-22 23:39:54 +01:00
Roland van Laar 1902b94c13 DIRECTOR: LINGO: move XPlayAnim to XObject
XPlayAnim is an XObject. It was only used as a regular builtin during
development.
2022-03-06 16:49:32 +01:00
eientei 38eb5514b7 DIRECTOR: Implement Memory Xobj 2021-10-21 11:52:12 +02:00
Scott Percival dbd1eeed33 DIRECTOR: LINGO: Add implementation for MoveMouseXObj 2021-10-02 19:32:38 +08:00
Eugene Sandulenko 7e30d10a31 DIRECTOR: Added CDROM XObj stub 2021-08-03 01:13:53 +02:00
Eugene Sandulenko 5e0dc15bb1 DIRECTOR: Added stub for SerialPort XObj and automatically preload it 2021-08-03 01:13:53 +02:00
Eugene Sandulenko 7a3a6160be DIRECTOR: Added stub for Videodisc XObj 2021-08-03 01:13:53 +02:00
Eugene Sandulenko 5216ff6f77 DIRECTOR: Added OrthoPlay XObj stub 2021-08-03 01:13:53 +02:00
Eugene Sandulenko b9c632b224 DIRECTOR: Added stub for PopUp Menu XObj 2021-08-02 23:00:18 +02:00
djsrv c2c6edd779 DIRECTOR: LINGO: Stub SoundJam XObject 2021-07-20 23:43:17 -04:00
djsrv 04f16d2a17 DIRECTOR: LINGO: Move char normalizations to lingo-utils.cpp 2021-07-15 16:31:47 -04:00
djsrv b8d39546e4 DIRCTOR: LINGO: Stub FPlayXobj 2021-07-11 15:17:44 -04:00
Eugene Sandulenko 45aafa1edd DIRECTOR: Implemented LabelDrv XObject. Now MediaBand starts again 2021-07-08 23:11:13 +02:00
djsrv d4882d2daa DIRECTOR: Move loadFontMap to fonts.cpp
There is going to be quite a bit of code to handle font mapping, so I've
created a new file for it.
2021-07-04 00:25:38 -04:00
djsrv 38e8068180 DIRECTOR: LINGO: Use visitor pattern for AST traversal
Compile functions now belong to LingoCompile.
2021-06-22 18:16:53 -04:00
djsrv f726a6ed89 DIRECTOR: LINGO: Rewrite grammar to build AST 2021-06-22 18:16:53 -04:00
aryanrawlani28 4f55c1b689 DIRECTOR & KYRA: MODULES: Use workarounds to skip warnings.
- When these files are included for the second time, a warning is shown that the previous recipes will be overriden.
- Use_Rules helps with a workaround to disable these warnings.
2020-10-03 14:56:36 +02:00
aryanrawlani28 29ceb07959 ENGINES: ALL: Revert detection submodule to be directly present in the engine directory
- DETECT_OBJS are present and added inside an engine's modules.mk file.
2020-10-03 14:56:36 +02:00
aryanrawlani28 8189a05316 ENGINES: ALL: Adapt to changes for new plugins by defining a new detection module
For each engine:
- Make a new folder detection
- Move detection-related files inside the folder
- Add a new module "enginename/detection"
- Add DETECT_OBJS here
- Adjust the normal engine module to remove detect_objs
- Adjust every file for the new changes.
2020-10-03 14:56:36 +02:00
aryanrawlani28 7944a7b039 DIRECTOR: Split detection features & adapt to new plugins. 2020-10-03 14:56:36 +02:00
Eugene Sandulenko 6afb2159c6 DIRECTOR: Remove obsolete video.* 2020-08-18 13:08:52 +02:00
djsrv 9c537a8744 DIRECTOR: Rename Stage to more general Window
The stage and windows are the same type of thing, but the stage only
refers to one particular window.
2020-08-04 23:54:09 -04:00
Roland van Laar edd5aab7fd DIRECTOR: LINGO: Implement RearWindowXObj as no-op
RearWindow is a mac only XObject that can draw on the desktop
outside the game window. This gives the user more immersion.

Implemented as a no-op since ScummVM doesn't handle the background
outside it's own window.
2020-07-27 12:44:22 +02:00
Eugene Sandulenko 6260ebebde DIRECTOR: Fix module.mk format 2020-07-27 10:12:25 +02:00
Roland van Laar 9e040d1b3c DIRECTOR: LINGO: STUB XObject FixPalette
FixPalette is an XObject for Mac that patches the palette.
According to the docs it's either needed after an 8 palette switch
or when using QuickTime movies with more than one custome palette.
Afterwards the colors will be wrong.

The mPatchIt function that correctly sets the palette is stubbed.

Note: It's at the moment of writing this commit unknown if the
bug will show itself on the mac versions of games.
2020-07-27 00:36:07 +02:00
Roland van Laar af62a9d182 DIRECTOR: LINGO: Add FlushXObject
FlushXObj is a Mac only XObject to call the underlying FlushEvents function
from the Macintosh Toolbox. Its purpose is to flush, i.e. remove, events
that happened while loading code.

Implemented as a no-op, there's no need to flush events because:
 - ScummVM handles them and
 - computers were slower and queued events when the program was loading.

More information about the Toolbox and the flush events can be found here:
 https://en.wikipedia.org/wiki/Macintosh_Toolbox
 https://developer.apple.com/legacy/library/documentation/mac/pdf/MacintoshToolboxEssentials.pdf
2020-07-27 00:36:07 +02:00
Eugene Sandulenko 9c22d5bc8f DIRECTOR: Sort module.mk 2020-07-25 22:35:18 +02:00
Nathanael Gentry 4f15cb4af4 DIRECTOR: Introduce Cursor class 2020-07-18 00:37:57 -04:00
Nathanael Gentry 8a85754f25 DIRECTOR: Move Channel to its own file 2020-07-08 13:44:02 -04:00
djsrv 5ae6c34074 DIRECTOR: Separate Movie and Cast from Score 2020-07-01 10:50:31 -04:00
djsrv 3303ab985e DIRECTOR: Rename cast.cpp -> castmember.cpp 2020-07-01 10:50:31 -04:00
djsrv dea03c1171 DIRECTOR: Rename movie.cpp -> video.cpp 2020-07-01 10:50:31 -04:00
Nathanael Gentry d04934a54f DIRECTOR: Move rendering to a Stage class
This commit introduces several changes to the rendering pipeline.

 - Rather than having a window for each score that is played, there is a Stage
   in g_director that is only cleared when the upcoming stage has a different
   size. This permits transitions still clean transitions between movies.

 - Rather than relying upon general surface blitting functions, there is
   progress toward a custom blitter than makes working with inks much easier. A
	 pixelwise function, inkDrawPixel, has been introduced.

 - The mask-based approach to incremental rendering has been abandoned, as it
   caused performance issues and strange rendering bugs. Now the renderer
	 operates on a traditional list of dirty rects that must be redrawn.

 - QuickDraw shapes are more closely integrated with the renderer, and they do
    not require a temporary surface to draw.
2020-06-30 12:38:46 -04:00
djsrv 7f579c2dd2 DIRECTOR: LINGO: Future proof for Xtras 2020-06-10 12:18:29 -04:00
djsrv dd74683f10 DIRECTOR: LINGO: Add XObject type 2020-06-10 12:18:29 -04:00
Nathanael Gentry a2e230803d DIRECTOR: Render texts and buttons with widgets 2020-06-10 15:42:49 +02:00
djsrv 041326bdd1 DIRECTOR: LINGO: Implement factory method calls 2020-06-06 18:34:06 +02:00