1118 Commits

Author SHA1 Message Date
Torbjörn Andersson
66400e7422 SAGA: Fix potential crash when talking to Sist (bug #10365)
When Rif puts on the rat disguise, he is swapped out for a
different actor. When he takes off the disguise, after reaching
Sist's office, the old actor is swapped back in again.

At that point, original Rif's actor will have a _lastZone pointer
which not only is for the wrong room, it was deleted when Rif in
disguise left the room.

To fix this, we also swap the actors's _lastZone pointers.
2019-02-03 23:33:59 +02:00
Paul Gilbert
11e33ba3fc JANITORIAL: Removing trailing spaces after int casts 2018-08-17 20:30:20 -07:00
Adrian Frühwirth
a4ab2d8cfe SAGA: Deduplicate kScriptTimeTicksPerSecond constant 2018-08-03 14:58:09 +02:00
David Fioramonti
8405c5d5f0 SAGA: Don't show pause message in saved thumbnail
Fixes Trac#10008. Previously, the game would show
a paused game message in the thumbnail when the
game was saved using the gmm.
2018-06-03 19:36:58 +01:00
Bastien Bouclet
8fb149e3c7 ENGINES: Change MetaEngine::findGame to return a plain game descriptor 2018-05-10 09:04:23 +02:00
Adrian Frühwirth
f58731cfae SAGA: Enforce code formatting guidelines 2018-05-07 20:06:31 +02:00
Adrian Frühwirth
0cbea68e76 SAGA: Fix whitespace 2018-05-07 20:06:30 +02:00
Adrian Frühwirth
019eca0ae8 SAGA: Use CLIP in IsoMap::adjustScroll() 2018-05-07 19:54:45 +02:00
Bastien Bouclet
e866543c82 SAGA: Remove useless AD includes 2018-05-01 12:48:05 +02:00
Adrian Frühwirth
9bee9e1ba6 JANITORIAL: Fix whitespace 2018-04-19 12:08:31 +02:00
Adrian Frühwirth
00e59a3122 ALL: Load savegame thumbnail only when necessary
This commit introduces the following changes:

1. Graphics::loadThumbnail()

   Now returns a boolean and takes a new argument skipThumbnail which
   defaults to false. In case of true, loadThumbnail() reads past the
   thumbnail data in the input stream instead of actually loading the
   thumbnail. This simplifies savegame handling where, up until now,
   many engines always read the whole savegame metadata (including
   the thumbnail) and then threw away the thumbnail when not needed
   (which is in almost all cases, the most common exception being
   MetaEngine::querySaveMetaInfos() which is responsible for loading
   savegame metadata for displaying it in the GUI launcher.

2. readSavegameHeader()

   Engines which already implement such a method (name varies) now take
   a new argument skipThumbnail (default: true) which is passed
   through to loadThumbnail(). This means that the default case for
   readSavegameHeader() is now _not_ loading the thumbnail from a
   savegame and just reading past it. In those cases, e.g.
   querySaveMetaInfos(), where we actually are interested in loading
   the thumbnail readSavegameHeader() needs to explicitely be called
   with skipThumbnail == false.

   Engines whose readSavegameHeader() (name varies) already takes an
   argument loadThumbnail have been adapted to have a similar
   prototype and semantics.
   I.e. readSaveHeader(in, loadThumbnail, header) now is
   readSaveHeader(in, header, skipThumbnail).

3. Error handling

   Engines which previously did not check the return value of
   readSavegameHeader() (name varies) now do so ensuring that possibly
   broken savegames (be it a broken thumbnail or something else) don't
   make it into the GUI launcher list in the first place.
2018-04-07 09:26:20 +02:00
Matan Bareket
2a417fd3d2 SAGA: Added detection entries for IHNM Hungarian fan translation - Bug #7886 2017-12-26 20:31:14 +01:00
Colin Snover
51329c0dc6 ALL: Fix misuse of comma operator 2017-11-10 09:57:03 -06:00
D G Turner
d59690424c SAGA: Replace Remaining French Accented Characters with Escape Codes. 2017-10-28 11:28:42 +01:00
D G Turner
0416249765 SAGA: Add Define for French Language for clarity. 2017-10-28 11:24:58 +01:00
D G Turner
913aae6155 SAGA: Correct Tenses in French Fan Translation of ITE.
These changes were suggested by bgK.
2017-10-27 10:51:47 +01:00
D G Turner
d50c13a7c7 SAGA: Add Code to Support French Fan Translation.
This code was supplied by Darknior (hugues.fabien@gmail.com).
2017-10-26 18:16:11 +01: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
Filippos Karapetis
1fd3d105d3 SAGA: Fix bug #10009, when loading games
Abort any scene entry protagonist animations and auto-cue speeches when
loading saved games, as the protagonist can get stuck in scene entry
animations
2017-08-21 22:31:33 +03:00
Filippos Karapetis
98da344a67 SAGA: Remove obsolete disabled code 2017-08-21 22:31:33 +03:00
Filippos Karapetis
d139d65c80 SAGA: Fix the conversation panel background color in IHNM 2017-08-20 18:02:37 +03:00
Filippos Karapetis
ca8785fdbf SAGA: Filter scene verbs on objects properly for IHNM. Fixes bug #9712
The original check was incorrectly disabled for IHNM in commit
ab6fb8e9c3. The check has been enabled again, with an added condition
for actors that can be used, like the jukebox in Gorrister's
2017-08-20 17:10:33 +03:00
Filippos Karapetis
06f934dc9f SAGA: Remove obsolete hack for the compact disk in Ellen's chapter
This has been added in commit 5624ba23d0 and is no longer needed.
The gem is shown correctly over the compact disk in that scene,
and the behavior is the same as the original
2017-08-20 17:10:32 +03:00
Eugene Sandulenko
c2e633d349 SAGA: Add missing break statement and add fall through comment 2017-08-11 21:25:36 +02:00
Alexander Tkachev
b665fc933d ALL: Make simpleSaveNames() a MetaEngineFeature
Added it into hasFeature() of all engines which returned `true` in
simpleSaveNames() before.

As mentioned in #788, SCI is not always using simple names, so it
doesn't have such feature now.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
ab1d160ec8 ALL: Add MetaEngine::simpleSaveNames()
Engines with "simple" savenames would support "Run in background" in
save/load dialog and gradual save slots unlocking. Other engines
save/load feature would be locked until save sync is over.
2016-08-24 16:07:55 +06:00
Eugene Sandulenko
29154f1f20 SAGA: FUrther fix to potential buffer overflow 2016-06-07 22:23:23 +02:00
Eugene Sandulenko
459be5e7b2 SAGA: Fix potential buffer overrun 2016-05-31 17:12:18 +02:00
Eugene Sandulenko
678c5eadfa SAGA: Safer string manipulation 2016-05-31 17:12:18 +02:00
Filippos Karapetis
ba930cf65e SAGA: Remove curly brackets from some 1-line if statements 2016-05-22 16:28:41 +03:00
Eugene Sandulenko
33abb6118f ALL: Change main engine header guard defines to <directory>_<engine>_H
Recently we started to use this as new semantics, although in the past
we used simly <engine>_H. Now these guard defines are consistent with
rest of the files which are used in the engines.
2016-05-17 18:21:30 +02:00
Eugene Sandulenko
1d5a127011 SAGA: Add safeguard warning for text access. 2016-05-16 16:56:57 +02:00
Eugene Sandulenko
c341738ab8 SAGA: Fix potential buffer overrun.
If we have _statusTextInputPos as 256, we're doing incrementing to 257
and storing 0 there. This will lead to memory overwrite.
2016-05-16 16:56:57 +02:00
Eugene Sandulenko
0f6d2b86de SAGA: Initialization for IsoMap 2016-05-05 09:39:20 +02:00
Eugene Sandulenko
d576abb3a2 SAGA: Init puzzle properly 2016-05-05 09:26:08 +02:00
Eugene Sandulenko
9acf733d81 SAGA: Safer string copying 2016-05-05 09:23:09 +02:00
Ori Avtalion
3564032330 JANITORIAL: Reduce audio header dependencies 2016-04-14 16:10:21 +03:00
Eugene Sandulenko
674a208a7e SAGA: Move IHNM color fix game features to proper spot. 2016-03-28 15:47:56 +02:00
Eugene Sandulenko
960d14d79d SAGA: Explicitely mark versions which require color shifting in interface. Fixes bug #7092 2016-03-28 00:54:05 +02:00
Torbjörn Andersson
c5b8adb370 SAGA: Fix dialog text positions in non-English version (#7064)
This fix applies to drawPanelText(), where we used to hard-code
the text positions. Now we define the dimensions of the area where
the text is drawn (like we do for button texts) and calculate the
position based on the dimensions of the text string.

The drawPanelText() function is used for the Save, Quit, Protect
and Option dialogs, but for everything except the Option dialog it
already centered the text to the dialog. I decided to use this
centering mechanism for the title of the ITE Option dialog, even
though that changes the X coordinate by one pixel. Other than that,
it only affects the following texts:

ITE:  Show Dialog / Reading Speed, Music and Sound
IHNM: Reading Speed, Music, Sound, Voices

I have verified that this looks at least ok for the English and
German versions of ITE, and the English, German, French and
Spanish versions of IHNM, so I'm reasonably confident that this
change is ok.
2016-03-27 15:23:17 +02:00
Eugene Sandulenko
dec810647e SAGA: Added German fan-translated IHNM detection. Bug #7091 2016-03-27 12:33:47 +02:00
Torbjörn Andersson
0a5a722b02 SAGA: Fix interface colors in French and German versions of IHNM
The same fix that had already been applied to the Spanish version
also applies to the French and German versions. (Judging by the
detection entries, there aren't any alternative versions so the
ones I got from GOG should be representative.)

The palettes aren't quite identical to the Spanish one, but I
think the remaining difference is for the spiritual barometer, so
the special case for that remains Spanish-only.
2016-03-16 06:16:44 +01:00
Johannes Schickel
0b6befdcc5 ENGINES: Make variable names of AdvancedMetaEngine conform to our guidelines.
_singleid   -> _singleId
_gameids    -> _gameIds
_guioptions -> _guiOptions
2016-03-08 19:01:13 +01:00
Eugene Sandulenko
23d74fddb4 CONFIGURE: Introduced new engine dependency: highres
Some backends like GCW0 do no support graphics >320x240 due to
the hardware limitation (downscaling is possible but it will ruin
the pixel hunting which is often part of the gameplay).

Instead of manually updating the list of engines, we now introduce
a new dependency.

I marked all relevant engines, but some, like tinsel, require more
work with putting their relevant high-res games under USE_HIGHRES
define.
2016-03-05 14:25:56 +01:00
Johannes Schickel
ce8998760d SAGA: Let listSaves return list sorted on slot numbers. 2016-02-25 21:39:45 +01:00
Johannes Schickel
01020089da SAGA: Add comments about possibly race conditions to timer callbacks.
(cherry picked from commit 93f627441ac68e7a4c3e7f748a7b6f999bd9c96a)
2016-02-09 02:52:29 +01:00
Johannes Schickel
fee5944fe2 SAGA: Only request actual save slots in listSaves. 2016-01-26 16:35:30 +01:00
Eugene Sandulenko
ceee1713f5 SAGA: Add support for Russian fan-translation of IHNM
Released about 2 years ago and is translating the subtitles
in contrast to the version released on CD which has only
poorly done voice-overs.
2016-01-10 09:21:03 +01:00
Filippos Karapetis
5b7dc80a64 SAGA: Fix typo in commit 6a49654 2015-07-13 02:29:07 +03:00
Filippos Karapetis
6a49654d86 SAGA: Fall back to the default Adlib driver for non-DOS versions of ITE
Only the DOS version of ITE uses the Miles audio driver
2015-07-13 02:21:51 +03:00