Beispiel #1
0
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;
}
Beispiel #2
0
void KyraEngine_MR::eelScript() {
	if (_chatText)
		return;
	_screen->hideMouse();

	if (_inventoryState)
		hideInventory();
	removeHandItem();

	objectChat((const char *)getTableEntry(_cCodeFile, 35), 0, 204, 35);
	objectChat((const char *)getTableEntry(_cCodeFile, 40), 0, 204, 40);

	setGameFlag(0xD1);

	snd_playSoundEffect(0x2A, 0xC8);

	setGameFlag(0x171);

	switch (_characterShapeFile-1) {
	case 0:
		runAnimationScript("EELS01.EMC", 0, 0, 1, 1);
		break;

	case 1:
		runAnimationScript("EELS02.EMC", 0, 0, 1, 1);
		break;

	case 2:
		runAnimationScript("EELS03.EMC", 0, 0, 1, 1);
		break;

	case 3:
		runAnimationScript("EELS04.EMC", 0, 0, 1, 1);
		break;

	default:
		resetGameFlag(0x171);
		runAnimationScript("EELS00.EMC", 0, 0, 1, 1);
	}

	changeChapter(2, 29, 0, 4);
	_screen->showMouse();
}
Beispiel #3
0
void KyraEngine_MR::timerFleaDeath(int arg) {
	_timer->setCountdown(4, 5400);
	saveGameStateIntern(999, "Autosave", 0);
	_screen->hideMouse();
	_timer->disable(4);
	runAnimationScript("FLEADTH1.EMC", 0, 0, 1, 1);
	runAnimationScript("FLEADTH2.EMC", 0, 0, 1, 0);
	showBadConscience();
	delay(60, true);
	const char *str1 = (const char *)getTableEntry(_cCodeFile, 130);
	const char *str2 = (const char *)getTableEntry(_cCodeFile, 131);
	if (str1 && str2) {
		badConscienceChat(str1, 204, 130);
		badConscienceChat(str2, 204, 131);
	}
	delay(60, true);
	hideBadConscience();
	runAnimationScript("FLEADTH3.EMC", 0, 0, 0, 1);
	_deathHandler = 9;
	_screen->showMouse();
}