[Scummvm-cvs-logs] SF.net SVN: scummvm: [29175] scummvm/trunk/engines/kyra
LordHoto at users.sourceforge.net
LordHoto at users.sourceforge.net
Tue Oct 9 06:47:41 CEST 2007
Revision: 29175
http://scummvm.svn.sourceforge.net/scummvm/?rev=29175&view=rev
Author: LordHoto
Date: 2007-10-08 21:47:41 -0700 (Mon, 08 Oct 2007)
Log Message:
-----------
HoF:
- added support for dropping items into scenes
- added const to some static data
- implemented opcode 0x55 o2_setLayerFlag
- fixed a bug in Screen_v2::drawShape
Modified Paths:
--------------
scummvm/trunk/engines/kyra/animator_v2.cpp
scummvm/trunk/engines/kyra/items_v2.cpp
scummvm/trunk/engines/kyra/kyra_v2.cpp
scummvm/trunk/engines/kyra/kyra_v2.h
scummvm/trunk/engines/kyra/scene_v2.cpp
scummvm/trunk/engines/kyra/screen.cpp
scummvm/trunk/engines/kyra/screen_v2.cpp
scummvm/trunk/engines/kyra/script_v2.cpp
scummvm/trunk/engines/kyra/staticres.cpp
Modified: scummvm/trunk/engines/kyra/animator_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/animator_v2.cpp 2007-10-08 09:37:57 UTC (rev 29174)
+++ scummvm/trunk/engines/kyra/animator_v2.cpp 2007-10-09 04:47:41 UTC (rev 29175)
@@ -191,6 +191,17 @@
}
}
+void KyraEngine_v2::updateCharFacing() {
+ if (_mainCharacter.x1 > _mouseX)
+ _mainCharacter.facing = 5;
+ else
+ _mainCharacter.facing = 3;
+
+ _mainCharacter.animFrame = _characterFrameTable[_mainCharacter.animFrame];
+ updateCharacterAnim(0);
+ refreshAnimObjectsIfNeed();
+}
+
void KyraEngine_v2::updateCharacterAnim(int) {
Character *c = &_mainCharacter;
AnimObj *animState = _animObjects;
@@ -331,7 +342,7 @@
scaleY = scaleX = getScale(animObj->xPos1, animObj->yPos1);
uint8 *shapePtr = getShapePtr(64+itemId);
- animObj->xPos3 = (animObj->xPos2 -= _screen->getShapeScaledWidth(shapePtr, scaleX) >> 1);
+ animObj->xPos3 = (animObj->xPos2 -= (_screen->getShapeScaledWidth(shapePtr, scaleX) >> 1));
animObj->yPos3 = (animObj->yPos2 -= _screen->getShapeScaledHeight(shapePtr, scaleY));
animObj->width2 = animObj->height2 = 0;
Modified: scummvm/trunk/engines/kyra/items_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/items_v2.cpp 2007-10-08 09:37:57 UTC (rev 29174)
+++ scummvm/trunk/engines/kyra/items_v2.cpp 2007-10-09 04:47:41 UTC (rev 29175)
@@ -117,10 +117,205 @@
return false;
}
- //XXX
- return false;
+ int freeItemSlot = -1;
+
+ if (unk1 != 3) {
+ for (int i = 0; i < 30; ++i) {
+ if (_itemList[i].id == 0xFFFF) {
+ freeItemSlot = i;
+ break;
+ }
+ }
+ }
+
+ if (freeItemSlot == -1)
+ return false;
+
+ if (sceneId != _mainCharacter.sceneId) {
+ //addToItemList(sceneId, item, freeItemSlot, x, y);
+ //return true;
+ //XXX
+ return false;
+ }
+
+ int itemHeight = _itemHtDat[item];
+
+ // no idea why it's '&&' here and not single checks for x and y
+ if (x == -1 && y == -1) {
+ x = _rnd.getRandomNumberRng(0x10, 0x130);
+ y = _rnd.getRandomNumberRng(0x10, 0x87);
+ }
+
+ int posX = x, posY = y;
+ int itemX = -1, itemY = -1;
+ bool needRepositioning = true;
+
+ while (needRepositioning) {
+ if ((_screen->getDrawLayer(posX, posY) <= 1 && _screen->getDrawLayer2(posX, posY, itemHeight) <= 1 && isDropable(posX, posY)) || posY == 136) {
+ int posX2 = posX, posX3 = posX;
+ bool repositioning = true;
+
+ while (repositioning) {
+ if (isDropable(posX3, posY) && _screen->getDrawLayer(posX3, posY) < 7 && checkItemCollision(posX3, posY) == -1) {
+ itemX = posX3;
+ itemY = posY;
+ needRepositioning = false;
+ repositioning = false;
+ }
+
+ if (isDropable(posX2, posY) && _screen->getDrawLayer(posX2, posY) < 7 && checkItemCollision(posX2, posY) == -1) {
+ itemX = posX2;
+ itemY = posY;
+ needRepositioning = false;
+ repositioning = false;
+ }
+
+ if (repositioning) {
+ posX3 = MAX(posX3 - 2, 16);
+ posX2 = MIN(posX2 + 2, 304);
+
+ if (posX3 <= 16 && posX2 >= 304)
+ repositioning = false;
+ }
+ }
+ }
+
+ if (posY == 136)
+ needRepositioning = false;
+ else
+ posY = MIN(posY + 2, 136);
+ }
+
+ if (itemX == -1 || itemY == -1)
+ return false;
+
+ if (unk1 == 3) {
+ _itemList[freeItemSlot].x = itemX;
+ _itemList[freeItemSlot].y = itemY;
+ return true;
+ } else if (unk1 == 2) {
+ itemDropDown(x, y, itemX, itemY, freeItemSlot, item);
+ }
+
+ if (!unk1)
+ removeHandItem();
+
+ itemDropDown(x, y, itemX, itemY, freeItemSlot, item);
+
+ if (!unk1 && unk2) {
+ int itemStr = 3;
+ if (_lang == 1)
+ itemStr = getItemCommandStringDrop(item);
+ updateCommandLineEx(item+54, itemStr, 0xD6);
+ }
+
+ return true;
}
+void KyraEngine_v2::itemDropDown(int startX, int startY, int dstX, int dstY, int itemSlot, uint16 item) {
+ uint8 *itemShape = getShapePtr(item + 64);
+
+ if (startX == dstX && startY == dstY) {
+ if (_layerFlagTable[_screen->getLayer(dstX, dstY)] && item != 13) {
+ updateCharFacing();
+ //snd_playSfx(0x2d);
+ removeHandItem();
+ //XXX sub_277FA(getTableString(0xFF, _cCodeBuffer), 1, 0, 0x83, 0xFF);
+ } else {
+ _itemList[itemSlot].x = dstX;
+ _itemList[itemSlot].y = dstY;
+ _itemList[itemSlot].id = item;
+ _itemList[itemSlot].sceneId = _mainCharacter.sceneId;
+ //snd_playSfx(0x0c);
+ addItemToAnimList(itemSlot);
+ }
+ } else {
+ _screen->hideMouse();
+
+ if (startY <= dstY) {
+ int speed = 2;
+ int curY = startY;
+ int curX = startX - 8;
+
+ backUpGfxRect24x24(curX, curY-16);
+ while (curY < dstY) {
+ restoreGfxRect24x24(curX, curY-16);
+
+ curY = MIN(curY + speed, dstY);
+ ++speed;
+
+ backUpGfxRect24x24(curX, curY-16);
+ uint32 endDelay = _system->getMillis() + _tickLength;
+
+ _screen->drawShape(0, itemShape, curX, curY-16, 0, 0);
+ _screen->updateScreen();
+
+ // XXX: original doesn't update game state while delaying
+ // our implementation *could* do it, so maybe check this again
+ delayUntil(endDelay);
+ }
+
+ if (dstX != dstY || (dstY - startY > 16)) {
+ //snd_playSfx(0x69);
+ speed = MAX(speed, 6);
+ int speedX = ((dstX - startX) << 4) / speed;
+ int origSpeed = speed;
+ speed >>= 1;
+
+ if (dstY - startY <= 8)
+ speed >>= 1;
+
+ speed = -speed;
+
+ curX = startX << 4;
+
+ int x = 0, y = 0;
+ while (--origSpeed) {
+ x = (curX >> 4) - 8;
+ y = curY - 16;
+
+ restoreGfxRect24x24(x, y);
+ curY = MIN(curY + speed, dstY);
+ curX += speedX;
+ ++speed;
+
+ x = (curX >> 4) - 8;
+ y = curY - 16;
+ backUpGfxRect24x24(x, y);
+
+ uint16 endDelay = _system->getMillis() + _tickLength;
+ _screen->drawShape(0, itemShape, x, y, 0, 0);
+ _screen->updateScreen();
+
+ // XXX: original doesn't update game state while delaying
+ // our implementation *could* do it, so maybe check this again
+ delayUntil(endDelay);
+ }
+
+ restoreGfxRect24x24(x, y);
+ } else {
+ restoreGfxRect24x24(curX, curY-16);
+ }
+ }
+
+ if (_layerFlagTable[_screen->getLayer(dstX, dstY)] && item != 13) {
+ updateCharFacing();
+ //snd_playSfx(0x2d);
+ removeHandItem();
+ _screen->showMouse();
+ //XXX sub_277FA(getTableString(0xFF, _cCodeBuffer), 1, 0, 0x83, 0xFF);
+ } else {
+ _itemList[itemSlot].x = dstX;
+ _itemList[itemSlot].y = dstY;
+ _itemList[itemSlot].id = item;
+ _itemList[itemSlot].sceneId = _mainCharacter.sceneId;
+ //snd_playSfx(0x0c);
+ addItemToAnimList(itemSlot);
+ _screen->showMouse();
+ }
+ }
+}
+
void KyraEngine_v2::exchangeMouseItem(int itemPos) {
_screen->hideMouse();
@@ -136,7 +331,7 @@
int str2 = 7;
if (_lang == 1)
- str2 = getItemCommandString(itemId);
+ str2 = getItemCommandStringPickUp(itemId);
updateCommandLineEx(itemId + 54, str2, 0xD6);
_screen->showMouse();
@@ -162,7 +357,7 @@
int str2 = 7;
if (_lang == 1)
- str2 = getItemCommandString(itemId);
+ str2 = getItemCommandStringPickUp(itemId);
updateCommandLineEx(itemId + 54, str2, 0xD6);
_itemInHand = itemId;
@@ -174,42 +369,43 @@
return true;
}
-int KyraEngine_v2::getItemCommandString(uint16 item) {
- // This is just needed for French version
- static const uint8 index[] = {
- 2, 2, 0, 0, 2, 2, 2, 0,
- 2, 2, 0, 0, 0, 2, 0, 0,
- 0, 0, 0, 0, 2, 0, 0, 0,
- 0, 1, 0, 2, 2, 2, 2, 0,
- 3, 0, 3, 2, 2, 2, 3, 2,
- 2, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 2,
- 2, 0, 0, 0, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 0,
- 2, 2, 2, 0, 0, 1, 3, 2,
- 2, 2, 2, 2, 2, 0, 0, 0,
- 0, 2, 2, 1, 0, 1, 2, 0,
- 0, 0, 0, 0, 0, 2, 2, 2,
- 2, 2, 2, 2, 0, 2, 2, 2,
- 2, 3, 2, 0, 0, 0, 0, 1,
- 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 2, 0, 0, 0, 0, 0, 2,
- 0, 2, 0, 0, 0, 0, 0, 0
+bool KyraEngine_v2::isDropable(int x, int y) {
+ if (x < 14 || x > 304 || y < 14 || y > 136)
+ return false;
+
+ x -= 8;
+ y -= 1;
+
+ for (int xpos = x; xpos < x + 16; ++xpos) {
+ if (_screen->getShapeFlag1(xpos, y) == 0)
+ return false;
+ }
+
+ return true;
+}
+
+int KyraEngine_v2::getItemCommandStringDrop(uint16 item) {
+ assert(item < _itemStringMapSize);
+ int stringId = _itemStringMap[item];
+
+ static const int dropStringIds[] = {
+ 0x2D, 0x103, 0x003, 0x106
};
+ assert(stringId < ARRAYSIZE(dropStringIds));
- assert(item < ARRAYSIZE(index));
+ return dropStringIds[stringId];
+}
- static const int stringId[] = {
- 0x02B, 0x102, 0x007, 0x105, 0x02D, 0x103,
- 0x003, 0x106, 0x02C, 0x104, 0x008, 0x107
+int KyraEngine_v2::getItemCommandStringPickUp(uint16 item) {
+ assert(item < _itemStringMapSize);
+ int stringId = _itemStringMap[item];
+
+ static const int pickUpStringIds[] = {
+ 0x02B, 0x102, 0x007, 0x105
};
+ assert(stringId < ARRAYSIZE(pickUpStringIds));
- assert(index[item] < ARRAYSIZE(index));
- return stringId[index[item]];
+ return pickUpStringIds[stringId];
}
void KyraEngine_v2::setMouseCursor(uint16 item) {
@@ -226,4 +422,12 @@
_screen->setMouseCursor(hotX, hotY, getShapePtr(shape));
}
+void KyraEngine_v2::removeHandItem() {
+ _screen->hideMouse();
+ _screen->setMouseCursor(0, 0, _defaultShapeTable[0]);
+ _itemInHand = -1;
+ _handItemSet = -1;
+ _screen->showMouse();
+}
+
} // end of namespace Kyra
Modified: scummvm/trunk/engines/kyra/kyra_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v2.cpp 2007-10-08 09:37:57 UTC (rev 29174)
+++ scummvm/trunk/engines/kyra/kyra_v2.cpp 2007-10-09 04:47:41 UTC (rev 29175)
@@ -242,6 +242,7 @@
_gfxBackUpRect = new uint8[_screen->getRectSize(32, 32)];
_itemList = new Item[30];
+ memset(_itemList, 0, sizeof(Item)*30);
resetItemList();
//loadButtonShapes();
_loadedZTable = 1;
@@ -381,12 +382,12 @@
return;
}
- /*if (_itemInHand >= 0) {
+ if (_itemInHand >= 0) {
if (y > 136)
return;
dropItem(0, _itemInHand, x, y, 1);
- } else {*/
+ } else {
if (_unk3 == -2 || y > 135)
return;
@@ -396,7 +397,7 @@
}
_unk5 = 0;
- //}
+ }
}
}
@@ -1176,6 +1177,16 @@
#pragma mark -
+void KyraEngine_v2::backUpGfxRect24x24(int x, int y) {
+ _screen->copyRegionToBuffer(_screen->_curPage, x, y, 24, 24, _gfxBackUpRect);
+}
+
+void KyraEngine_v2::restoreGfxRect24x24(int x, int y) {
+ _screen->copyBlockToPage(_screen->_curPage, x, y, 24, 24, _gfxBackUpRect);
+}
+
+#pragma mark -
+
typedef Functor1Mem<ScriptState*, int, KyraEngine_v2> OpcodeV2;
#define Opcode(x) OpcodeV2(this, &KyraEngine_v2::x)
#define OpcodeUnImpl() OpcodeV2(this, 0)
@@ -1288,9 +1299,9 @@
OpcodeUnImpl(),
// 0x54
OpcodeUnImpl(),
+ Opcode(o2_setLayerFlag),
OpcodeUnImpl(),
OpcodeUnImpl(),
- OpcodeUnImpl(),
// 0x58
OpcodeUnImpl(),
OpcodeUnImpl(),
Modified: scummvm/trunk/engines/kyra/kyra_v2.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v2.h 2007-10-08 09:37:57 UTC (rev 29174)
+++ scummvm/trunk/engines/kyra/kyra_v2.h 2007-10-09 04:47:41 UTC (rev 29175)
@@ -185,6 +185,9 @@
uint8 *_screenBuffer;
uint8 *_maskPage;
uint8 *_gfxBackUpRect;
+
+ void backUpGfxRect24x24(int x, int y);
+ void restoreGfxRect24x24(int x, int y);
uint8 *getShapePtr(int index) { return _defaultShapeTable[index]; }
uint8 *_defaultShapeTable[250];
@@ -238,6 +241,8 @@
void setDrawLayerTableEntry(int entry, int data);
int getDrawLayer(int x, int y);
int _drawLayerTable[15];
+
+ int _layerFlagTable[16]; // seems to indicate layers where items get destroyed when dropped to (TODO: check this!)
// animator
struct AnimObj {
@@ -282,6 +287,7 @@
void refreshAnimObjects(int force);
void refreshAnimObjectsIfNeed();
+ void updateCharFacing();
void updateCharacterAnim(int);
void updateSceneAnim(int anim, int newFrame);
@@ -352,7 +358,7 @@
uint16 id;
uint16 sceneId;
int16 x;
- int8 y;
+ uint8 y;
uint16 unk7;
};
Item *_itemList;
@@ -368,16 +374,25 @@
bool dropItem(int unk1, uint16 item, int x, int y, int unk2);
bool processItemDrop(uint16 sceneId, uint16 item, int x, int y, int unk1, int unk2);
+ void itemDropDown(int startX, int startY, int dstX, int dstY, int itemSlot, uint16 item);
void exchangeMouseItem(int itemPos);
bool pickUpItem(int x, int y);
- int getItemCommandString(uint16 item);
+ bool isDropable(int x, int y);
+ static const byte _itemStringMap[];
+ static const int _itemStringMapSize;
+
+ // Just used in French version
+ int getItemCommandStringDrop(uint16 item);
+ int getItemCommandStringPickUp(uint16 item);
+
void setMouseCursor(uint16 item);
+ void removeHandItem();
// inventroy
- static int _inventoryX[];
- static int _inventoryY[];
+ static const int _inventoryX[];
+ static const int _inventoryY[];
// localization
void loadCCodeBuffer(const char *file);
@@ -433,7 +448,7 @@
int _mainCharX, _mainCharY;
int _charScaleX, _charScaleY;
- static int _characterFrameTable[];
+ static const int _characterFrameTable[];
// text
void showMessageFromCCode(int id, int16 palIndex, int);
@@ -480,6 +495,7 @@
int o2_setDrawLayerTableItem(ScriptState *script);
int o2_drawSceneShapeOnPage(ScriptState *script);
int o2_restoreBackBuffer(ScriptState *script);
+ int o2_setLayerFlag(ScriptState *script);
int o2_getRand(ScriptState *script);
int o2_encodeShape(ScriptState *script);
int o2_defineRoomEntrance(ScriptState *script);
Modified: scummvm/trunk/engines/kyra/scene_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/scene_v2.cpp 2007-10-08 09:37:57 UTC (rev 29174)
+++ scummvm/trunk/engines/kyra/scene_v2.cpp 2007-10-09 04:47:41 UTC (rev 29175)
@@ -392,7 +392,7 @@
resetScaleTable();
_useCharPal = false;
memset(_charPalTable, 0, sizeof(_charPalTable));
- //XXX _unkTable33
+ memset(_layerFlagTable, 0, sizeof(_layerFlagTable));
memset(_specialSceneScriptState, 0, sizeof(_specialSceneScriptState));
_sceneEnterX1 = 160;
Modified: scummvm/trunk/engines/kyra/screen.cpp
===================================================================
--- scummvm/trunk/engines/kyra/screen.cpp 2007-10-08 09:37:57 UTC (rev 29174)
+++ scummvm/trunk/engines/kyra/screen.cpp 2007-10-09 04:47:41 UTC (rev 29175)
@@ -573,10 +573,28 @@
void Screen::copyRegionToBuffer(int pageNum, int x, int y, int w, int h, uint8 *dest) {
debugC(9, kDebugLevelScreen, "Screen::copyRegionToBuffer(%d, %d, %d, %d, %d)", pageNum, x, y, w, h);
- assert(x >= 0 && x < Screen::SCREEN_W && y >= 0 && y < Screen::SCREEN_H && dest);
+ if (y < 0) {
+ dest += (-y) * w;
+ h += y;
+ y = 0;
+ } else if (y + h > SCREEN_H) {
+ h = SCREEN_H - y;
+ }
+
+ if (x < 0) {
+ dest += -x;
+ w += x;
+ x = 0;
+ } else if (x + w > SCREEN_W) {
+ w = SCREEN_W - x;
+ }
+
+ if (w < 0 || h < 0)
+ return;
+
uint8 *pagePtr = getPagePtr(pageNum);
- for (int i = y; i < y + h; i++)
+ for (int i = y; i < y + h; ++i)
memcpy(dest + (i - y) * w, pagePtr + i * SCREEN_W + x, w);
}
@@ -593,7 +611,25 @@
void Screen::copyBlockToPage(int pageNum, int x, int y, int w, int h, const uint8 *src) {
debugC(9, kDebugLevelScreen, "Screen::copyBlockToPage(%d, %d, %d, %d, %d, %p)", pageNum, x, y, w, h, (const void *)src);
- assert(x >= 0 && x < Screen::SCREEN_W && y >= 0 && y < Screen::SCREEN_H);
+ if (y < 0) {
+ src += (-y) * w;
+ h += y;
+ y = 0;
+ } else if (y + h > SCREEN_H) {
+ h = SCREEN_H - y;
+ }
+
+ if (x < 0) {
+ src += -x;
+ w += x;
+ x = 0;
+ } else if (x + w > SCREEN_W) {
+ w = SCREEN_W - x;
+ }
+
+ if (w < 0 || h < 0)
+ return;
+
uint8 *dst = getPagePtr(pageNum) + y * SCREEN_W + x;
if (pageNum == 0 || pageNum == 1)
Modified: scummvm/trunk/engines/kyra/screen_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/screen_v2.cpp 2007-10-08 09:37:57 UTC (rev 29174)
+++ scummvm/trunk/engines/kyra/screen_v2.cpp 2007-10-09 04:47:41 UTC (rev 29175)
@@ -500,7 +500,7 @@
case 8: {
int layer = _shapePages[0][dst - dstStart] & 7;
- if (drawLayer > layer)
+ if (drawLayer < layer)
color = _shapePages[1][dst - dstStart];
*dst = color;
} break;
Modified: scummvm/trunk/engines/kyra/script_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_v2.cpp 2007-10-08 09:37:57 UTC (rev 29174)
+++ scummvm/trunk/engines/kyra/script_v2.cpp 2007-10-09 04:47:41 UTC (rev 29175)
@@ -294,6 +294,14 @@
return 0;
}
+int KyraEngine_v2::o2_setLayerFlag(ScriptState *script) {
+ debugC(3, kDebugLevelScriptFuncs, "o2_setLayerFlag(%p) (%d)", (const void *)script, stackPos(0));
+ int layer = stackPos(0);
+ if (layer >= 1 && layer <= 16)
+ _layerFlagTable[layer] = 1;
+ return 0;
+}
+
int KyraEngine_v2::o2_getRand(ScriptState *script) {
debugC(3, kDebugLevelScriptFuncs, "o2_getRand(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1));
assert(stackPos(0) < stackPos(1));
Modified: scummvm/trunk/engines/kyra/staticres.cpp
===================================================================
--- scummvm/trunk/engines/kyra/staticres.cpp 2007-10-08 09:37:57 UTC (rev 29174)
+++ scummvm/trunk/engines/kyra/staticres.cpp 2007-10-09 04:47:41 UTC (rev 29175)
@@ -1229,18 +1229,45 @@
"SMC"*/
};
-int KyraEngine_v2::_characterFrameTable[] = {
+const int KyraEngine_v2::_characterFrameTable[] = {
0x19, 0x09, 0x09, 0x12, 0x12, 0x12, 0x09, 0x09
};
-int KyraEngine_v2::_inventoryX[] = {
+const int KyraEngine_v2::_inventoryX[] = {
0x4F, 0x63, 0x77, 0x8B, 0x9F, 0x4F, 0x63, 0x77, 0x8B, 0x9F
};
-int KyraEngine_v2::_inventoryY[] = {
+const int KyraEngine_v2::_inventoryY[] = {
0x95, 0x95, 0x95, 0x95, 0x95, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA
};
+const byte KyraEngine_v2::_itemStringMap[] = {
+ 2, 2, 0, 0, 2, 2, 2, 0,
+ 2, 2, 0, 0, 0, 2, 0, 0,
+ 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 1, 0, 2, 2, 2, 2, 0,
+ 3, 0, 3, 2, 2, 2, 3, 2,
+ 2, 2, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0,
+ 2, 0, 0, 0, 0, 0, 0, 2,
+ 2, 0, 0, 0, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 0,
+ 2, 2, 2, 0, 0, 1, 3, 2,
+ 2, 2, 2, 2, 2, 0, 0, 0,
+ 0, 2, 2, 1, 0, 1, 2, 0,
+ 0, 0, 0, 0, 0, 2, 2, 2,
+ 2, 2, 2, 2, 0, 2, 2, 2,
+ 2, 3, 2, 0, 0, 0, 0, 1,
+ 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 2, 2, 0, 0, 0, 0, 0, 2,
+ 0, 2, 0, 0, 0, 0, 0, 0
+};
+
+const int KyraEngine_v2::_itemStringMapSize = ARRAYSIZE(KyraEngine_v2::_itemStringMap);
+
// kyra 3 static res
const char *KyraEngine_v3::_soundList[] = {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list