int KyraEngine_MR::o3_addItemToCurScene(EMCState *script) { debugC(3, kDebugLevelScriptFuncs, "KyraEngine_MR::o3_addItemToCurScene(%p) (%d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2)); const uint16 item = stackPos(0); int x = stackPos(1); int y = stackPos(2); int itemSlot = findFreeItem(); if (x < 20) x = 20; else if (x > 299) x = 299; if (y < 18) y = 18; else if (y > 187) y = 187; if (itemSlot >= 0) { _itemList[itemSlot].x = x; _itemList[itemSlot].y = y; _itemList[itemSlot].id = item; _itemList[itemSlot].sceneId = _mainCharacter.sceneId; addItemToAnimList(itemSlot); refreshAnimObjectsIfNeed(); } return itemSlot; }
int KyraEngine_v2::o2_defineItem(EMCState *script) { debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v2::o2_defineItem(%p) (%d, %d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2), stackPos(3)); int freeItem = findFreeItem(); if (freeItem >= 0) { _itemList[freeItem].id = stackPos(0); _itemList[freeItem].x = stackPos(1); _itemList[freeItem].y = stackPos(2); _itemList[freeItem].sceneId = stackPos(3); } return freeItem; }