Commit Graph

81356 Commits

Author SHA1 Message Date
Colin Snover
798c6bf34d COMMON: Add yet another GUIO option flag
SCI engine has very many game options.
2017-07-06 19:12:36 -05:00
Colin Snover
7ce2e4cf08 GRAPHICS: Allow nearest neighbor scaling of 1Bpp and 2Bpp TransparentSurfaces
This is one small step toward allowing more shared usage of
existing scaling code.
2017-07-06 19:12:36 -05:00
Colin Snover
1fbee2f51e SCI32: Allow skipping SEQ animations
In SSCI, SEQ animations cannot be skipped.
2017-07-06 19:12:36 -05:00
Colin Snover
9f910535c9 SCI32: Centralise OSystem screen updates 2017-07-06 19:12:35 -05:00
Colin Snover
f40ea8c2e7 SCI32: Stop setting unused palette timestamp property 2017-07-06 19:12:35 -05:00
Colin Snover
a689fee663 SCI32: Speed up & deduplicate palette submission code 2017-07-06 19:12:35 -05:00
Colin Snover
332fabcb8a SDL: Only recreate SDL2 window when necessary
Destroying and recreating the SDL window whenever the video mode
changes in SDL2 is not necessary and causes several problems:

1. In windowed mode, the game window shifts position;
2. In fullscreen mode in macOS, every time the window is
   recreated, it causes the OS to play its switch-to-fullscreen
   animation again and emit system alert noises;
3. The window content flickers; and
4. The engine loses events from the old destroyed window.

This patch changes the SDL backend code to avoid destroying and
recreating the SDL window when using SDL2, except when switching
OpenGL modes, since there is no way to change the OpenGL feature
of a window.

There are still some outstanding issues with OpenGL where window
size ends up getting reset even though the user has resized it;
this will probably need to be addressed at some point in another
patch.

Thanks to @bgK and @criezy for their feedback which made this
patch much better.

Co-Authored-By: Bastien Bouclet <bastien.bouclet@gmail.com>
2017-07-06 19:11:54 -05:00
Paul Gilbert
6d37e1e88c TITANIC: Fix Arboretum Winter view enter animation 2017-07-06 18:24:23 -04:00
Paul Gilbert
11bb59a08f TITANIC: Fix NPC conversation crash 2017-07-06 16:33:45 -04:00
Paul Gilbert
e04815f932 TITANIC: Mark a few more sound playbacks as speech 2017-07-06 15:31:07 -04:00
Paul Gilbert
5e3ad4b236 TITANIC: Fix ship announcements with no content 2017-07-06 11:34:20 -04:00
Paul Gilbert
6044ba16ce TITANIC: Added sound command to debugger 2017-07-06 11:07:55 -04:00
Paul Gilbert
0b18b0b1b5 TITANIC: Fix crash clicking on MissiveOMat login prompt 2017-07-06 08:48:54 -04:00
Paul Gilbert
1972fd0537 TITANIC: Don't show Access Denied on MissiveOMat after successful login 2017-07-06 08:25:14 -04:00
Paul Gilbert
6a16dfa670 TITANIC: Fix Rooms Glyphs list only allowing a single custom entry 2017-07-05 21:19:12 -04:00
Paul Gilbert
6d0207c7d6 TITANIC: Fix refreshing inventory tooltip when chicken gets cold 2017-07-05 19:58:11 -04:00
Paul Gilbert
7ed7e022f1 TITANIC: Fix parrot to only eat hot plain chickens 2017-07-05 18:23:23 -04:00
Bastien Bouclet
6f46b174df MOHAWK: Myst: Poll for events every 10ms when waiting 2017-07-05 20:35:26 +02:00
Bastien Bouclet
31d428fd02 MOHAWK: Use movie slots instead of movie ids for stored opcodes
Fixes Trac#9873.
2017-07-05 19:13:32 +02:00
Paul Gilbert
afe27c6de8 TITANIC: Don't allow GMM save/loading during cutscenes 2017-07-05 08:22:05 -04:00
Tobia Tesan
348edec176 DIRECTOR: Make 3-ary processEvent private 2017-07-05 08:35:33 +02:00
Tobia Tesan
2ae7d9f86b DIRECTOR: Handle kEventPrepareMovie with 1-ary processEvent 2017-07-05 08:35:33 +02:00
Tobia Tesan
9ddb97b4ed DIRECTOR: Handle kEventExitFrame with 1-ary processEvent 2017-07-05 08:35:33 +02:00
Tobia Tesan
7b675fc1de DIRECTOR: Handle kEventNone with 1-ary processEvent 2017-07-05 08:35:33 +02:00
Tobia Tesan
8a6dce9fd3 DIRECTOR: Handle kEventIdle with 1-ary processEvent 2017-07-05 08:35:33 +02:00
Tobia Tesan
1d5c92783e DIRECTOR: Add processSpriteEvent 2017-07-05 08:35:33 +02:00
Tobia Tesan
fd310f1fd3 DIRECTOR: Move executeImmediateScripts to lingo.cpp 2017-07-05 08:35:33 +02:00
Tobia Tesan
f1d2149db6 DIRECTOR: Include director/frame.h and sprite.h in lingo.cpp 2017-07-05 08:35:33 +02:00
Tobia Tesan
9735fb06ca DIRECTOR: Move #define CHANNEL_COUNT to director.h 2017-07-05 08:35:33 +02:00
Tobia Tesan
265b0882f6 DIRECTOR: Use 1-ary processEvent call to start movie
Perahsp a specialized Lingo::start() would be better for clarity for
this single one?
2017-07-05 08:35:33 +02:00
Tobia Tesan
8a6ef727cf DIRECTOR: Add kEventStart case for processGenericEvent 2017-07-05 08:35:33 +02:00
Tobia Tesan
5a4942b6c5 DIRECTOR: Remove "primary event handler" comment
According to D4 manual only mouse/key/timeout event can have primary
handler
2017-07-05 08:35:33 +02:00
Tobia Tesan
3059c95abd DIRECTOR: Handle keyDown in 1-ary processEvent
Might change semantics by calling the standard chain for input events.

