[Scummvm-git-logs] scummvm master -> 819793bd4914bff5b09a8e9b015e54bb20896f0c
antoniou79
a.antoniou79 at gmail.com
Tue Dec 15 18:51:36 UTC 2020
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
819793bd49 BLADERUNNER: Describe Chew and Gaff animations
Commit: 819793bd4914bff5b09a8e9b015e54bb20896f0c
https://github.com/scummvm/scummvm/commit/819793bd4914bff5b09a8e9b015e54bb20896f0c
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2020-12-15T20:51:25+02:00
Commit Message:
BLADERUNNER: Describe Chew and Gaff animations
Changed paths:
engines/bladerunner/game_constants.h
engines/bladerunner/script/ai/chew.cpp
engines/bladerunner/script/ai/gaff.cpp
engines/bladerunner/script/ai_script.h
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index 5caa2e9366..7b5d756d9d 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -2442,19 +2442,49 @@ enum GameModelAnimations {
kModelAnimationShoeshineManSitsMoreHeadMoveTalk = 762, // UNUSED
kModelAnimationShoeshineManSitsViolentHeadMove = 763, // UNUSED - Coughs? Spits? Talks?
kModelAnimationShoeshineManSitsGetsUp = 764, // UNUSED
- // 765 - 772: Tyrell animations // TODO
+ // 765 - 772: Tyrell animations
kModelAnimationTyrellWalking = 765,
kModelAnimationTyrellIdle = 766,
kModelAnimationTyrellHeadMoveIdle = 767,
kModelAnimationTyrellFastNodTalk = 768,
kModelAnimationTyrellSuggestTalk = 769,
kModelAnimationTyrellConsideringTalk = 770,
- kModelAnimationTyrellBowsAndSuggestsTalk = 771,
+ kModelAnimationTyrellBowsAndSuggestsTalk = 771, // TODO check if triggered
kModelAnimationTyrellDismissTalk = 772,
// 773 - 787: Chew animations
- // TODO
+ kModelAnimationChewWalking = 773, // untriggered
+ kModelAnimationChewTakesAStepBackwards = 774, // untriggered
+ kModelAnimationChewGotHit = 775, // untriggered
+ kModelAnimationChewShotDead = 776, // untriggered
+ kModelAnimationChewIdle = 777,
+ kModelAnimationChewFiddlingWithInstruments = 778,
+ kModelAnimationChewAdjustingInstrument = 779,
+ kModelAnimationChewProtestTalk = 780,
+ kModelAnimationChewAngryTalk = 781,
+ kModelAnimationChewExplainTalk = 782,
+ kModelAnimationChewGoAwayTalk = 783, // frame 6 is a bit bugged (a slice is missing at head height)
+ kModelAnimationChewDismissiveTalk = 784,
+ kModelAnimationChewPointingSomewhereTalk = 785, // TODO check if triggered
+ kModelAnimationChewDescribePulledTalk = 786, // TODO check if triggered
+ kModelAnimationChewDescribePushedTalk = 787, // TODO check if triggered
// 788 - 804: Gaff animations
- // TODO
+ kModelAnimationGaffWalking = 788,
+ kModelAnimationGaffClimbStairsUp = 789, // UNUSED
+ kModelAnimationGaffClimbStairsDown = 790, // UNUSED
+ kModelAnimationGaffGotHitRight = 791, // UNUSED
+ kModelAnimationGaffGotHitLeft = 792, // UNUSED
+ kModelAnimationGaffShotDown = 793, // UNUSED // probably not dead, for continuity reasons
+ kModelAnimationGaffIdle = 794,
+ kModelAnimationGaffLooksAroundAndDown = 795, // UNUSED
+ kModelAnimationGaffMakesOrigamiMaybe = 796, // UNUSED
+ kModelAnimationGaffGestureGive = 797, // UNUSED
+ kModelAnimationGaffCalmPointingWithStickTalk = 798,
+ kModelAnimationGaffExplainTalk = 799,
+ kModelAnimationGaffDescribeTalk = 800,
+ kModelAnimationGaffLaughHeadBackTalk = 801,
+ kModelAnimationGaffEntersSpinner = 802,
+ kModelAnimationGaffExitsSpinner = 803, // UNUSED
+ kModelAnimationGaffReachesOver = 804, // UNUSED
// 805 - 808: Bear "Bryant" (Sebastian's toy) animations
kModelAnimationBearToyWalking = 805,
kModelAnimationBearToyOscillatingIdle = 806, // untriggered?
diff --git a/engines/bladerunner/script/ai/chew.cpp b/engines/bladerunner/script/ai/chew.cpp
index bfaeb60092..4455d616e7 100644
--- a/engines/bladerunner/script/ai/chew.cpp
+++ b/engines/bladerunner/script/ai/chew.cpp
@@ -26,8 +26,9 @@ namespace BladeRunner {
AIScriptChew::AIScriptChew(BladeRunnerEngine *vm) : AIScriptBase(vm) {
_resumeIdleAfterFramesetCompletesFlag = false;
- _var1 = 0;
- _var2 = 0;
+ _varNumOfTimesToHoldCurrentFrame = 0;
+ // _varChooseIdleAnimation can have valid values: 0, 1, 2
+ _varChooseIdleAnimation = 0;
_var3 = 1;
}
@@ -38,8 +39,8 @@ void AIScriptChew::Initialize() {
_animationNext = 0;
_resumeIdleAfterFramesetCompletesFlag = false;
- _var1 = 0;
- _var2 = 0;
+ _varNumOfTimesToHoldCurrentFrame = 0;
+ _varChooseIdleAnimation = 0;
_var3 = 1;
}
@@ -102,25 +103,25 @@ bool AIScriptChew::GoalChanged(int currentGoalNumber, int newGoalNumber) {
bool AIScriptChew::UpdateAnimation(int *animation, int *frame) {
switch (_animationState) {
case 0:
- if (_var2 == 0) {
- *animation = 777;
- if (_var1) {
- --_var1;
+ if (_varChooseIdleAnimation == 0) {
+ *animation = kModelAnimationChewIdle;
+ if (_varNumOfTimesToHoldCurrentFrame > 0) {
+ --_varNumOfTimesToHoldCurrentFrame;
} else {
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(777)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationChewIdle)) {
_animationFrame = 0;
_var3 = 1;
- _var2 = Random_Query(0, 2);
+ _varChooseIdleAnimation = Random_Query(0, 2);
} else if (!Random_Query(0, 1)) {
- _var1 = 1;
+ _varNumOfTimesToHoldCurrentFrame = 1;
if (!Random_Query(0, 3)) {
_var3 = -_var3;
}
}
}
- } else if (_var2 == 1) {
- *animation = 778;
+ } else if (_varChooseIdleAnimation == 1) {
+ *animation = kModelAnimationChewFiddlingWithInstruments;
_animationFrame += _var3;
if (_animationFrame <= 6) {
_var3 = 1;
@@ -130,13 +131,13 @@ bool AIScriptChew::UpdateAnimation(int *animation, int *frame) {
_var3 = -1;
}
}
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(778)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationChewFiddlingWithInstruments)) {
_animationFrame = 0;
- _var2 = Random_Query(0, 2);
+ _varChooseIdleAnimation = Random_Query(0, 2);
_var3 = 1;
}
- } else if (_var2 == 2) {
- *animation = 779;
+ } else if (_varChooseIdleAnimation == 2) {
+ *animation = kModelAnimationChewAdjustingInstrument;
_animationFrame += _var3;
if (_animationFrame <= 8) {
_var3 = 1;
@@ -146,23 +147,23 @@ bool AIScriptChew::UpdateAnimation(int *animation, int *frame) {
_var3 = -1;
}
}
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(779)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationChewAdjustingInstrument)) {
_animationFrame = 0;
- _var2 = Random_Query(0, 2);
+ _varChooseIdleAnimation = Random_Query(0, 2);
_var3 = 1;
}
}
break;
case 1:
- if (!_var2) {
- *animation = 777;
+ if (_varChooseIdleAnimation == 0) {
+ *animation = kModelAnimationChewIdle;
}
- if (_var2 == 1) {
- *animation = 778;
+ if (_varChooseIdleAnimation == 1) {
+ *animation = kModelAnimationChewFiddlingWithInstruments;
}
- if (_var2 == 2) {
- *animation = 779;
+ if (_varChooseIdleAnimation == 2) {
+ *animation = kModelAnimationChewAdjustingInstrument;
}
if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationFrame += 2;
@@ -182,122 +183,122 @@ bool AIScriptChew::UpdateAnimation(int *animation, int *frame) {
break;
case 2:
- *animation = 780;
+ *animation = kModelAnimationChewProtestTalk;
if (_animationFrame == 0 && _resumeIdleAfterFramesetCompletesFlag) {
- *animation = 777;
+ *animation = kModelAnimationChewIdle;
_animationState = 0;
- _var2 = 0;
+ _varChooseIdleAnimation = 0;
} else {
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(780)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationChewProtestTalk)) {
_animationFrame = 0;
}
}
break;
case 3:
- *animation = 781;
+ *animation = kModelAnimationChewAngryTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(781)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationChewAngryTalk)) {
_animationFrame = 0;
_animationState = 2;
- *animation = 780;
+ *animation = kModelAnimationChewProtestTalk;
}
break;
case 4:
- *animation = 782;
+ *animation = kModelAnimationChewExplainTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(782)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationChewExplainTalk)) {
_animationFrame = 0;
_animationState = 2;
- *animation = 780;
+ *animation = kModelAnimationChewProtestTalk;
}
break;
case 5:
- *animation = 783;
+ *animation = kModelAnimationChewGoAwayTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(783)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationChewGoAwayTalk)) {
_animationFrame = 0;
_animationState = 2;
- *animation = 780;
+ *animation = kModelAnimationChewProtestTalk;
}
break;
case 6:
- *animation = 784;
+ *animation = kModelAnimationChewDismissiveTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(784)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationChewDismissiveTalk)) {
_animationFrame = 0;
_animationState = 2;
- *animation = 780;
+ *animation = kModelAnimationChewProtestTalk;
}
break;
case 7:
- *animation = 785;
+ *animation = kModelAnimationChewPointingSomewhereTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(785)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationChewPointingSomewhereTalk)) {
_animationFrame = 0;
_animationState = 2;
- *animation = 780;
+ *animation = kModelAnimationChewProtestTalk;
}
break;
case 8:
- *animation = 786;
+ *animation = kModelAnimationChewDescribePulledTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(786)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationChewDescribePulledTalk)) {
_animationFrame = 0;
_animationState = 2;
- *animation = 780;
+ *animation = kModelAnimationChewProtestTalk;
}
break;
case 9:
- *animation = 787;
+ *animation = kModelAnimationChewDescribePushedTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(787)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationChewDescribePushedTalk)) {
_animationFrame = 0;
_animationState = 2;
- *animation = 780;
+ *animation = kModelAnimationChewProtestTalk;
}
break;
case 10:
- *animation = 775;
+ *animation = kModelAnimationChewGotHit;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(775)) {
- *animation = 777;
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationChewGotHit)) {
+ *animation = kModelAnimationChewIdle;
_animationFrame = 0;
_animationState = 0;
- _var2 = 0;
+ _varChooseIdleAnimation = 0;
}
break;
case 11:
- *animation = 776;
- if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(776) - 1) {
+ *animation = kModelAnimationChewShotDead;
+ if (_animationFrame < Slice_Animation_Query_Number_Of_Frames(kModelAnimationChewShotDead) - 1) {
++_animationFrame;
}
break;
case 12:
- *animation = 773;
+ *animation = kModelAnimationChewWalking;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(773)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationChewWalking)) {
_animationFrame = 0;
}
break;
case 13:
- *animation = 774;
+ *animation = kModelAnimationChewTakesAStepBackwards;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(774)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationChewTakesAStepBackwards)) {
_animationFrame = 0;
_animationState = 2;
- *animation = 780;
+ *animation = kModelAnimationChewProtestTalk;
}
break;
@@ -311,7 +312,7 @@ bool AIScriptChew::UpdateAnimation(int *animation, int *frame) {
bool AIScriptChew::ChangeAnimationMode(int mode) {
switch (mode) {
- case 0:
+ case kAnimationModeIdle:
switch (_animationState) {
case 0:
return true;
@@ -336,13 +337,13 @@ bool AIScriptChew::ChangeAnimationMode(int mode) {
default:
_animationState = 0;
- _var2 = 0;
+ _varChooseIdleAnimation = 0;
_animationFrame = 0;
break;
}
break;
- case 1:
+ case kAnimationModeWalk:
_animationFrame = 0;
_animationState = 12;
break;
@@ -355,7 +356,7 @@ bool AIScriptChew::ChangeAnimationMode(int mode) {
_resumeIdleAfterFramesetCompletesFlag = false;
} else {
_animationStateNext = 2;
- _animationNext = 780;
+ _animationNext = kModelAnimationChewProtestTalk;
_animationState = 1;
}
}
@@ -369,7 +370,7 @@ bool AIScriptChew::ChangeAnimationMode(int mode) {
_resumeIdleAfterFramesetCompletesFlag = false;
} else {
_animationStateNext = 3;
- _animationNext = 781;
+ _animationNext = kModelAnimationChewAngryTalk;
_animationState = 1;
}
}
@@ -383,7 +384,7 @@ bool AIScriptChew::ChangeAnimationMode(int mode) {
_resumeIdleAfterFramesetCompletesFlag = false;
} else {
_animationStateNext = 4;
- _animationNext = 782;
+ _animationNext = kModelAnimationChewExplainTalk;
_animationState = 1;
}
}
@@ -397,7 +398,7 @@ bool AIScriptChew::ChangeAnimationMode(int mode) {
_resumeIdleAfterFramesetCompletesFlag = false;
} else {
_animationStateNext = 5;
- _animationNext = 783;
+ _animationNext = kModelAnimationChewGoAwayTalk;
_animationState = 1;
}
}
@@ -411,7 +412,7 @@ bool AIScriptChew::ChangeAnimationMode(int mode) {
_resumeIdleAfterFramesetCompletesFlag = false;
} else {
_animationStateNext = 6;
- _animationNext = 784;
+ _animationNext = kModelAnimationChewDismissiveTalk;
_animationState = 1;
}
}
@@ -425,7 +426,7 @@ bool AIScriptChew::ChangeAnimationMode(int mode) {
_resumeIdleAfterFramesetCompletesFlag = false;
} else {
_animationStateNext = 7;
- _animationNext = 785;
+ _animationNext = kModelAnimationChewPointingSomewhereTalk;
_animationState = 1;
}
}
@@ -439,7 +440,7 @@ bool AIScriptChew::ChangeAnimationMode(int mode) {
_resumeIdleAfterFramesetCompletesFlag = false;
} else {
_animationStateNext = 8;
- _animationNext = 786;
+ _animationNext = kModelAnimationChewDescribePulledTalk;
_animationState = 1;
}
}
@@ -453,16 +454,16 @@ bool AIScriptChew::ChangeAnimationMode(int mode) {
_resumeIdleAfterFramesetCompletesFlag = false;
} else {
_animationStateNext = 9;
- _animationNext = 787;
+ _animationNext = kModelAnimationChewDescribePushedTalk;
_animationState = 1;
}
}
break;
case 43:
- if (_animationState > 0 || (_animationState == 0 && _var2 != 1 && _var2 != 2)) {
+ if (_animationState > 0 || (_animationState == 0 && _varChooseIdleAnimation != 1 && _varChooseIdleAnimation != 2)) {
Actor_Change_Animation_Mode(kActorChew, kAnimationModeIdle);
- _var2 = Random_Query(1, 2);
+ _varChooseIdleAnimation = Random_Query(1, 2);
}
break;
diff --git a/engines/bladerunner/script/ai/gaff.cpp b/engines/bladerunner/script/ai/gaff.cpp
index d5b2214e65..a777053a4b 100644
--- a/engines/bladerunner/script/ai/gaff.cpp
+++ b/engines/bladerunner/script/ai/gaff.cpp
@@ -333,7 +333,7 @@ bool AIScriptGaff::GoalChanged(int currentGoalNumber, int newGoalNumber) {
bool AIScriptGaff::UpdateAnimation(int *animation, int *frame) {
switch (_animationState) {
case 0:
- *animation = 794;
+ *animation = kModelAnimationGaffIdle;
++_animationFrame;
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationFrame = 0;
@@ -341,7 +341,7 @@ bool AIScriptGaff::UpdateAnimation(int *animation, int *frame) {
break;
case 1:
- *animation = 788;
+ *animation = kModelAnimationGaffWalking;
++_animationFrame;
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationFrame = 0;
@@ -349,7 +349,7 @@ bool AIScriptGaff::UpdateAnimation(int *animation, int *frame) {
break;
case 2:
- *animation = 798;
+ *animation = kModelAnimationGaffCalmPointingWithStickTalk;
++_animationFrame;
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationFrame = 0;
@@ -357,61 +357,63 @@ bool AIScriptGaff::UpdateAnimation(int *animation, int *frame) {
break;
case 3:
- *animation = 799;
+ *animation = kModelAnimationGaffExplainTalk;
++_animationFrame;
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationState = 2;
_animationFrame = 0;
- *animation = 798;
+ *animation = kModelAnimationGaffCalmPointingWithStickTalk;
}
break;
case 4:
- *animation = 800;
+ // TODO A bug? This is identical to case 6
+ *animation = kModelAnimationGaffDescribeTalk;
++_animationFrame;
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationState = 2;
_animationFrame = 0;
- *animation = 798;
+ *animation = kModelAnimationGaffCalmPointingWithStickTalk;
}
break;
case 5:
- *animation = 801;
+ // TODO A bug? This is identical to case 7
+ *animation = kModelAnimationGaffLaughHeadBackTalk;
++_animationFrame;
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationState = 2;
_animationFrame = 0;
- *animation = 798;
+ *animation = kModelAnimationGaffCalmPointingWithStickTalk;
}
break;
case 6:
- *animation = 800;
+ *animation = kModelAnimationGaffDescribeTalk;
++_animationFrame;
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationState = 2;
_animationFrame = 0;
- *animation = 798;
+ *animation = kModelAnimationGaffCalmPointingWithStickTalk;
}
break;
case 7:
- *animation = 801;
+ *animation = kModelAnimationGaffLaughHeadBackTalk;
++_animationFrame;
if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(*animation)) {
_animationState = 2;
_animationFrame = 0;
- *animation = 798;
+ *animation = kModelAnimationGaffCalmPointingWithStickTalk;
}
break;
case 8:
- *animation = 802;
+ *animation = kModelAnimationGaffEntersSpinner;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(35) - 1) { // Bug in the game?
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationMcCoyEntersSpinner) - 1) { // Bug in the game?
Actor_Set_Invisible(kActorGaff, true);
- *animation = 794;
+ *animation = kModelAnimationGaffIdle;
_animationFrame = 0;
Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeIdle); // TODO: check this, it was set directly by calling actor script
Actor_Set_Goal_Number(kActorGaff, kGoalGaffCT12Leave);
diff --git a/engines/bladerunner/script/ai_script.h b/engines/bladerunner/script/ai_script.h
index d9b87f0775..607958349f 100644
--- a/engines/bladerunner/script/ai_script.h
+++ b/engines/bladerunner/script/ai_script.h
@@ -392,8 +392,8 @@ DECLARE_SCRIPT(Tyrell)
END_SCRIPT
DECLARE_SCRIPT(Chew)
- int _var1;
- int _var2;
+ int _varNumOfTimesToHoldCurrentFrame;
+ int _varChooseIdleAnimation;
int _var3;
bool _resumeIdleAfterFramesetCompletesFlag;
END_SCRIPT
More information about the Scummvm-git-logs
mailing list