aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjohndoe1232012-10-05 21:55:51 +0000
committerWillem Jan Palenstijn2013-05-08 20:43:47 +0200
commitb320c9f5a00c6009091cfd8121aa8deaa2624d8d (patch)
tree73c39ce8b87aa02deee7dfc885f7b4e2b8f4cd6b
parentcb5ca835787a11d9ff99bcd8a35578586507a61c (diff)
downloadscummvm-rg350-b320c9f5a00c6009091cfd8121aa8deaa2624d8d.tar.gz
scummvm-rg350-b320c9f5a00c6009091cfd8121aa8deaa2624d8d.tar.bz2
scummvm-rg350-b320c9f5a00c6009091cfd8121aa8deaa2624d8d.zip
NEVERHOOD: Work on Module1600:
- Rename stuff (also in related files)
-rw-r--r--engines/neverhood/gamemodule.cpp5
-rw-r--r--engines/neverhood/module1400.cpp2
-rw-r--r--engines/neverhood/module1500.cpp4
-rw-r--r--engines/neverhood/module1600.cpp519
-rw-r--r--engines/neverhood/module1600.h78
-rw-r--r--engines/neverhood/module2500.cpp66
-rw-r--r--engines/neverhood/module2500.h2
-rw-r--r--engines/neverhood/module2700.cpp188
-rw-r--r--engines/neverhood/module2700.h26
9 files changed, 449 insertions, 441 deletions
diff --git a/engines/neverhood/gamemodule.cpp b/engines/neverhood/gamemodule.cpp
index e6564f3436..df001c4cc0 100644
--- a/engines/neverhood/gamemodule.cpp
+++ b/engines/neverhood/gamemodule.cpp
@@ -304,12 +304,13 @@ void GameModule::startup() {
setGlobalVar(0x0A18CA33, 0);
setGlobalVar(0x0112090A, 0);
//setGlobalVar(0x000CF819, 1);
+ setGlobalVar(0x04A105B3, 2);
// <<<DEBUG
#if 1
- _vm->gameState().sceneNum = 7;
- createModule(1300, -1);
+ _vm->gameState().sceneNum = 8;
+ createModule(1600, -1);
#endif
#if 0
_vm->gameState().sceneNum = 0;
diff --git a/engines/neverhood/module1400.cpp b/engines/neverhood/module1400.cpp
index 59ed0c470f..88b576ac39 100644
--- a/engines/neverhood/module1400.cpp
+++ b/engines/neverhood/module1400.cpp
@@ -1608,6 +1608,7 @@ Scene1405::Scene1405(NeverhoodEngine *vm, Module *parentModule, int which)
setPalette(0x0C0C007D);
insertMouse435(0xC00790C8, 20, 620);
+ // DEBUG>>>
// TODO: Some debug code: Leave two matching tiles open
for (int i = 0; i < 48; i++)
setSubVar(0xCCE0280F, i, 1);
@@ -1619,6 +1620,7 @@ Scene1405::Scene1405(NeverhoodEngine *vm, Module *parentModule, int which)
break;
}
}
+ // <<<DEBUG
for (uint32 tileIndex = 0; tileIndex < 48; tileIndex++) {
_tiles[tileIndex] = insertSprite<AsScene1405Tile>(this, tileIndex);
diff --git a/engines/neverhood/module1500.cpp b/engines/neverhood/module1500.cpp
index 88b7e73da5..a46b8fc716 100644
--- a/engines/neverhood/module1500.cpp
+++ b/engines/neverhood/module1500.cpp
@@ -132,8 +132,10 @@ void Scene1501::update() {
uint32 Scene1501::handleMessage(int messageNum, const MessageParam &param, Entity *sender) {
uint32 messageResult = Scene::handleMessage(messageNum, param, sender);
- if (messageNum == 0x0009) {
+ switch (messageNum) {
+ case 0x0009:
_flag = true;
+ break;
}
return messageResult;
}
diff --git a/engines/neverhood/module1600.cpp b/engines/neverhood/module1600.cpp
index 5c890e0653..92c566e485 100644
--- a/engines/neverhood/module1600.cpp
+++ b/engines/neverhood/module1600.cpp
@@ -179,11 +179,11 @@ void Module1600::updateScene() {
}
}
-Class521::Class521(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y)
+AsCommonCar::AsCommonCar(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y)
: AnimatedSprite(vm, 1000), _parentScene(parentScene) {
- SetUpdateHandler(&Class521::update);
- SetMessageHandler(&Class521::handleMessage);
+ SetUpdateHandler(&AsCommonCar::update);
+ SetMessageHandler(&AsCommonCar::handleMessage);
SetSpriteUpdate(NULL);
// TODO createSurface2(200, dword_4AF4C0);
@@ -214,17 +214,17 @@ Class521::Class521(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y)
}
-Class521::~Class521() {
- if (_finalizeStateCb == AnimationCallback(&Class521::sub45D620)) {
+AsCommonCar::~AsCommonCar() {
+ if (_finalizeStateCb == AnimationCallback(&AsCommonCar::sub45D620)) {
setGlobalVar(0x21E60190, !getGlobalVar(0x21E60190));
}
}
-void Class521::setPathPoints(NPointArray *pathPoints) {
+void AsCommonCar::setPathPoints(NPointArray *pathPoints) {
_pathPoints = pathPoints;
}
-void Class521::update() {
+void AsCommonCar::update() {
if (_newDeltaXType >= 0) {
setDoDeltaX(_newDeltaXType);
_newDeltaXType = -1;
@@ -242,14 +242,14 @@ void Class521::update() {
sub45E0A0();
}
-void Class521::update45C790() {
- Class521::update();
+void AsCommonCar::update45C790() {
+ AsCommonCar::update();
if (++_idleCounter >= _idleCounterMax)
sub45D050();
sub45E0A0();
}
-uint32 Class521::handleMessage(int messageNum, const MessageParam &param, Entity *sender) {
+uint32 AsCommonCar::handleMessage(int messageNum, const MessageParam &param, Entity *sender) {
uint32 messageResult = Sprite::handleMessage(messageNum, param, sender);
switch (messageNum) {
case 0x1019:
@@ -345,14 +345,14 @@ uint32 Class521::handleMessage(int messageNum, const MessageParam &param, Entity
_moreY = param.asInteger();
_steps = 0;
_flag10E = 0;
- SetSpriteUpdate(&Class521::suMoveToPrevPoint);
+ SetSpriteUpdate(&AsCommonCar::suMoveToPrevPoint);
_lastDistance = 640;
break;
case 0x2008:
_moreY = param.asInteger();
_steps = 0;
_flag10E = 0;
- SetSpriteUpdate(&Class521::suMoveToNextPoint);
+ SetSpriteUpdate(&AsCommonCar::suMoveToNextPoint);
_lastDistance = 640;
break;
case 0x2009:
@@ -376,8 +376,8 @@ uint32 Class521::handleMessage(int messageNum, const MessageParam &param, Entity
return messageResult;
}
-uint32 Class521::handleMessage45CC30(int messageNum, const MessageParam &param, Entity *sender) {
- uint32 messageResult = Class521::handleMessage(messageNum, param, sender);
+uint32 AsCommonCar::handleMessage45CC30(int messageNum, const MessageParam &param, Entity *sender) {
+ uint32 messageResult = AsCommonCar::handleMessage(messageNum, param, sender);
switch (messageNum) {
case 0x100D:
if (_flag10F && param.asInteger() == 0x025424A2) {
@@ -391,20 +391,20 @@ uint32 Class521::handleMessage45CC30(int messageNum, const MessageParam &param,
return messageResult;
}
-uint32 Class521::handleMessage45CCA0(int messageNum, const MessageParam &param, Entity *sender) {
+uint32 AsCommonCar::handleMessage45CCA0(int messageNum, const MessageParam &param, Entity *sender) {
switch (messageNum) {
case 0x2009:
sub45CF80();
break;
case 0x3002:
sendMessage(_parentScene, 0x200A, 0);
- SetMessageHandler(&Class521::handleMessage);
+ SetMessageHandler(&AsCommonCar::handleMessage);
break;
}
return 0;
}
-void Class521::sub45CD00() {
+void AsCommonCar::sub45CD00() {
bool doDeltaX = _doDeltaX;
SetSpriteUpdate(NULL);
_againDestPtFlag = 0;
@@ -415,12 +415,12 @@ void Class521::sub45CD00() {
_flag114 = 0;
_flag11A = 0;
_rectList = NULL;
- SetMessageHandler(&Class521::handleMessage45CC30);
- NextState(&Class521::sub45CFE0);
+ SetMessageHandler(&AsCommonCar::handleMessage45CC30);
+ NextState(&AsCommonCar::sub45CFE0);
startAnimation(0x35698F78, 0, -1);
- SetMessageHandler(&Class521::handleMessage45CC30);
- SetUpdateHandler(&Class521::update45C790);
- FinalizeState(&Class521::sub45D040);
+ SetMessageHandler(&AsCommonCar::handleMessage45CC30);
+ SetUpdateHandler(&AsCommonCar::update45C790);
+ FinalizeState(&AsCommonCar::sub45D040);
setDoDeltaX(doDeltaX ? 1 : 0);
_currMoveDirection = 0;
_newMoveDirection = 0;
@@ -429,36 +429,36 @@ void Class521::sub45CD00() {
_idleCounterMax = _vm->_rnd->getRandomNumber(64 - 1) + 24;
}
-void Class521::sub45CDC0() {
+void AsCommonCar::sub45CDC0() {
if (_value112 == 1) {
_lastDistance = 640;
_flag113 = 0;
_flag10E = 0;
- SetSpriteUpdate(&Class521::suMoveToNextPoint);
+ SetSpriteUpdate(&AsCommonCar::suMoveToNextPoint);
} else if (_value112 == 2) {
_lastDistance = 640;
_flag113 = 0;
_flag10E = 0;
- SetSpriteUpdate(&Class521::suMoveToPrevPoint);
+ SetSpriteUpdate(&AsCommonCar::suMoveToPrevPoint);
}
}
-void Class521::sub45CE10() {
+void AsCommonCar::sub45CE10() {
if (_flag10E && !_flag113 && !_flag10F) {
gotoNextState();
_flag114 = 0;
_flag113 = 1;
startAnimation(0x192ADD30, 0, -1);
- SetMessageHandler(&Class521::handleMessage45CC30);
- SetUpdateHandler(&Class521::update);
- NextState(&Class521::sub45CFE0);
+ SetMessageHandler(&AsCommonCar::handleMessage45CC30);
+ SetUpdateHandler(&AsCommonCar::update);
+ NextState(&AsCommonCar::sub45CFE0);
} else if (!_flag10E && _steps && _flag113) {
gotoNextState();
_flag113 = 0;
startAnimation(0x9966B138, 0, -1);
- SetMessageHandler(&Class521::handleMessage45CC30);
- SetUpdateHandler(&Class521::update);
- NextState(&Class521::sub45D100);
+ SetMessageHandler(&AsCommonCar::handleMessage45CC30);
+ SetUpdateHandler(&AsCommonCar::update);
+ NextState(&AsCommonCar::sub45D100);
} else {
bool flag = false;
uint index = 0;
@@ -483,25 +483,25 @@ void Class521::sub45CE10() {
}
}
-void Class521::sub45CF80() {
+void AsCommonCar::sub45CF80() {
startAnimation(0xA86A9538, 0, -1);
- SetMessageHandler(&Class521::handleMessage45CC30);
- SetUpdateHandler(&Class521::update);
- NextState(&Class521::sub45CFE0);
+ SetMessageHandler(&AsCommonCar::handleMessage45CC30);
+ SetUpdateHandler(&AsCommonCar::update);
+ NextState(&AsCommonCar::sub45CFE0);
}
-void Class521::sub45CFB0() {
+void AsCommonCar::sub45CFB0() {
startAnimation(0xA86A9538, -1, -1);
_playBackwards = true;
- SetMessageHandler(&Class521::handleMessage45CCA0);
- SetUpdateHandler(&Class521::update);
+ SetMessageHandler(&AsCommonCar::handleMessage45CCA0);
+ SetUpdateHandler(&AsCommonCar::update);
}
-void Class521::sub45CFE0() {
+void AsCommonCar::sub45CFE0() {
startAnimation(0x35698F78, 0, -1);
- SetMessageHandler(&Class521::handleMessage);
- SetUpdateHandler(&Class521::update45C790);
- FinalizeState(&Class521::sub45D040);
+ SetMessageHandler(&AsCommonCar::handleMessage);
+ SetUpdateHandler(&AsCommonCar::update45C790);
+ FinalizeState(&AsCommonCar::sub45D040);
_idleCounter = 0;
_currMoveDirection = 0;
_newMoveDirection = 0;
@@ -509,35 +509,35 @@ void Class521::sub45CFE0() {
_idleCounterMax = _vm->_rnd->getRandomNumber(64 - 1) + 24;
}
-void Class521::sub45D040() {
- SetUpdateHandler(&Class521::update);
+void AsCommonCar::sub45D040() {
+ SetUpdateHandler(&AsCommonCar::update);
}
-void Class521::sub45D050() {
+void AsCommonCar::sub45D050() {
startAnimation(0xB579A77C, 0, -1);
- SetMessageHandler(&Class521::handleMessage45CC30);
- SetUpdateHandler(&Class521::update);
- NextState(&Class521::sub45CFE0);
+ SetMessageHandler(&AsCommonCar::handleMessage45CC30);
+ SetUpdateHandler(&AsCommonCar::update);
+ NextState(&AsCommonCar::sub45CFE0);
_idleCounter = 0;
_idleCounterMax = _vm->_rnd->getRandomNumber(64 - 1) + 24;
}
-void Class521::sub45D0A0() {
+void AsCommonCar::sub45D0A0() {
_flag10F = 1;
gotoNextState();
startAnimation(0x9C220DA4, 0, -1);
- SetMessageHandler(&Class521::handleMessage45CC30);
- SetUpdateHandler(&Class521::update);
- FinalizeState(&Class521::sub45D0E0);
+ SetMessageHandler(&AsCommonCar::handleMessage45CC30);
+ SetUpdateHandler(&AsCommonCar::update);
+ FinalizeState(&AsCommonCar::sub45D0E0);
}
-void Class521::sub45D0E0() {
+void AsCommonCar::sub45D0E0() {
_flag10F = 0;
_newMoveDirection = 0;
sub45D100();
}
-void Class521::sub45D100() {
+void AsCommonCar::sub45D100() {
_flag114 = 1;
if (_currMoveDirection == 1) {
startAnimation(0xD4AA03A4, 0, -1);
@@ -551,18 +551,18 @@ void Class521::sub45D100() {
setGlobalVar(0x21E60190, _doDeltaX ? 1 : 0);
}
-void Class521::sub45D180() {
+void AsCommonCar::sub45D180() {
_flag10F = 1;
gotoNextState();
startAnimation(0xF46A0324, 0, -1);
_value112 = 0;
- SetMessageHandler(&Class521::handleMessage45CC30);
- SetUpdateHandler(&Class521::update);
- FinalizeState(&Class521::sub45D620);
+ SetMessageHandler(&AsCommonCar::handleMessage45CC30);
+ SetUpdateHandler(&AsCommonCar::update);
+ FinalizeState(&AsCommonCar::sub45D620);
sub45CDC0();
}
-void Class521::moveToNextPoint() {
+void AsCommonCar::moveToNextPoint() {
if (_currPointIndex >= (int)_pathPoints->size() - 1) {
_moreY = 0;
sendMessage(this, 0x1019, 0);
@@ -585,39 +585,39 @@ void Class521::moveToNextPoint() {
gotoNextState();
_flag113 = 0;
startAnimation(0x9966B138, 0, -1);
- SetMessageHandler(&Class521::handleMessage45CC30);
- SetUpdateHandler(&Class521::update);
- NextState(&Class521::sub45D100);
+ SetMessageHandler(&AsCommonCar::handleMessage45CC30);
+ SetUpdateHandler(&AsCommonCar::update);
+ NextState(&AsCommonCar::sub45D100);
}
_flag10E = 0;
- SetSpriteUpdate(&Class521::suMoveToNextPoint);
+ SetSpriteUpdate(&AsCommonCar::suMoveToNextPoint);
_lastDistance = 640;
}
}
}
-void Class521::sub45D350() {
+void AsCommonCar::sub45D350() {
gotoNextState();
_flag10F = 1;
_flag10E = 1;
startAnimation(0x192ADD30, 0, -1);
- SetMessageHandler(&Class521::handleMessage45CC30);
- SetUpdateHandler(&Class521::update);
- NextState(&Class521::sub45D390);
+ SetMessageHandler(&AsCommonCar::handleMessage45CC30);
+ SetUpdateHandler(&AsCommonCar::update);
+ NextState(&AsCommonCar::sub45D390);
}
-void Class521::sub45D390() {
+void AsCommonCar::sub45D390() {
gotoNextState();
_flag10F = 1;
startAnimation(0xF46A0324, 0, -1);
- SetMessageHandler(&Class521::handleMessage45CC30);
- SetUpdateHandler(&Class521::update);
- FinalizeState(&Class521::sub45D620);
+ SetMessageHandler(&AsCommonCar::handleMessage45CC30);
+ SetUpdateHandler(&AsCommonCar::update);
+ FinalizeState(&AsCommonCar::sub45D620);
_value112 = 1;
sub45CDC0();
}
-void Class521::moveToPrevPoint() {
+void AsCommonCar::moveToPrevPoint() {
if (_currPointIndex == 0 && _stepError == 0) {
_moreY = 0;
sendMessage(this, 0x1019, 0);
@@ -647,46 +647,46 @@ void Class521::moveToPrevPoint() {
gotoNextState();
_flag113 = 0;
startAnimation(0x9966B138, 0, -1);
- SetMessageHandler(&Class521::handleMessage45CC30);
- SetUpdateHandler(&Class521::update);
- NextState(&Class521::sub45D100);
+ SetMessageHandler(&AsCommonCar::handleMessage45CC30);
+ SetUpdateHandler(&AsCommonCar::update);
+ NextState(&AsCommonCar::sub45D100);
}
_flag10E = 0;
- SetSpriteUpdate(&Class521::suMoveToPrevPoint);
+ SetSpriteUpdate(&AsCommonCar::suMoveToPrevPoint);
_lastDistance = 640;
}
}
}
-void Class521::sub45D580() {
+void AsCommonCar::sub45D580() {
_flag10F = 1;
_flag10E = 1;
FinalizeState(NULL);
startAnimation(0x192ADD30, 0, -1);
- SetMessageHandler(&Class521::handleMessage45CC30);
- SetUpdateHandler(&Class521::update);
- NextState(&Class521::sub45D5D0);
+ SetMessageHandler(&AsCommonCar::handleMessage45CC30);
+ SetUpdateHandler(&AsCommonCar::update);
+ NextState(&AsCommonCar::sub45D5D0);
}
-void Class521::sub45D5D0() {
+void AsCommonCar::sub45D5D0() {
_flag10F = 1;
FinalizeState(NULL);
startAnimation(0xF46A0324, 0, -1);
- SetMessageHandler(&Class521::handleMessage45CC30);
- SetUpdateHandler(&Class521::update);
- FinalizeState(&Class521::sub45D620);
+ SetMessageHandler(&AsCommonCar::handleMessage45CC30);
+ SetUpdateHandler(&AsCommonCar::update);
+ FinalizeState(&AsCommonCar::sub45D620);
_value112 = 2;
sub45CDC0();
}
-void Class521::sub45D620() {
+void AsCommonCar::sub45D620() {
_flag10F = 0;
_newMoveDirection = 0;
setDoDeltaX(2);
sub45D100();
}
-void Class521::suMoveToNextPoint() {
+void AsCommonCar::suMoveToNextPoint() {
int16 newX = _x, newY = _y;
if (_currPointIndex >= (int)_pathPoints->size()) {
@@ -831,7 +831,7 @@ void Class521::suMoveToNextPoint() {
}
-void Class521::suMoveToPrevPoint() {
+void AsCommonCar::suMoveToPrevPoint() {
int16 newX = _x, newY = _y;
if (_currPointIndex == 0 && _stepError == 0) {
@@ -978,60 +978,60 @@ void Class521::suMoveToPrevPoint() {
}
-void Class521::sub45E0A0() {
+void AsCommonCar::sub45E0A0() {
// TODO
}
-Class546::Class546(NeverhoodEngine *vm, Scene *parentScene)
+AsScene1608Door::AsScene1608Door(NeverhoodEngine *vm, Scene *parentScene)
: AnimatedSprite(vm, 0x08C80144, 900, 320, 240), _parentScene(parentScene) {
setVisible(false);
- SetMessageHandler(&Class546::handleMessage);
+ SetMessageHandler(&AsScene1608Door::handleMessage);
stopAnimation();
}
-uint32 Class546::handleMessage(int messageNum, const MessageParam &param, Entity *sender) {
+uint32 AsScene1608Door::handleMessage(int messageNum, const MessageParam &param, Entity *sender) {
uint32 messageResult = Sprite::handleMessage(messageNum, param, sender);
switch (messageNum) {
case 0x3002:
gotoNextState();
break;
case 0x4808:
- sub44D710();
+ stOpenDoor();
break;
case 0x4809:
- sub44D790();
+ stCloseDoor();
break;
}
return messageResult;
}
-void Class546::sub44D710() {
+void AsScene1608Door::stOpenDoor() {
startAnimation(0x08C80144, 0, -1);
setVisible(true);
- NextState(&Class546::sub44D760);
+ NextState(&AsScene1608Door::stOpenDoorDone);
playSound(0, calcHash("fxDoorOpen23"));
}
-void Class546::sub44D760() {
+void AsScene1608Door::stOpenDoorDone() {
sendMessage(_parentScene, 0x2033, 0);
stopAnimation();
setVisible(false);
}
-void Class546::sub44D790() {
+void AsScene1608Door::stCloseDoor() {
startAnimation(0x08C80144, -1, -1);
setVisible(true);
- NextState(&Class546::sub44D7F0);
+ NextState(&AsScene1608Door::stCloseDoorDone);
playSound(0, calcHash("fxDoorClose23"));
}
-void Class546::sub44D7F0() {
+void AsScene1608Door::stCloseDoorDone() {
sendMessage(_parentScene, 0x2034, 0);
stopAnimation();
}
-Class547::Class547(NeverhoodEngine *vm, int16 x, int16 y)
+AsScene1608IdleCarLower::AsScene1608IdleCarLower(NeverhoodEngine *vm, int16 x, int16 y)
: AnimatedSprite(vm, 0x1209E09F, 1100, x, y) {
setDoDeltaX(1);
@@ -1039,35 +1039,39 @@ Class547::Class547(NeverhoodEngine *vm, int16 x, int16 y)
_newStickFrameIndex = 1;
}
-Class548::Class548(NeverhoodEngine *vm, int16 x, int16 y)
+AsScene1608IdleCarFull::AsScene1608IdleCarFull(NeverhoodEngine *vm, int16 x, int16 y)
: AnimatedSprite(vm, 0x1209E09F, 100, x, y) {
setDoDeltaX(1);
_newStickFrameIndex = 0;
}
-Class518::Class518(NeverhoodEngine *vm, Class521 *class521)
- : AnimatedSprite(vm, 1100), _class521(class521) {
+AsCommonCarConnector::AsCommonCarConnector(NeverhoodEngine *vm, AsCommonCar *asCar)
+ : AnimatedSprite(vm, 1100), _asCar(asCar) {
- SetUpdateHandler(&Class518::update);
+ SetUpdateHandler(&AsCommonCarConnector::update);
createSurface1(0x60281C10, 150);
startAnimation(0x60281C10, -1, -1);
_newStickFrameIndex = -2;
}
-void Class518::update() {
- _x = _class521->getX();
- _y = _class521->getY();
+void AsCommonCarConnector::update() {
+ _x = _asCar->getX();
+ _y = _asCar->getY();
AnimatedSprite::update();
}
Scene1608::Scene1608(NeverhoodEngine *vm, Module *parentModule, int which)
- : Scene(vm, parentModule, true), _class521(NULL), _countdown1(0) {
+ : Scene(vm, parentModule, true), _asCar(NULL), _countdown1(0) {
+
+ /* TODO: Find out which of the message/update handlers are used for
+ the upper/lower floors and rename them accordingly.
+ */
setGlobalVar(0x21E60190, 1);
_surfaceFlag = true;
- SetMessageHandler(&Scene1608::handleMessage44D2A0);
+ SetMessageHandler(&Scene1608::hmLowerFloor);
_class545 = insertSprite<Class545>(this, 1, 1100, 198, 220);
_vm->_collisionMan->addSprite(_class545);
@@ -1078,9 +1082,9 @@ Scene1608::Scene1608(NeverhoodEngine *vm, Module *parentModule, int which)
else {
setRectList(0x004B47D0);
insertKlayman<KmScene1608>(380, 438);
- _klayman2 = _klayman;
- _flag4 = false;
- _class546 = insertSprite<Class546>(this);
+ _kmScene1608 = _klayman;
+ _klaymanInCar = false;
+ _asDoor = insertSprite<AsScene1608Door>(this);
_sprite1 = insertStaticSprite(0x7D0404E8, 1100);
setMessageList(0x004B46A8);
setBackground(0x10080E01);
@@ -1088,7 +1092,7 @@ Scene1608::Scene1608(NeverhoodEngine *vm, Module *parentModule, int which)
_asTape = insertSprite<AsScene1201Tape>(this, 13, 1100, 412, 443, 0x9148A011);
_vm->_collisionMan->addSprite(_asTape);
_klayman->setClipRect(_sprite1->getDrawRect().x, 0, 640, 480);
- SetUpdateHandler(&Scene1608::update44CE90);
+ SetUpdateHandler(&Scene1608::upLowerFloor);
insertMouse433(0x80E05108);
insertStaticSprite(0x4B18F868, 1200);
}
@@ -1096,8 +1100,8 @@ Scene1608::Scene1608(NeverhoodEngine *vm, Module *parentModule, int which)
_vm->gameState().which = 0;
setRectList(0x004B47D0);
insertKlayman<KmScene1608>(0, 438);
- _klayman2 = _klayman;
- _flag4 = false;
+ _kmScene1608 = _klayman;
+ _klaymanInCar = false;
setMessageList(0x004B46B0);
setBackground(0x10080E01);
setPalette(0x10080E01);
@@ -1105,10 +1109,10 @@ Scene1608::Scene1608(NeverhoodEngine *vm, Module *parentModule, int which)
_vm->_collisionMan->addSprite(_asTape);
insertMouse433(0x80E05108);
_sprite1 = insertStaticSprite(0x7D0404E8, 1100);
- _class546 = insertSprite<Class546>(this);
+ _asDoor = insertSprite<AsScene1608Door>(this);
_klayman->setClipRect(_sprite1->getDrawRect().x, 0, 640, 480);
- SetUpdateHandler(&Scene1608::update44CE90);
- sendMessage(_class546, 0x4808, 0);
+ SetUpdateHandler(&Scene1608::upLowerFloor);
+ sendMessage(_asDoor, 0x4808, 0);
insertStaticSprite(0x4B18F868, 1200);
} else if (which == 2) {
_vm->gameState().which = 1;
@@ -1119,38 +1123,38 @@ Scene1608::Scene1608(NeverhoodEngine *vm, Module *parentModule, int which)
_palette->addPalette("paPodRed", 65, 31, 65);
insertMouse433(0x01600988);
_sprite2 = insertStaticSprite(0x491F38A8, 1100);
- _class521 = createSprite<Class521>(this, 375, 227); // Create but don't add to the sprite list yet
- _class547 = insertSprite<Class547>(375, 227);
- _class548 = insertSprite<Class548>(375, 227);
- _class521->setVisible(false);
+ _asCar = createSprite<AsCommonCar>(this, 375, 227); // Create but don't add to the sprite list yet
+ _asIdleCarLower = insertSprite<AsScene1608IdleCarLower>(375, 227);
+ _asIdleCarFull = insertSprite<AsScene1608IdleCarFull>(375, 227);
+ _asCar->setVisible(false);
if (getGlobalVar(0xC0418A02)) {
insertKlayman<KmScene1608>(373, 220);
_klayman->setDoDeltaX(1);
} else {
insertKlayman<KmScene1608>(283, 220);
}
- _klayman2 = _klayman;
+ _kmScene1608 = _klayman;
setMessageList(0x004B47A8);
- SetMessageHandler(&Scene1608::handleMessage44D3C0);
- SetUpdateHandler(&Scene1608::update44CED0);
+ SetMessageHandler(&Scene1608::hmUpperFloor);
+ SetUpdateHandler(&Scene1608::upUpperFloor);
// NOTE: Setting the point array was handled by messages 0x2000 (array) and 0x2001 (count) in the original
- _class521->setPathPoints(_roomPathPoints);
- sendMessage(_class521, 0x2002, _roomPathPoints->size() - 1);
+ _asCar->setPathPoints(_roomPathPoints);
+ sendMessage(_asCar, 0x2002, _roomPathPoints->size() - 1);
_sprite3 = insertStaticSprite(0xB47026B0, 1100);
_rect1.set(_sprite3->getDrawRect().x, _sprite3->getDrawRect().y, 640, _sprite2->getDrawRect().y2());
_rect3.set(_sprite2->getDrawRect().x, _sprite3->getDrawRect().y, 640, _sprite2->getDrawRect().y2());
_rect2 = _rect1;
_rect2.y2 = 215;
_klayman->setClipRect(_rect1);
- _class521->setClipRect(_rect1);
- _class547->setClipRect(_rect1);
- _class548->setClipRect(_rect1);
+ _asCar->setClipRect(_rect1);
+ _asIdleCarLower->setClipRect(_rect1);
+ _asIdleCarFull->setClipRect(_rect1);
_asTape = insertSprite<AsScene1201Tape>(this, 13, 1100, 412, 443, 0x9148A011);
_vm->_collisionMan->addSprite(_asTape);
- insertSprite<Class518>(_class521)->setClipRect(_rect1);
- _flag4 = false;
- _flag2 = false;
- _flag1 = 0;
+ insertSprite<AsCommonCarConnector>(_asCar)->setClipRect(_rect1);
+ _klaymanInCar = false;
+ _carClipFlag = false;
+ _carStatus = 0;
setRectList(0x004B4810);
}
@@ -1163,36 +1167,36 @@ Scene1608::Scene1608(NeverhoodEngine *vm, Module *parentModule, int which)
setPalette(0x98001604);
_palette->addPalette("paPodRed", 65, 31, 65);
insertMouse433(0x01600988);
- _class521 = insertSprite<Class521>(this, 375, 227);
- _class547 = insertSprite<Class547>(375, 227);
- _class548 = insertSprite<Class548>(375, 227);
+ _asCar = insertSprite<AsCommonCar>(this, 375, 227);
+ _asIdleCarLower = insertSprite<AsScene1608IdleCarLower>(375, 227);
+ _asIdleCarFull = insertSprite<AsScene1608IdleCarFull>(375, 227);
_sprite2 = insertStaticSprite(0x491F38A8, 1100);
- _klayman2 = createSprite<KmScene1608>(this, 439, 220); // Special Klayman handling...
- sendMessage(_klayman2, 0x2032, 1);
- _klayman2->setDoDeltaX(1);
- SetMessageHandler(&Scene1608::handleMessage44D470);
- SetUpdateHandler(&Scene1608::update44D1E0);
- _class547->setVisible(false);
- _class548->setVisible(false);
+ _kmScene1608 = createSprite<KmScene1608>(this, 439, 220); // Special Klayman handling...
+ sendMessage(_kmScene1608, 0x2032, 1);
+ _kmScene1608->setDoDeltaX(1);
+ SetMessageHandler(&Scene1608::hmRidingCar);
+ SetUpdateHandler(&Scene1608::upRidingCar);
+ _asIdleCarLower->setVisible(false);
+ _asIdleCarFull->setVisible(false);
// NOTE: Setting the point array was handled by messages 0x2000 (array) and 0x2001 (count) in the original
- _class521->setPathPoints(_roomPathPoints);
- sendMessage(_class521, 0x2002, 0);
- sendMessage(_class521, 0x2008, 90);
+ _asCar->setPathPoints(_roomPathPoints);
+ sendMessage(_asCar, 0x2002, 0);
+ sendMessage(_asCar, 0x2008, 90);
_sprite3 = insertStaticSprite(0xB47026B0, 1100);
_rect1.set(_sprite3->getDrawRect().x, _sprite3->getDrawRect().y, 640, _sprite2->getDrawRect().y2());
_rect3.set(_sprite2->getDrawRect().x, _sprite3->getDrawRect().y, 640, _sprite2->getDrawRect().y2());
_rect2 = _rect1;
_rect2.y2 = 215;
- _klayman2->setClipRect(_rect1);
- _class521->setClipRect(_rect1);
- _class547->setClipRect(_rect1);
- _class548->setClipRect(_rect1);
+ _kmScene1608->setClipRect(_rect1);
+ _asCar->setClipRect(_rect1);
+ _asIdleCarLower->setClipRect(_rect1);
+ _asIdleCarFull->setClipRect(_rect1);
_asTape = insertSprite<AsScene1201Tape>(this, 13, 1100, 412, 443, 0x9148A011);
// ... _vm->_collisionMan->addSprite(_asTape);
- insertSprite<Class518>(_class521)->setClipRect(_rect1);
- _flag4 = true;
- _flag2 = true;
- _flag1 = 0;
+ insertSprite<AsCommonCarConnector>(_asCar)->setClipRect(_rect1);
+ _klaymanInCar = true;
+ _carClipFlag = true;
+ _carStatus = 0;
}
_palette->addPalette("paKlayRed", 0, 64, 0);
@@ -1200,113 +1204,100 @@ Scene1608::Scene1608(NeverhoodEngine *vm, Module *parentModule, int which)
}
Scene1608::~Scene1608() {
- setGlobalVar(0xC0418A02, _klayman2->isDoDeltaX() ? 1 : 0);
- // Weird
- if (_flag4) {
- delete _klayman2;
+ setGlobalVar(0xC0418A02, _kmScene1608->isDoDeltaX() ? 1 : 0);
+ if (_klaymanInCar) {
+ delete _kmScene1608;
} else {
- delete _class521;
+ delete _asCar;
}
}
-void Scene1608::update44CE90() {
+void Scene1608::upLowerFloor() {
Scene::update();
if (_countdown1 != 0 && (--_countdown1 == 0)) {
leaveScene(0);
}
}
-void Scene1608::update44CED0() {
+void Scene1608::upUpperFloor() {
Scene::update();
- if (_flag1 == 1) {
+ if (_carStatus == 1) {
removeSurface(_klayman->getSurface());
removeEntity(_klayman);
- addSprite(_class521);
- _flag4 = true;
+ addSprite(_asCar);
+ _klaymanInCar = true;
clearRectList();
- SetUpdateHandler(&Scene1608::update44CFE0);
- SetMessageHandler(&Scene1608::handleMessage44D510);
- _class547->setVisible(false);
- _class548->setVisible(false);
- _class521->setVisible(true);
- sendMessage(_class521, 0x2009, 0);
- _class521->handleUpdate();
+ SetUpdateHandler(&Scene1608::upCarAtHome);
+ SetMessageHandler(&Scene1608::hmCarAtHome);
+ _asIdleCarLower->setVisible(false);
+ _asIdleCarFull->setVisible(false);
+ _asCar->setVisible(true);
+ sendMessage(_asCar, 0x2009, 0);
+ _asCar->handleUpdate();
_klayman = NULL;
- _flag1 = 0;
- }
- if (_klayman2->getX() <= 375) {
- _klayman2->setClipRect(_rect1);
- } else {
- _klayman2->setClipRect(_rect2);
+ _carStatus = 0;
}
+ updateKlaymanCliprect();
}
-void Scene1608::update44CFE0() {
+void Scene1608::upCarAtHome() {
Scene::update();
if (_mouseClicked) {
- if (_mouseClickPos.x <= 329 && _class521->getX() == 375 && _class521->getY() == 227) {
- sendMessage(_class521, 0x200A, 0);
- SetUpdateHandler(&Scene1608::update44D0C0);
+ if (_mouseClickPos.x <= 329 && _asCar->getX() == 375 && _asCar->getY() == 227) {
+ sendMessage(_asCar, 0x200A, 0);
+ SetUpdateHandler(&Scene1608::upGettingOutOfCar);
} else {
- sendPointMessage(_class521, 0x2004, _mouseClickPos);
- SetMessageHandler(&Scene1608::handleMessage44D470);
- SetUpdateHandler(&Scene1608::update44D1E0);
+ sendPointMessage(_asCar, 0x2004, _mouseClickPos);
+ SetMessageHandler(&Scene1608::hmRidingCar);
+ SetUpdateHandler(&Scene1608::upRidingCar);
}
_mouseClicked = false;
}
- if (_klayman2->getX() <= 375) {
- _klayman2->setClipRect(_rect1);
- } else {
- _klayman2->setClipRect(_rect2);
- }
+ updateKlaymanCliprect();
}
-void Scene1608::update44D0C0() {
+void Scene1608::upGettingOutOfCar() {
Scene::update();
- if (_flag1 == 2) {
- _klayman = _klayman2;
- removeSurface(_class521->getSurface());
- removeEntity(_class521);
+ if (_carStatus == 2) {
+ _klayman = _kmScene1608;
+ removeSurface(_asCar->getSurface());
+ removeEntity(_asCar);
addSprite(_klayman);
- _flag4 = false;
- SetMessageHandler(&Scene1608::handleMessage44D3C0);
- SetUpdateHandler(&Scene1608::update44CED0);
+ _klaymanInCar = false;
+ SetMessageHandler(&Scene1608::hmUpperFloor);
+ SetUpdateHandler(&Scene1608::update);
setRectList(0x004B4810);
- _class547->setVisible(true);
- _class548->setVisible(true);
- _class521->setVisible(false);
+ _asIdleCarLower->setVisible(true);
+ _asIdleCarFull->setVisible(true);
+ _asCar->setVisible(false);
setMessageList(0x004B4748);
runMessageList();
_klayman->handleUpdate();
- _flag1 = 0;
- }
- if (_klayman2->getX() <= 375) {
- _klayman2->setClipRect(_rect1);
- } else {
- _klayman2->setClipRect(_rect2);
+ _carStatus = 0;
}
+ updateKlaymanCliprect();
}
-void Scene1608::update44D1E0() {
+void Scene1608::upRidingCar() {
Scene::update();
if (_mouseClicked) {
- sendPointMessage(_class521, 0x2004, _mouseClickPos);
+ sendPointMessage(_asCar, 0x2004, _mouseClickPos);
_mouseClicked = false;
}
- if (_class521->getX() < 300) {
- if (_flag2) {
- _flag2 = false;
- _class521->setClipRect(_rect1);
- if (!_class521->isDoDeltaX())
- sendMessage(_class521, 0x200E, 0);
+ if (_asCar->getX() < 300) {
+ if (_carClipFlag) {
+ _carClipFlag = false;
+ _asCar->setClipRect(_rect1);
+ if (!_asCar->isDoDeltaX())
+ sendMessage(_asCar, 0x200E, 0);
}
- } else if (!_flag2) {
- _flag2 = true;
- _class521->setClipRect(_rect3);
+ } else if (!_carClipFlag) {
+ _carClipFlag = true;
+ _asCar->setClipRect(_rect3);
}
}
-uint32 Scene1608::handleMessage44D2A0(int messageNum, const MessageParam &param, Entity *sender) {
+uint32 Scene1608::hmLowerFloor(int messageNum, const MessageParam &param, Entity *sender) {
Scene::handleMessage(messageNum, param, sender);
switch (messageNum) {
case 0x100D:
@@ -1315,7 +1306,7 @@ uint32 Scene1608::handleMessage44D2A0(int messageNum, const MessageParam &param,
_klayman->setVisible(false);
showMouse(false);
_sprite1->setVisible(false);
- sendMessage(_class546, 0x4809, 0);
+ sendMessage(_asDoor, 0x4809, 0);
_countdown1 = 28;
}
break;
@@ -1324,7 +1315,7 @@ uint32 Scene1608::handleMessage44D2A0(int messageNum, const MessageParam &param,
break;
case 0x4826:
if (sender == _asTape) {
- sendEntityMessage(_klayman2, 0x1014, _asTape);
+ sendEntityMessage(_kmScene1608, 0x1014, _asTape);
setMessageList(0x004B4770);
} else if (sender == _class545) {
setMessageList(0x004B46C8);
@@ -1334,12 +1325,12 @@ uint32 Scene1608::handleMessage44D2A0(int messageNum, const MessageParam &param,
return 0;
}
-uint32 Scene1608::handleMessage44D3C0(int messageNum, const MessageParam &param, Entity *sender) {
+uint32 Scene1608::hmUpperFloor(int messageNum, const MessageParam &param, Entity *sender) {
Scene::handleMessage(messageNum, param, sender);
switch (messageNum) {
case 0x100D:
if (param.asInteger() == 0x60842040) {
- _flag1 = true;
+ _carStatus = 1;
}
break;
case 0x200D:
@@ -1347,7 +1338,7 @@ uint32 Scene1608::handleMessage44D3C0(int messageNum, const MessageParam &param,
break;
case 0x4826:
if (sender == _class545) {
- sendEntityMessage(_klayman2, 0x1014, _class545);
+ sendEntityMessage(_kmScene1608, 0x1014, _class545);
setMessageList(0x004B4760);
}
break;
@@ -1355,16 +1346,16 @@ uint32 Scene1608::handleMessage44D3C0(int messageNum, const MessageParam &param,
return 0;
}
-uint32 Scene1608::handleMessage44D470(int messageNum, const MessageParam &param, Entity *sender) {
+uint32 Scene1608::hmRidingCar(int messageNum, const MessageParam &param, Entity *sender) {
Scene::handleMessage(messageNum, param, sender);
switch (messageNum) {
case 0x2005:
leaveScene(1);
break;
case 0x2006:
- SetMessageHandler(&Scene1608::handleMessage44D510);
- SetUpdateHandler(&Scene1608::update44CFE0);
- sendMessage(_class521, 0x200F, 1);
+ SetMessageHandler(&Scene1608::hmCarAtHome);
+ SetUpdateHandler(&Scene1608::upCarAtHome);
+ sendMessage(_asCar, 0x200F, 1);
break;
case 0x200D:
sendMessage(_parentModule, 0x200D, 0);
@@ -1373,11 +1364,11 @@ uint32 Scene1608::handleMessage44D470(int messageNum, const MessageParam &param,
return 0;
}
-uint32 Scene1608::handleMessage44D510(int messageNum, const MessageParam &param, Entity *sender) {
+uint32 Scene1608::hmCarAtHome(int messageNum, const MessageParam &param, Entity *sender) {
Scene::handleMessage(messageNum, param, sender);
switch (messageNum) {
case 0x200A:
- _flag1 = 2;
+ _carStatus = 2;
break;
case 0x200D:
sendMessage(_parentModule, 0x200D, 0);
@@ -1386,11 +1377,18 @@ uint32 Scene1608::handleMessage44D510(int messageNum, const MessageParam &param,
return 0;
}
+void Scene1608::updateKlaymanCliprect() {
+ if (_kmScene1608->getX() <= 375)
+ _kmScene1608->setClipRect(_rect1);
+ else
+ _kmScene1608->setClipRect(_rect2);
+}
+
Scene1609::Scene1609(NeverhoodEngine *vm, Module *parentModule, int which)
- : Scene(vm, parentModule, true), _countdown1(1), _index1(0), _index3(0), _flag5(true), _flag6(false) {
+ : Scene(vm, parentModule, true), _countdown1(1), _currentSymbolIndex(0), _symbolPosition(0), _changeCurrentSymbol(true), _isSolved(false) {
// TODO _vm->gameModule()->initScene3011Vars();
- _index2 = getGlobalVar(0x2414C2F2);
+ _noisySymbolIndex = getGlobalVar(0x2414C2F2);
_surfaceFlag = true;
SetMessageHandler(&Scene1609::handleMessage);
@@ -1399,8 +1397,8 @@ Scene1609::Scene1609(NeverhoodEngine *vm, Module *parentModule, int which)
setBackground(0x92124A14);
setPalette(0x92124A14);
- for (int i = 0; i < 12; i++)
- _asSymbols[i] = insertSprite<AsScene3011Symbol>(i, false);
+ for (int symbolPosition = 0; symbolPosition < 12; symbolPosition++)
+ _asSymbols[symbolPosition] = insertSprite<AsScene3011Symbol>(symbolPosition, false);
_ssButton = insertSprite<SsScene3011Button>(this, true);
_vm->_collisionMan->addSprite(_ssButton);
@@ -1412,21 +1410,21 @@ Scene1609::Scene1609(NeverhoodEngine *vm, Module *parentModule, int which)
}
void Scene1609::update() {
- if (!_flag6 && _countdown1 != 0 && (--_countdown1 == 0)) {
- if (_flag5) {
- _index1++;
- if (_index1 >= 12)
- _index1 = 0;
- _asSymbols[_index3]->change(_index1 + 12, _index1 == (int)getSubVar(0x04909A50, _index2));
- _flag5 = false;
+ if (!_isSolved && _countdown1 != 0 && (--_countdown1 == 0)) {
+ if (_changeCurrentSymbol) {
+ _currentSymbolIndex++;
+ if (_currentSymbolIndex >= 12)
+ _currentSymbolIndex = 0;
+ _asSymbols[_symbolPosition]->change(_currentSymbolIndex + 12, _currentSymbolIndex == (int)getSubVar(0x04909A50, _noisySymbolIndex));
+ _changeCurrentSymbol = false;
_countdown1 = 36;
} else {
- _asSymbols[_index3]->hide();
- _flag5 = true;
+ _asSymbols[_symbolPosition]->hide();
+ _changeCurrentSymbol = true;
_countdown1 = 12;
}
}
- if (_flag6 && !isSoundPlaying(0)) {
+ if (_isSolved && !isSoundPlaying(0)) {
leaveScene(1);
}
Scene::update();
@@ -1442,23 +1440,23 @@ uint32 Scene1609::handleMessage(int messageNum, const MessageParam &param, Entit
break;
// TODO: Debug stuff
case 0x2000:
- if (!_flag6) {
- if (_flag5)
- _asSymbols[_index3]->change(_index1 + 12, false);
- _asSymbols[_index3]->stopSymbolSound();
- _index3++;
- if (_index3 >= 12) {
+ if (!_isSolved) {
+ if (_changeCurrentSymbol)
+ _asSymbols[_symbolPosition]->change(_currentSymbolIndex + 12, false);
+ _asSymbols[_symbolPosition]->stopSymbolSound();
+ _symbolPosition++;
+ if (_symbolPosition >= 12) {
if (testVars()) {
playSound(0);
setGlobalVar(0x2C531AF8, 1);
- _flag6 = true;
+ _isSolved = true;
} else {
- _index3 = 0;
+ _symbolPosition = 0;
for (int i = 0; i < 12; i++)
_asSymbols[i]->hide();
}
}
- _flag5 = true;
+ _changeCurrentSymbol = true;
_countdown1 = 1;
}
break;
@@ -1468,6 +1466,8 @@ uint32 Scene1609::handleMessage(int messageNum, const MessageParam &param, Entit
bool Scene1609::testVars() {
int index1 = 0;
+
+ // Find the position of the first symbol
do {
int cmpIndex = _asSymbols[0]->getIndex();
if (!_asSymbols[0]->getFlag1())
@@ -1476,17 +1476,20 @@ bool Scene1609::testVars() {
break;
index1++;
} while(1);
+
+ // Check if the entered symbols match
for (int index2 = 0; index2 < 12; index2++) {
int cmpIndex = _asSymbols[index2]->getIndex();
if (!_asSymbols[index2]->getFlag1())
cmpIndex -= 12;
if ((int)getSubVar(0x04909A50, index1) != cmpIndex)
return false;
- _index1++;
- if (_index1 >= 12)
- _index1 = 0;
- _index2++;
+ index1++;
+ if (index1 >= 12)
+ index1 = 0;
+ index2++;
}
+
return true;
}
diff --git a/engines/neverhood/module1600.h b/engines/neverhood/module1600.h
index b5b8e6b7fc..ec31b68a0f 100644
--- a/engines/neverhood/module1600.h
+++ b/engines/neverhood/module1600.h
@@ -41,10 +41,10 @@ protected:
void updateScene();
};
-class Class521 : public AnimatedSprite {
+class AsCommonCar : public AnimatedSprite {
public:
- Class521(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y);
- ~Class521();
+ AsCommonCar(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y);
+ ~AsCommonCar();
void setPathPoints(NPointArray *pathPoints);
protected:
Scene *_parentScene;
@@ -105,33 +105,33 @@ protected:
void sub45E0A0();
};
-class Class546 : public AnimatedSprite {
+class AsScene1608Door : public AnimatedSprite {
public:
- Class546(NeverhoodEngine *vm, Scene *parentScene);
+ AsScene1608Door(NeverhoodEngine *vm, Scene *parentScene);
protected:
Scene *_parentScene;
uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
- void sub44D710();
- void sub44D760();
- void sub44D790();
- void sub44D7F0();
+ void stOpenDoor();
+ void stOpenDoorDone();
+ void stCloseDoor();
+ void stCloseDoorDone();
};
-class Class547 : public AnimatedSprite {
+class AsScene1608IdleCarLower : public AnimatedSprite {
public:
- Class547(NeverhoodEngine *vm, int16 x, int16 y);
+ AsScene1608IdleCarLower(NeverhoodEngine *vm, int16 x, int16 y);
};
-class Class548 : public AnimatedSprite {
+class AsScene1608IdleCarFull : public AnimatedSprite {
public:
- Class548(NeverhoodEngine *vm, int16 x, int16 y);
+ AsScene1608IdleCarFull(NeverhoodEngine *vm, int16 x, int16 y);
};
-class Class518 : public AnimatedSprite {
+class AsCommonCarConnector : public AnimatedSprite {
public:
- Class518(NeverhoodEngine *vm, Class521 *class521);
+ AsCommonCarConnector(NeverhoodEngine *vm, AsCommonCar *asCar);
protected:
- Class521 *_class521;
+ AsCommonCar *_asCar;
void update();
};
@@ -140,34 +140,34 @@ public:
Scene1608(NeverhoodEngine *vm, Module *parentModule, int which);
~Scene1608();
protected:
- Class521 *_class521;
+ AsCommonCar *_asCar;
Sprite *_class545;
- Sprite *_class546;
- Sprite *_class547;
- Sprite *_class548;
+ Sprite *_asDoor;
+ Sprite *_asIdleCarLower;
+ Sprite *_asIdleCarFull;
Sprite *_sprite1;
Sprite *_sprite2;
Sprite *_sprite3;
Sprite *_asTape;
- Klayman *_klayman2;
+ Klayman *_kmScene1608;
NRect _rect1;
NRect _rect2;
NRect _rect3;
- int _flag1;
- bool _flag2;
- bool _flag3;
- bool _flag4;
+ int _carStatus;
+ bool _carClipFlag;
+ bool _klaymanInCar;
int _countdown1;
NPointArray *_roomPathPoints;
- void update44CE90();
- void update44CED0();
- void update44CFE0();
- void update44D0C0();
- void update44D1E0();
- uint32 handleMessage44D2A0(int messageNum, const MessageParam &param, Entity *sender);
- uint32 handleMessage44D3C0(int messageNum, const MessageParam &param, Entity *sender);
- uint32 handleMessage44D470(int messageNum, const MessageParam &param, Entity *sender);
- uint32 handleMessage44D510(int messageNum, const MessageParam &param, Entity *sender);
+ void upLowerFloor();
+ void upUpperFloor();
+ void upCarAtHome();
+ void upGettingOutOfCar();
+ void upRidingCar();
+ uint32 hmLowerFloor(int messageNum, const MessageParam &param, Entity *sender);
+ uint32 hmUpperFloor(int messageNum, const MessageParam &param, Entity *sender);
+ uint32 hmRidingCar(int messageNum, const MessageParam &param, Entity *sender);
+ uint32 hmCarAtHome(int messageNum, const MessageParam &param, Entity *sender);
+ void updateKlaymanCliprect();
};
class Scene1609 : public Scene {
@@ -176,12 +176,12 @@ public:
protected:
Sprite *_ssButton;
AsScene3011Symbol *_asSymbols[12];
- int _index1;
- int _index2;
- int _index3;
+ int _currentSymbolIndex;
+ int _noisySymbolIndex;
+ int _symbolPosition;
int _countdown1;
- bool _flag5;
- bool _flag6;
+ bool _changeCurrentSymbol;
+ bool _isSolved;
void update();
uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
bool testVars();
diff --git a/engines/neverhood/module2500.cpp b/engines/neverhood/module2500.cpp
index cc0dda9837..26d0d88de1 100644
--- a/engines/neverhood/module2500.cpp
+++ b/engines/neverhood/module2500.cpp
@@ -249,7 +249,7 @@ Scene2501::Scene2501(NeverhoodEngine *vm, Module *parentModule, int which)
_class437 = createSprite<Class437>(0x99BE9015); // Don't add this to the sprite list
addEntity(_class437);
- _class521 = createSprite<Class521>(this, 211, 400); // Create but don't add to the sprite list yet
+ _asCar = createSprite<AsCommonCar>(this, 211, 400); // Create but don't add to the sprite list yet
_class541 = insertSprite<Class541>(211, 400);
_class542 = insertSprite<Class542>(211, 400);
insertStaticSprite(0xC42AC521, 1500);
@@ -262,11 +262,11 @@ Scene2501::Scene2501(NeverhoodEngine *vm, Module *parentModule, int which)
setRectList(0x004B2608);
SetMessageHandler(&Scene2501::handleMessage);
SetUpdateHandler(&Scene2501::update);
- sendMessage(_class521, 0x2009, 0);
- _class521->setVisible(false);
+ sendMessage(_asCar, 0x2009, 0);
+ _asCar->setVisible(false);
_currTrackIndex = 0;
} else if (which == 1 || which == 2) {
- addSprite(_class521);
+ addSprite(_asCar);
_kmScene2501 = (Klayman*)new KmScene2501(_vm, this, 275, 393);
_klaymanInCar = true;
sendMessage(_kmScene2501, 0x2000, 1);
@@ -284,33 +284,33 @@ Scene2501::Scene2501(NeverhoodEngine *vm, Module *parentModule, int which)
setRectList(0x004B2608);
SetMessageHandler(&Scene2501::handleMessage);
SetUpdateHandler(&Scene2501::update);
- sendMessage(_class521, 0x2009, 0);
- _class521->setVisible(false);
+ sendMessage(_asCar, 0x2009, 0);
+ _asCar->setVisible(false);
_currTrackIndex = 0;
}
- _class517 = insertSprite<Class517>(_class521, _class437->getSurface(), 4);
- _class520 = insertSprite<Class520>(_class521, _class437->getSurface(), 4);
- _class519 = insertSprite<Class519>(_class521, _class437->getSurface(), 4);
- insertSprite<Class518>(_class521);
+ _class517 = insertSprite<Class517>(_asCar, _class437->getSurface(), 4);
+ _class520 = insertSprite<Class520>(_asCar, _class437->getSurface(), 4);
+ _class519 = insertSprite<Class519>(_asCar, _class437->getSurface(), 4);
+ insertSprite<AsCommonCarConnector>(_asCar);
_pointListsCount = 3;
_newTrackIndex = -1;
_dataResource.load(calcHash("Ashooded"));
_trackPoints = _dataResource.getPointArray(_sceneInfos[_currTrackIndex]->pointListName);
- _class521->setPathPoints(_trackPoints);
+ _asCar->setPathPoints(_trackPoints);
if (which >= 0 && _sceneInfos[_currTrackIndex]->which2 == which) {
NPoint testPoint = (*_trackPoints)[_trackPoints->size() - 1];
- sendMessage(_class521, 0x2002, _trackPoints->size() - 1);
+ sendMessage(_asCar, 0x2002, _trackPoints->size() - 1);
if (testPoint.x < 0 || testPoint.x >= 640 || testPoint.y < 0 || testPoint.y >= 480)
- sendMessage(_class521, 0x2007, 150);
+ sendMessage(_asCar, 0x2007, 150);
} else {
NPoint testPoint = (*_trackPoints)[0];
- sendMessage(_class521, 0x2002, 0);
+ sendMessage(_asCar, 0x2002, 0);
if (testPoint.x < 0 || testPoint.x >= 640 || testPoint.y < 0 || testPoint.y >= 480)
- sendMessage(_class521, 0x2008, 150);
+ sendMessage(_asCar, 0x2008, 150);
}
_carStatus = 0;
@@ -322,23 +322,23 @@ Scene2501::~Scene2501() {
if (_klaymanInCar)
delete _kmScene2501;
else
- delete _class521;
+ delete _asCar;
}
void Scene2501::update() {
Scene::update();
if (_carStatus == 1) {
removeSprite(_klayman);
- addSprite(_class521);
+ addSprite(_asCar);
clearRectList();
_klaymanInCar = true;
SetMessageHandler(&Scene2501::hmCarAtHome);
SetUpdateHandler(&Scene2501::upCarAtHome);
_class541->setVisible(false);
_class542->setVisible(false);
- _class521->setVisible(true);
- sendMessage(_class521, 0x2009, 0);
- _class521->handleUpdate();
+ _asCar->setVisible(true);
+ sendMessage(_asCar, 0x2009, 0);
+ _asCar->handleUpdate();
_klayman = NULL;
_carStatus = 0;
}
@@ -348,8 +348,8 @@ void Scene2501::update() {
void Scene2501::upCarAtHome() {
Scene::update();
if (_mouseClicked) {
- if (_mouseClickPos.x <= 210 && _class521->getX() == 211 && _class521->getY() == 400) {
- sendMessage(_class521, 0x200A, 0);
+ if (_mouseClickPos.x <= 210 && _asCar->getX() == 211 && _asCar->getY() == 400) {
+ sendMessage(_asCar, 0x200A, 0);
SetUpdateHandler(&Scene2501::upGettingOutOfCar);
} else {
findClosestTrack(_mouseClickPos);
@@ -365,7 +365,7 @@ void Scene2501::upGettingOutOfCar() {
Scene::update();
if (_carStatus == 2) {
_klayman = _kmScene2501;
- removeSprite(_class521);
+ removeSprite(_asCar);
addSprite(_klayman);
_klaymanInCar = false;
SetMessageHandler(&Scene2501::handleMessage);
@@ -373,7 +373,7 @@ void Scene2501::upGettingOutOfCar() {
setRectList(0x004B2608);
_class541->setVisible(true);
_class542->setVisible(true);
- _class521->setVisible(false);
+ _asCar->setVisible(false);
setMessageList(0x004B2570);
runMessageList();
_klayman->handleUpdate();
@@ -413,7 +413,7 @@ uint32 Scene2501::hmRidingCar(int messageNum, const MessageParam &param, Entity
} else if (_sceneInfos[_currTrackIndex]->which1 == 0) {
SetMessageHandler(&Scene2501::hmCarAtHome);
SetUpdateHandler(&Scene2501::upCarAtHome);
- sendMessage(_class521, 0x200F, 1);
+ sendMessage(_asCar, 0x200F, 1);
} else if (_sceneInfos[_currTrackIndex]->which1 > 0) {
leaveScene(_sceneInfos[_currTrackIndex]->which1);
}
@@ -424,7 +424,7 @@ uint32 Scene2501::hmRidingCar(int messageNum, const MessageParam &param, Entity
} else if (_sceneInfos[_currTrackIndex]->which2 == 0) {
SetMessageHandler(&Scene2501::hmCarAtHome);
SetUpdateHandler(&Scene2501::upCarAtHome);
- sendMessage(_class521, 0x200F, 1);
+ sendMessage(_asCar, 0x200F, 1);
} else if (_sceneInfos[_currTrackIndex]->which2 > 0) {
leaveScene(_sceneInfos[_currTrackIndex]->which2);
}
@@ -452,13 +452,13 @@ uint32 Scene2501::hmCarAtHome(int messageNum, const MessageParam &param, Entity
void Scene2501::changeTrack() {
_currTrackIndex = _newTrackIndex;
_trackPoints = _dataResource.getPointArray(_sceneInfos[_currTrackIndex]->pointListName);
- _class521->setPathPoints(_trackPoints);
+ _asCar->setPathPoints(_trackPoints);
if (_currTrackIndex == 0) {
- sendMessage(_class521, 0x2002, _trackPoints->size() - 1);
+ sendMessage(_asCar, 0x2002, _trackPoints->size() - 1);
} else {
- sendMessage(_class521, 0x2002, 0);
+ sendMessage(_asCar, 0x2002, 0);
}
- sendPointMessage(_class521, 0x2004, _clickPoint);
+ sendPointMessage(_asCar, 0x2004, _clickPoint);
_newTrackIndex = -1;
}
@@ -482,12 +482,12 @@ void Scene2501::findClosestTrack(NPoint &pt) {
_newTrackIndex = minMatchTrackIndex;
_clickPoint = pt;
if (_currTrackIndex == 0)
- sendMessage(_class521, 0x2003, _trackPoints->size() - 1);
+ sendMessage(_asCar, 0x2003, _trackPoints->size() - 1);
else
- sendMessage(_class521, 0x2003, 0);
+ sendMessage(_asCar, 0x2003, 0);
} else {
_newTrackIndex = -1;
- sendMessage(_class521, 0x2004, pt);
+ sendMessage(_asCar, 0x2004, pt);
}
}
diff --git a/engines/neverhood/module2500.h b/engines/neverhood/module2500.h
index fb61ba5010..e5b915761a 100644
--- a/engines/neverhood/module2500.h
+++ b/engines/neverhood/module2500.h
@@ -61,7 +61,7 @@ public:
Scene2501(NeverhoodEngine *vm, Module *parentModule, int which);
virtual ~Scene2501();
protected:
- Class521 *_class521;
+ AsCommonCar *_asCar;
Sprite *_class437;
Sprite *_class517;
Sprite *_class519;
diff --git a/engines/neverhood/module2700.cpp b/engines/neverhood/module2700.cpp
index f9a5c2abce..7c93aa7c9a 100644
--- a/engines/neverhood/module2700.cpp
+++ b/engines/neverhood/module2700.cpp
@@ -523,8 +523,8 @@ Class437::Class437(NeverhoodEngine *vm, uint32 fileHash)
StaticSprite::update();
}
-Class517::Class517(NeverhoodEngine *vm, AnimatedSprite *class521, BaseSurface *shadowSurface, uint index)
- : AnimatedSprite(vm, 1100), _class521(class521), _index(index), _animFileHash(0) {
+Class517::Class517(NeverhoodEngine *vm, AnimatedSprite *asCar, BaseSurface *shadowSurface, uint index)
+ : AnimatedSprite(vm, 1100), _asCar(asCar), _index(index), _animFileHash(0) {
SetUpdateHandler(&Class517::update);
createShadowSurface(shadowSurface, 320, 240, 100); // TODO Use actual dimensions from resource
@@ -537,28 +537,28 @@ void Class517::update() {
}
void Class517::updateShadow() {
- if (_class521->getFrameIndex() != _currFrameIndex || _class521->getCurrAnimFileHash() != _animFileHash) {
- uint32 fileHash = _class521->getCurrAnimFileHash();
+ if (_asCar->getFrameIndex() != _currFrameIndex || _asCar->getCurrAnimFileHash() != _animFileHash) {
+ uint32 fileHash = _asCar->getCurrAnimFileHash();
if (fileHash == 0x35698F78 || fileHash == 0x192ADD30 || fileHash == 0x9C220DA4 ||
fileHash == 0x9966B138 || fileHash == 0xB579A77C || fileHash == 0xA86A9538 ||
fileHash == 0xD4220027 || fileHash == 0xD00A1364 || fileHash == 0xD4AA03A4 ||
fileHash == 0xF46A0324) {
- startAnimation(fileHash, _class521->getFrameIndex(), -1);
- _newStickFrameIndex = _class521->getFrameIndex();
+ startAnimation(fileHash, _asCar->getFrameIndex(), -1);
+ _newStickFrameIndex = _asCar->getFrameIndex();
}
_animFileHash = fileHash;
}
- _x = _class521->getX() + kClass517Points[_index].x;
- _y = _class521->getY() + kClass517Points[_index].y;
- if (!_class521->getVisible()) {
+ _x = _asCar->getX() + kClass517Points[_index].x;
+ _y = _asCar->getY() + kClass517Points[_index].y;
+ if (!_asCar->getVisible()) {
startAnimation(0x1209E09F, 0, -1);
_newStickFrameIndex = 0;
}
- setDoDeltaX(_class521->isDoDeltaX() ? 1 : 0);
+ setDoDeltaX(_asCar->isDoDeltaX() ? 1 : 0);
}
-Class519::Class519(NeverhoodEngine *vm, Sprite *class521, BaseSurface *shadowSurface, uint index)
- : AnimatedSprite(vm, 1100), _class521(class521), _index(index) {
+Class519::Class519(NeverhoodEngine *vm, Sprite *asCar, BaseSurface *shadowSurface, uint index)
+ : AnimatedSprite(vm, 1100), _asCar(asCar), _index(index) {
SetUpdateHandler(&Class519::update);
createShadowSurface1(shadowSurface, 0x60281C10, 150);
@@ -567,13 +567,13 @@ Class519::Class519(NeverhoodEngine *vm, Sprite *class521, BaseSurface *shadowSur
}
void Class519::update() {
- _x = _class521->getX() + kClass517Points[_index].x;
- _y = _class521->getY() + kClass517Points[_index].y;
+ _x = _asCar->getX() + kClass517Points[_index].x;
+ _y = _asCar->getY() + kClass517Points[_index].y;
AnimatedSprite::update();
}
-Class520::Class520(NeverhoodEngine *vm, Sprite *class521, BaseSurface *shadowSurface, int16 frameIndex)
- : AnimatedSprite(vm, 1100), _class521(class521) {
+Class520::Class520(NeverhoodEngine *vm, Sprite *asCar, BaseSurface *shadowSurface, int16 frameIndex)
+ : AnimatedSprite(vm, 1100), _asCar(asCar) {
SetUpdateHandler(&Class520::update);
createShadowSurface1(shadowSurface, 0x0759129C, 100);
@@ -582,8 +582,8 @@ Class520::Class520(NeverhoodEngine *vm, Sprite *class521, BaseSurface *shadowSur
}
void Class520::update() {
- _x = _class521->getX();
- _y = _class521->getY();
+ _x = _asCar->getX();
+ _y = _asCar->getY();
AnimatedSprite::update();
}
@@ -613,43 +613,43 @@ Scene2701::Scene2701(NeverhoodEngine *vm, Module *parentModule, int which)
_class437 = createSprite<Class437>(sceneInfo->class437Filename);
addEntity(_class437);
- _class521 = insertSprite<Class521>(this, 320, 240);
- _class517 = insertSprite<Class517>(_class521, _class437->getSurface(), 4);
- _class520 = insertSprite<Class520>(_class521, _class437->getSurface(), 4);
- _class519 = insertSprite<Class519>(_class521, _class437->getSurface(), 4);
+ _asCar = insertSprite<AsCommonCar>(this, 320, 240);
+ _class517 = insertSprite<Class517>(_asCar, _class437->getSurface(), 4);
+ _class520 = insertSprite<Class520>(_asCar, _class437->getSurface(), 4);
+ _class519 = insertSprite<Class519>(_asCar, _class437->getSurface(), 4);
} else {
_class437 = NULL;
- _class521 = insertSprite<Class521>(this, 320, 240);
+ _asCar = insertSprite<AsCommonCar>(this, 320, 240);
}
- _class518 = insertSprite<Class518>(_class521);
+ _asCarConnector = insertSprite<AsCommonCarConnector>(_asCar);
_which1 = sceneInfo->which1;
_which2 = sceneInfo->which2;
_dataResource.load(sceneInfo->dataResourceFilename);
_trackPoints = _dataResource.getPointArray(sceneInfo->pointListName);
- _class521->setPathPoints(_trackPoints);
+ _asCar->setPathPoints(_trackPoints);
if (which == _which2) {
NPoint testPoint = (*_trackPoints)[_trackPoints->size() - 1];
- sendMessage(_class521, 0x2002, _trackPoints->size() - 1);
+ sendMessage(_asCar, 0x2002, _trackPoints->size() - 1);
if (testPoint.x < 0 || testPoint.x >= 640 || testPoint.y < 0 || testPoint.y >= 480)
- sendMessage(_class521, 0x2007, 150);
+ sendMessage(_asCar, 0x2007, 150);
} else {
NPoint testPoint = (*_trackPoints)[0];
- sendMessage(_class521, 0x2002, 0);
+ sendMessage(_asCar, 0x2002, 0);
if (testPoint.x < 0 || testPoint.x >= 640 || testPoint.y < 0 || testPoint.y >= 480)
- sendMessage(_class521, 0x2008, 150);
+ sendMessage(_asCar, 0x2008, 150);
}
- _class521->setClipRect(clipRect);
- _class518->setClipRect(clipRect);
+ _asCar->setClipRect(clipRect);
+ _asCarConnector->setClipRect(clipRect);
if (which == 1) {
SetMessageHandler(&Scene2701::handleMessage42F500);
} else {
- sendMessage(_class521, 0x2009, 0);
+ sendMessage(_asCar, 0x2009, 0);
SetMessageHandler(&Scene2701::handleMessage42F600);
}
@@ -659,7 +659,7 @@ uint32 Scene2701::handleMessage42F500(int messageNum, const MessageParam &param,
Scene::handleMessage(messageNum, param, sender);
switch (messageNum) {
case 0x0001:
- sendPointMessage(_class521, 0x2004, param.asPoint());
+ sendPointMessage(_asCar, 0x2004, param.asPoint());
break;
case 0x2005:
if (_which1 >= 0)
@@ -683,7 +683,7 @@ uint32 Scene2701::handleMessage42F600(int messageNum, const MessageParam &param,
if (param.asPoint().x >= 385) {
leaveScene(0);
} else {
- sendPointMessage(_class521, 0x2004, param.asPoint());
+ sendPointMessage(_asCar, 0x2004, param.asPoint());
SetMessageHandler(&Scene2701::handleMessage42F500);
}
break;
@@ -723,11 +723,11 @@ Scene2702::Scene2702(NeverhoodEngine *vm, Module *parentModule, int which)
_class437 = createSprite<Class437>(0x12002035);
addEntity(_class437);
- _class521 = insertSprite<Class521>(this, 320, 240);
- _class517 = insertSprite<Class517>(_class521, _class437->getSurface(), 4);
- insertSprite<Class518>(_class521);
- _class520 = insertSprite<Class520>(_class521, _class437->getSurface(), 4);
- _class519 = insertSprite<Class519>(_class521, _class437->getSurface(), 4);
+ _asCar = insertSprite<AsCommonCar>(this, 320, 240);
+ _class517 = insertSprite<Class517>(_asCar, _class437->getSurface(), 4);
+ insertSprite<AsCommonCarConnector>(_asCar);
+ _class520 = insertSprite<Class520>(_asCar, _class437->getSurface(), 4);
+ _class519 = insertSprite<Class519>(_asCar, _class437->getSurface(), 4);
_dataResource.load(0x04310014);
@@ -761,14 +761,14 @@ Scene2702::Scene2702(NeverhoodEngine *vm, Module *parentModule, int which)
}
_trackPoints = _dataResource.getPointArray(_currSceneInfos[_currTrackIndex]->pointListName);
- _class521->setPathPoints(_trackPoints);
+ _asCar->setPathPoints(_trackPoints);
if (which == _currSceneInfos[_currTrackIndex]->which2) {
- sendMessage(_class521, 0x2002, _trackPoints->size() - 1);
- sendMessage(_class521, 0x2007, 150);
+ sendMessage(_asCar, 0x2002, _trackPoints->size() - 1);
+ sendMessage(_asCar, 0x2007, 150);
} else {
- sendMessage(_class521, 0x2002, 0);
- sendMessage(_class521, 0x2008, 150);
+ sendMessage(_asCar, 0x2002, 0);
+ sendMessage(_asCar, 0x2008, 150);
}
_palette->copyBasePalette(0, 256, 0);
@@ -777,13 +777,13 @@ Scene2702::Scene2702(NeverhoodEngine *vm, Module *parentModule, int which)
void Scene2702::update() {
Scene::update();
- if (_flag1 && _class521->getX() > 422) {
+ if (_flag1 && _asCar->getX() > 422) {
debug("fade #1");
_palette->addBasePalette(calcHash("paPodShade"), 65, 31, 65);
_palette->addBasePalette(calcHash("paKlayShade"), 0, 65, 0);
_palette->startFadeToPalette(12);
_flag1 = false;
- } else if (!_flag1 && _class521->getX() <= 422) {
+ } else if (!_flag1 && _asCar->getX() <= 422) {
debug("fade #2");
_palette->addBasePalette(calcHash("paPodFloor"), 65, 31, 65);
_palette->addBasePalette(calcHash("paKlayFloor"), 0, 65, 0);
@@ -839,35 +839,35 @@ void Scene2702::findClosestTrack(NPoint pt) {
_newTrackDestX = pt.x;
if (_currSceneInfos == _sceneInfos[0]) {
if (_currTrackIndex == 0)
- sendMessage(_class521, 0x2003, _trackPoints->size() - 1);
+ sendMessage(_asCar, 0x2003, _trackPoints->size() - 1);
else
- sendMessage(_class521, 0x2003, 0);
+ sendMessage(_asCar, 0x2003, 0);
} else if (_currTrackIndex == 2) {
- sendMessage(_class521, 0x2003, 0);
+ sendMessage(_asCar, 0x2003, 0);
} else {
- sendMessage(_class521, 0x2003, _trackPoints->size() - 1);
+ sendMessage(_asCar, 0x2003, _trackPoints->size() - 1);
}
} else {
_newTrackIndex = -1;
- sendMessage(_class521, 0x2004, pt.x);
+ sendMessage(_asCar, 0x2004, pt.x);
}
}
void Scene2702::changeTrack() {
_currTrackIndex = _newTrackIndex;
_trackPoints = _dataResource.getPointArray(_currSceneInfos[_currTrackIndex]->pointListName);
- _class521->setPathPoints(_trackPoints);
+ _asCar->setPathPoints(_trackPoints);
if (_currSceneInfos == _sceneInfos[0]) {
if (_currTrackIndex == 0)
- sendMessage(_class521, 0x2002, _trackPoints->size() - 1);
+ sendMessage(_asCar, 0x2002, _trackPoints->size() - 1);
else
- sendMessage(_class521, 0x2002, 0);
+ sendMessage(_asCar, 0x2002, 0);
} else if (_currTrackIndex == 2) {
- sendMessage(_class521, 0x2002, 0);
+ sendMessage(_asCar, 0x2002, 0);
} else {
- sendMessage(_class521, 0x2002, _trackPoints->size() - 1);
+ sendMessage(_asCar, 0x2002, _trackPoints->size() - 1);
}
- sendMessage(_class521, 0x2004, _newTrackDestX);
+ sendMessage(_asCar, 0x2004, _newTrackDestX);
_newTrackIndex = -1;
}
@@ -900,56 +900,56 @@ Scene2704::Scene2704(NeverhoodEngine *vm, Module *parentModule, int which, uint3
_class437 = createSprite<Class437>(sceneInfo->class437Filename);
addEntity(_class437);
- _class521 = insertSprite<Class521>(this, 320, 240);
- _class517 = insertSprite<Class517>(_class521, _class437->getSurface(), 4);
- _class520 = insertSprite<Class520>(_class521, _class437->getSurface(), 4);
- _class519 = insertSprite<Class519>(_class521, _class437->getSurface(), 4);
+ _asCar = insertSprite<AsCommonCar>(this, 320, 240);
+ _class517 = insertSprite<Class517>(_asCar, _class437->getSurface(), 4);
+ _class520 = insertSprite<Class520>(_asCar, _class437->getSurface(), 4);
+ _class519 = insertSprite<Class519>(_asCar, _class437->getSurface(), 4);
} else {
_class437 = NULL;
_class517 = NULL;
- _class521 = insertSprite<Class521>(this, 320, 240);
+ _asCar = insertSprite<AsCommonCar>(this, 320, 240);
}
- _class518 = insertSprite<Class518>(_class521);
+ _asCarConnector = insertSprite<AsCommonCarConnector>(_asCar);
_which1 = sceneInfo->which1;
_which2 = sceneInfo->which2;
_dataResource.load(sceneInfo->dataResourceFilename);
_trackPoints = _dataResource.getPointArray(sceneInfo->pointListName);
- _class521->setPathPoints(_trackPoints);
+ _asCar->setPathPoints(_trackPoints);
if (sceneInfo->rectListName) {
_rectList = _dataResource.getRectArray(sceneInfo->rectListName);
- // TODO _class521->setPathRects(_rectList);
+ // TODO _asCar->setPathRects(_rectList);
}
if (which == _which2) {
NPoint testPoint = (*_trackPoints)[_trackPoints->size() - 1];
- sendMessage(_class521, 0x2002, _trackPoints->size() - 1);
+ sendMessage(_asCar, 0x2002, _trackPoints->size() - 1);
if (testPoint.x > 0 && testPoint.x < 640 && testPoint.y > 0 && testPoint.y < 480)
- sendMessage(_class521, 0x2009, 0);
+ sendMessage(_asCar, 0x2009, 0);
else
- sendMessage(_class521, 0x2007, 0);
+ sendMessage(_asCar, 0x2007, 0);
} else {
NPoint testPoint = (*_trackPoints)[0];
- sendMessage(_class521, 0x2002, 0);
+ sendMessage(_asCar, 0x2002, 0);
if (testPoint.x > 0 && testPoint.x < 640 && testPoint.y > 0 && testPoint.y < 480)
- sendMessage(_class521, 0x2009, 0);
+ sendMessage(_asCar, 0x2009, 0);
else
- sendMessage(_class521, 0x2008, 0);
+ sendMessage(_asCar, 0x2008, 0);
}
if (clipRect) {
- _class521->getClipRect() = *clipRect;
+ _asCar->getClipRect() = *clipRect;
if (_class517)
_class517->getClipRect() = *clipRect;
if (_class520)
_class520->getClipRect() = *clipRect;
if (_class519)
_class519->getClipRect() = *clipRect;
- if (_class518)
- _class518->getClipRect() = *clipRect;
+ if (_asCarConnector)
+ _asCarConnector->getClipRect() = *clipRect;
}
}
@@ -957,7 +957,7 @@ Scene2704::Scene2704(NeverhoodEngine *vm, Module *parentModule, int which, uint3
void Scene2704::update() {
Scene::update();
if (_mouseClicked) {
- sendPointMessage(_class521, 0x2004, _mouseClickPos);
+ sendPointMessage(_asCar, 0x2004, _mouseClickPos);
_mouseClicked = false;
}
}
@@ -1004,11 +1004,11 @@ Scene2706::Scene2706(NeverhoodEngine *vm, Module *parentModule, int which)
_class437 = createSprite<Class437>(0x18808B88);
addEntity(_class437);
- _class521 = insertSprite<Class521>(this, 320, 240);
- _class517 = insertSprite<Class517>(_class521, _class437->getSurface(), 4);
- _class518 = insertSprite<Class518>(_class521);
- _class520 = insertSprite<Class520>(_class521, _class437->getSurface(), 4);
- _class519 = insertSprite<Class519>(_class521, _class437->getSurface(), 4);
+ _asCar = insertSprite<AsCommonCar>(this, 320, 240);
+ _class517 = insertSprite<Class517>(_asCar, _class437->getSurface(), 4);
+ _asCarConnector = insertSprite<AsCommonCarConnector>(_asCar);
+ _class520 = insertSprite<Class520>(_asCar, _class437->getSurface(), 4);
+ _class519 = insertSprite<Class519>(_asCar, _class437->getSurface(), 4);
_dataResource.load(0x06000162);
@@ -1020,20 +1020,20 @@ Scene2706::Scene2706(NeverhoodEngine *vm, Module *parentModule, int which)
_currTrackIndex = 0;
_trackPoints = _dataResource.getPointArray(calcHash(kSceneInfo2706[_currTrackIndex].pointListName));
- _class521->setPathPoints(_trackPoints);
+ _asCar->setPathPoints(_trackPoints);
if (which == kSceneInfo2706[_currTrackIndex].which2) {
- sendMessage(_class521, 0x2002, _trackPoints->size() - 1);
+ sendMessage(_asCar, 0x2002, _trackPoints->size() - 1);
if (which == 5)
- sendMessage(_class521, 0x2007, 50);
+ sendMessage(_asCar, 0x2007, 50);
else
- sendMessage(_class521, 0x2007, 150);
+ sendMessage(_asCar, 0x2007, 150);
} else {
- sendMessage(_class521, 0x2002, 0);
+ sendMessage(_asCar, 0x2002, 0);
if (which == 5)
- sendMessage(_class521, 0x2008, 50);
+ sendMessage(_asCar, 0x2008, 50);
else
- sendMessage(_class521, 0x2008, 150);
+ sendMessage(_asCar, 0x2008, 150);
}
}
@@ -1084,24 +1084,24 @@ void Scene2706::findClosestTrack(NPoint pt) {
_newTrackIndex = minMatchTrackIndex;
_newTrackDestX = pt.x;
if (_currTrackIndex == 0)
- sendMessage(_class521, 0x2003, _trackPoints->size() - 1);
+ sendMessage(_asCar, 0x2003, _trackPoints->size() - 1);
else
- sendMessage(_class521, 0x2003, 0);
+ sendMessage(_asCar, 0x2003, 0);
} else {
_newTrackIndex = -1;
- sendMessage(_class521, 0x2004, pt.x);
+ sendMessage(_asCar, 0x2004, pt.x);
}
}
void Scene2706::changeTrack() {
_currTrackIndex = _newTrackIndex;
_trackPoints = _dataResource.getPointArray(calcHash(kSceneInfo2706[_currTrackIndex].pointListName));
- _class521->setPathPoints(_trackPoints);
+ _asCar->setPathPoints(_trackPoints);
if (_currTrackIndex == 0)
- sendMessage(_class521, 0x2002, _trackPoints->size() - 1);
+ sendMessage(_asCar, 0x2002, _trackPoints->size() - 1);
else
- sendMessage(_class521, 0x2002, 0);
- sendMessage(_class521, 0x2004, _newTrackDestX);
+ sendMessage(_asCar, 0x2002, 0);
+ sendMessage(_asCar, 0x2004, _newTrackDestX);
_newTrackIndex = -1;
}
diff --git a/engines/neverhood/module2700.h b/engines/neverhood/module2700.h
index 70c1a802bb..b2210c5d49 100644
--- a/engines/neverhood/module2700.h
+++ b/engines/neverhood/module2700.h
@@ -56,10 +56,10 @@ public:
class Class517 : public AnimatedSprite {
public:
- Class517(NeverhoodEngine *vm, AnimatedSprite *class521, BaseSurface *shadowSurface, uint index);
+ Class517(NeverhoodEngine *vm, AnimatedSprite *asCar, BaseSurface *shadowSurface, uint index);
protected:
uint _index;
- AnimatedSprite *_class521;
+ AnimatedSprite *_asCar;
uint32 _animFileHash;
void update();
void updateShadow();
@@ -67,18 +67,18 @@ protected:
class Class519 : public AnimatedSprite {
public:
- Class519(NeverhoodEngine *vm, Sprite *class521, BaseSurface *shadowSurface, uint index);
+ Class519(NeverhoodEngine *vm, Sprite *asCar, BaseSurface *shadowSurface, uint index);
protected:
uint _index;
- Sprite *_class521;
+ Sprite *_asCar;
void update();
};
class Class520 : public AnimatedSprite {
public:
- Class520(NeverhoodEngine *vm, Sprite *class521, BaseSurface *shadowSurface, int16 frameIndex);
+ Class520(NeverhoodEngine *vm, Sprite *asCar, BaseSurface *shadowSurface, int16 frameIndex);
protected:
- Sprite *_class521;
+ Sprite *_asCar;
void update();
};
@@ -86,12 +86,12 @@ class Scene2701 : public Scene {
public:
Scene2701(NeverhoodEngine *vm, Module *parentModule, int which);
protected:
- Class521 *_class521;
+ AsCommonCar *_asCar;
Sprite *_class437;
Sprite *_class517;
Sprite *_class520;
Sprite *_class519;
- Sprite *_class518;
+ Sprite *_asCarConnector;
Sprite *_sprite1;
int _which1, _which2;
NPointArray *_trackPoints;
@@ -103,7 +103,7 @@ class Scene2702 : public Scene {
public:
Scene2702(NeverhoodEngine *vm, Module *parentModule, int which);
protected:
- Class521 *_class521;
+ AsCommonCar *_asCar;
Sprite *_class437;
Sprite *_class517;
Sprite *_class520;
@@ -126,10 +126,10 @@ public:
Scene2704(NeverhoodEngine *vm, Module *parentModule, int which, uint32 sceneInfoId, int16 value,
const uint32 *staticSprites = NULL, const NRect *clipRect = NULL);
protected:
- Class521 *_class521;
+ AsCommonCar *_asCar;
Sprite *_class437;
Sprite *_class517;
- Sprite *_class518;
+ Sprite *_asCarConnector;
Sprite *_class520;
Sprite *_class519;
int _which1, _which2;
@@ -143,10 +143,10 @@ class Scene2706 : public Scene {
public:
Scene2706(NeverhoodEngine *vm, Module *parentModule, int which);
protected:
- Class521 *_class521;
+ AsCommonCar *_asCar;
Sprite *_class437;
Sprite *_class517;
- Sprite *_class518;
+ Sprite *_asCarConnector;
Sprite *_class520;
Sprite *_class519;
int16 _newTrackDestX;