aboutsummaryrefslogtreecommitdiff
path: root/engines
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
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')
-rw-r--r--engines/neverhood/klaymen.cpp53
-rw-r--r--engines/neverhood/klaymen.h8
-rw-r--r--engines/neverhood/modules/module1000_sprites.cpp34
-rw-r--r--engines/neverhood/modules/module1000_sprites.h6
-rw-r--r--engines/neverhood/modules/module2800_sprites.cpp25
-rw-r--r--engines/neverhood/modules/module2800_sprites.h3
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 &param, 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 &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 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 &param, Entity *sender);
-
void stGrow();
uint32 hmGrow(int messageNum, const MessageParam &param, Entity *sender);
@@ -182,11 +179,6 @@ public:
void stLetGoOfLever();
void evLeverReleasedEvent();
- void stWakeUp();
-
- void stSleeping();
- uint32 hmSleeping(int messageNum, const MessageParam &param, 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 &param) {
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 &param) {
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 &param) {
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 &param, 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 &param, Entity *sender);
uint32 hmPullHammerLever(int messageNum, const MessageParam &param, Entity *sender);
uint32 xHandleMessage(int messageNum, const MessageParam &param);
@@ -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 &param, 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 &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) {
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 &param, Entity *sender);
+
uint32 xHandleMessage(int messageNum, const MessageParam &param);
};