diff options
author | Filippos Karapetis | 2013-10-06 18:29:10 +0300 |
---|---|---|
committer | Filippos Karapetis | 2013-10-06 18:29:10 +0300 |
commit | fa51ef214c2c57114a8b56906576e0b72ddfc139 (patch) | |
tree | 3087267ec42d0ea4b178c3ee14334b03525b0ed0 /engines | |
parent | d5ebc69de0af1992b821297d5e9cc9e8baa604de (diff) | |
download | scummvm-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')
-rw-r--r-- | engines/neverhood/klaymen.cpp | 53 | ||||
-rw-r--r-- | engines/neverhood/klaymen.h | 8 | ||||
-rw-r--r-- | engines/neverhood/modules/module1000_sprites.cpp | 34 | ||||
-rw-r--r-- | engines/neverhood/modules/module1000_sprites.h | 6 | ||||
-rw-r--r-- | engines/neverhood/modules/module2800_sprites.cpp | 25 | ||||
-rw-r--r-- | engines/neverhood/modules/module2800_sprites.h | 3 |
6 files changed, 62 insertions, 67 deletions
diff --git a/engines/neverhood/klaymen.cpp b/engines/neverhood/klaymen.cpp index 5b0295be9f..8d9cfbcea6 100644 --- a/engines/neverhood/klaymen.cpp +++ b/engines/neverhood/klaymen.cpp @@ -617,36 +617,6 @@ void Klaymen::startWalkToX(int16 x, bool walkExt) { } } -void Klaymen::stWakeUp() { - _busyStatus = 1; - _acceptInput = false; - startAnimation(0x527AC970, 0, -1); - SetUpdateHandler(&Klaymen::update); - SetMessageHandler(&Klaymen::hmLowLevelAnimation); - SetSpriteUpdate(NULL); -} - -void Klaymen::stSleeping() { - _busyStatus = 0; - _acceptInput = true; - startAnimation(0x5A38C110, 0, -1); - SetUpdateHandler(&Klaymen::update); - SetMessageHandler(&Klaymen::hmSleeping); - SetSpriteUpdate(NULL); -} - -uint32 Klaymen::hmSleeping(int messageNum, const MessageParam ¶m, Entity *sender) { - uint32 messageResult = hmLowLevel(messageNum, param, sender); - switch (messageNum) { - case 0x100D: - if (param.asInteger() == 0x03060012) { - playSound(0, 0xC0238244); - } - break; - } - return messageResult; -} - bool Klaymen::stStartAction(AnimationCb callback3) { if (_busyStatus == 1) { _busyStatus = 2; @@ -2216,29 +2186,6 @@ uint32 Klaymen::hmTeleporterAppearDisappear(int messageNum, const MessageParam & return messageResult; } -uint32 Klaymen::hmShrink(int messageNum, const MessageParam ¶m, 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 Klaymen::stShrink() { - _busyStatus = 0; - _acceptInput = false; - playSound(0, 0x4C69EA53); - startAnimation(0x1AE88904, 0, -1); - SetUpdateHandler(&Klaymen::update); - SetMessageHandler(&Klaymen::hmShrink); - SetSpriteUpdate(&AnimatedSprite::updateDeltaXY); -} - void Klaymen::stStandWonderAbout() { if (_x > 260) setDoDeltaX(1); diff --git a/engines/neverhood/klaymen.h b/engines/neverhood/klaymen.h index 77233d0542..d3dc3c590f 100644 --- a/engines/neverhood/klaymen.h +++ b/engines/neverhood/klaymen.h @@ -157,9 +157,6 @@ public: void stPeekWall1(); void stPeekWall2(); - void stShrink(); - uint32 hmShrink(int messageNum, const MessageParam ¶m, Entity *sender); - void stGrow(); uint32 hmGrow(int messageNum, const MessageParam ¶m, Entity *sender); @@ -182,11 +179,6 @@ public: void stLetGoOfLever(); void evLeverReleasedEvent(); - void stWakeUp(); - - void stSleeping(); - uint32 hmSleeping(int messageNum, const MessageParam ¶m, Entity *sender); - void stPressButton(); void stPressFloorButton(); void stPressButtonSide(); diff --git a/engines/neverhood/modules/module1000_sprites.cpp b/engines/neverhood/modules/module1000_sprites.cpp index dedeb73169..55618f0124 100644 --- a/engines/neverhood/modules/module1000_sprites.cpp +++ b/engines/neverhood/modules/module1000_sprites.cpp @@ -996,7 +996,7 @@ uint32 KmScene1001::xHandleMessage(int messageNum, const MessageParam ¶m) { break; case 0x4804: if (param.asInteger() == 2) - GotoState(&Klaymen::stSleeping); + GotoState(&KmScene1001::stSleeping); break; case 0x480D: GotoState(&KmScene1001::stPullHammerLever); @@ -1041,7 +1041,7 @@ uint32 KmScene1001::xHandleMessage(int messageNum, const MessageParam ¶m) { case 0x4836: if (param.asInteger() == 1) { sendMessage(_parentScene, 0x2002, 0); - GotoState(&Klaymen::stWakeUp); + GotoState(&KmScene1001::stWakeUp); } break; case 0x483F: @@ -1054,6 +1054,36 @@ uint32 KmScene1001::xHandleMessage(int messageNum, const MessageParam ¶m) { return 0; } +void KmScene1001::stWakeUp() { + _busyStatus = 1; + _acceptInput = false; + startAnimation(0x527AC970, 0, -1); + SetUpdateHandler(&Klaymen::update); + SetMessageHandler(&Klaymen::hmLowLevelAnimation); + SetSpriteUpdate(NULL); +} + +void KmScene1001::stSleeping() { + _busyStatus = 0; + _acceptInput = true; + startAnimation(0x5A38C110, 0, -1); + SetUpdateHandler(&Klaymen::update); + SetMessageHandler(&KmScene1001::hmSleeping); + SetSpriteUpdate(NULL); +} + +uint32 KmScene1001::hmSleeping(int messageNum, const MessageParam ¶m, Entity *sender) { + uint32 messageResult = hmLowLevel(messageNum, param, sender); + switch (messageNum) { + case 0x100D: + if (param.asInteger() == 0x03060012) { + playSound(0, 0xC0238244); + } + break; + } + return messageResult; +} + void KmScene1001::stPullHammerLever() { if (!stStartAction(AnimationCallback(&KmScene1001::stPullHammerLever))) { _busyStatus = 2; diff --git a/engines/neverhood/modules/module1000_sprites.h b/engines/neverhood/modules/module1000_sprites.h index 2ab9f7a53b..540a258ddc 100644 --- a/engines/neverhood/modules/module1000_sprites.h +++ b/engines/neverhood/modules/module1000_sprites.h @@ -203,9 +203,11 @@ protected: class KmScene1001 : public Klaymen { public: KmScene1001(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y); - protected: + void stWakeUp(); + void stSleeping(); void stPullHammerLever(); + uint32 hmSleeping(int messageNum, const MessageParam ¶m, Entity *sender); uint32 hmPullHammerLever(int messageNum, const MessageParam ¶m, Entity *sender); uint32 xHandleMessage(int messageNum, const MessageParam ¶m); @@ -214,7 +216,6 @@ protected: class KmScene1002 : public Klaymen { public: KmScene1002(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y); - protected: void stJumpToRing1(); void stJumpToRing2(); @@ -245,7 +246,6 @@ protected: class KmScene1004 : public Klaymen { public: KmScene1004(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y); - protected: void stReadNote(); uint32 hmReadNote(int messageNum, const MessageParam ¶m, Entity *sender); 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 ¶ GotoState(&Klaymen::stTurnToBackSmall); break; case 0x4830: - GotoState(&Klaymen::stShrink); + GotoState(&KmScene2803Small::stShrink); break; } return 0; } +uint32 KmScene2803Small::hmShrink(int messageNum, const MessageParam ¶m, 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) { diff --git a/engines/neverhood/modules/module2800_sprites.h b/engines/neverhood/modules/module2800_sprites.h index 2b6c83a1cb..91f26d7849 100644 --- a/engines/neverhood/modules/module2800_sprites.h +++ b/engines/neverhood/modules/module2800_sprites.h @@ -281,6 +281,9 @@ class KmScene2803Small : public Klaymen { public: KmScene2803Small(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16 y); protected: + void stShrink(); + uint32 hmShrink(int messageNum, const MessageParam ¶m, Entity *sender); + uint32 xHandleMessage(int messageNum, const MessageParam ¶m); }; |