int KyraEngine_v2::o2a_setAnimationShapes(EMCState *script) { debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v2::o2a_setAnimationShapes(%p) ('%s', %d, %d, %d, %d, %d)", (const void *)script, stackPosString(0), stackPos(1), stackPos(2), stackPos(3), stackPos(4), stackPos(5)); strcpy(_animShapeFilename, stackPosString(0)); _animShapeLastEntry = stackPos(1); _animShapeWidth = stackPos(2); _animShapeHeight = stackPos(3); _animShapeXAdd = stackPos(4); _animShapeYAdd = stackPos(5); return 0; }
int KyraEngine_MR::o3_defineObject(EMCState *script) { debugC(3, kDebugLevelScriptFuncs, "KyraEngine_MR::o3_defineObject(%p) (%d, '%s', %d, %d, %d, %d, %d, %d)", (const void *)script, stackPos(0), stackPosString(1), stackPos(2), stackPos(3), stackPos(4), stackPos(5), stackPos(6), stackPos(7)); TalkObject &obj = _talkObjectList[stackPos(0)]; strcpy(obj.filename, stackPosString(1)); obj.sceneAnim = stackPos(2); obj.sceneScript = stackPos(3); obj.x = stackPos(4); obj.y = stackPos(5); obj.color = stackPos(6); obj.sceneId = stackPos(7); return 0; }
int KyraEngine_MR::o3_defineSceneAnim(EMCState *script) { debugC(3, kDebugLevelScriptFuncs, "KyraEngine_MR::o3_defineSceneAnim(%p) (%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, '%s')", (const void *)script, stackPos(0), stackPos(1), stackPos(2), stackPos(3), stackPos(4), stackPos(5), stackPos(6), stackPos(7), stackPos(8), stackPos(9), stackPos(10), stackPos(11), stackPosString(12)); const int animId = stackPos(0); SceneAnim &anim = _sceneAnims[animId]; musicUpdate(0); uint16 flags = anim.flags = stackPos(1); int x = anim.x = stackPos(2); int y = anim.y = stackPos(3); int x2 = anim.x2 = stackPos(4); int y2 = anim.y2 = stackPos(5); int w = anim.width = stackPos(6); int h = anim.height = stackPos(7); anim.specialSize = stackPos(9); anim.shapeIndex = stackPos(11); const char *filename = stackPosString(12); if (filename) strcpy(anim.filename, filename); if (flags & 8) { _sceneAnimMovie[animId]->open(filename, 1, 0); musicUpdate(0); if (_sceneAnimMovie[animId]->opened()) { anim.wsaFlag = 1; if (x2 == -1) x2 = _sceneAnimMovie[animId]->xAdd(); if (y2 == -1) y2 = _sceneAnimMovie[animId]->yAdd(); if (w == -1) w = _sceneAnimMovie[animId]->width(); if (h == -1) h = _sceneAnimMovie[animId]->height(); if (x == -1) x = (w >> 1) + x2; if (y == -1) y = y2 + h - 1; anim.x = x; anim.y = y; anim.x2 = x2; anim.y2 = y2; anim.width = w; anim.height = h; }
int KyraEngine_v2::o2_runAnimationScript(EMCState *script) { debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v2::o2_runAnimationScript(%p) ('%s', %d, %d, %d)", (const void *)script, stackPosString(0), stackPos(1), stackPos(2), stackPos(3)); runAnimationScript(stackPosString(0), stackPos(3), stackPos(2) ? 1 : 0, stackPos(1), stackPos(2)); return 0; }
int KyraEngine_v2::o2_defineScene(EMCState *script) { debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v2::o2_defineScene(%p) (%d, '%s', %d, %d, %d, %d, %d, %d)", (const void *)script, stackPos(0), stackPosString(1), stackPos(2), stackPos(3), stackPos(4), stackPos(5), stackPos(6), stackPos(7)); const int scene = stackPos(0); strcpy(_sceneList[scene].filename1, stackPosString(1)); strcpy(_sceneList[scene].filename2, stackPosString(1)); _sceneList[scene].exit1 = stackPos(2); _sceneList[scene].exit2 = stackPos(3); _sceneList[scene].exit3 = stackPos(4); _sceneList[scene].exit4 = stackPos(5); _sceneList[scene].flags = stackPos(6); _sceneList[scene].sound = stackPos(7); if (_mainCharacter.sceneId == scene) { _sceneExit1 = _sceneList[scene].exit1; _sceneExit2 = _sceneList[scene].exit2; _sceneExit3 = _sceneList[scene].exit3; _sceneExit4 = _sceneList[scene].exit4; } return 0; }
int KyraEngine_MR::o3_setSceneFilename(EMCState *script) { debugC(3, kDebugLevelScriptFuncs, "KyraEngine_MR::o3_setSceneFilename(%p) (%d, '%s')", (const void *)script, stackPos(0), stackPosString(1)); strcpy(_sceneList[stackPos(0)].filename1, stackPosString(1)); _sceneList[stackPos(0)].filename1[9] = 0; return 0; }