diff options
author | Jaromir Wysoglad | 2019-06-20 21:13:18 +0200 |
---|---|---|
committer | Thierry Crozat | 2019-07-28 15:09:14 +0100 |
commit | 4dd72f4ae05c4e0fca7e4f92115f49697736c4ab (patch) | |
tree | 32594ad8f05a22352a405fcc0f06705ea8e95a42 /engines/supernova/rooms.cpp | |
parent | bc8393deafb440d888db7295a75e59448e45ef7f (diff) | |
download | scummvm-rg350-4dd72f4ae05c4e0fca7e4f92115f49697736c4ab.tar.gz scummvm-rg350-4dd72f4ae05c4e0fca7e4f92115f49697736c4ab.tar.bz2 scummvm-rg350-4dd72f4ae05c4e0fca7e4f92115f49697736c4ab.zip |
SUPERNOVA: Divide rooms into 2 files
Diffstat (limited to 'engines/supernova/rooms.cpp')
-rw-r--r-- | engines/supernova/rooms.cpp | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/engines/supernova/rooms.cpp b/engines/supernova/rooms.cpp index e6e7dd79b7..04d8e8df98 100644 --- a/engines/supernova/rooms.cpp +++ b/engines/supernova/rooms.cpp @@ -30,156 +30,6 @@ namespace Supernova { -Room::Room() { - _seen = false; - _fileNumber = 0; - _id = NULLROOM; - _vm = nullptr; - _gm = nullptr; - - for (int i = 0; i < kMaxSection; ++i) - _shown[i] = kShownFalse; - for (int i = 0; i < kMaxDialog; ++i) - _sentenceRemoved[i] = 0; -} - -Room::~Room() { -} - -bool Room::serialize(Common::WriteStream *out) { - if (out->err()) - return false; - - out->writeSint32LE(_id); - for (int i = 0; i < kMaxSection; ++i) - out->writeByte(_shown[i]); - for (int i = 0; i < kMaxDialog ; ++i) - out->writeByte(_sentenceRemoved[i]); - - int numObjects = 0; - while ((numObjects < kMaxObject) && (_objectState[numObjects]._id != INVALIDOBJECT)) - ++numObjects; - out->writeSint32LE(numObjects); - - for (int i = 0; i < numObjects; ++i) { - out->writeSint32LE(_objectState[i]._name); - out->writeSint32LE(_objectState[i]._description); - out->writeByte(_objectState[i]._roomId); - out->writeSint32LE(_objectState[i]._id); - out->writeSint32LE(_objectState[i]._type); - out->writeByte(_objectState[i]._click); - out->writeByte(_objectState[i]._click2); - out->writeByte(_objectState[i]._section); - out->writeSint32LE(_objectState[i]._exitRoom); - out->writeByte(_objectState[i]._direction); - } - - out->writeByte(_seen); - - return !out->err(); -} - -bool Room::deserialize(Common::ReadStream *in, int version) { - if (in->err()) - return false; - - in->readSint32LE(); - - for (int i = 0; i < kMaxSection; ++i) - _shown[i] = in->readByte(); - - // Prior to version 3, _sentenceRemoved was part of _shown (the last two values) - // But on the other hand dialog was not implemented anyway, so we don't even try to - // recover it. - for (int i = 0; i < kMaxDialog ; ++i) - _sentenceRemoved[i] = version < 3 ? 0 : in->readByte(); - - int numObjects = in->readSint32LE(); - for (int i = 0; i < numObjects; ++i) { - _objectState[i]._name = static_cast<StringId>(in->readSint32LE()); - _objectState[i]._description = static_cast<StringId>(in->readSint32LE()); - _objectState[i]._roomId = in->readByte(); - _objectState[i]._id = static_cast<ObjectId>(in->readSint32LE()); - _objectState[i]._type = static_cast<ObjectType>(in->readSint32LE()); - _objectState[i]._click = in->readByte(); - _objectState[i]._click2 = in->readByte(); - _objectState[i]._section = in->readByte(); - _objectState[i]._exitRoom = static_cast<RoomId>(in->readSint32LE()); - _objectState[i]._direction = in->readByte(); - } - - _seen = in->readByte(); - - return !in->err(); -} - -bool Room::hasSeen() { - return _seen; -} -void Room::setRoomSeen(bool seen) { - _seen = seen; -} - -int Room::getFileNumber() const { - return _fileNumber; -} -RoomId Room::getId() const { - return _id; -} - -void Room::setSectionVisible(uint section, bool visible) { - _shown[section] = visible ? kShownTrue : kShownFalse; -} - -bool Room::isSectionVisible(uint index) const { - return _shown[index] == kShownTrue; -} - -void Room::removeSentence(int sentence, int number) { - if (number > 0) - _sentenceRemoved[number - 1] |= (1 << sentence); -} - -void Room::addSentence(int sentence, int number) { - if (number > 0) - _sentenceRemoved[number - 1] &= ~(1 << sentence); -} - -void Room::addAllSentences(int number) { - if (number > 0) - _sentenceRemoved[number - 1] = 0; -} - -bool Room::sentenceRemoved(int sentence, int number) { - if (number <= 0) - return false; - return (_sentenceRemoved[number - 1] & (1 << sentence)); -} - -bool Room::allSentencesRemoved(int maxSentence, int number) { - if (number <= 0) - return false; - for (int i = 0, flag = 1 ; i < maxSentence ; ++i, flag <<= 1) - if (!(_sentenceRemoved[number - 1] & flag)) - return false; - return true; -} - -Object *Room::getObject(uint index) { - return &_objectState[index]; -} - -void Room::animation() { -} - -void Room::onEntrance() { -} - -bool Room::interact(Action verb, Object &obj1, Object &obj2) { - return false; -} - - Intro::Intro(SupernovaEngine *vm, GameManager1 *gm) { _vm = vm; _gm = gm; |