diff options
author | Willem Jan Palenstijn | 2013-04-18 23:35:23 +0200 |
---|---|---|
committer | Willem Jan Palenstijn | 2013-05-08 20:40:58 +0200 |
commit | 9c2341678ef4984bf92b3878295250faf980b066 (patch) | |
tree | 2fb4805e05e16b9924e80c9947e6bad723b28c4b /engines/kyra/kyra_v1.h | |
parent | 8172d679df5148a4a32f46074b20cb6caf91844f (diff) | |
parent | a5f4ff36ffc386d48f2da49387a9655ce9295a4d (diff) | |
download | scummvm-rg350-9c2341678ef4984bf92b3878295250faf980b066.tar.gz scummvm-rg350-9c2341678ef4984bf92b3878295250faf980b066.tar.bz2 scummvm-rg350-9c2341678ef4984bf92b3878295250faf980b066.zip |
Merge branch 'master'
Diffstat (limited to 'engines/kyra/kyra_v1.h')
-rw-r--r-- | engines/kyra/kyra_v1.h | 68 |
1 files changed, 42 insertions, 26 deletions
diff --git a/engines/kyra/kyra_v1.h b/engines/kyra/kyra_v1.h index 584176e08c..0033969047 100644 --- a/engines/kyra/kyra_v1.h +++ b/engines/kyra/kyra_v1.h @@ -28,8 +28,9 @@ #include "common/array.h" #include "common/error.h" #include "common/events.h" -#include "common/random.h" #include "common/hashmap.h" +#include "common/random.h" +#include "common/rendermode.h" #include "audio/mixer.h" @@ -52,14 +53,16 @@ class KyraMetaEngine; * * Status of this engine: * - * The KYRA engine supports all three Kyrandia games by Westwood. It also supports Westwood's - * Lands of Lore. There are various platform ports of the different games, almost all of them are - * fully supported. Only the Macintosh port of Kyrandia 1 makes a difference here, which lacks - * support for sound effects and music. + * The KYRA engine supports all three Kyrandia games by Westwood. It also + * supports Westwood's Lands of Lore. There are various platform ports of + * the different games, almost all of them are fully supported. Only the + * Macintosh port of Kyrandia 1 makes a difference here, which lacks support + * for sound effects and music. * - * The different translations of the games are mostly supported, since every translation - * requires some work for kyra.dat for example, it is almost impossible to support translations, - * without owning them. There a currently a few reported unsupported translations: + * The different translations of the games are mostly supported, since every + * translation requires some work for kyra.dat for example, it is almost + * impossible to support translations, without owning them. There a currently + * a few reported unsupported translations: * * - Official translations * None known. @@ -69,24 +72,30 @@ class KyraMetaEngine; * Kyrandia 1 Korean (feature request #1758252 "KYRA1: Add support for Korean/DOS version") * Kyrandia 2 Polish (feature request #2146192 "KYRA2: Add support for Polish floppy version") * - Fan translations: - * Kyrandia 1 Russian (no feature request) - * Kyrandia 2 Russian (no feature request) * Kyrandia 3 Russian (feature request #2812792 "Kyrandia3 Russian") * - * The engine is maintained by _athrxx. + * The primary maintainer for the engine is LordHoto, although some parts are + * maintained by _athrxx. If you have questions about parts of the code, the + * following rough description might help in determining who you should ask: + * _athrxx is the maintainer for the Lands of Lore subengine, he also + * maintains most of the FM-TOWNS and PC98 specific code (especially the sound + * code, also some ingame code) and the Kyrandia 2 sequence player code. + * LordHoto is responsible for the rest of the codebase, he also worked on the + * graphics output for 16 color PC98 games. * - * Other people who worked on this engine include cyx, who initially started to work on Kyrandia 1 - * support, vinterstum, who did various things for Kyrandia 1 and started to work on the Kyrandia 2 - * sequence player code and also on the TIM script code, and eriktorbjorn, who helped out naming - * our AdLib player code and also contributed a work around for a music bug in the "Pool of Sorrow" - * scene of Kyrandia 1, which is also present in the original. LordHoto worked on Kyrandia 1 to 3 - * support and graphics output for 16 color PC98 games and was a maintainer of the Kyrandia part. - * All mentioned developers are not actively working on KYRA anymore. + * Other people who worked on this engine include cyx, who initially started + * to work on Kyrandia 1 support. Vinterstum, who did various things for + * Kyrandia 1 and started to work on the Kyrandia 2 sequence player code and + * also on the TIM script code. Eriktorbjorn, who helped out naming our AdLib + * player code and also contributed a work around for a music bug in the + * "Pool of Sorrow" scene of Kyrandia 1, which is also present in the original. + * He also contributed the VQA player for Kyrandia 3. * - * The engine is mostly finished code wise. A possible remaining task is proper refactoring, - * which might help in reducing binary size and along with it runtime memory use, but of course - * might lead to regressions (since the current code makes no problems on our low end ports, it - * is pretty minor priority though, since the benefit would be mostly nicer code). The biggest + * The engine is mostly finished code wise. A possible remaining task is + * proper refactoring, which might help in reducing binary size and along with + * it runtime memory use, but of course might lead to regressions (since the + * current code makes no problems on our low end ports, it is pretty minor + * priority though, since the benefit would be mostly nicer code). The biggest * task left is the kyra.dat handling. * * Games using this engine: @@ -110,7 +119,7 @@ struct GameFlags { bool useAltShapeHeader : 1; // alternative shape header (uses 2 bytes more, those are unused though) bool isTalkie : 1; bool isOldFloppy : 1; - bool useHiResOverlay : 1; + bool useHiRes : 1; bool use16ColorMode : 1; bool useDigSound : 1; bool useInstallerPackage : 1; @@ -126,7 +135,9 @@ enum { GI_KYRA1 = 0, GI_KYRA2 = 1, GI_KYRA3 = 2, - GI_LOL = 4 + GI_LOL = 4, + GI_EOB1 = 5, + GI_EOB2 = 6 }; struct AudioDataStruct { @@ -174,7 +185,10 @@ class KyraEngine_v1 : public Engine { friend class Debugger; friend class ::KyraMetaEngine; friend class GUI; +friend class GUI_v1; +friend class GUI_EoB; friend class SoundMidiPC; // For _eventMan +friend class TransferPartyWiz; // For save state API public: KyraEngine_v1(OSystem *system, const GameFlags &flags); virtual ~KyraEngine_v1(); @@ -197,7 +211,7 @@ public: // input void setMousePos(int x, int y); - Common::Point getMousePos() const; + Common::Point getMousePos(); // config specific bool speechEnabled(); @@ -293,6 +307,8 @@ protected: bool _configSounds; uint8 _configVoice; + Common::RenderMode _configRenderMode; + // game speed virtual bool skipFlag() const; virtual void resetSkipFlag(bool removeEvent = true); @@ -413,7 +429,7 @@ protected: Common::Error saveGameState(int slot, const Common::String &desc) { return saveGameStateIntern(slot, desc.c_str(), 0); } virtual Common::Error saveGameStateIntern(int slot, const char *saveName, const Graphics::Surface *thumbnail) = 0; - Common::SeekableReadStream *openSaveForReading(const char *filename, SaveHeader &header); + Common::SeekableReadStream *openSaveForReading(const char *filename, SaveHeader &header, bool checkID = true); Common::WriteStream *openSaveForWriting(const char *filename, const char *saveName, const Graphics::Surface *thumbnail) const; // TODO: Consider moving this to Screen |