aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjohndoe1232012-10-22 12:26:53 +0000
committerWillem Jan Palenstijn2013-05-08 20:47:33 +0200
commit9ba7a7f1a143e20eefdc47555840d4175103986b (patch)
treea1c20be6e7b9fb5dfecdc5de899b9997c452266c
parenteb054471e0814768571c550a4d268e73e1ea6b65 (diff)
downloadscummvm-rg350-9ba7a7f1a143e20eefdc47555840d4175103986b.tar.gz
scummvm-rg350-9ba7a7f1a143e20eefdc47555840d4175103986b.tar.bz2
scummvm-rg350-9ba7a7f1a143e20eefdc47555840d4175103986b.zip
NEVERHOOD: Rename stuff in Sprite:
- processDelta() to updateBounds() - getRect() to getCollisionBounds() - _drawRect to _drawOffset - _rect to _collisionBounds - _deltaRect to _collisionBoundsOffset
-rw-r--r--engines/neverhood/collisionman.cpp2
-rw-r--r--engines/neverhood/diskplayerscene.cpp12
-rw-r--r--engines/neverhood/klayman.cpp16
-rw-r--r--engines/neverhood/menumodule.cpp26
-rw-r--r--engines/neverhood/module1000.cpp48
-rw-r--r--engines/neverhood/module1100.cpp24
-rw-r--r--engines/neverhood/module1100.h2
-rw-r--r--engines/neverhood/module1200.cpp16
-rw-r--r--engines/neverhood/module1300.cpp6
-rw-r--r--engines/neverhood/module1400.cpp22
-rw-r--r--engines/neverhood/module1700.cpp12
-rw-r--r--engines/neverhood/module1900.cpp16
-rw-r--r--engines/neverhood/module2200.cpp62
-rw-r--r--engines/neverhood/module2500.cpp12
-rw-r--r--engines/neverhood/module2600.cpp6
-rw-r--r--engines/neverhood/module2700.cpp2
-rw-r--r--engines/neverhood/module2800.cpp72
-rw-r--r--engines/neverhood/module2900.cpp48
-rw-r--r--engines/neverhood/module3000.cpp86
-rw-r--r--engines/neverhood/mouse.cpp26
-rw-r--r--engines/neverhood/sprite.cpp66
-rw-r--r--engines/neverhood/sprite.h13
22 files changed, 296 insertions, 299 deletions
diff --git a/engines/neverhood/collisionman.cpp b/engines/neverhood/collisionman.cpp
index bacf18bd30..973c0fe853 100644
--- a/engines/neverhood/collisionman.cpp
+++ b/engines/neverhood/collisionman.cpp
@@ -94,7 +94,7 @@ void CollisionMan::clearSprites() {
void CollisionMan::checkCollision(Sprite *sprite, uint16 flags, int messageNum, uint32 messageParam) {
for (Common::Array<Sprite*>::iterator iter = _sprites.begin(); iter != _sprites.end(); iter++) {
Sprite *collSprite = *iter;
- if ((sprite->getFlags() & flags) && collSprite->checkCollision(sprite->getRect())) {
+ if ((sprite->getFlags() & flags) && collSprite->checkCollision(sprite->getCollisionBounds())) {
sprite->sendMessage(collSprite, messageNum, messageParam);
}
}
diff --git a/engines/neverhood/diskplayerscene.cpp b/engines/neverhood/diskplayerscene.cpp
index 0ffb0b0acd..e9813e61a3 100644
--- a/engines/neverhood/diskplayerscene.cpp
+++ b/engines/neverhood/diskplayerscene.cpp
@@ -198,14 +198,14 @@ DiskplayerPlayButton::DiskplayerPlayButton(NeverhoodEngine *vm, DiskplayerScene
_spriteResource.load2(0x24A4A664);
createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
- _deltaRect = _drawRect;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
+ _collisionBoundsOffset = _drawOffset;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- processDelta();
+ updateBounds();
_needRefresh = true;
StaticSprite::update();
_surface->setVisible(false);
diff --git a/engines/neverhood/klayman.cpp b/engines/neverhood/klayman.cpp
index f06ce40c68..9e9f136739 100644
--- a/engines/neverhood/klayman.cpp
+++ b/engines/neverhood/klayman.cpp
@@ -707,7 +707,7 @@ void Klayman::suAction() {
_x = _destX;
}
- processDelta();
+ updateBounds();
}
@@ -753,7 +753,7 @@ void Klayman::suSneaking() {
}
}
}
- processDelta();
+ updateBounds();
}
}
@@ -932,7 +932,7 @@ void Klayman::suWalkingTestExit() {
}
}
}
- processDelta();
+ updateBounds();
}
}
@@ -1409,7 +1409,7 @@ void Klayman::suLargeStep() {
_y = xdiff < 0 ? hitRectPrev->rect.y2 : hitRectPrev->rect.y1;
}
}
- processDelta();
+ updateBounds();
}
}
@@ -2175,7 +2175,7 @@ void Klayman::suJumpToGrab() {
updateDeltaXY();
if (_y >= _destY) {
_y = _destY;
- processDelta();
+ updateBounds();
gotoNextStateExt();
}
}
@@ -2856,7 +2856,7 @@ void Klayman::suFallDown() {
HitRect *hitRect = _vm->_collisionMan->findHitRectAtPos(_x, _y + 10);
if (hitRect->type == 0x5001) {
_y = hitRect->rect.y1;
- processDelta();
+ updateBounds();
sendMessage(this, 0x1019, 0);
}
_vm->_collisionMan->checkCollision(this, 0xFFFF, 0x4810, 0);
@@ -3016,7 +3016,7 @@ void Klayman::suFallSkipJump() {
HitRect *hitRect = _vm->_collisionMan->findHitRectAtPos(_x, _y + 10);
if (hitRect->type == 0x5001) {
_y = hitRect->rect.y1;
- processDelta();
+ updateBounds();
sendMessage(this, 0x1019, 0);
}
}
@@ -3222,7 +3222,7 @@ void Klayman::stContSpitIntoPipe() {
void Klayman::suRidePlatform() {
_x = _attachedSprite->getX() - 20;
_y = _attachedSprite->getY() + 46;
- processDelta();
+ updateBounds();
}
void Klayman::stRidePlatform() {
diff --git a/engines/neverhood/menumodule.cpp b/engines/neverhood/menumodule.cpp
index 97489194ac..e22a668912 100644
--- a/engines/neverhood/menumodule.cpp
+++ b/engines/neverhood/menumodule.cpp
@@ -166,41 +166,41 @@ MainMenuButton::MainMenuButton(NeverhoodEngine *vm, Scene *parentScene, uint but
_spriteResource.load2(kMainMenuButtonFileHashes[_buttonIndex]);
createSurface(100, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
// TODO Move to const array
switch (_buttonIndex) {
case 0:
- _rect.set(52, 121, 110, 156);
+ _collisionBounds.set(52, 121, 110, 156);
break;
case 1:
- _rect.set(52, 192, 109, 222);
+ _collisionBounds.set(52, 192, 109, 222);
break;
case 2:
- _rect.set(60, 257, 119, 286);
+ _collisionBounds.set(60, 257, 119, 286);
break;
case 3:
- _rect.set(67, 326, 120, 354);
+ _collisionBounds.set(67, 326, 120, 354);
break;
case 4:
- _rect.set(70, 389, 128, 416);
+ _collisionBounds.set(70, 389, 128, 416);
break;
case 5:
- _rect.set(523, 113, 580, 144);
+ _collisionBounds.set(523, 113, 580, 144);
break;
case 6:
- _rect.set(525, 176, 577, 206);
+ _collisionBounds.set(525, 176, 577, 206);
break;
case 7:
- _rect.set(527, 384, 580, 412);
+ _collisionBounds.set(527, 384, 580, 412);
break;
case 8:
- _rect.set(522, 255, 580, 289);
+ _collisionBounds.set(522, 255, 580, 289);
break;
}
diff --git a/engines/neverhood/module1000.cpp b/engines/neverhood/module1000.cpp
index 6a819181e1..72cf0ede77 100644
--- a/engines/neverhood/module1000.cpp
+++ b/engines/neverhood/module1000.cpp
@@ -618,10 +618,10 @@ AsScene1002Door::AsScene1002Door(NeverhoodEngine *vm, NRect &clipRect)
_y = 239;
}
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_needRefresh = true;
@@ -771,10 +771,10 @@ SsCommonPressButton::SsCommonPressButton(NeverhoodEngine *vm, Scene *parentScene
_spriteResource.load2(fileHash1);
createSurface(surfacePriority, 40, 40);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
@@ -791,20 +791,20 @@ void SsCommonPressButton::setFileHashes(uint32 fileHash1, uint32 fileHash2) {
_fileHashes[1] = fileHash2;
if (_status == 2) {
_spriteResource.load2(fileHash2);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
_needRefresh = true;
StaticSprite::update();
} else {
_spriteResource.load2(fileHash1);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
_needRefresh = true;
@@ -817,10 +817,10 @@ void SsCommonPressButton::update() {
if (_status == 1) {
_status = 2;
_spriteResource.load2(_fileHashes[1]);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
_needRefresh = true;
@@ -829,10 +829,10 @@ void SsCommonPressButton::update() {
} else if (_status == 2) {
_status = 3;
_spriteResource.load2(_fileHashes[0]);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _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 6bf61408b7..e746be7184 100644
--- a/engines/neverhood/module1100.cpp
+++ b/engines/neverhood/module1100.cpp
@@ -267,10 +267,10 @@ static const uint32 kSsScene1105SymbolDieFileHashes[] = {
0x10098414
};
-SsScene1105Button::SsScene1105Button(NeverhoodEngine *vm, Scene *parentScene, uint32 fileHash, NRect &rect)
+SsScene1105Button::SsScene1105Button(NeverhoodEngine *vm, Scene *parentScene, uint32 fileHash, NRect &collisionBounds)
: StaticSprite(vm, fileHash, 200), _parentScene(parentScene), _countdown(0) {
- _rect = rect;
+ _collisionBounds = collisionBounds;
SetMessageHandler(&SsScene1105Button::handleMessage);
SetUpdateHandler(&SsScene1105Button::update);
setVisible(false);
@@ -306,8 +306,8 @@ SsScene1105Symbol::SsScene1105Symbol(NeverhoodEngine *vm, uint32 fileHash, int16
_x = x;
_y = y;
- _drawRect.x = -(_spriteResource.getDimensions().width / 2);
- _drawRect.y = -(_spriteResource.getDimensions().height / 2);
+ _drawOffset.x = -(_spriteResource.getDimensions().width / 2);
+ _drawOffset.y = -(_spriteResource.getDimensions().height / 2);
StaticSprite::update();
}
@@ -339,8 +339,8 @@ uint32 SsScene1105SymbolDie::handleMessage(int messageNum, const MessageParam &p
void SsScene1105SymbolDie::loadSymbolSprite() {
load(kSsScene1105SymbolDieFileHashes[getSubVar(VA_CURR_DICE_NUMBERS, _index)], true, false);
- _drawRect.x = -(_spriteResource.getDimensions().width / 2);
- _drawRect.y = -(_spriteResource.getDimensions().height / 2);
+ _drawOffset.x = -(_spriteResource.getDimensions().width / 2);
+ _drawOffset.y = -(_spriteResource.getDimensions().height / 2);
StaticSprite::update();
}
@@ -406,13 +406,13 @@ SsScene1105OpenButton::SsScene1105OpenButton(NeverhoodEngine *vm, Scene *parentS
createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
- _deltaRect = _drawRect;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
+ _collisionBoundsOffset = _drawOffset;
_needRefresh = true;
- processDelta();
+ updateBounds();
setVisible(false);
loadSound(0, 0x44045140);
SetUpdateHandler(&SsScene1105OpenButton::update);
diff --git a/engines/neverhood/module1100.h b/engines/neverhood/module1100.h
index 98d1ae6311..126d14996d 100644
--- a/engines/neverhood/module1100.h
+++ b/engines/neverhood/module1100.h
@@ -43,7 +43,7 @@ protected:
class SsScene1105Button : public StaticSprite {
public:
- SsScene1105Button(NeverhoodEngine *vm, Scene *parentScene, uint32 fileHash, NRect &rect);
+ SsScene1105Button(NeverhoodEngine *vm, Scene *parentScene, uint32 fileHash, NRect &collisionBounds);
protected:
Scene *_parentScene;
int _countdown;
diff --git a/engines/neverhood/module1200.cpp b/engines/neverhood/module1200.cpp
index 768e7819b0..bf4f1dff41 100644
--- a/engines/neverhood/module1200.cpp
+++ b/engines/neverhood/module1200.cpp
@@ -172,18 +172,18 @@ SsScene1201Tnt::SsScene1201Tnt(NeverhoodEngine *vm, uint32 elemIndex, uint32 poi
_spriteResource.load2(kScene1201TntFileHashList1[elemIndex]);
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
} else {
_spriteResource.load2(kScene1201TntFileHashList2[elemIndex]);
_x = x;
_y = y;
- _drawRect.x = -(_spriteResource.getDimensions().width / 2);
- _drawRect.y = -_spriteResource.getDimensions().height;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = -(_spriteResource.getDimensions().width / 2);
+ _drawOffset.y = -_spriteResource.getDimensions().height;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
}
createSurface(50, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
diff --git a/engines/neverhood/module1300.cpp b/engines/neverhood/module1300.cpp
index ab63c2961f..b623af0791 100644
--- a/engines/neverhood/module1300.cpp
+++ b/engines/neverhood/module1300.cpp
@@ -1165,7 +1165,7 @@ void AsScene1307Key::suRemoveKey() {
if (_pointIndex < kAsScene1307KeyPointsCount) {
_x += kAsScene1307KeyPoints[_pointIndex].x;
_y += kAsScene1307KeyPoints[_pointIndex].y;
- processDelta();
+ updateBounds();
_pointIndex++;
} else {
SetSpriteUpdate(NULL);
@@ -1176,7 +1176,7 @@ void AsScene1307Key::suInsertKey() {
if (_pointIndex < kAsScene1307KeyPointsCount) {
_x -= kAsScene1307KeyPoints[kAsScene1307KeyPointsCount - _pointIndex - 1].x;
_y -= kAsScene1307KeyPoints[kAsScene1307KeyPointsCount - _pointIndex - 1].y;
- processDelta();
+ updateBounds();
_pointIndex++;
if (_pointIndex == 7)
playSound(0);
@@ -1191,7 +1191,7 @@ void AsScene1307Key::suMoveKey() {
_frameIndex += kAsScene1307KeyFrameIndices[_pointIndex];
_x = _prevX + (_deltaX * _frameIndex) / kAsScene1307KeyDivValue;
_y = _prevY + (_deltaY * _frameIndex) / kAsScene1307KeyDivValue;
- processDelta();
+ updateBounds();
_pointIndex++;
} else {
NPoint pt = (*_pointList)[getSubVar(VA_CURR_KEY_SLOT_NUMBERS, _index)];
diff --git a/engines/neverhood/module1400.cpp b/engines/neverhood/module1400.cpp
index 7373172083..cedb283e0b 100644
--- a/engines/neverhood/module1400.cpp
+++ b/engines/neverhood/module1400.cpp
@@ -252,7 +252,7 @@ uint32 AsScene1401Mouse::handleMessage(int messageNum, const MessageParam &param
void AsScene1401Mouse::suSuckedIn() {
AnimatedSprite::updateDeltaXY();
- if (_rect.y1 <= 150) {
+ if (_collisionBounds.y1 <= 150) {
playSound(0, 0x0E32247F);
stopAnimation();
SetSpriteUpdate(NULL);
@@ -289,7 +289,7 @@ uint32 AsScene1401Cheese::handleMessage(int messageNum, const MessageParam &para
void AsScene1401Cheese::suSuckedIn() {
AnimatedSprite::updateDeltaXY();
- if (_rect.y1 <= 150) {
+ if (_collisionBounds.y1 <= 150) {
playSound(0, 0x18020439);
stopAnimation();
SetSpriteUpdate(NULL);
@@ -522,7 +522,7 @@ void AsCommonProjector::suMoving() {
setGlobalVar(V_PROJECTOR_SLOT, 0);
}
}
- Sprite::processDelta();
+ Sprite::updateBounds();
}
void AsCommonProjector::moveProjector() {
@@ -558,7 +558,7 @@ void AsCommonProjector::moveProjector() {
void AsCommonProjector::stSuckedIn() {
AnimatedSprite::updateDeltaXY();
- if (_rect.y1 <= 150) {
+ if (_collisionBounds.y1 <= 150) {
sendMessage(_asPipe, 0x483A, 0);
stopAnimation();
SetMessageHandler(&Sprite::handleMessage);
@@ -691,12 +691,12 @@ Scene1401::Scene1401(NeverhoodEngine *vm, Module *parentModule, int which)
if (getGlobalVar(V_PROJECTOR_SLOT) == 6) {
sendEntityMessage(_klayman, 0x1014, _asProjector);
_klayman->setX(_asProjector->getX() + 100);
- _klayman->processDelta();
+ _klayman->updateBounds();
setMessageList(0x004B6670);
} else if (getGlobalVar(V_PROJECTOR_SLOT) == 0) {
sendEntityMessage(_klayman, 0x1014, _asProjector);
_klayman->setX(_asProjector->getX() - 100);
- _klayman->processDelta();
+ _klayman->updateBounds();
setMessageList(0x004B6670);
}
_asProjector->setClipRect(_sprite3->getDrawRect().x, _sprite2->getDrawRect().y, 640, 480);
@@ -917,12 +917,12 @@ Scene1402::Scene1402(NeverhoodEngine *vm, Module *parentModule, int which)
if (getGlobalVar(V_PROJECTOR_SLOT) == 4) {
sendEntityMessage(_klayman, 0x1014, _asProjector);
_klayman->setX(_asProjector->getX() + 100);
- _klayman->processDelta();
+ _klayman->updateBounds();
setMessageList(0x004B0BD0);
} else if (getGlobalVar(V_PROJECTOR_SLOT) == 0) {
sendEntityMessage(_klayman, 0x1014, _asProjector);
_klayman->setX(_asProjector->getX() - 100);
- _klayman->processDelta();
+ _klayman->updateBounds();
setMessageList(0x004B0BD0);
}
_asProjector->setClipRect(_ssBridgePart1->getDrawRect().x, 0, _ssBridgePart2->getDrawRect().x, _ssBridgePart3->getDrawRect().y2());
@@ -1118,7 +1118,7 @@ void AsScene1407Mouse::suWalkTo() {
sendMessage(this, 0x1019, 0);
} else {
_x += xdelta;
- processDelta();
+ updateBounds();
}
}
@@ -1339,7 +1339,7 @@ Scene1403::Scene1403(NeverhoodEngine *vm, Module *parentModule, int which)
if (getGlobalVar(V_PROJECTOR_SLOT) == 4) {
sendEntityMessage(_klayman, 0x1014, _asProjector);
_klayman->setX(_asProjector->getX() + 100);
- _klayman->processDelta();
+ _klayman->updateBounds();
setMessageList(0x004B1F70);
}
_asProjector->setClipRect(0, 0, 640, _class401_2->getDrawRect().y2());
@@ -1457,7 +1457,7 @@ Scene1404::Scene1404(NeverhoodEngine *vm, Module *parentModule, int which)
if (getGlobalVar(V_PROJECTOR_SLOT) == 0) {
sendEntityMessage(_klayman, 0x1014, _asProjector);
_klayman->setX(_asProjector->getX() - 100);
- _klayman->processDelta();
+ _klayman->updateBounds();
setMessageList(0x004B8CB8);
}
_asProjector->setClipRect(_sprite1->getDrawRect().x, 0, 640, 480);
diff --git a/engines/neverhood/module1700.cpp b/engines/neverhood/module1700.cpp
index 7df162c15e..f6dea96161 100644
--- a/engines/neverhood/module1700.cpp
+++ b/engines/neverhood/module1700.cpp
@@ -157,12 +157,12 @@ SsScene1705Tape::SsScene1705Tape(NeverhoodEngine *vm, Scene *parentScene, uint32
setVisible(false);
SetMessageHandler(NULL);
}
- _deltaRect = _drawRect;
- _deltaRect.x -= 4;
- _deltaRect.y -= 8;
- _deltaRect.width += 8;
- _deltaRect.height += 16;
- Sprite::processDelta();
+ _collisionBoundsOffset = _drawOffset;
+ _collisionBoundsOffset.x -= 4;
+ _collisionBoundsOffset.y -= 8;
+ _collisionBoundsOffset.width += 8;
+ _collisionBoundsOffset.height += 16;
+ Sprite::updateBounds();
}
uint32 SsScene1705Tape::handleMessage(int messageNum, const MessageParam &param, Entity *sender) {
diff --git a/engines/neverhood/module1900.cpp b/engines/neverhood/module1900.cpp
index 0a02d85876..fb98c2e29a 100644
--- a/engines/neverhood/module1900.cpp
+++ b/engines/neverhood/module1900.cpp
@@ -219,8 +219,8 @@ AsScene1907Symbol::AsScene1907Symbol(NeverhoodEngine *vm, Scene1907 *parentScene
startAnimation(kAsScene1907SymbolFileHashes[_elementIndex], 0, -1);
_newStickFrameIndex = 0;
}
- _deltaRect.set(0, 0, 80, 80);
- Sprite::processDelta();
+ _collisionBoundsOffset.set(0, 0, 80, 80);
+ Sprite::updateBounds();
SetUpdateHandler(&AnimatedSprite::update);
SetMessageHandler(&AsScene1907Symbol::handleMessage);
@@ -413,7 +413,7 @@ void AsScene1907Symbol::cbFallOffHitGroundEvent() {
SetUpdateHandler(&AnimatedSprite::update);
SetMessageHandler(&AsScene1907Symbol::handleMessage);
SetSpriteUpdate(NULL);
- processDelta();
+ updateBounds();
playSound(2);
}
@@ -458,11 +458,11 @@ SsScene1907UpDownButton::SsScene1907UpDownButton(NeverhoodEngine *vm, Scene1907
_spriteResource.load2(0x64516424);
createSurface(1400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
setVisible(false);
- _drawRect.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _deltaRect = _drawRect;
+ _drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
+ _collisionBoundsOffset = _drawOffset;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- processDelta();
+ updateBounds();
_needRefresh = true;
loadSound(0, 0x44061000);
SetUpdateHandler(&SsScene1907UpDownButton::update);
@@ -500,13 +500,13 @@ uint32 SsScene1907UpDownButton::handleMessage(int messageNum, const MessageParam
void SsScene1907UpDownButton::setToUpPosition() {
_y = _spriteResource.getPosition().y;
- Sprite::processDelta();
+ Sprite::updateBounds();
StaticSprite::update();
}
void SsScene1907UpDownButton::setToDownPosition() {
_y = _spriteResource.getPosition().y + 174;
- Sprite::processDelta();
+ Sprite::updateBounds();
StaticSprite::update();
}
diff --git a/engines/neverhood/module2200.cpp b/engines/neverhood/module2200.cpp
index b3798d2db9..b746d51cb3 100644
--- a/engines/neverhood/module2200.cpp
+++ b/engines/neverhood/module2200.cpp
@@ -490,10 +490,10 @@ SsScene2201PuzzleCube::SsScene2201PuzzleCube(NeverhoodEngine *vm, uint32 positio
_spriteResource.load2(kSsScene2201PuzzleCubeFileHashes[cubeIndex]);
createSurface(100, 16, 16);
- _drawRect.x = -(_spriteResource.getDimensions().width / 2);
- _drawRect.y = -(_spriteResource.getDimensions().height / 2);
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = -(_spriteResource.getDimensions().width / 2);
+ _drawOffset.y = -(_spriteResource.getDimensions().height / 2);
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = kSsScene2201PuzzleCubePoints[positionIndex].x;
_y = kSsScene2201PuzzleCubePoints[positionIndex].y;
_needRefresh = true;
@@ -683,14 +683,14 @@ SsScene2202PuzzleTile::SsScene2202PuzzleTile(NeverhoodEngine *vm, Scene *parentS
} else {
createSurface(500, 128, 128);
}
- _drawRect.x = -(_spriteResource.getDimensions().width / 2);
- _drawRect.y = -(_spriteResource.getDimensions().height / 2);
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
- _deltaRect = _drawRect;
+ _drawOffset.x = -(_spriteResource.getDimensions().width / 2);
+ _drawOffset.y = -(_spriteResource.getDimensions().height / 2);
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
+ _collisionBoundsOffset = _drawOffset;
_x = kSsScene2202PuzzleTilePoints[_tileIndex].x;
_y = kSsScene2202PuzzleTilePoints[_tileIndex].y;
- processDelta();
+ updateBounds();
_needRefresh = true;
StaticSprite::update();
loadSound(0, 0x40958621);
@@ -750,7 +750,7 @@ void SsScene2202PuzzleTile::suMoveTileX() {
stopMoving();
}
- processDelta();
+ updateBounds();
}
@@ -785,17 +785,17 @@ void SsScene2202PuzzleTile::suMoveTileY() {
stopMoving();
}
- processDelta();
+ updateBounds();
}
void SsScene2202PuzzleTile::moveTile(int16 newTileIndex) {
_spriteResource.load2(kSsScene2202PuzzleTileFileHashes1[_value]);
- _drawRect.x = -(_spriteResource.getDimensions().width / 2);
- _drawRect.y = -(_spriteResource.getDimensions().height / 2);
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = -(_spriteResource.getDimensions().width / 2);
+ _drawOffset.y = -(_spriteResource.getDimensions().height / 2);
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_needRefresh = true;
setSubVar(VA_CUBE_POSITIONS, _tileIndex, (uint32)-1);
@@ -873,10 +873,10 @@ void SsScene2202PuzzleTile::moveTile(int16 newTileIndex) {
void SsScene2202PuzzleTile::stopMoving() {
_spriteResource.load2(kSsScene2202PuzzleTileFileHashes2[_value]);
- _drawRect.x = -(_spriteResource.getDimensions().width / 2);
- _drawRect.y = -(_spriteResource.getDimensions().height / 2);
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = -(_spriteResource.getDimensions().width / 2);
+ _drawOffset.y = -(_spriteResource.getDimensions().height / 2);
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_needRefresh = true;
SetSpriteUpdate(NULL);
_isMoving = false;
@@ -1225,10 +1225,10 @@ SsScene2205DoorFrame::SsScene2205DoorFrame(NeverhoodEngine *vm)
SetMessageHandler(&SsScene2205DoorFrame::handleMessage);
_spriteResource.load2(getGlobalVar(V_LIGHTS_ON) ? 0x24306227 : 0xD90032A0);
createSurface(1100, 45, 206);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
_needRefresh = true;
@@ -1240,10 +1240,10 @@ uint32 SsScene2205DoorFrame::handleMessage(int messageNum, const MessageParam &p
switch (messageNum) {
case 0x2000:
_spriteResource.load2(getGlobalVar(V_LIGHTS_ON) ? 0x24306227 : 0xD90032A0);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
_needRefresh = true;
@@ -1483,8 +1483,8 @@ SsScene2206TestTube::SsScene2206TestTube(NeverhoodEngine *vm, Scene *parentScene
} else {
SetMessageHandler(&SsScene2206TestTube::handleMessage);
}
- _deltaRect = _drawRect;
- processDelta();
+ _collisionBoundsOffset = _drawOffset;
+ updateBounds();
}
uint32 SsScene2206TestTube::handleMessage(int messageNum, const MessageParam &param, Entity *sender) {
@@ -1749,7 +1749,7 @@ void AsScene2207Elevator::update() {
void AsScene2207Elevator::suSetPosition() {
_x = (*_pointArray)[_pointIndex].x;
_y = (*_pointArray)[_pointIndex].y - 60;
- processDelta();
+ updateBounds();
}
uint32 AsScene2207Elevator::handleMessage(int messageNum, const MessageParam &param, Entity *sender) {
diff --git a/engines/neverhood/module2500.cpp b/engines/neverhood/module2500.cpp
index f67d1a6910..bb9e10be5f 100644
--- a/engines/neverhood/module2500.cpp
+++ b/engines/neverhood/module2500.cpp
@@ -487,14 +487,14 @@ SsScene2504Button::SsScene2504Button(NeverhoodEngine *vm)
_spriteResource.load2(0x070220D9);
createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- _deltaRect = _drawRect;
- processDelta();
+ _collisionBoundsOffset = _drawOffset;
+ updateBounds();
_needRefresh = true;
setVisible(false);
loadSound(0, 0x4600204C);
diff --git a/engines/neverhood/module2600.cpp b/engines/neverhood/module2600.cpp
index 37e4406205..7008a905f4 100644
--- a/engines/neverhood/module2600.cpp
+++ b/engines/neverhood/module2600.cpp
@@ -213,11 +213,11 @@ SsScene2609Button::SsScene2609Button(NeverhoodEngine *vm, Scene *parentScene)
if (!getGlobalVar(V_WATER_RUNNING))
setVisible(false);
- _drawRect.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _deltaRect = _drawRect;
+ _drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
+ _collisionBoundsOffset = _drawOffset;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- processDelta();
+ updateBounds();
_needRefresh = true;
loadSound(0, 0x10267160);
diff --git a/engines/neverhood/module2700.cpp b/engines/neverhood/module2700.cpp
index b0983dee98..c5524fa75a 100644
--- a/engines/neverhood/module2700.cpp
+++ b/engines/neverhood/module2700.cpp
@@ -514,7 +514,7 @@ SsCommonTrackShadowBackground::SsCommonTrackShadowBackground(NeverhoodEngine *vm
createSurface(0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- _drawRect.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
+ _drawOffset.set(0, 0, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
_needRefresh = true;
StaticSprite::update();
}
diff --git a/engines/neverhood/module2800.cpp b/engines/neverhood/module2800.cpp
index 8712cc3f26..7c895e970b 100644
--- a/engines/neverhood/module2800.cpp
+++ b/engines/neverhood/module2800.cpp
@@ -1226,7 +1226,7 @@ uint32 Scene2803Small::handleMessage(int messageNum, const MessageParam &param,
NPoint pt = _dataResource.getPoint(0x0D84A1AD);
_klayman->setX(pt.x);
_klayman->setY(pt.y);
- _klayman->processDelta();
+ _klayman->updateBounds();
klaymanFloor();
_klayman->setClipRect(517, 401, 536, 480);
setMessageList(0x004B6198);
@@ -1240,7 +1240,7 @@ uint32 Scene2803Small::handleMessage(int messageNum, const MessageParam &param,
_klayman->setClipRect(0, 0, 560, 315);
_klayman->setX(560);
_klayman->setY(315);
- _klayman->processDelta();
+ _klayman->updateBounds();
klaymanSlope();
setMessageList(0x004B61A0);
} else if (param.asInteger() == 0x002CAA68) {
@@ -1373,14 +1373,14 @@ SsScene2804RedButton::SsScene2804RedButton(NeverhoodEngine *vm, Scene2804 *paren
else
_spriteResource.load2(0x11814A21);
createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- _deltaRect = _drawRect;
- processDelta();
+ _collisionBoundsOffset = _drawOffset;
+ updateBounds();
setVisible(false);
_needRefresh = true;
SetUpdateHandler(&SsScene2804RedButton::update);
@@ -1416,10 +1416,10 @@ SsScene2804LightCoil::SsScene2804LightCoil(NeverhoodEngine *vm)
_spriteResource.load2(0x8889B008);
createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
setVisible(false);
@@ -1450,10 +1450,10 @@ SsScene2804LightTarget::SsScene2804LightTarget(NeverhoodEngine *vm)
_spriteResource.load2(0x06092132);
createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
setVisible(false);
@@ -1484,10 +1484,10 @@ SsScene2804Flash::SsScene2804Flash(NeverhoodEngine *vm)
_spriteResource.load2(0x211003A0);
createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
setVisible(false);
@@ -1507,10 +1507,10 @@ SsScene2804BeamCoilBody::SsScene2804BeamCoilBody(NeverhoodEngine *vm)
_spriteResource.load2(0x9A816000);
createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
setVisible(false);
@@ -1656,14 +1656,14 @@ SsScene2804CrystalButton::SsScene2804CrystalButton(NeverhoodEngine *vm, Scene280
_spriteResource.load2(kSsScene2804CrystalButtonFileHashes2[crystalIndex]);
createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- _deltaRect = _drawRect;
- processDelta();
+ _collisionBoundsOffset = _drawOffset;
+ updateBounds();
setVisible(false);
loadSound(0, 0x44045140);
_needRefresh = true;
@@ -2262,14 +2262,14 @@ SsScene2808Dispenser::SsScene2808Dispenser(NeverhoodEngine *vm, Scene *parentSce
_spriteResource.load2(kClass428FileHashes[testTubeSetNum * 3 + testTubeIndex]);
createSurface(1500, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- _deltaRect = _drawRect;
- processDelta();
+ _collisionBoundsOffset = _drawOffset;
+ updateBounds();
SetUpdateHandler(&SsScene2808Dispenser::update);
SetMessageHandler(&SsScene2808Dispenser::handleMessage);
setVisible(false);
diff --git a/engines/neverhood/module2900.cpp b/engines/neverhood/module2900.cpp
index 7dc8a9cb95..7abab125d8 100644
--- a/engines/neverhood/module2900.cpp
+++ b/engines/neverhood/module2900.cpp
@@ -256,16 +256,16 @@ SsScene2901LocationButton::SsScene2901LocationButton(NeverhoodEngine *vm, Scene
_spriteResource.load2(kSsScene2901LocationButtonFileHashes[which * 6 + index]);
createSurface(800, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- _rect.x1 = kSsScene2901LocationButtonPoints[_index].x - 25;
- _rect.y1 = kSsScene2901LocationButtonPoints[_index].y - 25;
- _rect.x2 = kSsScene2901LocationButtonPoints[_index].x + 25;
- _rect.y2 = kSsScene2901LocationButtonPoints[_index].y + 25;
+ _collisionBounds.x1 = kSsScene2901LocationButtonPoints[_index].x - 25;
+ _collisionBounds.y1 = kSsScene2901LocationButtonPoints[_index].y - 25;
+ _collisionBounds.x2 = kSsScene2901LocationButtonPoints[_index].x + 25;
+ _collisionBounds.y2 = kSsScene2901LocationButtonPoints[_index].y + 25;
setVisible(false);
_needRefresh = true;
loadSound(0, 0x440430C0);
@@ -301,10 +301,10 @@ SsScene2901LocationButtonLight::SsScene2901LocationButtonLight(NeverhoodEngine *
_spriteResource.load2(kSsScene2901LocationButtonLightFileHashes1[which * 6 + index]);
createSurface(900, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
setVisible(false);
@@ -328,10 +328,10 @@ SsScene2901BrokenButton::SsScene2901BrokenButton(NeverhoodEngine *vm, int which)
_spriteResource.load2(kSsScene2901BrokenButtonFileHashes[which]);
createSurface(900, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
_needRefresh = true;
@@ -343,16 +343,16 @@ SsScene2901BigButton::SsScene2901BigButton(NeverhoodEngine *vm, Scene *parentSce
_spriteResource.load2(kSsScene2901BigButtonFileHashes[which]);
createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- _rect.x1 = 62;
- _rect.y1 = 94;
- _rect.x2 = 322;
- _rect.y2 = 350;
+ _collisionBounds.x1 = 62;
+ _collisionBounds.y1 = 94;
+ _collisionBounds.x2 = 322;
+ _collisionBounds.y2 = 350;
setVisible(false);
_needRefresh = true;
loadSound(0, 0xF3D420C8);
diff --git a/engines/neverhood/module3000.cpp b/engines/neverhood/module3000.cpp
index 7695248c4b..8005c625f0 100644
--- a/engines/neverhood/module3000.cpp
+++ b/engines/neverhood/module3000.cpp
@@ -475,16 +475,16 @@ SsScene3009FireCannonButton::SsScene3009FireCannonButton(NeverhoodEngine *vm, Sc
createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
- _deltaRect.x = 0;
- _deltaRect.y = 0;
- _deltaRect.width = _spriteResource.getDimensions().width;
- _deltaRect.height = _spriteResource.getDimensions().height;
+ _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;
setVisible(false);
- processDelta();
+ updateBounds();
_needRefresh = true;
SetUpdateHandler(&SsScene3009FireCannonButton::update);
SetMessageHandler(&SsScene3009FireCannonButton::handleMessage);
@@ -521,10 +521,10 @@ SsScene3009SymbolEdges::SsScene3009SymbolEdges(NeverhoodEngine *vm, int index)
createSurface(600, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
_needRefresh = true;
if (getGlobalVar(V_ROBOT_HIT)) {
hide();
@@ -573,10 +573,10 @@ SsScene3009TargetLine::SsScene3009TargetLine(NeverhoodEngine *vm, int index)
createSurface(600, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
setVisible(false);
_needRefresh = true;
}
@@ -595,12 +595,12 @@ SsScene3009SymbolArrow::SsScene3009SymbolArrow(NeverhoodEngine *vm, Sprite *asSy
createSurface(1200, 33, 31);
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = 33;
- _drawRect.height = 31;
- _deltaRect = _drawRect;
- processDelta();
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = 33;
+ _drawOffset.height = 31;
+ _collisionBoundsOffset = _drawOffset;
+ updateBounds();
_needRefresh = true;
SetUpdateHandler(&SsScene3009SymbolArrow::update);
SetMessageHandler(&SsScene3009SymbolArrow::handleMessage);
@@ -617,10 +617,10 @@ void SsScene3009SymbolArrow::update() {
if (_countdown != 0 && (--_countdown == 0)) {
_spriteResource.load2(kSsScene3009SymbolArrowFileHashes2[_index]);
_needRefresh = true;
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
}
}
@@ -632,10 +632,10 @@ uint32 SsScene3009SymbolArrow::handleMessage(int messageNum, const MessageParam
_countdown = 2;
_spriteResource.load2(kSsScene3009SymbolArrowFileHashes1[_index]);
_needRefresh = true;
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
playSound(0);
sendMessage(_asSymbol, 0x2005, _incrDecr);
}
@@ -1155,12 +1155,12 @@ void SsScene3010DeadBoltButton::setSprite(uint32 fileHash) {
_spriteResource.load(fileHash);
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
- _deltaRect = _drawRect;
- processDelta();
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
+ _collisionBoundsOffset = _drawOffset;
+ updateBounds();
_needRefresh = true;
StaticSprite::update();
}
@@ -1430,13 +1430,13 @@ SsScene3011Button::SsScene3011Button(NeverhoodEngine *vm, Scene *parentScene, bo
createSurface(400, _spriteResource.getDimensions().width, _spriteResource.getDimensions().height);
_x = _spriteResource.getPosition().x;
_y = _spriteResource.getPosition().y;
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
- _deltaRect = _drawRect;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
+ _collisionBoundsOffset = _drawOffset;
setVisible(false);
- processDelta();
+ updateBounds();
_needRefresh = true;
SetUpdateHandler(&SsScene3011Button::update);
SetMessageHandler(&SsScene3011Button::handleMessage);
diff --git a/engines/neverhood/mouse.cpp b/engines/neverhood/mouse.cpp
index 105d170fce..632f56fb74 100644
--- a/engines/neverhood/mouse.cpp
+++ b/engines/neverhood/mouse.cpp
@@ -74,12 +74,12 @@ void Mouse::init(uint32 fileHash) {
createSurface(2000, 32, 32);
SetUpdateHandler(&Mouse::update);
SetMessageHandler(&Mouse::handleMessage);
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = 32;
- _drawRect.height = 32;
- _deltaRect = _drawRect;
- processDelta();
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = 32;
+ _drawOffset.height = 32;
+ _collisionBoundsOffset = _drawOffset;
+ updateBounds();
_needRefresh = true;
CursorMan.showMouse(false);
}
@@ -155,7 +155,7 @@ uint32 Mouse::handleMessage(int messageNum, const MessageParam &param, Entity *s
_x = param.asPoint().x;
_y = param.asPoint().y;
updateCursorNum();
- processDelta();
+ updateBounds();
break;
}
return messageResult;
@@ -167,24 +167,24 @@ void Mouse::updateCursor() {
return;
if (_doDeltaX) {
- _surface->getDrawRect().x = filterX(_x - _drawRect.width - _drawRect.x + 1);
+ _surface->getDrawRect().x = filterX(_x - _drawOffset.width - _drawOffset.x + 1);
} else {
- _surface->getDrawRect().x = filterX(_x + _drawRect.x);
+ _surface->getDrawRect().x = filterX(_x + _drawOffset.x);
}
if (_doDeltaY) {
- _surface->getDrawRect().y = filterY(_y - _drawRect.height - _drawRect.y + 1);
+ _surface->getDrawRect().y = filterY(_y - _drawOffset.height - _drawOffset.y + 1);
} else {
- _surface->getDrawRect().y = filterY(_y + _drawRect.y);
+ _surface->getDrawRect().y = filterY(_y + _drawOffset.y);
}
if (_needRefresh) {
_needRefresh = false;
- _drawRect = _mouseCursorResource.getRect();
+ _drawOffset = _mouseCursorResource.getRect();
_surface->drawMouseCursorResource(_mouseCursorResource, _frameNum / 2);
Graphics::Surface *cursorSurface = _surface->getSurface();
CursorMan.replaceCursor((const byte*)cursorSurface->pixels,
- cursorSurface->w, cursorSurface->h, -_drawRect.x, -_drawRect.y, 0);
+ cursorSurface->w, cursorSurface->h, -_drawOffset.x, -_drawOffset.y, 0);
}
}
diff --git a/engines/neverhood/sprite.cpp b/engines/neverhood/sprite.cpp
index f81be07dff..fb45b8a7be 100644
--- a/engines/neverhood/sprite.cpp
+++ b/engines/neverhood/sprite.cpp
@@ -38,20 +38,20 @@ Sprite::~Sprite() {
delete _surface;
}
-void Sprite::processDelta() {
+void Sprite::updateBounds() {
if (_doDeltaX) {
- _rect.x1 = _x - _deltaRect.x - _deltaRect.width + 1;
- _rect.x2 = _x - _deltaRect.x;
+ _collisionBounds.x1 = _x - _collisionBoundsOffset.x - _collisionBoundsOffset.width + 1;
+ _collisionBounds.x2 = _x - _collisionBoundsOffset.x;
} else {
- _rect.x1 = _x + _deltaRect.x;
- _rect.x2 = _x + _deltaRect.x + _deltaRect.width - 1;
+ _collisionBounds.x1 = _x + _collisionBoundsOffset.x;
+ _collisionBounds.x2 = _x + _collisionBoundsOffset.x + _collisionBoundsOffset.width - 1;
}
if (_doDeltaY) {
- _rect.y1 = _y - _deltaRect.y - _deltaRect.height + 1;
- _rect.y2 = _y - _deltaRect.y;
+ _collisionBounds.y1 = _y - _collisionBoundsOffset.y - _collisionBoundsOffset.height + 1;
+ _collisionBounds.y2 = _y - _collisionBoundsOffset.y;
} else {
- _rect.y1 = _y + _deltaRect.y;
- _rect.y2 = _y + _deltaRect.y + _deltaRect.height - 1;
+ _collisionBounds.y1 = _y + _collisionBoundsOffset.y;
+ _collisionBounds.y2 = _y + _collisionBoundsOffset.y + _collisionBoundsOffset.height - 1;
}
}
@@ -66,11 +66,11 @@ void Sprite::setDoDeltaY(int type) {
}
bool Sprite::isPointInside(int16 x, int16 y) {
- return x >= _rect.x1 && x <= _rect.x2 && y >= _rect.y1 && y <= _rect.y2;
+ return x >= _collisionBounds.x1 && x <= _collisionBounds.x2 && y >= _collisionBounds.y1 && y <= _collisionBounds.y2;
}
bool Sprite::checkCollision(NRect &rect) {
- return (_rect.x1 < rect.x2) && (rect.x1 < _rect.x2) && (_rect.y1 < rect.y2) && (rect.y1 < _rect.y2);
+ return (_collisionBounds.x1 < rect.x2) && (rect.x1 < _collisionBounds.x2) && (_collisionBounds.y1 < rect.y2) && (rect.y1 < _collisionBounds.y2);
}
uint32 Sprite::handleMessage(int messageNum, const MessageParam &param, Entity *sender) {
@@ -147,10 +147,10 @@ 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;
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = width;
- _drawRect.height = height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = width;
+ _drawOffset.height = height;
_needRefresh = true;
@@ -164,19 +164,19 @@ void StaticSprite::update() {
return;
if (_doDeltaX) {
- _surface->getDrawRect().x = filterX(_x - _drawRect.x - _drawRect.width + 1);
+ _surface->getDrawRect().x = filterX(_x - _drawOffset.x - _drawOffset.width + 1);
} else {
- _surface->getDrawRect().x = filterX(_x + _drawRect.x);
+ _surface->getDrawRect().x = filterX(_x + _drawOffset.x);
}
if (_doDeltaY) {
- _surface->getDrawRect().y = filterY(_y - _drawRect.y - _drawRect.height + 1);
+ _surface->getDrawRect().y = filterY(_y - _drawOffset.y - _drawOffset.height + 1);
} else {
- _surface->getDrawRect().y = filterY(_y + _drawRect.y);
+ _surface->getDrawRect().y = filterY(_y + _drawOffset.y);
}
if (_needRefresh) {
- _surface->drawSpriteResourceEx(_spriteResource, _doDeltaX, _doDeltaY, _drawRect.width, _drawRect.height);
+ _surface->drawSpriteResourceEx(_spriteResource, _doDeltaX, _doDeltaY, _drawOffset.width, _drawOffset.height);
_needRefresh = false;
}
@@ -187,10 +187,10 @@ void StaticSprite::load(uint32 fileHash, bool dimensions, bool position) {
_spriteResource.load2(fileHash);
if (dimensions) {
- _drawRect.x = 0;
- _drawRect.y = 0;
- _drawRect.width = _spriteResource.getDimensions().width;
- _drawRect.height = _spriteResource.getDimensions().height;
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = _spriteResource.getDimensions().width;
+ _drawOffset.height = _spriteResource.getDimensions().height;
}
if (position) {
@@ -261,7 +261,7 @@ void AnimatedSprite::updateDeltaXY() {
}
_deltaX = 0;
_deltaY = 0;
- processDelta();
+ updateBounds();
}
void AnimatedSprite::setRepl(byte oldColor, byte newColor) {
@@ -370,19 +370,19 @@ void AnimatedSprite::updatePosition() {
return;
if (_doDeltaX) {
- _surface->getDrawRect().x = filterX(_x - _drawRect.x - _drawRect.width + 1);
+ _surface->getDrawRect().x = filterX(_x - _drawOffset.x - _drawOffset.width + 1);
} else {
- _surface->getDrawRect().x = filterX(_x + _drawRect.x);
+ _surface->getDrawRect().x = filterX(_x + _drawOffset.x);
}
if (_doDeltaY) {
- _surface->getDrawRect().y = filterY(_y - _drawRect.y - _drawRect.height + 1);
+ _surface->getDrawRect().y = filterY(_y - _drawOffset.y - _drawOffset.height + 1);
} else {
- _surface->getDrawRect().y = filterY(_y + _drawRect.y);
+ _surface->getDrawRect().y = filterY(_y + _drawOffset.y);
}
if (_needRefresh) {
- _surface->drawAnimResource(_animResource, _currFrameIndex, _doDeltaX, _doDeltaY, _drawRect.width, _drawRect.height);
+ _surface->drawAnimResource(_animResource, _currFrameIndex, _doDeltaX, _doDeltaY, _drawOffset.width, _drawOffset.height);
_needRefresh = false;
}
@@ -414,12 +414,12 @@ void AnimatedSprite::updateFrameInfo() {
debug(8, "AnimatedSprite::updateFrameInfo()");
const AnimFrameInfo &frameInfo = _animResource.getFrameInfo(_currFrameIndex);
_frameChanged = true;
- _drawRect = frameInfo.rect;
+ _drawOffset = frameInfo.rect;
_deltaX = frameInfo.deltaX;
_deltaY = frameInfo.deltaY;
- _deltaRect = frameInfo.deltaRect;
+ _collisionBoundsOffset = frameInfo.deltaRect;
_currFrameTicks = frameInfo.counter;
- processDelta();
+ updateBounds();
_needRefresh = true;
if (frameInfo.frameHash != 0)
sendMessage(this, 0x100D, frameInfo.frameHash);
diff --git a/engines/neverhood/sprite.h b/engines/neverhood/sprite.h
index 358a37bc57..7e07f3a412 100644
--- a/engines/neverhood/sprite.h
+++ b/engines/neverhood/sprite.h
@@ -42,7 +42,7 @@ public:
~Sprite();
void init() {}
BaseSurface *getSurface() { return _surface; }
- void processDelta();
+ void updateBounds();
void setDoDeltaX(int type);
void setDoDeltaY(int type);
bool isPointInside(int16 x, int16 y);
@@ -54,7 +54,7 @@ public:
uint16 getFlags() const { return _flags; }
bool isDoDeltaX() const { return _doDeltaX; }
bool isDoDeltaY() const { return _doDeltaY; }
- NRect& getRect() { return _rect; }
+ NRect& getCollisionBounds() { return _collisionBounds; }
uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
void loadDataResource(uint32 fileHash);
int16 defFilterY(int16 y);
@@ -75,13 +75,10 @@ protected:
int16 _x, _y;
bool _doDeltaX, _doDeltaY;
bool _needRefresh;
- //0000002B field_2B db ?
- //0000002C field2C dd ? // unused
- NDrawRect _drawRect;
- NDrawRect _deltaRect;
- NRect _rect;
+ NDrawRect _drawOffset;
+ NRect _collisionBounds;
+ NDrawRect _collisionBoundsOffset;
uint16 _flags;
- //0000004A field4A dw ? // seems to be unused except in ctor
DataResource _dataResource;
void createSurface(int surfacePriority, int16 width, int16 height);
void handleSpriteUpdate() {