aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;