Commit graph

1359 commits

Author SHA1 Message Date
Filippos Karapetis
32ec1b9258 SAGA: Use C++ 11 range-based for loops 2025-03-27 13:47:57 +08:00
Filippos Karapetis
11f6080127 SAGA: Fix warning in the key handling code when SAGA_DEBUG is false 2025-03-01 22:12:35 +02:00
Eugene Sandulenko
879eba5c32
CONFIGURE: Replace mt32emu component with 'midi'
This component disables all MIDI-related things when unused,
including MT-32 emulator, Fluidsynth, TiMidity and Sonivox
2024-12-26 22:54:56 +01:00
Eugene Sandulenko
4a70b3507f
CONFIGURE: Added fmtowns_pc98_audio as a component 2024-12-26 19:18:49 +01:00
Eugene Sandulenko
d780708c96 ENGINES: Add mt32emu as a feature and component
Add it to engines that have MIDI playback.

This essentially compiles the emulator only when an engine that
can potentially use it (e.g. MIDI) is enabled
2024-12-25 00:34:39 +01:00
Eugene Sandulenko
fdecb6afca ENGINES: Add components to configure.engine's explanatory comment 2024-12-25 00:34:39 +01:00
Filippos Karapetis
24e7b4d2c0 SAGA: Remove outdated comment, related to Adlib instrument files
When that comment was written, there wasn't any support for the
instrument definition files of the Miles Sound System used with IHNM
2024-11-17 02:01:54 +02:00
Filippos Karapetis
cf3512fea9 SAGA: IHNM: Add a workaround to avoid an unwinnable state - bug #15214
Thanks to @antoniou79 for finding the script bug in Nimdok's chapter
2024-11-11 02:07:17 +02:00
Filippos Karapetis
c7b1cd6e09 SAGA: IHNM: Added information about global flags 12 and 13
Taken from bug #15214
2024-11-11 02:07:17 +02:00
Eugene Sandulenko
c673a257ec
SAGA: I18N: Added clarifying comment for "Swallow".
Number of translators confused the verb with a bird
2024-11-04 16:09:47 +01:00
Eugene Sandulenko
ce2239058c
SAGA: I18N: Keymap "Pickup" -> "Pick up" for consistency 2024-11-04 16:09:40 +01:00
Eugene Sandulenko
e62aa1cb8a
I18N: Normalized "Left Click" to be in title case in keymaps 2024-11-04 15:36:23 +01:00
sluicebox
4200d6575c ALL: Return result from MetaEngine::removeSaveState 2024-10-18 09:41:03 +03:00
Hubert Maier
721dc4fbc6 JANITORIAL: SAGA: Fix typos 2024-09-16 09:41:28 +03:00
Le Philousophe
65c0429045 ALL: Declare the Game not implemented message in only one place 2024-08-17 17:51:06 +03:00
Eugene Sandulenko
caacb4d1e4
ENGINES: "Missing game code" -> "Game not implemented" for unsupported games
As suggested by lephilosouphe, we show this to the end users on attempt
to run unsupported gamesA.
2024-08-13 23:39:57 +02:00
Cameron Cawley
cb438ce233 SAGA: Fix crash due to missing options list terminator 2024-07-25 20:12:17 +01:00
NabeelShabbir
4f26bdc706 SAGA: Introduce I18N comment to improved mapping labels
Remove title case and add I18N comments for keymap labels
2024-07-15 07:53:00 +03:00
NabeelShabbir
7d14ef7cc0 SAGA: Add keymapper support 2024-07-03 09:58:37 +03:00
Cameron Cawley
441b02d057 DETECTION: Use uint32 for ADGameFileDescription file size 2024-06-30 19:13:41 +02:00
Le Philousophe
7e0048b4a3 ENGINES: Add ADDynamicGameDescription class
This class manages a buffer where all data usually stored in detection
plugin will get copied before unloading the plugin and starting the
game.

This class expects that two functions are present in every
GameDescription: sizeBuffer which calculates how many bytes we will need
to store the entry in RAM and toBuffer which copies the data in the
buffer and fix the pointers in the class.
At the end, it is expected that an ADDynamicGameDescription doesn't
depend anymore on data stored in the detection plugin.

