[Scummvm-cvs-logs] SF.net SVN: scummvm:[48763] scummvm/trunk/engines/m4

dreammaster at users.sourceforge.net dreammaster at users.sourceforge.net
Wed Apr 21 12:42:01 CEST 2010


Revision: 48763
          http://scummvm.svn.sourceforge.net/scummvm/?rev=48763&view=rev
Author:   dreammaster
Date:     2010-04-21 10:42:01 +0000 (Wed, 21 Apr 2010)

Log Message:
-----------
Changed MadsView into a separate class, since it's functionality is needed by two different class hierarchies that can't share a common ancestor class

Modified Paths:
--------------
    scummvm/trunk/engines/m4/mads_menus.cpp
    scummvm/trunk/engines/m4/mads_menus.h
    scummvm/trunk/engines/m4/mads_scene.cpp
    scummvm/trunk/engines/m4/mads_scene.h
    scummvm/trunk/engines/m4/mads_views.cpp
    scummvm/trunk/engines/m4/mads_views.h
    scummvm/trunk/engines/m4/scene.cpp
    scummvm/trunk/engines/m4/scene.h

Modified: scummvm/trunk/engines/m4/mads_menus.cpp
===================================================================
--- scummvm/trunk/engines/m4/mads_menus.cpp	2010-04-21 09:20:27 UTC (rev 48762)
+++ scummvm/trunk/engines/m4/mads_menus.cpp	2010-04-21 10:42:01 UTC (rev 48763)
@@ -586,7 +586,8 @@
  *--------------------------------------------------------------------------
  */
 
