mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-04 09:56:30 +00:00
NEVERHOOD: Work on Module1700:
- Rename stuff - Add puzzle var initialization in Scene1705
This commit is contained in:
parent
b320c9f5a0
commit
2fa76ccca1
@ -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;
|
||||
|
@ -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 ¶m, Entity *sender) {
|
||||
uint32 SsScene1705Tape::handleMessage(int messageNum, const MessageParam ¶m, Entity *sender) {
|
||||
uint32 messageResult = Sprite::handleMessage(messageNum, param, sender);
|
||||
switch (messageNum) {
|
||||
case 0x1011:
|
||||
@ -172,7 +173,7 @@ uint32 Class606::handleMessage(int messageNum, const MessageParam ¶m, 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 ¶m, Entit
|
||||
}
|
||||
break;
|
||||
case 0x4826:
|
||||
if (sender == _class606 && _klayman->getX() <= 318) {
|
||||
if (sender == _ssTape && _klayman->getX() <= 318) {
|
||||
sendEntityMessage(_klayman, 0x1014, sender);
|
||||
setMessageList(0x004B6AC0);
|
||||
}
|
||||
|
@ -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 ¶m, 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 ¶m, Entity *sender);
|
||||
|
@ -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 ¶m, 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);
|
||||
|
@ -461,7 +461,7 @@ protected:
|
||||
Sprite *_sprite3;
|
||||
Sprite *_sprite2;
|
||||
Sprite *_sprite4;
|
||||
Sprite *_class606;
|
||||
Sprite *_ssTape;
|
||||
Sprite *_class545;
|
||||
Sprite *_sprite1;
|
||||
bool _flag1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user