diff options
author | johndoe123 | 2011-09-13 12:56:46 +0000 |
---|---|---|
committer | Willem Jan Palenstijn | 2013-05-08 20:39:37 +0200 |
commit | 5214284271d0ae050e5f33fe66d0fc0b8cbb94af (patch) | |
tree | 6b8e63142bd554b364bad83b69f10792f08c9eb3 /devtools/create_neverhood | |
parent | 9b151cefc352a8f42c005a7406d4b694aa4a221c (diff) | |
download | scummvm-rg350-5214284271d0ae050e5f33fe66d0fc0b8cbb94af.tar.gz scummvm-rg350-5214284271d0ae050e5f33fe66d0fc0b8cbb94af.tar.bz2 scummvm-rg350-5214284271d0ae050e5f33fe66d0fc0b8cbb94af.zip |
NEVERHOOD: Add tables for Scene1302
Diffstat (limited to 'devtools/create_neverhood')
-rw-r--r-- | devtools/create_neverhood/create_neverhood.cpp | 33 | ||||
-rw-r--r-- | devtools/create_neverhood/tables.h | 57 |
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, |