From 6b4d3f70dd8f6b13dcf379c239363559e2a82278 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 23 Feb 2018 15:14:59 -0500 Subject: XEEN: Add data to create_xeen for Clouds of Xeen on it's own --- engines/xeen/map.cpp | 28 ++++++++++++++++------------ engines/xeen/resources.cpp | 9 ++++++++- engines/xeen/resources.h | 3 ++- engines/xeen/spells.cpp | 2 +- engines/xeen/xeen.cpp | 3 +-- 5 files changed, 28 insertions(+), 17 deletions(-) (limited to 'engines') diff --git a/engines/xeen/map.cpp b/engines/xeen/map.cpp index abe91e57d3..2200d145ef 100644 --- a/engines/xeen/map.cpp +++ b/engines/xeen/map.cpp @@ -655,9 +655,9 @@ void Map::load(int mapId) { _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"); + _animationInfo.load("animinfo.cld"); + _monsterData.load("monsters.cld"); + _wallPicSprites.load("wallpics.cld"); } else if (_vm->getGameID() == GType_WorldOfXeen) { files.setGameCc(1); @@ -747,15 +747,19 @@ void Map::load(int mapId) { if (!textLoaded) { textLoaded = true; - Common::String txtName = Common::String::format("%s%c%03d.txt", - isDarkCc ? "dark" : "xeen", mapId >= 100 ? 'x' : '0', mapId); - File fText(txtName, 1); - char mazeName[33]; - fText.read(mazeName, 33); - mazeName[32] = '\0'; - - _mazeName = Common::String(mazeName); - fText.close(); + if (g_vm->getGameID() == GType_Clouds) { + _mazeName = Res._cloudsMapNames[mapId]; + } else { + Common::String txtName = Common::String::format("%s%c%03d.txt", + isDarkCc ? "dark" : "xeen", mapId >= 100 ? 'x' : '0', mapId); + File fText(txtName, 1); + char mazeName[33]; + fText.read(mazeName, 33); + mazeName[32] = '\0'; + + _mazeName = Common::String(mazeName); + fText.close(); + } // Load the monster/object data Common::String mobName = Common::String::format("maze%c%03d.mob", diff --git a/engines/xeen/resources.cpp b/engines/xeen/resources.cpp index 632cf3ddfe..bed8a1a9b7 100644 --- a/engines/xeen/resources.cpp +++ b/engines/xeen/resources.cpp @@ -36,11 +36,18 @@ Resources::Resources() { _globalSprites.load("global.icn"); - File f("mae.xen"); + File f((g_vm->getGameID() == GType_Clouds) ? "mae.cld" : "mae.xen"); while (f.pos() < f.size()) _maeNames.push_back(f.readString()); f.close(); + if (g_vm->getGameID() == GType_Clouds) { + f.open("mapnames.cld"); + while (f.pos() < f.size()) + _cloudsMapNames.push_back(f.readString()); + f.close(); + } + // Set up items array to map to the names of items in each category ITEM_NAMES[CATEGORY_WEAPON] = &WEAPON_NAMES[0]; ITEM_NAMES[CATEGORY_ARMOR] = &ARMOR_NAMES[0]; diff --git a/engines/xeen/resources.h b/engines/xeen/resources.h index 8cdeaf4c21..2761f401fc 100644 --- a/engines/xeen/resources.h +++ b/engines/xeen/resources.h @@ -110,7 +110,8 @@ private: void loadData(); public: SpriteResource _globalSprites; - Common::StringArray _maeNames; // Magic and equipment names + Common::StringArray _maeNames; // Magic and equipment names + Common::StringArray _cloudsMapNames; // Clouds of Xeen map names const char **ITEM_NAMES[4]; // Data loaded from xeen.ccs diff --git a/engines/xeen/spells.cpp b/engines/xeen/spells.cpp index 53303c384b..72140a2d2f 100644 --- a/engines/xeen/spells.cpp +++ b/engines/xeen/spells.cpp @@ -36,7 +36,7 @@ Spells::Spells(XeenEngine *vm) : _vm(vm) { } void Spells::load() { - File f1("spells.xen", 1); + File f1((g_vm->getGameID() == GType_Clouds) ? "spells.cld" : "spells.xen", 1); while (f1.pos() < f1.size()) _spellNames.push_back(f1.readString()); f1.close(); diff --git a/engines/xeen/xeen.cpp b/engines/xeen/xeen.cpp index 39fc773d39..9acf2c51b4 100644 --- a/engines/xeen/xeen.cpp +++ b/engines/xeen/xeen.cpp @@ -167,8 +167,7 @@ void XeenEngine::play() { _screen->loadBackground("back.raw"); _screen->loadPalette("mm4.pal"); - if (getGameID() != GType_WorldOfXeen && getGameID() != GType_Swords - && !_map->_loadDarkSide) { + if (getGameID() == GType_DarkSide && !_map->_loadDarkSide) { _map->_loadDarkSide = true; _party->_mazeId = 29; _party->_mazeDirection = DIR_NORTH; -- cgit v1.2.3