aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage/scenes.h
diff options
context:
space:
mode:
authorPaul Gilbert2011-04-13 21:08:05 +1000
committerPaul Gilbert2011-04-13 21:08:05 +1000
commite6090415b62907b1ccc3163a43e04e8cea992693 (patch)
tree7d1bb5dd19985f98a1fd988626e46ebc7b886845 /engines/tsage/scenes.h
parentaadb4f74591f4044c82cf9de5cbac1694b9cd55c (diff)
parenta2d1fdd3655a27e23a3df0bb68f32d27cd4b3319 (diff)
downloadscummvm-rg350-e6090415b62907b1ccc3163a43e04e8cea992693.tar.gz
scummvm-rg350-e6090415b62907b1ccc3163a43e04e8cea992693.tar.bz2
scummvm-rg350-e6090415b62907b1ccc3163a43e04e8cea992693.zip
Merge remote branch 'remotes/dreammaster/tsage'
Diffstat (limited to 'engines/tsage/scenes.h')
-rw-r--r--engines/tsage/scenes.h115
1 files changed, 115 insertions, 0 deletions
diff --git a/engines/tsage/scenes.h b/engines/tsage/scenes.h
new file mode 100644
index 0000000000..9d969c906b
--- /dev/null
+++ b/engines/tsage/scenes.h
@@ -0,0 +1,115 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL: https://scummvm-misc.svn.sourceforge.net/svnroot/scummvm-misc/trunk/engines/tsage/scenes.h $
+ * $Id: scenes.h 216 2011-02-08 08:10:46Z dreammaster $
+ *
+ */
+
+#ifndef TSAGE_SCENES_H
+#define TSAGE_SCENES_H
+
+#include "common/scummsys.h"
+#include "tsage/converse.h"
+#include "tsage/events.h"
+#include "tsage/core.h"
+#include "tsage/saveload.h"
+
+namespace tSage {
+
+class Scene: public StripCallback {
+private:
+ void drawAltObjects();
+public:
+ int _field12;
+ int _sceneNumber;
+ int _activeScreenNumber;
+ int _sceneMode;
+ StripManager _stripManager;
+
+ Rect _backgroundBounds;
+ GfxSurface _backSurface;
+ Rect _sceneBounds;
+ Rect _oldSceneBounds;
+ int _enabledSections[256];
+ int _zoomPercents[256];
+ ScenePriorities _priorities;
+
+ int _fieldA;
+ int _fieldE;
+public:
+ Scene();
+ virtual ~Scene();
+
+ virtual Common::String getClassName() { return "Scene"; }
+ virtual void synchronise(Serialiser &s);
+ virtual void stripCallback(int v) {}
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+ virtual void process(Event &event);
+ virtual void dispatch();
+ virtual void loadScene(int sceneNum);
+
+ void setZoomPercents(int yStart, int minPercent, int yEnd, int maxPercent);
+ void loadBackground(int xAmount, int yAmount);
+ void refreshBackground(int xAmount, int yAmount);
+ void loadSceneData(int sceneNum);
+};
+
+class SceneManager: public GameHandler, public SaveListener {
+private:
+ void disposeRegions() { warning("TODO"); }
+ Scene *getNewScene();
+public:
+ Scene *_scene;
+ bool _hasPalette;
+ int _loadMode;
+ int _sceneNumber;
+ int _previousScene;
+ int _nextSceneNumber;
+ FadeMode _fadeMode;
+ Common::Point _sceneBgOffset;
+ int _sceneLoadCount;
+ Rect _scrollerRect;
+ SceneObjectList _altSceneObjects;
+public:
+ SceneManager();
+ virtual ~SceneManager();
+
+ virtual void listenerSynchronise(Serialiser &s);
+ void setNewScene(int sceneNumber);
+ void checkScene();
+ void sceneChange();
+ void fadeInIfNecessary();
+ void changeScene(int newSceneNumber);
+ void setBgOffset(const Common::Point &pt, int loadCount);
+
+ void removeAction(Action *action) {
+ // Not currently implemented because addAction method doesn't seem to have any callers
+ }
+
+ static void setup();
+ static void setBackSurface();
+ static void saveListener(int saveMode);
+ static void loadNotifier(bool postFlag);
+};
+
+} // End of namespace tSage
+
+#endif