aboutsummaryrefslogtreecommitdiff
path: root/engines/director/score.h
diff options
context:
space:
mode:
authorstevenhoefel2017-03-12 00:18:03 +1100
committerstevenhoefel2017-03-12 00:18:03 +1100
commitfba1368267c470f66099bb833359b9d7fec6273e (patch)
treec1c87f7244562aefb86f7a93102d8320bdafaa83 /engines/director/score.h
parent145d60b663d94796e031872b5782fa4a8609f86a (diff)
downloadscummvm-rg350-fba1368267c470f66099bb833359b9d7fec6273e.tar.gz
scummvm-rg350-fba1368267c470f66099bb833359b9d7fec6273e.tar.bz2
scummvm-rg350-fba1368267c470f66099bb833359b9d7fec6273e.zip
DIRECTOR: pre-load cast members.
Diffstat (limited to 'engines/director/score.h')
-rw-r--r--engines/director/score.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/engines/director/score.h b/engines/director/score.h
index 346a84ce63..83ffecd245 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -26,6 +26,8 @@
#include "common/substream.h"
#include "common/rect.h"
#include "director/archive.h"
+#include "director/cast.h"
+#include "director/images.h"
namespace Graphics {
class ManagedSurface;
@@ -57,7 +59,7 @@ const char *scriptType2str(ScriptType scr);
class Score {
public:
- Score(DirectorEngine *vm, Archive *);
+ Score(DirectorEngine *vm);
~Score();
static Common::Rect readRect(Common::ReadStreamEndian &stream);
@@ -68,6 +70,7 @@ public:
void gotoNext();
void gotoPrevious();
void startLoop();
+ void setArchive(Archive *archive);
Archive *getArchive() const { return _movieArchive; };
void loadConfig(Common::SeekableSubReadStreamEndian &stream);
void loadCastDataVWCR(Common::SeekableSubReadStreamEndian &stream);
@@ -78,8 +81,13 @@ public:
Common::String getMacName() const { return _macName; }
Sprite *getSpriteById(uint16 id);
void setSpriteCasts();
+ void loadSpriteImages(bool isSharedCast);
Graphics::ManagedSurface *getSurface() { return _surface; }
+ void loadCastInto(Sprite *sprite, int castId);
+ Common::Rect getCastMemberInitialRect(int castId);
+ void setCastMemberModified(int castId);
+
int getPreviousLabelNumber(int referenceFrame);
int getCurrentLabelNumber();
int getNextLabelNumber(int referenceFrame);
@@ -100,7 +108,7 @@ private:
public:
Common::Array<Frame *> _frames;
- Common::HashMap<int, Cast *> _casts;
+ Common::HashMap<int, CastType> _castTypes;
Common::HashMap<uint16, CastInfo *> _castsInfo;
Common::HashMap<Common::String, int> _castsNames;
Common::SortedArray<Label *> *_labels;
@@ -116,6 +124,13 @@ public:
bool _stopPlay;
uint32 _nextFrameTime;
+ Common::HashMap<int, ButtonCast *> *_loadedButtons;
+ Common::HashMap<int, TextCast *> *_loadedText;
+ //Common::HashMap<int, SoundCast *> _loadedSound;
+ Common::HashMap<int, BitmapCast *> *_loadedBitmaps;
+ Common::HashMap<int, ShapeCast *> *_loadedShapes;
+ Common::HashMap<int, ScriptCast *> *_loadedScripts;
+
private:
uint16 _versionMinor;
uint16 _versionMajor;