[Scummvm-git-logs] scummvm master -> 0dedb1a34f9fe9de4ad249a3d9d86f9abb6fffbf
antoniou79
a.antoniou79 at gmail.com
Fri Dec 11 15:54:54 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:
0dedb1a34f BLADERUNNER: Animation descriptions for Grigorian and transient
Commit: 0dedb1a34f9fe9de4ad249a3d9d86f9abb6fffbf
https://github.com/scummvm/scummvm/commit/0dedb1a34f9fe9de4ad249a3d9d86f9abb6fffbf
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2020-12-11T17:35:18+02:00
Commit Message:
BLADERUNNER: Animation descriptions for Grigorian and transient
Also usage checks and comments for potential bugs. And a small bugfix for Grigorian's cross arms animation
Changed paths:
engines/bladerunner/game_constants.h
engines/bladerunner/script/ai/grigorian.cpp
engines/bladerunner/script/ai/klein.cpp
engines/bladerunner/script/ai/officer_leary.cpp
engines/bladerunner/script/ai/runciter.cpp
engines/bladerunner/script/ai/sergeant_walls.cpp
engines/bladerunner/script/ai/steele.cpp
engines/bladerunner/script/ai/transient.cpp
engines/bladerunner/script/kia_script.cpp
diff --git a/engines/bladerunner/game_constants.h b/engines/bladerunner/game_constants.h
index c7c8e74b89..1f62239931 100644
--- a/engines/bladerunner/game_constants.h
+++ b/engines/bladerunner/game_constants.h
@@ -2015,7 +2015,43 @@ enum GameModelAnimations {
kModelAnimationCrazylegsHandsUpLowersHands = 468,
kModelAnimationCrazylegsHangsUpMobile = 469,
// 470 - 486: Grigorian animations
+ kModelAnimationGrigorianWalking = 470, // UNUSED
+ kModelAnimationGrigorianSitIdle = 471, // UNUSED
+ kModelAnimationGrigorianSitIdleNailBiting = 472, // UNUSED
+ kModelAnimationGrigorianSitDismissTalk = 473, // UNUSED
+ kModelAnimationGrigorianSitHeadacheTalk = 474, // UNUSED
+ kModelAnimationGrigorianSitProtestTalk = 475, // UNUSED
+ kModelAnimationGrigorianSitToStandingUp = 476, // UNUSED
+ kModelAnimationGrigorianSitFromStandingUp = 477, // UNUSED
+ kModelAnimationGrigorianStandIdle = 478, // maybe calm talk too?
+ kModelAnimationGrigorianStandAnnoyedTalk = 479,
+ kModelAnimationGrigorianStandArmsCrossedTalk = 480,
+ kModelAnimationGrigorianStandProtestTalk = 481,
+ kModelAnimationGrigorianStandProtestMoreTalk = 482,
+ kModelAnimationGrigorianStandProtestEvenMoreTalk = 483,
+ kModelAnimationGrigorianStandInsistentTalk = 484,
+ kModelAnimationGrigorianStandDismissOrAccuseTalk = 485,
+ kModelAnimationGrigorianStandBegOrMockingTalk = 486,
// 487 - 505: Transient/Homeless animations
+ kModelAnimationTransientWalking = 487,
+ kModelAnimationTransientRunning = 488, // UNUSED
+ kModelAnimationTransientShotDeadCollapseInPlace = 489,
+ kModelAnimationTransientShotInTheBackDropsDead = 490, // UNUSED
+ kModelAnimationTransientLayingIdle = 491,
+ kModelAnimationTransientLayingCalmTalk = 492,
+ kModelAnimationTransientLayingMoreCalmTalk = 493,
+ kModelAnimationTransientLayingThisAndThatTalk = 494,
+ kModelAnimationTransientLayingShotDead = 495,
+ kModelAnimationTransientLayingGestureGiveOrTake = 496,
+ kModelAnimationTransientIdle = 497,
+ kModelAnimationTransientIdleToSearchingTrash = 498, // UNUSED
+ kModelAnimationTransientPickingNodeAndWiping = 499,
+ kModelAnimationTransientGestureGive = 500, // or probably idle, but it doesn't look like idle
+ kModelAnimationTransientScratchBackOfHeadTalk = 501,
+ kModelAnimationTransientDescriptiveTalk = 502,
+ kModelAnimationTransientPointingAtTalk = 503, // Could be used when he points to where Zuben ran to
+ kModelAnimationTransientSearchingTrash = 504,
+ kModelAnimationTransientSearchingTrashToIdle = 505,
// 506 - 525: Bullet Bob animations
// 526 - 544: Runciter animations
// 545 - 554: Insect Dealer animations
diff --git a/engines/bladerunner/script/ai/grigorian.cpp b/engines/bladerunner/script/ai/grigorian.cpp
index 8996daed38..f563cefaba 100644
--- a/engines/bladerunner/script/ai/grigorian.cpp
+++ b/engines/bladerunner/script/ai/grigorian.cpp
@@ -103,101 +103,111 @@ bool AIScriptGrigorian::UpdateAnimation(int *animation, int *frame) {
switch (_animationState) {
case 0:
if (var_45CA10 == 0) {
- *animation = 478;
- if (var_45CA14) {
+ *animation = kModelAnimationGrigorianStandIdle;
+ if (var_45CA14 > 0) {
--var_45CA14;
} else {
++_animationFrame;
if (_animationFrame == 5 || _animationFrame == 13) {
var_45CA14 = Random_Query(2, 4);
}
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(478)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationGrigorianStandIdle)) {
_animationFrame = 0;
var_45CA10 = Random_Query(0, 2);
}
}
} else if (var_45CA10 == 1) {
- *animation = 479;
+ *animation = kModelAnimationGrigorianStandAnnoyedTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(479)) {
- *animation = 478;
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationGrigorianStandAnnoyedTalk)) {
+ *animation = kModelAnimationGrigorianStandIdle;
_animationFrame = 0;
var_45CA10 = 0;
}
} else if (var_45CA10 == 2) {
- *animation = 480;
- if (var_45CA14) {
+ *animation = kModelAnimationGrigorianStandArmsCrossedTalk;
+ if (var_45CA14 > 0) {
--var_45CA14;
} else {
++_animationFrame;
if (_animationFrame >= 8 && _animationFrame <= 10) {
var_45CA14 = Random_Query(2, 4);
}
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(478)) {
- *animation = 478;
+#if BLADERUNNER_ORIGINAL_BUGS
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationGrigorianStandIdle)) {
+ *animation = kModelAnimationGrigorianStandIdle;
_animationFrame = 0;
var_45CA10 = 0;
}
+#else
+ // bugfix set proper current animation here to get frameset number of frames
+ // (could also use *animation)
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationGrigorianStandArmsCrossedTalk)) {
+ *animation = kModelAnimationGrigorianStandIdle;
+ _animationFrame = 0;
+ var_45CA10 = 0;
+ }
+#endif // BLADERUNNER_ORIGINAL_BUGS
}
}
break;
case 1:
- *animation = 479;
+ *animation = kModelAnimationGrigorianStandAnnoyedTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(479)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationGrigorianStandAnnoyedTalk)) {
_animationFrame = 0;
}
break;
case 2:
- *animation = 481;
+ *animation = kModelAnimationGrigorianStandProtestTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(481)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationGrigorianStandProtestTalk)) {
_animationFrame = 0;
}
break;
case 3:
- *animation = 482;
+ *animation = kModelAnimationGrigorianStandProtestMoreTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(482)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationGrigorianStandProtestMoreTalk)) {
_animationState = 2;
_animationFrame = 0;
- *animation = 481;
+ *animation = kModelAnimationGrigorianStandProtestTalk;
}
break;
case 4:
- *animation = 483;
+ *animation = kModelAnimationGrigorianStandProtestEvenMoreTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(483)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationGrigorianStandProtestEvenMoreTalk)) {
_animationState = 2;
_animationFrame = 0;
- *animation = 481;
+ *animation = kModelAnimationGrigorianStandProtestTalk;
}
break;
case 5:
- *animation = 484;
+ *animation = kModelAnimationGrigorianStandInsistentTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(484)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationGrigorianStandInsistentTalk)) {
_animationState = 2;
_animationFrame = 0;
- *animation = 481;
+ *animation = kModelAnimationGrigorianStandProtestTalk;
}
break;
case 6:
- *animation = 485;
+ *animation = kModelAnimationGrigorianStandDismissOrAccuseTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(485)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationGrigorianStandDismissOrAccuseTalk)) {
_animationState = 2;
_animationFrame = 0;
- *animation = 481;
+ *animation = kModelAnimationGrigorianStandProtestTalk;
}
break;
case 7:
- *animation = 486;
+ *animation = kModelAnimationGrigorianStandBegOrMockingTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(486)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationGrigorianStandBegOrMockingTalk)) {
_animationState = 2;
_animationFrame = 0;
- *animation = 481;
+ *animation = kModelAnimationGrigorianStandProtestTalk;
}
break;
default:
@@ -215,6 +225,7 @@ bool AIScriptGrigorian::ChangeAnimationMode(int mode) {
_animationFrame = 0;
break;
case kAnimationModeWalk:
+ // TODO A bug? This animation state is not for walking. It is for kModelAnimationGrigorianStandAnnoyedTalk.
if (_animationState != 1) {
_animationState = 1;
_animationFrame = 0;
diff --git a/engines/bladerunner/script/ai/klein.cpp b/engines/bladerunner/script/ai/klein.cpp
index b9baac115c..0c5caa68f9 100644
--- a/engines/bladerunner/script/ai/klein.cpp
+++ b/engines/bladerunner/script/ai/klein.cpp
@@ -470,7 +470,8 @@ bool AIScriptKlein::UpdateAnimation(int *animation, int *frame) {
_animationState = _animationStateNext;
break;
default:
- *animation = 399; // TODO: A bug? This belongs to Zuben
+ // TODO: A bug? 399 is a Zuben animation
+ *animation = 399;
break;
}
*frame = _animationFrame;
diff --git a/engines/bladerunner/script/ai/officer_leary.cpp b/engines/bladerunner/script/ai/officer_leary.cpp
index b1f39397fd..a4d55b0d73 100644
--- a/engines/bladerunner/script/ai/officer_leary.cpp
+++ b/engines/bladerunner/script/ai/officer_leary.cpp
@@ -1063,6 +1063,7 @@ bool AIScriptOfficerLeary::UpdateAnimation(int *animation, int *frame) {
*frame = _animationFrame;
return true;
default:
+ // TODO A bug? This is an animation of Zuben
*animation = 399;
*frame = _animationFrame;
return true;
diff --git a/engines/bladerunner/script/ai/runciter.cpp b/engines/bladerunner/script/ai/runciter.cpp
index 2318b234c5..d83b4c27ba 100644
--- a/engines/bladerunner/script/ai/runciter.cpp
+++ b/engines/bladerunner/script/ai/runciter.cpp
@@ -498,6 +498,7 @@ bool AIScriptRunciter::UpdateAnimation(int *animation, int *frame) {
break;
default:
+ // TODO: A bug? 399 is a Zuben animation
*animation = 399;
_animationFrame = 0;
*frame = _animationFrame;
diff --git a/engines/bladerunner/script/ai/sergeant_walls.cpp b/engines/bladerunner/script/ai/sergeant_walls.cpp
index a44f9af9ce..68cbd5440a 100644
--- a/engines/bladerunner/script/ai/sergeant_walls.cpp
+++ b/engines/bladerunner/script/ai/sergeant_walls.cpp
@@ -185,6 +185,7 @@ bool AIScriptSergeantWalls::UpdateAnimation(int *animation, int *frame) {
}
break;
default:
+ // TODO: A bug? 399 is a Zuben animation
*animation = 399;
break;
}
diff --git a/engines/bladerunner/script/ai/steele.cpp b/engines/bladerunner/script/ai/steele.cpp
index 60fe314a38..603bbbbddc 100644
--- a/engines/bladerunner/script/ai/steele.cpp
+++ b/engines/bladerunner/script/ai/steele.cpp
@@ -1998,8 +1998,7 @@ bool AIScriptSteele::UpdateAnimation(int *animation, int *frame) {
break;
default:
- // TODO is this an error?
- // 406 is a Zuben animation
+ // TODO A bug? 406 is a Zuben animation
*animation = 406;
_animationFrame = 0;
break;
diff --git a/engines/bladerunner/script/ai/transient.cpp b/engines/bladerunner/script/ai/transient.cpp
index 1c8430f3d6..9ac76a2c76 100644
--- a/engines/bladerunner/script/ai/transient.cpp
+++ b/engines/bladerunner/script/ai/transient.cpp
@@ -225,137 +225,137 @@ bool AIScriptTransient::GoalChanged(int currentGoalNumber, int newGoalNumber) {
bool AIScriptTransient::UpdateAnimation(int *animation, int *frame) {
switch (_animationState) {
case 0:
- *animation = 499;
+ *animation = kModelAnimationTransientPickingNodeAndWiping;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(499)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientPickingNodeAndWiping)) {
_animationFrame = 0;
} else {
- *animation = 497;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(497)) {
+ *animation = kModelAnimationTransientIdle;
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientIdle)) {
_animationFrame = 0;
}
}
break;
case 1:
- *animation = 487;
+ *animation = kModelAnimationTransientWalking;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(487)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientWalking)) {
_animationFrame = 0;
}
break;
case 2:
- *animation = 500;
+ *animation = kModelAnimationTransientGestureGive;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(500)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientGestureGive)) {
_animationFrame = 0;
}
break;
case 3:
- *animation = 501;
+ *animation = kModelAnimationTransientScratchBackOfHeadTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(501)) {
- *animation = 500;
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientScratchBackOfHeadTalk)) {
+ *animation = kModelAnimationTransientGestureGive;
_animationState = 2;
_animationFrame = 0;
}
break;
case 4:
- *animation = 502;
+ *animation = kModelAnimationTransientDescriptiveTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(502)) {
- *animation = 500;
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientDescriptiveTalk)) {
+ *animation = kModelAnimationTransientGestureGive;
_animationState = 2;
_animationFrame = 0;
}
break;
case 5:
- *animation = 503;
+ *animation = kModelAnimationTransientPointingAtTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(503)) {
- *animation = 500;
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientPointingAtTalk)) {
+ *animation = kModelAnimationTransientGestureGive;
_animationState = 2;
_animationFrame = 0;
}
break;
case 6:
- *animation = 491;
+ *animation = kModelAnimationTransientLayingIdle;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(491)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientLayingIdle)) {
_animationFrame = 0;
}
break;
case 7:
- *animation = 492;
+ *animation = kModelAnimationTransientLayingCalmTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(492)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientLayingCalmTalk)) {
_animationState = 6;
_animationFrame = 0;
}
break;
case 8:
- *animation = 493;
+ *animation = kModelAnimationTransientLayingMoreCalmTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(493)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientLayingMoreCalmTalk)) {
_animationState = 6;
_animationFrame = 0;
}
break;
case 9:
- *animation = 494;
+ *animation = kModelAnimationTransientLayingThisAndThatTalk;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(494)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientLayingThisAndThatTalk)) {
_animationState = 6;
_animationFrame = 0;
}
break;
case 10:
- *animation = 496;
+ *animation = kModelAnimationTransientLayingGestureGiveOrTake;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(496)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientLayingGestureGiveOrTake)) {
_animationState = 6;
_animationFrame = 0;
}
break;
case 11:
- *animation = 495;
+ *animation = kModelAnimationTransientLayingShotDead;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(495)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientLayingShotDead)) {
Actor_Set_Frame_Rate_FPS(kActorTransient, 8);
_animationState = 12;
- _animationFrame = Slice_Animation_Query_Number_Of_Frames(495) - 1;
+ _animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientLayingShotDead) - 1;
}
break;
case 12:
- *animation = 495;
- _animationFrame = Slice_Animation_Query_Number_Of_Frames(495) - 1;
+ *animation = kModelAnimationTransientLayingShotDead;
+ _animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientLayingShotDead) - 1;
break;
case 14:
- *animation = 489;
+ *animation = kModelAnimationTransientShotDeadCollapseInPlace;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(489)) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientShotDeadCollapseInPlace)) {
Actor_Set_Goal_Number(kActorTransient, 3);
_animationState = 15;
- _animationFrame = Slice_Animation_Query_Number_Of_Frames(489) - 1;
+ _animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientShotDeadCollapseInPlace) - 1;
Actor_Set_Targetable(kActorTransient, false);
Actor_Retired_Here(kActorTransient, 120, 24, 1, -1);
}
break;
case 15:
- *animation = 489;
- _animationFrame = Slice_Animation_Query_Number_Of_Frames(489) - 1;
+ *animation = kModelAnimationTransientShotDeadCollapseInPlace;
+ _animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientShotDeadCollapseInPlace) - 1;
break;
case 16:
- *animation = 504;
+ *animation = kModelAnimationTransientSearchingTrash;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(504) - 1) {
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientSearchingTrash) - 1) {
_animationFrame = 0;
}
break;
case 17:
- *animation = 505;
+ *animation = kModelAnimationTransientSearchingTrashToIdle;
++_animationFrame;
- if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(505) - 1) {
- *animation = 497;
+ if (_animationFrame >= Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientSearchingTrashToIdle) - 1) {
+ *animation = kModelAnimationTransientIdle;
_animationFrame = 0;
_animationState = 0;
Actor_Change_Animation_Mode(kActorTransient, kAnimationModeIdle);
@@ -366,20 +366,21 @@ bool AIScriptTransient::UpdateAnimation(int *animation, int *frame) {
}
break;
case 18:
- *animation = 491;
+ *animation = kModelAnimationTransientLayingIdle;
++_animationFrame;
if (_animationFrame - 1 == 4) {
_animationState = 19;
}
break;
case 19:
- *animation = 491;
+ *animation = kModelAnimationTransientLayingIdle;
--_animationFrame;
if (_animationFrame + 1 == 4) {
_animationState = 18;
}
break;
default:
+ // TODO: A bug? 399 is a Zuben animation
*animation = 399;
break;
}
@@ -489,7 +490,7 @@ bool AIScriptTransient::ChangeAnimationMode(int mode) {
break;
case 89:
_animationState = 12;
- _animationFrame = Slice_Animation_Query_Number_Of_Frames(495) - 1;
+ _animationFrame = Slice_Animation_Query_Number_Of_Frames(kModelAnimationTransientLayingShotDead) - 1;
break;
}
diff --git a/engines/bladerunner/script/kia_script.cpp b/engines/bladerunner/script/kia_script.cpp
index 3bdd2be4de..7155502ce4 100644
--- a/engines/bladerunner/script/kia_script.cpp
+++ b/engines/bladerunner/script/kia_script.cpp
@@ -826,6 +826,9 @@ void KIAScript::SCRIPT_KIA_DLL_Play_Clue_Asset_Script(int notUsed, int clueId) {
KIA_Play_Actor_Dialogue(kActorSteele, 3390);
KIA_Play_Actor_Dialogue(kActorSteele, 3400);
KIA_Play_Actor_Dialogue(kActorSteele, 3410);
+ // TODO this line of Grigorian is supposedly interrupted by Steele's following line
+ // maybe implement a way to not wait before the next line is played, similar to Actor_Says_With_Pause()
+ // (look into tick() for kia.cpp)
KIA_Play_Actor_Dialogue(kActorGrigorian, 1260);
KIA_Play_Actor_Dialogue(kActorSteele, 3420);
KIA_Play_Actor_Dialogue(kActorSteele, 3430);
More information about the Scummvm-git-logs
mailing list