aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/appleIIgs_timedelay_overwrite.h
diff options
context:
space:
mode:
authorMartin Kiewitz2016-02-13 00:10:43 +0100
committerMartin Kiewitz2016-02-13 00:10:43 +0100
commitaf9028355294ffe569e9100c2cac02eb843b1c11 (patch)
treef95f7aaeeca2d91794fa690b825bb6d01428f661 /engines/agi/appleIIgs_timedelay_overwrite.h
parentb67cb25e22a0871ebc9135da847cd1bc5dd5a96d (diff)
downloadscummvm-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.h66
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 */