aboutsummaryrefslogtreecommitdiff
path: root/engines/supernova/rooms.cpp
diff options
context:
space:
mode:
authorJaromir Wysoglad2019-06-20 21:13:18 +0200
committerThierry Crozat2019-07-28 15:09:14 +0100
commit4dd72f4ae05c4e0fca7e4f92115f49697736c4ab (patch)
tree32594ad8f05a22352a405fcc0f06705ea8e95a42 /engines/supernova/rooms.cpp
parentbc8393deafb440d888db7295a75e59448e45ef7f (diff)
downloadscummvm-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.cpp150
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;