aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNipun Garg2019-06-24 03:15:31 +0530
committerEugene Sandulenko2019-09-03 17:16:59 +0200
commit9c0b5d939ecab9db168392c0a6bfc167856d0f6d (patch)
treeeece59c4137e4fc53058a2f2b60c59947ae55777
parente1b5fca018fc00974d11098915740b8a0262d57d (diff)
downloadscummvm-rg350-9c0b5d939ecab9db168392c0a6bfc167856d0f6d.tar.gz
scummvm-rg350-9c0b5d939ecab9db168392c0a6bfc167856d0f6d.tar.bz2
scummvm-rg350-9c0b5d939ecab9db168392c0a6bfc167856d0f6d.zip
HDB: Process cineSetAnimFrame()
-rw-r--r--engines/hdb/ai-cinematic.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/engines/hdb/ai-cinematic.cpp b/engines/hdb/ai-cinematic.cpp
index ac2c785626..9261699526 100644
--- a/engines/hdb/ai-cinematic.cpp
+++ b/engines/hdb/ai-cinematic.cpp
@@ -64,6 +64,7 @@ static const char *cineTypeStr[] = {
void AI::processCines() {
+ AIEntity *e;
bool complete, bailOut;
if (!_cineActive) {
@@ -181,7 +182,7 @@ void AI::processCines() {
break;
case C_MOVEENTITY:
if (!_cine[i]->start) {
- AIEntity *e = locateEntity(_cine[i]->title);
+ e = locateEntity(_cine[i]->title);
if (e) {
_cine[i]->e = e;
_cine[i]->e->moveSpeed = _cine[i]->speed;
@@ -199,7 +200,6 @@ void AI::processCines() {
}
break;
case C_ANIMENTITY:
- AIEntity *e;
if (!_cine[i]->start) {
e = locateEntity(_cine[i]->title);
if (e) {
@@ -225,9 +225,20 @@ void AI::processCines() {
}
}
break;
+ case C_SETANIMFRAME:
+ e = locateEntity(_cine[i]->title);
+ if (e) {
+ e->state = (AIState)_cine[i]->start;
+ e->animFrame = _cine[i]->end;
+ e->animDelay = e->animCycle;
+ animEntFrames(e);
+ e->state = STATE_NONE;
+ complete = true;
+ }
+ break;
case C_ENTITYFACE:
{
- AIEntity *e = locateEntity(_cine[i]->title);
+ e = locateEntity(_cine[i]->title);
if (e) {
int d = (int)_cine[i]->x;