aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorjohndoe1232012-10-04 07:08:09 +0000
committerWillem Jan Palenstijn2013-05-08 20:43:46 +0200
commitdebc7e953d3cda85aefc2fae9325eb8ddf47d5c7 (patch)
tree68bb452efe661cc273453ceea8d3809e1ad28a40 /engines
parent3ef691f1afe733e21371eca11e170b8d71783f5c (diff)
downloadscummvm-rg350-debc7e953d3cda85aefc2fae9325eb8ddf47d5c7.tar.gz
scummvm-rg350-debc7e953d3cda85aefc2fae9325eb8ddf47d5c7.tar.bz2
scummvm-rg350-debc7e953d3cda85aefc2fae9325eb8ddf47d5c7.zip
NEVERHOOD: More changes to the Klayman class:
- Rename some stuff - Reorder methods (in the Klayman header only until I'm happy with it :)
Diffstat (limited to 'engines')
-rw-r--r--engines/neverhood/klayman.cpp203
-rw-r--r--engines/neverhood/klayman.h486
2 files changed, 368 insertions, 321 deletions
diff --git a/engines/neverhood/klayman.cpp b/engines/neverhood/klayman.cpp
index 1036478932..ae08de913b 100644
--- a/engines/neverhood/klayman.cpp
+++ b/engines/neverhood/klayman.cpp
@@ -60,7 +60,7 @@ Klayman::Klayman(NeverhoodEngine *vm, Entity *parentScene, int16 x, int16 y, int
_isWalkingOpenDoorNotified(false), _countdown1(0), _tapesToInsert(0), _keysToInsert(0), /*_field118(0), */_status2(0), _acceptInput(true),
_attachedSprite(NULL), _isWalking(false), _status3(1), _parentScene(parentScene), _isSneaking(false), _isLargeStep(false),
_flagF6(false), _isLeverDown(false), _isSittingInTeleporter(false), _flagFA(false), _ladderStatus(0), _pathPoints(NULL), _soundFlag(false),
- _idleTableNum(0), _otherSprite(NULL), _moveObjectCountdown(0), _readyToSpit(false) {
+ _idleTableNum(0), _otherSprite(NULL), _moveObjectCountdown(0), _readyToSpit(false), _walkResumeFrameIncr(0) {
// TODO DirtySurface
createSurface(surfacePriority, 320, 200);
@@ -301,21 +301,21 @@ void Klayman::upSitIdleTeleporter() {
} else if (++_blinkCounter >= _blinkCounterMax) {
_blinkCounter = 0;
_blinkCounterMax = _vm->_rnd->getRandomNumber(64 - 1) + 24;
- stIdleSitBlink();
+ stSitIdleTeleporterBlink();
}
}
-void Klayman::stIdleSitBlink() {
+void Klayman::stSitIdleTeleporterBlink() {
_status2 = 0;
_acceptInput = true;
startAnimation(0x5C24C018, 0, -1);
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmLowLevelAnimation);
SetSpriteUpdate(NULL);
- NextState(&Klayman::stIdleSitBlinkSecond);
+ NextState(&Klayman::stSitIdleTeleporterBlinkSecond);
}
-void Klayman::stIdleSitBlinkSecond() {
+void Klayman::stSitIdleTeleporterBlinkSecond() {
_status2 = 0;
_acceptInput = true;
startAnimation(0x5C24C018, 0, -1);
@@ -331,7 +331,7 @@ void Klayman::stPickUpNeedle() {
_acceptInput = false;
startAnimation(0x1449C169, 0, -1);
SetUpdateHandler(&Klayman::update);
- SetMessageHandler(&Klayman::hmPickUpGeneric);
+ SetMessageHandler(&Klayman::hmPickUpObject);
SetSpriteUpdate(NULL);
}
}
@@ -675,7 +675,7 @@ bool Klayman::stStartAction(AnimationCb callback3) {
startAnimation(0x5C7080D4, 0, -1);
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmStartAction);
- SetSpriteUpdate(&Klayman::spriteUpdate41F250);
+ SetSpriteUpdate(&Klayman::suAction);
NextState(callback3);
return true;
} else {
@@ -684,7 +684,7 @@ bool Klayman::stStartAction(AnimationCb callback3) {
}
}
-void Klayman::spriteUpdate41F250() {
+void Klayman::suAction() {
int16 xdiff = _destX - _x;
@@ -715,7 +715,7 @@ void Klayman::spriteUpdate41F250() {
}
-void Klayman::suWalking() {
+void Klayman::suSneaking() {
int16 xdiff = _destX - _x;
@@ -770,11 +770,11 @@ void Klayman::stSneak() {
startAnimation(0x5C48C506, 0, -1);
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmSneaking);
- SetSpriteUpdate(&Klayman::suWalking);
- FinalizeState(&Klayman::stWalkingDone);
+ SetSpriteUpdate(&Klayman::suSneaking);
+ FinalizeState(&Klayman::evSneakingDone);
}
-void Klayman::stWalkingDone() {
+void Klayman::evSneakingDone() {
_isSneaking = false;
}
@@ -810,12 +810,12 @@ void Klayman::stStartWalking() {
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmStartWalking);
SetSpriteUpdate(&Klayman::suWalkingTestExit);
- FinalizeState(&Klayman::stStartWalkingDone);
- NextState(&Klayman::stWalking);
+ FinalizeState(&Klayman::evStartWalkingDone);
+ NextState(&Klayman::stWalkingFirst);
}
}
-void Klayman::stStartWalkingDone() {
+void Klayman::evStartWalkingDone() {
_isWalking = false;
}
@@ -833,19 +833,19 @@ uint32 Klayman::hmStartWalking(int messageNum, const MessageParam &param, Entity
return messageResult;
}
-void Klayman::stWalking() {
+void Klayman::stWalkingFirst() {
_status2 = 0;
_isWalking = true;
_acceptInput = true;
startAnimation(0x1A249001, 0, -1);
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmWalking);
- SetSpriteUpdate(&Klayman::spriteUpdate41F300);
- FinalizeState(&Klayman::stStartWalkingDone);
- NextState(&Klayman::stUpdateWalking);
+ SetSpriteUpdate(&Klayman::suWalkingFirst);
+ FinalizeState(&Klayman::evStartWalkingDone);
+ NextState(&Klayman::stUpdateWalkingFirst);
}
-void Klayman::spriteUpdate41F300() {
+void Klayman::suWalkingFirst() {
SetSpriteUpdate(&Klayman::suWalkingTestExit);
_deltaX = 0;
}
@@ -864,7 +864,7 @@ uint32 Klayman::hmWalking(int messageNum, const MessageParam &param, Entity *sen
return messageResult;
}
-void Klayman::stUpdateWalking() {
+void Klayman::stUpdateWalkingFirst() {
if (_status3 == 2) {
gotoNextStateExt();
} else if (_status3 == 3) {
@@ -891,8 +891,8 @@ void Klayman::stUpdateWalking() {
}
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmSneaking);
- SetSpriteUpdate(&Klayman::suWalking);
- FinalizeState(&Klayman::stWalkingDone);
+ SetSpriteUpdate(&Klayman::suSneaking);
+ FinalizeState(&Klayman::evSneakingDone);
}
}
@@ -962,12 +962,12 @@ void Klayman::stPickUpGeneric() {
_acceptInput = false;
startAnimation(0x1C28C178, 0, -1);
SetUpdateHandler(&Klayman::update);
- SetMessageHandler(&Klayman::hmPickUpGeneric);
+ SetMessageHandler(&Klayman::hmPickUpObject);
SetSpriteUpdate(NULL);
}
}
-uint32 Klayman::hmPickUpGeneric(int messageNum, const MessageParam &param, Entity *sender) {
+uint32 Klayman::hmPickUpObject(int messageNum, const MessageParam &param, Entity *sender) {
uint32 messageResult = hmLowLevelAnimation(messageNum, param, sender);
switch (messageNum) {
case 0x100D:
@@ -991,8 +991,8 @@ uint32 Klayman::hmPickUpGeneric(int messageNum, const MessageParam &param, Entit
}
-void Klayman::stTurnPressButton() {
- if (!stStartAction(AnimationCallback(&Klayman::stTurnPressButton))) {
+void Klayman::stPressButton() {
+ if (!stStartAction(AnimationCallback(&Klayman::stPressButton))) {
_status2 = 2;
_acceptInput = true;
startAnimation(0x1C02B03D, 0, -1);
@@ -1018,8 +1018,8 @@ uint32 Klayman::hmPressButton(int messageNum, const MessageParam &param, Entity
return messageResult;
}
-void Klayman::stStampFloorButton() {
- if (!stStartAction(AnimationCallback(&Klayman::stStampFloorButton))) {
+void Klayman::stPressFloorButton() {
+ if (!stStartAction(AnimationCallback(&Klayman::stPressFloorButton))) {
_status2 = 2;
_acceptInput = true;
startAnimation(0x1C16B033, 0, -1);
@@ -1036,7 +1036,7 @@ void Klayman::stPressButtonSide() {
startAnimation(0x1CD89029, 0, -1);
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmPressButton);
- SetSpriteUpdate(&Klayman::spriteUpdate41F250);
+ SetSpriteUpdate(&Klayman::suAction);
}
}
@@ -1093,7 +1093,7 @@ void Klayman::stStartWalkingSmall() {
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmWalkingSmall);
SetSpriteUpdate(&Klayman::suWalkingTestExit);
- FinalizeState(&Klayman::stStartWalkingDone);
+ FinalizeState(&Klayman::evStartWalkingDone);
}
uint32 Klayman::hmWalkingSmall(int messageNum, const MessageParam &param, Entity *sender) {
@@ -1221,7 +1221,7 @@ void Klayman::stPullCord() {
_acceptInput = false;
startAnimation(0x3F28E094, 0, -1);
SetUpdateHandler(&Klayman::update);
- SetMessageHandler(&Klayman::hmPullCord);
+ SetMessageHandler(&Klayman::hmPullReleaseCord);
SetSpriteUpdate(NULL);
NextState(&Klayman::stReleaseCord);
}
@@ -1231,11 +1231,11 @@ void Klayman::stReleaseCord() {
_acceptInput = false;
startAnimation(0x3A28C094, 0, -1);
SetUpdateHandler(&Klayman::update);
- SetMessageHandler(&Klayman::hmPullCord);
+ SetMessageHandler(&Klayman::hmPullReleaseCord);
SetSpriteUpdate(NULL);
}
-uint32 Klayman::hmPullCord(int messageNum, const MessageParam &param, Entity *sender) {
+uint32 Klayman::hmPullReleaseCord(int messageNum, const MessageParam &param, Entity *sender) {
uint32 messageResult = hmLowLevelAnimation(messageNum, param, sender);
switch (messageNum) {
case 0x100D:
@@ -1286,16 +1286,16 @@ uint32 Klayman::hmUseTube(int messageNum, const MessageParam &param, Entity *sen
return messageResult;
}
-void Klayman::stWalkingExt() {
+void Klayman::stWalkingFirstExt() {
_status2 = 0;
_isWalking = true;
_acceptInput = true;
startAnimation(0x5A2CBC00, 0, -1);
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmWalking);
- SetSpriteUpdate(&Klayman::spriteUpdate41F300);
- NextState(&Klayman::stUpdateWalking);
- FinalizeState(&Klayman::stStartWalkingDone);
+ SetSpriteUpdate(&Klayman::suWalkingFirst);
+ NextState(&Klayman::stUpdateWalkingFirst);
+ FinalizeState(&Klayman::evStartWalkingDone);
}
void Klayman::stStartWalkingExt() {
@@ -1308,8 +1308,8 @@ void Klayman::stStartWalkingExt() {
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmStartWalking);
SetSpriteUpdate(&Klayman::suWalkingTestExit);
- FinalizeState(&Klayman::stStartWalkingDone);
- NextState(&Klayman::stWalkingExt);
+ FinalizeState(&Klayman::evStartWalkingDone);
+ NextState(&Klayman::stWalkingFirstExt);
}
}
@@ -1588,7 +1588,7 @@ void Klayman::stJumpToRing3() {
SetUpdateHandler(&Klayman::update);
SetSpriteUpdate(&Klayman::suUpdateDestX);
SetMessageHandler(&Klayman::hmJumpToRing3);
- NextState(&Klayman::stHoldRing);
+ NextState(&Klayman::stHoldRing3);
sendMessage(_attachedSprite, 0x482B, 0);
}
}
@@ -1611,16 +1611,16 @@ uint32 Klayman::hmJumpToRing3(int messageNum, const MessageParam &param, Entity
return messageResult;
}
-void Klayman::stHoldRing() {
+void Klayman::stHoldRing3() {
_status2 = 0;
_acceptInput = true;
startAnimation(0x4A293FB0, 0, -1);
SetUpdateHandler(&Klayman::update);
- SetMessageHandler(&Klayman::hmHoldRing);
+ SetMessageHandler(&Klayman::hmHoldRing3);
SetSpriteUpdate(NULL);
}
-uint32 Klayman::hmHoldRing(int messageNum, const MessageParam &param, Entity *sender) {
+uint32 Klayman::hmHoldRing3(int messageNum, const MessageParam &param, Entity *sender) {
if (messageNum == 0x1008) {
stReleaseRing();
return 0;
@@ -1702,21 +1702,21 @@ void Klayman::stClimbLadderHalf() {
_acceptInput = false;
startAnimationByHash(0x3A292504, 0x02421405, 0);
SetUpdateHandler(&Klayman::update);
- SetMessageHandler(&Klayman::handleMessage41DFD0);
+ SetMessageHandler(&Klayman::hmClimbLadderHalf);
SetSpriteUpdate(&Klayman::suUpdateDestX);
} else if (_ladderStatus == 2) {
_ladderStatus = 0;
_acceptInput = false;
startAnimationByHash(0x122D1505, 0x02421405, 0);
SetUpdateHandler(&Klayman::update);
- SetMessageHandler(&Klayman::handleMessage41DFD0);
+ SetMessageHandler(&Klayman::hmClimbLadderHalf);
SetSpriteUpdate(&Klayman::suUpdateDestX);
} else {
gotoNextStateExt();
}
}
-uint32 Klayman::handleMessage41DFD0(int messageNum, const MessageParam &param, Entity *sender) {
+uint32 Klayman::hmClimbLadderHalf(int messageNum, const MessageParam &param, Entity *sender) {
uint32 messageResult = hmLowLevelAnimation(messageNum, param, sender);
switch (messageNum) {
case 0x100D:
@@ -2077,10 +2077,10 @@ void Klayman::stReleaseLever() {
void Klayman::stLetGoOfLever() {
startAnimation(0x0928C048, 0, -1);
- FinalizeState(&Klayman::cbLeverReleasedEvent);
+ FinalizeState(&Klayman::evLeverReleasedEvent);
}
-void Klayman::cbLeverReleasedEvent() {
+void Klayman::evLeverReleasedEvent() {
sendMessage(_attachedSprite, 0x482A, 0);
}
@@ -2101,7 +2101,7 @@ void Klayman::stInsertDisk() {
} else {
startAnimation(0xD8C8D100, 0, -1);
SetUpdateHandler(&Klayman::update);
- SetSpriteUpdate(&Klayman::spriteUpdate41F250);
+ SetSpriteUpdate(&Klayman::suAction);
SetMessageHandler(&Klayman::hmInsertDisk);
_acceptInput = false;
_tapesToInsert--;
@@ -2249,8 +2249,8 @@ void Klayman::stJumpToGrabRelease() {
_acceptInput = false;
startAnimationByHash(0x00AB8C10, 0x320AC306, 0);
SetUpdateHandler(&Klayman::update);
- SetSpriteUpdate(NULL);
SetMessageHandler(&Klayman::hmJumpToGrabRelease);
+ SetSpriteUpdate(NULL);
NextState(&Klayman::stReleaseRing);
}
@@ -2276,7 +2276,7 @@ void Klayman::stIdleTeleporterHands() {
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmLowLevelAnimation);
SetSpriteUpdate(NULL);
- NextState(&Klayman::stIdleSitBlinkSecond);
+ NextState(&Klayman::stSitIdleTeleporterBlinkSecond);
}
void Klayman::stDoIdleTeleporterHands2() {
@@ -2290,7 +2290,7 @@ void Klayman::stIdleTeleporterHands2() {
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmLowLevelAnimation);
SetSpriteUpdate(NULL);
- NextState(&Klayman::stIdleSitBlinkSecond);
+ NextState(&Klayman::stSitIdleTeleporterBlinkSecond);
}
void Klayman::teleporterAppear(uint32 fileHash) {
@@ -2519,7 +2519,7 @@ void Klayman::stInsertKey() {
_acceptInput = false;
startAnimation(0xDC409440, 0, -1);
SetUpdateHandler(&Klayman::update);
- SetSpriteUpdate(&Klayman::spriteUpdate41F250);
+ SetSpriteUpdate(&Klayman::suAction);
SetMessageHandler(&Klayman::hmInsertKey);
_keysToInsert--;
}
@@ -2676,7 +2676,7 @@ void Klayman::suRidePlatformDown() {
}
void Klayman::stRidePlatformDown() {
- if (!stStartActionFromIdle(AnimationCallback(&KmScene2206::stRidePlatformDown))) {
+ if (!stStartActionFromIdle(AnimationCallback(&Klayman::stRidePlatformDown))) {
_status2 = 1;
sendMessage(_parentScene, 0x4803, 0);
_acceptInput = false;
@@ -2697,7 +2697,7 @@ void Klayman::stCrashDown() {
SetUpdateHandler(&Klayman::update);
SetSpriteUpdate(NULL);
SetMessageHandler(&Klayman::hmLowLevelAnimation);
- NextState(&KmScene1305::stCrashDownFinished);
+ NextState(&Klayman::stCrashDownFinished);
}
void Klayman::stCrashDownFinished() {
@@ -2902,6 +2902,18 @@ void Klayman::stSpitOutFall0() {
sendMessage(_parentScene, 0x8000, 0);
}
+void Klayman::stSpitOutFall2() {
+ _countdown1 = 1;
+ _status2 = 0;
+ _acceptInput = false;
+ startAnimation(0x9308C132, 0, -1);
+ SetUpdateHandler(&Klayman::upSpitOutFall);
+ SetMessageHandler(&Klayman::hmLowLevelAnimation);
+ SetSpriteUpdate(&Klayman::suFallDown);
+ NextState(&Klayman::stFalling);
+ sendMessage(_parentScene, 0x8000, 0);
+}
+
void Klayman::stFalling() {
sendMessage(_parentScene, 0x1024, 1);
playSound(0, 0x41648271);
@@ -2919,18 +2931,6 @@ void Klayman::stFalling() {
sendMessage(_parentScene, 0x8001, 0);
}
-void Klayman::stSpitOutFall2() {
- _countdown1 = 1;
- _status2 = 0;
- _acceptInput = false;
- startAnimation(0x9308C132, 0, -1);
- SetUpdateHandler(&Klayman::upSpitOutFall);
- SetMessageHandler(&Klayman::hmLowLevelAnimation);
- SetSpriteUpdate(&Klayman::suFallDown);
- NextState(&Klayman::stFalling);
- sendMessage(_parentScene, 0x8000, 0);
-}
-
void Klayman::stFallTouchdown() {
setDoDeltaX(2);
stTryStandIdle();
@@ -2971,7 +2971,7 @@ void Klayman::stPressDoorButton() {
startAnimation(0x1CD89029, 0, -1);
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmPressDoorButton);
- SetSpriteUpdate(&Klayman::spriteUpdate41F250);
+ SetSpriteUpdate(&Klayman::suAction);
}
void Klayman::stHitByBoxingGlove() {
@@ -2981,10 +2981,10 @@ void Klayman::stHitByBoxingGlove() {
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmHitByBoxingGlove);
SetSpriteUpdate(&AnimatedSprite::updateDeltaXY);
- FinalizeState(&Klayman::stHitByBoxingGloveDone);
+ FinalizeState(&Klayman::evHitByBoxingGloveDone);
}
-void Klayman::stHitByBoxingGloveDone() {
+void Klayman::evHitByBoxingGloveDone() {
sendMessage(_parentScene, 0x1024, 1);
}
@@ -2998,7 +2998,7 @@ void Klayman::stMoveVenusFlyTrap() {
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmMoveVenusFlyTrap);
SetSpriteUpdate(&AnimatedSprite::updateDeltaXY);
- FinalizeState(&Klayman::stMoveVenusFlyTrapDone);
+ FinalizeState(&Klayman::evMoveVenusFlyTrapDone);
}
}
@@ -3009,10 +3009,10 @@ void Klayman::stContinueMovingVenusFlyTrap() {
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmMoveVenusFlyTrap);
SetSpriteUpdate(&AnimatedSprite::updateDeltaXY);
- FinalizeState(&Klayman::stMoveVenusFlyTrapDone);
+ FinalizeState(&Klayman::evMoveVenusFlyTrapDone);
}
-void Klayman::stMoveVenusFlyTrapDone() {
+void Klayman::evMoveVenusFlyTrapDone() {
sendMessage(_attachedSprite, 0x482A, 0);
}
@@ -3292,9 +3292,9 @@ void Klayman::startWalkingResume(int16 frameIncr) {
startAnimation(0x1A249001, frameIndex, -1);
SetUpdateHandler(&Klayman::update);
SetMessageHandler(&Klayman::hmWalking);
- SetSpriteUpdate(&Klayman::spriteUpdate41F300);
- NextState(&Klayman::stUpdateWalking);
- FinalizeState(&Klayman::stStartWalkingDone);
+ SetSpriteUpdate(&Klayman::suWalkingFirst);
+ NextState(&Klayman::stUpdateWalkingFirst);
+ FinalizeState(&Klayman::evStartWalkingDone);
}
//##############################################################################
@@ -3326,9 +3326,9 @@ uint32 KmScene1001::xHandleMessage(int messageNum, const MessageParam &param) {
break;
case NM_KLAYMAN_PRESS_BUTTON:
if (param.asInteger() == 1) {
- GotoState(&Klayman::stTurnPressButton);
+ GotoState(&Klayman::stPressButton);
} else if (param.asInteger() == 2) {
- GotoState(&Klayman::stStampFloorButton);
+ GotoState(&Klayman::stPressFloorButton);
} else {
GotoState(&Klayman::stPressButtonSide);
}
@@ -3592,7 +3592,7 @@ uint32 KmScene1109::xHandleMessage(int messageNum, const MessageParam &param) {
case 0x4804:
if (param.asInteger() != 0) {
_destX = param.asInteger();
- GotoState(&Klayman::stWalking);
+ GotoState(&Klayman::stWalkingFirst);
} else {
GotoState(&Klayman::stPeekWall);
}
@@ -3838,9 +3838,9 @@ uint32 KmScene1306::xHandleMessage(int messageNum, const MessageParam &param) {
break;
case NM_KLAYMAN_PRESS_BUTTON:
if (param.asInteger() == 1) {
- GotoState(&Klayman::stTurnPressButton);
+ GotoState(&Klayman::stPressButton);
} else if (param.asInteger() == 2) {
- GotoState(&Klayman::stStampFloorButton);
+ GotoState(&Klayman::stPressFloorButton);
} else {
GotoState(&Klayman::stPressButtonSide);
}
@@ -4031,9 +4031,9 @@ uint32 KmScene1401::xHandleMessage(int messageNum, const MessageParam &param) {
break;
case NM_KLAYMAN_PRESS_BUTTON:
if (param.asInteger() == 1) {
- GotoState(&Klayman::stTurnPressButton);
+ GotoState(&Klayman::stPressButton);
} else if (param.asInteger() == 2) {
- GotoState(&Klayman::stStampFloorButton);
+ GotoState(&Klayman::stPressFloorButton);
} else {
GotoState(&Klayman::stPressButtonSide);
}
@@ -4510,7 +4510,7 @@ uint32 KmScene2001::xHandleMessage(int messageNum, const MessageParam &param) {
case 0x4804:
if (param.asInteger() != 0) {
_destX = param.asInteger();
- GotoState(&Klayman::stWalking);
+ GotoState(&Klayman::stWalkingFirst);
} else
GotoState(&Klayman::stPeekWall);
break;
@@ -4587,9 +4587,9 @@ uint32 KmScene2101::xHandleMessage(int messageNum, const MessageParam &param) {
break;
case NM_KLAYMAN_PRESS_BUTTON:
if (param.asInteger() == 1) {
- GotoState(&Klayman::stTurnPressButton);
+ GotoState(&Klayman::stPressButton);
} else if (param.asInteger() == 2) {
- GotoState(&Klayman::stStampFloorButton);
+ GotoState(&Klayman::stPressFloorButton);
} else {
GotoState(&Klayman::stPressButtonSide);
}
@@ -4734,9 +4734,9 @@ uint32 KmScene2203::xHandleMessage(int messageNum, const MessageParam &param) {
break;
case NM_KLAYMAN_PRESS_BUTTON:
if (param.asInteger() == 1) {
- GotoState(&Klayman::stTurnPressButton);
+ GotoState(&Klayman::stPressButton);
} else if (param.asInteger() == 2) {
- GotoState(&Klayman::stStampFloorButton);
+ GotoState(&Klayman::stPressFloorButton);
} else {
GotoState(&Klayman::stPressButtonSide);
}
@@ -4836,6 +4836,7 @@ void KmScene2205::stStartWalkingResume() {
KmScene2206::KmScene2206(NeverhoodEngine *vm, Entity *parentScene, int16 x, int16 y)
: Klayman(vm, parentScene, x, y, 1000, 1000) {
+ _walkResumeFrameIncr = 1;
_vm->_soundMan->addSound(0x80101800, 0xD3B02847);
}
@@ -4876,9 +4877,9 @@ uint32 KmScene2206::xHandleMessage(int messageNum, const MessageParam &param) {
break;
case NM_KLAYMAN_PRESS_BUTTON:
if (param.asInteger() == 1) {
- GotoState(&Klayman::stTurnPressButton);
+ GotoState(&Klayman::stPressButton);
} else if (param.asInteger() == 2) {
- GotoState(&Klayman::stStampFloorButton);
+ GotoState(&Klayman::stPressFloorButton);
} else {
GotoState(&Klayman::stPressButtonSide);
}
@@ -4971,9 +4972,9 @@ uint32 KmScene2207::xHandleMessage(int messageNum, const MessageParam &param) {
break;
case NM_KLAYMAN_PRESS_BUTTON:
if (param.asInteger() == 1) {
- GotoState(&Klayman::stTurnPressButton);
+ GotoState(&Klayman::stPressButton);
} else if (param.asInteger() == 2) {
- GotoState(&Klayman::stStampFloorButton);
+ GotoState(&Klayman::stPressFloorButton);
} else {
GotoState(&Klayman::stPressButtonSide);
}
@@ -5213,9 +5214,9 @@ uint32 KmScene2401::xHandleMessage(int messageNum, const MessageParam &param) {
break;
case NM_KLAYMAN_PRESS_BUTTON:
if (param.asInteger() == 1) {
- GotoState(&Klayman::stTurnPressButton);
+ GotoState(&Klayman::stPressButton);
} else if (param.asInteger() == 2) {
- GotoState(&Klayman::stStampFloorButton);
+ GotoState(&Klayman::stPressFloorButton);
} else {
GotoState(&Klayman::stPressButtonSide);
}
@@ -5300,7 +5301,7 @@ uint32 KmScene2402::xHandleMessage(int messageNum, const MessageParam &param) {
case 0x4804:
if (param.asInteger() != 0) {
_destX = param.asInteger();
- GotoState(&Klayman::stWalking);
+ GotoState(&Klayman::stWalkingFirst);
} else {
GotoState(&Klayman::stPeekWall);
}
@@ -5310,9 +5311,9 @@ uint32 KmScene2402::xHandleMessage(int messageNum, const MessageParam &param) {
break;
case NM_KLAYMAN_PRESS_BUTTON:
if (param.asInteger() == 1) {
- GotoState(&Klayman::stTurnPressButton);
+ GotoState(&Klayman::stPressButton);
} else if (param.asInteger() == 2) {
- GotoState(&Klayman::stStampFloorButton);
+ GotoState(&Klayman::stPressFloorButton);
} else {
GotoState(&Klayman::stPressButtonSide);
}
@@ -5374,9 +5375,9 @@ uint32 KmScene2403::xHandleMessage(int messageNum, const MessageParam &param) {
break;
case NM_KLAYMAN_PRESS_BUTTON:
if (param.asInteger() == 1) {
- GotoState(&Klayman::stTurnPressButton);
+ GotoState(&Klayman::stPressButton);
} else if (param.asInteger() == 2) {
- GotoState(&Klayman::stStampFloorButton);
+ GotoState(&Klayman::stPressFloorButton);
} else {
GotoState(&Klayman::stPressButtonSide);
}
@@ -5455,7 +5456,7 @@ uint32 KmScene2406::xHandleMessage(int messageNum, const MessageParam &param) {
case 0x4804:
if (param.asInteger() != 0) {
_destX = param.asInteger();
- GotoState(&Klayman::stWalking);
+ GotoState(&Klayman::stWalkingFirst);
} else {
GotoState(&Klayman::stPeekWall);
}
diff --git a/engines/neverhood/klayman.h b/engines/neverhood/klayman.h
index a7ea670658..89c59b6e2b 100644
--- a/engines/neverhood/klayman.h
+++ b/engines/neverhood/klayman.h
@@ -52,223 +52,330 @@ public:
void update();
+ void startIdleAnimation(uint32 fileHash, AnimationCb callback);
+ void upIdleAnimation();
+
void stDoIdlePickEar();
+ void stIdlePickEar();
+ void evIdlePickEarDone();
+ uint32 hmIdlePickEar(int messageNum, const MessageParam &param, Entity *sender);
+
void stDoIdleSpinHead();
+ void stIdleSpinHead();
+ uint32 hmIdleSpinHead(int messageNum, const MessageParam &param, Entity *sender);
+
void stDoIdleArms();
+ void stIdleArms();
+ void evIdleArmsDone();
+ uint32 hmIdleArms(int messageNum, const MessageParam &param, Entity *sender);
+
void stDoIdleChest();
+ void stIdleChest();
+ uint32 hmIdleChest(int messageNum, const MessageParam &param, Entity *sender);
+
void stDoIdleHeadOff();
+ void stIdleHeadOff();
+ uint32 hmIdleHeadOff(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stDoIdleTeleporterHands();
+ void stIdleTeleporterHands();
+
+ void stDoIdleTeleporterHands2();
+ void stIdleTeleporterHands2();
+
void stTryStandIdle();
- void stWakeUp();
- void stSleeping();
- void stPickUpGeneric();
- void stTurnPressButton();
- void stStampFloorButton();
- void stPressButtonSide();
- void stLargeStep();
- void stWonderAboutHalf();
- void stWonderAboutAfter();
- void stTurnToUseHalf();
- void stTurnAwayFromUse();
- void stWonderAbout();
- void stPeekWall();
- void stJumpToRing1();
- void setupJumpToRing();
- void stHangOnRing();
- void stJumpToRing2();
- void stJumpToRing3();
- void stHoldRing();
- void stReleaseRing();
- void stJumpToRing4();
- void stContinueClimbLadderUp();
- void stStartClimbLadderDown();
- void stClimbLadderHalf();
- void stStartClimbLadderUp();
+ void stStandAround();
+ void upStandIdle();
+ void stIdleBlink();
+
+ bool stStartAction(AnimationCb callback3);
+ bool stStartActionFromIdle(AnimationCb callback);
+ uint32 hmStartAction(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stSneak();
+ uint32 hmSneaking(int messageNum, const MessageParam &param, Entity *sender);
+ void suSneaking();
+ void evSneakingDone();
+
+ void stStartWalking();
+ void stStartWalkingExt();
+ void stWalkingOpenDoor();
+ void suWalkingOpenDoor();
+ void stStepOver();
+ uint32 hmStartWalking(int messageNum, const MessageParam &param, Entity *sender);
+ void evStartWalkingDone();
+
+ void stWalkingFirst();
+ void stWalkingFirstExt();
+ void startWalkingResume(int16 frameIncr);
+ void stUpdateWalkingFirst();
+ uint32 hmWalking(int messageNum, const MessageParam &param, Entity *sender);
+ void suWalkingFirst();
+
void stWalkToFrontNoStep();
void stWalkToFront();
void stTurnToFront();
void stTurnToBack();
- void stLandOnFeet();
+ uint32 hmWalkToFront(int messageNum, const MessageParam &param, Entity *sender);
+
void stTurnToBackToUse();
- void stClayDoorOpen();
- void stTurnToUse();
- void stReturnFromUse();
- void stWalkingOpenDoor();
- void stSitIdleTeleporter();
- void stIdleSitBlink();
- void stIdleSitBlinkSecond();
+ uint32 hmTurnToBackToUse(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stPickUpGeneric();
void stPickUpNeedle();
- void stPickUpTube();
- void stTurnToUseInTeleporter();
- void stReturnFromUseInTeleporter();
- void stStepOver();
- void stSitInTeleporter();
- void stGetUpFromTeleporter();
- void stMoveObjectSkipTurnFaceObject();
- void evMoveObjectTurnDone();
- void stMoveObjectSkipTurn();
- void stMoveObjectFaceObject();
- void stUseLever();
- void stPullLeverDown();
- void stHoldLeverDown();
- void stUseLeverRelease();
- void stReleaseLever();
- void stLetGoOfLever();
- void cbLeverReleasedEvent();
- void stInsertDisk();
- void stWalking();
- void stUpdateWalking();
- void stStartWalkingDone();
+ uint32 hmPickUpObject(int messageNum, const MessageParam &param, Entity *sender);
- void stopWalking();
+ void stPickUpTube();
+ uint32 hmPickUpTube(int messageNum, const MessageParam &param, Entity *sender);
- void spriteUpdate41F250();
- void suWalking();
- void suLargeStep();
- void suUpdateDestX();
- void suWalkingOpenDoor();
- void spriteUpdate41F300();
- void suWalkingTestExit();
+ void stTurnToUse();
+ void stTurnToUseHalf();
+ void stTurnAwayFromUse();
+ void stReturnFromUse();
+ void stTurnToUseExt();
+ uint32 hmTurnToUse(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmLowLevel(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmLowLevelAnimation(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmWalking(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmLever(int messageNum, const MessageParam &param, Entity *sender);
+ void stLargeStep();
+ uint32 hmLargeStep(int messageNum, const MessageParam &param, Entity *sender);
- void setKlaymanIdleTable(const KlaymanIdleTableItem *table, int tableCount);
- void setKlaymanIdleTable1();
- void setKlaymanIdleTable2();
- void setKlaymanIdleTable3();
-
- void setSoundFlag(bool value) { _soundFlag = value; }
+ void stInsertKey();
+ uint32 hmInsertKey(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stReadNote();
+ uint32 hmReadNote(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stHitByDoor();
+ uint32 hmHitByDoor(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stPeekWall();
+ uint32 hmPeekWall(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stPeekWallReturn();
+ uint32 hmPeekWallReturn(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stPeekWallBlink();
+ void upPeekWallBlink();
+
+ void stPeekWall1();
+
+ void stPeekWall2();
+
+ void stPullHammerLever();
+ uint32 hmPullHammerLever(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stRidePlatformDown();
+ void suRidePlatformDown();
+
+ void stCrashDown();
+ void stCrashDownFinished();
+
+ void stShrink();
+ uint32 hmShrink(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stGrow();
+ uint32 hmGrow(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stDrinkPotion();
+ uint32 hmDrinkPotion(int messageNum, const MessageParam &param, Entity *sender);
- void stStandIdleSmall();
- void stWonderAboutAfterSmall();
- void stWonderAboutHalfSmall();
- void stWonderAboutSmall();
- void stWalkToFrontNoStepSmall();
- void stWalkToFront2Small();
- void stWalkToFrontSmall();
- void stTurnToBackHalfSmall();
- void stTurnToBackWalkSmall();
- void stTurnToBackSmall();
void stPullCord();
void stReleaseCord();
- uint32 hmPullCord(int messageNum, const MessageParam &param, Entity *sender);
+ uint32 hmPullReleaseCord(int messageNum, const MessageParam &param, Entity *sender);
+
void stUseTube();
uint32 hmUseTube(int messageNum, const MessageParam &param, Entity *sender);
- void stWalkingExt();
- void stStartWalkingExt();
-
+
+ void stUseLever();
+ void stUseLeverRelease();
+ void stReleaseLever();
+ void stInteractLever();
+ uint32 hmLever(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stLetGoOfLever();
+ void evLeverReleasedEvent();
+
+ void stWakeUp();
+
+ void stSleeping();
+ uint32 hmSleeping(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stPressButton();
+ void stPressFloorButton();
+ void stPressButtonSide();
+ uint32 hmPressButton(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stWonderAbout();
+ void stWonderAboutHalf();
+ void stWonderAboutAfter();
+
+ void stStandWonderAbout();
+
+ void stStartClimbLadderUp();
+ void stStartClimbLadderDown();
+ uint32 hmClimbLadderUpDown(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stContinueClimbLadderUp();
+
+ void stClimbLadderHalf();
+ uint32 hmClimbLadderHalf(int messageNum, const MessageParam &param, Entity *sender);
+
+ void setupJumpToRing();
+ void stJumpToRing1();
+ void stJumpToRing2();
+ void stJumpToRing4();
+ uint32 hmJumpToRing(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stHangOnRing();
+
+ void stJumpToRing3();
+ uint32 hmJumpToRing3(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stHoldRing3();
+ uint32 hmHoldRing3(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stReleaseRing();
+
+ void stLandOnFeet();
+ uint32 hmLandOnFeet(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stPullLeverDown();
+ void stHoldLeverDown();
+
+ void stInsertDisk();
+ uint32 hmInsertDisk(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stMoveObjectSkipTurnFaceObject();
+ void stMoveObjectSkipTurn();
+ void stMoveObjectFaceObject();
+ uint32 hmMoveObjectTurn(int messageNum, const MessageParam &param, Entity *sender);
+ void evMoveObjectTurnDone();
+
void stJumpToGrab();
- void suJumpToGrab();
- uint32 hmJumpToGrab(int messageNum, const MessageParam &param, Entity *sender);
-
- void sub421230();//stGrow??
- uint32 handleMessage41F1D0(int messageNum, const MessageParam &param, Entity *sender);
-
- void stTurnToUseExt();
void stJumpToGrabFall();
+ uint32 hmJumpToGrab(int messageNum, const MessageParam &param, Entity *sender);
+ void suJumpToGrab();
void stJumpToGrabRelease();
uint32 hmJumpToGrabRelease(int messageNum, const MessageParam &param, Entity *sender);
- void stDoIdleTeleporterHands();
- void stIdleTeleporterHands();
-
- void stDoIdleTeleporterHands2();
- void stIdleTeleporterHands2();
+ void stSitInTeleporter();
+ uint32 hmSitInTeleporter(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stSitIdleTeleporter();
+ void upSitIdleTeleporter();
+
+ void stSitIdleTeleporterBlink();
+
+ void stSitIdleTeleporterBlinkSecond();
+
+ void stTurnToUseInTeleporter();
+
+ void stReturnFromUseInTeleporter();
+
+ void stGetUpFromTeleporter();
void teleporterAppear(uint32 fileHash);
void teleporterDisappear(uint32 fileHash);
uint32 hmTeleporterAppearDisappear(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmShrink(int messageNum, const MessageParam &param, Entity *sender);
- void stShrink();
-
- void stStandWonderAbout();
+ void stClayDoorOpen();
+ uint32 hmClayDoorOpen(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmDrinkPotion(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmGrow(int messageNum, const MessageParam &param, Entity *sender);
- void stGrow();
- void stDrinkPotion();
+ void stFallSkipJump();
+ void suFallSkipJump();
- uint32 hmInsertKey(int messageNum, const MessageParam &param, Entity *sender);
- void stInsertKey();
+ void stMoveObject();
+ void stContinueMoveObject();
+ uint32 hmMoveObject(int messageNum, const MessageParam &param, Entity *sender);
+ void upMoveObject();
- uint32 hmReadNote(int messageNum, const MessageParam &param, Entity *sender);
- void stReadNote();
+ void stCloseEyes();
- uint32 hmHitByDoor(int messageNum, const MessageParam &param, Entity *sender);
- void stHitByDoor();
+ void stTumbleHeadless();
+ uint32 hmTumbleHeadless(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmPeekWallReturn(int messageNum, const MessageParam &param, Entity *sender);
- void upPeekWallBlink();
- void stPeekWall1();
- void stPeekWall2();
- void stPeekWallBlink();
- void stPeekWallReturn();
+ void stFetchMatch();
+ void stLightMatch();
+ uint32 hmMatch(int messageNum, const MessageParam &param, Entity *sender);
- void stPullHammerLever();
- uint32 hmPullHammerLever(int messageNum, const MessageParam &param, Entity *sender);
+ void stHitByBoxingGlove();
+ uint32 hmHitByBoxingGlove(int messageNum, const MessageParam &param, Entity *sender);
+ void evHitByBoxingGloveDone();
- void suRidePlatformDown();
- void stRidePlatformDown();
+ void stStandIdleSmall();
+ void stWonderAboutSmall();
+ void stWonderAboutHalfSmall();
+ void stWonderAboutAfterSmall();
- void stCrashDown();
- void stCrashDownFinished();
+ void stWalkToFrontNoStepSmall();
+ void stWalkToFrontSmall();
+ void stWalkToFront2Small();
+ void stTurnToBackHalfSmall();
+ void stTurnToBackWalkSmall();
+ void stTurnToBackSmall();
+ uint32 hmWalkFrontBackSmall(int messageNum, const MessageParam &param, Entity *sender);
- void upSpitOutFall();
+ void sub421230();//stGrow??
+ uint32 handleMessage41F1D0(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stJumpToRingVenusFlyTrap();
uint32 hmJumpToRingVenusFlyTrap(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stDropFromRing();
+
+ void stStandIdleSpecial();
uint32 hmStandIdleSpecial(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stPressDoorButton();
uint32 hmPressDoorButton(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmMoveVenusFlyTrap(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmFirstMoveVenusFlyTrap(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmHitByBoxingGlove(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmJumpAndFall(int messageNum, const MessageParam &param, Entity *sender);
- void suFallDown();
- void stJumpToRingVenusFlyTrap();
- void stStandIdleSpecial();
+
void stSpitOutFall0();
- void stFalling();
void stSpitOutFall2();
- void stFallTouchdown();
+ void suFallDown();
+ void upSpitOutFall();
+
void stJumpAndFall();
- void stDropFromRing();
- void stPressDoorButton();
- void stHitByBoxingGlove();
- void stHitByBoxingGloveDone();
+ uint32 hmJumpAndFall(int messageNum, const MessageParam &param, Entity *sender);
+
+ void stFalling();
+ void stFallTouchdown();
+
void stMoveVenusFlyTrap();
void stContinueMovingVenusFlyTrap();
- void stMoveVenusFlyTrapDone();
+ uint32 hmMoveVenusFlyTrap(int messageNum, const MessageParam &param, Entity *sender);
+ uint32 hmFirstMoveVenusFlyTrap(int messageNum, const MessageParam &param, Entity *sender);
+ void evMoveVenusFlyTrapDone();
- void suFallSkipJump();
- void stFallSkipJump();
+ ////////////////////////////////////////////////////////////////////////////
- void upMoveObject();
- uint32 hmMatch(int messageNum, const MessageParam &param, Entity *sender);
- void stFetchMatch();
- void stLightMatch();
- uint32 hmMoveObject(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmTumbleHeadless(int messageNum, const MessageParam &param, Entity *sender);
- void stMoveObject();
- void stContinueMoveObject();
- void stTumbleHeadless();
- void stCloseEyes();
+ void stopWalking();
+
+ void suAction();
+ void suLargeStep();
+ void suUpdateDestX();
+ void suWalkingTestExit();
+
+ uint32 hmLowLevel(int messageNum, const MessageParam &param, Entity *sender);
+ uint32 hmLowLevelAnimation(int messageNum, const MessageParam &param, Entity *sender);
+
+ void setKlaymanIdleTable(const KlaymanIdleTableItem *table, int tableCount);
+ void setKlaymanIdleTable1();
+ void setKlaymanIdleTable2();
+ void setKlaymanIdleTable3();
+
+ void setSoundFlag(bool value) { _soundFlag = value; }
- uint32 hmSpit(int messageNum, const MessageParam &param, Entity *sender);
- void stTrySpitIntoPipe();
void spitIntoPipe();
+ void stTrySpitIntoPipe();
void stContSpitIntoPipe();
+ uint32 hmSpit(int messageNum, const MessageParam &param, Entity *sender);
- void suRidePlatform();
void stRidePlatform();
- void stInteractLever();
+ void suRidePlatform();
void stPullLever();
void stLookLeverDown();
void stWaitLeverDown();
- void startWalkingResume(int16 frameIncr);
-
protected:
Entity *_parentScene;
Sprite *_attachedSprite;
@@ -305,6 +412,8 @@ protected:
Sprite *_otherSprite;
int _idleTableNum;
+ int16 _walkResumeFrameIncr;
+
int _moveObjectCountdown;
bool _canSpitPipe;
@@ -326,77 +435,14 @@ protected:
void sub41CC40(int16 x1, int16 x2);
void sub41CCE0(int16 x);
- bool stStartActionFromIdle(AnimationCb callback);
void gotoNextStateExt();
void sub41C770();
void sub41C790();
-
- void stIdlePickEar();
- void evIdlePickEarDone();
- uint32 hmIdlePickEar(int messageNum, const MessageParam &param, Entity *sender);
-
- void stIdleSpinHead();
- uint32 hmIdleSpinHead(int messageNum, const MessageParam &param, Entity *sender);
-
- void stIdleArms();
- void evIdleArmsDone();
- uint32 hmIdleArms(int messageNum, const MessageParam &param, Entity *sender);
-
- void stIdleChest();
- uint32 hmIdleChest(int messageNum, const MessageParam &param, Entity *sender);
-
- void stIdleHeadOff();
- uint32 hmIdleHeadOff(int messageNum, const MessageParam &param, Entity *sender);
- void startIdleAnimation(uint32 fileHash, AnimationCb callback);
- void upIdleAnimation();
-
- void upStandIdle();
-
- void stIdleBlink();
- void stStandAround();
-
- uint32 hmStartAction(int messageNum, const MessageParam &param, Entity *sender);
-
- uint32 hmSleeping(int messageNum, const MessageParam &param, Entity *sender);
-
- bool stStartAction(AnimationCb callback3);
-
- void stSneak();
- void stWalkingDone();
- uint32 hmSneaking(int messageNum, const MessageParam &param, Entity *sender);
- void stStartWalking();
- uint32 hmStartWalking(int messageNum, const MessageParam &param, Entity *sender);
-
- uint32 hmPickUpGeneric(int messageNum, const MessageParam &param, Entity *sender);
-
- uint32 hmPressButton(int messageNum, const MessageParam &param, Entity *sender);
-
void stLargeStepDone();
- uint32 hmLargeStep(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmTurnToUse(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmPeekWall(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmJumpToRing(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmJumpToRing3(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmHoldRing(int messageNum, const MessageParam &param, Entity *sender);
- uint32 handleMessage41DFD0(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmClimbLadderUpDown(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmWalkToFront(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmLandOnFeet(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmTurnToBackToUse(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmPickUpTube(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmSitInTeleporter(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmMoveObjectTurn(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmClayDoorOpen(int messageNum, const MessageParam &param, Entity *sender);
-
- void upSitIdleTeleporter();
-
- uint32 hmInsertDisk(int messageNum, const MessageParam &param, Entity *sender);
-
void stStartWalkingSmall();
uint32 hmWalkingSmall(int messageNum, const MessageParam &param, Entity *sender);
- uint32 hmWalkFrontBackSmall(int messageNum, const MessageParam &param, Entity *sender);
void walkAlongPathPoints();