diff options
| -rw-r--r-- | scumm/intern.h | 26 | ||||
| -rw-r--r-- | scumm/script_v100he.cpp | 30 | ||||
| -rw-r--r-- | scumm/script_v90he.cpp | 24 | ||||
| -rw-r--r-- | scumm/sprite_he.cpp | 66 | 
4 files changed, 74 insertions, 72 deletions
| diff --git a/scumm/intern.h b/scumm/intern.h index 08230665d4..49e65b02dc 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -878,14 +878,14 @@ protected:  	int spriteInfoGet_case15(int a, int b, int c, int d, int num, int *args);  	int spriteInfoGet_classFlags(int spriteId, int num);  	int spriteInfoGet_classFlagsAnd(int spriteId, int num, int *args); -	int spriteInfoGet_flags_1(int spriteId); -	int spriteInfoGet_flags_2(int spriteId); -	int spriteInfoGet_flags_3(int spriteId); -	int spriteInfoGet_flags_4(int spriteId); -	int spriteInfoGet_flags_5(int spriteId); -	int spriteInfoGet_flags_6(int spriteId); -	int spriteInfoGet_flags_7(int spriteId);	 -	int spriteInfoGet_flags_8(int spriteId); +	int spriteInfoGet_flags_13(int spriteId); +	int spriteInfoGet_flags_14(int spriteId); +	int spriteInfoGet_flags_15(int spriteId); +	int spriteInfoGet_flags_16(int spriteId); +	int spriteInfoGet_flags_20(int spriteId); +	int spriteInfoGet_flags_22(int spriteId); +	int spriteInfoGet_flags_23(int spriteId);	 +	int spriteInfoGet_flags_31(int spriteId);  	int spriteInfoGet_resId(int spriteId);  	int spriteInfoGet_resState(int spriteId);  	int spriteInfoGet_groupNum(int spriteId); @@ -928,12 +928,12 @@ protected:  	void spriteInfoSet_Inc_tx_ty(int spriteId, int value1, int value2);  	void spriteInfoSet_zoom(int spriteId, int value);  	void spriteInfoSet_rotAngle(int spriteId, int value); -	void spriteInfoSet_flag22(int spriteId, int value); -	void spriteInfoSet_flag7(int spriteId, int value); -	void spriteInfoSet_flagRotated(int spriteId, int value); -	void spriteInfoSet_flag8(int spriteId, int value); -	void spriteInfoSet_flagZoomed(int spriteId, int value); +	void spriteInfoSet_flag13(int spriteId, int value); +	void spriteInfoSet_flag14(int spriteId, int value); +	void spriteInfoSet_flag15(int spriteId, int value); +	void spriteInfoSet_flag16(int spriteId, int value);  	void spriteInfoSet_flag20(int spriteId, int value); +	void spriteInfoSet_flag22(int spriteId, int value);  	void spriteInfoSet_flags23_26(int spriteId, int value);  	void spriteInfoSet_flag31(int spriteId, int value);  	void spriteInfoSet_field_78_64(int spriteId, int value); diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp index 51e1527edb..288c8ab5ac 100644 --- a/scumm/script_v100he.cpp +++ b/scumm/script_v100he.cpp @@ -1784,16 +1784,16 @@ void ScummEngine_v100he::o100_setSpriteInfo() {  		for (; spriteId <= _curMaxSpriteId; spriteId++)  			switch(args[1]) {  			case 0: -				spriteInfoSet_flag7(spriteId, args[0]); +				spriteInfoSet_flag15(spriteId, args[0]);  				break;  			case 1: -				spriteInfoSet_flagRotated(spriteId, args[0]); +				spriteInfoSet_flag14(spriteId, args[0]);  				break;  			case 2: -				spriteInfoSet_flag8(spriteId, args[0]); +				spriteInfoSet_flag16(spriteId, args[0]);  				break;  			case 3: -				spriteInfoSet_flagZoomed(spriteId, args[0]); +				spriteInfoSet_flag13(spriteId, args[0]);  				break;  			case 4:  				spriteInfoSet_flag20(spriteId, args[0]); @@ -2361,7 +2361,7 @@ void ScummEngine_v100he::o100_getSpriteInfo() {  	case 3:  		spriteId = pop();  		if (spriteId) -			push(spriteInfoGet_flags_6(spriteId)); +			push(spriteInfoGet_flags_22(spriteId));  		else  			push(0);  		break; @@ -2415,7 +2415,7 @@ void ScummEngine_v100he::o100_getSpriteInfo() {  	case 32:  		spriteId = pop();  		if (spriteId) -			push(spriteInfoGet_flags_8(spriteId)); +			push(spriteInfoGet_flags_31(spriteId));  		else  			push(1);  		break; @@ -2483,19 +2483,19 @@ void ScummEngine_v100he::o100_getSpriteInfo() {  		if (spriteId) {  			switch(flags) {  			case 0: -				push(spriteInfoGet_flags_1(spriteId)); +				push(spriteInfoGet_flags_15(spriteId));  				break;  			case 1: -				push(spriteInfoGet_flags_2(spriteId)); +				push(spriteInfoGet_flags_14(spriteId));  				break;  			case 2: -				push(spriteInfoGet_flags_3(spriteId)); +				push(spriteInfoGet_flags_16(spriteId));  				break;  			case 3: -				push(spriteInfoGet_flags_4(spriteId)); +				push(spriteInfoGet_flags_13(spriteId));  				break;  			case 4: -				push(spriteInfoGet_flags_5(spriteId)); +				push(spriteInfoGet_flags_20(spriteId));  				break;  			default:  				push(0); @@ -2544,9 +2544,11 @@ void ScummEngine_v100he::o100_getSpriteInfo() {  		}  		break;  	case 82: -		// TODO -		pop(); -		push(0); +		spriteId = pop(); +		if (spriteId) +			push(spriteInfoGet_flags_23(spriteId)); +		else +			push(0);  		break;  	case 83:  		pop(); diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp index 68f7dc0f06..573cda5387 100644 --- a/scumm/script_v90he.cpp +++ b/scumm/script_v90he.cpp @@ -794,19 +794,19 @@ void ScummEngine_v90he::o90_getSpriteInfo() {  		if (spriteId) {  			switch(flags) {  			case 0: -				push(spriteInfoGet_flags_1(spriteId)); +				push(spriteInfoGet_flags_15(spriteId));  				break;  			case 1: -				push(spriteInfoGet_flags_2(spriteId)); +				push(spriteInfoGet_flags_14(spriteId));  				break;  			case 2: -				push(spriteInfoGet_flags_3(spriteId)); +				push(spriteInfoGet_flags_16(spriteId));  				break;  			case 3: -				push(spriteInfoGet_flags_4(spriteId)); +				push(spriteInfoGet_flags_13(spriteId));  				break;  			case 4: -				push(spriteInfoGet_flags_5(spriteId)); +				push(spriteInfoGet_flags_20(spriteId));  				break;  			default:  				push(0); @@ -867,14 +867,14 @@ void ScummEngine_v90he::o90_getSpriteInfo() {  	case 38:  		spriteId = pop();  		if (spriteId) -			push(spriteInfoGet_flags_8(spriteId)); +			push(spriteInfoGet_flags_31(spriteId));  		else  			push(1);  		break;  	case 52:  		spriteId = pop();  		if (spriteId) -			push(spriteInfoGet_flags_6(spriteId)); +			push(spriteInfoGet_flags_22(spriteId));  		else  			push(0);  		break; @@ -909,7 +909,7 @@ void ScummEngine_v90he::o90_getSpriteInfo() {  	case 94:  		spriteId = pop();  		if (spriteId) -			push(spriteInfoGet_flags_7(spriteId)); +			push(spriteInfoGet_flags_23(spriteId));  		else  			push(0);  		break; @@ -1015,16 +1015,16 @@ void ScummEngine_v90he::o90_setSpriteInfo() {  		for (; spriteId <= _curMaxSpriteId; spriteId++)  			switch(args[1]) {  			case 0: -				spriteInfoSet_flag7(spriteId, args[0]); +				spriteInfoSet_flag15(spriteId, args[0]);  				break;  			case 1: -				spriteInfoSet_flagRotated(spriteId, args[0]); +				spriteInfoSet_flag14(spriteId, args[0]);  				break;  			case 2: -				spriteInfoSet_flag8(spriteId, args[0]); +				spriteInfoSet_flag16(spriteId, args[0]);  				break;  			case 3: -				spriteInfoSet_flagZoomed(spriteId, args[0]); +				spriteInfoSet_flag13(spriteId, args[0]);  				break;  			case 4:  				spriteInfoSet_flag20(spriteId, args[0]); diff --git a/scumm/sprite_he.cpp b/scumm/sprite_he.cpp index 5dd73f920a..5008452d62 100644 --- a/scumm/sprite_he.cpp +++ b/scumm/sprite_he.cpp @@ -69,49 +69,49 @@ int ScummEngine_v90he::spriteInfoGet_classFlagsAnd(int spriteId, int num, int *a  	return 1;  } -int ScummEngine_v90he::spriteInfoGet_flags_1(int spriteId) { +int ScummEngine_v90he::spriteInfoGet_flags_13(int spriteId) {  	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d"); -	return ((_spriteTable[spriteId].flags & kSF15) != 0) ? 1 : 0; +	return ((_spriteTable[spriteId].flags & kSF13) != 0) ? 1 : 0;  } -int ScummEngine_v90he::spriteInfoGet_flags_2(int spriteId) { +int ScummEngine_v90he::spriteInfoGet_flags_14(int spriteId) {  	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");  	return ((_spriteTable[spriteId].flags & kSF14) != 0) ? 1 : 0;  } -int ScummEngine_v90he::spriteInfoGet_flags_3(int spriteId) { +int ScummEngine_v90he::spriteInfoGet_flags_15(int spriteId) {  	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d"); -	return ((_spriteTable[spriteId].flags & kSF16) != 0) ? 1 : 0; +	return ((_spriteTable[spriteId].flags & kSF15) != 0) ? 1 : 0;  } -int ScummEngine_v90he::spriteInfoGet_flags_4(int spriteId) { +int ScummEngine_v90he::spriteInfoGet_flags_16(int spriteId) {  	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d"); -	return ((_spriteTable[spriteId].flags & kSF13) != 0) ? 1 : 0; +	return ((_spriteTable[spriteId].flags & kSF16) != 0) ? 1 : 0;  } -int ScummEngine_v90he::spriteInfoGet_flags_5(int spriteId) { +int ScummEngine_v90he::spriteInfoGet_flags_20(int spriteId) {  	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");  	return ((_spriteTable[spriteId].flags & kSF20) != 0) ? 1 : 0;  } -int ScummEngine_v90he::spriteInfoGet_flags_6(int spriteId) { +int ScummEngine_v90he::spriteInfoGet_flags_22(int spriteId) {  	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d"); -	return _spriteTable[spriteId].flags & kSF22; +	return ((_spriteTable[spriteId].flags & kSF22) != 0) ? 1 : 0;  } -int ScummEngine_v90he::spriteInfoGet_flags_7(int spriteId) { +int ScummEngine_v90he::spriteInfoGet_flags_23(int spriteId) {  	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");  	return ((_spriteTable[spriteId].flags & kSF23) != 0) ? 1 : 0;  } -int ScummEngine_v90he::spriteInfoGet_flags_8(int spriteId) { +int ScummEngine_v90he::spriteInfoGet_flags_31(int spriteId) {  	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");  	return ((_spriteTable[spriteId].flags & kSF31) != 0) ? 1 : 0; @@ -433,70 +433,70 @@ void ScummEngine_v90he::spriteInfoSet_rotAngle(int spriteId, int value) {  	}  } -void ScummEngine_v90he::spriteInfoSet_flag22(int spriteId, int value) { +void ScummEngine_v90he::spriteInfoSet_flag13(int spriteId, int value) {  	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");  	if (value) -		_spriteTable[spriteId].flags |= kSF22; +		_spriteTable[spriteId].flags |= kSF13;  	else -		_spriteTable[spriteId].flags &= ~(kSF01 | kSF22); +		_spriteTable[spriteId].flags &= ~(kSF01 | kSF13); + +	if (_spriteTable[spriteId].res_id) +		_spriteTable[spriteId].flags |= kSF01 | kSFNeedRedraw;  } -void ScummEngine_v90he::spriteInfoSet_flag7(int spriteId, int value) { +void ScummEngine_v90he::spriteInfoSet_flag14(int spriteId, int value) {  	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");  	if (value) -		_spriteTable[spriteId].flags |= kSF07; +		_spriteTable[spriteId].flags |= kSF14;  	else -		_spriteTable[spriteId].flags &= ~(kSF01 | kSF07); +		_spriteTable[spriteId].flags &= ~(kSF01 | kSF14);  	if (_spriteTable[spriteId].res_id)  		_spriteTable[spriteId].flags |= kSF01 | kSFNeedRedraw;  } -void ScummEngine_v90he::spriteInfoSet_flagRotated(int spriteId, int value) { +void ScummEngine_v90he::spriteInfoSet_flag15(int spriteId, int value) {  	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");  	if (value) -		_spriteTable[spriteId].flags |= kSFRotated; +		_spriteTable[spriteId].flags |= kSF15;  	else -		_spriteTable[spriteId].flags &= ~(kSF01 | kSFRotated); +		_spriteTable[spriteId].flags &= ~(kSF01 | kSF15);  	if (_spriteTable[spriteId].res_id)  		_spriteTable[spriteId].flags |= kSF01 | kSFNeedRedraw;  } -void ScummEngine_v90he::spriteInfoSet_flag8(int spriteId, int value) { +void ScummEngine_v90he::spriteInfoSet_flag16(int spriteId, int value) {  	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");  	if (value) -		_spriteTable[spriteId].flags |= kSF08; +		_spriteTable[spriteId].flags |= kSF16;  	else -		_spriteTable[spriteId].flags &= ~(kSF01 | kSF08); +		_spriteTable[spriteId].flags &= ~(kSF01 | kSF16);  } -void ScummEngine_v90he::spriteInfoSet_flagZoomed(int spriteId, int value) { +void ScummEngine_v90he::spriteInfoSet_flag20(int spriteId, int value) {  	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");  	if (value) -		_spriteTable[spriteId].flags |= kSFZoomed; +		_spriteTable[spriteId].flags |= kSF20;  	else -		_spriteTable[spriteId].flags &= ~(kSF01 | kSFZoomed); +		_spriteTable[spriteId].flags &= ~(kSF01 | kSF20);  	if (_spriteTable[spriteId].res_id)  		_spriteTable[spriteId].flags |= kSF01 | kSFNeedRedraw;  } -void ScummEngine_v90he::spriteInfoSet_flag20(int spriteId, int value) { +void ScummEngine_v90he::spriteInfoSet_flag22(int spriteId, int value) {  	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");  	if (value) -		_spriteTable[spriteId].flags |= kSF20; +		_spriteTable[spriteId].flags |= kSF22;  	else -		_spriteTable[spriteId].flags &= ~(kSF01 | kSF20); - -	if (_spriteTable[spriteId].res_id) -		_spriteTable[spriteId].flags |= kSF01 | kSFNeedRedraw; +		_spriteTable[spriteId].flags &= ~(kSF01 | kSF22);  }  void ScummEngine_v90he::spriteInfoSet_flags23_26(int spriteId, int value) { | 
