diff options
author | Martin Kiewitz | 2016-02-13 00:10:43 +0100 |
---|---|---|
committer | Martin Kiewitz | 2016-02-13 00:10:43 +0100 |
commit | af9028355294ffe569e9100c2cac02eb843b1c11 (patch) | |
tree | f95f7aaeeca2d91794fa690b825bb6d01428f661 /engines/agi/appleIIgs_timedelay_overwrite.h | |
parent | b67cb25e22a0871ebc9135da847cd1bc5dd5a96d (diff) | |
download | scummvm-rg350-af9028355294ffe569e9100c2cac02eb843b1c11.tar.gz scummvm-rg350-af9028355294ffe569e9100c2cac02eb843b1c11.tar.bz2 scummvm-rg350-af9028355294ffe569e9100c2cac02eb843b1c11.zip |
AGI: Add time delay overwrite for AppleIIgs
Should somewhat fix bug #7026
Needs testing (although AGI games need to get tested for 1.8.0 anyway)
Diffstat (limited to 'engines/agi/appleIIgs_timedelay_overwrite.h')
-rw-r--r-- | engines/agi/appleIIgs_timedelay_overwrite.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/engines/agi/appleIIgs_timedelay_overwrite.h b/engines/agi/appleIIgs_timedelay_overwrite.h new file mode 100644 index 0000000000..204584157f --- /dev/null +++ b/engines/agi/appleIIgs_timedelay_overwrite.h @@ -0,0 +1,66 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef AGI_APPLEIIGS_DELAY_OVERWRITE_H +#define AGI_APPLEIIGS_DELAY_OVERWRITE_H + +namespace Agi { + +struct AgiAppleIIgsDelayOverwriteRoomEntry { + int16 fromRoom; + int16 toRoom; + int16 timeDelayOverwrite; // time delay here is like on PC, so 0 - unlimited, 1 - 20 cycles, 2 - 10 cycles +}; + +struct AgiAppleIIgsDelayOverwriteGameEntry { + uint32 gameId; + int16 defaultTimeDelayOverwrite; // time delay here is like on PC, so 0 - unlimited, 1 - 20 cycles, 2 - 10 cycles + const AgiAppleIIgsDelayOverwriteRoomEntry *roomTable; +}; + +static const AgiAppleIIgsDelayOverwriteRoomEntry appleIIgsDelayOverwriteMH1[] = { + { 153, 153, 2 }, // Intro w/ credits + { 104, 104, 2 }, // Intro cutscene + { 117, 117, 2 }, // Intro cutscene (ego waking up) + // Room 124+125 are MAD rooms, those seem to work at a proper speed + { -1, -1, -1 } +}; + +static const AgiAppleIIgsDelayOverwriteGameEntry appleIIgsDelayOverwriteGameTable[] = { + { GID_BC, 2, nullptr }, // NEEDS TESTING + { GID_GOLDRUSH, 2, nullptr }, // NEEDS TESTING + { GID_KQ1, 2, nullptr }, // NEEDS TESTING + // KQ2 seems to work fine at speed given by scripts (NEEDS FURTHER TESTING) + { GID_KQ3, 2, nullptr }, // NEEDS TESTING + { GID_KQ4, 2, nullptr }, // NEEDS TESTING + { GID_LSL1, 2, nullptr }, // Switch Larry 1 to 10 cycles per second (that's around PC Larry 1's "normal" speed + { GID_MH1, -1, appleIIgsDelayOverwriteMH1 }, // NEEDS TESTING + { GID_MIXEDUP, 2, nullptr }, // NEEDS TESTING + { GID_PQ1, 2, nullptr }, // NEEDS TESTING + { GID_SQ1, 2, nullptr }, // NEEDS TESTING + { GID_SQ2, 2, nullptr }, // NEEDS TESTING + { GID_AGIDEMO, -1, nullptr } +}; + +} // End of namespace Agi + +#endif /* AGI_APPLEIIGS_DELAY_OVERWRITE_H */ |