diff options
| author | James Brown | 2002-05-08 09:09:39 +0000 | 
|---|---|---|
| committer | James Brown | 2002-05-08 09:09:39 +0000 | 
| commit | 41a843d7620838fbaff1d26242c04127f66427c8 (patch) | |
| tree | 0ec52fac15bc5f80f6df65f80f05e161bceb67d8 | |
| parent | 2676b82833cb20ff9bc287e9f6e82760143f3948 (diff) | |
| download | scummvm-rg350-41a843d7620838fbaff1d26242c04127f66427c8.tar.gz scummvm-rg350-41a843d7620838fbaff1d26242c04127f66427c8.tar.bz2 scummvm-rg350-41a843d7620838fbaff1d26242c04127f66427c8.zip | |
Fix next to last Zak bugs.
Zak256 is now completable apart from getting stuck in the shop (walkbox issue)
svn-id: r4242
| -rw-r--r-- | script_v1.cpp | 20 | ||||
| -rw-r--r-- | scummvm.cpp | 2 | 
2 files changed, 5 insertions, 17 deletions
| diff --git a/script_v1.cpp b/script_v1.cpp index aaf2de02c0..daae2c75a2 100644 --- a/script_v1.cpp +++ b/script_v1.cpp @@ -900,9 +900,6 @@ void Scumm::o5_chainScript()  	cur = _currentScript; -	if (vm.slot[cur].cutsceneOverride != 0) -		error("Script %d chaining with active cutscene/override"); -  	vm.slot[cur].number = 0;  	vm.slot[cur].status = 0;  	_currentScript = 0xFF; @@ -1012,6 +1009,7 @@ void Scumm::o5_delay()  	delay |= fetchScriptByte() << 16;  	vm.slot[_currentScript].delay = delay;  	vm.slot[_currentScript].status = 1; +	  	o5_breakHere();  } @@ -1398,6 +1396,8 @@ void Scumm::o5_getDist()  			&& r < 60)  		r = 60; +	if (r > 0)	// FIXME: Fixes several off-by-one errors (eg,					 +		r--;	//		  zak's tv). Find real cause of bug.   	setResult(r);  } @@ -1606,13 +1606,6 @@ void Scumm::o5_loadRoom()  {  	int room; -	/* Begin: Autosave  -	   _saveLoadSlot = 0; -	   sprintf(_saveLoadName, "Autosave", _saveLoadSlot); -	   _saveLoadFlag = 1; -	   _saveLoadCompatible = false; -	   End: Autosave */ -  	room = getVarOrDirectByte(0x80);  	startScene(room, 0, 0);  	_fullRedraw = 1; @@ -1623,13 +1616,6 @@ void Scumm::o5_loadRoomWithEgo()  	int obj, room, x, y;  	Actor *a; -	/* Begin: Autosave  -	   _saveLoadSlot = 0; -	   sprintf(_saveLoadName, "Autosave", _saveLoadSlot); -	   _saveLoadFlag = 1; -	   _saveLoadCompatible = false; -	   End: Autosave */ -  	obj = getVarOrDirectWord(0x80);  	room = getVarOrDirectByte(0x40); diff --git a/scummvm.cpp b/scummvm.cpp index 30f1b151a3..79226584f1 100644 --- a/scummvm.cpp +++ b/scummvm.cpp @@ -1287,6 +1287,8 @@ void Scumm::mainRun()  			delta = 5;  		} else {  			delta = scummLoop(delta); +			if (delta < 1)	// Ensure we don't get into a loop +				delta = 1;  // by not decreasing sleepers.  		}  	}  } | 
