From 37d21cab59f6ad21a353562106cb2b3e4aa3d746 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Thu, 24 Apr 2008 13:27:05 +0000 Subject: Implemented special item string selection for french version of Kyra3. svn-id: r31689 --- engines/kyra/items_v3.cpp | 33 +++++++++++++++++++++++++++------ engines/kyra/kyra_v3.h | 10 ++++++++++ engines/kyra/staticres.cpp | 26 +++++++++++++++++++++++++- 3 files changed, 62 insertions(+), 7 deletions(-) (limited to 'engines') diff --git a/engines/kyra/items_v3.cpp b/engines/kyra/items_v3.cpp index 822caa2e5b..23162514c2 100644 --- a/engines/kyra/items_v3.cpp +++ b/engines/kyra/items_v3.cpp @@ -296,8 +296,8 @@ bool KyraEngine_v3::processItemDrop(uint16 sceneId, uint16 item, int x, int y, i if (!unk1 && unk2) { int itemStr = 1; - //if (_lang == 1) - // itemStr = getItemCommandStringDrop(item); + if (_lang == 1) + itemStr = getItemCommandStringDrop(item); updateItemCommand(item, itemStr, 0xFF); } @@ -412,8 +412,8 @@ void KyraEngine_v3::exchangeMouseItem(int itemPos, int runScript) { setMouseCursor(_itemInHand); int str2 = 0; - //if (_lang == 1) - // str2 = getItemCommandStringPickUp(itemId); + if (_lang == 1) + str2 = getItemCommandStringPickUp(itemId); updateItemCommand(itemId, str2, 0xFF); _screen->showMouse(); @@ -440,8 +440,8 @@ bool KyraEngine_v3::pickUpItem(int x, int y, int runScript) { setMouseCursor(itemId); int itemString = 0; - //if (_lang == 1) - // itemString = getItemCommandStringPickUp(itemId); + if (_lang == 1) + itemString = getItemCommandStringPickUp(itemId); updateItemCommand(itemId, itemString, 0xFF); _itemInHand = itemId; @@ -543,5 +543,26 @@ bool KyraEngine_v3::itemListMagic(int handItem, int itemSlot) { return false; } +int KyraEngine_v3::getItemCommandStringDrop(uint16 item) { + debugC(9, kDebugLevelMain, "KyraEngine_v3::getItemCommandStringDrop(%u)", item); + assert(item < _itemStringMapSize); + int stringId = _itemStringMap[item]; + return _itemStringDrop[stringId]; +} + +int KyraEngine_v3::getItemCommandStringPickUp(uint16 item) { + debugC(9, kDebugLevelMain, "KyraEngine_v3::getItemCommandStringPickUp(%u)", item); + assert(item < _itemStringMapSize); + int stringId = _itemStringMap[item]; + return _itemStringPickUp[stringId]; +} + +int KyraEngine_v3::getItemCommandStringInv(uint16 item) { + debugC(9, kDebugLevelMain, "KyraEngine_v3::getItemCommandStringInv(%u)", item); + assert(item < _itemStringMapSize); + int stringId = _itemStringMap[item]; + return _itemStringInv[stringId]; +} + } // end of namespace Kyra diff --git a/engines/kyra/kyra_v3.h b/engines/kyra/kyra_v3.h index 4e8a832118..9322bdf48e 100644 --- a/engines/kyra/kyra_v3.h +++ b/engines/kyra/kyra_v3.h @@ -327,6 +327,16 @@ private: static const uint8 _itemMagicTable[]; bool itemListMagic(int handItem, int itemSlot); + static const uint8 _itemStringMap[]; + static const uint _itemStringMapSize; + static const uint8 _itemStringPickUp[]; + static const uint8 _itemStringDrop[]; + static const uint8 _itemStringInv[]; + + int getItemCommandStringPickUp(uint16 item); + int getItemCommandStringDrop(uint16 item); + int getItemCommandStringInv(uint16 item); + // -> hand item void setMouseCursor(uint16 item); diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp index 1bbafd481b..7b66253317 100644 --- a/engines/kyra/staticres.cpp +++ b/engines/kyra/staticres.cpp @@ -2350,7 +2350,31 @@ const uint8 KyraEngine_v3::_itemMagicTable[] = { 0xFF, 0xFF, 0xFF, 0xFF }; -} // End of namespace Kyra +const uint8 KyraEngine_v3::_itemStringMap[] = { + 1, 0, 2, 0, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 0, + 0, 0, 0, 0, 0, 0, 3, 1, + 2, 0, 2, 2, 0, 0, 0, 0, + 0, 0, 1, 2, 0, 2, 0, 2, + 0, 0, 2, 0, 0, 0, 0, 1, + 1, 0, 2, 2, 0, 0, 2, 0, + 0, 2, 0, 2, 2, 0, 0, 2, + 0, 0, 0, 0, 2, 0, 0, 2 +}; +const uint KyraEngine_v3::_itemStringMapSize = ARRAYSIZE(KyraEngine_v3::_itemStringMap); +const uint8 KyraEngine_v3::_itemStringPickUp[] = { + 0x4, 0x7, 0x0, 0xA +}; + +const uint8 KyraEngine_v3::_itemStringDrop[] = { + 0x5, 0x8, 0x1, 0xB +}; + +const uint8 KyraEngine_v3::_itemStringInv[] = { + 0x6, 0x9, 0x2, 0xC +}; + +} // End of namespace Kyra -- cgit v1.2.3