1440 Commits

Author SHA1 Message Date
Eugene Sandulenko
30e4c84ce7
AGI: Fix memory management with _propData. CID 1446667 2022-11-20 19:07:28 +01:00
Cameron Cawley
2c306f7624 AGI: Move the engine options into the MetaEngine subclass 2022-11-16 23:58:54 +01:00
athrxx
744b55b42c AGI: make use of new gui options handling for render modes 2022-11-07 00:27:34 +02:00
Ray
fde0ea0b1a AGI: Fixed game Titles to match box art title 2022-11-06 20:52:04 +02:00
Le Philousophe
3abe41aa1b AGI: Fix strncpy usage 2022-11-06 17:27:21 +01:00
Hubert Maier
d7d969d251
AGI: Correct spelling mistake
lightening -> lightning
2022-10-27 15:56:06 +02:00
Le Philousophe
a91558aefd AGI: Don't use unsafe sprintf and vsprintf 2022-10-23 22:46:19 +02:00
Le Philousophe
c89f760066 AGI: Don't use unsafe strcat and strcpy 2022-10-23 22:46:19 +02:00
Daniel Abramowitz
f47977db1d AGI: Format Logs
Use the text's stringPrintf function to format the log messages.
2022-10-17 07:26:46 +03:00
Daniel Abramowitz
65aba03517 AGI: Write log() Function to File
Now the log() function writes to a file, as
the AGI engine did.

It appears that ScummVM doesn't have any "append" functionality.
As a result, I made this implementation create a new file each time
a message is logged. Note that the file is only created if the
log() function is called. The file name includes the game name
and the current time, ensuring that logs won't be overwritten.

The format is: agi.<gameid>.<currentime>.log and will be logged to
the working directory.

Last week I first implemented the log() function. In that commit
I just had it log to the console. In this commit we start
writing to a file.
2022-10-16 21:52:21 +02:00
Daniel Abramowitz
a03b25a61a AGI: Initial Implemention of AGI's log() Function
This log() function was previously unimplemented in ScummVM. Its
purpose is to write log messages and some metadata about the game state
to a file.

This functionality does not affect game play. Presumably Sierra used
this to beta test their games. They would log the words that their
testers used but the game did not understand. The testers would
then submit the log file back to Sierra. Sierra would add the missing
words or descriptions to their games before release.

This is the first diff of a couple which will incrementally add this
functionality. In this diff, we just collect the information we need to
generate a log message close to what AGI actually did.

There are two notable differences which will be fixed in future diffs:
(See the comments in the code for more details.)
1. No message formatting.
2. We log to the console only.

