Commit graph

171 commits

Author SHA1 Message Date
Einar Johan Trøan Sømåen
51b2994659
Revert TINSEL refactors that happened too close to code freeze.
Revert "TINSEL: Fix int32 discrepancy"
- This reverts commit a640e6b489.

Revert "TINSEL: Refactor Notebook and System reels to follow naming conventions"
- This reverts commit 2cfc3b4ed2.

Revert "TINSEL: Rename IsConvAndNotMove -> isConvAndNotMove"
- This reverts commit 5ba099f408.

Revert "TINSEL: Rename the public methods in Dialogs to follow convention"
- This reverts commit 8ef52754a1.

Revert "TINSEL: Rename the private methods in Dialogs to follow convention"
- This reverts commit a3d0b5206b.

Revert "TINSEL: Add debug commands to add all clues, as well as listing them."
- This reverts commit fdfede64ca.

Revert "TINSEL: Implement pointer handling for Notebook"
- This reverts commit 195b04c9cf.

Revert "TINSEL: Implement polygon-handling for Notebook"
- This reverts commit 10cce703dc.

Revert "TINSEL: Add initial event support to Notebook."
- This reverts commit 61c94379cd.

Revert "TINSEL: Close Inventories when switching between them."
- This reverts commit 337aed1915.

Revert "TINSEL: Implement library function CROSSCLUE"
- This reverts commit 9519288acd.

Revert "TINSEL: Implement Notebook logic for adding clues and showing pages."
- This reverts commit 3580c17cc5.

Revert "TINSEL: Implement InventoryOrNotebookActive"
- This reverts commit 89aefb7794.

Revert "TINSEL: Minor style-fixes"
- This reverts commit e92fafb955.

Revert "TINSEL: Refactor IsInPolygon to be partially a member-function"
- This reverts commit fa7d448051.

Revert "TINSEL: Replace LockMem with GetFrame for FRAME"
- This reverts commit ec9c630fc5.

Revert "TINSEL: Replace LockMem with GetMultiInit for MULTI_INIT"
- This reverts commit fa8e3c506b.

Revert "TINSEL: Further refactor InventoryObjects"
- This reverts commit 1a2f18e421.
2022-05-27 19:55:36 +02:00
Einar Johan Trøan Sømåen
2cfc3b4ed2
TINSEL: Refactor Notebook and System reels to follow naming conventions 2022-05-27 10:39:56 +02:00
Einar Johan Trøan Sømåen
5ba099f408
TINSEL: Rename IsConvAndNotMove -> isConvAndNotMove 2022-05-27 10:29:38 +02:00
Einar Johan Trøan Sømåen
8ef52754a1
TINSEL: Rename the public methods in Dialogs to follow convention 2022-05-27 10:25:33 +02:00
Einar Johan Trøan Sømåen
9519288acd
TINSEL: Implement library function CROSSCLUE 2022-05-26 21:49:16 +02:00
Einar Johan Trøan Sømåen
3580c17cc5
TINSEL: Implement Notebook logic for adding clues and showing pages. 2022-05-26 21:48:17 +02:00
Einar Johan Trøan Sømåen
dd1ba7c85c TINSEL: Implement a container for accessing the INV_OBJECTs
This way we encapsulate the iteration, thus making sure that
the appropriate stride is used (Noir has more fields).
2022-05-11 08:59:07 +03:00
Einar Johan Trøan Sømåen
60ee470a88
TINSEL: Implement ADDINV3 (Noir) 2022-05-07 21:58:39 +02:00
Einar Johan Trøan Sømåen
102a90cfd9
TINSEL: Implement DECINV2 for NOIR 2022-05-07 21:57:34 +02:00
Einar Johan Trøan Sømåen
58fa9fa6da
TINSEL: Implement WhichInventoryOpen for Noir. 2022-05-07 21:25:23 +02:00
Einar Johan Trøan Sømåen
492651b03a
TINSEL: Stub Notebook-polygon functions 2022-05-07 21:24:47 +02:00
Einar Johan Trøan Sømåen
b3dee3c147 TINSEL: Replace guarded MultiDeleteObject with MultiDeleteObjectIfExists
This behaves closer to how free() and delete works, in that it's a no-op
for nullptr. Also to be slightly safer, it will set the pointer to nullptr
afterwards.

