aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/scene.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/saga/scene.h')
-rw-r--r--engines/saga/scene.h23
1 files changed, 13 insertions, 10 deletions
diff --git a/engines/saga/scene.h b/engines/saga/scene.h
index 8b9b4493f0..8e55a15118 100644
--- a/engines/saga/scene.h
+++ b/engines/saga/scene.h
@@ -113,8 +113,13 @@ struct SceneResourceData {
byte *buffer;
size_t size;
bool invalid;
+
+ SceneResourceData() : resourceId(0), resourceType(0), buffer(NULL), size(0), invalid(false) {
+ }
};
+typedef Common::Array<SceneResourceData> SceneResourceDataArray;
+
#define SAGA_SCENE_DESC_LEN 16
struct SceneDescription {
@@ -126,8 +131,10 @@ struct SceneDescription {
uint16 sceneScriptEntrypointNumber;
uint16 startScriptEntrypointNumber;
int16 musicResourceId;
- SceneResourceData *resourceList;
- size_t resourceListCount;
+
+ void reset() {
+ flags = resourceListResourceId = endSlope = beginSlope = scriptModuleNumber = sceneScriptEntrypointNumber = startScriptEntrypointNumber = musicResourceId = 0;
+ }
};
struct SceneEntry {
@@ -161,14 +168,12 @@ enum SceneTransitionType {
enum SceneLoadFlags {
kLoadByResourceId,
- kLoadBySceneNumber,
- kLoadByDescription
+ kLoadBySceneNumber
};
struct LoadSceneParams {
int32 sceneDescriptor;
SceneLoadFlags loadFlag;
- SceneDescription* sceneDescription;
SceneProc *sceneProc;
bool sceneSkipTarget;
SceneTransitionType transitionType;
@@ -230,8 +235,8 @@ class Scene {
void skipScene();
void endScene();
void restoreScene();
- void queueScene(LoadSceneParams *sceneQueue) {
- _sceneQueue.push_back(*sceneQueue);
+ void queueScene(const LoadSceneParams &sceneQueue) {
+ _sceneQueue.push_back(sceneQueue);
}
void draw();
@@ -379,10 +384,8 @@ class Scene {
int _currentMusicRepeat;
bool _chapterPointsChanged;
bool _inGame;
- bool _loadDescription;
SceneDescription _sceneDescription;
- size_t _resourceListCount;
- SceneResourceData *_resourceList;
+ SceneResourceDataArray _resourceList;
SceneProc *_sceneProc;
SceneImage _bg;
SceneImage _bgMask;