[Scummvm-cvs-logs] SF.net SVN: scummvm:[53697] scummvm/trunk/engines/kyra

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Fri Oct 22 04:10:23 CEST 2010


Revision: 53697
          http://scummvm.svn.sourceforge.net/scummvm/?rev=53697&view=rev
Author:   lordhoto
Date:     2010-10-22 02:10:22 +0000 (Fri, 22 Oct 2010)

Log Message:
-----------
KYRA: Adapt Kyra2+3 to use the newly added item type too.

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/animator_v2.cpp
    scummvm/trunk/engines/kyra/gui_hof.cpp
    scummvm/trunk/engines/kyra/gui_mr.cpp
    scummvm/trunk/engines/kyra/items_hof.cpp
    scummvm/trunk/engines/kyra/items_mr.cpp
    scummvm/trunk/engines/kyra/items_v2.cpp
    scummvm/trunk/engines/kyra/kyra_hof.cpp
    scummvm/trunk/engines/kyra/kyra_hof.h
    scummvm/trunk/engines/kyra/kyra_mr.cpp
    scummvm/trunk/engines/kyra/kyra_mr.h
    scummvm/trunk/engines/kyra/kyra_v2.h
    scummvm/trunk/engines/kyra/saveload_hof.cpp
    scummvm/trunk/engines/kyra/saveload_mr.cpp
    scummvm/trunk/engines/kyra/scene_mr.cpp
    scummvm/trunk/engines/kyra/script_hof.cpp
    scummvm/trunk/engines/kyra/script_mr.cpp
    scummvm/trunk/engines/kyra/staticres.cpp