The application is slightly indiscriminate, so a few extra nullptr
writes are added, even where the pointer would be immediately assigned
a new value afterwards.
2022-05-07 20:44:05 +03:00
Peter Kohaut
91e2436650 TINSEL: Parsing of cameras & lights 2022-05-07 12:30:52 +02:00
Torbjörn Andersson
dac00652cb TINSEL: Add missing break to translateNoirLibCode() switch case
I assume it wasn't meant to be a fallthrough to an error.
2022-05-07 09:42:25 +02:00
Einar Johan Trøan Sømåen
8a5c567d7c
TINSEL: Enable the language scene.
It depended on INVPLAY to be mapped.
2022-05-06 19:39:24 +02:00
Einar Johan Trøan Sømåen
c101363240
TINSEL: Stub OPENNOTEBOOK (Noir) 2022-05-06 19:39:24 +02:00
Einar Johan Trøan Sømåen
2612eeebf6
TINSEL: Correct the mapping for ZZZZZZ (it has one argument) 2022-05-06 19:39:23 +02:00
Jakob Wagner
99c1ea5ea0 TINSEL: Implement DECINVMAIN libcall
DECINVMAIN does not hail the loadingscreen scene yet because playing
it produces an incorrect corotine stack.
2022-04-27 00:33:15 +03:00
Jakob Wagner
b71545857b TINSEL: Remap special inv indexes for v3
V3 requires discerning between NOOBJECT and INV_NOICON as the values
associated to these special indexes now differ.
2022-04-27 00:33:15 +03:00
Jakob Wagner
c44ec28e2b TINSEL: Implement SystemReel subsystem
Implementation of one special path in SetSystemReel is missing.
2022-04-27 00:33:15 +03:00
Jakob Wagner
70d1dbb00f TINSEL: Add barebones Notebook subsystem
And implement the BOOKADDHYPERLINK libcall.
The subsystem contains known fields and constants.
2022-04-27 00:33:15 +03:00
Jakob Wagner
a40cc7053d TINSEL: Implement HELDOBJECTORTOPIC libcall 2022-04-27 00:33:15 +03:00
Jakob Wagner
165ec9cbae TINSEL: Replace TinselV3 checks with comparisons 2022-04-21 20:34:17 +03:00
Jakob Wagner
6b1dec7879 TINSEL: Replace TinselV1 checks with comparisons 2022-04-21 20:34:17 +03:00
Jakob Wagner
7fc6499264 TINSEL: Replace TinselV0 checks with comparisons 2022-04-21 20:34:17 +03:00
Jakob Wagner
67c3bce30e TINSEL: Replace TinselV2 checks with comparisons
Until now, the TinselV* defines were used for discerning between
engine versions. The define TinselV2 was true for both v2 and v3.
Sticking to the old scheme would lead to confusion when more
special paths for v3 are implemented.
2022-04-21 20:34:17 +03:00
Jakob Wagner
ed780bc7a4 TINSEL: Add complete opcode mappings for v3
Stub INVENTORY3 and NOTEBOOKADDHYPERLINK libcodes.
This allows the game to reach the first scene when PCM playback is disabled.
Add warning messages when stubbed libcodes are executed.
2022-04-18 01:04:55 +01:00
Filippos Karapetis
42bc12a007 TINSEL: Remove superfluous V3 checks
TinselV2 already checks for V3
2022-01-16 13:20:40 +02:00
Filippos Karapetis
e90b45b226 TINSEL: Remove superfluous (and a bit confusing) pointer typedefs
This helps align tinsel with our code and type formatting  guidelines
2022-01-16 13:20:40 +02:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Peter Kohaut
25fa525969 TINSEL: Added base of Noir movers
Renamed rince.* files to movers to be more game independent.
Added elementary support for Noir movers which can use different logic.

