NEVERHOOD: Work on Module1700:

- Rename stuff
- Add puzzle var initialization in Scene1705
This commit is contained in:
johndoe123 2012-10-06 20:13:01 +00:00 committed by Willem Jan Palenstijn
parent b320c9f5a0
commit 2fa76ccca1
5 changed files with 30 additions and 31 deletions

View File

@ -309,8 +309,8 @@ void GameModule::startup() {
#if 1
_vm->gameState().sceneNum = 8;
createModule(1600, -1);
_vm->gameState().sceneNum = 4;
createModule(1700, -1);
#endif
#if 0
_vm->gameState().sceneNum = 0;

View File

@ -21,6 +21,7 @@
*/
#include "neverhood/module1700.h"
#include "neverhood/gamemodule.h"
namespace Neverhood {
@ -139,19 +140,19 @@ static const uint32 kScene1705FileHashes[] = {
0x910EA800
};
Class602::Class602(NeverhoodEngine *vm, uint32 fileHash, int index)
SsScene1705WallSymbol::SsScene1705WallSymbol(NeverhoodEngine *vm, uint32 fileHash, int symbolIndex)
: StaticSprite(vm, fileHash, 100) {
_x = _spriteResource.getPosition().x + index * 30;
_x = _spriteResource.getPosition().x + symbolIndex * 30;
_y = _spriteResource.getPosition().y + 160;
StaticSprite::update();
}
Class606::Class606(NeverhoodEngine *vm, Scene *parentScene, int index, int surfacePriority, int16 x, int16 y, uint32 fileHash)
: StaticSprite(vm, fileHash, surfacePriority, x - 24, y - 4), _parentScene(parentScene), _index(index) {
SsScene1705Tape::SsScene1705Tape(NeverhoodEngine *vm, Scene *parentScene, uint32 tapeIndex, int surfacePriority, int16 x, int16 y, uint32 fileHash)
: StaticSprite(vm, fileHash, surfacePriority, x - 24, y - 4), _parentScene(parentScene), _tapeIndex(tapeIndex) {
if (!getSubVar(0x02038314, _index) && !getSubVar(0x02720344, _index)) {
SetMessageHandler(&Class606::handleMessage);
if (!getSubVar(0x02038314, _tapeIndex) && !getSubVar(0x02720344, _tapeIndex)) {
SetMessageHandler(&SsScene1705Tape::handleMessage);
} else {
setVisible(false);
SetMessageHandler(NULL);
@ -164,7 +165,7 @@ Class606::Class606(NeverhoodEngine *vm, Scene *parentScene, int index, int surfa
Sprite::processDelta();
}
uint32 Class606::handleMessage(int messageNum, const MessageParam &param, Entity *sender) {
uint32 SsScene1705Tape::handleMessage(int messageNum, const MessageParam &param, Entity *sender) {
uint32 messageResult = Sprite::handleMessage(messageNum, param, sender);
switch (messageNum) {
case 0x1011:
@ -172,7 +173,7 @@ uint32 Class606::handleMessage(int messageNum, const MessageParam &param, Entity
messageResult = 1;
break;
case 0x4806:
setSubVar(0x02038314, _index, 1);
setSubVar(0x02038314, _tapeIndex, 1);
setVisible(false);
SetMessageHandler(NULL);
break;
@ -186,7 +187,7 @@ Scene1705::Scene1705(NeverhoodEngine *vm, Module *parentModule, int which)
Sprite *tempSprite;
setGlobalVar(0xE7498218, 1);
// TODO _vm->initVarsScene1705();
_vm->gameModule()->initScene3009Vars();
SetMessageHandler(&Scene1705::handleMessage);
SetUpdateHandler(&Scene1705::update);
@ -204,16 +205,14 @@ Scene1705::Scene1705(NeverhoodEngine *vm, Module *parentModule, int which)
insertMouse433(0x18222039);
insertSprite<Class602>(kScene1705FileHashes[getSubVar(0x0A4C0A9A, 0)], 0);
insertSprite<Class602>(kScene1705FileHashes[getSubVar(0x0A4C0A9A, 1)], 1);
insertSprite<Class602>(kScene1705FileHashes[getSubVar(0x0A4C0A9A, 2)], 2);
insertSprite<SsScene1705WallSymbol>(kScene1705FileHashes[getSubVar(0x0A4C0A9A, 0)], 0);
insertSprite<SsScene1705WallSymbol>(kScene1705FileHashes[getSubVar(0x0A4C0A9A, 1)], 1);
insertSprite<SsScene1705WallSymbol>(kScene1705FileHashes[getSubVar(0x0A4C0A9A, 2)], 2);
_sprite = insertStaticSprite(0x31313A22, 1100);
_class606 = insertSprite<Class606>(this, 15, 1100, 238, 439, 0x02363852);
_vm->_collisionMan->addSprite(_class606);
which = 4;
_ssTape = insertSprite<SsScene1705Tape>(this, 15, 1100, 238, 439, 0x02363852);
_vm->_collisionMan->addSprite(_ssTape);
if (which < 0) {
insertKlayman<KmScene1705>(231, 434);
@ -275,7 +274,7 @@ uint32 Scene1705::handleMessage(int messageNum, const MessageParam &param, Entit
}
break;
case 0x4826:
if (sender == _class606 && _klayman->getX() <= 318) {
if (sender == _ssTape && _klayman->getX() <= 318) {
sendEntityMessage(_klayman, 0x1014, sender);
setMessageList(0x004B6AC0);
}

View File

@ -41,17 +41,17 @@ protected:
// Scene1705
class Class602 : public StaticSprite {
class SsScene1705WallSymbol : public StaticSprite {
public:
Class602(NeverhoodEngine *vm, uint32 fileHash, int index);
SsScene1705WallSymbol(NeverhoodEngine *vm, uint32 fileHash, int symbolIndex);
};
class Class606 : public StaticSprite {
class SsScene1705Tape : public StaticSprite {
public:
Class606(NeverhoodEngine *vm, Scene *parentScene, int index, int surfacePriority, int16 x, int16 y, uint32 fileHash);
SsScene1705Tape(NeverhoodEngine *vm, Scene *parentScene, uint32 tapeIndex, int surfacePriority, int16 x, int16 y, uint32 fileHash);
protected:
Scene *_parentScene;
int _index;
uint32 _tapeIndex;
uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
};
@ -60,7 +60,7 @@ public:
Scene1705(NeverhoodEngine *vm, Module *parentModule, int which);
protected:
Sprite *_sprite;
Sprite *_class606;
Sprite *_ssTape;
int _paletteArea;
void update();
uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);

View File

@ -422,7 +422,7 @@ Scene2801::Scene2801(NeverhoodEngine *vm, Module *parentModule, int which)
_sprite2 = insertStaticSprite(0x061601C8, 1100);
_klayman->setClipRect(0, 0, _sprite2->getDrawRect().x2(), 480);
insertMouse433(0x00680116);
_asTape = insertSprite<Class606>(this, 8, 1100, 302, 437, 0x01142428);
_asTape = insertSprite<SsScene1705Tape>(this, 8, 1100, 302, 437, 0x01142428);
_vm->_collisionMan->addSprite(_asTape);
} else {
setRectList(0x004B6CF0);
@ -2991,8 +2991,8 @@ Scene2812::Scene2812(NeverhoodEngine *vm, Module *parentModule, int which)
_vm->_collisionMan->addSprite(_class545);
}
_class606 = insertSprite<Class606>(this, 6, 1100, 513, 437, 0xA1361863);
_vm->_collisionMan->addSprite(_class606);
_ssTape = insertSprite<SsScene1705Tape>(this, 6, 1100, 513, 437, 0xA1361863);
_vm->_collisionMan->addSprite(_ssTape);
_asWinch = insertSprite<AsScene2812Winch>();
_asTrapDoor = insertSprite<AsScene2812TrapDoor>();
@ -3068,8 +3068,8 @@ uint32 Scene2812::handleMessage(int messageNum, const MessageParam &param, Entit
sendMessage(_asTrapDoor, 0x2000, 0);
break;
case 0x4826:
if (sender == _class606 && !_flag1) {
sendEntityMessage(_klayman, 0x1014, _class606);
if (sender == _ssTape && !_flag1) {
sendEntityMessage(_klayman, 0x1014, _ssTape);
setMessageList(0x004AF658);
} else if (sender == _class545 && !_flag1) {
sendEntityMessage(_klayman, 0x1014, _class545);

View File

@ -461,7 +461,7 @@ protected:
Sprite *_sprite3;
Sprite *_sprite2;
Sprite *_sprite4;
Sprite *_class606;
Sprite *_ssTape;
Sprite *_class545;
Sprite *_sprite1;
bool _flag1;