Commit Graph
159 Commits
Author SHA1 Message Date
Einar Johan Trøan Sømåen 50eb3bb542 TINSEL: Rename the public methods in Dialogs to follow convention 2022-06-10 23:12:34 +03:00
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 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 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 505c26f335 TINSEL: Add keymapping for F2/F3 for inventory/notebook (NOIR) (WIP) 2022-05-06 20:25:15 +02: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 31d4dfa351 TINSEL: Implement GetLanguageSceneHandle
Needed for INVMAIN implementation for noir.
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 165ec9cbae TINSEL: Replace TinselV3 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
D G Turner d22859680a TINSEL: Remove Redundant Declarations
These cause GCC Compiler Warnings when -Wredundant-decls is enabled.
2022-03-06 14:10:27 +00: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
eddebaby 014e539827 TINSEL: Add detection for Discworld 1 PSX Ger/Jap PSX versions
Follow up on: https://bugs.scummvm.org/ticket/11368

Adds detection for German Playstation version.
Also corrects detection of Japanese Playstation version.

Files need to be extracted/split correctly from DISCWLD.LFD/DISCWLD.LFI. I will attach a QuickBMS script to the PR, which can be used on the German and Japanese CDs to extract the data, or could be used to inform handling the LFD/LFI files directly in ScummVM. The QuickBMS script mention in the above request ticket isn't quite right for the Discworld 1 files.

getSampleIndex and getSampleFile in tinsel.cpp now fallback to ENGLISH files if they fail to find (e.g.) GERMAN.IDX.

This was an easy way to add support for the PSX German CD, without breaking the German DOS CD, Japanese PSX CD etc.

The German PSX version should be as compatible as the English PSX version.

The Japanese PSX version subtitles are not supported, and cause ScummVM to crash when you first try to hover over an object. However, you can view the intro cutscene, and hear the audio.
2021-06-25 00:09:43 +03:00
ysj1173886760 bea68bb58c TINSEL: move debug channels to metaEngineDetection 2021-05-22 01:34:57 +02:00
Orgad Shaneh a05e54f00c JANITORIAL: Remove trailing whitespaces 2021-05-04 11:46:30 +03:00
Donovan Watteau e60e0b8f20 TINSEL: Fix uninitialized numPolygons value for Discworld 1 Floppy Demo V0
numPolygons was left uninitialized for the original V0 demo, so it could be
set to a big value which would trigger assert(numPolys <= MAX_POLY) in
MaxPolygons() and immediately crash the game.