Modified: scummvm/trunk/engines/kyra/animator_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/animator_v2.cpp	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/animator_v2.cpp	2010-10-22 02:10:22 UTC (rev 53697)
@@ -141,7 +141,7 @@
 }
 
 void KyraEngine_v2::addItemToAnimList(int item) {
-	assert(item < _itemListSize);
+	assert(item >= 0 && item < _itemListSize);
 
 	restorePage3();
 

Modified: scummvm/trunk/engines/kyra/gui_hof.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui_hof.cpp	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/gui_hof.cpp	2010-10-22 02:10:22 UTC (rev 53697)
@@ -122,9 +122,9 @@
 
 	int inventorySlot = button->index - 6;
 
-	uint16 item = _mainCharacter.inventory[inventorySlot];
-	if (_itemInHand == -1) {
-		if (item == 0xFFFF)
+	Item item = _mainCharacter.inventory[inventorySlot];
+	if (_itemInHand == kItemNone) {
+		if (item == kItemNone)
 			return 0;
 		_screen->hideMouse();
 		clearInventorySlot(inventorySlot, 0);
@@ -134,9 +134,9 @@
 		updateCommandLineEx(item+54, string, 0xD6);
 		_itemInHand = (int16)item;
 		_screen->showMouse();
-		_mainCharacter.inventory[inventorySlot] = 0xFFFF;
+		_mainCharacter.inventory[inventorySlot] = kItemNone;
 	} else {
-		if (_mainCharacter.inventory[inventorySlot] != 0xFFFF) {
+		if (_mainCharacter.inventory[inventorySlot] != kItemNone) {
 			if (checkInventoryItemExchange(_itemInHand, inventorySlot))
 				return 0;
 
@@ -160,7 +160,7 @@
 			updateCommandLineEx(_itemInHand+54, string, 0xD6);
 			_screen->showMouse();
 			_mainCharacter.inventory[inventorySlot] = _itemInHand;
-			_itemInHand = -1;
+			_itemInHand = kItemNone;
 		}
 	}
 
@@ -168,15 +168,15 @@
 }
 
 int KyraEngine_HoF::scrollInventory(Button *button) {
-	uint16 *src = _mainCharacter.inventory;
-	uint16 *dst = &_mainCharacter.inventory[10];
-	uint16 temp[5];
+	Item *src = _mainCharacter.inventory;
+	Item *dst = &_mainCharacter.inventory[10];
+	Item temp[5];
 
-	memcpy(temp, src, sizeof(uint16)*5);
-	memcpy(src, src+5, sizeof(uint16)*5);
-	memcpy(src+5, dst, sizeof(uint16)*5);
-	memcpy(dst, dst+5, sizeof(uint16)*5);
-	memcpy(dst+5, temp, sizeof(uint16)*5);
+	memcpy(temp, src, sizeof(Item)*5);
+	memcpy(src, src+5, sizeof(Item)*5);
+	memcpy(src+5, dst, sizeof(Item)*5);
+	memcpy(dst, dst+5, sizeof(Item)*5);
+	memcpy(dst+5, temp, sizeof(Item)*5);
 	_screen->hideMouse();
 	_screen->copyRegion(0x46, 0x90, 0x46, 0x90, 0x71, 0x2E, 0, 2);
 	_screen->showMouse();
@@ -185,7 +185,7 @@
 	return 0;
 }
 
-int KyraEngine_HoF::getInventoryItemSlot(uint16 item) {
+int KyraEngine_HoF::getInventoryItemSlot(Item item) {
 	for (int i = 0; i < 20; ++i) {
 		if (_mainCharacter.inventory[i] == item)
 			return i;
@@ -195,14 +195,14 @@
 
 int KyraEngine_HoF::findFreeVisibleInventorySlot() {
 	for (int i = 0; i < 10; ++i) {
-		if (_mainCharacter.inventory[i] == 0xFFFF)
+		if (_mainCharacter.inventory[i] == kItemNone)
 			return i;
 	}
 	return -1;
 }
 
 void KyraEngine_HoF::removeSlotFromInventory(int slot) {
-	_mainCharacter.inventory[slot] = 0xFFFF;
+	_mainCharacter.inventory[slot] = kItemNone;
 	if (slot < 10) {
 		_screen->hideMouse();
 		clearInventorySlot(slot, 0);
@@ -210,21 +210,21 @@
 	}
 }
 
-bool KyraEngine_HoF::checkInventoryItemExchange(uint16 handItem, int slot) {
+bool KyraEngine_HoF::checkInventoryItemExchange(Item handItem, int slot) {
 	bool removeItem = false;
-	uint16 newItem = 0xFFFF;
+	Item newItem = kItemNone;
 
-	uint16 invItem = _mainCharacter.inventory[slot];
+	Item invItem = _mainCharacter.inventory[slot];
 
 	for (const uint16 *table = _itemMagicTable; *table != 0xFFFF; table += 4) {
-		if (table[0] != handItem || table[1] != invItem)
+		if (table[0] != handItem || table[1] != (uint16)invItem)
 			continue;
 
 		if (table[3] == 0xFFFF)
 			continue;
 
 		removeItem = (table[3] == 1);
-		newItem = table[2];
+		newItem = (Item)table[2];
 
 		snd_playSoundEffect(0x68);
 		_mainCharacter.inventory[slot] = newItem;
@@ -246,7 +246,7 @@
 	return false;
 }
 
-void KyraEngine_HoF::drawInventoryShape(int page, uint16 item, int slot) {
+void KyraEngine_HoF::drawInventoryShape(int page, Item item, int slot) {
 	_screen->drawShape(page, getShapePtr(item+64), _inventoryX[slot], _inventoryY[slot], 0, 0);
 	_screen->updateScreen();
 }
@@ -260,11 +260,11 @@
 	int pageBackUp = _screen->_curPage;
 	_screen->_curPage = page;
 
-	const uint16 *inventory = _mainCharacter.inventory;
+	const Item *inventory = _mainCharacter.inventory;
 	_screen->hideMouse();
 	for (int i = 0; i < 10; ++i) {
 		clearInventorySlot(i, page);
-		if (inventory[i] != 0xFFFF) {
+		if (inventory[i] != kItemNone) {
 			_screen->drawShape(page, getShapePtr(inventory[i]+64), _inventoryX[i], _inventoryY[i], 0, 0);
 			drawInventoryShape(page, inventory[i], i);
 		}
@@ -734,7 +734,7 @@
 
 		if (_loadedSave) {
 			if (_restartGame)
-				_vm->_itemInHand = -1;
+				_vm->_itemInHand = kItemNone;
 		} else {
 			restorePage1(_vm->_screenBuffer);
 			restorePalette();
@@ -820,7 +820,7 @@
 	_vm->setNextIdleAnimTimer();
 	_isDeathMenu = false;
 	if (!_loadedSave) {
-		_vm->_itemInHand = -1;
+		_vm->_itemInHand = kItemNone;
 		_vm->setHandItem(item);
 	} else {
 		_vm->setHandItem(_vm->_itemInHand);

Modified: scummvm/trunk/engines/kyra/gui_mr.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui_mr.cpp	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/gui_mr.cpp	2010-10-22 02:10:22 UTC (rev 53697)
@@ -130,7 +130,7 @@
 	showMessage((const char *)getTableEntry(_cCodeFile, string), c0, 0xF0);
 }
 
-void KyraEngine_MR::updateItemCommand(int item, int str, uint8 c0) {
+void KyraEngine_MR::updateItemCommand(Item item, int str, uint8 c0) {
 	char buffer[100];
 	char *src = (char *)getTableEntry(_itemFile, item);
 
@@ -449,7 +449,7 @@
 
 	for (int i = 0; i < 10; ++i) {
 		clearInventorySlot(i, page);
-		if (_mainCharacter.inventory[i] != 0xFFFF) {
+		if (_mainCharacter.inventory[i] != kItemNone) {
 			_screen->drawShape(page, getShapePtr(_mainCharacter.inventory[i]+248), _inventoryX[i], _inventoryY[i] + yOffset, 0, 0);
 			drawInventorySlot(page, _mainCharacter.inventory[i], i);
 		}
@@ -472,7 +472,7 @@
 	_screen->drawShape(page, getShapePtr(slot+422), _inventoryX[slot], _inventoryY[slot] + yOffset, 0, 0);
 }
 
-void KyraEngine_MR::drawInventorySlot(int page, int item, int slot) {
+void KyraEngine_MR::drawInventorySlot(int page, Item item, int slot) {
 	int yOffset = 0;
 	if (page == 30) {
 		page = 2;
@@ -488,9 +488,9 @@
 		return 0;
 
 	const int slot = button->index - 5;
-	const int16 slotItem = (int16)_mainCharacter.inventory[slot];
-	if (_itemInHand == -1) {
-		if (slotItem == -1)
+	const Item slotItem = _mainCharacter.inventory[slot];
+	if (_itemInHand == kItemNone) {
+		if (slotItem == kItemNone)
 			return 0;
 
 		_screen->hideMouse();
@@ -499,7 +499,7 @@
 		setMouseCursor(slotItem);
 		updateItemCommand(slotItem, (_lang == 1) ? getItemCommandStringPickUp(slotItem) : 0, 0xFF);
 		_itemInHand = slotItem;
-		_mainCharacter.inventory[slot] = 0xFFFF;
+		_mainCharacter.inventory[slot] = kItemNone;
 		_screen->showMouse();
 	} else if (_itemInHand == 27) {
 		if (_chatText)
@@ -528,7 +528,7 @@
 			updateItemCommand(_itemInHand, (_lang == 1) ? getItemCommandStringInv(_itemInHand) : 2, 0xFF);
 			_screen->showMouse();
 			_mainCharacter.inventory[slot] = _itemInHand;
-			_itemInHand = -1;
+			_itemInHand = kItemNone;
 		}
 	}
 
@@ -635,7 +635,7 @@
 		updateItemCommand(27, 2, 0xFF);
 		setGameFlag(0x97);
 		_screen->showMouse();
-	} else if (_itemInHand == -1) {
+	} else if (_itemInHand == kItemNone) {
 		if (queryGameFlag(0x97)) {
 			_screen->hideMouse();
 			snd_playSoundEffect(0x0B, 0xC8);
@@ -1141,7 +1141,7 @@
 	_vm->setNextIdleAnimTimer();
 	_isDeathMenu = false;
 	if (!_loadedSave) {
-		_vm->_itemInHand = -1;
+		_vm->_itemInHand = kItemNone;
 		_vm->setHandItem(item);
 	} else {
 		_vm->setHandItem(_vm->_itemInHand);
@@ -1239,7 +1239,7 @@
 
 		if (_loadedSave) {
 			if (_restartGame)
-				_vm->_itemInHand = -1;
+				_vm->_itemInHand = kItemNone;
 		} else {
 			restorePage1(_vm->_screenBuffer);
 		}

Modified: scummvm/trunk/engines/kyra/items_hof.cpp
===================================================================
--- scummvm/trunk/engines/kyra/items_hof.cpp	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/items_hof.cpp	2010-10-22 02:10:22 UTC (rev 53697)
@@ -31,9 +31,9 @@
 	int itemPos = -1, yPos = -1;
 
 	for (int i = 0; i < 30; ++i) {
-		const Item &curItem = _itemList[i];
+		const ItemDefinition &curItem = _itemList[i];
 
-		if (curItem.id == 0xFFFF || curItem.sceneId != _mainCharacter.sceneId)
+		if (curItem.id == kItemNone || curItem.sceneId != _mainCharacter.sceneId)
 			continue;
 
 		int itemX1 = curItem.x - 8 - 3;
@@ -79,7 +79,7 @@
 	}
 }
 
-bool KyraEngine_HoF::dropItem(int unk1, uint16 item, int x, int y, int unk2) {
+bool KyraEngine_HoF::dropItem(int unk1, Item item, int x, int y, int unk2) {
 	if (_mouseState <= -1)
 		return false;
 
@@ -93,7 +93,7 @@
 	return success;
 }
 
-bool KyraEngine_HoF::processItemDrop(uint16 sceneId, uint16 item, int x, int y, int unk1, int unk2) {
+bool KyraEngine_HoF::processItemDrop(uint16 sceneId, Item item, int x, int y, int unk1, int unk2) {
 	int itemPos = checkItemCollision(x, y);
 
 	if (unk1)
@@ -108,7 +108,7 @@
 
 	if (unk1 != 3) {
 		for (int i = 0; i < 30; ++i) {
-			if (_itemList[i].id == 0xFFFF) {
+			if (_itemList[i].id == kItemNone) {
 				freeItemSlot = i;
 				break;
 			}
@@ -200,7 +200,7 @@
 	return true;
 }
 
-void KyraEngine_HoF::itemDropDown(int startX, int startY, int dstX, int dstY, int itemSlot, uint16 item) {
+void KyraEngine_HoF::itemDropDown(int startX, int startY, int dstX, int dstY, int itemSlot, Item item) {
 	uint8 *itemShape = getShapePtr(item + 64);
 
 	if (startX == dstX && startY == dstY) {
@@ -335,7 +335,7 @@
 		_screen->hideMouse();
 		deleteItemAnimEntry(itemPos);
 		int itemId = _itemList[itemPos].id;
-		_itemList[itemPos].id = 0xFFFF;
+		_itemList[itemPos].id = kItemNone;
 		snd_playSoundEffect(0x0b);
 		setMouseCursor(itemId);
 		int str2 = 7;
@@ -368,8 +368,8 @@
 	return true;
 }
 
-int KyraEngine_HoF::getItemCommandStringDrop(uint16 item) {
-	assert(item < _itemStringMapSize);
+int KyraEngine_HoF::getItemCommandStringDrop(Item item) {
+	assert(item >= 0 && item < _itemStringMapSize);
 	int stringId = _itemStringMap[item];
 
 	static const int dropStringIds[] = {
@@ -380,8 +380,8 @@
 	return dropStringIds[stringId];
 }
 
-int KyraEngine_HoF::getItemCommandStringPickUp(uint16 item) {
-	assert(item < _itemStringMapSize);
+int KyraEngine_HoF::getItemCommandStringPickUp(Item item) {
+	assert(item >= 0 && item < _itemStringMapSize);
 	int stringId = _itemStringMap[item];
 
 	static const int pickUpStringIds[] = {
@@ -392,8 +392,8 @@
 	return pickUpStringIds[stringId];
 }
 
-int KyraEngine_HoF::getItemCommandStringInv(uint16 item) {
-	assert(item < _itemStringMapSize);
+int KyraEngine_HoF::getItemCommandStringInv(Item item) {
+	assert(item >= 0 && item < _itemStringMapSize);
 	int stringId = _itemStringMap[item];
 
 	static const int pickUpStringIds[] = {
@@ -404,8 +404,8 @@
 	return pickUpStringIds[stringId];
 }
 
-bool KyraEngine_HoF::itemIsFlask(int item) {
-	for (int i = 0; _flaskTable[i] != -1; ++i) {
+bool KyraEngine_HoF::itemIsFlask(Item item) {
+	for (int i = 0; _flaskTable[i] != kItemNone; ++i) {
 		if (_flaskTable[i] == item)
 			return true;
 	}

Modified: scummvm/trunk/engines/kyra/items_mr.cpp
===================================================================
--- scummvm/trunk/engines/kyra/items_mr.cpp	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/items_mr.cpp	2010-10-22 02:10:22 UTC (rev 53697)
@@ -29,7 +29,7 @@
 namespace Kyra {
 
 void KyraEngine_MR::removeTrashItems() {
-	for (int i = 0; _trashItemList[i] != 0xFF; ++i) {
+	for (int i = 0; _trashItemList[i] != kItemNone; ++i) {
 		for (int item = findItem(_trashItemList[i]); item != -1; item = findItem(_trashItemList[i])) {
 			if (_itemList[item].sceneId != _mainCharacter.sceneId)
 				resetItem(item);
@@ -41,7 +41,7 @@
 
 int KyraEngine_MR::findFreeInventorySlot() {
 	for (int i = 0; i < 10; ++i) {
-		if (_mainCharacter.inventory[i] == 0xFFFF)
+		if (_mainCharacter.inventory[i] == kItemNone)
 			return i;
 	}
 	return -1;
@@ -52,7 +52,7 @@
 	int maxItemY = -1;
 
 	for (int i = 0; i < 50; ++i) {
-		if (_itemList[i].id == 0xFFFF || _itemList[i].sceneId != _mainCharacter.sceneId)
+		if (_itemList[i].id == kItemNone || _itemList[i].sceneId != _mainCharacter.sceneId)
 			continue;
 
 		const int x1 = _itemList[i].x - 11;
@@ -94,13 +94,13 @@
 
 void KyraEngine_MR::setItemMouseCursor() {
 	_mouseState = _itemInHand;
-	if (_itemInHand == -1)
+	if (_itemInHand == kItemNone)
 		_screen->setMouseCursor(0, 0, _gameShapes[0]);
 	else
 		_screen->setMouseCursor(12, 19, _gameShapes[_itemInHand+248]);
 }
 
-bool KyraEngine_MR::dropItem(int unk1, uint16 item, int x, int y, int unk2) {
+bool KyraEngine_MR::dropItem(int unk1, Item item, int x, int y, int unk2) {
 	if (_mouseState <= -1)
 		return false;
 
@@ -123,7 +123,7 @@
 	return false;
 }
 
-bool KyraEngine_MR::processItemDrop(uint16 sceneId, uint16 item, int x, int y, int unk1, int unk2) {
+bool KyraEngine_MR::processItemDrop(uint16 sceneId, Item item, int x, int y, int unk1, int unk2) {
 	int itemPos = checkItemCollision(x, y);
 
 	if (unk1)
@@ -138,7 +138,7 @@
 
 	if (unk2 != 3) {
 		for (int i = 0; i < 50; ++i) {
-			if (_itemList[i].id == 0xFFFF) {
+			if (_itemList[i].id == kItemNone) {
 				freeItemSlot = i;
 				break;
 			}
@@ -227,7 +227,7 @@
 	return true;
 }
 
-void KyraEngine_MR::itemDropDown(int startX, int startY, int dstX, int dstY, int itemSlot, uint16 item, int remove) {
+void KyraEngine_MR::itemDropDown(int startX, int startY, int dstX, int dstY, int itemSlot, Item item, int remove) {
 	if (startX == dstX && startY == dstY) {
 		_itemList[itemSlot].x = dstX;
 		_itemList[itemSlot].y = dstY;
@@ -323,7 +323,7 @@
 	_screen->hideMouse();
 	deleteItemAnimEntry(itemPos);
 
-	int itemId = _itemList[itemPos].id;
+	Item itemId = _itemList[itemPos].id;
 	_itemList[itemPos].id = _itemInHand;
 	_itemInHand = itemId;
 
@@ -353,8 +353,8 @@
 	} else {
 		_screen->hideMouse();
 		deleteItemAnimEntry(itemPos);
-		int itemId = _itemList[itemPos].id;
-		_itemList[itemPos].id = 0xFFFF;
+		Item itemId = _itemList[itemPos].id;
+		_itemList[itemPos].id = kItemNone;
 		snd_playSoundEffect(0x0B, 0xC8);
 		setMouseCursor(itemId);
 		int itemString = 0;
@@ -387,8 +387,9 @@
 	return true;
 }
 
-bool KyraEngine_MR::itemListMagic(int handItem, int itemSlot) {
-	uint16 item = _itemList[itemSlot].id;
+bool KyraEngine_MR::itemListMagic(Item handItem, int itemSlot) {
+	Item item = _itemList[itemSlot].id;
+
 	if (_currentChapter == 1 && handItem == 3 && item == 3 && queryGameFlag(0x76)) {
 		eelScript();
 		return true;
@@ -410,7 +411,7 @@
 		}
 
 		deleteItemAnimEntry(itemSlot);
-		_itemList[itemSlot].id = 0xFFFF;
+		_itemList[itemSlot].id = kItemNone;
 		_screen->showMouse();
 		return true;
 	}
@@ -430,7 +431,7 @@
 	}
 
 	for (int i = 0; _itemMagicTable[i] != 0xFF; i += 4) {
-		if (_itemMagicTable[i+0] != handItem || _itemMagicTable[i+1] != item)
+		if (_itemMagicTable[i+0] != handItem || (int8)_itemMagicTable[i+1] != item)
 			continue;
 
 		uint8 resItem = _itemMagicTable[i+2];
@@ -438,7 +439,7 @@
 
 		snd_playSoundEffect(0x0F, 0xC8);
 
-		_itemList[itemSlot].id = (resItem == 0xFF) ? 0xFFFF : resItem;
+		_itemList[itemSlot].id = (int8)resItem;
 
 		_screen->hideMouse();
 		deleteItemAnimEntry(itemSlot);
@@ -465,8 +466,9 @@
 	return false;
 }
 
-bool KyraEngine_MR::itemInventoryMagic(int handItem, int invSlot) {
-	uint16 item = _mainCharacter.inventory[invSlot];
+bool KyraEngine_MR::itemInventoryMagic(Item handItem, int invSlot) {
+	Item item = _mainCharacter.inventory[invSlot];
+
 	if (_currentChapter == 1 && handItem == 3 && item == 3 && queryGameFlag(0x76)) {
 		eelScript();
 		return true;
@@ -482,7 +484,7 @@
 			delay(1*_tickLength, true);
 		}
 
-		_mainCharacter.inventory[invSlot] = 0xFFFF;
+		_mainCharacter.inventory[invSlot] = kItemNone;
 		clearInventorySlot(invSlot, 0);
 		_screen->showMouse();
 		return true;
@@ -497,7 +499,7 @@
 
 		snd_playSoundEffect(0x0F, 0xC8);
 
-		_mainCharacter.inventory[invSlot] = (resItem == 0xFF) ? 0xFFFF : resItem;
+		_mainCharacter.inventory[invSlot] = (int8)resItem;
 
 		_screen->hideMouse();
 		clearInventorySlot(invSlot, 0);

Modified: scummvm/trunk/engines/kyra/items_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/items_v2.cpp	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/items_v2.cpp	2010-10-22 02:10:22 UTC (rev 53697)
@@ -31,9 +31,9 @@
 void KyraEngine_v2::initItemList(int size) {
 	delete[] _itemList;
 
-	_itemList = new Item[size];
+	_itemList = new ItemDefinition[size];
 	assert(_itemList);
-	memset(_itemList, 0, sizeof(Item)*size);
+	memset(_itemList, 0, sizeof(ItemDefinition)*size);
 	_itemListSize = size;
 
 	resetItemList();
@@ -41,7 +41,7 @@
 
 int KyraEngine_v2::findFreeItem() {
 	for (int i = 0; i < _itemListSize; ++i) {
-		if (_itemList[i].id == 0xFFFF)
+		if (_itemList[i].id == kItemNone)
 			return i;
 	}
 	return -1;
@@ -50,13 +50,13 @@
 int KyraEngine_v2::countAllItems() {
 	int num = 0;
 	for (int i = 0; i < _itemListSize; ++i) {
-		if (_itemList[i].id != 0xFFFF)
+		if (_itemList[i].id != kItemNone)
 			++num;
 	}
 	return num;
 }
 
-int KyraEngine_v2::findItem(uint16 sceneId, uint16 id) {
+int KyraEngine_v2::findItem(uint16 sceneId, Item id) {
 	for (int i = 0; i < _itemListSize; ++i) {
 		if (_itemList[i].id == id && _itemList[i].sceneId == sceneId)
 			return i;
@@ -64,7 +64,7 @@
 	return -1;
 }
 
-int KyraEngine_v2::findItem(uint16 item) {
+int KyraEngine_v2::findItem(Item item) {
 	for (int i = 0; i < _itemListSize; ++i) {
 		if (_itemList[i].id == item)
 			return i;
@@ -78,7 +78,7 @@
 }
 
 void KyraEngine_v2::resetItem(int index) {
-	_itemList[index].id = 0xFFFF;
+	_itemList[index].id = kItemNone;
 	_itemList[index].sceneId = 0xFFFF;
 	_itemList[index].x = 0;
 	_itemList[index].y = 0;
@@ -102,8 +102,8 @@
 	Screen *scr = screen();
 	scr->hideMouse();
 	scr->setMouseCursor(0, 0, getShapePtr(0));
-	_itemInHand = -1;
-	_mouseState = -1;
+	_itemInHand = kItemNone;
+	_mouseState = kItemNone;
 	scr->showMouse();
 }
 

Modified: scummvm/trunk/engines/kyra/kyra_hof.cpp
===================================================================
--- scummvm/trunk/engines/kyra/kyra_hof.cpp	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/kyra_hof.cpp	2010-10-22 02:10:22 UTC (rev 53697)
@@ -74,7 +74,7 @@
 	_mainCharX = _mainCharY = -1;
 	_drawNoShapeFlag = false;
 	_charPalEntry = 0;
-	_itemInHand = -1;
+	_itemInHand = kItemNone;
 	_unkSceneScreenFlag1 = false;
 	_noScriptEnter = true;
 	_currentChapter = 0;
@@ -790,7 +790,7 @@
 		if ((mouse.y > 145) || (mouse.x > 6 && mouse.x < 312 && mouse.y > 6 && mouse.y < 135)) {
 			_mouseState = _itemInHand;
 			_screen->hideMouse();
-			if (_itemInHand == -1)
+			if (_itemInHand == kItemNone)
 				_screen->setMouseCursor(0, 0, getShapePtr(0));
 			else
 				_screen->setMouseCursor(8, 15, getShapePtr(_itemInHand+64));

Modified: scummvm/trunk/engines/kyra/kyra_hof.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra_hof.h	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/kyra_hof.h	2010-10-22 02:10:22 UTC (rev 53697)
@@ -450,9 +450,9 @@
 	int checkItemCollision(int x, int y);
 	void updateWaterFlasks();
 
-	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);
+	bool dropItem(int unk1, Item item, int x, int y, int unk2);
+	bool processItemDrop(uint16 sceneId, Item item, int x, int y, int unk1, int unk2);
+	void itemDropDown(int startX, int startY, int dstX, int dstY, int itemSlot, Item item);
 	void exchangeMouseItem(int itemPos);
 	bool pickUpItem(int x, int y);
 
@@ -461,18 +461,18 @@
 	static const byte _itemStringMap[];
 	static const int _itemStringMapSize;
 
-	static const int16 _flaskTable[];
-	bool itemIsFlask(int item);
+	static const Item _flaskTable[];
+	bool itemIsFlask(Item item);
 
 	// inventory
 	static const int _inventoryX[];
 	static const int _inventoryY[];
 	static const uint16 _itemMagicTable[];
 
-	int getInventoryItemSlot(uint16 item);
+	int getInventoryItemSlot(Item item);
 	void removeSlotFromInventory(int slot);
-	bool checkInventoryItemExchange(uint16 item, int slot);
-	void drawInventoryShape(int page, uint16 item, int slot);
+	bool checkInventoryItemExchange(Item item, int slot);
+	void drawInventoryShape(int page, Item item, int slot);
 	void clearInventorySlot(int slot, int page);
 	void redrawInventory(int page);
 	void scrollInventoryWheel();
@@ -561,9 +561,9 @@
 	void changeFileExtension(char *buffer);
 
 	// - Just used in French version
-	int getItemCommandStringDrop(uint16 item);
-	int getItemCommandStringPickUp(uint16 item);
-	int getItemCommandStringInv(uint16 item);
+	int getItemCommandStringDrop(Item item);
+	int getItemCommandStringPickUp(Item item);
+	int getItemCommandStringInv(Item item);
 	// -
 
 	char _internStringBuf[200];

Modified: scummvm/trunk/engines/kyra/kyra_mr.cpp
===================================================================
--- scummvm/trunk/engines/kyra/kyra_mr.cpp	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/kyra_mr.cpp	2010-10-22 02:10:22 UTC (rev 53697)
@@ -99,7 +99,7 @@
 	_unk5 = 0;
 	_unkSceneScreenFlag1 = false;
 	_noScriptEnter = true;
-	_itemInHand = _mouseState = -1;
+	_itemInHand = _mouseState = kItemNone;
 	_savedMouseState = -1;
 	_unk4 = 0;
 	_loadingState = false;
@@ -1167,8 +1167,8 @@
 	}
 
 	if (hasItemCollision && _mouseState < -1 && _itemInHand < 0) {
-		_mouseState = -1;
-		_itemInHand = -1;
+		_mouseState = kItemNone;
+		_itemInHand = kItemNone;
 		_screen->setMouseCursor(0, 0, _gameShapes[0]);
 	}
 

Modified: scummvm/trunk/engines/kyra/kyra_mr.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra_mr.h	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/kyra_mr.h	2010-10-22 02:10:22 UTC (rev 53697)
@@ -235,7 +235,7 @@
 
 	void showMessage(const char *string, uint8 c0, uint8 c1);
 	void showMessageFromCCode(int string, uint8 c0, int);
-	void updateItemCommand(int item, int str, uint8 c0);
+	void updateItemCommand(Item item, int str, uint8 c0);
 
 	void updateCommandLine();
 	void restoreCommandLine();
@@ -262,7 +262,7 @@
 	static const uint8 _inventoryY[];
 	void redrawInventory(int page);
 	void clearInventorySlot(int slot, int page);
-	void drawInventorySlot(int page, int item, int slot);
+	void drawInventorySlot(int page, Item item, int slot);
 
 	WSAMovie_v2 *_invWsa;
 	int _invWsaFrame;
@@ -284,24 +284,24 @@
 	int8 *_itemBuffer1;
 	int8 *_itemBuffer2;
 
-	static const uint8 _trashItemList[];
+	static const Item _trashItemList[];
 	void removeTrashItems();
 
 	void initItems();
 
 	int checkItemCollision(int x, int y);
 
-	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, int remove);
+	bool dropItem(int unk1, Item item, int x, int y, int unk2);
+	bool processItemDrop(uint16 sceneId, Item item, int x, int y, int unk1, int unk2);
+	void itemDropDown(int startX, int startY, int dstX, int dstY, int itemSlot, Item item, int remove);
 	void exchangeMouseItem(int itemPos, int runScript);
 	bool pickUpItem(int x, int y, int runScript);
 
 	bool isDropable(int x, int y);
 
 	const uint8 *_itemMagicTable;
-	bool itemListMagic(int handItem, int itemSlot);
-	bool itemInventoryMagic(int handItem, int invSlot);
+	bool itemListMagic(Item handItem, int itemSlot);
+	bool itemInventoryMagic(Item handItem, int invSlot);
 
 	const uint8 *_itemStringMap;
 	int _itemStringMapSize;

Modified: scummvm/trunk/engines/kyra/kyra_v2.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v2.h	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/kyra_v2.h	2010-10-22 02:10:22 UTC (rev 53697)
@@ -29,6 +29,7 @@
 #include "kyra/kyra_v1.h"
 #include "kyra/gui.h"
 #include "kyra/wsamovie.h"
+#include "kyra/item.h"
 
 #include "common/list.h"
 #include "common/hashmap.h"
@@ -41,7 +42,7 @@
 };
 
 struct ItemAnimData_v2 {
-	int16 itemIndex;
+	Item itemIndex;
 	uint8 numFrames;
 	const FrameControl *frames;
 };
@@ -69,7 +70,7 @@
 		int animScriptFrameAdd;
 
 		// Item specific
-		int maxItemId;
+		Item maxItemId;
 	};
 
 	KyraEngine_v2(OSystem *system, const GameFlags &flags, const EngineDesc &desc);
@@ -286,8 +287,8 @@
 	int _pathfinderPositionIndexTable[200];
 
 	// items
-	struct Item {
-		uint16 id;
+	struct ItemDefinition {
+		Item id;
 		uint16 sceneId;
 		int16 x;
 		uint8 y;
@@ -295,9 +296,9 @@
 
 	void initItemList(int size);
 
-	uint16 _hiddenItems[100];
+	Item _hiddenItems[100];
 
-	Item *_itemList;
+	ItemDefinition *_itemList;
 	int _itemListSize;
 
 	int _itemInHand;
@@ -306,8 +307,8 @@
 	int findFreeItem();
 	int countAllItems();
 
-	int findItem(uint16 sceneId, uint16 id);
-	int findItem(uint16 item);
+	int findItem(uint16 sceneId, Item id);
+	int findItem(Item item);
 
 	void resetItemList();
 	void resetItem(int index);
@@ -325,7 +326,7 @@
 		uint8 facing;
 		uint16 animFrame;
 		byte walkspeed;
-		uint16 inventory[20];
+		Item inventory[20];
 		int16 x1, y1;
 		int16 x2, y2;
 		int16 x3, y3;

Modified: scummvm/trunk/engines/kyra/saveload_hof.cpp
===================================================================
--- scummvm/trunk/engines/kyra/saveload_hof.cpp	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/saveload_hof.cpp	2010-10-22 02:10:22 UTC (rev 53697)
@@ -64,7 +64,7 @@
 	for (int i = 0; i < 25; ++i)
 		out->writeSint16BE(_cauldronTable[i]);
 	for (int i = 0; i < 20; ++i)
-		out->writeUint16BE(_hiddenItems[i]);
+		out->writeSint16BE(_hiddenItems[i]);
 	for (int i = 0; i < 19; ++i)
 		out->write(_conversationState[i], 14);
 	out->write(_newSceneDlgState, 32);
@@ -83,7 +83,7 @@
 	out->writeSint16BE(_mainCharacter.y2);
 
 	for (int i = 0; i < 30; ++i) {
-		out->writeUint16BE(_itemList[i].id);
+		out->writeSint16BE(_itemList[i].id);
 		out->writeUint16BE(_itemList[i].sceneId);
 		out->writeSint16BE(_itemList[i].x);
 		out->writeByte(_itemList[i].y);
@@ -183,7 +183,7 @@
 	for (int i = 0; i < 25; ++i)
 		_cauldronTable[i] = in.readSint16();
 	for (int i = 0; i < 20; ++i)
-		_hiddenItems[i] = in.readUint16();
+		_hiddenItems[i] = in.readSint16();
 
 	if (header.originalSave) {
 		assert(sizeof(_flagsTable) >= 0x41);
@@ -222,7 +222,7 @@
 	_mainCharacter.y2 = in.readSint16();
 
 	for (int i = 0; i < 30; ++i) {
-		_itemList[i].id = in.readUint16();
+		_itemList[i].id = in.readSint16();
 		_itemList[i].sceneId = in.readUint16();
 		_itemList[i].x = in.readSint16();
 		_itemList[i].y = in.readByte();

Modified: scummvm/trunk/engines/kyra/saveload_mr.cpp
===================================================================
--- scummvm/trunk/engines/kyra/saveload_mr.cpp	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/saveload_mr.cpp	2010-10-22 02:10:22 UTC (rev 53697)
@@ -55,7 +55,7 @@
 		out->write(_conversationState[i], 30);
 	out->write(_newSceneDlgState, 40);
 	for (int i = 0; i < 100; ++i)
-		out->writeUint16BE(_hiddenItems[i]);
+		out->writeSint16BE(_hiddenItems[i]);
 	out->write(_scoreFlagTable, 26);
 
 	out->writeUint16BE(_mainCharacter.sceneId);
@@ -74,7 +74,7 @@
 	out->writeSint16BE(_mainCharacter.y3);
 
 	for (int i = 0; i < 50; ++i) {
-		out->writeUint16BE(_itemList[i].id);
+		out->writeSint16BE(_itemList[i].id);
 		out->writeUint16BE(_itemList[i].sceneId);
 		out->writeSint16BE(_itemList[i].x);
 		out->writeSint16BE(_itemList[i].y);
@@ -189,7 +189,7 @@
 	}
 
 	for (int i = 0; i < 100; ++i)
-		_hiddenItems[i] = in.readUint16();
+		_hiddenItems[i] = in.readSint16();
 
 	if (header.originalSave)
 		in.read(_flagsTable, 69);
@@ -216,7 +216,7 @@
 	_mainCharacter.y3 = in.readSint16();
 
 	for (int i = 0; i < 50; ++i) {
-		_itemList[i].id = in.readUint16();
+		_itemList[i].id = in.readSint16();
 		_itemList[i].sceneId = in.readUint16();
 		_itemList[i].x = in.readSint16();
 		_itemList[i].y = in.readSint16();

Modified: scummvm/trunk/engines/kyra/scene_mr.cpp
===================================================================
--- scummvm/trunk/engines/kyra/scene_mr.cpp	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/scene_mr.cpp	2010-10-22 02:10:22 UTC (rev 53697)
@@ -176,8 +176,8 @@
 		setNextIdleAnimTimer();
 
 		if (_itemInHand < 0) {
-			_itemInHand = -1;
-			_mouseState = -1;
+			_itemInHand = kItemNone;
+			_mouseState = kItemNone;
 			_screen->setMouseCursor(0, 0, _gameShapes[0]);
 		}
 
@@ -556,8 +556,8 @@
 
 	for (int i = 0; i < 50; ++i) {
 		obj = &_animObjects[i+17];
-		const Item &item = _itemList[i];
-		if (item.id != 0xFFFF && item.sceneId == _mainCharacter.sceneId) {
+		const ItemDefinition &item = _itemList[i];
+		if (item.id != kItemNone && item.sceneId == _mainCharacter.sceneId) {
 			obj->xPos1 = item.x;
 			obj->yPos1 = item.y;
 			animSetupPaletteEntry(obj);

Modified: scummvm/trunk/engines/kyra/script_hof.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_hof.cpp	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/script_hof.cpp	2010-10-22 02:10:22 UTC (rev 53697)
@@ -410,7 +410,7 @@
 	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_HoF::o2_countItemsInScene(%p) (%d)", (const void *)script, stackPos(0));
 	int count = 0;
 	for (int i = 0; i < 30; ++i) {
-		if (_itemList[i].sceneId == stackPos(0) && _itemList[i].id != 0xFFFF)
+		if (_itemList[i].sceneId == stackPos(0) && _itemList[i].id != kItemNone)
 			++count;
 	}
 	return count;
@@ -1039,7 +1039,7 @@
 
 int KyraEngine_HoF::o2_countItemInstances(EMCState *script) {
 	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_HoF::o2_countItemInstances(%p) (%d)", (const void *)script, stackPos(0));
-	uint16 item = stackPos(0);
+	Item item = stackPos(0);
 
 	int count = 0;
 	for (int i = 0; i < 20; ++i) {
@@ -1047,7 +1047,7 @@
 			++count;
 	}
 
-	if (_itemInHand == int16(item))
+	if (_itemInHand == item)
 		++count;
 
 	for (int i = 0; i < 30; ++i) {
@@ -1075,7 +1075,7 @@
 	const uint16 item = stackPos(1);
 	for (int i = 0; i < 30; ++i) {
 		if (_itemList[i].sceneId == scene && _itemList[i].id == item)
-			_itemList[i].id = 0xFFFF;
+			_itemList[i].id = kItemNone;
 	}
 	return 0;
 }

Modified: scummvm/trunk/engines/kyra/script_mr.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_mr.cpp	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/script_mr.cpp	2010-10-22 02:10:22 UTC (rev 53697)
@@ -216,7 +216,7 @@
 	const int item = stackPos(0);
 	for (int i = 0; i < 10; ++i) {
 		if (_mainCharacter.inventory[i] == item)
-			_mainCharacter.inventory[i] = 0xFFFF;
+			_mainCharacter.inventory[i] = kItemNone;
 	}
 	return 0;
 }
@@ -594,7 +594,7 @@
 int KyraEngine_MR::o3_removeItemSlot(EMCState *script) {
 	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_MR::o3_removeItemSlot(%p) (%d)", (const void *)script, stackPos(0));
 	deleteItemAnimEntry(stackPos(0));
-	_itemList[stackPos(0)].id = 0xFFFF;
+	_itemList[stackPos(0)].id = kItemNone;
 	return 1;
 }
 
@@ -642,7 +642,7 @@
 
 	for (int i = 0; i < 10; ++i) {
 		if (_mainCharacter.inventory[i] == item) {
-			_mainCharacter.inventory[i] = 0xFFFF;
+			_mainCharacter.inventory[i] = kItemNone;
 			++deleted;
 		}
 	}
@@ -654,7 +654,7 @@
 
 	for (int i = 0; i < 50; ++i) {
 		if (_itemList[i].id == item) {
-			_itemList[i].id = 0xFFFF;
+			_itemList[i].id = kItemNone;
 			++deleted;
 		}
 	}

Modified: scummvm/trunk/engines/kyra/staticres.cpp
===================================================================
--- scummvm/trunk/engines/kyra/staticres.cpp	2010-10-22 02:09:16 UTC (rev 53696)
+++ scummvm/trunk/engines/kyra/staticres.cpp	2010-10-22 02:10:22 UTC (rev 53697)
@@ -1866,9 +1866,9 @@
 	3, 3, 3, 3, 3, 3, 3
 };
 
-const int16 KyraEngine_HoF::_flaskTable[] = {
+const Item KyraEngine_HoF::_flaskTable[] = {
 	0x19, 0x14, 0x15, 0x16, 0x17, 0x18, 0x34,
-	0x1B, 0x39, 0x1A, 0x3A, 0x4D, 0x72, -1
+	0x1B, 0x39, 0x1A, 0x3A, 0x4D, 0x72, kItemNone
 };
 
 const uint8 KyraEngine_HoF::_rainbowRoomData[] = {
@@ -1964,10 +1964,10 @@
 	0xB2, 0xB2, 0xB2, 0xB2, 0xB2
 };
 
-const uint8 KyraEngine_MR::_trashItemList[] = {
+const Item KyraEngine_MR::_trashItemList[] = {
 	0x1E, 0x1D, 0x1C, 0x1F, 0x0F, 0x05, 0x04, 0x00,
 	0x03, 0x22, 0x0B, 0x20, 0x21, 0x10, 0x11, 0x3A,
-	0x39, 0x40, 0x3E, 0x3D, 0x3C, 0x3F, 0xFF
+	0x39, 0x40, 0x3E, 0x3D, 0x3C, 0x3F, kItemNone
 };
 
 const uint8 KyraEngine_MR::_itemStringPickUp[] = {


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