mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-04 09:56:30 +00:00
NEVERHOOD: Work on Module1600:
- Rename stuff (also in related files)
This commit is contained in:
parent
cb5ca83578
commit
b320c9f5a0
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -132,8 +132,10 @@ void Scene1501::update() {
|
||||
|
||||
uint32 Scene1501::handleMessage(int messageNum, const MessageParam ¶m, Entity *sender) {
|
||||
uint32 messageResult = Scene::handleMessage(messageNum, param, sender);
|
||||
if (messageNum == 0x0009) {
|
||||
switch (messageNum) {
|
||||
case 0x0009:
|
||||
_flag = true;
|
||||
break;
|
||||
}
|
||||
return messageResult;
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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 ¶m, 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 ¶m, Entity *sender);
|
||||
uint32 handleMessage44D3C0(int messageNum, const MessageParam ¶m, Entity *sender);
|
||||
uint32 handleMessage44D470(int messageNum, const MessageParam ¶m, Entity *sender);
|
||||
uint32 handleMessage44D510(int messageNum, const MessageParam ¶m, Entity *sender);
|
||||
void upLowerFloor();
|
||||
void upUpperFloor();
|
||||
void upCarAtHome();
|
||||
void upGettingOutOfCar();
|
||||
void upRidingCar();
|
||||
uint32 hmLowerFloor(int messageNum, const MessageParam ¶m, Entity *sender);
|
||||
uint32 hmUpperFloor(int messageNum, const MessageParam ¶m, Entity *sender);
|
||||
uint32 hmRidingCar(int messageNum, const MessageParam ¶m, Entity *sender);
|
||||
uint32 hmCarAtHome(int messageNum, const MessageParam ¶m, 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 ¶m, Entity *sender);
|
||||
bool testVars();
|
||||
|
@ -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 ¶m, 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 ¶m, 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 ¶m, 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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 ¶m,
|
||||
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 ¶m,
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user