[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