Allows game to boot to the first interactive scene, but there is no 3D model rendered (that is WIP).
2021-08-08 20:15:18 +02:00
Peter Kohaut
19f6d4f7b5 TINSEL: Add more libcall mapping for Noir 2021-08-08 20:15:18 +02:00
Peter Kohaut
afa37d775b TINSEL: Added more opcodes for Noir 2021-08-02 20:58:21 +02:00
Peter Kohaut
e242a76694 TINSEL: Added Noir font rendering 2021-08-02 01:08:29 +02:00
LKramer
31265970bb
TINSEL: Discworld Noir: Support for opcode 217. (#2988)
This adds support for opcode 217. I have made the assumption that it's
voiceover, and given it an enum value to reflect that. This enables
voiceover to be played in the opening movie.
2021-05-03 19:09:00 +02:00
Orgad Shaneh
f835d1cebc TINSEL: Fix Clang warning
../scummvm/engines/tinsel/tinlib.cpp:1610:3: warning: variable 'playfield' is used uninitialized whenever switch case is taken [-Wsometimes-uninitialized]
                CORO_INVOKE_ARGS(PlayFilmc, (CORO_SUBCTX, hFilm, x, y, 0, false, false, myEscape != 0, myEscape, bTop, playfield));
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../scummvm\common/coroutines.h:226:17: note: expanded from macro 'CORO_INVOKE_ARGS'
                        return; case __LINE__:; \
                                     ^~~~~~~~
<scratch space>:143:1: note: expanded from here
1610
^~~~
../scummvm/engines/tinsel/tinlib.cpp:1610:106: note: uninitialized use occurs here
                CORO_INVOKE_ARGS(PlayFilmc, (CORO_SUBCTX, hFilm, x, y, 0, false, false, myEscape != 0, myEscape, bTop, playfield));
                                                                                                                       ^~~~~~~~~
../scummvm\common/coroutines.h:222:12: note: expanded from macro 'CORO_INVOKE_ARGS'
                        subCoro ARGS; \
                                ^~~~
../scummvm/engines/tinsel/tinlib.cpp:1592:20: note: initialize the variable 'playfield' to silence this warning
        OBJECT** playfield;
                          ^
                           = nullptr
2021-03-24 01:11:12 +02:00
Einar Johan Trøan Sømåen
040ab7f68b
TINSEL: Map STAND 2021-03-08 23:03:23 +01:00
Einar Johan Trøan Sømåen
bb4ce21bb0
TINSEL: Map HAVE 2021-03-08 23:03:22 +01:00
Einar Johan Trøan Sømåen
ae60814dde
TINSEL: Map TALKVIA 2021-03-08 22:43:54 +01:00
Peter Kohaut
01b42e8357 TINSEL: Added video decoding for V3
Still no sound
2021-03-06 17:50:57 +01:00
Einar Johan Trøan Sømåen
32c4ee5588
TINSEL: Map POSTTAG 2021-03-06 15:04:52 +01:00
Einar Johan Trøan Sømåen
0876f73eaa
TINSEL: Fix off-by-one in RANDOM logging 2021-03-06 13:29:52 +01:00
Einar Johan Trøan Sømåen
c4fbd14b9e
TINSEL: Map PRINTTAG 2021-03-06 13:28:27 +01:00
Einar Johan Trøan Sømåen
5b2c2637fc
TINSEL: Map SHOWTAG 2021-03-06 13:26:30 +01:00
Einar Johan Trøan Sømåen
891001657f
TINSEL: Map CALLTAG 2021-03-06 13:26:29 +01:00
Einar Johan Trøan Sømåen
d79d68f0c5
TINSEL: Map HIDETAG 2021-03-06 13:26:29 +01:00
Peter Kohaut
e59a470db3 TINSEL: Updated addional drawing routines for v3
Implemented playing of films of objects (not movies).
Fixed rendering of the main menu.
Increased the size of parameters of coroutines.
2021-03-04 20:45:32 +01:00
Einar Johan Trøan Sømåen
160f5297f4
TINSEL: Map PLAYSAMPLE, and set sample data to MP3 in Noir 2021-03-01 22:32:47 +01:00
Einar Johan Trøan Sømåen
bd44a9d597
TINSEL: Map RANDOM 2021-03-01 22:17:14 +01:00
Einar Johan Trøan Sømåen
e31fbf6766
TINSEL: Map ACTORPRIORITY 2021-03-01 22:15:16 +01:00