diff options
author | Filippos Karapetis | 2013-10-06 18:55:10 +0300 |
---|---|---|
committer | Filippos Karapetis | 2013-10-06 18:57:44 +0300 |
commit | 0fffbac36bee764b3479b5d3fb631faf5bcd5f76 (patch) | |
tree | c65bdc2c46039aaca067abf6ae3b5808803125db /engines/neverhood/modules/module2200_sprites.cpp | |
parent | 8c8b1b7da749d69078b1be88a00d5ba29e64413a (diff) | |
download | scummvm-rg350-0fffbac36bee764b3479b5d3fb631faf5bcd5f76.tar.gz scummvm-rg350-0fffbac36bee764b3479b5d3fb631faf5bcd5f76.tar.bz2 scummvm-rg350-0fffbac36bee764b3479b5d3fb631faf5bcd5f76.zip |
NEVERHOOD: Move more scene-specific Klaymen animations to their scenes
Diffstat (limited to 'engines/neverhood/modules/module2200_sprites.cpp')
-rw-r--r-- | engines/neverhood/modules/module2200_sprites.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/engines/neverhood/modules/module2200_sprites.cpp b/engines/neverhood/modules/module2200_sprites.cpp index 82fd5e32cc..30f0404cf1 100644 --- a/engines/neverhood/modules/module2200_sprites.cpp +++ b/engines/neverhood/modules/module2200_sprites.cpp @@ -970,7 +970,7 @@ uint32 KmScene2203::xHandleMessage(int messageNum, const MessageParam ¶m) { startWalkToX(_dataResource.getPoint(param.asInteger()).x, false); break; case 0x4819: - GotoState(&Klaymen::stClayDoorOpen); + GotoState(&KmScene2203::stClayDoorOpen); break; case 0x481A: GotoState(&Klaymen::stInsertDisk); @@ -1001,6 +1001,29 @@ uint32 KmScene2203::xHandleMessage(int messageNum, const MessageParam ¶m) { return 0; } +void KmScene2203::stClayDoorOpen() { + if (!stStartAction(AnimationCallback(&KmScene2203::stClayDoorOpen))) { + _busyStatus = 2; + _acceptInput = false; + startAnimation(0x5CCCB330, 0, -1); + SetUpdateHandler(&Klaymen::update); + SetMessageHandler(&KmScene2203::hmClayDoorOpen); + SetSpriteUpdate(&Klaymen::suUpdateDestX); + } +} + +uint32 KmScene2203::hmClayDoorOpen(int messageNum, const MessageParam ¶m, Entity *sender) { + uint32 messageResult = hmLowLevelAnimation(messageNum, param, sender); + switch (messageNum) { + case 0x100D: + if (param.asInteger() == 0x040D4186) { + sendMessage(_attachedSprite, 0x4808, 0); + } + break; + } + return messageResult; +} + KmScene2205::KmScene2205(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y) : Klaymen(vm, parentScene, x, y) { |