XEEN: Add detection for Clouds & Dark Side

This commit is contained in:
Paul Gilbert 2018-02-13 20:10:43 -05:00
parent 817cb5d7e1
commit a85a98b867
5 changed files with 48 additions and 4 deletions

View File

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

View File

@ -80,6 +80,42 @@ static const XeenGameDescription gameDescriptions[] = {
0
},
{
// 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)
{

View File

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

View File

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

View File

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