diff options
-rw-r--r-- | engines/hdb/ai-cinematic.cpp | 2 | ||||
-rw-r--r-- | engines/hdb/ai.h | 21 |
2 files changed, 21 insertions, 2 deletions
diff --git a/engines/hdb/ai-cinematic.cpp b/engines/hdb/ai-cinematic.cpp index 5a4bebb185..0529fe92b6 100644 --- a/engines/hdb/ai-cinematic.cpp +++ b/engines/hdb/ai-cinematic.cpp @@ -292,6 +292,8 @@ void AI::cineStart(bool abortable, const char *abortFunc) { _cineAbortable = abortable; _cineAborted = false; _cineAbortFunc = abortFunc; + _numCineBlitList = 0; + _numCineFreeList = 0; _cineActive = true; _playerLock = false; _cameraLock = false; diff --git a/engines/hdb/ai.h b/engines/hdb/ai.h index 03d0b5ea30..ca3a3da3b4 100644 --- a/engines/hdb/ai.h +++ b/engines/hdb/ai.h @@ -39,7 +39,8 @@ enum { kMaxAutoActions = 30, kPlayerMoveSpeed = 4, kEnemyMoveSpeed = 2, - kPushMoveSpeed = (kPlayerMoveSpeed >> 1) + kPushMoveSpeed = (kPlayerMoveSpeed >> 1), + kMaxCineGfx = 10 }; enum AIType { @@ -596,7 +597,17 @@ struct CineCommand { AIEntity *e; CineCommand() : cmdType(C_NO_COMMAND), x(0.0), y(0.0), x2(0.0), y2(0.0), xv(0.0), yv(0.0), - start(0), end(0), delay(0), speed(0), title(""), string(""), id(NULL), e(NULL) {} + start(0), end(0), delay(0), speed(0), title(""), string(""), id(NULL), e(NULL), pic(NULL) {} +}; + +struct CineBlit { + double x, y; + Picture *pic; + const char *name; + const char *id; + bool masked; + + CineBlit() : x(0), y(0), pic(NULL), name(""), id(""), masked(false) {} }; #define onEvenTile(x, y) ( !(x & 31) && !(y & 31) ) @@ -909,6 +920,12 @@ public: // Cinematic Variables Common::Array<CineCommand *> _cine; + Picture *_cineFreeList[kMaxCineGfx]; + int _numCineFreeList; + + CineBlit *_cineBlitList[kMaxCineGfx]; + int _numCineBlitList; + private: // Action Functions |