diff options
| author | Max Horn | 2007-06-30 17:34:49 +0000 | 
|---|---|---|
| committer | Max Horn | 2007-06-30 17:34:49 +0000 | 
| commit | a6210289f5e22c135bd3c0738350bf2df3c8f7d9 (patch) | |
| tree | 8b8100e6a8655d68027b579a70da233a4e72c6dd | |
| parent | a5352e9a97daa92c8d6f5f4dfafc859937302508 (diff) | |
| download | scummvm-rg350-a6210289f5e22c135bd3c0738350bf2df3c8f7d9.tar.gz scummvm-rg350-a6210289f5e22c135bd3c0738350bf2df3c8f7d9.tar.bz2 scummvm-rg350-a6210289f5e22c135bd3c0738350bf2df3c8f7d9.zip  | |
AGOS code cleanup
svn-id: r27794
| -rw-r--r-- | engines/agos/agos.h | 4 | ||||
| -rw-r--r-- | engines/agos/script.cpp | 4 | ||||
| -rw-r--r-- | engines/agos/script_s2.cpp | 2 | ||||
| -rw-r--r-- | engines/agos/vga.cpp | 53 | 
4 files changed, 22 insertions, 41 deletions
diff --git a/engines/agos/agos.h b/engines/agos/agos.h index 68c1dcd3ed..7e89396fa3 100644 --- a/engines/agos/agos.h +++ b/engines/agos/agos.h @@ -875,8 +875,8 @@ public:  	void vc36_setWindowImage();  	void vc38_ifVarNotZero();  	void vc39_setVar(); -	void vc40(); -	void vc41(); +	void vc40_scrollRight(); +	void vc41_scrollLeft();  	void vc42_delayIfNotEQ();  	// Video Script Opcodes, Elvira 1 diff --git a/engines/agos/script.cpp b/engines/agos/script.cpp index bb7faa91d3..ace0b9d50f 100644 --- a/engines/agos/script.cpp +++ b/engines/agos/script.cpp @@ -753,7 +753,7 @@ void AGOSEngine::o_setAdjNoun() {  void AGOSEngine::o_saveUserGame() {  	// 132: save user game  	if (getGameId() == GID_SIMON1CD32) { -		// The Amiga CD32 version of Simon the Sorcerer 1uses a single slot +		// The Amiga CD32 version of Simon the Sorcerer 1 uses a single slot  		if (!saveGame(0, "Default Saved Game")) {  			vc33_setMouseOn();  			fileError(_windowArray[5], true); @@ -799,7 +799,7 @@ void AGOSEngine::o_freezeZones() {  	freezeBottom();  	if (!_copyProtection && !(getFeatures() & GF_TALKIE)) { -		if ((getGameType() == GType_SIMON1 &&  _subroutine == 2924) || +		if ((getGameType() == GType_SIMON1 && _subroutine == 2924) ||  			(getGameType() == GType_SIMON2 && _subroutine == 1322)) {  			_variableArray[134] = 3;  			_variableArray[135] = 3; diff --git a/engines/agos/script_s2.cpp b/engines/agos/script_s2.cpp index dfc1200d7c..00addce396 100644 --- a/engines/agos/script_s2.cpp +++ b/engines/agos/script_s2.cpp @@ -355,7 +355,7 @@ void AGOSEngine_Simon2::os2_screenTextPObj() {  	uint vgaSpriteId = getVarOrByte();  	uint color = getVarOrByte(); -	SubObject *subObject = (SubObject *)findChildOfType(getNextItemPtr(), 2); +	SubObject *subObject = (SubObject *)findChildOfType(getNextItemPtr(), kObjectType);  	if (getFeatures() & GF_TALKIE) {  		if (subObject != NULL && subObject->objectFlags & kOFVoice) {  			uint speechId = subObject->objectFlagValue[getOffsetOfChild2Param(subObject, kOFVoice)]; diff --git a/engines/agos/vga.cpp b/engines/agos/vga.cpp index 2b8f6d3a09..38c401a80d 100644 --- a/engines/agos/vga.cpp +++ b/engines/agos/vga.cpp @@ -70,8 +70,8 @@ void AGOSEngine::setupVideoOpcodes(VgaOpcodeProc *op) {  	op[36] = &AGOSEngine::vc36_setWindowImage;  	op[38] = &AGOSEngine::vc38_ifVarNotZero;  	op[39] = &AGOSEngine::vc39_setVar; -	op[40] = &AGOSEngine::vc40; -	op[41] = &AGOSEngine::vc41; +	op[40] = &AGOSEngine::vc40_scrollRight; +	op[41] = &AGOSEngine::vc41_scrollLeft;  	op[42] = &AGOSEngine::vc42_delayIfNotEQ;  	op[43] = &AGOSEngine::vc43_ifBitSet;  	op[44] = &AGOSEngine::vc44_ifBitClear; @@ -124,8 +124,8 @@ void AGOSEngine_Elvira1::setupVideoOpcodes(VgaOpcodeProc *op) {  	op[41] = &AGOSEngine::vc37_pokePalette;  	op[51] = &AGOSEngine::vc38_ifVarNotZero;  	op[52] = &AGOSEngine::vc39_setVar; -	op[53] = &AGOSEngine::vc40; -	op[54] = &AGOSEngine::vc41; +	op[53] = &AGOSEngine::vc40_scrollRight; +	op[54] = &AGOSEngine::vc41_scrollLeft;  	op[56] = &AGOSEngine::vc42_delayIfNotEQ;  } @@ -1257,57 +1257,38 @@ void AGOSEngine::vc39_setVar() {  	vcWriteVar(var, value);  } -void AGOSEngine::vc40() { +void AGOSEngine::vc40_scrollRight() {  	uint16 var = vcReadNextWord();  	int16 value = vcReadVar(var) + vcReadNextWord();  	if (getGameType() == GType_SIMON2 && var == 15 && !getBitFlag(80)) { -		int16 tmp; -		if (_scrollCount != 0) { -			if (_scrollCount >= 0) -				goto no_scroll; +		if ((_scrollCount < 0) || (_scrollCount == 0 && _scrollFlag == 0)) {  			_scrollCount = 0; -		} else { -			if (_scrollFlag != 0) -				goto no_scroll; -		} - -		if (value - _scrollX >= 30) { -			_scrollCount = 20; -			tmp = _scrollXMax - _scrollX; -			if (tmp < 20) -				_scrollCount = tmp; -			addVgaEvent(6, SCROLL_EVENT, NULL, 0, 0); +			if (value - _scrollX >= 30) { +				_scrollCount = MIN(20, _scrollXMax - _scrollX); +				addVgaEvent(6, SCROLL_EVENT, NULL, 0, 0); +			}  		}  	} -no_scroll:;  	vcWriteVar(var, value);  } -void AGOSEngine::vc41() { +void AGOSEngine::vc41_scrollLeft() {  	uint16 var = vcReadNextWord();  	int16 value = vcReadVar(var) - vcReadNextWord();  	if (getGameType() == GType_SIMON2 && var == 15 && !getBitFlag(80)) { -		if (_scrollCount != 0) { -			if (_scrollCount < 0) -				goto no_scroll; -			_scrollCount = 0; -		} else { -			if (_scrollFlag != 0) -				goto no_scroll; -		} -		if ((uint16)(value - _scrollX) < 11) { -			_scrollCount = -20; -			if (_scrollX < 20) -				_scrollCount = -_scrollX; -			addVgaEvent(6, SCROLL_EVENT, NULL, 0, 0); +		if ((_scrollCount > 0) || (_scrollCount == 0 && _scrollFlag == 0)) { +			_scrollCount = 0; +			if ((uint16)(value - _scrollX) < 11) { +				_scrollCount = -MIN(20, (int)_scrollX); +				addVgaEvent(6, SCROLL_EVENT, NULL, 0, 0); +			}  		}  	} -no_scroll:;  	vcWriteVar(var, value);  }  | 
