mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-14 21:59:17 +00:00
Implemented opcode 30: o2_addItemToCurScene
svn-id: r31140
This commit is contained in:
parent
2a95c653eb
commit
3bfa70bc3e
@ -2117,7 +2117,7 @@ void KyraEngine_v2::setupOpcodeTable() {
|
||||
// 0x1c
|
||||
OpcodeUnImpl(),
|
||||
OpcodeUnImpl(),
|
||||
OpcodeUnImpl(),
|
||||
Opcode(o2_addItemToCurScene),
|
||||
OpcodeUnImpl(),
|
||||
// 0x20
|
||||
Opcode(o2_checkForItem),
|
||||
|
@ -952,6 +952,7 @@ protected:
|
||||
int o2_wsaOpen(ScriptState *script);
|
||||
int o2_displayWsaSequentialFrames(ScriptState *script);
|
||||
int o2_displayWsaSequence(ScriptState *script);
|
||||
int o2_addItemToCurScene(ScriptState *script);
|
||||
int o2_checkForItem(ScriptState *script);
|
||||
int o2_defineItem(ScriptState *script);
|
||||
int o2_removeItemFromInventory(ScriptState *script);
|
||||
|
@ -311,6 +311,28 @@ int KyraEngine_v2::o2_displayWsaSequence(ScriptState *script) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int KyraEngine_v2::o2_addItemToCurScene(ScriptState *script) {
|
||||
debugC(3, kDebugLevelScriptFuncs, "o2_addItemToCurScene(%p) (%d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2));
|
||||
const int16 id = stackPos(0);
|
||||
int x = stackPos(1);
|
||||
int y = stackPos(2);
|
||||
|
||||
int freeItem = findFreeItem();
|
||||
x = MAX(14, x);
|
||||
x = MIN(304, x);
|
||||
y = MAX(14, y);
|
||||
y = MIN(136, y);
|
||||
if (freeItem >= 0) {
|
||||
_itemList[freeItem].id = id;
|
||||
_itemList[freeItem].x = x;
|
||||
_itemList[freeItem].y = y;
|
||||
_itemList[freeItem].sceneId = _mainCharacter.sceneId;
|
||||
addItemToAnimList(freeItem);
|
||||
refreshAnimObjectsIfNeed();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int KyraEngine_v2::o2_checkForItem(ScriptState *script) {
|
||||
debugC(3, kDebugLevelScriptFuncs, "o2_checkForItem(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1));
|
||||
return findItem(stackPos(0), stackPos(1)) == -1 ? 0 : 1;
|
||||
|
Loading…
Reference in New Issue
Block a user