Commit graph

303 commits

Author SHA1 Message Date
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
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
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
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
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
76cb0351e0 AGOS: Move common enum from agos.h to new header file 2020-10-03 14:56:36 +02:00
Paul Gilbert
644a71440b AGOS: Refactor to use Engine debugger 2020-02-16 13:07:19 +02:00
Bastien Bouclet
1624da8c99 AGOS: Add override keywords 2020-02-09 12:43:14 +01:00
Eugene Sandulenko
14d7e5ac4d AGOS: Added override keywords 2020-02-05 14:37:42 +01:00
Paul Gilbert
5b80320525 ENGINES: Adding override keyword to hasFeature methods 2020-02-04 20:04:11 -08:00
Torbjörn Andersson
b5b136b177 AGOS: Silence GCC memset() warnings
Recent GCC versions complain if you memset() a class or struct that
contain non-POD data types. Get around that by either initializing
the object when created, or by adding a reset() method.
2019-07-14 14:58:18 +03:00
Ori Avtalion
5e49800901 AGOS: Reduce audio header dependencies 2016-04-14 16:48:02 +03:00
D G Turner
b32ca0aaae AGOS: Add image dumping to file enable by debugflag.
This previously required a code change and recompile to enable.
It can now be enabled or disabled at runtime using the "image_dump"
debug flag.
2014-05-12 00:44:13 +01:00
D G Turner
3d3a791085 AGOS: Switch VGA script debug output to debug flag, rather than level 5.
This is now set by --debugflags=vga_script rather than -d 5, though
it will still require a debug level greater than 0.
2014-05-11 15:26:58 +01:00
D G Turner
41da9a2df7 AGOS: Change "script" debugflag to "subroutine" as more accurate.
This flag is used to enable dumping of subroutine scripts at start.
2014-05-11 13:28:33 +01:00
D G Turner
55d8a46177 AGOS: Switch script debugging to debug flag, rather than level 4.
This is now set by --debugflags=script rather than -d 4, though
it will still require a debug level greater than 0.
2014-05-11 13:17:16 +01:00
D G Turner
0c9390fb27 AGOS: Remove leftover unused _debugMode variable. 2014-05-11 13:15:53 +01:00
D G Turner
be68682946 AGOS: Switch VGA opcode debugging to debug flag, rather than level 3.
This is now set by --debugflags=vga_opcode rather than -d 3, though it
will still require a debug level greater than 0.
2014-05-11 12:46:55 +01:00
D G Turner
6856b09d5a AGOS: Switch opcode debugging to a debug flag, rather than level 2 hack.
This is now set by --debugflags=opcode rather than -d 2, though it will
still require a debug level greater than 0.
2014-05-11 12:27:38 +01:00
Torbjörn Andersson
d980584cc5 Merge pull request #441 from eriktorbjorn/feeble-loyalty
Possible fix for bug #6525, AGOS: FF - Loyalty Rating never changes in 4 CD version
2014-03-04 07:08:59 +01:00
Kirben
83b32010b3 AGOS: Add initial support for mouse wheel. 2014-03-02 22:19:32 +11:00
Torbjörn Andersson
b5259a65d8 AGOS: Modify setLoyaltyRating() on Kirben's suggestion 2014-03-01 09:48:22 +01:00
Torbjörn Andersson
f8c3dcd8b8 AGOS: Add setLoyaltyRating() function 2014-02-27 07:31:17 +01:00
Torbjörn Andersson
93e7e72285 AGOS: Add missing loyalty rating to Feeble Files 4CD version
This attempts to restore the missing loyalty rating setting to the
4CD version of The Feeble Files. So far only for the English
version, since that's all I have, but it would not surprised me if
the other versions are similar.
2014-02-26 22:45:09 +01:00
Johannes Schickel
c4fc0cee96 AGOS: Make GPL headers consistent in themselves. 2014-02-18 02:39:32 +01:00
Johannes Schickel
1cee8439e7 AGOS: Get rid of ArchiveMan in favor of global SearchMan.
This in fact slightly changes the priority order of added archives. Formerly,
all archives in SearchMan were preferred to the customly added ones in
ArchiveMan. All standard paths (i.e. path and extrapath) will be still be
searched before the custom ones (which are all priority 0 right now) but system
specific paths will be searched after (due to their priority being -1). Since
system specific paths shouldn't contain any game data files this should
hopefully be harmless.