That is what the D4 docs suggest anyway.
2017-07-05 08:35:33 +02:00
Tobia Tesan
137e10eef2 DIRECTOR: Add kFrameScript call
This follows from D4 docs.

Changes semantics, *might* break stuff.
2017-07-05 08:35:33 +02:00
Tobia Tesan
0584f936dc DIRECTOR: Reorder processInputEvent 2017-07-05 08:35:33 +02:00
Tobia Tesan
bfe3a316c4 DIRECTOR: Swap order of processEvent calls
This appears to be the correct order from docs and makes code easier to
reorder.

*Might* break stuff though.
2017-07-05 08:35:33 +02:00
Tobia Tesan
57dbfbf988 DIRECTOR: Call primaryEventHandler in processInputEvent 2017-07-05 08:35:33 +02:00
Tobia Tesan
c267bc208f DIRECTOR: Handle kEventPrepareFrame in processFrameEvent 2017-07-05 08:35:33 +02:00
Tobia Tesan
963bc4a351 DIRECTOR: Move kEventMouseUp/Down handling to processInputEvent 2017-07-05 08:35:33 +02:00
Tobia Tesan
5a9a1571fa DIRECTOR: Include sprite.h in lingo-events.cpp 2017-07-05 08:35:33 +02:00
Tobia Tesan
f9302e2c94 DIRECTOR: Handle frame enter/exit with 1-ary processEvent call 2017-07-05 08:35:33 +02:00
Tobia Tesan
ce3aaa08d0 DIRECTOR: Implement processFrameEvent 2017-07-05 08:35:33 +02:00
Tobia Tesan
38db7dfafe DIRECTOR: Add runMovieScript 2017-07-05 08:35:33 +02:00
Tobia Tesan
252c890bf5 DIRECTOR: Add Lingo::PrimaryEventHandler 2017-07-05 08:35:33 +02:00
Tobia Tesan
ed66169adf DIRECTOR: Include frame.h in lingo-events.cpp 2017-07-05 08:35:33 +02:00
Tobia Tesan
4f749fc007 DIRECTOR: Add Lingo::_dontPassEvent
I'm not sure whether this should go here or in Director.
I'm leaving it here because _dontPassEvent changes the semantics of event handling.
2017-07-05 08:35:33 +02:00
Bastien Bouclet
13fa1b22a2 MOHAWK: Only disable videos when turning off the prison viewer
Closing them was causing a crash when using the lake viewer since there
is nothing to load back the lake video. Fixes Trac#9892.
2017-07-04 19:43:32 +02:00
Paul Gilbert
02dec19298 TITANIC: Fix delay for Doorbot repeat will you help message 2017-07-03 15:59:17 -04:00
Thierry Crozat
41f32c209b BUILD: Do not link iOS static builds with AudioUnit framework 2017-07-03 18:31:43 +01:00
Lothar Serra Mari
ed063c6f45 I18N: Update translation (German)
Currently translated at 100.0% (962 of 962 strings)
2017-07-03 15:25:30 +02:00