Commit Graph

1340 Commits

Author SHA1 Message Date
athrxx
4a6dbc73db AGOS: attempt to fix bug no. 12617 ("AGOS: Deadlock when shutting down game")
I have also made the necessary changes to the PC-98 audio drivers which were written to work around the current situation, but now also need a different order in the destructors.
2021-06-11 17:49:33 +02:00
Torbjörn Andersson
f6bac7b6c6 AGOS: Fix restoreBlock() regression
The whole restoreBlock() function looked strange. It said it took x, y,
w and h, but it seems pretty clear that what it expects is left, top,
right and bottom.

Except in one case, where the order of the parameters had been swapped.

The most visible result of all this was that The Feeble Files crashed
when you pressed the "Off" button in the Oracle interface.

I've changed the names of the parameters, and that one strange call, and
changed how the function calculates the dirty rect. Hopefully that
should be correct.
2021-06-01 22:22:47 +01:00
ysj1173886760
7dcf259006 AGOS: move debug channels to metaEngineDetection 2021-05-22 01:34:57 +02:00
Kaloyan Chehlarski
a8103e2eb5 COMMON: Add support for multi-file InstallShield cabinets
Added support for InstallShield v6 cabinets, which can be made up of
multiple files. The interface for creating an Archive instance now takes
the base filename (e.g. the "data" in "data1.cab") for all cabinets,
including single-file ones.

Co-Authored-By: clone2727 <236052+clone2727@users.noreply.github.com>
Co-Authored-By: Walter van Niftrik <615114+waltervn@users.noreply.github.com>
2021-05-15 23:03:19 +03:00
Eugene Sandulenko
0d50189563
AGOS: Added detection for unextracted 4CD Polish feeble. Bugreport #12496 2021-04-29 13:12:16 +02:00
Eugene Sandulenko
2f912109f5
AGOS: Added detection for unextracted Italian 4CD feeble. Bugreport #12495 2021-04-29 13:12:16 +02:00
Mathias Parnaudeau
8b816cf0ea AGOS: Fix format-overflow warnings
Slightly increase the destination buffer to satisfy the theorical
copy of 5 characters for a 16-bit value.
2021-04-27 04:00:01 +01:00
Eugene Sandulenko
c7cec081d1
AGOS: Do not use sole data1.cab for detection 2021-04-26 15:17:49 +02:00
Eugene Sandulenko
85931b85c5
AGOS: Added support for German 4CD Feeble unpacked. Bugreport #11541 2021-04-26 14:51:10 +02:00
Eugene Sandulenko
10406d3673
AGOS: Added another Polish simon2. Bugreport #11770 2021-04-23 15:56:48 +02:00
Eugene Sandulenko
085069babe
AGOS: Added detection for French Amiga waxworks. Bugreport #11597 2021-04-22 15:36:31 +02:00
Eugene Sandulenko
49c5d54644
AGOS: Added detection for simon2 GOG edition. Bugreport #11394 2021-04-21 12:35:08 +02:00
Eugene Sandulenko
570f1bcbc3
AGOS: Added another simon1 demo detection. Bugreport #11200 2021-04-21 00:57:31 +02:00
Eugene Sandulenko
7924568a89
AGOS: Added detection for Italian 9-floppy Simon1. Bugreport #10963 2021-04-20 13:24:28 +02:00
athrxx
cac259ba26 AGOS: (ELVIRA2) - fix mouse wheel handling
- Fix messed up inventory (bug no. 11998) caused by the asynchronous (outsize of the normal engine) handling of the mouse wheel. This often lead to wrong inventory item icons.

