aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorTravis Howell2007-02-12 00:14:14 +0000
committerTravis Howell2007-02-12 00:14:14 +0000
commitd4a206ec126677a2665b1c12630af1895fc26848 (patch)
treef73beff081963108a3876a2592a8355e71c48152 /engines
parent3bc06610659079e9320e4a0835af103a2fab11a5 (diff)
downloadscummvm-rg350-d4a206ec126677a2665b1c12630af1895fc26848.tar.gz
scummvm-rg350-d4a206ec126677a2665b1c12630af1895fc26848.tar.bz2
scummvm-rg350-d4a206ec126677a2665b1c12630af1895fc26848.zip
Add basic support for AtariST demo of Elvira 1.
svn-id: r25501
Diffstat (limited to 'engines')
-rw-r--r--engines/agos/agos.cpp24
-rw-r--r--engines/agos/agosgame.cpp21
-rw-r--r--engines/agos/res.cpp8
-rw-r--r--engines/agos/subroutine.cpp2
4 files changed, 50 insertions, 5 deletions
diff --git a/engines/agos/agos.cpp b/engines/agos/agos.cpp
index eb5c15238f..fb5c268fa0 100644
--- a/engines/agos/agos.cpp
+++ b/engines/agos/agos.cpp
@@ -837,6 +837,26 @@ void AGOSEngine::pause() {
}
int AGOSEngine::go() {
+ if (getGameType() == GType_ELVIRA1 && getPlatform() == Common::kPlatformAtariST &&
+ (getFeatures() & GF_DEMO)) {
+ int i;
+
+ while(1) {
+ for (i = 1; i < 4; i++) {
+ setWindowImageEx(3, 9902 + i);
+ debug(0, "Displaying image %d", 9902 + i);
+ delay(1000);
+
+ }
+
+ for (i = 4; i < 16; i++) {
+ setWindowImageEx(4, 9902 + i);
+ debug(0, "Displaying image %d", 9902 + i);
+ delay(1000);
+ }
+ }
+ }
+
loadGamePcFile();
addTimeEvent(0, 1);
@@ -867,9 +887,11 @@ int AGOSEngine::go() {
_moviePlay->play();
}
- runSubroutine101();
+ //runSubroutine101();
permitInput();
+ setWindowImageEx(3, 911);
+
while (1) {
waitForInput();
handleVerbClicked(_verbHitArea);
diff --git a/engines/agos/agosgame.cpp b/engines/agos/agosgame.cpp
index 9db55855fa..ae40b370ef 100644
--- a/engines/agos/agosgame.cpp
+++ b/engines/agos/agosgame.cpp
@@ -40,6 +40,27 @@ static const AGOSGameDescription gameDescriptions[] = {
GF_OLD_BUNDLE | GF_CRUNCHED | GF_PLANAR | GF_DEMO
},
+ // Elvira 1 - English Atari ST Floppy Demo
+ {
+ {
+ "elvira1",
+ "Demo",
+
+ {
+ { "991.out", 0, "9238242d3274bb770cb4925d2b268f83", -1},
+ { "992.out", 0, "5526cd64e515f1c5f9ff8f2fb569c4eb", -1},
+ { "993.out", 0, "d41d8cd98f00b204e9800998ecf8427e", -1},
+ { NULL, 0, NULL, 0}
+ },
+ Common::EN_ANY,
+ Common::kPlatformAtariST
+ },
+
+ GType_ELVIRA1,
+ GID_ELVIRA1,
+ GF_OLD_BUNDLE | GF_PLANAR | GF_DEMO
+ },
+
// Elvira 1 - English Atari ST Floppy
{
{
diff --git a/engines/agos/res.cpp b/engines/agos/res.cpp
index 559407e98a..4b227b6100 100644
--- a/engines/agos/res.cpp
+++ b/engines/agos/res.cpp
@@ -680,9 +680,9 @@ void AGOSEngine::loadVGAVideoFile(uint id, uint type) {
if (getPlatform() == Common::kPlatformAcorn) {
sprintf(filename, "%.3d%d.DAT", id, type);
} else if (getPlatform() == Common::kPlatformAmiga || getPlatform() == Common::kPlatformAtariST) {
- if (getFeatures() & GF_TALKIE) {
- sprintf(filename, "%.3d%d.out", id, type);
- } else if (getGameType() == GType_ELVIRA1 && getFeatures() & GF_DEMO) {
+ //if (getFeatures() & GF_TALKIE) {
+ sprintf(filename, "%.2d%d.out", id, type);
+ /* } else if (getGameType() == GType_ELVIRA1 && getFeatures() & GF_DEMO) {
if (id == 20)
sprintf(filename, "D%d.out", type);
else if (id == 26)
@@ -699,7 +699,7 @@ void AGOSEngine::loadVGAVideoFile(uint id, uint type) {
sprintf(filename, "%.2d%d.pkd", id, type);
} else {
sprintf(filename, "%.3d%d.pkd", id, type);
- }
+ } */
} else {
if (getGameType() == GType_ELVIRA1 || getGameType() == GType_ELVIRA2 || getGameType() == GType_WW) {
sprintf(filename, "%.2d%d.VGA", id, type);
diff --git a/engines/agos/subroutine.cpp b/engines/agos/subroutine.cpp
index d3ecb3fa28..a9cd57a20a 100644
--- a/engines/agos/subroutine.cpp
+++ b/engines/agos/subroutine.cpp
@@ -483,6 +483,8 @@ Subroutine *AGOSEngine::createSubroutine(uint id) {
SubroutineLine *AGOSEngine::createSubroutineLine(Subroutine *sub, int where) {
SubroutineLine *sl, *cur_sl = NULL, *last_sl = NULL;
+ printf("sub->id %d\n", sub->id);
+
if (sub->id == 0)
sl = (SubroutineLine *)allocateTable(SUBROUTINE_LINE_BIG_SIZE);
else