aboutsummaryrefslogtreecommitdiff
path: root/engines/neverhood/modules/module1300_sprites.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2013-10-06 18:07:44 +0300
committerFilippos Karapetis2013-10-06 18:08:19 +0300
commitd5ebc69de0af1992b821297d5e9cc9e8baa604de (patch)
treedc7f5c2200a9ed2a7c29109a2491331a55240a93 /engines/neverhood/modules/module1300_sprites.cpp
parentf19fd06e243fabf5a9244c178e056432c575860b (diff)
downloadscummvm-rg350-d5ebc69de0af1992b821297d5e9cc9e8baa604de.tar.gz
scummvm-rg350-d5ebc69de0af1992b821297d5e9cc9e8baa604de.tar.bz2
scummvm-rg350-d5ebc69de0af1992b821297d5e9cc9e8baa604de.zip
NEVERHOOD: Move more scene-specific Klaymen animations to their scenes
Diffstat (limited to 'engines/neverhood/modules/module1300_sprites.cpp')
-rw-r--r--engines/neverhood/modules/module1300_sprites.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/engines/neverhood/modules/module1300_sprites.cpp b/engines/neverhood/modules/module1300_sprites.cpp
index 14e6e59b67..a65f2363a3 100644
--- a/engines/neverhood/modules/module1300_sprites.cpp
+++ b/engines/neverhood/modules/module1300_sprites.cpp
@@ -715,7 +715,7 @@ uint32 KmScene1305::xHandleMessage(int messageNum, const MessageParam &param) {
GotoState(&Klaymen::stTryStandIdle);
break;
case 0x4804:
- GotoState(&Klaymen::stCrashDown);
+ GotoState(&KmScene1305::stCrashDown);
break;
case 0x4817:
setDoDeltaX(param.asInteger());
@@ -725,6 +725,22 @@ uint32 KmScene1305::xHandleMessage(int messageNum, const MessageParam &param) {
return 0;
}
+void KmScene1305::stCrashDown() {
+ playSound(0, 0x41648271);
+ _busyStatus = 1;
+ _acceptInput = false;
+ startAnimationByHash(0x000BAB02, 0x88003000, 0);
+ SetUpdateHandler(&Klaymen::update);
+ SetSpriteUpdate(NULL);
+ SetMessageHandler(&Klaymen::hmLowLevelAnimation);
+ NextState(&KmScene1305::stCrashDownFinished);
+}
+
+void KmScene1305::stCrashDownFinished() {
+ setDoDeltaX(2);
+ stTryStandIdle();
+}
+
KmScene1306::KmScene1306(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y)
: Klaymen(vm, parentScene, x, y) {