Initial commit
This commit is contained in:
242
engines/mads/dragonsphere/dragonsphere_scenes.cpp
Normal file
242
engines/mads/dragonsphere/dragonsphere_scenes.cpp
Normal file
@@ -0,0 +1,242 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef ENABLE_MADSV2
|
||||
|
||||
#include "common/config-manager.h"
|
||||
#include "mads/mads.h"
|
||||
#include "mads/compression.h"
|
||||
#include "mads/resources.h"
|
||||
#include "mads/scene.h"
|
||||
#include "mads/dragonsphere/game_dragonsphere.h"
|
||||
#include "mads/dragonsphere/dragonsphere_scenes.h"
|
||||
#include "mads/dragonsphere/dragonsphere_scenes1.h"
|
||||
|
||||
namespace MADS {
|
||||
|
||||
namespace Dragonsphere {
|
||||
|
||||
SceneLogic *SceneFactory::createScene(MADSEngine *vm) {
|
||||
Scene &scene = vm->_game->_scene;
|
||||
|
||||
// TODO
|
||||
//scene.addActiveVocab(NOUN_DROP);
|
||||
|
||||
switch (scene._nextSceneId) {
|
||||
// Scene group #1 (Castle, river and caves)
|
||||
case 101: // king's bedroom
|
||||
return new Scene101(vm);
|
||||
case 102: // queen's bedroom
|
||||
return new Scene102(vm);
|
||||
case 103: // outside king's bedroom
|
||||
return new Scene103(vm);
|
||||
case 104: // fireplace / bookshelf
|
||||
return new Scene104(vm);
|
||||
case 105: // dining room
|
||||
return new Scene105(vm);
|
||||
case 106: // throne room
|
||||
return new DummyScene(vm); // TODO
|
||||
case 107: // council chamber
|
||||
return new DummyScene(vm); // TODO
|
||||
case 108: // dungeon, cell entrance
|
||||
return new DummyScene(vm); // TODO
|
||||
case 109: // cell
|
||||
return new DummyScene(vm); // TODO
|
||||
case 110: // outside castle, merchants and well
|
||||
return new DummyScene(vm); // TODO
|
||||
case 111: // Dragonsphere closeup
|
||||
return new DummyScene(vm); // TODO
|
||||
case 112: // well descend
|
||||
return new DummyScene(vm); // TODO
|
||||
case 113: // bottom of well, river and trap door
|
||||
return new DummyScene(vm); // TODO
|
||||
case 114: // cave
|
||||
return new DummyScene(vm); // TODO
|
||||
case 115: // cave with passageway to west
|
||||
return new DummyScene(vm); // TODO
|
||||
case 116: // cave with pedestral
|
||||
return new DummyScene(vm); // TODO
|
||||
case 117: // river
|
||||
return new DummyScene(vm); // TODO
|
||||
case 118: // castle courtyard and gate
|
||||
return new DummyScene(vm); // TODO
|
||||
case 119: // castle stairs
|
||||
return new DummyScene(vm); // TODO
|
||||
case 120: // map
|
||||
return new DummyScene(vm); // TODO
|
||||
|
||||
// Scene group #2 (Slathan ni Patan, land of shapeshifters)
|
||||
case 201: // guardhouse, entrance to Slathan ni Patan
|
||||
return new DummyScene(vm); // TODO
|
||||
case 203: // forest
|
||||
return new DummyScene(vm); // TODO
|
||||
case 204: // cave
|
||||
return new DummyScene(vm); // TODO
|
||||
case 205: // outside village
|
||||
return new DummyScene(vm); // TODO
|
||||
case 206: // village
|
||||
return new DummyScene(vm); // TODO
|
||||
|
||||
// Scene group #3 (Brynn-Fann, Land of faeries)
|
||||
case 301: // maze entrance
|
||||
return new DummyScene(vm); // TODO
|
||||
case 302: // maze
|
||||
return new DummyScene(vm); // TODO
|
||||
case 303: // toads
|
||||
return new DummyScene(vm); // TODO
|
||||
|
||||
// Scene group #4 (The Desert)
|
||||
case 401: // desert
|
||||
return new DummyScene(vm); // TODO
|
||||
case 402: // desert
|
||||
return new DummyScene(vm); // TODO
|
||||
case 403: // desert
|
||||
return new DummyScene(vm); // TODO
|
||||
case 404: // desert with dunes
|
||||
return new DummyScene(vm); // TODO
|
||||
case 405: // oasis
|
||||
return new DummyScene(vm); // TODO
|
||||
case 406: // inside tent
|
||||
return new DummyScene(vm); // TODO
|
||||
case 407: // gem sack closeup
|
||||
return new DummyScene(vm); // TODO
|
||||
case 408: // spirit plane
|
||||
return new DummyScene(vm); // TODO
|
||||
case 409: // spirit plane top down view, disks
|
||||
return new DummyScene(vm); // TODO
|
||||
case 410: // snake pit and spirit tree
|
||||
return new DummyScene(vm); // TODO
|
||||
case 411: // nest
|
||||
return new DummyScene(vm); // TODO
|
||||
case 412: // desert
|
||||
return new DummyScene(vm); // TODO
|
||||
case 454: // cutscene
|
||||
return new DummyScene(vm); // TODO
|
||||
|
||||
// Scene group #5 (The Mountain)
|
||||
case 501: // base of mountain / wall
|
||||
return new DummyScene(vm); // TODO
|
||||
case 502: // base of mountain
|
||||
return new DummyScene(vm); // TODO
|
||||
case 503: // waterfall
|
||||
return new DummyScene(vm); // TODO
|
||||
case 504: // hermit's cave
|
||||
return new DummyScene(vm); // TODO
|
||||
case 505: // rock trees
|
||||
return new DummyScene(vm); // TODO
|
||||
case 506: // nest
|
||||
return new DummyScene(vm); // TODO
|
||||
case 507: // above nest
|
||||
return new DummyScene(vm); // TODO
|
||||
case 508: // ledge, right
|
||||
return new DummyScene(vm); // TODO
|
||||
case 509: // ledge, left
|
||||
return new DummyScene(vm); // TODO
|
||||
case 510: // nest top down view and pillars
|
||||
return new DummyScene(vm); // TODO
|
||||
case 511: // pillars
|
||||
return new DummyScene(vm); // TODO
|
||||
case 512: // nest
|
||||
return new DummyScene(vm); // TODO
|
||||
case 557: // cutscene
|
||||
return new DummyScene(vm); // TODO
|
||||
|
||||
// Scene group #6 (The Tower)
|
||||
case 601: // ??? (tile count mismatch)
|
||||
return new DummyScene(vm); // TODO
|
||||
case 603: // eye chamber
|
||||
return new DummyScene(vm); // TODO
|
||||
case 604: // room of magic
|
||||
return new DummyScene(vm); // TODO
|
||||
case 605: // science room
|
||||
return new DummyScene(vm); // TODO
|
||||
case 606: // doorway
|
||||
return new DummyScene(vm); // TODO
|
||||
case 607: // prison
|
||||
return new DummyScene(vm); // TODO
|
||||
case 609: // stone pedestral chamber
|
||||
return new DummyScene(vm); // TODO
|
||||
case 612: // infernal machine room
|
||||
return new DummyScene(vm); // TODO
|
||||
case 613: // room with lava floor
|
||||
return new DummyScene(vm); // TODO
|
||||
case 614: // sorcerer's room
|
||||
return new DummyScene(vm); // TODO
|
||||
|
||||
default:
|
||||
error("Invalid scene %d called", scene._nextSceneId);
|
||||
}
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
DragonsphereScene::DragonsphereScene(MADSEngine *vm) : SceneLogic(vm),
|
||||
_globals(static_cast<GameDragonsphere *>(vm->_game)->_globals),
|
||||
_game(*static_cast<GameDragonsphere *>(vm->_game)),
|
||||
_action(vm->_game->_scene._action) {
|
||||
}
|
||||
|
||||
Common::Path DragonsphereScene::formAnimName(char sepChar, int suffixNum) {
|
||||
return Resources::formatName(_scene->_currentSceneId, sepChar, suffixNum,
|
||||
EXT_NONE, "");
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------*/
|
||||
|
||||
void SceneInfoDragonsphere::loadCodes(BaseSurface &depthSurface, int variant) {
|
||||
Common::String ext = Common::String::format(".WW%d", variant);
|
||||
Common::Path fileName = Resources::formatName(RESPREFIX_RM, _sceneId, ext);
|
||||
if (!Common::File::exists(fileName))
|
||||
return;
|
||||
|
||||
File f(fileName);
|
||||
MadsPack codesPack(&f);
|
||||
Common::SeekableReadStream *stream = codesPack.getItemStream(0);
|
||||
|
||||
loadCodes(depthSurface, stream);
|
||||
|
||||
delete stream;
|
||||
f.close();
|
||||
}
|
||||
|
||||
void SceneInfoDragonsphere::loadCodes(BaseSurface &depthSurface, Common::SeekableReadStream *stream) {
|
||||
byte *destP = (byte *)depthSurface.getPixels();
|
||||
byte *walkMap = new byte[stream->size()];
|
||||
stream->read(walkMap, stream->size());
|
||||
|
||||
for (int y = 0; y < 156; ++y) {
|
||||
for (int x = 0; x < 320; ++x) {
|
||||
int offset = x + (y * 320);
|
||||
if ((walkMap[offset / 8] << (offset % 8)) & 0x80)
|
||||
*destP++ = 1; // walkable
|
||||
else
|
||||
*destP++ = 0;
|
||||
}
|
||||
}
|
||||
|
||||
delete[] walkMap;
|
||||
}
|
||||
|
||||
} // End of namespace Dragonsphere
|
||||
|
||||
} // End of namespace MADS
|
||||
|
||||
#endif
|
||||
677
engines/mads/dragonsphere/dragonsphere_scenes.h
Normal file
677
engines/mads/dragonsphere/dragonsphere_scenes.h
Normal file
@@ -0,0 +1,677 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef ENABLE_MADSV2
|
||||
|
||||
#ifndef MADS_DRAGONSPHERE_SCENES_H
|
||||
#define MADS_DRAGONSPHERE_SCENES_H
|
||||
|
||||
#include "mads/scene.h"
|
||||
#include "mads/dragonsphere/game_dragonsphere.h"
|
||||
//#include "mads/dragonsphere/globals_dragonsphere.h"
|
||||
|
||||
namespace MADS {
|
||||
|
||||
namespace Dragonsphere {
|
||||
|
||||
enum Verb {
|
||||
VERB_LOOK = 0x3,
|
||||
VERB_TAKE = 0x4,
|
||||
VERB_PUSH = 0x5,
|
||||
VERB_OPEN = 0x6,
|
||||
VERB_PUT = 0x7,
|
||||
VERB_TALK_TO = 0x8,
|
||||
VERB_GIVE = 0x9,
|
||||
VERB_PULL = 0xA,
|
||||
VERB_CLOSE = 0xB,
|
||||
VERB_THROW = 0xC,
|
||||
VERB_WALK_TO = 0xD,
|
||||
VERB_WALK_ACROSS = 0x11,
|
||||
VERB_WALK_BEHIND = 0x1C,
|
||||
VERB_LOOK_AT = 0x1E,
|
||||
VERB_WALK_THROUGH = 0x25,
|
||||
VERB_WALK_INTO = 0x27,
|
||||
VERB_INVOKE = 0x2F,
|
||||
VERB_ATTACK = 0x39,
|
||||
VERB_CARVE_UP = 0x3A,
|
||||
VERB_THRUST = 0x57,
|
||||
VERB_POUR = 0x62,
|
||||
VERB_POUR_CONTENTS_OF = 0x63,
|
||||
VERB_DRINK = 0x64,
|
||||
VERB_SHIFT_SELF = 0x73,
|
||||
VERB_SHIFT_INTO_BEAR = 0x74,
|
||||
VERB_SHIFT_INTO_SEAL = 0x75,
|
||||
VERB_SHIFT_INTO_SNAKE = 0x76,
|
||||
VERB_WALK_DOWN = 0xA9,
|
||||
VERB_WALK = 0x1CB,
|
||||
VERB_WALK_AROUND = 0x221
|
||||
};
|
||||
|
||||
enum Noun {
|
||||
NOUN_GAME = 0x1,
|
||||
NOUN_QSAVE = 0x2,
|
||||
NOUN_NOTHING = 0xE,
|
||||
NOUN_ = 0xF,
|
||||
NOUN_FLOOR = 0x10,
|
||||
NOUN_RUG = 0x12,
|
||||
NOUN_CARPET = 0x13,
|
||||
NOUN_WALL = 0x14,
|
||||
NOUN_BED = 0x15,
|
||||
NOUN_PILLOW = 0x16,
|
||||
NOUN_CHEST = 0x17,
|
||||
NOUN_WINDOW = 0x18,
|
||||
NOUN_NIGHTSTAND = 0x19,
|
||||
NOUN_TAPESTRY = 0x1A,
|
||||
NOUN_DRESSING_SCREEN = 0x1B,
|
||||
NOUN_ROYAL_CREST = 0x1D,
|
||||
NOUN_WASHBASIN = 0x1F,
|
||||
NOUN_WASH_AT = 0x20,
|
||||
NOUN_BOOK = 0x21,
|
||||
NOUN_FIREPLACE = 0x22,
|
||||
NOUN_FIREPLACE_SCREEN = 0x23,
|
||||
NOUN_DOOR_TO_QUEENS_ROOM = 0x24,
|
||||
NOUN_HALL_TO_SOUTH = 0x26,
|
||||
NOUN_WALL_PLAQUE = 0x28,
|
||||
NOUN_DECORATION = 0x29,
|
||||
NOUN_SWORDS = 0x2A,
|
||||
NOUN_WALL_SCONCE = 0x2B,
|
||||
NOUN_BUST_ON_WALL = 0x2C,
|
||||
NOUN_WALL_ARCH = 0x2D,
|
||||
NOUN_SIGNET_RING = 0x2E,
|
||||
NOUN_POLISH = 0x30,
|
||||
NOUN_GANGBANG = 0x31,
|
||||
NOUN_BIRD_FIGURINE = 0x32,
|
||||
NOUN_RUB = 0x33,
|
||||
NOUN_BIRDCALL = 0x34,
|
||||
NOUN_USE = 0x35,
|
||||
NOUN_MAKE_NOISE = 0x36,
|
||||
NOUN_SHIELDSTONE = 0x37,
|
||||
NOUN_SWORD = 0x38,
|
||||
NOUN_GOBLET = 0x3B,
|
||||
NOUN_FILL = 0x3C,
|
||||
NOUN_DRINK_FROM = 0x3D,
|
||||
NOUN_BONE = 0x3E,
|
||||
NOUN_GNAW = 0x3F,
|
||||
NOUN_FRUIT = 0x40,
|
||||
NOUN_EAT = 0x41,
|
||||
NOUN_DOLL = 0x42,
|
||||
NOUN_PLAY_WITH = 0x43,
|
||||
NOUN_HEAL = 0x44,
|
||||
NOUN_HEAL_THYSELF = 0x45,
|
||||
NOUN_HEAL_SELF = 0x46,
|
||||
NOUN_POLYSTONE = 0x47,
|
||||
NOUN_MIMIC = 0x48,
|
||||
NOUN_RED_POWERSTONE = 0x49,
|
||||
NOUN_YELLOW_POWERSTONE = 0x4A,
|
||||
NOUN_BLUE_POWERSTONE = 0x4B,
|
||||
NOUN_KEY_CROWN = 0x4C,
|
||||
NOUN_WEAR = 0x4D,
|
||||
NOUN_DATES = 0x4E,
|
||||
NOUN_STATUE = 0x4F,
|
||||
NOUN_BOTTLE_OF_FLIES = 0x50,
|
||||
NOUN_LISTEN_TO = 0x51,
|
||||
NOUN_SOUL_EGG = 0x52,
|
||||
NOUN_BREAK = 0x53,
|
||||
NOUN_MAGIC_BELT = 0x54,
|
||||
NOUN_ADJUST = 0x55,
|
||||
NOUN_AMULET = 0x56,
|
||||
NOUN_MUD = 0x58,
|
||||
NOUN_FEEL = 0x59,
|
||||
NOUN_TASTE = 0x5A,
|
||||
NOUN_FEATHERS = 0x5B,
|
||||
NOUN_TICKLE = 0x5C,
|
||||
NOUN_TORCH = 0x5D,
|
||||
NOUN_WAVE = 0x5E,
|
||||
NOUN_FLASK = 0x5F,
|
||||
NOUN_FLASK_FULL_OF_ACID = 0x60,
|
||||
NOUN_POUR_CONTENTS = 0x61,
|
||||
NOUN_ROPE = 0x65,
|
||||
NOUN_TIE = 0x66,
|
||||
NOUN_POWER_VACUUM_STONE = 0x67,
|
||||
NOUN_TAKE_MAGIC_FROM = 0x68,
|
||||
NOUN_DEAD_RAT = 0x69,
|
||||
NOUN_PET = 0x6A,
|
||||
NOUN_MAP = 0x6B,
|
||||
NOUN_FOLD = 0x6C,
|
||||
NOUN_CRYSTAL_BALL = 0x6D,
|
||||
NOUN_GAZE_INTO = 0x6E,
|
||||
NOUN_INVOKE_POWER_OF = 0x6F,
|
||||
NOUN_BLACK_SPHERE = 0x70,
|
||||
NOUN_SOPTUS_SOPORIFIC = 0x71,
|
||||
NOUN_SHIFTER_RING = 0x72,
|
||||
NOUN_REVERT = 0x77,
|
||||
NOUN_MEDICINE_BUNDLE = 0x78,
|
||||
NOUN_SHAKE = 0x79,
|
||||
NOUN_PARTLY_BUILT_BUNDLE = 0x7A,
|
||||
NOUN_RATSICLE = 0x7B,
|
||||
NOUN_LICK = 0x7C,
|
||||
NOUN_TENTACLE_PARTS = 0x7D,
|
||||
NOUN_CHEW = 0x7E,
|
||||
NOUN_TELEPORT_DOOR = 0x7F,
|
||||
NOUN_UNROLL = 0x80,
|
||||
NOUN_RARE_COIN = 0x81,
|
||||
NOUN_ADMIRE = 0x82,
|
||||
NOUN_CRYSTAL_FLOWER = 0x83,
|
||||
NOUN_DIAMOND_DUST = 0x84,
|
||||
NOUN_RUBY_RING = 0x85,
|
||||
NOUN_GOLD_NUGGET = 0x86,
|
||||
NOUN_MAGIC_MUSIC_BOX = 0x87,
|
||||
NOUN_EMERALD = 0x88,
|
||||
NOUN_PIECE_OF_PAPER = 0x89,
|
||||
NOUN_SPEAK_WORDS_ON = 0x8A,
|
||||
NOUN_VORTEX_STONE = 0x8B,
|
||||
NOUN_RUG2 = 0x8C,
|
||||
NOUN_FIREPLACE_SCREEN2 = 0x8D,
|
||||
NOUN_BUST_ON_WALL2 = 0x8E,
|
||||
NOUN_LOOK_AT2 = 0x8F,
|
||||
NOUN_DRAGON = 0x90,
|
||||
NOUN_DRAGONSPHERE = 0x91,
|
||||
NOUN_TOUCH = 0x92,
|
||||
NOUN_THRONE_ROOM = 0x93,
|
||||
NOUN_RETURN_TO = 0x94,
|
||||
NOUN_CAVE = 0x95,
|
||||
NOUN_PASSAGEWAY_TO_WEST = 0x96,
|
||||
NOUN_PASSAGEWAY_TO_EAST = 0x97,
|
||||
NOUN_CAVE_FLOOR = 0x98,
|
||||
NOUN_STONE_COLUMN = 0x99,
|
||||
NOUN_ABYSS = 0x9A,
|
||||
NOUN_LOOK_INTO = 0x9B,
|
||||
NOUN_CASTLE = 0x9C,
|
||||
NOUN_CASTLE_GATE = 0x9D,
|
||||
NOUN_GROUND = 0x9E,
|
||||
NOUN_BARREL = 0x9F,
|
||||
NOUN_BARRELS = 0xA0,
|
||||
NOUN_HAYSTACK = 0xA1,
|
||||
NOUN_ROOT_THROUGH = 0xA2,
|
||||
NOUN_BATTLEMENTS = 0xA3,
|
||||
NOUN_GATE_TO_THRONE_ROOM = 0xA4,
|
||||
NOUN_CASTLE_WALL = 0xA5,
|
||||
NOUN_DOOR = 0xA6,
|
||||
NOUN_WALL_SWITCH = 0xA7,
|
||||
NOUN_STAIRS = 0xA8,
|
||||
NOUN_EDGE_OF_ABYSS = 0xAA,
|
||||
NOUN_COURTYARD = 0xAB,
|
||||
NOUN_ROCK = 0xAC,
|
||||
NOUN_CAVE_CEILING = 0xAD,
|
||||
NOUN_CAVE_WALL = 0xAE,
|
||||
NOUN_BRAZIER = 0xAF,
|
||||
NOUN_DOOR_TO_THRONE_ROOM = 0xB0,
|
||||
NOUN_GO_THROUGH = 0xB1,
|
||||
NOUN_DINING_TABLE = 0xB2,
|
||||
NOUN_ACTIVATE = 0xB3,
|
||||
NOUN_BATTLEMENT = 0xB4,
|
||||
NOUN_DOOR_TO_GAURDROOM = 0xB5,
|
||||
NOUN_DUNGEON_FLOOR = 0xB6,
|
||||
NOUN_DUNGEON_WALLS = 0xB7,
|
||||
NOUN_DUNGEON_CEILING = 0xB8,
|
||||
NOUN_BEDDING = 0xB9,
|
||||
NOUN_FLOOR_GRATE = 0xBA,
|
||||
NOUN_MANACLES = 0xBB,
|
||||
NOUN_CALENDAR = 0xBC,
|
||||
NOUN_DOOR_TO_GUARDROOM = 0xBD,
|
||||
NOUN_DOOR_TO_COUNCIL_ROOM = 0xBE,
|
||||
NOUN_GUARD_STATION = 0xBF,
|
||||
NOUN_DOOR_TO_DUNGEON_CELL = 0xC0,
|
||||
NOUN_DOORWAY_TO_CELL = 0xC1,
|
||||
NOUN_DUNGEON_DOOR = 0xC2,
|
||||
NOUN_DUNGEON_WALL = 0xC3,
|
||||
NOUN_CEILING = 0xC4,
|
||||
NOUN_DOOR_TO_HALLWAY = 0xC5,
|
||||
NOUN_TABLE = 0xC6,
|
||||
NOUN_BOOKSHELF = 0xC7,
|
||||
NOUN_TROPHY = 0xC8,
|
||||
NOUN_READING_BENCH = 0xC9,
|
||||
NOUN_CHAIR = 0xCA,
|
||||
NOUN_LOVESEAT = 0xCB,
|
||||
NOUN_WOOD_BASKET = 0xCC,
|
||||
NOUN_STOOL = 0xCD,
|
||||
NOUN_GUARD_STOOL = 0xCE,
|
||||
NOUN_ROCKS = 0xCF,
|
||||
NOUN_DIVIDING_WALL = 0xD0,
|
||||
NOUN_ARCHWAY = 0xD1,
|
||||
NOUN_MARKET_GROUNDS = 0xD2,
|
||||
NOUN_HEDGE = 0xD3,
|
||||
NOUN_SKY = 0xD4,
|
||||
NOUN_PLAINS = 0xD5,
|
||||
NOUN_FIELDS = 0xD6,
|
||||
NOUN_GATE_TO_COURTYARD = 0xD7,
|
||||
NOUN_ROAD_TO_EAST = 0xD8,
|
||||
NOUN_TREES = 0xD9,
|
||||
NOUN_CLOUDS = 0xDA,
|
||||
NOUN_MERCHANTS_STALL = 0xDB,
|
||||
NOUN_WELL = 0xDC,
|
||||
NOUN_DOWN_WELL = 0xDD,
|
||||
NOUN_GO = 0xDE,
|
||||
NOUN_GO_DOWN = 0xDF,
|
||||
NOUN_CRANK = 0xE0,
|
||||
NOUN_BUCKET = 0xE1,
|
||||
NOUN_JUMP_DOWN = 0xE2,
|
||||
NOUN_WALLS = 0xE3,
|
||||
NOUN_DOORWAY_TO_SOUTH = 0xE4,
|
||||
NOUN_PEDESTAL = 0xE5,
|
||||
NOUN_DOOR_TO_NORTH = 0xE6,
|
||||
NOUN_PAINTING = 0xE7,
|
||||
NOUN_DOCUMENT = 0xE8,
|
||||
NOUN_INK_BOTTLE = 0xE9,
|
||||
NOUN_QUILL_PEN = 0xEA,
|
||||
NOUN_CHANDELIER = 0xEB,
|
||||
NOUN_COUNCIL_TABLE = 0xEC,
|
||||
NOUN_CANDLESTICK = 0xED,
|
||||
NOUN_DESK = 0xEE,
|
||||
NOUN_TURN = 0xEF,
|
||||
NOUN_POLE = 0xF0,
|
||||
NOUN_THE_SCENE = 0xF1,
|
||||
NOUN_LEAVE = 0xF2,
|
||||
NOUN_END_TABLE = 0xF3,
|
||||
NOUN_BATTLE_AXES = 0xF4,
|
||||
NOUN_DOOR_TO_KINGS_ROOM = 0xF5,
|
||||
NOUN_COAT_OF_ARMS = 0xF6,
|
||||
NOUN_LARGE_WINDOW = 0xF7,
|
||||
NOUN_SMALL_WINDOW = 0xF8,
|
||||
NOUN_DOOR_TO_MEETING_ROOM = 0xF9,
|
||||
NOUN_DOOR_TO_BALLROOM = 0xFA,
|
||||
NOUN_FLOWERS = 0xFB,
|
||||
NOUN_SHUTTERS = 0xFC,
|
||||
NOUN_BOOKCASE = 0xFD,
|
||||
NOUN_DOOR_TO_COURTYARD = 0xFE,
|
||||
NOUN_PLATFORM = 0xFF,
|
||||
NOUN_STEP = 0x100,
|
||||
NOUN_RED_CARPET = 0x101,
|
||||
NOUN_KINGS_THRONE = 0x102,
|
||||
NOUN_SIT_IN = 0x103,
|
||||
NOUN_QUEENS_THRONE = 0x104,
|
||||
NOUN_TRAPDOOR = 0x105,
|
||||
NOUN_GRATE = 0x106,
|
||||
NOUN_RIVER = 0x107,
|
||||
NOUN_DIARIES = 0x108,
|
||||
NOUN_SWIM_DOWN = 0x109,
|
||||
NOUN_SCULLERY_MAID = 0x10A,
|
||||
NOUN_DOORWAY_TO_DUNGEON = 0x10B,
|
||||
NOUN_WARD = 0x10C,
|
||||
NOUN_DARKNESS_BEAST = 0x10D,
|
||||
NOUN_BEAST = 0x10E,
|
||||
NOUN_PUT_MAGIC_INTO = 0x10F,
|
||||
NOUN_GUARD = 0x110,
|
||||
NOUN_CROWN = 0x111,
|
||||
NOUN_BOOKS = 0x112,
|
||||
NOUN_SECRET_DOOR = 0x113,
|
||||
NOUN_WALL_PANEL = 0x114,
|
||||
NOUN_DOORWAY = 0x115,
|
||||
NOUN_FAERIE = 0x116,
|
||||
NOUN_SOPTUS_ECLIPTUS = 0x117,
|
||||
NOUN_GUARD_CAPTAIN = 0x118,
|
||||
NOUN_MERCHANT = 0x119,
|
||||
NOUN_SHAPECHANGER = 0x11A,
|
||||
NOUN_RED_STONE = 0x11B,
|
||||
NOUN_YELLOW_STONE = 0x11C,
|
||||
NOUN_BLUE_STONE = 0x11D,
|
||||
NOUN_FLIES = 0x11E,
|
||||
NOUN_FLASK_OF_ACID = 0x11F,
|
||||
NOUN_PARTIAL_BUNDLE = 0x120,
|
||||
NOUN_SOPORIFIC = 0x121,
|
||||
NOUN_PARCHMENT = 0x122,
|
||||
NOUN_KING = 0x123,
|
||||
NOUN_MACMORN = 0x124,
|
||||
NOUN_MOUNTAINSIDE = 0x125,
|
||||
NOUN_PATH_TO_SOUTH = 0x126,
|
||||
NOUN_ROUGH_STONE = 0x127,
|
||||
NOUN_CLIMB_UP = 0x128,
|
||||
NOUN_LARGE_ROCK = 0x129,
|
||||
NOUN_SMALL_ROCK = 0x12A,
|
||||
NOUN_PATH_TO_WEST = 0x12B,
|
||||
NOUN_CAVE_ENTRANCE = 0x12C,
|
||||
NOUN_PALLET = 0x12D,
|
||||
NOUN_BLANKET = 0x12E,
|
||||
NOUN_FIREPIT = 0x12F,
|
||||
NOUN_FLAT_STONE = 0x130,
|
||||
NOUN_MOVE = 0x131,
|
||||
NOUN_SPIRIT_BUNDLE = 0x132,
|
||||
NOUN_TRAIL_LEADING_UP = 0x133,
|
||||
NOUN_FOLLOW = 0x134,
|
||||
NOUN_TRAIL_LEADING_DOWN = 0x135,
|
||||
NOUN_NEST = 0x136,
|
||||
NOUN_REACH_IN = 0x137,
|
||||
NOUN_TRAIL_LEADING_WEST = 0x138,
|
||||
NOUN_PATH_TO_EAST = 0x139,
|
||||
NOUN_WATERFALL = 0x13A,
|
||||
NOUN_PUDDLE = 0x13B,
|
||||
NOUN_EDGE_OF_CLIFF = 0x13C,
|
||||
NOUN_LEDGE = 0x13D,
|
||||
NOUN_CLIMB_DOWN = 0x13E,
|
||||
NOUN_LANDING = 0x13F,
|
||||
NOUN_BOULDERS = 0x140,
|
||||
NOUN_ROCK_TUMBLE = 0x141,
|
||||
NOUN_ROCK_TREE = 0x142,
|
||||
NOUN_PILLAR = 0x143,
|
||||
NOUN_JUMP_TO = 0x144,
|
||||
NOUN_CLIFF = 0x145,
|
||||
NOUN_PILLARS = 0x146,
|
||||
NOUN_SPECIAL_ROCK = 0x147,
|
||||
NOUN_GAZE_UPON = 0x148,
|
||||
NOUN_SCONCE = 0x149,
|
||||
NOUN_LADDER = 0x14A,
|
||||
NOUN_STAIRWAY = 0x14B,
|
||||
NOUN_MECHANISM = 0x14C,
|
||||
NOUN_SPEARHEADS = 0x14D,
|
||||
NOUN_TRAP_DOOR = 0x14E,
|
||||
NOUN_SWIM = 0x14F,
|
||||
NOUN_DOWN_RIVER = 0x150,
|
||||
NOUN_SWIM_UP = 0x151,
|
||||
NOUN_UP_RIVER = 0x152,
|
||||
NOUN_SHORE = 0x153,
|
||||
NOUN_SWIM_TO = 0x154,
|
||||
NOUN_SWIM_TOWARDS = 0x155,
|
||||
NOUN_KING_CALLASH = 0x156,
|
||||
NOUN_KINGS_THRONE2 = 0x157,
|
||||
NOUN_KING2 = 0x158,
|
||||
NOUN_GROTTO = 0x159,
|
||||
NOUN_CLIMB_THROUGH = 0x15A,
|
||||
NOUN_QUEEN_MOTHER = 0x15B,
|
||||
NOUN_MACMORN2 = 0x15C,
|
||||
NOUN_SMALL_LEDGE = 0x15D,
|
||||
NOUN_MACMORN3 = 0x15E,
|
||||
NOUN_TO_110 = 0x15F,
|
||||
NOUN_TO_KITTY_HEAVEN = 0x160,
|
||||
NOUN_KITTY_HEAVEN = 0x161,
|
||||
NOUN_ROOM_110 = 0x162,
|
||||
NOUN_LLANIE = 0x163,
|
||||
NOUN_CW = 0x164,
|
||||
NOUN_HERMIT = 0x165,
|
||||
NOUN_TROU = 0x166,
|
||||
NOUN_SHAK = 0x167,
|
||||
NOUN_ROOM_501 = 0x168,
|
||||
NOUN_MOON = 0x169,
|
||||
NOUN_UFO = 0x16A,
|
||||
NOUN_SIT_ON = 0x16B,
|
||||
NOUN_STRANGER = 0x16C,
|
||||
NOUN_TOWER_DOOR = 0x16D,
|
||||
NOUN_DOOR_TO_EAST = 0x16E,
|
||||
NOUN_DOOR_TO_WEST = 0x16F,
|
||||
NOUN_EYE = 0x170,
|
||||
NOUN_DOORWAY_TO_EAST = 0x171,
|
||||
NOUN_DOORWAY_TO_WEST = 0x172,
|
||||
NOUN_SKULL = 0x173,
|
||||
NOUN_DOOR_TO_MAGIC_ROOM = 0x174,
|
||||
NOUN_ANCIENT_BARREL = 0x175,
|
||||
NOUN_COBWEBS = 0x176,
|
||||
NOUN_SHELF = 0x177,
|
||||
NOUN_MUSTY_CHART = 0x178,
|
||||
NOUN_LAB_TABLE = 0x179,
|
||||
NOUN_PETCOCK = 0x17A,
|
||||
NOUN_NOZZLE = 0x17B,
|
||||
NOUN_TUBING = 0x17C,
|
||||
NOUN_BEAKER = 0x17D,
|
||||
NOUN_FLAME = 0x17E,
|
||||
NOUN_METAL_PLATE = 0x17F,
|
||||
NOUN_SHAFT_OF_LIGHT = 0x180,
|
||||
NOUN_CABINET = 0x181,
|
||||
NOUN_BALANCE = 0x182,
|
||||
NOUN_CAGE = 0x183,
|
||||
NOUN_FREEZER = 0x184,
|
||||
NOUN_CONTENTS_OF_FREEZER = 0x185,
|
||||
NOUN_CAGE_WITH_RATS = 0x186,
|
||||
NOUN_DOOR_TO_SOUTH = 0x187,
|
||||
NOUN_TRAIL_OF_GREEN_SLIME = 0x188,
|
||||
NOUN_NECK_LOCK = 0x189,
|
||||
NOUN_BENCH = 0x18A,
|
||||
NOUN_SKELETON = 0x18B,
|
||||
NOUN_LEG_CLAMPS = 0x18C,
|
||||
NOUN_LEG_LOCK = 0x18D,
|
||||
NOUN_WAIST_LOCK = 0x18E,
|
||||
NOUN_NER_TOM = 0x18F,
|
||||
NOUN_BELT = 0x190,
|
||||
NOUN_JUMP_INTO = 0x191,
|
||||
NOUN_CLOSET = 0x192,
|
||||
NOUN_DOOR_TO_EYE_CHAMBER = 0x193,
|
||||
NOUN_DRESSER = 0x194,
|
||||
NOUN_SCROLL = 0x195,
|
||||
NOUN_WITCH_PARAPHERNALIA = 0x196,
|
||||
NOUN_SHELVES = 0x197,
|
||||
NOUN_MAGIC_TOMES = 0x198,
|
||||
NOUN_MAGIC_PARAPHERNALIA = 0x199,
|
||||
NOUN_BOOK_OF_MAGIC = 0x19A,
|
||||
NOUN_HOURGLASS = 0x19B,
|
||||
NOUN_STONE_SPHERE = 0x19C,
|
||||
NOUN_SHADOW_OF_WINDOW = 0x19D,
|
||||
NOUN_MUSIC_BOX = 0x19E,
|
||||
NOUN_LARGE_SPIDER_WEB = 0x19F,
|
||||
NOUN_INFERNAL_MACHINE = 0x1A0,
|
||||
NOUN_WATER_SOURCE = 0x1A1,
|
||||
NOUN_FLOW_OF_WATER = 0x1A2,
|
||||
NOUN_RETORT = 0x1A3,
|
||||
NOUN_DOORWAY_TO_CORRIDOR = 0x1A4,
|
||||
NOUN_TELESCOPE = 0x1A5,
|
||||
NOUN_STRANGE_MAP = 0x1A6,
|
||||
NOUN_CIRCLE_OF_SPHERES = 0x1A7,
|
||||
NOUN_STONE_BED = 0x1A8,
|
||||
NOUN_DRAGON_SCULPTURE = 0x1A9,
|
||||
NOUN_RAT = 0x1AA,
|
||||
NOUN_RAT_CAGE = 0x1AB,
|
||||
NOUN_DOWN_BUTTON = 0x1AC,
|
||||
NOUN_DOOR_TO_MACHINE_ROOM = 0x1AD,
|
||||
NOUN_STRANGE_PORTAL = 0x1AE,
|
||||
NOUN_DOOR_FRAME = 0x1AF,
|
||||
NOUN_ELEVATOR_HOLE = 0x1B0,
|
||||
NOUN_UP_BUTTON = 0x1B1,
|
||||
NOUN_DOORWAY_TO_DARK_ROOM = 0x1B2,
|
||||
NOUN_BIG_SKULL = 0x1B3,
|
||||
NOUN_ELEVATOR_PLATFORM = 0x1B4,
|
||||
NOUN_BUTTON = 0x1B5,
|
||||
NOUN_TOP_BUTTON = 0x1B6,
|
||||
NOUN_BOTTOM_BUTTON = 0x1B7,
|
||||
NOUN_TELEPORTAL = 0x1B8,
|
||||
NOUN_EYE_CHAMBER_DOORWAY = 0x1B9,
|
||||
NOUN_MACHINE_ROOM_DOORWAY = 0x1BA,
|
||||
NOUN_GLOWING_FLOOR = 0x1BB,
|
||||
NOUN_BRYNN_FANN = 0x1BC,
|
||||
NOUN_GRAN_CALLAHACH = 0x1BD,
|
||||
NOUN_SLATHAN_NI_PATAN = 0x1BE,
|
||||
NOUN_HIGHTOWER = 0x1BF,
|
||||
NOUN_SOPTUS_ECLIPTUS2 = 0x1C0,
|
||||
NOUN_TOWER = 0x1C1,
|
||||
NOUN_MOUNTAIN_PATH = 0x1C2,
|
||||
NOUN_PATH_BEHIND_TOWER = 0x1C3,
|
||||
NOUN_VINES = 0x1C4,
|
||||
NOUN_SLATHAN_NI_PATAN2 = 0x1C5,
|
||||
NOUN_SICK = 0x1C6,
|
||||
NOUN_PATH_AROUND_TOWER = 0x1C7,
|
||||
NOUN_PATH_TO_HIGHTOWER = 0x1C8,
|
||||
NOUN_SPIRIT_PLANE = 0x1C9,
|
||||
NOUN_SPIRIT_TREE = 0x1CA,
|
||||
NOUN_REMAINS = 0x1CC,
|
||||
NOUN_DOORWAY_TO_ELEVATOR = 0x1CD,
|
||||
NOUN_DRAGON_DOOR = 0x1CE,
|
||||
NOUN_DRAGON_BONES = 0x1CF,
|
||||
NOUN_IRON_FLOOR = 0x1D0,
|
||||
NOUN_HOLE = 0x1D1,
|
||||
NOUN_STONE = 0x1D2,
|
||||
NOUN_HOMEMADE_BUNDLE = 0x1D3,
|
||||
NOUN_LEFT = 0x1D4,
|
||||
NOUN_RIGHT = 0x1D5,
|
||||
NOUN_UP = 0x1D6,
|
||||
NOUN_DOWN = 0x1D7,
|
||||
NOUN_WEST = 0x1D8,
|
||||
NOUN_DESERT_TO_WEST = 0x1D9,
|
||||
NOUN_CROSS = 0x1DA,
|
||||
NOUN_DESERT_TO_EAST = 0x1DB,
|
||||
NOUN_DESERT_TO_SOUTH = 0x1DC,
|
||||
NOUN_DESERT_TO_NORTH = 0x1DD,
|
||||
NOUN_DESERT = 0x1DE,
|
||||
NOUN_POWERSTONE = 0x1DF,
|
||||
NOUN_BONES = 0x1E0,
|
||||
NOUN_TENT = 0x1E1,
|
||||
NOUN_BUSH = 0x1E2,
|
||||
NOUN_SANWE = 0x1E3,
|
||||
NOUN_TANGLE = 0x1E4,
|
||||
NOUN_SAND = 0x1E5,
|
||||
NOUN_MAGIC_GRAPES = 0x1E6,
|
||||
NOUN_ROCS_NEST = 0x1E7,
|
||||
NOUN_GRAPE_VINE = 0x1E8,
|
||||
NOUN_STRANGE_SQUARE = 0x1E9,
|
||||
NOUN_WATER_SPHERE = 0x1EA,
|
||||
NOUN_EAST_END_OF_ISLAND = 0x1EB,
|
||||
NOUN_ISLAND = 0x1EC,
|
||||
NOUN_SECRET_MESSAGE = 0x1ED,
|
||||
NOUN_FIND = 0x1EE,
|
||||
NOUN_SAND_NEAR_STONES = 0x1EF,
|
||||
NOUN_DESERT_SKY = 0x1F0,
|
||||
NOUN_POOL = 0x1F1,
|
||||
NOUN_PALM_TREE = 0x1F2,
|
||||
NOUN_OASIS = 0x1F3,
|
||||
NOUN_LEAN_TO = 0x1F4,
|
||||
NOUN_TRADER = 0x1F5,
|
||||
NOUN_SIGN = 0x1F6,
|
||||
NOUN_WATER_FLOW = 0x1F7,
|
||||
NOUN_FLOATING_DISK = 0x1F8,
|
||||
NOUN_GNARLED_ROOT = 0x1F9,
|
||||
NOUN_SNAKE_PIT = 0x1FA,
|
||||
NOUN_MARKER = 0x1FB,
|
||||
NOUN_SHAMAN = 0x1FC,
|
||||
NOUN_GUARDHOUSE = 0x1FD,
|
||||
NOUN_BONE_TREE = 0x1FE,
|
||||
NOUN_EAR_ROCK = 0x1FF,
|
||||
NOUN_MOUTH_ROCK = 0x200,
|
||||
NOUN_NOSE_ROCK = 0x201,
|
||||
NOUN_NEW_BUNDLE = 0x202,
|
||||
NOUN_LIZARD = 0x203,
|
||||
NOUN_ROC = 0x204,
|
||||
NOUN_ROCS_NEST2 = 0x205,
|
||||
NOUN_SELECT = 0x206,
|
||||
NOUN_PURPLE_GEM = 0x207,
|
||||
NOUN_PURPLE_STONE = 0x208,
|
||||
NOUN_GREEN_STONE = 0x209,
|
||||
NOUN_PATH = 0x20A,
|
||||
NOUN_GUARDS = 0x20B,
|
||||
NOUN_LAMP = 0x20C,
|
||||
NOUN_SCIMITAR = 0x20D,
|
||||
NOUN_SITTING_PILLOW = 0x20E,
|
||||
NOUN_WATER_GOURD = 0x20F,
|
||||
NOUN_JAR = 0x210,
|
||||
NOUN_TENT_POLE = 0x211,
|
||||
NOUN_EXIT = 0x212,
|
||||
NOUN_PARAPHERNALIA = 0x213,
|
||||
NOUN_SLATHAN_NI_PATAN3 = 0x214,
|
||||
NOUN_EYE_ROCK = 0x215,
|
||||
NOUN_BODY_TREE = 0x216,
|
||||
NOUN_CLEARING = 0x217,
|
||||
NOUN_TENTACLES = 0x218,
|
||||
NOUN_SPELL_SHIELD = 0x219,
|
||||
NOUN_POOL_MONSTER = 0x21A,
|
||||
NOUN_SHIFTER_BOULDER = 0x21B,
|
||||
NOUN_DEAD_TREE = 0x21C,
|
||||
NOUN_PIT = 0x21D,
|
||||
NOUN_SHIFTER_VILLAGE = 0x21E,
|
||||
NOUN_SLATHAN_SKY = 0x21F,
|
||||
NOUN_SHIFTER = 0x220,
|
||||
NOUN_WRECKED_BRIDGE = 0x222,
|
||||
NOUN_SHACK = 0x223,
|
||||
NOUN_WRECKED_SHACK = 0x224,
|
||||
NOUN_WISE_SHIFTER = 0x225,
|
||||
NOUN_GRASS = 0x226,
|
||||
NOUN_ENTRANCE_TO_MAZE = 0x227,
|
||||
NOUN_TOPIARY_TOAD = 0x228,
|
||||
NOUN_BOULDER = 0x229,
|
||||
NOUN_MUSHROOM = 0x22A,
|
||||
NOUN_SLATHAN_SKY2 = 0x22B,
|
||||
NOUN_GRETA = 0x22C,
|
||||
NOUN_TREE_STUMP = 0x22D,
|
||||
NOUN_SANCTUARY_WOODS = 0x22E,
|
||||
NOUN_TOADS = 0x22F,
|
||||
NOUN_DOOFUS = 0x230,
|
||||
NOUN_SHIFTING_MONSTER = 0x231,
|
||||
NOUN_SPRITE = 0x232,
|
||||
NOUN_MAZE = 0x233,
|
||||
NOUN_TOPIARY_TOADSTOOL = 0x234,
|
||||
NOUN_TOPIARY_GARGOYLE = 0x235,
|
||||
NOUN_TOPIARY_DRAGON = 0x236,
|
||||
NOUN_GUARDIAN = 0x237,
|
||||
NOUN_BUTTERFLY_KING = 0x238,
|
||||
NOUN_ROBE = 0x239,
|
||||
NOUN_CEDAR_CHEST = 0x23A,
|
||||
NOUN_DRAGONSPHERE2 = 0x23B,
|
||||
NOUN_PATH_TO_HIGHTOWER2 = 0x23C,
|
||||
NOUN_CALIPH = 0x23D
|
||||
};
|
||||
|
||||
class SceneFactory {
|
||||
public:
|
||||
static SceneLogic *createScene(MADSEngine *vm);
|
||||
};
|
||||
|
||||
/**
|
||||
* Specialized base class for Dragonsphere game scenes
|
||||
*/
|
||||
class DragonsphereScene : public SceneLogic {
|
||||
protected:
|
||||
DragonsphereGlobals &_globals;
|
||||
GameDragonsphere &_game;
|
||||
MADSAction &_action;
|
||||
|
||||
/**
|
||||
* Forms an animation resource name
|
||||
*/
|
||||
Common::Path formAnimName(char sepChar, int suffixNum);
|
||||
|
||||
/**
|
||||
* Plays appropriate sound for entering varous rooms
|
||||
*/
|
||||
void lowRoomsEntrySound();
|
||||
public:
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
DragonsphereScene(MADSEngine *vm);
|
||||
|
||||
void sub7178C();
|
||||
};
|
||||
|
||||
class SceneInfoDragonsphere : public SceneInfo {
|
||||
friend class SceneInfo;
|
||||
protected:
|
||||
void loadCodes(BaseSurface &depthSurface, int variant) override;
|
||||
|
||||
void loadCodes(BaseSurface &depthSurface, Common::SeekableReadStream *stream) override;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
SceneInfoDragonsphere(MADSEngine *vm) : SceneInfo(vm) {}
|
||||
};
|
||||
|
||||
// TODO: Temporary, remove once implemented properly
|
||||
class DummyScene : public DragonsphereScene {
|
||||
public:
|
||||
DummyScene(MADSEngine *vm) : DragonsphereScene(vm) {
|
||||
warning("Unimplemented scene");
|
||||
}
|
||||
|
||||
void setup() override {}
|
||||
void enter() override {}
|
||||
void actions() override {}
|
||||
};
|
||||
|
||||
} // End of namespace Dragonsphere
|
||||
|
||||
} // End of namespace MADS
|
||||
|
||||
#endif /* MADS_DRAGONSPHERE_SCENES_H */
|
||||
|
||||
#endif
|
||||
3695
engines/mads/dragonsphere/dragonsphere_scenes1.cpp
Normal file
3695
engines/mads/dragonsphere/dragonsphere_scenes1.cpp
Normal file
File diff suppressed because it is too large
Load Diff
188
engines/mads/dragonsphere/dragonsphere_scenes1.h
Normal file
188
engines/mads/dragonsphere/dragonsphere_scenes1.h
Normal file
@@ -0,0 +1,188 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef ENABLE_MADSV2
|
||||
|
||||
#ifndef MADS_DRAGON_SCENES1_H
|
||||
#define MADS_DRAGON_SCENES1_H
|
||||
|
||||
#include "common/serializer.h"
|
||||
#include "mads/dragonsphere/dragonsphere_scenes.h"
|
||||
|
||||
namespace MADS {
|
||||
|
||||
namespace Dragonsphere {
|
||||
|
||||
class Scene1xx : public DragonsphereScene {
|
||||
protected:
|
||||
/**
|
||||
* Plays an appropriate sound when entering a scene
|
||||
*/
|
||||
void sceneEntrySound();
|
||||
|
||||
/**
|
||||
*Sets the AA file to use for the scene
|
||||
*/
|
||||
void setAAName();
|
||||
|
||||
/**
|
||||
* Updates the prefix used for getting player sprites for the scene
|
||||
*/
|
||||
void setPlayerSpritesPrefix();
|
||||
public:
|
||||
Scene1xx(MADSEngine *vm) : DragonsphereScene(vm) {}
|
||||
};
|
||||
|
||||
class Scene101 : public Scene1xx {
|
||||
public:
|
||||
Scene101(MADSEngine *vm);
|
||||
void synchronize(Common::Serializer &s) override;
|
||||
|
||||
void setup() override;
|
||||
void enter() override;
|
||||
void step() override;
|
||||
void preActions() override;
|
||||
void actions() override;
|
||||
};
|
||||
|
||||
class Scene102 : public Scene1xx {
|
||||
private:
|
||||
int _diaryHotspotIdx1;
|
||||
int _diaryHotspotIdx2;
|
||||
int _diaryFrame;
|
||||
int _animRunning;
|
||||
|
||||
public:
|
||||
Scene102(MADSEngine *vm);
|
||||
void synchronize(Common::Serializer &s) override;
|
||||
|
||||
void setup() override;
|
||||
void enter() override;
|
||||
void step() override;
|
||||
void preActions() override;
|
||||
void actions() override;
|
||||
};
|
||||
|
||||
class Scene103 : public Scene1xx {
|
||||
public:
|
||||
Scene103(MADSEngine *vm);
|
||||
void synchronize(Common::Serializer &s) override;
|
||||
|
||||
void setup() override;
|
||||
void enter() override;
|
||||
void step() override;
|
||||
void preActions() override;
|
||||
void actions() override;
|
||||
};
|
||||
|
||||
class Scene104 : public Scene1xx {
|
||||
private:
|
||||
bool _anim0ActvFl;
|
||||
bool _anim1ActvFl;
|
||||
bool _anim2ActvFl;
|
||||
bool _anim3ActvFl;
|
||||
bool _anim4ActvFl;
|
||||
bool _anim5ActvFl;
|
||||
bool _anim6ActvFl;
|
||||
bool _activateTimerFl;
|
||||
bool _wasBearFl;
|
||||
bool _amuletWorksFl;
|
||||
bool _pidDrawnSword;
|
||||
int _animationRunning;
|
||||
int _deathTimer;
|
||||
int _deathFrame;
|
||||
int _doorwayHotspotId;
|
||||
|
||||
int _kingStatus;
|
||||
int _kingFrame;
|
||||
int _kingCount;
|
||||
int _queenStatus;
|
||||
int _queenFrame;
|
||||
int _queenCount;
|
||||
int _pidStatus;
|
||||
int _pidFrame;
|
||||
int _pidCount;
|
||||
int _macStatus;
|
||||
int _macFrame;
|
||||
int _macCount;
|
||||
int _twinklesStatus;
|
||||
int _twinklesFrame;
|
||||
int _twinklesCount;
|
||||
int _tapestryFrame;
|
||||
|
||||
int32 _clock;
|
||||
|
||||
void handleFinalConversation();
|
||||
void handleKingAnimation();
|
||||
void handleMacAnimation1();
|
||||
void handleMacAnimation2();
|
||||
void handleQueenAnimation();
|
||||
void handleTwinklesAnimation();
|
||||
void handleDeathAnimation();
|
||||
void handlePidAnimation();
|
||||
|
||||
public:
|
||||
Scene104(MADSEngine *vm);
|
||||
void synchronize(Common::Serializer &s) override;
|
||||
|
||||
void setup() override;
|
||||
void enter() override;
|
||||
void step() override;
|
||||
void preActions() override;
|
||||
void actions() override;
|
||||
};
|
||||
|
||||
class Scene105 : public Scene1xx {
|
||||
private:
|
||||
bool _maidTalkingFl;
|
||||
bool _sitUpFl;
|
||||
bool _goodNumberFl;
|
||||
|
||||
int _maidFrame;
|
||||
int _maidHotspotId1;
|
||||
int _maidHotspotId2;
|
||||
int _newStatus;
|
||||
int _previousStatus;
|
||||
int _bucketHotspotId;
|
||||
int _boneHotspotId;
|
||||
int _gobletHotspotId;
|
||||
|
||||
void setRandomStatus();
|
||||
void setRandomWipebrow();
|
||||
void handleConversation();
|
||||
|
||||
public:
|
||||
Scene105(MADSEngine *vm);
|
||||
void synchronize(Common::Serializer &s) override;
|
||||
|
||||
void setup() override;
|
||||
void enter() override;
|
||||
void step() override;
|
||||
void preActions() override;
|
||||
void actions() override;
|
||||
};
|
||||
|
||||
} // End of namespace Dragonsphere
|
||||
} // End of namespace MADS
|
||||
|
||||
#endif /* MADS_DRAGON_SCENES1_H */
|
||||
|
||||
#endif
|
||||
165
engines/mads/dragonsphere/game_dragonsphere.cpp
Normal file
165
engines/mads/dragonsphere/game_dragonsphere.cpp
Normal file
@@ -0,0 +1,165 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef ENABLE_MADSV2
|
||||
|
||||
#include "common/config-manager.h"
|
||||
#include "mads/mads.h"
|
||||
#include "mads/game.h"
|
||||
#include "mads/screen.h"
|
||||
#include "mads/msurface.h"
|
||||
#include "mads/dragonsphere/game_dragonsphere.h"
|
||||
//#include "mads/nebular/dialogs_nebular.h"
|
||||
#include "mads/dragonsphere/globals_dragonsphere.h"
|
||||
#include "mads/dragonsphere/dragonsphere_scenes.h"
|
||||
|
||||
namespace MADS {
|
||||
|
||||
namespace Dragonsphere {
|
||||
|
||||
GameDragonsphere::GameDragonsphere(MADSEngine *vm)
|
||||
: Game(vm) {
|
||||
_surface = new MSurface(MADS_SCREEN_WIDTH, MADS_SCENE_HEIGHT);
|
||||
_storyMode = STORYMODE_NAUGHTY;
|
||||
}
|
||||
|
||||
void GameDragonsphere::startGame() {
|
||||
_scene._priorSceneId = 0;
|
||||
_scene._currentSceneId = -1;
|
||||
_scene._nextSceneId = 101;
|
||||
|
||||
initializeGlobals();
|
||||
}
|
||||
|
||||
void GameDragonsphere::initializeGlobals() {
|
||||
//int count, count2;
|
||||
//int bad;
|
||||
|
||||
_globals.reset();
|
||||
//_globals[kTalkInanimateCount] = 8;
|
||||
|
||||
/* Section #1 variables */
|
||||
// TODO
|
||||
|
||||
/* Section #2 variables */
|
||||
// TODO
|
||||
|
||||
/* Section #3 variables */
|
||||
// TODO
|
||||
|
||||
/* Section #4 variables */
|
||||
// TODO
|
||||
|
||||
/* Section #5 variables */
|
||||
// TODO
|
||||
|
||||
/* Section #6 variables */
|
||||
// TODO
|
||||
|
||||
/* Section #9 variables */
|
||||
// TODO
|
||||
|
||||
_player._facing = FACING_NORTH;
|
||||
_player._turnToFacing = FACING_NORTH;
|
||||
|
||||
//Player::preloadSequences("RXM", 1);
|
||||
//Player::preloadSequences("ROX", 1);
|
||||
}
|
||||
|
||||
void GameDragonsphere::setSectionHandler() {
|
||||
delete _sectionHandler;
|
||||
|
||||
switch (_sectionNumber) {
|
||||
case 1:
|
||||
_sectionHandler = new Section1Handler(_vm);
|
||||
break;
|
||||
case 2:
|
||||
_sectionHandler = new Section2Handler(_vm);
|
||||
break;
|
||||
case 3:
|
||||
_sectionHandler = new Section3Handler(_vm);
|
||||
break;
|
||||
case 4:
|
||||
_sectionHandler = new Section4Handler(_vm);
|
||||
break;
|
||||
case 5:
|
||||
_sectionHandler = new Section5Handler(_vm);
|
||||
break;
|
||||
case 6:
|
||||
_sectionHandler = new Section6Handler(_vm);
|
||||
break;
|
||||
case 7:
|
||||
_sectionHandler = new Section7Handler(_vm);
|
||||
break;
|
||||
case 8:
|
||||
_sectionHandler = new Section8Handler(_vm);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void GameDragonsphere::checkShowDialog() {
|
||||
// TODO: Copied from Nebular
|
||||
if (_vm->_dialogs->_pendingDialog && _player._stepEnabled && !_globals[5]) {
|
||||
_player.releasePlayerSprites();
|
||||
_vm->_dialogs->showDialog();
|
||||
_vm->_dialogs->_pendingDialog = DIALOG_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
void GameDragonsphere::doObjectAction() {
|
||||
// TODO: Copied from Nebular
|
||||
//Scene &scene = _scene;
|
||||
MADSAction &action = _scene._action;
|
||||
//Dialogs &dialogs = *_vm->_dialogs;
|
||||
//int id;
|
||||
|
||||
action._inProgress = false;
|
||||
}
|
||||
|
||||
void GameDragonsphere::unhandledAction() {
|
||||
// TODO
|
||||
}
|
||||
|
||||
void GameDragonsphere::step() {
|
||||
if (_player._visible && _player._stepEnabled && !_player._moving &&
|
||||
(_player._facing == _player._turnToFacing)) {
|
||||
|
||||
// TODO
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void GameDragonsphere::synchronize(Common::Serializer &s, bool phase1) {
|
||||
Game::synchronize(s, phase1);
|
||||
|
||||
// TODO: Copied from Nebular
|
||||
if (!phase1) {
|
||||
_globals.synchronize(s);
|
||||
}
|
||||
}
|
||||
|
||||
} // End of namespace Dragonsphere
|
||||
|
||||
} // End of namespace MADS
|
||||
|
||||
#endif
|
||||
144
engines/mads/dragonsphere/game_dragonsphere.h
Normal file
144
engines/mads/dragonsphere/game_dragonsphere.h
Normal file
@@ -0,0 +1,144 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef ENABLE_MADSV2
|
||||
|
||||
#ifndef MADS_GAME_DRAGONSPHERE_H
|
||||
#define MADS_GAME_DRAGONSPHERE_H
|
||||
|
||||
#include "mads/game.h"
|
||||
#include "mads/globals.h"
|
||||
#include "mads/dragonsphere/globals_dragonsphere.h"
|
||||
|
||||
namespace MADS {
|
||||
|
||||
namespace Dragonsphere {
|
||||
|
||||
// TODO: Adapt for Dragonsphere's difficulty setting
|
||||
enum StoryMode { STORYMODE_NAUGHTY = 1, STORYMODE_NICE = 2 };
|
||||
|
||||
enum InventoryObject {
|
||||
OBJ_NONE = -1,
|
||||
OBJ_SIGNET_RING = 0,
|
||||
OBJ_BIRD_FIGURINE = 1,
|
||||
OBJ_BIRDCALL = 2,
|
||||
OBJ_SHIELDSTONE = 3,
|
||||
OBJ_SWORD = 4,
|
||||
OBJ_GOBLET = 5,
|
||||
OBJ_BONE = 6,
|
||||
OBJ_FRUIT = 7,
|
||||
OBJ_DOLL = 8,
|
||||
OBJ_POLYSTONE = 9,
|
||||
OBJ_RED_STONE = 10,
|
||||
OBJ_YELLOW_STONE = 11,
|
||||
OBJ_BLUE_STONE = 12,
|
||||
OBJ_KEY_CROWN = 13,
|
||||
OBJ_DATES = 14,
|
||||
OBJ_STATUE = 15,
|
||||
OBJ_FLIES = 16,
|
||||
OBJ_SOUL_EGG = 17,
|
||||
OBJ_MAGIC_BELT = 18,
|
||||
OBJ_AMULET = 19,
|
||||
OBJ_MUD = 20,
|
||||
OBJ_FEATHERS = 21,
|
||||
OBJ_TORCH = 22,
|
||||
OBJ_FLASK = 23,
|
||||
OBJ_FLASK_OF_ACID = 24,
|
||||
OBJ_ROPE = 25,
|
||||
OBJ_VORTEX_STONE = 26,
|
||||
OBJ_DEAD_RAT = 27,
|
||||
OBJ_MAP = 28,
|
||||
OBJ_CRYSTAL_BALL = 29,
|
||||
OBJ_BLACK_SPHERE = 30,
|
||||
OBJ_SOPORIFIC = 31,
|
||||
OBJ_SHIFTER_RING = 32,
|
||||
OBJ_SPIRIT_BUNDLE = 33,
|
||||
OBJ_PARTIAL_BUNDLE = 34,
|
||||
OBJ_RATSICLE = 35,
|
||||
OBJ_TENTACLE_PARTS = 36,
|
||||
OBJ_TELEPORT_DOOR = 37,
|
||||
OBJ_RARE_COIN = 38,
|
||||
OBJ_CRYSTAL_FLOWER = 39,
|
||||
OBJ_DIAMOND_DUST = 40,
|
||||
OBJ_RUBY_RING = 41,
|
||||
OBJ_GOLD_NUGGET = 42,
|
||||
OBJ_MAGIC_MUSIC_BOX = 43,
|
||||
OBJ_EMERALD = 44,
|
||||
OBJ_PARCHMENT = 45,
|
||||
OBJ_GAME = 46,
|
||||
OBJ_GAME2 = 47,
|
||||
OBJ_NEW_BUNDLE = 48
|
||||
};
|
||||
|
||||
class GameDragonsphere : public Game {
|
||||
friend class Game;
|
||||
protected:
|
||||
GameDragonsphere(MADSEngine *vm);
|
||||
|
||||
void startGame() override;
|
||||
|
||||
void initializeGlobals() override;
|
||||
|
||||
void setSectionHandler() override;
|
||||
|
||||
void checkShowDialog() override;
|
||||
public:
|
||||
DragonsphereGlobals _globals;
|
||||
StoryMode _storyMode;
|
||||
|
||||
Globals &globals() override { return _globals; }
|
||||
|
||||
void doObjectAction() override;
|
||||
|
||||
void unhandledAction() override;
|
||||
|
||||
void step() override;
|
||||
|
||||
void synchronize(Common::Serializer &s, bool phase1) override;
|
||||
};
|
||||
|
||||
|
||||
class Section1Handler : public SectionHandler {
|
||||
public:
|
||||
Section1Handler(MADSEngine *vm) : SectionHandler(vm) {}
|
||||
|
||||
// TODO: Properly implement handler methods
|
||||
void preLoadSection() override {}
|
||||
void sectionPtr2() override {}
|
||||
void postLoadSection() override {}
|
||||
};
|
||||
|
||||
// TODO: Properly implement handler classes
|
||||
typedef Section1Handler Section2Handler;
|
||||
typedef Section1Handler Section3Handler;
|
||||
typedef Section1Handler Section4Handler;
|
||||
typedef Section1Handler Section5Handler;
|
||||
typedef Section1Handler Section6Handler;
|
||||
typedef Section1Handler Section7Handler;
|
||||
typedef Section1Handler Section8Handler;
|
||||
|
||||
} // End of namespace Dragonsphere
|
||||
|
||||
} // End of namespace MADS
|
||||
|
||||
#endif /* MADS_GAME_DRAGONSPHERE_H */
|
||||
|
||||
#endif
|
||||
52
engines/mads/dragonsphere/globals_dragonsphere.cpp
Normal file
52
engines/mads/dragonsphere/globals_dragonsphere.cpp
Normal file
@@ -0,0 +1,52 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef ENABLE_MADSV2
|
||||
|
||||
#include "mads/dragonsphere/globals_dragonsphere.h"
|
||||
|
||||
namespace MADS {
|
||||
|
||||
namespace Dragonsphere {
|
||||
|
||||
DragonsphereGlobals::DragonsphereGlobals()
|
||||
: Globals() {
|
||||
// Initialize lists
|
||||
resize(140);
|
||||
_spriteIndexes.resize(30);
|
||||
_sequenceIndexes.resize(30);
|
||||
_animationIndexes.resize(30);
|
||||
}
|
||||
|
||||
void DragonsphereGlobals::synchronize(Common::Serializer &s) {
|
||||
Globals::synchronize(s);
|
||||
|
||||
_spriteIndexes.synchronize(s);
|
||||
_sequenceIndexes.synchronize(s);
|
||||
_animationIndexes.synchronize(s);
|
||||
}
|
||||
|
||||
|
||||
} // End of namespace Dragonsphere
|
||||
|
||||
} // End of namespace MADS
|
||||
|
||||
#endif
|
||||
185
engines/mads/dragonsphere/globals_dragonsphere.h
Normal file
185
engines/mads/dragonsphere/globals_dragonsphere.h
Normal file
@@ -0,0 +1,185 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef ENABLE_MADSV2
|
||||
|
||||
#ifndef MADS_GLOBALS_DRAGONSPHERE_H
|
||||
#define MADS_GLOBALS_DRAGONSPHERE_H
|
||||
|
||||
#include "mads/game.h"
|
||||
#include "mads/resources.h"
|
||||
|
||||
namespace MADS {
|
||||
|
||||
namespace Dragonsphere {
|
||||
|
||||
enum GlobalId {
|
||||
// Global variables
|
||||
|
||||
kWalkerTiming = 0,
|
||||
kWalkerTiming2 = 1,
|
||||
kPlayerPersona = 10,
|
||||
kPlayerScore = 11,
|
||||
kDragonHighScene = 12,
|
||||
kDragonMyScene = 13,
|
||||
kNoLoadWalker = 14,
|
||||
kPlayerScoreFlags = 15,
|
||||
kSorcerorDefeated = 16,
|
||||
kPreRoom = 17,
|
||||
kPerformDisplacements = 18,
|
||||
|
||||
kKingStatus = 20,
|
||||
kWardStatus = 21,
|
||||
kTalkedToSoptus = 22,
|
||||
kTalkedToShifter = 23,
|
||||
kAmuletStatus = 24,
|
||||
kBooksStatus = 25,
|
||||
kTapestryStatus = 26,
|
||||
kTalkedToMerchant = 27,
|
||||
kCanViewCrownHole = 28,
|
||||
kTalkedToStatus = 29,
|
||||
|
||||
kGuardPidStatus = 30,
|
||||
kCrawledOutOfBed101 = 31,
|
||||
kStatueIsOnStairway114 = 32,
|
||||
kDogIsAsleep = 33,
|
||||
kCrystalBallDead = 34,
|
||||
kThrewBone = 35,
|
||||
kWoodenDoorOpen = 36,
|
||||
kKingIsInStairwell = 37,
|
||||
kLlanieStatus = 38,
|
||||
kNoTalkToGuard = 39,
|
||||
|
||||
kObjectGiven201 = 40,
|
||||
kKingGotStabbed = 41,
|
||||
kGivenObjectBefore = 42,
|
||||
kGuardsAreAsleep = 43,
|
||||
kDomeUp = 44,
|
||||
kTalkedToWise = 45,
|
||||
kDollGiven = 46,
|
||||
kResetConv = 47,
|
||||
kTalkedToGreta = 48,
|
||||
kSlimeHealed = 49,
|
||||
|
||||
kDanceMusicOn = 50,
|
||||
kPlayerIsSeal = 51,
|
||||
kVinesHavePlayer = 52,
|
||||
kEndOfGame = 53,
|
||||
kResetConv2 = 54,
|
||||
kInvokedFrom111 = 55,
|
||||
|
||||
kSaveWinsInDesert = 60,
|
||||
kBubblesUpIn301 = 61,
|
||||
kBubbleWontAttack = 62,
|
||||
kPidLookedAtDoll = 63,
|
||||
|
||||
kOasis = 80,
|
||||
kFireHoles = 81,
|
||||
kDesertRoom = 82,
|
||||
kFromDirection = 83,
|
||||
kDesertCounter = 84,
|
||||
kMoveDirection409 = 85,
|
||||
kHealVerbsVisible = 86,
|
||||
kGrapesHaveGrown = 87,
|
||||
kPidTalkShamon = 88,
|
||||
kPidJustDied = 89,
|
||||
|
||||
kGrapesAreDead = 90,
|
||||
kRocIsChewingDates = 91,
|
||||
kWinsInDesert = 92,
|
||||
kWinsTillPrize = 93,
|
||||
kPidHasBeenHealedSop = 94,
|
||||
kGamePoints = 95,
|
||||
kDancePoints = 96,
|
||||
kCluePoints = 97,
|
||||
kPrizesOwedToPlayer = 98,
|
||||
kObjectFlags = 99,
|
||||
|
||||
kWaterfallDiverted = 100,
|
||||
kShakStatus = 101,
|
||||
kMaxGridValue = 102,
|
||||
kMoveDirection510 = 103,
|
||||
kShak506Angry = 104,
|
||||
kMonsterIsDead = 105,
|
||||
kDoneTalkingLani502 = 106,
|
||||
kFoundLani504 = 107,
|
||||
kSaidUseSwordShak = 108,
|
||||
kGobletFilledSoporific = 109,
|
||||
|
||||
kBeenIn504AsPid = 110,
|
||||
kSeenLaniDeadFirstTime = 111,
|
||||
kSaidPoemIn504 = 112,
|
||||
kTriedToHealLlanie504 = 113,
|
||||
kPutBundleOnLlanie504 = 114,
|
||||
kMake504Empty = 115,
|
||||
kHasTakenMud = 116,
|
||||
kPlatformClicked606 = 117,
|
||||
kHadSpiritBundle = 118,
|
||||
|
||||
kMudIsInEye603 = 120,
|
||||
kRopeIsAlive = 121,
|
||||
kRatCageIsOpen = 122,
|
||||
kFlaskOnPlate = 123,
|
||||
kFluidIsDripping = 124,
|
||||
kHoleIsIn607 = 125,
|
||||
kRopeIsHangingIn607 = 126,
|
||||
kObjectIsInFreezer605 = 127,
|
||||
kObjectImitated = 128,
|
||||
kHasRed = 129,
|
||||
|
||||
kHasYellow = 130,
|
||||
kHasBlue = 131,
|
||||
kWizardDead = 132,
|
||||
kVineWillGrab = 133,
|
||||
kFloorIsCool = 134,
|
||||
kRatMelted = 135,
|
||||
kDoorIsCool = 136,
|
||||
kUsedElevator = 137,
|
||||
kBeenOnTopFloor = 138,
|
||||
kTorchIsIn609 = 139,
|
||||
|
||||
kGridPosition = 140
|
||||
};
|
||||
|
||||
class DragonsphereGlobals : public Globals {
|
||||
public:
|
||||
SynchronizedList _spriteIndexes;
|
||||
SynchronizedList _sequenceIndexes;
|
||||
SynchronizedList _animationIndexes;
|
||||
public:
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
DragonsphereGlobals();
|
||||
|
||||
/**
|
||||
* Synchronize the globals data
|
||||
*/
|
||||
virtual void synchronize(Common::Serializer &s);
|
||||
};
|
||||
|
||||
} // End of namespace Dragonsphere
|
||||
|
||||
} // End of namespace MADS
|
||||
|
||||
#endif /* MADS_GLOBALS_DRAGONSPHERE_H */
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user