-RexDialogView::RexDialogView(): MadsView(_madsVm, Common::Rect(0, 0, _madsVm->_screen->width(), _madsVm->_screen->height())) {
+RexDialogView::RexDialogView(): View(_madsVm, Common::Rect(0, 0, _madsVm->_screen->width(), _madsVm->_screen->height())),
+		MadsView(this) {
 	_screenType = VIEWID_MENU;
 
 	// Initialise class variables
@@ -695,7 +696,10 @@
 	// Check whether any of the dialog text entries need to be refreshed
 	refreshText();
 
-	MadsView::onRefresh(rects, destSurface);
+	// Handle the drawing of the various Mads elements
+	refresh(rects);
+
+	View::onRefresh(rects, destSurface);
 }
 
 /**

Modified: scummvm/trunk/engines/m4/mads_menus.h
===================================================================
--- scummvm/trunk/engines/m4/mads_menus.h	2010-04-21 09:20:27 UTC (rev 48762)
+++ scummvm/trunk/engines/m4/mads_menus.h	2010-04-21 10:42:01 UTC (rev 48763)
@@ -112,7 +112,7 @@
 enum MadsTextAlignment { ALIGN_CENTER = -1, ALIGN_CHAR_CENTER = -2, RIGHT_ALIGN = -3 };
 
 
-class RexDialogView : public MadsView {
+class RexDialogView : public View, public MadsView {
 private:
 	int _priorSceneId;
 

Modified: scummvm/trunk/engines/m4/mads_scene.cpp
===================================================================
--- scummvm/trunk/engines/m4/mads_scene.cpp	2010-04-21 09:20:27 UTC (rev 48762)
+++ scummvm/trunk/engines/m4/mads_scene.cpp	2010-04-21 10:42:01 UTC (rev 48763)
@@ -40,7 +40,7 @@
 
 namespace M4 {
 
-MadsScene::MadsScene(MadsEngine *vm): _sceneResources(), Scene(vm, &_sceneResources) {
+MadsScene::MadsScene(MadsEngine *vm): _sceneResources(), Scene(vm, &_sceneResources), MadsView(this) {
 	_vm = vm;
 
 	_interfaceSurface = new MadsInterfaceView(vm);

Modified: scummvm/trunk/engines/m4/mads_scene.h
===================================================================
--- scummvm/trunk/engines/m4/mads_scene.h	2010-04-21 09:20:27 UTC (rev 48762)
+++ scummvm/trunk/engines/m4/mads_scene.h	2010-04-21 10:42:01 UTC (rev 48763)
@@ -27,6 +27,8 @@
 #define M4_MADS_SCENE_H
 
 #include "m4/scene.h"
+#include "m4/mads_logic.h"
+#include "m4/mads_views.h"
 
 namespace M4 {
 
@@ -176,7 +178,7 @@
 
 #define DIRTY_AREA_SIZE 90
 
-class MadsScene : public Scene {
+class MadsScene : public Scene, public MadsView {
 private:
 	MadsEngine *_vm;
 	MadsSceneResources _sceneResources;

Modified: scummvm/trunk/engines/m4/mads_views.cpp
===================================================================
--- scummvm/trunk/engines/m4/mads_views.cpp	2010-04-21 09:20:27 UTC (rev 48762)
+++ scummvm/trunk/engines/m4/mads_views.cpp	2010-04-21 10:42:01 UTC (rev 48763)
@@ -237,20 +237,12 @@
 
 //--------------------------------------------------------------------------
 
-MadsView::MadsView(MadsM4Engine *vm, const Common::Rect &viewBounds, bool transparent): View(vm, viewBounds, transparent) {
-}
-
-MadsView::MadsView(MadsM4Engine *vm, int x, int y, bool transparent): View(vm, x, y, transparent) {
-}
-
-void MadsView::onRefresh(RectList *rects, M4Surface *destSurface) {
+void MadsView::refresh(RectList *rects) {
 	// Draw any sprites
-	_spriteSlots.draw(this);
+	_spriteSlots.draw(_view);
 
 	// Draw text elements onto the view
-	_textDisplay.draw(this);
-
-	View::onRefresh(rects, destSurface);
+	_textDisplay.draw(_view);
 }
 
 /*--------------------------------------------------------------------------

Modified: scummvm/trunk/engines/m4/mads_views.h
===================================================================
--- scummvm/trunk/engines/m4/mads_views.h	2010-04-21 09:20:27 UTC (rev 48762)
+++ scummvm/trunk/engines/m4/mads_views.h	2010-04-21 10:42:01 UTC (rev 48763)
@@ -154,16 +154,17 @@
 
 
 
-class MadsView: public View {
+class MadsView {
+private:
+	View *_view;
 public:
 	MadsSpriteSlots _spriteSlots;
 	MadsTextDisplay _textDisplay;
 	ScreenObjects _screenObjects;
 public:
-	MadsView(MadsM4Engine *vm, const Common::Rect &viewBounds, bool transparent = false);
-	MadsView(MadsM4Engine *vm, int x = 0, int y = 0, bool transparent = false);
+	MadsView(View *view): _view(view) {}
 
-	void onRefresh(RectList *rects, M4Surface *destSurface);
+	void refresh(RectList *rects);
 };
 
 #define CHEAT_SEQUENCE_MAX 8

Modified: scummvm/trunk/engines/m4/scene.cpp
===================================================================
--- scummvm/trunk/engines/m4/scene.cpp	2010-04-21 09:20:27 UTC (rev 48762)
+++ scummvm/trunk/engines/m4/scene.cpp	2010-04-21 10:42:01 UTC (rev 48763)
@@ -39,7 +39,7 @@
 
 namespace M4 {
 
-Scene::Scene(MadsM4Engine *vm, SceneResources *res): MadsView(vm, Common::Rect(0, 0, vm->_screen->width(), 
+Scene::Scene(MadsM4Engine *vm, SceneResources *res): View(vm, Common::Rect(0, 0, vm->_screen->width(), 
 			vm->_screen->height())), _sceneResources(res) {
 	_screenType = VIEWID_SCENE;
 

Modified: scummvm/trunk/engines/m4/scene.h
===================================================================
--- scummvm/trunk/engines/m4/scene.h	2010-04-21 09:20:27 UTC (rev 48762)
+++ scummvm/trunk/engines/m4/scene.h	2010-04-21 10:42:01 UTC (rev 48763)
@@ -35,8 +35,6 @@
 #include "m4/viewmgr.h"
 #include "m4/gui.h"
 #include "m4/m4_views.h"
-#include "m4/mads_logic.h"
-#include "m4/mads_views.h"
 #include "common/array.h"
 
 namespace M4 {
@@ -76,7 +74,7 @@
 class MadsEngine;
 class InterfaceView;
 
-class Scene : public MadsView {
+class Scene : public View {
 private:
 	HotSpotList _sceneHotspots;
 protected:


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list