aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--devtools/create_xeen/constants.cpp53
-rw-r--r--engines/xeen/files.cpp5
-rw-r--r--engines/xeen/map.cpp10
-rw-r--r--engines/xeen/xeen.cpp5
-rw-r--r--engines/xeen/xeen.h1
5 files changed, 62 insertions, 12 deletions
diff --git a/devtools/create_xeen/constants.cpp b/devtools/create_xeen/constants.cpp
index 1ab1a7a50a..3df02dff50 100644
--- a/devtools/create_xeen/constants.cpp
+++ b/devtools/create_xeen/constants.cpp
@@ -1767,6 +1767,49 @@ const char *const MUSIC_FILES2[6][7] = {
{ "sf05.m", "sf05.m", "sf05.m", "sf05.m", "sf05.m", "sf05.m", "sf05.m" }
};
+const char *const SPELL_NAMES[77] = {
+ "Acid Spray", "Awaken", "Beast Master", "Bless", "Clairvoyance", "Cold Ray",
+ "Create Food", "Cure Disease", "Cure Paralysis", "Cure Poison", "Cure Wounds",
+ "Dancing Sword", "Day of Protection", "Day of Sorcery", "Deadly Swarm",
+ "Detect Monster", "Divine Intervention", "Dragon Sleep", "Elemental Storm",
+ "Enchant Item", "Energy Blast", "Etherealize", "Fantastic Freeze", "Fiery Flail",
+ "Finger of Death", "Fire Ball", "First Aid", "Flying Fist", "Frost Bite",
+ "Golem Stopper", "Heroism", "Holy Bonus", "Holy Word", "Hypnotize",
+ "Identify Monster", "Implosion", "Incinerate", "Inferno", "Insect Spray",
+ "Item to Gold", "Jump", "Levitate", "Light", "Lightning Bolt", "Lloyd's Beacon",
+ "Magic Arrow", "Mass Distortion", "Mega Volts", "Moon Ray", "Nature's Cure",
+ "Pain", "Poison Volley", "Power Cure", "Power Shield", "Prismatic Light",
+ "Prot. from Elements", "Raise Dead", "Recharge Item", "Resurrect", "Revitalize",
+ "Shrapmetal", "Sleep", "Sparks", "Star Burst", "Stone to Flesh", "Sun Ray",
+ "Super Shelter", "Suppress Disease", "Suppress Poison", "Teleport",
+ "Time Distortion", "Town Portal", "Toxic Cloud", "Turn Undead", "Walk on Water",
+ "Wizard Eye", "None Ready"
+};
+
+const char *const MAE_NAMES[131] = {
+ "", "burning ", "fiery ", "pyric ", "fuming ", "flaming ", "seething ",
+ "blazing ", "scorching ", "flickering ", "sparking ", "static ",
+ "flashing ", "shocking ", "electric ", "dyna ", "icy ", "frost ",
+ "freezing ", "cold ", "cryo ", "acidic ", "venemous ", "poisonous ",
+ "toxic ", "noxious ", "glowing ", "incandescent ", "dense ", "sonic ",
+ "power ", "thermal ", "radiating ", "kinetic ", "mystic ", "magical ",
+ "ectoplasmic ", "wooden ", "leather ", "brass ", "bronze ", "iron ",
+ "silver ", "steel ", "gold ", "platinum ", "glass ", "coral ", "crystal ",
+ "lapis ", "pearl ", "amber ", "ebony ", "quartz ", "ruby ", "emerald ",
+ "sapphire ", "diamond ", "obsidian ", "might ", "strength ", "warrior ",
+ "ogre ", "giant ", "thunder ", "force ", "power ", "dragon ", "photon ",
+ "clever ", "mind ", "sage ", "thought ", "knowledge ", "intellect ",
+ "wisdom ", "genius ", "buddy ", "friendship ", "charm ", "personality ",
+ "charisma ", "leadership ", "ego ", "holy ", "quick ", "swift ", "fast ",
+ "rapid ", "speed ", "wind ", "accelerator ", "velocity ", "sharp ",
+ "accurate ", "marksman ", "precision ", "true ", "exacto ", "clover ",
+ "chance ", "winners ", "lucky ", "gamblers ", "leprechauns ", "vigor ",
+ "health ", "life ", "troll ", "vampiric ", "spell ", "castors ", "witch ",
+ "mage ", "archmage ", "arcane ", "protection ", "armored ", "defender ",
+ "stealth ", "divine ", "mugger ", "burgler ", "looter ", "brigand ",
+ "filch ", "thief ", "rogue ", "plunder ", "criminal ", "pirate "
+};
+
void writeConstants(CCArchive &cc) {
Common::MemFile file;
file.syncString(CREDITS);
@@ -2095,4 +2138,14 @@ void writeConstants(CCArchive &cc) {
file.syncStrings2D((const char *const *)MUSIC_FILES2, 6, 7);
cc.add("CONSTANTS", file);
+
+ // Fallback spell names list needed for Clouds of Xeen
+ Common::MemFile spells;
+ spells.syncStrings(SPELL_NAMES, 77);
+ cc.add("spells.xen", spells);
+
+ // Fallback MAE names list needed for Clouds of Xeen
+ Common::MemFile mae;
+ mae.syncStrings(MAE_NAMES, 131);
+ cc.add("mae.xen", mae);
}
diff --git a/engines/xeen/files.cpp b/engines/xeen/files.cpp
index a424bd510b..9cbc36ffc5 100644
--- a/engines/xeen/files.cpp
+++ b/engines/xeen/files.cpp
@@ -219,7 +219,10 @@ Common::SeekableReadStream *CCArchive::createReadStreamForMember(const Common::S
FileManager::FileManager(XeenEngine *vm) {
_isDarkCc = vm->getGameID() == GType_DarkSide;
- File::_xeenCc = File::_darkCc = nullptr;
+ File::_xeenCc = File::_darkCc = File::_introCc = nullptr;
+ File::_xeenSave = File::_darkSave = nullptr;
+ File::_currentSave = nullptr;
+ File::_currentArchive = nullptr;
}
FileManager::~FileManager() {
diff --git a/engines/xeen/map.cpp b/engines/xeen/map.cpp
index af50fcd1b2..abe91e57d3 100644
--- a/engines/xeen/map.cpp
+++ b/engines/xeen/map.cpp
@@ -916,15 +916,15 @@ void Map::load(int mapId) {
_wallSprites._surfaces[i].clear();
_wallSprites._fwl1.load(Common::String::format("f%s1.fwl",
- Res.TERRAIN_TYPES[_mazeData[0]._wallKind]));
+ Res.TERRAIN_TYPES[_mazeData[0]._wallKind]), _sidePictures);
_wallSprites._fwl2.load(Common::String::format("f%s2.fwl",
- Res.TERRAIN_TYPES[_mazeData[0]._wallKind]));
+ Res.TERRAIN_TYPES[_mazeData[0]._wallKind]), _sidePictures);
_wallSprites._fwl3.load(Common::String::format("f%s3.fwl",
- Res.TERRAIN_TYPES[_mazeData[0]._wallKind]));
+ Res.TERRAIN_TYPES[_mazeData[0]._wallKind]), _sidePictures);
_wallSprites._fwl4.load(Common::String::format("f%s4.fwl",
- Res.TERRAIN_TYPES[_mazeData[0]._wallKind]));
+ Res.TERRAIN_TYPES[_mazeData[0]._wallKind]), _sidePictures);
_wallSprites._swl.load(Common::String::format("s%s.swl",
- Res.TERRAIN_TYPES[_mazeData[0]._wallKind]));
+ Res.TERRAIN_TYPES[_mazeData[0]._wallKind]), _sidePictures);
// Set entries in the indoor draw list to the correct sprites
// for drawing various parts of the background
diff --git a/engines/xeen/xeen.cpp b/engines/xeen/xeen.cpp
index 8e22965e2f..39fc773d39 100644
--- a/engines/xeen/xeen.cpp
+++ b/engines/xeen/xeen.cpp
@@ -56,7 +56,6 @@ XeenEngine::XeenEngine(OSystem *syst, const XeenGameDescription *gameDesc)
_sound = nullptr;
_spells = nullptr;
_windows = nullptr;
- _eventData = nullptr;
_noDirectionSense = false;
_startupWindowActive = false;
_quitMode = QMODE_NONE;
@@ -80,7 +79,6 @@ XeenEngine::~XeenEngine() {
delete _sound;
delete _spells;
delete _windows;
- delete _eventData;
delete _resources;
delete _files;
g_vm = nullptr;
@@ -107,9 +105,6 @@ bool XeenEngine::initialize() {
_spells = new Spells(this);
_windows = new Windows();
- File f("029.obj", 1);
- _eventData = f.readStream(f.size());
-
// Set graphics mode
initGraphics(320, 200);
diff --git a/engines/xeen/xeen.h b/engines/xeen/xeen.h
index 652284b26f..561d928158 100644
--- a/engines/xeen/xeen.h
+++ b/engines/xeen/xeen.h
@@ -158,7 +158,6 @@ public:
Windows *_windows;
Mode _mode;
GameEvent _gameEvent;
- Common::SeekableReadStream *_eventData;
QuitMode _quitMode;
bool _noDirectionSense;
bool _startupWindowActive;