diff options
| -rw-r--r-- | engines/neverhood/diskplayerscene.cpp | 5 | ||||
| -rw-r--r-- | engines/neverhood/menumodule.cpp | 5 | ||||
| -rw-r--r-- | engines/neverhood/module1000.cpp | 30 | ||||
| -rw-r--r-- | engines/neverhood/module1100.cpp | 9 | ||||
| -rw-r--r-- | engines/neverhood/module1200.cpp | 11 | ||||
| -rw-r--r-- | engines/neverhood/module2200.cpp | 34 | ||||
| -rw-r--r-- | engines/neverhood/module2500.cpp | 5 | ||||
| -rw-r--r-- | engines/neverhood/module2800.cpp | 35 | ||||
| -rw-r--r-- | engines/neverhood/module2900.cpp | 25 | ||||
| -rw-r--r-- | engines/neverhood/module3000.cpp | 45 | ||||
| -rw-r--r-- | engines/neverhood/sprite.cpp | 10 | 
11 files changed, 48 insertions, 166 deletions
diff --git a/engines/neverhood/diskplayerscene.cpp b/engines/neverhood/diskplayerscene.cpp index e9813e61a3..75755ddeee 100644 --- a/engines/neverhood/diskplayerscene.cpp +++ b/engines/neverhood/diskplayerscene.cpp @@ -198,10 +198,7 @@ DiskplayerPlayButton::DiskplayerPlayButton(NeverhoodEngine *vm, DiskplayerScene  	_spriteResource.load2(0x24A4A664);  	createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height); -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_collisionBoundsOffset = _drawOffset;  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y; diff --git a/engines/neverhood/menumodule.cpp b/engines/neverhood/menumodule.cpp index e22a668912..2e7f85d98c 100644 --- a/engines/neverhood/menumodule.cpp +++ b/engines/neverhood/menumodule.cpp @@ -166,10 +166,7 @@ MainMenuButton::MainMenuButton(NeverhoodEngine *vm, Scene *parentScene, uint but  	_spriteResource.load2(kMainMenuButtonFileHashes[_buttonIndex]);  	createSurface(100, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height); -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y; diff --git a/engines/neverhood/module1000.cpp b/engines/neverhood/module1000.cpp index 72cf0ede77..ff26d17467 100644 --- a/engines/neverhood/module1000.cpp +++ b/engines/neverhood/module1000.cpp @@ -618,10 +618,7 @@ AsScene1002Door::AsScene1002Door(NeverhoodEngine *vm, NRect &clipRect)  		_y = 239;   	} -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_needRefresh = true; @@ -771,10 +768,7 @@ SsCommonPressButton::SsCommonPressButton(NeverhoodEngine *vm, Scene *parentScene  	_spriteResource.load2(fileHash1);  	createSurface(surfacePriority, 40, 40); -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y; @@ -791,20 +785,14 @@ void SsCommonPressButton::setFileHashes(uint32 fileHash1, uint32 fileHash2) {  	_fileHashes[1] = fileHash2;  	if (_status == 2) {  		_spriteResource.load2(fileHash2); -		_drawOffset.x = 0; -		_drawOffset.y = 0; -		_drawOffset.width = _spriteResource.getDimensions().width; -		_drawOffset.height = _spriteResource.getDimensions().height; +		_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  		_x = _spriteResource.getPosition().x;  		_y = _spriteResource.getPosition().y;  		_needRefresh = true;  		StaticSprite::update();  	} else {  		_spriteResource.load2(fileHash1); -		_drawOffset.x = 0; -		_drawOffset.y = 0; -		_drawOffset.width = _spriteResource.getDimensions().width; -		_drawOffset.height = _spriteResource.getDimensions().height; +		_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  		_x = _spriteResource.getPosition().x;  		_y = _spriteResource.getPosition().y;  		_needRefresh = true; @@ -817,10 +805,7 @@ void SsCommonPressButton::update() {  		if (_status == 1) {  			_status = 2;  			_spriteResource.load2(_fileHashes[1]); -			_drawOffset.x = 0; -			_drawOffset.y = 0; -			_drawOffset.width = _spriteResource.getDimensions().width; -			_drawOffset.height = _spriteResource.getDimensions().height; +			_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  			_x = _spriteResource.getPosition().x;  			_y = _spriteResource.getPosition().y;  			_needRefresh = true; @@ -829,10 +814,7 @@ void SsCommonPressButton::update() {  		} else if (_status == 2) {  			_status = 3;  			_spriteResource.load2(_fileHashes[0]); -			_drawOffset.x = 0; -			_drawOffset.y = 0; -			_drawOffset.width = _spriteResource.getDimensions().width; -			_drawOffset.height = _spriteResource.getDimensions().height; +			_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  			_x = _spriteResource.getPosition().x;  			_y = _spriteResource.getPosition().y;  			_needRefresh = true; diff --git a/engines/neverhood/module1100.cpp b/engines/neverhood/module1100.cpp index e746be7184..d21e3af2da 100644 --- a/engines/neverhood/module1100.cpp +++ b/engines/neverhood/module1100.cpp @@ -306,8 +306,8 @@ SsScene1105Symbol::SsScene1105Symbol(NeverhoodEngine *vm, uint32 fileHash, int16  	_x = x;  	_y = y; -	_drawOffset.x = -(_spriteResource.getDimensions().width / 2); -	_drawOffset.y = -(_spriteResource.getDimensions().height / 2); +	_drawOffset.set(-(_spriteResource.getDimensions().width / 2), -(_spriteResource.getDimensions().height / 2), +		_spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	StaticSprite::update();  } @@ -406,10 +406,7 @@ SsScene1105OpenButton::SsScene1105OpenButton(NeverhoodEngine *vm, Scene *parentS  	createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y; -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_collisionBoundsOffset = _drawOffset;  	_needRefresh = true;  	updateBounds(); diff --git a/engines/neverhood/module1200.cpp b/engines/neverhood/module1200.cpp index bf4f1dff41..52375881bc 100644 --- a/engines/neverhood/module1200.cpp +++ b/engines/neverhood/module1200.cpp @@ -172,18 +172,13 @@ SsScene1201Tnt::SsScene1201Tnt(NeverhoodEngine *vm, uint32 elemIndex, uint32 poi  		_spriteResource.load2(kScene1201TntFileHashList1[elemIndex]);  		_x = _spriteResource.getPosition().x;  		_y = _spriteResource.getPosition().y; -		_drawOffset.x = 0; -		_drawOffset.y = 0; -		_drawOffset.width = _spriteResource.getDimensions().width; -		_drawOffset.height = _spriteResource.getDimensions().height; +		_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	} else {  		_spriteResource.load2(kScene1201TntFileHashList2[elemIndex]);  		_x = x;  		_y = y; -		_drawOffset.x = -(_spriteResource.getDimensions().width / 2); -		_drawOffset.y = -_spriteResource.getDimensions().height; -		_drawOffset.width = _spriteResource.getDimensions().width; -		_drawOffset.height = _spriteResource.getDimensions().height; +		_drawOffset.set(-(_spriteResource.getDimensions().width / 2), -_spriteResource.getDimensions().height, +			_spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	}  	createSurface(50, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height); diff --git a/engines/neverhood/module2200.cpp b/engines/neverhood/module2200.cpp index b746d51cb3..06cdc1009b 100644 --- a/engines/neverhood/module2200.cpp +++ b/engines/neverhood/module2200.cpp @@ -490,10 +490,8 @@ SsScene2201PuzzleCube::SsScene2201PuzzleCube(NeverhoodEngine *vm, uint32 positio  	_spriteResource.load2(kSsScene2201PuzzleCubeFileHashes[cubeIndex]);  	createSurface(100, 16, 16); -	_drawOffset.x = -(_spriteResource.getDimensions().width / 2); -	_drawOffset.y = -(_spriteResource.getDimensions().height / 2); -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(-(_spriteResource.getDimensions().width / 2), -(_spriteResource.getDimensions().height / 2), +		_spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = kSsScene2201PuzzleCubePoints[positionIndex].x;  	_y = kSsScene2201PuzzleCubePoints[positionIndex].y;  	_needRefresh = true; @@ -683,10 +681,8 @@ SsScene2202PuzzleTile::SsScene2202PuzzleTile(NeverhoodEngine *vm, Scene *parentS  	} else {  		createSurface(500, 128, 128);  	} -	_drawOffset.x = -(_spriteResource.getDimensions().width / 2); -	_drawOffset.y = -(_spriteResource.getDimensions().height / 2); -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(-(_spriteResource.getDimensions().width / 2), -(_spriteResource.getDimensions().height / 2), +		_spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_collisionBoundsOffset = _drawOffset;  	_x = kSsScene2202PuzzleTilePoints[_tileIndex].x;  	_y = kSsScene2202PuzzleTilePoints[_tileIndex].y; @@ -792,10 +788,8 @@ void SsScene2202PuzzleTile::suMoveTileY() {  void SsScene2202PuzzleTile::moveTile(int16 newTileIndex) {  	_spriteResource.load2(kSsScene2202PuzzleTileFileHashes1[_value]); -	_drawOffset.x = -(_spriteResource.getDimensions().width / 2); -	_drawOffset.y = -(_spriteResource.getDimensions().height / 2); -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(-(_spriteResource.getDimensions().width / 2), -(_spriteResource.getDimensions().height / 2), +		_spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_needRefresh = true;  	setSubVar(VA_CUBE_POSITIONS, _tileIndex, (uint32)-1); @@ -873,10 +867,8 @@ void SsScene2202PuzzleTile::moveTile(int16 newTileIndex) {  void SsScene2202PuzzleTile::stopMoving() {  	_spriteResource.load2(kSsScene2202PuzzleTileFileHashes2[_value]); -	_drawOffset.x = -(_spriteResource.getDimensions().width / 2); -	_drawOffset.y = -(_spriteResource.getDimensions().height / 2); -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(-(_spriteResource.getDimensions().width / 2), -(_spriteResource.getDimensions().height / 2), +		_spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_needRefresh = true;  	SetSpriteUpdate(NULL);  	_isMoving = false; @@ -1225,10 +1217,7 @@ SsScene2205DoorFrame::SsScene2205DoorFrame(NeverhoodEngine *vm)  	SetMessageHandler(&SsScene2205DoorFrame::handleMessage);  	_spriteResource.load2(getGlobalVar(V_LIGHTS_ON) ? 0x24306227 : 0xD90032A0);  	createSurface(1100, 45, 206); -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y;  	_needRefresh = true; @@ -1240,10 +1229,7 @@ uint32 SsScene2205DoorFrame::handleMessage(int messageNum, const MessageParam &p  	switch (messageNum) {  	case 0x2000:  		_spriteResource.load2(getGlobalVar(V_LIGHTS_ON) ? 0x24306227 : 0xD90032A0); -		_drawOffset.x = 0; -		_drawOffset.y = 0; -		_drawOffset.width = _spriteResource.getDimensions().width; -		_drawOffset.height = _spriteResource.getDimensions().height; +		_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  		_x = _spriteResource.getPosition().x;  		_y = _spriteResource.getPosition().y;  		_needRefresh = true; diff --git a/engines/neverhood/module2500.cpp b/engines/neverhood/module2500.cpp index bb9e10be5f..8345a8c3a3 100644 --- a/engines/neverhood/module2500.cpp +++ b/engines/neverhood/module2500.cpp @@ -487,10 +487,7 @@ SsScene2504Button::SsScene2504Button(NeverhoodEngine *vm)  	_spriteResource.load2(0x070220D9);  	createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height); -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y;  	_collisionBoundsOffset = _drawOffset; diff --git a/engines/neverhood/module2800.cpp b/engines/neverhood/module2800.cpp index 7c895e970b..53ae40c0ea 100644 --- a/engines/neverhood/module2800.cpp +++ b/engines/neverhood/module2800.cpp @@ -1373,10 +1373,7 @@ SsScene2804RedButton::SsScene2804RedButton(NeverhoodEngine *vm, Scene2804 *paren  	else  		_spriteResource.load2(0x11814A21);  	createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height); -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y;  	_collisionBoundsOffset = _drawOffset; @@ -1416,10 +1413,7 @@ SsScene2804LightCoil::SsScene2804LightCoil(NeverhoodEngine *vm)  	_spriteResource.load2(0x8889B008);  	createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height); -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y;  	setVisible(false); @@ -1450,10 +1444,7 @@ SsScene2804LightTarget::SsScene2804LightTarget(NeverhoodEngine *vm)  	_spriteResource.load2(0x06092132);  	createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height); -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y;  	setVisible(false); @@ -1484,10 +1475,7 @@ SsScene2804Flash::SsScene2804Flash(NeverhoodEngine *vm)  	_spriteResource.load2(0x211003A0);  	createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height); -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y;  	setVisible(false); @@ -1507,10 +1495,7 @@ SsScene2804BeamCoilBody::SsScene2804BeamCoilBody(NeverhoodEngine *vm)  	_spriteResource.load2(0x9A816000);  	createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height); -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y;  	setVisible(false); @@ -1656,10 +1641,7 @@ SsScene2804CrystalButton::SsScene2804CrystalButton(NeverhoodEngine *vm, Scene280  		_spriteResource.load2(kSsScene2804CrystalButtonFileHashes2[crystalIndex]);  	createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height); -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y;  	_collisionBoundsOffset = _drawOffset; @@ -2262,10 +2244,7 @@ SsScene2808Dispenser::SsScene2808Dispenser(NeverhoodEngine *vm, Scene *parentSce  	_spriteResource.load2(kClass428FileHashes[testTubeSetNum * 3 + testTubeIndex]);  	createSurface(1500, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height); -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y;  	_collisionBoundsOffset = _drawOffset; diff --git a/engines/neverhood/module2900.cpp b/engines/neverhood/module2900.cpp index 7abab125d8..ae74b14814 100644 --- a/engines/neverhood/module2900.cpp +++ b/engines/neverhood/module2900.cpp @@ -256,10 +256,7 @@ SsScene2901LocationButton::SsScene2901LocationButton(NeverhoodEngine *vm, Scene  	_spriteResource.load2(kSsScene2901LocationButtonFileHashes[which * 6 + index]);  	createSurface(800, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);	 -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y;  	_collisionBounds.x1 = kSsScene2901LocationButtonPoints[_index].x - 25; @@ -301,10 +298,7 @@ SsScene2901LocationButtonLight::SsScene2901LocationButtonLight(NeverhoodEngine *  	_spriteResource.load2(kSsScene2901LocationButtonLightFileHashes1[which * 6 + index]);  	createSurface(900, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);	 -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y;  	setVisible(false); @@ -328,10 +322,7 @@ SsScene2901BrokenButton::SsScene2901BrokenButton(NeverhoodEngine *vm, int which)  	_spriteResource.load2(kSsScene2901BrokenButtonFileHashes[which]);  	createSurface(900, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);	 -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y;  	_needRefresh = true; @@ -343,16 +334,10 @@ SsScene2901BigButton::SsScene2901BigButton(NeverhoodEngine *vm, Scene *parentSce  	_spriteResource.load2(kSsScene2901BigButtonFileHashes[which]);  	createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);	 -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y; -	_collisionBounds.x1 = 62; -	_collisionBounds.y1 = 94; -	_collisionBounds.x2 = 322; -	_collisionBounds.y2 = 350; +	_collisionBounds.set(62, 94, 322, 350);  	setVisible(false);  	_needRefresh = true;  	loadSound(0, 0xF3D420C8); diff --git a/engines/neverhood/module3000.cpp b/engines/neverhood/module3000.cpp index 8005c625f0..cb4faafbed 100644 --- a/engines/neverhood/module3000.cpp +++ b/engines/neverhood/module3000.cpp @@ -475,14 +475,8 @@ SsScene3009FireCannonButton::SsScene3009FireCannonButton(NeverhoodEngine *vm, Sc  	createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y; -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; -	_collisionBoundsOffset.x = 0; -	_collisionBoundsOffset.y = 0; -	_collisionBoundsOffset.width = _spriteResource.getDimensions().width; -	_collisionBoundsOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height); +	_collisionBoundsOffset = _drawOffset;  	setVisible(false);  	updateBounds();  	_needRefresh = true; @@ -521,10 +515,7 @@ SsScene3009SymbolEdges::SsScene3009SymbolEdges(NeverhoodEngine *vm, int index)  	createSurface(600, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y; -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_needRefresh = true;  	if (getGlobalVar(V_ROBOT_HIT)) {  		hide(); @@ -573,10 +564,7 @@ SsScene3009TargetLine::SsScene3009TargetLine(NeverhoodEngine *vm, int index)  	createSurface(600, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y; -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	setVisible(false);  	_needRefresh = true;  } @@ -595,10 +583,7 @@ SsScene3009SymbolArrow::SsScene3009SymbolArrow(NeverhoodEngine *vm, Sprite *asSy  	createSurface(1200, 33, 31);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y; -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = 33; -	_drawOffset.height = 31; +	_drawOffset.set(0, 0, 33, 31);  	_collisionBoundsOffset = _drawOffset;  	updateBounds();  	_needRefresh = true; @@ -617,10 +602,7 @@ void SsScene3009SymbolArrow::update() {  	if (_countdown != 0 && (--_countdown == 0)) {  		_spriteResource.load2(kSsScene3009SymbolArrowFileHashes2[_index]);  		_needRefresh = true; -		_drawOffset.x = 0; -		_drawOffset.y = 0; -		_drawOffset.width = _spriteResource.getDimensions().width; -		_drawOffset.height = _spriteResource.getDimensions().height; +		_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	}  } @@ -632,10 +614,7 @@ uint32 SsScene3009SymbolArrow::handleMessage(int messageNum, const MessageParam  			_countdown = 2;  			_spriteResource.load2(kSsScene3009SymbolArrowFileHashes1[_index]);  			_needRefresh = true; -			_drawOffset.x = 0; -			_drawOffset.y = 0; -			_drawOffset.width = _spriteResource.getDimensions().width; -			_drawOffset.height = _spriteResource.getDimensions().height; +			_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  			playSound(0);  			sendMessage(_asSymbol, 0x2005, _incrDecr);  		} @@ -1155,10 +1134,7 @@ void SsScene3010DeadBoltButton::setSprite(uint32 fileHash) {  	_spriteResource.load(fileHash);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y; -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_collisionBoundsOffset = _drawOffset;  	updateBounds();  	_needRefresh = true; @@ -1430,10 +1406,7 @@ SsScene3011Button::SsScene3011Button(NeverhoodEngine *vm, Scene *parentScene, bo  	createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_x = _spriteResource.getPosition().x;  	_y = _spriteResource.getPosition().y; -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = _spriteResource.getDimensions().width; -	_drawOffset.height = _spriteResource.getDimensions().height; +	_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	_collisionBoundsOffset = _drawOffset;  	setVisible(false);  	updateBounds(); diff --git a/engines/neverhood/sprite.cpp b/engines/neverhood/sprite.cpp index fb45b8a7be..0696aa6714 100644 --- a/engines/neverhood/sprite.cpp +++ b/engines/neverhood/sprite.cpp @@ -147,10 +147,7 @@ void StaticSprite::init(uint32 fileHash, int surfacePriority, int16 x, int16 y,  	_x = x == kDefPosition ? _spriteResource.getPosition().x : x;  	_y = y == kDefPosition ? _spriteResource.getPosition().y : y; -	_drawOffset.x = 0; -	_drawOffset.y = 0; -	_drawOffset.width = width; -	_drawOffset.height = height;  +	_drawOffset.set(0, 0, width, height);  	_needRefresh = true; @@ -187,10 +184,7 @@ void StaticSprite::load(uint32 fileHash, bool dimensions, bool position) {  	_spriteResource.load2(fileHash);  	if (dimensions) { -		_drawOffset.x = 0; -		_drawOffset.y = 0; -		_drawOffset.width = _spriteResource.getDimensions().width; -		_drawOffset.height = _spriteResource.getDimensions().height; +		_drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);  	}  	if (position) {  | 
