aboutsummaryrefslogtreecommitdiff
path: root/engines/neverhood/modules/module2800_sprites.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2013-10-06 18:29:10 +0300
committerFilippos Karapetis2013-10-06 18:29:10 +0300
commitfa51ef214c2c57114a8b56906576e0b72ddfc139 (patch)
tree3087267ec42d0ea4b178c3ee14334b03525b0ed0 /engines/neverhood/modules/module2800_sprites.cpp
parentd5ebc69de0af1992b821297d5e9cc9e8baa604de (diff)
downloadscummvm-rg350-fa51ef214c2c57114a8b56906576e0b72ddfc139.tar.gz
scummvm-rg350-fa51ef214c2c57114a8b56906576e0b72ddfc139.tar.bz2
scummvm-rg350-fa51ef214c2c57114a8b56906576e0b72ddfc139.zip
NEVERHOOD: Move more scene-specific Klaymen animations to their scenes
Diffstat (limited to 'engines/neverhood/modules/module2800_sprites.cpp')
-rw-r--r--engines/neverhood/modules/module2800_sprites.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/engines/neverhood/modules/module2800_sprites.cpp b/engines/neverhood/modules/module2800_sprites.cpp
index c167f414a6..a600c55dd3 100644
--- a/engines/neverhood/modules/module2800_sprites.cpp
+++ b/engines/neverhood/modules/module2800_sprites.cpp
@@ -1189,12 +1189,35 @@ uint32 KmScene2803Small::xHandleMessage(int messageNum, const MessageParam &para
GotoState(&Klaymen::stTurnToBackSmall);
break;
case 0x4830:
- GotoState(&Klaymen::stShrink);
+ GotoState(&KmScene2803Small::stShrink);
break;
}
return 0;
}
+uint32 KmScene2803Small::hmShrink(int messageNum, const MessageParam &param, Entity *sender) {
+ uint32 messageResult = hmLowLevelAnimation(messageNum, param, sender);
+ switch (messageNum) {
+ case 0x100D:
+ if (param.asInteger() == 0x80C110B5)
+ sendMessage(_parentScene, 0x482A, 0);
+ else if (param.asInteger() == 0x33288344)
+ playSound(2, 0x10688664);
+ break;
+ }
+ return messageResult;
+}
+
+void KmScene2803Small::stShrink() {
+ _busyStatus = 0;
+ _acceptInput = false;
+ playSound(0, 0x4C69EA53);
+ startAnimation(0x1AE88904, 0, -1);
+ SetUpdateHandler(&Klaymen::update);
+ SetMessageHandler(&KmScene2803Small::hmShrink);
+ SetSpriteUpdate(&AnimatedSprite::updateDeltaXY);
+}
+
KmScene2805::KmScene2805(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y)
: Klaymen(vm, parentScene, x, y) {