aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/agos/agos.h1
-rw-r--r--engines/agos/detection_tables.h74
-rw-r--r--engines/agos/script_e1.cpp4
-rw-r--r--engines/agos/script_e2.cpp13
-rw-r--r--engines/agos/script_ww.cpp2
5 files changed, 70 insertions, 24 deletions
diff --git a/engines/agos/agos.h b/engines/agos/agos.h
index 32c399ff8e..5d4a300285 100644
--- a/engines/agos/agos.h
+++ b/engines/agos/agos.h
@@ -1313,6 +1313,7 @@ public:
void oe2_moveDirn();
void oe2_doClass();
void oe2_pObj();
+ void oe2_loadGame();
void oe2_drawItem();
void oe2_doTable();
void oe2_pauseGame();
diff --git a/engines/agos/detection_tables.h b/engines/agos/detection_tables.h
index 9008445485..379b666939 100644
--- a/engines/agos/detection_tables.h
+++ b/engines/agos/detection_tables.h
@@ -56,7 +56,6 @@ static const AGOSGameDescription gameDescriptions[] = {
{
{ "gameamiga", GAME_BASEFILE, "7bdaff4a118d8035047cf9b1393b3fa0", -1},
{ "icon.dat", GAME_ICONFILE, "2db931e84f1ca01f0816dddfae3f49e1", -1},
- { "start", GAME_RESTFILE, "c111be88c7f6d40e3f9b128939c1236d", -1},
{ NULL, 0, NULL, 0}
},
Common::EN_ANY,
@@ -69,6 +68,46 @@ static const AGOSGameDescription gameDescriptions[] = {
GF_OLD_BUNDLE | GF_CRUNCHED | GF_PLANAR
},
+ // Elvira 1 - French Amiga Floppy
+ {
+ {
+ "elvira1",
+ "Floppy",
+ {
+ { "gameamiga", GAME_BASEFILE, "ab1a0798f74e71cc58a06e7e0db6f8a7", -1},
+ { "icon.dat", GAME_ICONFILE, "2db931e84f1ca01f0816dddfae3f49e1", -1},
+ { NULL, 0, NULL, 0}
+ },
+ Common::FR_FRA,
+ Common::kPlatformAmiga,
+ Common::ADGF_NO_FLAGS
+ },
+
+ GType_ELVIRA1,
+ GID_ELVIRA1,
+ GF_OLD_BUNDLE | GF_CRUNCHED | GF_PLANAR
+ },
+
+ // Elvira 1 - German Amiga Floppy
+ {
+ {
+ "elvira1",
+ "Floppy",
+ {
+ { "gameamiga", GAME_BASEFILE, "bde0334344c7b3a278ccc9a300f3085c", -1},
+ { "icon.dat", GAME_ICONFILE, "2db931e84f1ca01f0816dddfae3f49e1", -1},
+ { NULL, 0, NULL, 0}
+ },
+ Common::DE_DEU,
+ Common::kPlatformAmiga,
+ Common::ADGF_NO_FLAGS
+ },
+
+ GType_ELVIRA1,
+ GID_ELVIRA1,
+ GF_OLD_BUNDLE | GF_CRUNCHED | GF_PLANAR
+ },
+
// Elvira 1 - English Atari ST Floppy Demo
{
{
@@ -100,7 +139,6 @@ static const AGOSGameDescription gameDescriptions[] = {
{
{ "gamest", GAME_BASEFILE, "8942859018fcfb2dbed13e83d974d1ab", -1},
{ "icon.dat", GAME_ICONFILE, "2db931e84f1ca01f0816dddfae3f49e1", -1},
- { "start", GAME_RESTFILE, "cd711028e209c47b81d04141fff2587b", -1},
{ "tbllist", GAME_TBLFILE, "5b6ff494bf7e24213758598ef4ac0a8b", -1},
{ NULL, 0, NULL, 0}
},
@@ -123,7 +161,6 @@ static const AGOSGameDescription gameDescriptions[] = {
{
{ "gamest", GAME_BASEFILE, "ce2100ba71284f55ac302847d7f94747", -1},
{ "icon.dat", GAME_ICONFILE, "2db931e84f1ca01f0816dddfae3f49e1", -1},
- { "start", GAME_RESTFILE, "cd711028e209c47b81d04141fff2587b", -1},
{ "tbllist", GAME_TBLFILE, "5b6ff494bf7e24213758598ef4ac0a8b", -1},
{ NULL, 0, NULL, 0}
},
@@ -146,7 +183,6 @@ static const AGOSGameDescription gameDescriptions[] = {
{
{ "gamepc", GAME_BASEFILE, "a49e132a1f18306dd5d1ec2fe435e178", -1},
{ "icon.dat", GAME_ICONFILE, "fda48c9da7f3e72d0313e2f5f760fc45", -1},
- { "start", GAME_RESTFILE, "69fb4f12108b39ae659f108cad4d3efe", -1},
{ "tbllist", GAME_TBLFILE, "319f6b227c7822a551f57d24e70f8149", -1},
{ NULL, 0, NULL, 0}
},
@@ -160,20 +196,19 @@ static const AGOSGameDescription gameDescriptions[] = {
GF_OLD_BUNDLE
},
- // Elvira 1 - German DOS Floppy
+ // Elvira 1 - French DOS Floppy
{
{
"elvira1",
"Floppy",
{
- { "gamepc", GAME_BASEFILE, "d0b593143e21fc150c044819df2c0b98", -1},
+ { "gamepc", GAME_BASEFILE, "9076d507d60cc454df662316438ec843", -1},
{ "icon.dat", GAME_ICONFILE, "fda48c9da7f3e72d0313e2f5f760fc45", -1},
- { "start", GAME_RESTFILE, "69fb4f12108b39ae659f108cad4d3efe", -1},
{ "tbllist", GAME_TBLFILE, "319f6b227c7822a551f57d24e70f8149", -1},
{ NULL, 0, NULL, 0}
},
- Common::DE_DEU,
+ Common::FR_FRA,
Common::kPlatformPC,
Common::ADGF_NO_FLAGS
},
@@ -183,20 +218,19 @@ static const AGOSGameDescription gameDescriptions[] = {
GF_OLD_BUNDLE
},
- // Elvira 1 - French DOS Floppy
+ // Elvira 1 - German DOS Floppy
{
{
"elvira1",
"Floppy",
{
- { "gamepc", GAME_BASEFILE, "9076d507d60cc454df662316438ec843", -1},
+ { "gamepc", GAME_BASEFILE, "d0b593143e21fc150c044819df2c0b98", -1},
{ "icon.dat", GAME_ICONFILE, "fda48c9da7f3e72d0313e2f5f760fc45", -1},
- { "start", GAME_RESTFILE, "69fb4f12108b39ae659f108cad4d3efe", -1},
{ "tbllist", GAME_TBLFILE, "319f6b227c7822a551f57d24e70f8149", -1},
{ NULL, 0, NULL, 0}
},
- Common::FR_FRA,
+ Common::DE_DEU,
Common::kPlatformPC,
Common::ADGF_NO_FLAGS
},
@@ -382,22 +416,22 @@ static const AGOSGameDescription gameDescriptions[] = {
GF_OLD_BUNDLE
},
- // Elvira 2 - German DOS Floppy
+ // Elvira 2 - French DOS Floppy
{
{
"elvira2",
"Floppy",
{
- { "gamepc", GAME_BASEFILE, "d1979d2fbc5fb5276563578ca55cbcec", -1},
+ { "gamepc", GAME_BASEFILE, "4bf28ab00f5324fd938e632595742382", -1},
{ "icon.dat", GAME_ICONFILE, "83a7278bff55c82fbb3aef92981866c9", -1},
{ "menus.dat", GAME_MENUFILE, "a2fdc88a77c8bdffec6b36cbeda4d955", -1},
- { "start", GAME_RESTFILE, "016107aced82d0cc5d758a9fba716270", -1},
+ { "start", GAME_RESTFILE, "4d380a35ba941d03ee5084c71d20055b", -1},
{ "stripped.txt", GAME_STRFILE, "c3a8f644551a27c8a2fec0f8070b46b7", -1},
{ "tbllist", GAME_TBLFILE, "8252660df0edbdbc3e6377e155bbd0c5", -1},
{ NULL, 0, NULL, 0}
},
- Common::DE_DEU,
+ Common::FR_FRA,
Common::kPlatformPC,
Common::ADGF_NO_FLAGS
},
@@ -407,22 +441,22 @@ static const AGOSGameDescription gameDescriptions[] = {
GF_OLD_BUNDLE
},
- // Elvira 2 - French DOS Floppy
+ // Elvira 2 - German DOS Floppy
{
{
"elvira2",
"Floppy",
{
- { "gamepc", GAME_BASEFILE, "4bf28ab00f5324fd938e632595742382", -1},
+ { "gamepc", GAME_BASEFILE, "d1979d2fbc5fb5276563578ca55cbcec", -1},
{ "icon.dat", GAME_ICONFILE, "83a7278bff55c82fbb3aef92981866c9", -1},
{ "menus.dat", GAME_MENUFILE, "a2fdc88a77c8bdffec6b36cbeda4d955", -1},
- { "start", GAME_RESTFILE, "4d380a35ba941d03ee5084c71d20055b", -1},
+ { "start", GAME_RESTFILE, "016107aced82d0cc5d758a9fba716270", -1},
{ "stripped.txt", GAME_STRFILE, "c3a8f644551a27c8a2fec0f8070b46b7", -1},
{ "tbllist", GAME_TBLFILE, "8252660df0edbdbc3e6377e155bbd0c5", -1},
{ NULL, 0, NULL, 0}
},
- Common::FR_FRA,
+ Common::DE_DEU,
Common::kPlatformPC,
Common::ADGF_NO_FLAGS
},
diff --git a/engines/agos/script_e1.cpp b/engines/agos/script_e1.cpp
index be60a4b14a..9522901723 100644
--- a/engines/agos/script_e1.cpp
+++ b/engines/agos/script_e1.cpp
@@ -707,8 +707,8 @@ void AGOSEngine_Elvira1::oe1_loadGame() {
uint16 stringId = getNextStringID();
debug(0, "oe1_loadGame: stub (%s)", (const char *)getStringPtrByID(stringId));
- if (!scumm_stricmp(getFileName(GAME_RESTFILE), (const char *)getStringPtrByID(stringId))) {
- loadGame(getFileName(GAME_RESTFILE), true);
+ if (!scumm_stricmp("START", (const char *)getStringPtrByID(stringId))) {
+ loadGame("START", true);
} else {
loadGame((const char *)getStringPtrByID(stringId));
}
diff --git a/engines/agos/script_e2.cpp b/engines/agos/script_e2.cpp
index 13cb15a8b9..8251510fac 100644
--- a/engines/agos/script_e2.cpp
+++ b/engines/agos/script_e2.cpp
@@ -145,7 +145,7 @@ void AGOSEngine_Elvira2::setupOpcodes() {
OPCODE(o_comment),
/* 88 */
OPCODE(o_invalid),
- OPCODE(oe1_loadGame),
+ OPCODE(oe2_loadGame),
OPCODE(o_getParent),
OPCODE(o_getNext),
/* 92 */
@@ -315,6 +315,17 @@ void AGOSEngine_Elvira2::oe2_pObj() {
showMessageFormat("%s\n", (const char *)getStringPtrByID(subObject->objectFlagValue[0])); // Difference
}
+void AGOSEngine_Elvira2::oe2_loadGame() {
+ // 89: load game
+ uint16 stringId = getNextStringID();
+
+ if (!scumm_stricmp(getFileName(GAME_RESTFILE), (const char *)getStringPtrByID(stringId))) {
+ loadGame(getFileName(GAME_RESTFILE), true);
+ } else {
+ loadGame((const char *)getStringPtrByID(stringId));
+ }
+}
+
void AGOSEngine_Elvira2::oe2_drawItem() {
// 113: draw item
Item *i = getNextItemPtr();
diff --git a/engines/agos/script_ww.cpp b/engines/agos/script_ww.cpp
index 690a717acf..377b49ae3f 100644
--- a/engines/agos/script_ww.cpp
+++ b/engines/agos/script_ww.cpp
@@ -147,7 +147,7 @@ void AGOSEngine_Waxworks::setupOpcodes() {
OPCODE(o_comment),
/* 88 */
OPCODE(o_invalid),
- OPCODE(oe1_loadGame),
+ OPCODE(oe2_loadGame),
OPCODE(o_getParent),
OPCODE(o_getNext),
/* 92 */