aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen')
-rw-r--r--engines/xeen/map.cpp28
-rw-r--r--engines/xeen/resources.cpp9
-rw-r--r--engines/xeen/resources.h3
-rw-r--r--engines/xeen/spells.cpp2
-rw-r--r--engines/xeen/xeen.cpp3
5 files changed, 28 insertions, 17 deletions
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;