diff options
| -rw-r--r-- | scumm/actor.cpp | 2 | ||||
| -rw-r--r-- | scumm/debugger.cpp | 2 | ||||
| -rw-r--r-- | scumm/script.cpp | 36 | ||||
| -rw-r--r-- | scumm/script_v2.cpp | 6 | ||||
| -rw-r--r-- | scumm/script_v5.cpp | 8 | ||||
| -rw-r--r-- | scumm/script_v6.cpp | 10 | ||||
| -rw-r--r-- | scumm/scumm.h | 8 | ||||
| -rw-r--r-- | scumm/scummvm.cpp | 2 | ||||
| -rw-r--r-- | scumm/smush/smush_player.cpp | 2 | 
9 files changed, 36 insertions, 40 deletions
| diff --git a/scumm/actor.cpp b/scumm/actor.cpp index 3d6972e0c0..a7c2a04021 100644 --- a/scumm/actor.cpp +++ b/scumm/actor.cpp @@ -99,7 +99,7 @@ void Actor::initActor(int mode) {  }  void Actor::stopActorMoving() { -	_vm->stopScriptNr(walk_script); +	_vm->stopScript(walk_script);  	moving = 0;  } diff --git a/scumm/debugger.cpp b/scumm/debugger.cpp index a55279f1a2..139ca5bb37 100644 --- a/scumm/debugger.cpp +++ b/scumm/debugger.cpp @@ -466,7 +466,7 @@ bool ScummDebugger::Cmd_Script(int argc, const char** argv) {  	//}  	if ((!strcmp(argv[2], "kill")) || (!strcmp(argv[2], "stop"))) { -		_s->stopScriptNr(scriptnum); +		_s->stopScript(scriptnum);  	} else if ((!strcmp(argv[2], "run")) || (!strcmp(argv[2], "start"))) {  		_s->runScript(scriptnum, 0, 0, 0);  		return false; diff --git a/scumm/script.cpp b/scumm/script.cpp index 476a5f1662..be6963edf2 100644 --- a/scumm/script.cpp +++ b/scumm/script.cpp @@ -46,7 +46,7 @@ void Scumm::runScript(int script, bool freezeResistant, bool recursive, int *lva  		return;  	if (!recursive) -		stopScriptNr(script); +		stopScript(script);  	if (script < _numGlobalScripts) {  		scriptPtr = getResourceAddress(rtScript, script); @@ -76,7 +76,7 @@ void Scumm::runScript(int script, bool freezeResistant, bool recursive, int *lva  	runScriptNested(slot);  } -void Scumm::runVerbCode(int object, int entry, bool freezeResistant, bool recursive, int *vars) { +void Scumm::runObjectScript(int object, int entry, bool freezeResistant, bool recursive, int *vars) {  	ScriptSlot *s;  	uint32 obcd;  	int slot, where, offs; @@ -192,7 +192,7 @@ int Scumm::getVerbEntrypoint(int obj, int entry) {  }  /* Stop script 'script' */ -void Scumm::stopScriptNr(int script) { +void Scumm::stopScript(int script) {  	ScriptSlot *ss;  	NestedScript *nest;  	int i, num; @@ -259,7 +259,7 @@ void Scumm::stopObjectScript(int script) {  	do {  		if (nest->number == script && -				(nest->where == WIO_ROOM || nest->where == WIO_FLOBJECT || nest->where == WIO_INVENTORY)) { +				(nest->where == WIO_ROOM || nest->where == WIO_INVENTORY || nest->where == WIO_FLOBJECT)) {  			nest->number = 0xFF;  			nest->slot = 0xFF;  			nest->where = 0xFF; @@ -620,7 +620,7 @@ void Scumm::stopObjectCode() {  	if (ss->where != WIO_GLOBAL && ss->where != WIO_LOCAL) {  		if (ss->cutsceneOverride) { -			warning("Object %d ending with active cutscene/override", ss->number); +			warning("Object %d ending with active cutscene/override (%d)", ss->number, ss->cutsceneOverride);  			ss->cutsceneOverride = 0;  		}  	} else { @@ -634,19 +634,6 @@ void Scumm::stopObjectCode() {  	_currentScript = 0xFF;  } -bool Scumm::isScriptInUse(int script) { -	ScriptSlot *ss; -	int i; - -	ss = vm.slot; -	for (i = 0; i < NUM_SCRIPT_SLOT; i++, ss++) { -		if (ss->number == script) -			return true; -	} -	return false; -} - -  void Scumm::runHook(int i) {  	if (_features & GF_AFTER_V2) {  		// FIXME - TODO @@ -909,6 +896,15 @@ void Scumm::decreaseScriptDelay(int amount) {  	}  } +bool Scumm::isScriptInUse(int script) { +	int i; +	ScriptSlot *ss = vm.slot; +	for (i = 0; i < NUM_SCRIPT_SLOT; i++, ss++) +		if (ss->number == script) +			return true; +	return false; +} +  bool Scumm::isScriptRunning(int script) {  	int i;  	ScriptSlot *ss = vm.slot; @@ -1037,7 +1033,7 @@ int Scumm::resStrLen(const byte *src) const {  	return num;  } -void Scumm::cutscene(int *args) { +void Scumm::beginCutscene(int *args) {  	int scr = _currentScript;  	vm.slot[scr].cutsceneOverride++; @@ -1077,7 +1073,7 @@ void Scumm::endCutscene() {  		runScript(VAR(VAR_CUTSCENE_END_SCRIPT), 0, 0, args);  } -void Scumm::exitCutscene() { +void Scumm::abortCutscene() {  	uint32 offs = vm.cutScenePtr[vm.cutSceneStackPointer];  	if (offs) {  		ScriptSlot *ss = &vm.slot[vm.cutSceneScript[vm.cutSceneStackPointer]]; diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp index fae2680235..5d803e16ab 100644 --- a/scumm/script_v2.cpp +++ b/scumm/script_v2.cpp @@ -828,7 +828,7 @@ void Scumm_v2::o2_doSentence() {  	a = getVarOrDirectByte(0x80);  	if (a == 0xFB) {  		_sentenceNum = 0; -		stopScriptNr(SENTENCE_SCRIPT); +		stopScript(SENTENCE_SCRIPT);  		return;  	}  	if (a == 0xFC) { @@ -855,7 +855,7 @@ void Scumm_v2::o2_doSentence() {  		_scummVars[VAR_ACTIVE_VERB] = st->verb;  		_scummVars[VAR_ACTIVE_OBJECT1] = st->objectA;  		_scummVars[VAR_ACTIVE_OBJECT2] = st->objectB; -		runVerbCode(st->objectA, st->verb, 0, 0, NULL); +		runObjectScript(st->objectA, st->verb, 0, 0, NULL);  		break;  	case 2: @@ -1134,7 +1134,7 @@ void Scumm_v2::o2_roomOps() {  void Scumm_v2::o2_cutscene() {  	warning("TODO o2_cutscene()");  	_sentenceNum = 0; -	stopScriptNr(SENTENCE_SCRIPT); +	stopScript(SENTENCE_SCRIPT);  	resetSentence();  } diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp index a02c71758f..59c77b23f3 100644 --- a/scumm/script_v5.cpp +++ b/scumm/script_v5.cpp @@ -688,7 +688,7 @@ void Scumm_v5::o5_cursorCommand() {  void Scumm_v5::o5_cutscene() {  	int args[16];  	getWordVararg(args); -	cutscene(args); +	beginCutscene(args);  }  void Scumm_v5::o5_endCutscene() { @@ -738,7 +738,7 @@ void Scumm_v5::o5_doSentence() {  	a = getVarOrDirectByte(0x80);  	if (a == 0xFE) {  		_sentenceNum = 0; -		stopScriptNr(VAR(VAR_SENTENCE_SCRIPT)); +		stopScript(VAR(VAR_SENTENCE_SCRIPT));  		clearClickedStatus();  		return;  	} @@ -2057,7 +2057,7 @@ void Scumm_v5::o5_startObject() {  	script = getVarOrDirectByte(0x40);  	getWordVararg(data); -	runVerbCode(obj, script, 0, 0, data); +	runObjectScript(obj, script, 0, 0, data);  }  void Scumm_v5::o5_startScript() { @@ -2094,7 +2094,7 @@ void Scumm_v5::o5_stopScript() {  	if (!script)  		stopObjectCode();  	else -		stopScriptNr(script); +		stopScript(script);  }  void Scumm_v5::o5_stringOps() { diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp index f893c836f1..1306ede6c1 100644 --- a/scumm/script_v6.cpp +++ b/scumm/script_v6.cpp @@ -724,7 +724,7 @@ void Scumm_v6::o6_startObjectEx() {  	entryp = pop();  	script = pop();  	flags = pop(); -	runVerbCode(script, entryp, (flags & 1) != 0, (flags & 2) != 0, args); +	runObjectScript(script, entryp, (flags & 1) != 0, (flags & 2) != 0, args);  }  void Scumm_v6::o6_startObjectQuick() { @@ -733,7 +733,7 @@ void Scumm_v6::o6_startObjectQuick() {  	getStackList(args, ARRAYSIZE(args));  	entryp = pop();  	script = pop(); -	runVerbCode(script, entryp, 0, 1, args); +	runObjectScript(script, entryp, 0, 1, args);  }  void Scumm_v6::o6_setObjectState() { @@ -765,7 +765,7 @@ void Scumm_v6::o6_endCutscene() {  void Scumm_v6::o6_cutscene() {  	int args[16];  	getStackList(args, ARRAYSIZE(args)); -	cutscene(args); +	beginCutscene(args);  }  void Scumm_v6::o6_stopMusic() { @@ -983,7 +983,7 @@ void Scumm_v6::o6_stopScript() {  	if (script == 0)  		stopObjectCode();  	else -		stopScriptNr(script); +		stopScript(script);  }  void Scumm_v6::o6_walkActorToObj() { @@ -2165,7 +2165,7 @@ void Scumm_v6::o6_delayMinutes() {  void Scumm_v6::o6_stopSentence() {  	_sentenceNum = 0; -	stopScriptNr(VAR(VAR_SENTENCE_SCRIPT)); +	stopScript(VAR(VAR_SENTENCE_SCRIPT));  	clearClickedStatus();  } diff --git a/scumm/scumm.h b/scumm/scumm.h index a797315d1a..e7abedd2d8 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -507,7 +507,7 @@ protected:  public:  	void runScript(int script, bool freezeResistant, bool recursive, int *lvarptr); -	void stopScriptNr(int script); +	void stopScript(int script);  protected:  	void runScriptNested(int script); @@ -532,9 +532,9 @@ protected:  	void freezeScripts(int scr);  	void unfreezeScripts();  	void runAllScripts(); -	void cutscene(int *args); +	void beginCutscene(int *args);  	void endCutscene(); -	void exitCutscene(); +	void abortCutscene();  	void runExitScript();  	void runEntryScript(); @@ -709,7 +709,7 @@ protected:  	int getVerbEntrypoint(int obj, int entry);  	int getVerbSlot(int id, int mode);  	void killVerb(int slot); -	void runVerbCode(int script, int entry, bool freezeResistant, bool recursive, int *vars); +	void runObjectScript(int script, int entry, bool freezeResistant, bool recursive, int *vars);  	void setVerbObject(uint room, uint object, uint verb);  public: diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp index 18be9f9983..f9aecc09e5 100644 --- a/scumm/scummvm.cpp +++ b/scumm/scummvm.cpp @@ -1762,7 +1762,7 @@ void Scumm::processKbd() {  		if (_insaneState) {  			_videoFinished = true;  		} else -			exitCutscene(); +			abortCutscene();  	} else if (_lastKeyHit == saveloadkey && _currentRoom != 0) {  		if (VAR_SAVELOAD_SCRIPT != 0xFF)  			runScript(VAR(VAR_SAVELOAD_SCRIPT), 0, 0, 0); diff --git a/scumm/smush/smush_player.cpp b/scumm/smush/smush_player.cpp index d851399dbd..a29b7ac65c 100644 --- a/scumm/smush/smush_player.cpp +++ b/scumm/smush/smush_player.cpp @@ -274,7 +274,7 @@ void SmushPlayer::deinit() {  	}  	_scumm->_insaneState = false; -	_scumm->exitCutscene(); +	_scumm->abortCutscene();  	if (_scumm->_imuseDigital) {  		_scumm->_imuseDigital->pause(false);  	} | 
