aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2018-02-13 20:10:43 -0500
committerPaul Gilbert2018-02-13 20:10:43 -0500
commita85a98b867af5808f630d14c92526fff36c5d3b8 (patch)
treeb282b6f507166653f57b564fb438aee533247939
parent817cb5d7e1a22c37cb9ec7ae6d24c7210234ada4 (diff)
downloadscummvm-rg350-a85a98b867af5808f630d14c92526fff36c5d3b8.tar.gz
scummvm-rg350-a85a98b867af5808f630d14c92526fff36c5d3b8.tar.bz2
scummvm-rg350-a85a98b867af5808f630d14c92526fff36c5d3b8.zip
XEEN: Add detection for Clouds & Dark Side
-rw-r--r--engines/xeen/detection.cpp4
-rw-r--r--engines/xeen/detection_tables.h36
-rw-r--r--engines/xeen/files.cpp2
-rw-r--r--engines/xeen/map.cpp6
-rw-r--r--engines/xeen/worldofxeen/worldofxeen.cpp4
5 files changed, 48 insertions, 4 deletions
diff --git a/engines/xeen/detection.cpp b/engines/xeen/detection.cpp
index 0916c3965b..b16c8d6d3a 100644
--- a/engines/xeen/detection.cpp
+++ b/engines/xeen/detection.cpp
@@ -64,8 +64,8 @@ Common::Platform XeenEngine::getPlatform() const {
static const PlainGameDescriptor XeenGames[] = {
{ "xeen", "Xeen" },
- { "clouds", "Clouds of Xeen" },
- { "darkside", "Dark Side of Xeen" },
+ { "cloudsofxeen", "Clouds of Xeen" },
+ { "darksideofxeen", "Dark Side of Xeen" },
{ "worldofxeen", "World of Xeen" },
{ "swordsofxeen", "Swords of Xeen" },
{0, 0}
diff --git a/engines/xeen/detection_tables.h b/engines/xeen/detection_tables.h
index 31a79f3d90..07aeef5dc4 100644
--- a/engines/xeen/detection_tables.h
+++ b/engines/xeen/detection_tables.h
@@ -81,6 +81,42 @@ static const XeenGameDescription gameDescriptions[] = {
},
{
+ // Clouds of Xeen
+ {
+ "cloudsofxeen",
+ nullptr,
+ {
+ { "xeen.cc", 0, "0cffbab533d9afe140e69ec93096f43e", 13435646 },
+ AD_LISTEND
+ },
+ Common::EN_ANY,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO1(GUIO_NONE)
+ },
+ GType_Clouds,
+ 0
+ },
+
+ {
+ // Dark Side of Xeen
+ {
+ "darksideofxeen",
+ nullptr,
+ {
+ { "dark.cc", 0, "df194483ecea6abc0511637d712ced7c", 11217676 },
+ AD_LISTEND
+ },
+ Common::EN_ANY,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO1(GUIO_NONE)
+ },
+ GType_DarkSide,
+ 0
+ },
+
+ {
// Swords of Xeen (GOG)
{
"swordsofxeen",
diff --git a/engines/xeen/files.cpp b/engines/xeen/files.cpp
index 6380199f51..89cc2c0584 100644
--- a/engines/xeen/files.cpp
+++ b/engines/xeen/files.cpp
@@ -249,7 +249,7 @@ FileManager::~FileManager() {
void FileManager::setGameCc(int ccMode) {
if (g_vm->getGameID() != GType_WorldOfXeen)
- ccMode = 1;
+ ccMode = g_vm->getGameID() == GType_Clouds ? 0 : 1;
File::setCurrentArchive(ccMode);
_isDarkCc = ccMode != 0;
diff --git a/engines/xeen/map.cpp b/engines/xeen/map.cpp
index 16fce5843a..8bb04b1eeb 100644
--- a/engines/xeen/map.cpp
+++ b/engines/xeen/map.cpp
@@ -992,10 +992,14 @@ void Map::load(int mapId) {
_sideTownPortal = _loadDarkSide ? 1 : 0;
}
- if (_vm->getGameID() == GType_Swords) {
+ if (_vm->getGameID() == GType_Swords || _vm->getGameID() == GType_DarkSide) {
_animationInfo.load("dark.dat");
_monsterData.load("dark.mon");
_wallPicSprites.load("darkpic.dat");
+ } else if (_vm->getGameID() == GType_Clouds) {
+ _animationInfo.load("clouds.dat");
+ _monsterData.load("xeen.mon");
+ _wallPicSprites.load("xeenpic.dat");
} else if (_vm->getGameID() == GType_WorldOfXeen) {
files.setGameCc(1);
diff --git a/engines/xeen/worldofxeen/worldofxeen.cpp b/engines/xeen/worldofxeen/worldofxeen.cpp
index dcb87197f3..dbccf460ea 100644
--- a/engines/xeen/worldofxeen/worldofxeen.cpp
+++ b/engines/xeen/worldofxeen/worldofxeen.cpp
@@ -44,6 +44,10 @@ void WorldOfXeenEngine::outerGameLoop() {
_pendingAction = WOX_PLAY_GAME;
while (!shouldQuit() && _pendingAction != WOX_QUIT) {
+ // TODO: Remove this once proper startup menus are added for Clouds & Dark Side
+ if (g_vm->getGameID() != GType_WorldOfXeen)
+ _pendingAction = WOX_PLAY_GAME;
+
WOXGameAction action = _pendingAction;
_pendingAction = WOX_MENU;
_quitMode = QMODE_NONE;