Add basic support for AtariST demo of Elvira 1.

svn-id: r25501
This commit is contained in:
Travis Howell 2007-02-12 00:14:14 +00:00
parent 3bc0661065
commit d4a206ec12
4 changed files with 50 additions and 5 deletions

View File

@ -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);

View File

@ -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
{
{

View File

@ -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);

View File

@ -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