- Also prevent crash due to nullptr deref. This can happen when using the mouse wheel while the inventory items are not visible (e. g. during the copy protection, when the symbol and words for the code wheel are displayed in the inventory window).
2021-04-17 04:23:27 +02:00
Eugene Sandulenko
5e7fe2dc57
JANITORIAL: Replace spaces in indentation with tabs 2021-04-15 21:20:36 +02:00
sluicebox
93eeffc84d JANITORIAL: Update old bug tracker numbers 2021-03-03 02:15:05 +02:00
athrxx
1e9b46e367 AGOS: fix regression from 8d175842
(assert triggered in PN due to invalid rect. The dirty rects are only used in Elvira/PC-98)
2021-02-07 03:40:33 +01:00
athrxx
4c0ff2b023 AGOS: (ELVIRA/PC98/Jp) - add paranoia checks to sound driver 2021-01-22 02:16:49 +01:00
athrxx
8969fa9c09 AGOS: (ELVIRA/PC98/Jp) - fix game restart
Like most of the other data in the PC-98 version the restart save file also requires decompression.
2021-01-22 00:47:59 +01:00
athrxx
77b316ef58 AGOS: (ELVIRA) - block mouse wheel during save/load/pause dialog
I assume that this happens accidently, since the mouse wheel was never supported by the original. Currently, you can still scroll the inventory using the mouse wheel when a save/load/pause dialog is open. It causes a text glitch in the PC-98 version. Instead of just fixing that glitch I've decided to fix the underlying bug (limited to Elvira 1 though; no idea what the behavior is in the other games).
2021-01-22 00:47:59 +01:00
athrxx
a3fd19265f AGOS: (ELVIRA/PC98/Jp) - add sound driver
Added support for PC9801-26, Roland MT-32 and General Midi. I have left out the PC speaker part for now.
2021-01-22 00:47:59 +01:00
athrxx
56d897a100 AGOS: (ELVIRA/PC98/Jp) - more fixes
Just walking around the castle fixing bugs as I find them, e. g.:
- make decompression routine safer (this could write a couple of invalid byte in at least one case)
- also support compressed data header without actual data (required in the kitchen scene when killing the evil cook)
- fix some graphics/palette related glitches
2021-01-22 00:47:59 +01:00
athrxx
512ae9cfe3 AGOS: (ELVIRA/PC98/Jp) - add static msg strings + some fixes
(this concerns mostly the save/load/pause texts)
2021-01-22 00:47:58 +01:00
athrxx
8d17584247 AGOS: (ELVIRA/PC98/Jp) - more dirty rect handling
Make more use of dirty rect handling (applies to the PC-98 version only, the other versions don't need that).
2021-01-22 00:47:58 +01:00
athrxx
574133086d AGOS: (ELVIRA/PC98/Jp) - add Japanese font drawing
- Add dual layer graphics display to display the Japanese characters in their proper (double) resolution on top of the graphics. The original actually uses text mode.
- Adapt mouse handling to dual layer code.
- For consistency I got rid of all direct calls to _system->lockScreen() and _system->unlockScreen(), even in the sub engines that aren't affected. I find it easier to debug and to maintain this way.
2021-01-22 00:47:58 +01:00
athrxx
bb8c70f865 AGOS: (ELVIRA/PC98/Jp) - fix startup
Add necessary file name and file format modifications so that the game at least loads up and runs up to the start scene without glitches.
2021-01-22 00:47:58 +01:00
athrxx
d2b2d509ef AGOS: (ELVIRA/PC98/Jp) - add detection entry 2021-01-22 00:47:58 +01:00
Cameron Cawley
ba8551b3ae AGOS: Allow detecting games from disabled subengines 2020-12-04 20:57:14 +00:00
Cameron Cawley
4ced49acd4 ENGINES: Changed AdvancedMetaEngine::createInstance to return a Common::Error 2020-12-04 20:57:14 +00:00
Eugene Sandulenko
ae27bc6133 AGOS: JANITORIAL: Whitespace fixes 2020-11-28 13:27:37 +01:00
Eugene Sandulenko
7ff34bc9ec PLUGINS: MetaEngineStatic -> MetaEngineDetection 2020-10-11 23:14:39 +02:00
Eugene Sandulenko
7ea6781043 PLUGINS: PLUGIN_TYPE_METAENGINE -> PLUGIN_TYPE_ENGINE_DETECTION 2020-10-11 23:12:32 +02:00
aryanrawlani28
d26bbe521c ENGINES: ALL: Finish renaming ME & AME classes
- ME -> MetaEngineStatic (static parts)
- MEC -> MetaEngine (dynamic parts)
2020-10-03 14:56:36 +02:00
aryanrawlani28
a56dc094b9 ENGINES: ALL: Move detection_enums -> detection.h
- Cleans up headers quite a bit.
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
f3b9477893 ENGINES: ALL: Add header guards for the new detection-header files. 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
2f6453100b AGOS: Split detection code & adapt to new plugins.
- Move AGOSGameDescription -> detection.h
- Move obsoleteGameIDsTable -> obsolete.h
- Both the above points are because the detection needs them, as well as the engine.
- By moving to headers in this pattern, we avoid many unnecessary inclusions and keep everything clean.
2020-10-03 14:56:36 +02:00
aryanrawlani28
5850987077 AGOS: Move some common detection related enums from intern.h -> intern_detection.h
- Include it in intern.h, so everything functions normally.
- However, now we can include detection-related things from intern.h in other files, without including unnecessary things.
2020-10-03 14:56:36 +02:00
aryanrawlani28
76cb0351e0 AGOS: Move common enum from agos.h to new header file 2020-10-03 14:56:36 +02:00
aryanrawlani28
bc8ead4a7c AGOS: GUI: U32: Remove redundant code 2020-08-30 14:43:41 +02:00
aryanrawlani28
7a19c7ffee I18N: Update POTFILES
In the previous commit, some new places where translations could be used were found. This commit adds the relevant files to POTFILES.
2020-08-30 14:43:41 +02:00
aryanrawlani28
4b6976c558 GUI: U32: Reduce number of files changed and fixes
Up until last commit, everything was working fine but the amount of files changed was too large. This commit tries to reduce the changes.

- Add a fake constructor to Keymap, text-to-speech, setDescription (save-state)
- Redirecting functions for PopUpWidget::appendEntry, ButtonWidget::setLabel, GUIErrorMessage
- Use the above functions and constructors to reduce changes in Engines
- Fix warnings being in unicode. Only output english text in - Warnings, Errors, etc.
- Mark some strings as "translation" strings. (Not yet added to POTFILES)
- Remove some CP related things from po/modules.mk
- Previously used some Common::convertToU32 where it was not necessary, replace this with u32constructor
2020-08-30 14:43:41 +02:00
aryanrawlani28
a9bfe35216 GUI: U32: More issue fixes and general improvements
- Use the fake constructor for message dialog less often
- solve errors regarding comparision between string and u32string in midi
- solve errors in testbed/speech related to ttsMan->say
- fix unsigned comparision warning in tab.cpp
- fix issue with static strings and translations in sdl-graphics
2020-08-30 14:43:41 +02:00
aryanrawlani28
e22b32abfe GUI: U32: Use Common::U32String::format where necessary and GUIError to u32
- Where necessary as in, where translated messages are used.
- GUIErrorMessage now takes in U32String
- error messages across some engines use U32Strings. they are changed because they show a message dialog.
2020-08-30 14:43:41 +02:00
aryanrawlani28
bed05ea134 GUI: U32: Fix compilation errors across entire project
After the initial changes just to scummvm/gui for u32, this commit includes the whole project

- Widget creations now always have u32 descriptions, labels, or tooltips
- Message dialogs make use of default arguments instead of providing the same argument explicitly
- encode String::format properly before passing on as argument where necessary
- Modify hugo utils (yesNoBox and notify box) to use u32
- Also provide fake constructors for the above which redirect to the u32 constructor
- Convert all keymap descriptions to u32 across all engines
- showConfirmationDialog in mohawk now uses u32
- showScummVMDialog also uses u32
- Scumm engine has dialogs now which use u32
- General fixes and wrapping convertToU32String for setLabels and related functions
- Add a fake constructor to MesssageDialog which redirects to the u32 constructor
2020-08-30 14:43:41 +02:00
Donovan Watteau
3c3d35dafe AGOS: Fix compatibility with strict-alignment architectures
Make sure that alignTableMem() always aligns to an 8 byte boundary
on 64-bit architectures where this is the usual size of pointers.

Also make sure that loadTextIntoMem() always calls alignTableMem().

This has been tested on OpenBSD/loongson (a mips64el architecture which requires
strict alignment), with clang++ 8.0.1 and simon2-cd-fr.

Fixes bug #6220.
2020-08-01 14:16:40 +02:00
mataniko
581a6ec7d6 JANITORIAL: Rename kSupportsRTL to kSupportsReturnToLauncher 2020-05-12 10:36:38 +02:00
mataniko
06242a712b JANITORIAL: Rename EVENT_RTL
Now that ScummVM is adding RTL support, the EVENT_RTL should be disambigious that it is for returning to launcher
2020-05-12 10:36:38 +02:00