This restores the implicit behavior before commit 24b77f1e99.
2021-05-01 21:11:52 +03:00
Donovan Watteau 5dbcf6f739 TINSEL: Fix numPolygons read on big-endian systems 2021-05-01 21:11:52 +03:00
Peter Kohaut 876a6a47c9 TINSEL: Fixed resolution for NOIR 2021-03-06 20:59:24 +01:00
Einar Johan Trøan Sømåen 3d461fca18 TINSEL: Initialize graphics for Noir as 16 Bit 565
Also avoid touching palettes when drawing backgrounds.
2021-02-16 23:24:28 +01:00
Einar Johan Trøan Sømåen 24b77f1e99 TINSEL: Implement Noir game-chunk loading. 2021-02-07 22:52:51 +01:00
Einar Johan Trøan Sømåen ea21659084 TINSEL: Implement LZSS decompression for Noir 2021-02-06 01:04:54 +01:00
Einar Johan Trøan Sømåen 847b67b455 TINSEL: Unblock Noir in TinselEngine::run(), and use DW2's graphics-config for now. 2021-02-06 00:29:54 +01:00
Einar Johan Trøan Sømåen afdc87d99f TINSEL: Error out when trying to start Discworld Noir for now. 2020-10-31 00:09:03 +01:00
Filippos Karapetis 1f519f4738 TINSEL: Remove resolved TODO 2020-10-04 01:17:54 +03:00
Filippos Karapetis 94fae0c94d TINSEL: Move all dialog-related functions into a new Dialogs class 2020-10-04 01:15:23 +03:00
Filippos Karapetis 1bda5728a9 TINSEL: Reset more global vars upon engine destruction 2020-10-04 01:15:22 +03:00
Filippos Karapetis ae91b7e056 TINSEL: Reset more global vars upon engine destruction 2020-10-04 01:15:22 +03:00
Filippos Karapetis 9c9fc0cf2b TINSEL: Reset more global vars upon engine destruction 2020-10-04 01:15:22 +03:00
Filippos Karapetis 05e7af7c65 TINSEL: Reset more global vars upon engine destruction 2020-10-04 01:15:21 +03:00
Filippos Karapetis 672ab3cca3 TINSEL: Clear some more vars upon engine destruction 2020-10-04 01:15:21 +03:00
Filippos Karapetis 9322b11fd8 TINSEL: Move all scroll-related functions into a new Scroll class 2020-10-04 01:15:20 +03:00
Filippos Karapetis efb0acb24f TINSEL: Clear some global vars upon engine destruction 2020-10-04 01:15:20 +03:00
Filippos Karapetis bbf81aa216 TINSEL: Move code into class destructors 2020-10-04 01:15:20 +03:00
Filippos Karapetis ae2e05cbd3 TINSEL: Move all handle-related functions into a new Handle class 2020-10-04 01:15:19 +03:00
Filippos Karapetis bb54f3cd4f TINSEL: Move all actor-related functions into a new Actor class
Also, merge the two different SetMoverZ() functions
2020-10-04 01:15:18 +03:00
Filippos Karapetis 4f269c76d1 TINSEL: Move all cursor-related functions into a new Cursor class 2020-09-25 22:24:14 +03:00
Paul Gilbert 1c63d9b958 TINSEL: Fix Japanese DW1 using Japanese.smp/idx/txt 2020-07-10 19:07:52 -07:00
Filippos Karapetis 63ae50e790 TINSEL: Replace usage of NULL with nullptr 2020-02-29 02:21:41 +02:00
Filippos Karapetis 939f7cf2b7 TINSEL: Move all the music related functions into a new Music class 2020-02-23 14:51:01 +02:00
Filippos Karapetis 64b750ab2e TINSEL: Move background related functions into a new Background class 2020-02-22 18:41:39 +02:00
Filippos Karapetis eed258261a TINSEL: Merge PrimeBackground() and InitBackground() 2020-02-22 18:41:39 +02:00
Filippos Karapetis 6fa96182f7 TINSEL: Move font-related code into a new Font class
Also, remove some wrapper functions in tinlib.cpp
2020-02-22 18:41:39 +02:00
Paul Gilbert 17dc909e2c TINSEL: Refactor to use Engine debugger 2020-02-16 13:07:19 +02:00
Colin Snover 432fd522d2 ENGINES: Remove default1x scaler flag
This flag is removed for a few reasons:

* Engines universally set this flag to true for widths > 320,
  which made it redundant everywhere;
* This flag functioned primarily as a "force 1x scaler" flag,
  since its behaviour was almost completely undocumented and users
  would need to figure out that they'd need an explicit non-default
  scaler set to get a scaler to operate at widths > 320;
* (Most importantly) engines should not be in the business of
  deciding how the backend may choose to render its virtual screen.
  The choice of rendering behaviour belongs to the user, and the
  backend, in that order.

A nearby future commit restores the default1x scaler behaviour in
the SDL backend code for the moment, but in the future it is my
hope that there will be a better configuration UI to allow users
to specify how they want scaling to work for high resolutions.
2017-10-07 12:30:29 -05:00
Eugene Sandulenko 406b8cf33b TINSEL: Move debug channel registration to the very top of the engine constructor 2016-07-28 11:45:33 +03:00
Eugene Sandulenko 4dc60b525d TINSEL: Fix class initialization 2016-06-17 12:10:11 +02:00
Matthew Hoops aa6ff44440 BACKENDS: Only expose one set of functions for AudioCDManager
Engines should only have to call one set of functions and not decide between the two. In fact, the 'emulation' API was documented to just call the 'real CD' API.
2016-03-13 13:57:19 +01:00
Matthew Hoops fb6fe1332a BACKENDS: Move to an openCD() without parameters as the public API 2016-03-13 13:52:24 +01:00
Marcus Comstedt 9b7ab59fbb TINSEL: Fix crash when error() is called early 2016-02-07 13:03:52 +01:00