diff options
Diffstat (limited to 'kyra/script_v1.cpp')
-rw-r--r-- | kyra/script_v1.cpp | 955 |
1 files changed, 952 insertions, 3 deletions
diff --git a/kyra/script_v1.cpp b/kyra/script_v1.cpp index 326de04d2c..b61aa144d8 100644 --- a/kyra/script_v1.cpp +++ b/kyra/script_v1.cpp @@ -22,6 +22,9 @@ #include "common/stdafx.h" #include "kyra/kyra.h" #include "kyra/script.h" +#include "kyra/screen.h" +#include "kyra/sprites.h" +#include "common/system.h" namespace Kyra { @@ -112,9 +115,10 @@ void ScriptHelper::c1_subSP() { } void ScriptHelper::c1_execOpcode() { - warning("c1_execOpcode STUB"); - // return 0 zero for now - _curScript->retValue = 0; + assert((int)_parameter < _curScript->dataPtr->opcodeSize); + if (_curScript->dataPtr->opcodes[_parameter] == &KyraEngine::cmd_dummy) + debug("calling unimplemented opcode(0x%.02X)", _parameter); + _curScript->retValue = (_vm->*_curScript->dataPtr->opcodes[_parameter])(_curScript); } void ScriptHelper::c1_ifNotJmp() { @@ -287,4 +291,949 @@ void ScriptHelper::c1_setRetAndJmp() { } } +#pragma mark - +#pragma mark - Opcode implementations +#pragma mark - + +#define stackPos(x) script->stack[script->sp+x] + +int KyraEngine::cmd_magicInMouseItem(ScriptState *script) { + warning("STUB: cmd_magicInMouseItem"); + return 0; +} + +int KyraEngine::cmd_characterSays(ScriptState *script) { + warning("STUB: cmd_characterSays"); + return 0; +} + +int KyraEngine::cmd_pauseTicks(ScriptState *script) { + warning("STUB: cmd_pauseTicks"); + return 0; +} + +int KyraEngine::cmd_drawSceneAnimShape(ScriptState *script) { + debug(9, "cmd_drawSceneAnimShape(0x%X)", script); + _screen->drawShape( stackPos(4), _sprites->getSceneShape(stackPos(0)), stackPos(1), stackPos(2), 0, stackPos(3) ); + return 0; +} + +int KyraEngine::cmd_queryGameFlag(ScriptState *script) { + debug(9, "cmd_queryGameFlag(0x%X)", script); + return queryGameFlag(stackPos(0)); +} + +int KyraEngine::cmd_setGameFlag(ScriptState *script) { + debug(9, "cmd_setGameFlag(0x%X)", script); + return setGameFlag(stackPos(0)); +} + +int KyraEngine::cmd_resetGameFlag(ScriptState *script) { + debug(9, "cmd_resetGameFlag(0x%X)", script); + return resetGameFlag(stackPos(0)); +} + +int KyraEngine::cmd_runNPCScript(ScriptState *script) { + warning("STUB: cmd_runNPCScript"); + return 0; +} + +int KyraEngine::cmd_setSpecialExitList(ScriptState *script) { + debug(9, "cmd_setSpecialExitList(0x%X)", script); + + for (int i = 0; i < 10; ++i) { + _exitList[i] = stackPos(i); + } + _exitListPtr = _exitList; + + return 0; +} + +int KyraEngine::cmd_blockInWalkableRegion(ScriptState *script) { + debug(9, "cmd_blockInWalkableRegion(0x%X)", script); + blockOutRegion(stackPos(0), stackPos(1), stackPos(2)-stackPos(0)+1, stackPos(3)-stackPos(1)+1); + return 0; +} + +int KyraEngine::cmd_blockOutWalkableRegion(ScriptState *script) { + debug(9, "cmd_blockOutWalkableRegion(0x%X)", script); + blockOutRegion(stackPos(0), stackPos(1), stackPos(2)-stackPos(0)+1, stackPos(3)-stackPos(1)+1); + return 0; +} + +int KyraEngine::cmd_walkPlayerToPoint(ScriptState *script) { + warning("STUB: cmd_walkPlayerToPoint"); + return 0; +} + +int KyraEngine::cmd_dropItemInScene(ScriptState *script) { + debug(9, "cmd_dropItemInScene(0x%X)", script); + int item = stackPos(0); + int xpos = stackPos(1); + int ypos = stackPos(2); + + byte freeItem = findFreeItemInScene(_currentCharacter->sceneId); + if (freeItem != 0xFF) { + int sceneId = _currentCharacter->sceneId; + Room *room = &_roomTable[sceneId]; + room->itemsXPos[freeItem] = xpos; + room->itemsYPos[freeItem] = ypos; + room->itemsTable[freeItem] = item; + + warning("PARTIALLY IMPLEMENTED: cmd_dropItemInScene"); + // XXX animAddGameItem + // XXX updateAllObjectShapes + } else { + if (item == 43) { + placeItemInGenericMapScene(item, 0); + } else { + placeItemInGenericMapScene(item, 1); + } + } + return 0; +} + +int KyraEngine::cmd_drawAnimShapeIntoScene(ScriptState *script) { + warning("STUB: cmd_drawAnimShapeIntoScene"); + return 0; +} + +int KyraEngine::cmd_createMouseItem(ScriptState *script) { + warning("STUB: cmd_createMouseItem"); + return 0; +} + +int KyraEngine::cmd_savePageToDisk(ScriptState *script) { + warning("STUB: cmd_savePageToDisk"); + return 0; +} + +int KyraEngine::cmd_sceneAnimOn(ScriptState *script) { + debug(9, "cmd_sceneAnimOn(0x%X)", script); + _sprites->enableAnim(stackPos(0)); + return 0; +} + +int KyraEngine::cmd_sceneAnimOff(ScriptState *script) { + debug(9, "cmd_sceneAnimOff(0x%X)", script); + _sprites->disableAnim(stackPos(0)); + return 0; +} + +int KyraEngine::cmd_getElapsedSeconds(ScriptState *script) { + warning("STUB: cmd_getElapsedSeconds"); + return 0; +} + +int KyraEngine::cmd_mouseIsPointer(ScriptState *script) { + warning("STUB: cmd_mouseIsPointer"); + return 0; +} + +int KyraEngine::cmd_destroyMouseItem(ScriptState *script) { + warning("STUB: cmd_destroyMouseItem"); + return 0; +} + +int KyraEngine::cmd_runSceneAnimUntilDone(ScriptState *script) { + warning("STUB: cmd_runSceneAnimUntilDone"); + return 0; +} + +int KyraEngine::cmd_fadeSpecialPalette(ScriptState *script) { + warning("STUB: cmd_fadeSpecialPalette"); + return 0; +} + +int KyraEngine::cmd_playAdlibSound(ScriptState *script) { + warning("STUB: cmd_playAdlibSound"); + return 0; +} + +int KyraEngine::cmd_playAdlibScore(ScriptState *script) { + warning("STUB: cmd_playAdlibScore"); + return 0; +} + +int KyraEngine::cmd_phaseInSameScene(ScriptState *script) { + warning("STUB: cmd_phaseInSameScene"); + return 0; +} + +int KyraEngine::cmd_setScenePhasingFlag(ScriptState *script) { + warning("STUB: cmd_setScenePhasingFlag"); + return 0; +} + +int KyraEngine::cmd_resetScenePhasingFlag(ScriptState *script) { + warning("STUB: cmd_resetScenePhasingFlag"); + return 0; +} + +int KyraEngine::cmd_queryScenePhasingFlag(ScriptState *script) { + warning("STUB: cmd_queryScenePhasingFlag"); + return 0; +} + +int KyraEngine::cmd_sceneToDirection(ScriptState *script) { + warning("STUB: cmd_sceneToDirection"); + return 0; +} + +int KyraEngine::cmd_setBirthstoneGem(ScriptState *script) { + debug(9, "cmd_setBirthstoneGem(0x%X)", script); + int index = stackPos(0); + if (index < 4 && index >= 0) { + _birthstoneGemTable[index] = stackPos(1); + return 1; + } + return 0; +} + +int KyraEngine::cmd_placeItemInGenericMapScene(ScriptState *script) { + debug(9, "cmd_placeItemInGenericMapScene(0x%X)", script); + placeItemInGenericMapScene(stackPos(0), stackPos(1)); + return 0; +} + +int KyraEngine::cmd_setBrandonStatusBit(ScriptState *script) { + warning("STUB: cmd_setBrandonStatusBit"); + return 0; +} + +int KyraEngine::cmd_pauseSeconds(ScriptState *script) { + debug(9, "cmd_pauseSeconds(0x%X)", script); + _system->delayMillis(stackPos(0)*1000); + return 0; +} + +int KyraEngine::cmd_getCharactersLocation(ScriptState *script) { + warning("STUB: cmd_getCharactersLocation"); + return 0; +} + +int KyraEngine::cmd_runNPCSubscript(ScriptState *script) { + warning("STUB: cmd_runNPCSubscript"); + return 0; +} + +int KyraEngine::cmd_magicOutMouseItem(ScriptState *script) { + warning("STUB: cmd_magicOutMouseItem"); + return 0; +} + +int KyraEngine::cmd_internalAnimOn(ScriptState *script) { + warning("STUB: cmd_internalAnimOn"); + return 0; +} + +int KyraEngine::cmd_forceBrandonToNormal(ScriptState *script) { + warning("STUB: cmd_forceBrandonToNormal"); + return 0; +} + +int KyraEngine::cmd_poisonDeathNow(ScriptState *script) { + warning("STUB: cmd_poisonDeathNow"); + return 0; +} + +int KyraEngine::cmd_setScaleMode(ScriptState *script) { + warning("STUB: cmd_setScaleMode"); + return 0; +} + +int KyraEngine::cmd_openWSAFile(ScriptState *script) { + debug(9, "cmd_openWSAFile(0x%X)", script); + + int wsaIndex = stackPos(0); + uint16 offset = READ_BE_UINT16(&script->dataPtr->text[wsaIndex]); + char *filename = (char*)&script->dataPtr->text[offset]; + + wsaIndex = stackPos(1); + // stackPos(2) is NOT used whyever + int offscreenDecode = 0; + if (!stackPos(3)) { + offscreenDecode = 1; + } else { + offscreenDecode = 0; + } + + _wsaObjects[wsaIndex] = wsa_open(filename, offscreenDecode, 0); + assert(_wsaObjects[wsaIndex]); + + return 0; +} + +int KyraEngine::cmd_closeWSAFile(ScriptState *script) { + debug(9, "cmd_closeWSAFile(0x%X)", script); + + int wsaIndex = stackPos(0); + if (_wsaObjects[wsaIndex]) { + wsa_close(_wsaObjects[wsaIndex]); + _wsaObjects[wsaIndex] = 0; + } + + return 0; +} + +int KyraEngine::cmd_runWSAFromBeginningToEnd(ScriptState *script) { + debug(9, "cmd_runWSAFromBeginningToEnd(0x%X)", script); + + _screen->hideMouse(); + + bool running = true; + + int xpos = stackPos(0); + int ypos = stackPos(1); + int waitTime = stackPos(2); + int wsaIndex = stackPos(3); + int worldUpdate = stackPos(4); + int wsaFrame = 0; + + while (running) { + wsa_play(_wsaObjects[wsaIndex], wsaFrame++, xpos, ypos, 0); + if (wsaFrame >= wsa_getNumFrames(_wsaObjects[wsaIndex])) + running = false; + + waitTicks(waitTime); + _screen->updateScreen(); + if (worldUpdate) { + updateAllObjectShapes(); + // XXX + } + } + + _screen->showMouse(); + + return 0; +} + +int KyraEngine::cmd_displayWSAFrame(ScriptState *script) { + warning("STUB: cmd_displayWSAFrame"); + return 0; +} + +int KyraEngine::cmd_enterNewScene(ScriptState *script) { + debug(9, "cmd_enterNewScene(0x%X)", script); + enterNewScene(stackPos(0), stackPos(1), stackPos(2), stackPos(3), stackPos(4)); + return 0; +} + +int KyraEngine::cmd_setSpecialEnterXAndY(ScriptState *script) { + debug(9, "cmd_setSpecialEnterXAndY(0x%X)", script); + _brandonPosX = stackPos(0); + _brandonPosY = stackPos(1); + if (_brandonPosX + 1 == 0 && _brandonPosY + 1 == 0) + _currentCharacter->currentAnimFrame = 88; + return 0; +} + +int KyraEngine::cmd_runWSAFrames(ScriptState *script) { + warning("STUB: cmd_runWSAFrames"); + return 0; +} + +int KyraEngine::cmd_popBrandonIntoScene(ScriptState *script) { + warning("STUB: cmd_popBrandonIntoScene"); + return 0; +} + +int KyraEngine::cmd_restoreAllObjectBackgrounds(ScriptState *script) { + warning("STUB: cmd_restoreAllObjectBackgrounds"); + return 0; +} + +int KyraEngine::cmd_setCustomPaletteRange(ScriptState *script) { + warning("STUB: cmd_setCustomPaletteRange"); + return 0; +} + +int KyraEngine::cmd_loadPageFromDisk(ScriptState *script) { + warning("STUB: cmd_loadPageFromDisk"); + return 0; +} + +int KyraEngine::cmd_customPrintTalkString(ScriptState *script) { + warning("STUB: cmd_customPrintTalkString"); + return 0; +} + +int KyraEngine::cmd_restoreCustomPrintBackground(ScriptState *script) { + warning("STUB: cmd_restoreCustomPrintBackground"); + return 0; +} + +int KyraEngine::cmd_hideMouse(ScriptState *script) { + debug(9, "cmd_hideMouse(0x%X)", script); + _screen->hideMouse(); + return 0; +} + +int KyraEngine::cmd_showMouse(ScriptState *script) { + debug(9, "cmd_showMouse(0x%X)", script); + _screen->showMouse(); + return 0; +} + +int KyraEngine::cmd_getCharacterX(ScriptState *script) { + debug(9, "cmd_getCharacterX(0x%X)", script); + return _characterList[stackPos(0)].x1; +} + +int KyraEngine::cmd_getCharacterY(ScriptState *script) { + debug(9, "cmd_getCharacterY(0x%X)", script); + return _characterList[stackPos(0)].y1; +} + +int KyraEngine::cmd_changeCharactersFacing(ScriptState *script) { + warning("STUB: cmd_changeCharactersFacing"); + return 0; +} + +int KyraEngine::cmd_CopyWSARegion(ScriptState *script) { + warning("STUB: cmd_CopyWSARegion"); + return 0; +} + +int KyraEngine::cmd_printText(ScriptState *script) { + warning("STUB: cmd_printText"); + return 0; +} + +int KyraEngine::cmd_random(ScriptState *script) { + debug(9, "cmd_random(0x%X)", script); + assert(stackPos(0) < stackPos(1)); + return _rnd.getRandomNumberRng(stackPos(0), stackPos(1)); +} + +int KyraEngine::cmd_loadSoundFile(ScriptState *script) { + warning("STUB: cmd_loadSoundFile"); + return 0; +} + +int KyraEngine::cmd_displayWSAFrameOnHidPage(ScriptState *script) { + warning("STUB: cmd_displayWSAFrameOnHidPage"); + return 0; +} + +int KyraEngine::cmd_displayWSASequentialFrames(ScriptState *script) { + warning("STUB: cmd_displayWSASequentialFrames"); + return 0; +} + +int KyraEngine::cmd_drawCharacterStanding(ScriptState *script) { + debug(9, "cmd_drawCharacterStanding(0x%X)", script); + // XXX + int character = stackPos(0); + int animFrame = stackPos(1); + int newFacing = stackPos(2); + int updateShapes = stackPos(3); + _characterList[character].currentAnimFrame = animFrame; + if (newFacing != -1) { + _characterList[character].facing = newFacing; + } + animRefreshNPC(character); + if (updateShapes) { + updateAllObjectShapes(); + } + return 0; +} + +int KyraEngine::cmd_internalAnimOff(ScriptState *script) { + warning("STUB: cmd_internalAnimOff"); + return 0; +} + +int KyraEngine::cmd_changeCharactersXAndY(ScriptState *script) { + warning("STUB: cmd_changeCharactersXAndY"); + return 0; +} + +int KyraEngine::cmd_clearSceneAnimatorBeacon(ScriptState *script) { + warning("STUB: cmd_clearSceneAnimatorBeacon"); + return 0; +} + +int KyraEngine::cmd_querySceneAnimatorBeacon(ScriptState *script) { + warning("STUB: cmd_querySceneAnimatorBeacon"); + return 0; +} + +int KyraEngine::cmd_refreshSceneAnimator(ScriptState *script) { + warning("STUB: cmd_refreshSceneAnimator"); + return 0; +} + +int KyraEngine::cmd_placeItemInOffScene(ScriptState *script) { + debug(9, "cmd_placeItemInOffScene(0x%X)", script); + int item = stackPos(0); + int xpos = stackPos(1); + int ypos = stackPos(2); + int sceneId = stackPos(3); + + byte freeItem = findFreeItemInScene(sceneId); + if (freeItem != 0xFF) { + assert(sceneId < _roomTableSize); + Room *room = &_roomTable[sceneId]; + + room->itemsTable[freeItem] = item; + room->itemsXPos[freeItem] = xpos; + room->itemsYPos[freeItem] = ypos; + } + return 0; +} + +int KyraEngine::cmd_wipeDownMouseItem(ScriptState *script) { + warning("STUB: cmd_wipeDownMouseItem"); + return 0; +} + +int KyraEngine::cmd_placeCharacterInOtherScene(ScriptState *script) { + debug(9, "cmd_placeCharacterInOtherScene(0x%X)", script); + int id = stackPos(0); + int sceneId = stackPos(1); + int xpos = stackPos(2) & 0xFFFC; + int ypos = stackPos(3) & 0xFE; + int facing = stackPos(4); + int animFrame = stackPos(5); + + _characterList[id].sceneId = sceneId; + _characterList[id].x1 = _characterList[id].x2 = xpos; + _characterList[id].y1 = _characterList[id].y2 = ypos; + _characterList[id].facing = facing; + _characterList[id].currentAnimFrame = animFrame; + return 0; +} + +int KyraEngine::cmd_getKey(ScriptState *script) { + warning("STUB: cmd_getKey"); + return 0; +} + +int KyraEngine::cmd_specificItemInInventory(ScriptState *script) { + warning("STUB: cmd_specificItemInInventory"); + return 0; +} + +int KyraEngine::cmd_popMobileNPCIntoScene(ScriptState *script) { + warning("STUB: cmd_popMobileNPCIntoScene"); + return 0; +} + +int KyraEngine::cmd_mobileCharacterInScene(ScriptState *script) { + warning("STUB: cmd_mobileCharacterInScene"); + return 0; +} + +int KyraEngine::cmd_hideMobileCharacter(ScriptState *script) { + warning("STUB: cmd_hideMobileCharacter"); + return 0; +} + +int KyraEngine::cmd_unhideMobileCharacter(ScriptState *script) { + warning("STUB: cmd_unhideMobileCharacter"); + return 0; +} + +int KyraEngine::cmd_setCharactersLocation(ScriptState *script) { + warning("STUB: cmd_setCharactersLocation"); + return 0; +} + +int KyraEngine::cmd_walkCharacterToPoint(ScriptState *script) { + warning("STUB: cmd_walkCharacterToPoint"); +// debug(9, "cmd_walkCharacterToPoint(0x%X)", script); +// int character = stackPos(0); +// int toX = stackPos(1); +// int toY = stackPos(2); +// _movUnkVar1 = 1; +// int findWayReturn = findWay(_characterList[character].x1, _characterList[character].y1, toX, toY, _movFacingTable, 150); +// _movUnkVar1 = 0; +// if (_lastFindWayRet < findWayReturn) { +// _lastFindWayRet = findWayReturn; +// } +// if (findWayReturn == 0x7D00 || findWayReturn == 0) { +// return 0; +// } +// int *curPos = _movFacingTable; +// bool running = true; +// while (running) { +// // XXX +// } + return 0; +} + +int KyraEngine::cmd_specialEventDisplayBrynnsNote(ScriptState *script) { + warning("STUB: cmd_specialEventDisplayBrynnsNote"); + return 0; +} + +int KyraEngine::cmd_specialEventRemoveBrynnsNote(ScriptState *script) { + warning("STUB: cmd_specialEventRemoveBrynnsNote"); + return 0; +} + +int KyraEngine::cmd_setLogicPage(ScriptState *script) { + warning("STUB: cmd_setLogicPage"); + return 0; +} + +int KyraEngine::cmd_fatPrint(ScriptState *script) { + warning("STUB: cmd_fatPrint"); + return 0; +} + +int KyraEngine::cmd_preserveAllObjectBackgrounds(ScriptState *script) { + warning("STUB: cmd_preserveAllObjectBackgrounds"); + return 0; +} + +int KyraEngine::cmd_updateSceneAnimations(ScriptState *script) { + warning("STUB: cmd_updateSceneAnimations"); + return 0; +} + +int KyraEngine::cmd_sceneAnimationActive(ScriptState *script) { + warning("STUB: cmd_sceneAnimationActive"); + return 0; +} + +int KyraEngine::cmd_setCharactersMovementDelay(ScriptState *script) { + warning("STUB: cmd_setCharactersMovementDelay"); + return 0; +} + +int KyraEngine::cmd_getCharactersFacing(ScriptState *script) { + warning("STUB: cmd_getCharactersFacing"); + return 0; +} + +int KyraEngine::cmd_bkgdScrollSceneAndMasksRight(ScriptState *script) { + warning("STUB: cmd_bkgdScrollSceneAndMasksRight"); + return 0; +} + +int KyraEngine::cmd_dispelMagicAnimation(ScriptState *script) { + warning("STUB: cmd_dispelMagicAnimation"); + return 0; +} + +int KyraEngine::cmd_findBrightestFireberry(ScriptState *script) { + warning("STUB: cmd_findBrightestFireberry"); + return 0; +} + +int KyraEngine::cmd_setFireberryGlowPalette(ScriptState *script) { + warning("STUB: cmd_setFireberryGlowPalette"); + return 0; +} + +int KyraEngine::cmd_setDeathHandlerFlag(ScriptState *script) { + warning("STUB: cmd_setDeathHandlerFlag"); + return 0; +} + +int KyraEngine::cmd_drinkPotionAnimation(ScriptState *script) { + warning("STUB: cmd_drinkPotionAnimation"); + return 0; +} + +int KyraEngine::cmd_makeAmuletAppear(ScriptState *script) { + warning("STUB: cmd_makeAmuletAppear"); + return 0; +} + +int KyraEngine::cmd_drawItemShapeIntoScene(ScriptState *script) { + warning("STUB: cmd_drawItemShapeIntoScene"); + return 0; +} + +int KyraEngine::cmd_setCharactersCurrentFrame(ScriptState *script) { + warning("STUB: cmd_setCharactersCurrentFrame"); + return 0; +} + +int KyraEngine::cmd_waitForConfirmationMouseClick(ScriptState *script) { + warning("STUB: cmd_waitForConfirmationMouseClick"); + return 0; +} + +int KyraEngine::cmd_pageFlip(ScriptState *script) { + warning("STUB: cmd_pageFlip"); + return 0; +} + +int KyraEngine::cmd_setSceneFile(ScriptState *script) { + warning("STUB: cmd_setSceneFile"); + return 0; +} + +int KyraEngine::cmd_getItemInMarbleVase(ScriptState *script) { + warning("STUB: cmd_getItemInMarbleVase"); + return 0; +} + +int KyraEngine::cmd_setItemInMarbleVase(ScriptState *script) { + debug(9, "cmd_setItemInMarbleVase(0x%X)", script); + _marbleVaseItem = stackPos(0); + return 0; +} + +int KyraEngine::cmd_addItemToInventory(ScriptState *script) { + warning("STUB: cmd_addItemToInventory"); + return 0; +} + +int KyraEngine::cmd_intPrint(ScriptState *script) { + warning("STUB: cmd_intPrint"); + return 0; +} + +int KyraEngine::cmd_shakeScreen(ScriptState *script) { + warning("STUB: cmd_shakeScreen"); + return 0; +} + +int KyraEngine::cmd_createAmuletJewel(ScriptState *script) { + warning("STUB: cmd_createAmuletJewel"); + return 0; +} + +int KyraEngine::cmd_setSceneAnimCurrXY(ScriptState *script) { + warning("STUB: cmd_setSceneAnimCurrXY"); + return 0; +} + +int KyraEngine::cmd_Poison_Brandon_And_Remaps(ScriptState *script) { + warning("STUB: cmd_Poison_Brandon_And_Remaps"); + return 0; +} + +int KyraEngine::cmd_fillFlaskWithWater(ScriptState *script) { + warning("STUB: cmd_fillFlaskWithWater"); + return 0; +} + +int KyraEngine::cmd_getCharactersMovementDelay(ScriptState *script) { + warning("STUB: cmd_getCharactersMovementDelay"); + return 0; +} + +int KyraEngine::cmd_getBirthstoneGem(ScriptState *script) { + warning("STUB: cmd_getBirthstoneGem"); + return 0; +} + +int KyraEngine::cmd_queryBrandonStatusBit(ScriptState *script) { + warning("STUB: cmd_queryBrandonStatusBit"); + return 0; +} + +int KyraEngine::cmd_playFluteAnimation(ScriptState *script) { + warning("STUB: cmd_playFluteAnimation"); + return 0; +} + +int KyraEngine::cmd_playWinterScrollSequence(ScriptState *script) { + warning("STUB: cmd_playWinterScrollSequence"); + return 0; +} + +int KyraEngine::cmd_getIdolGem(ScriptState *script) { + warning("STUB: cmd_getIdolGem"); + return 0; +} + +int KyraEngine::cmd_setIdolGem(ScriptState *script) { + debug(9, "cmd_setIdolGem(0x%X)", script); + _idolGemsTable[stackPos(0)] = stackPos(1); + return 0; +} + +int KyraEngine::cmd_totalItemsInScene(ScriptState *script) { + warning("STUB: cmd_totalItemsInScene"); + return 0; +} + +int KyraEngine::cmd_restoreBrandonsMovementDelay(ScriptState *script) { + warning("STUB: cmd_restoreBrandonsMovementDelay"); + return 0; +} + +int KyraEngine::cmd_setMousePos(ScriptState *script) { + warning("STUB: cmd_setMousePos"); + return 0; +} + +int KyraEngine::cmd_getMouseState(ScriptState *script) { + warning("STUB: cmd_getMouseState"); + return 0; +} + +int KyraEngine::cmd_setEntranceMouseCursorTrack(ScriptState *script) { + debug(9, "cmd_setEntranceMouseCursorTrack(0x%X)", script); + _entranceMouseCursorTracks[0] = stackPos(0); + _entranceMouseCursorTracks[1] = stackPos(1); + _entranceMouseCursorTracks[2] = stackPos(0) + stackPos(2) - 1; + _entranceMouseCursorTracks[3] = stackPos(1) + stackPos(3) - 1; + _entranceMouseCursorTracks[4] = stackPos(3); + return 0; +} + +int KyraEngine::cmd_itemAppearsOnGround(ScriptState *script) { + warning("STUB: cmd_itemAppearsOnGround"); + return 0; +} + +int KyraEngine::cmd_setNoDrawShapesFlag(ScriptState *script) { + warning("STUB: cmd_setNoDrawShapesFlag"); + return 0; +} + +int KyraEngine::cmd_fadeEntirePalette(ScriptState *script) { + warning("STUB: cmd_fadeEntirePalette"); + return 0; +} + +int KyraEngine::cmd_itemOnGroundHere(ScriptState *script) { + warning("STUB: cmd_itemOnGroundHere"); + return 0; +} + +int KyraEngine::cmd_queryCauldronState(ScriptState *script) { + warning("STUB: cmd_queryCauldronState"); + return 0; +} + +int KyraEngine::cmd_setCauldronState(ScriptState *script) { + warning("STUB: cmd_setCauldronState"); + return 0; +} + +int KyraEngine::cmd_queryCrystalState(ScriptState *script) { + warning("STUB: cmd_queryCrystalState"); + return 0; +} + +int KyraEngine::cmd_setCrystalState(ScriptState *script) { + warning("STUB: cmd_setCrystalState"); + return 0; +} + +int KyraEngine::cmd_setPaletteRange(ScriptState *script) { + warning("STUB: cmd_setPaletteRange"); + return 0; +} + +int KyraEngine::cmd_shrinkBrandonDown(ScriptState *script) { + warning("STUB: cmd_shrinkBrandonDown"); + return 0; +} + +int KyraEngine::cmd_growBrandonUp(ScriptState *script) { + warning("STUB: cmd_growBrandonUp"); + return 0; +} + +int KyraEngine::cmd_setBrandonScaleXAndY(ScriptState *script) { + warning("STUB: cmd_setBrandonScaleXAndY"); + return 0; +} + +int KyraEngine::cmd_resetScaleMode(ScriptState *script) { + warning("STUB: cmd_resetScaleMode"); + return 0; +} + +int KyraEngine::cmd_getScaleDepthTableValue(ScriptState *script) { + warning("STUB: cmd_getScaleDepthTableValue"); + return 0; +} + +int KyraEngine::cmd_setScaleDepthTableValue(ScriptState *script) { + warning("STUB: cmd_setScaleDepthTableValue"); + return 0; +} + +int KyraEngine::cmd_message(ScriptState *script) { + warning("STUB: cmd_message"); + return 0; +} + +int KyraEngine::cmd_checkClickOnNPC(ScriptState *script) { + warning("STUB: cmd_checkClickOnNPC"); + return 0; +} + +int KyraEngine::cmd_getFoyerItem(ScriptState *script) { + warning("STUB: cmd_getFoyerItem"); + return 0; +} + +int KyraEngine::cmd_setFoyerItem(ScriptState *script) { + warning("STUB: cmd_setFoyerItem"); + return 0; +} + +int KyraEngine::cmd_setNoItemDropRegion(ScriptState *script) { + debug(9, "cmd_setNoItemDropRegion(0x%X)", script); + addToNoDropRects(stackPos(0), stackPos(1), stackPos(2), stackPos(3)); + return 0; +} + +int KyraEngine::cmd_walkMalcolmOn(ScriptState *script) { + warning("STUB: cmd_walkMalcolmOn"); + return 0; +} + +int KyraEngine::cmd_passiveProtection(ScriptState *script) { + warning("STUB: cmd_passiveProtection"); + return 0; +} + +int KyraEngine::cmd_setPlayingLoop(ScriptState *script) { + warning("STUB: cmd_setPlayingLoop"); + return 0; +} + +int KyraEngine::cmd_brandonToStoneSequence(ScriptState *script) { + warning("STUB: cmd_brandonToStoneSequence"); + return 0; +} + +int KyraEngine::cmd_brandonHealingSequence(ScriptState *script) { + warning("STUB: cmd_brandonHealingSequence"); + return 0; +} + +int KyraEngine::cmd_protectCommandLine(ScriptState *script) { + warning("STUB: cmd_protectCommandLine"); + return 0; +} + +int KyraEngine::cmd_pauseMusicSeconds(ScriptState *script) { + warning("STUB: cmd_pauseMusicSeconds"); + return 0; +} + +int KyraEngine::cmd_resetMaskRegion(ScriptState *script) { + warning("STUB: cmd_resetMaskRegion"); + return 0; +} + +int KyraEngine::cmd_setPaletteChangeFlag(ScriptState *script) { + warning("STUB: cmd_setPaletteChangeFlag"); + return 0; +} + +int KyraEngine::cmd_fillRect(ScriptState *script) { + warning("STUB: cmd_fillRect"); + return 0; +} + +int KyraEngine::cmd_dummy(ScriptState *script) { + debug(9, "cmd_dummy(0x%X)", script); + return 0; +} + } // end of namespace Kyra |