For context, I'm currently writing an AGI game and would like to
collect this output from my friends and family, which is why I'm
implementing this functionality today.
2022-10-10 08:22:16 +03:00
DL
ef332f38c1 AGI: French translation support 2022-09-19 00:46:07 +02:00
DL
c9ef71a528 AGI: limit input to <= 0xFF in RU_RUS & HE_ISR translations
Prevents right-click and mouse scroll wheel from adding unwanted keypresses to the player input line when language is HE_ISR or RU_RUS.
2022-09-19 00:46:07 +02:00
Donovan Watteau
27f9a460b5 JANITORIAL: Fix "the the" and similar typos 2022-07-29 19:36:40 +03:00
Cameron Cawley
f3b094e53f ENGINES: Change the MetaEngineDetection interface to match MetaEngine 2022-07-23 23:31:58 +02:00
D G Turner
d3cfd7eef3 AGI: Remove Extra Backslash From French UI Case
This was causing a GCC compiler warning regarding the unhandled
escape case of \040 i.e. ASCII space in octal.
2022-06-07 22:12:54 +01:00
DL
84f3b1df18 AGI: Add French UI case 2022-06-06 18:39:55 +02:00
Filippos Karapetis
9dd5469873 AGI: Add files missing from commit 3be24c759b504ad026073c0106e9b337ebad821f 2022-05-28 17:34:40 +03:00
Filippos Karapetis
3be24c759b AGI: Group preAGI games into a separate folder 2022-05-28 16:47:47 +03:00
Filippos Karapetis
622614eb20 AGI: Fix the Amiga Winnie the Pooh file structure and detection
The Amiga version of Winnie has files in subdirectories. The engine has
been adapted to respect the directory structure of this version
2022-05-28 15:30:45 +03:00
Athanasios Antoniou
5684a31703
AGI: Fix detection for Mickey's Space Adventure
This should address the remaining issues with ticket https://bugs.scummvm.org/ticket/13155
2022-05-28 00:50:49 +03:00
Torbjörn Andersson
e06f3c9a5a GUI: Allow game option checkboxes to be disabled
Depending on other game option checkboxes. This is used to
enable/disable the semi-smooth scrolling checkboxes for FM Towns Loom,
since it's only used when smooth scrolling is enabled.
2022-04-21 11:07:17 +02:00
Zvika Haramaty
e79f0a5c81 AGI: *.wag fallback - use description and version only if not empty strings 2022-04-17 14:22:12 +03:00
Zvika Haramaty
2a00a342bb AGI: set gameid according to *.wag file only if it's a known value 2022-04-17 14:13:52 +03:00
Zvika Haramaty
15dfca15ba AGI: fixed typo in fallbackWarning 2022-04-17 13:56:29 +03:00
eientei
957c7ecb5a AGI: Add more information to detection for Black Cauldron 2.10 3.5" 2022-04-15 12:25:08 +03:00
D G Turner
41eb2d4a87 AGI: Add Detection for "Good Man" Demo v4.0
This fanmade game is referenced in bug #13337.
2022-03-26 13:08:08 +00:00
D G Turner
a9e639486d AGI: Add Detection for "Tex McPhilip 3 - A Destiny of Sin (v1.02)"
This fanmade game was completed and is referenced in bug #13336.
2022-03-26 12:21:30 +00:00
trembyle
74fc28fdc0 AGI: Add detection for later KQ4 IIgs version 2022-01-29 11:54:45 -05:00
trembyle
23348808e0 AGI: Add support for Mac Manhunter games
Macintosh versions of GR and MH1-2 use the same combined directory
filename convention as DOS, Atari ST and Apple IIgs (but not Amiga or
CoCo3). However, the filename convention for volumes uses the common
AGI v2 format, without a game id prefix.

Example:
DOS: GRDIR, GRVOL.x
Mac: GRDIR, VOL.x

To account for this, we'll use the following:
1. Rather than take the directory filename prefix from volume files,
   we now get this from the directory files themselves (which makes
   more sense anyway).
2. Later, when loading individual volumes, check for Mac platform and
   exclude the prefix from the path.

This improves the previous single game check for Mac Gold Rush, which
formed directory and volume paths for that game only. This check is
now obsolete and has been removed. The detection flag that was used to
invoke the workaround has also been removed.
2022-01-16 23:48:13 +02:00
trembyle
3c93b25b1c AGI: Add detection for Mac Manhunters
Add both Manhunters to detection tables. They don't start yet (because
the AGI V3 games store their directory files differently). I'll attempt
to fix this by adapting the method used for Mac Gold Rush.

Also add a new PC version of MH2 in order to resolve an md5 conflict
with the Mac version.
2022-01-05 16:00:51 -05:00
trembyle
31c8446caf AGI: Clean up fanmade detection entries
* Remove redundant language text
* Fix entries with duplicate md5 hashes
* UTF-8 titles since they're now supported
* Correct titles to match game & AGI Wiki
* New CoCo 3 ports of fanmade titles
* Fix alphabetical sorting

Gourd of the Beans is now listed as a Windows game. This was
released in 2015 and was always distributed with a modern interpreter,
specifically NAGI. It was never meant to be played in MS-DOS.
2022-01-03 20:38:01 -05:00
trembyle
c81605dfa9 AGI: Fix build errors 2022-01-03 19:25:02 -05:00
trembyle
bde069fb62 AGI: New detection for Tandy Color Computer ports
Adds detection for CoCo 1/2 early / pre-AGI games. CoCo 1 and 2 were
not generally forward compatible with CoCo 3, which was officially
supported by Sierra for KQ3 and LSL1 only.

