aboutsummaryrefslogtreecommitdiff
path: root/devtools
diff options
context:
space:
mode:
authorjohndoe1232011-09-13 12:56:46 +0000
committerWillem Jan Palenstijn2013-05-08 20:39:37 +0200
commit5214284271d0ae050e5f33fe66d0fc0b8cbb94af (patch)
tree6b8e63142bd554b364bad83b69f10792f08c9eb3 /devtools
parent9b151cefc352a8f42c005a7406d4b694aa4a221c (diff)
downloadscummvm-rg350-5214284271d0ae050e5f33fe66d0fc0b8cbb94af.tar.gz
scummvm-rg350-5214284271d0ae050e5f33fe66d0fc0b8cbb94af.tar.bz2
scummvm-rg350-5214284271d0ae050e5f33fe66d0fc0b8cbb94af.zip
NEVERHOOD: Add tables for Scene1302
Diffstat (limited to 'devtools')
-rw-r--r--devtools/create_neverhood/create_neverhood.cpp33
-rw-r--r--devtools/create_neverhood/tables.h57
2 files changed, 89 insertions, 1 deletions
diff --git a/devtools/create_neverhood/create_neverhood.cpp b/devtools/create_neverhood/create_neverhood.cpp
index 1efc6161c4..2d11931f5a 100644
--- a/devtools/create_neverhood/create_neverhood.cpp
+++ b/devtools/create_neverhood/create_neverhood.cpp
@@ -87,6 +87,7 @@ struct HitRect {
uint16 messageNum;
void load(uint32 offset) {
+ printf("Loading HitRect @ %08X...\n", offset);
byte *item = getData(offset);
x1 = READ_LE_UINT16(item + 0);
y1 = READ_LE_UINT16(item + 2);
@@ -116,6 +117,7 @@ struct MessageItem {
MessageItem(uint16 msgNum, uint32 msgParam) : messageNum(msgNum), messageParam(msgParam) {}
void load(uint32 offset) {
+ printf("Loading MessageItem @ %08X...\n", offset);
byte *item = getData(offset);
messageNum = READ_LE_UINT16(item + 0);
messageParam = READ_LE_UINT32(item + 4);
@@ -138,6 +140,7 @@ struct SubRectItem {
uint32 messageListOffset;
void load(uint32 offset) {
+ printf("Loading SubRectItem @ %08X...\n", offset);
byte *item = getData(offset);
x1 = READ_LE_UINT16(item + 0);
y1 = READ_LE_UINT16(item + 2);
@@ -170,6 +173,7 @@ struct RectItem {
std::vector<SubRectItem> subRectItems;
void load(uint32 offset) {
+ printf("Loading RectItem @ %08X...\n", offset);
byte *item = getData(offset);
uint32 subItemOffset;
x1 = READ_LE_UINT16(item + 0);
@@ -213,6 +217,7 @@ struct NavigationItem {
uint32 mouseCursorFileHash;
void load(uint32 offset) {
+ printf("Loading NavigationItem @ %08X...\n", offset);
byte *item = getData(offset);
fileHash = READ_LE_UINT32(item + 0);
leftSmackerFileHash = READ_LE_UINT32(item + 4);
@@ -240,6 +245,7 @@ struct NavigationItem {
};
struct SceneInfo140Item {
+ uint32 id;
uint32 bgFilename1;
uint32 bgFilename2;
uint32 txFilename;
@@ -249,6 +255,7 @@ struct SceneInfo140Item {
void load(uint32 offset) {
byte *item = getData(offset);
+ id = offset;
// Only save the hashes instead of the full names
bgFilename1 = calcHash(getStringP(READ_LE_UINT32(item + 0)));
bgFilename2 = calcHash(getStringP(READ_LE_UINT32(item + 4)));
@@ -259,6 +266,7 @@ struct SceneInfo140Item {
}
void save(FILE *fd) {
+ writeUint32LE(fd, id);
writeUint32LE(fd, bgFilename1);
writeUint32LE(fd, bgFilename2);
writeUint32LE(fd, txFilename);
@@ -353,6 +361,30 @@ public:
add(MessageItem(0x100D, 0x42845B19));
add(MessageItem(0x4805, 1));
return true;
+ // Scene 1302 rings
+ case 0x004B0888:
+ add(MessageItem(0x4800, 218));
+ add(MessageItem(0x100D, 0x4A845A00));
+ add(MessageItem(0x4805, 1));
+ return true;
+ case 0x004B08A0:
+ add(MessageItem(0x4800, 218 + 32));
+ add(MessageItem(0x100D, 0x43807801));
+ return true;
+ case 0x004B08B0:
+ add(MessageItem(0x4800, 218 + 32 + 32));
+ add(MessageItem(0x100D, 0x46C26A01));
+ add(MessageItem(0x4805, 1));
+ return true;
+ case 0x004B08C8:
+ add(MessageItem(0x4800, 218 + 32 + 32 + 32));
+ add(MessageItem(0x100D, 0x468C7B11));
+ return true;
+ case 0x004B08D8:
+ add(MessageItem(0x4800, 218 + 32 + 32 + 32 + 32));
+ add(MessageItem(0x100D, 0x42845B19));
+ add(MessageItem(0x4805, 4));
+ return true;
}
return false;
}
@@ -360,7 +392,6 @@ public:
};
class NavigationList : public StaticDataList<NavigationItem> {
-
};
template<class LISTCLASS>
diff --git a/devtools/create_neverhood/tables.h b/devtools/create_neverhood/tables.h
index 5f54df94ba..7f80b8c633 100644
--- a/devtools/create_neverhood/tables.h
+++ b/devtools/create_neverhood/tables.h
@@ -27,6 +27,8 @@ static const uint32 hitRectListOffsets[] = {
1, 0x004B4138,
// Scene1201
4, 0x004AEBD0,
+ // Scene1302
+ 1, 0x004B0858,
// Scene1705
1, 0x004B69D8,
// Scene2203
@@ -51,6 +53,8 @@ static const uint32 rectListOffsets[] = {
1, 0x004AEDC8,
1, 0x004AEE18,
1, 0x004AED88,
+ // Scene1302
+ 2, 0x004B0A38,
// Scene1401
1, 0x004B6758,
// Scene1402
@@ -78,6 +82,12 @@ static const uint32 rectListOffsets[] = {
// Scene2242
1, 0x004B3DC8,
1, 0x004B3E18,
+ // HallOfRecordsScene
+ 1, 0x004B2BF8,
+ 1, 0x004B2BB8,
+ // Scene2247
+ 1, 0x004B5588,
+ 1, 0x004B55C8,
0, 0
};
@@ -123,6 +133,18 @@ static const uint32 messageListOffsets[] = {
2, 0x004AECD0,
2, 0x004AECE0,
2, 0x004AED38,
+ // Scene1302
+ 4, 0x004B08F0,
+ 3, 0x004B0920,
+ 1, 0x004B0950,
+ 2, 0x004B0940,
+ 1, 0x004B0938,
+ 2, 0x004B0910,
+ 1, 0x004B0968,
+ 2, 0x004B0878,
+ 4, 0x004B0978,
+ 1, 0x004B0870,
+ 1, 0x004B0868,
// Scene1401
1, 0x004B65C8,
1, 0x004B65D0,
@@ -235,10 +257,45 @@ static const uint32 messageListOffsets[] = {
5, 0x004B3D20,
4, 0x004B3CB8,
4, 0x004B3CD8,
+ // HallOfRecordsScene
+ 1, 0x004B2900,
+ 2, 0x004B2910,
+ 1, 0x004B2B70,
+ 1, 0x004B2908,
+ 2, 0x004B2920,
+ 4, 0x004B2978,
+ 4, 0x004B2998,
+ 4, 0x004B29B8,
+ 4, 0x004B29D8,
+ 4, 0x004B29F8,
+ 4, 0x004B2A18,
+ 4, 0x004B2A38,
+ 5, 0x004B2A58,
+ 5, 0x004B2A80,
+ 5, 0x004B2AA8,
+ 5, 0x004B2AD0,
+ 5, 0x004B2AF8,
+ 5, 0x004B2B20,
+ 5, 0x004B2B48,
+ // Scene2247
+ 1, 0x004B5428,
+ 2, 0x004B5438,
+ 1, 0x004B5530,
+ 1, 0x004B5430,
+ 4, 0x004B54A0,
+ 4, 0x004B54C0,
+ 5, 0x004B54E0,
+ 5, 0x004B5508,
0, 0
};
static const uint32 navigationListOffsets[] = {
+ // Module1300
+ 6, 0x004B2718,
+ 2, 0x004B27A8,
+ 2, 0x004B27D8,
+ 2, 0x004B2808,
+ 2, 0x004B2838,
// Module1700
2, 0x004AE8B8,
3, 0x004AE8E8,