aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/scene.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mads/scene.cpp')
-rw-r--r--engines/mads/scene.cpp27
1 files changed, 18 insertions, 9 deletions
diff --git a/engines/mads/scene.cpp b/engines/mads/scene.cpp
index 7bbb4e98ae..138cab500a 100644
--- a/engines/mads/scene.cpp
+++ b/engines/mads/scene.cpp
@@ -33,6 +33,8 @@ Scene::Scene(MADSEngine *vm): _vm(vm), _spriteSlots(vm) {
_currentSceneId = 0;
_vocabBuffer = nullptr;
_sceneLogic = nullptr;
+ _sceneInfo = nullptr;
+ _scenePalette = nullptr;
_verbList.push_back(VerbInit(VERB_LOOK, 2, 0));
_verbList.push_back(VerbInit(VERB_TAKE, 2, 0));
@@ -50,6 +52,7 @@ Scene::Scene(MADSEngine *vm): _vm(vm), _spriteSlots(vm) {
Scene::~Scene() {
delete[] _vocabBuffer;
delete _sceneLogic;
+ delete _sceneInfo;
}
void Scene::clearDynamicHotspots() {
@@ -84,11 +87,11 @@ int Scene::activeVocabIndexOf(int vocabId) {
}
void Scene::clearSequenceList() {
- _sequenceList.clear();
+ _sequences.clear();
}
void Scene::clearMessageList() {
- _messageList.clear();
+ _messages.clear();
_talkFont = "*FONTCONV.FF";
_textSpacing = -1;
}
@@ -114,16 +117,22 @@ void Scene::loadScene(int sceneId, const Common::String &prefix, bool palFlag) {
if (palFlag)
_vm->_palette->resetGamePalette(18, 10);
+ _spriteSlots.clear(false);
+ _sequences.clear();
+ _messages.clear();
+ setPalette(_nullPalette);
+ _sceneInfo = SceneInfo::load(_vm, _currentSceneId, _v1, Common::String(), _vm->_game->_v2 ? 17 : 16,
+ _depthSurface, _backgroundSurface);
}
void Scene::loadHotspots() {
File f(Resources::formatName(RESPREFIX_RM, _currentSceneId, ".HH"));
int count = f.readUint16LE();
- _hotspotList.clear();
+ _hotspots.clear();
for (int i = 0; i < count; ++i)
- _hotspotList.push_back(Hotspot(f));
+ _hotspots.push_back(Hotspot(f));
}
void Scene::loadVocab() {
@@ -142,10 +151,10 @@ void Scene::loadVocab() {
}
// Load scene hotspot list vocabs and verbs
- for (uint i = 0; i < _hotspotList.size(); ++i) {
- addActiveVocab(_hotspotList[i]._vocabId);
- if (_hotspotList[i]._verbId)
- addActiveVocab(_hotspotList[i]._verbId);
+ for (uint i = 0; i < _hotspots.size(); ++i) {
+ addActiveVocab(_hotspots[i]._vocabId);
+ if (_hotspots[i]._verbId)
+ addActiveVocab(_hotspots[i]._verbId);
}
loadVocabStrings();
@@ -170,7 +179,7 @@ void Scene::free() {
}
void Scene::setPalette(RGB4 *p) {
- _scenePalette = p;
+// _scenePalette = p;
}
} // End of namespace MADS