These games either won't start or crash on the title screen, so I've
flagged them as unsupported for now.

Also adds some additional fanmade CoCo 3 ports. I'm in contact with
the porter and may be updating and further cleaning up these entries
as I learn more.
2022-01-03 18:54:05 -05:00
trembyle
17d8cab6bf AGI: Add detection for additional PC booters
Alternate version of Troll's Tale works without issue.

PCjr, Tandy 1000, and IBM PC booters for KQ1-2 do not work because
the earliest AGI versions are not yet supported.

Later MS-DOS releases of Troll's Tale also do not work yet.
2022-01-03 18:06:19 -05:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh
f1f4657b10 AGI: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
Alexandre Detiste
6044504762 JANITORIAL: typos
some in the variable names, some in the comments;
no change for the strings that interract with original games assets
2021-10-31 20:46:31 +01:00
Orgad Shaneh
fe104cc337 ENGINES: Use MetaEngine consistently for getting autosave slot
The autosave refactoring that was done in
7adad5aaf5831dc5adcee140f38aacc4a5db2518 used g_engine for identifying the
autosave slot. This worked for in-game save/load, but doesn't fit when
called from the launcher.

Fix by passing MetaEngine to SaveStateDescriptor ctor and using it for this
query.

Amends 7adad5aaf5831dc5adcee140f38aacc4a5db2518.
2021-10-24 16:46:06 +02:00
Thunderforge
35c3668275 COMMON: Fixing misspellings "occured" -> "occurred"
Fixing this misspelled word across multiple parts of the codebase.
2021-09-25 21:36:42 +03:00
Eugene Sandulenko
89f92a007a
AGI: Improved detection for preagi titles.
Filenames "title" and "title.pic" are too generic, so second
file was added for each entry
2021-08-28 00:27:52 +02:00
Orgad Shaneh
7adad5aaf5 ENGINES: Streamline auto-save write/delete protection
Some engines call setAutosave and some don't. isAutosave is used to
determine if a saved game is an autosave, but in fact, on most cases it
just falls back to comparing the name to "Autosave".

This is wrong for several reasons:
* Older versions of ScummVM used Autosave 0.
* The name "Autosave" is translated, so if you change the language, it
  won't be detected.

Instead of relying on the name, use the well-known getAutosaveSlot() from
Engine/MetaEngine.

Fixes #12735.
2021-08-23 13:34:35 +02:00
Eugene Sandulenko
11558b92aa
AGI: Fix pattern plotting. Bugreport #11923 2021-08-18 00:46:49 +02:00
Eugene Sandulenko
070a9a53b1
AGI: Remove stray debug output 2021-08-17 19:29:17 +02:00
Eugene Sandulenko
bf1b6a35aa
AGI: Do not use Hercules font for Cyrillic titles. Addresses bug #12745 2021-08-17 19:29:17 +02:00
Max Horn
2f1f8f502e DEVTOOLS: move credits from devtools/credits.pl to engines
This employs a "lazy" approach: the "format" for the credits stays
exactly as it was, i.e., perl code. Of course one may want to change
this to another format (e.g. YAML, JSON, XML; or also shell script or
AWK, like `configure.engine` uses). But I deliberately kept it simple,
to get a minimal change that is easy to verify. Any further changes to
e.g. the format can be layered atop this.
2021-08-05 00:01:46 +02:00
Eugene Sandulenko
8614bbea6d
AGI: Added detection for KQ1 Russian 2021-08-04 12:31:44 +02:00
Eugene Sandulenko
8a2284ebc7
AGI: Added user input conversion for Russian titles 2021-07-31 15:00:27 +02:00
Eugene Sandulenko
6404ff39d6
AGI: Fix Russian input in Russian localizations 2021-07-31 15:00:27 +02:00
D G Turner
e34a0a1878 AGI: Further Fix for SQ0 and SQX Fangame Detection Entries
These worked, but caused the entries in the launcher to be named wrongly
so have switched to using GAME_FO macro to set the GF_FANMADE feature
flag without other flags causing side effects for the launcher entry
naming.
2021-07-17 12:53:06 +01:00