aboutsummaryrefslogtreecommitdiff
path: root/engines/neverhood/staticdata.cpp
diff options
context:
space:
mode:
authorjohndoe1232011-07-14 13:51:45 +0000
committerWillem Jan Palenstijn2013-05-08 20:38:48 +0200
commitdb9e45706caa2a4d2eddcb0c63532b3f6429a73e (patch)
tree350334eaf22ec48fb9f16025458776f820f41009 /engines/neverhood/staticdata.cpp
parent78365121ea9931eb5973c2dcc0cae278fcc6a58d (diff)
downloadscummvm-rg350-db9e45706caa2a4d2eddcb0c63532b3f6429a73e.tar.gz
scummvm-rg350-db9e45706caa2a4d2eddcb0c63532b3f6429a73e.tar.bz2
scummvm-rg350-db9e45706caa2a4d2eddcb0c63532b3f6429a73e.zip
NEVERHOOD: More work on Scene1002
- Implement NavigationMouse and NavigationLists - Some renaming
Diffstat (limited to 'engines/neverhood/staticdata.cpp')
-rw-r--r--engines/neverhood/staticdata.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/engines/neverhood/staticdata.cpp b/engines/neverhood/staticdata.cpp
index b9ac232707..42af4975ea 100644
--- a/engines/neverhood/staticdata.cpp
+++ b/engines/neverhood/staticdata.cpp
@@ -104,6 +104,27 @@ void StaticData::load(const char *filename) {
_hitRectLists[id] = hitRectList;
}
+ // Load navigation lists
+ uint32 navigationListsCount = fd.readUint32LE();
+ debug("navigationListsCount: %d", navigationListsCount);
+ for (uint32 i = 0; i < navigationListsCount; i++) {
+ NavigationList *navigationList = new NavigationList();
+ uint32 id = fd.readUint32LE();
+ uint32 itemCount = fd.readUint32LE();
+ for (uint32 itemIndex = 0; itemIndex < itemCount; itemIndex++) {
+ NavigationItem navigationItem;
+ navigationItem.fileHash = fd.readUint32LE();
+ navigationItem.leftSmackerFileHash = fd.readUint32LE();
+ navigationItem.rightSmackerFileHash = fd.readUint32LE();
+ navigationItem.middleSmackerFileHash = fd.readUint32LE();
+ navigationItem.interactive = fd.readByte();
+ navigationItem.middleFlag = fd.readByte();
+ navigationItem.mouseCursorFileHash = fd.readUint32LE();
+ navigationList->push_back(navigationItem);
+ }
+ _navigationLists[id] = navigationList;
+ }
+
}
HitRectList *StaticData::getHitRectList(uint32 id) {
@@ -124,4 +145,10 @@ MessageList *StaticData::getMessageList(uint32 id) {
return _messageLists[id];
}
+NavigationList *StaticData::getNavigationList(uint32 id) {
+ if (!_navigationLists[id])
+ error("StaticData::getNavigationList() NavigationList with id %08X not found", id);
+ return _navigationLists[id];
+}
+
} // End of namespace Neverhood