diff options
author | Paul Gilbert | 2018-02-22 22:12:14 -0500 |
---|---|---|
committer | Paul Gilbert | 2018-02-23 15:23:20 -0500 |
commit | d132d66c2825cddf215b19d787a2797e8dbad8ed (patch) | |
tree | c38e5351b7cd0c70fbe5457bf4e46ac69ba22f7c | |
parent | 6b523a1d04da385d08d5b38f9e51cdb9b6c5fd33 (diff) | |
download | scummvm-rg350-d132d66c2825cddf215b19d787a2797e8dbad8ed.tar.gz scummvm-rg350-d132d66c2825cddf215b19d787a2797e8dbad8ed.tar.bz2 scummvm-rg350-d132d66c2825cddf215b19d787a2797e8dbad8ed.zip |
XEEN: Add Clouds of Xeen MAE and Spells to xeen.ccs
The later games stored them in resources, but Clouds of Xeen had
them hardcoded. So this adds them under the same resource names
as the later games, so the existing code can load them
-rw-r--r-- | devtools/create_xeen/constants.cpp | 53 | ||||
-rw-r--r-- | engines/xeen/files.cpp | 5 | ||||
-rw-r--r-- | engines/xeen/map.cpp | 10 | ||||
-rw-r--r-- | engines/xeen/xeen.cpp | 5 | ||||
-rw-r--r-- | engines/xeen/xeen.h | 1 |
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; |