diff options
author | Travis Howell | 2007-02-12 00:14:14 +0000 |
---|---|---|
committer | Travis Howell | 2007-02-12 00:14:14 +0000 |
commit | d4a206ec126677a2665b1c12630af1895fc26848 (patch) | |
tree | f73beff081963108a3876a2592a8355e71c48152 /engines | |
parent | 3bc06610659079e9320e4a0835af103a2fab11a5 (diff) | |
download | scummvm-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.cpp | 24 | ||||
-rw-r--r-- | engines/agos/agosgame.cpp | 21 | ||||
-rw-r--r-- | engines/agos/res.cpp | 8 | ||||
-rw-r--r-- | engines/agos/subroutine.cpp | 2 |
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 |