This wasn't tested for games with CAB archives.
2014-01-22 00:30:28 +01:00
Johannes Schickel
e560dca6b1 AGOS: Slightly clean up ArchiveMan code.
This removes the (always true) _fallBack flag which determined whether
SearchMan should be searched.
2014-01-22 00:14:26 +01:00
Willem Jan Palenstijn
f0c2fa9d65 AGOS: Use Common::String for savegame filenames 2013-08-23 19:09:36 +02:00
Travis Howell
586d9bf32f AGOS: Add comment about the limitations of quick loading/saving games in the AGOS game engine. 2012-04-15 19:24:57 +10:00
Johannes Schickel
827cdbd22e AGOS: Make ArchiveMan a proper sub-type of SearchSet.
Now all of the Archive API is implemented to avoid possibly inconsistent
behavior when an ArchiveMan object is accessed via a class type higher in the
class hierachy.
2012-01-27 20:35:34 +01:00
Johannes Schickel
a231f9d5dd AGOS: Rename ArchiveMan's open to createReadStreamForMember to match our Archive API. 2012-01-27 20:30:02 +01:00
Johannes Schickel
a7cc5bd301 AGOS: Properly overwrite hasFile from SearchSet in ArchiveMan.
Formerly the hasFile method was non-const, thus did not overwrite the virtual
hasFile method of SearchSet. Since all accesses to this function have been
done through a ArchiveMan typed variable, the missing overwrite should not
have caused any trouble.

It looks like this was forgotten in a6ec4f70da.
2012-01-27 20:10:31 +01:00
D G Turner
783e3fea62 AGOS: Fix engine crash when playing Feeble Files from cabinet datafiles.
Playing with cabinet datafiles, this failed to find the "Charisma.smk"
file in the cabinets when in the Recreation (TV) room on Cygnus Alpha
and this caused an engine abort after the GUI dialog warning of the
"missing" video file. This was due to animation.cpp code using
Common::file::exists() instead of going via the ArchiveMan.

However,a hasFile() method implementation was also required to implement
fallback to decompressed (movie) files if the file requested is not in
the cabinet or the cabinet has been externally decompressed to files.

Thanks to fuzzie for the hasFile() patch.

Also, removed noisy warning which this correction triggers repeatedly in
installshield_cab.cpp hasFile(). This looks like leftover from
debugging, so not critical.
2011-11-13 23:44:38 +00:00
Travis Howell
f20b8ecaa1 AGOS: Fix dumping all images option. 2011-10-07 00:04:08 +11:00
Travis Howell
5346ac18b7 AGOS: Integrate InstallShield support. 2011-08-27 11:00:24 -04:00
Johannes Schickel
5a1f75eae3 AGOS: Slight cleanup.
Now AgosEngine::_language is of type Common::Language instead of uint16. It is
currently only used with values of that enumeration, thus it should be safe to
use that type for it too.
2011-08-20 19:30:18 +02:00
Ori Avtalion
c3cfdd36a5 AGOS: Fix struct/class mismatch 2011-08-09 00:52:33 +03:00
Eugene Sandulenko
6e795a89b0 AGOS: Reduced header dependency 2011-08-06 11:28:40 +01:00
Max Horn
183e018c19 AGOS: cleanup 2011-05-17 15:36:25 +02:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Ori Avtalion
9414d7a6e2 JANITORIAL: Reduce header dependencies in shared code
Some backends may break as I only compiled SDL
2011-04-28 15:08:58 +03:00
Max Horn
73f04118f3 COMMON: Rename Error to ErrorCode, introduce new Error class 2011-04-18 18:22:02 +02:00
Max Horn
2e095e25f2 ALL: centre -> center 2011-04-14 14:34:28 +02:00
Max Horn
e70fd59b35 ENGINES: Further simplify pseudo MidiDrivers; fix some regressions
The regression affected AGOS and maybe some others; specifically,
the real MidiDriver would have been deleted twice -- I previously
missed that the Engine instances takes care of freeing the real
MidiDriver, not the MidiPlayer wrapping it.

This commit should clarify the ownership of the real MidiDriver for
most pseudo MidiDrivers.
2011-03-23 16:49:41 +01:00
Ori Avtalion
ee3e08bbc2 AGOS: Avoid hiding overloaded virtual methods 2011-02-27 21:25:05 +02:00
Johannes Schickel
2b62f6bec3 AGOS: Adapt to setPalette RGBA->RGB change.
I only (minimally) tested this change with Simon 1 + 2 DOS CD.
2011-02-15 23:22:30 +01:00
Max Horn
ee7056542c AGOS: Reduce header interdependencies
svn-id: r55843
2011-02-09 00:13:42 +00:00
Max Horn
ee4770ffb6 ENGINES: Change 'colour' to 'color'
Only changed this in engines where 'color' was/is already used
almost exclusively

svn-id: r54288
2010-11-17 12:22:08 +00:00