The AD_GAME_DESCRIPTION_HELPERS macro allow to implement these functions
in all GameDescription which don't have any pointer except those in
ADGameDescription.
2024-06-30 18:39:06 +02:00
Le Philousophe
b61bd3ff85 ENGINES: Create a type aware advanced meta engine 2024-06-30 18:39:06 +02:00
Le Philousophe
90b886097f ENGINES: Create a type aware advanced detector 2024-06-30 18:39:06 +02:00
Torbjörn Andersson
2a9f7759a3 SAGA: Only enable copy protection checkbox for floppy ITE
And the one CD version that "behaves like a DOS floppy version". Note
that I don't own any of these myself.
2024-06-30 18:01:32 +02:00
Torbjörn Andersson
be92f29104 SAGA: Add "Enable copy protection" engine checkbox for ITE
I have not actually tested that the copy protection works, but the
engine does seem to implement it.
2024-06-30 18:01:32 +02:00
Matthew Jimenez
5219c99400 GRAPHICS: Move PaletteManager definition to a separate header 2024-03-12 12:24:00 +02:00
Le Philousophe
f58b045ec8 SAGA: Migrate engine to Path 2023-12-24 13:19:25 +01:00
Le Philousophe
93a8f7f4d6 COMMON: Move Archive API to Path 2023-12-24 13:19:25 +01:00
Eugene Sandulenko
ec2dd2726b ENGINES: Added optional parameter to canSave/LoadGameStateCurrently() for indicating the reason 2023-12-08 12:21:16 +01:00
sluicebox
4693cdff28 SAGA: Fix buffer overflow. PVS-Studio V512 2023-11-19 20:29:44 -08:00
sluicebox
953a7226e7 SAGA: Fix memory leak on error
Coverity CID 1501495
2023-11-02 12:01:25 -07:00
sluicebox
e7eb740c55 SAGA: Fix memory leaks on error: PVS-Studio V773 2023-10-30 11:28:14 -07:00
Kaloyan Chehlarski
60467473f4 SAGA: Silence uninitialized variable warnings 2023-10-28 16:19:35 +03:00
PushmePullyu
bad85b3c9c SAGA: Fix use-after-free on handling actor action
On switching scenes:
Reset _actor->_lastZone in Actor::updateActorsScene().

Actors can store a pointer to a HitZone in _lastZone
(see Actor::handleActions()).

The HitZone pointed to is held by ObjectMap vm->_scene->_objectMap
in array _hitZoneList.

When changing scenes the array elements are cleared via
ObjectMap::clear() and _lastZone can become stale since
only some code paths reset it (e.g. Actor::takeExit()).

The stale pointer is then passed to Actor::stepZoneAction()
from Actor::handleActions() and dereferenced.

Fixes #13661
2023-05-28 23:32:20 +03:00
PushmePullyu
d2745ff37f SAGA: Fix memory and file handle leak in loadResource
Fixes #14334
2023-05-27 11:06:08 +03:00
Vladimir Serbinenko
ca48af197c SAGA: Fix word-wrapping bug
Without this fix it cuts last character of the line which is a space in
Western languages but a drawable character in Chinese
2023-05-01 12:43:25 +02:00
Vladimir Serbinenko
0198bef235 SAGA: Fix wrong calculation of Big5 string height 2023-04-27 04:24:27 +02:00
Vladimir Serbinenko
b88c384721 SAGA: Add ITE win demo 1 and 2 compressed variant. 2023-01-15 19:22:34 +01:00
Vladimir Serbinenko
8e5d88cd55 SAGA: Flatten tree in ZIP and ARJ archives.
Music patches are in subdirectory. It's easier to remove structure altogether
2023-01-15 19:22:34 +01:00
Walter Agazzi
63a2dc4388 DETECTION: Convert all GOG strings to GOG.com 2023-01-15 11:46:46 +02:00
Vladimir Serbinenko
52b9d064d9 SAGA: Change Mac Guild entry to use data fork for most files
We use resource fork only on sound file, the other ones contain nothing
useful so we don't want to checksum them
2023-01-10 18:34:33 +01:00
Vladimir Serbinenko
ef45ef4b49 SAGA: Support ite demo 3 without unpacking it. 2023-01-07 19:50:52 +02:00
Vladimir Serbinenko
8573bd38ea SAGA: Allow streams to be automatically reopened.
This is needed for IHNM chapter switch and was lost in switch to
common macbinary
2023-01-07 19:44:37 +03:00
Vladimir Serbinenko
302a5eb0af SAGA: Don't close file even after it was overriden by a patch
Now the file handle is shared among the readers of the same context,
so closing it will close it for all user which leads to a crash.
2023-01-07 02:38:07 +02:00
Vladimir Serbinenko
50d52b9d44 SAGA: Correctly handle the case of missing patch file. 2023-01-06 03:53:46 +03:00
Coen Rampen
737111e9d8 SAGA: Add OPL2 support for ItE DOS GOG and Windows 2023-01-05 21:18:30 +01:00
elasota
e280186a8c ALL: VS warning cleanup 2022-12-25 16:31:57 +01:00
Vladimir Serbinenko
4ed51f9005 SAGA: Add AGA demo floppy release 2022-12-21 14:58:09 +01:00
Vladimir Serbinenko
097fd8765e SAGA: Add ITE ECS floppies 2022-12-21 14:58:09 +01:00
Vladimir Serbinenko
63a39b6471 SAGA: Remove suffix _CD from detection_tables.h
Floppy versions use the same tables
2022-12-21 14:58:09 +01:00