[Scummvm-cvs-logs] SF.net SVN: scummvm: [26101] scummvm/trunk/engines/scumm

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Mon Mar 12 13:12:00 CET 2007


Revision: 26101
          http://scummvm.svn.sourceforge.net/scummvm/?rev=26101&view=rev
Author:   fingolfin
Date:     2007-03-12 05:11:59 -0700 (Mon, 12 Mar 2007)

Log Message:
-----------
Get rid of initActorClass

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/actor.cpp
    scummvm/trunk/engines/scumm/actor.h
    scummvm/trunk/engines/scumm/scumm.cpp

Modified: scummvm/trunk/engines/scumm/actor.cpp
===================================================================
--- scummvm/trunk/engines/scumm/actor.cpp	2007-03-12 10:16:38 UTC (rev 26100)
+++ scummvm/trunk/engines/scumm/actor.cpp	2007-03-12 12:11:59 UTC (rev 26101)
@@ -42,18 +42,10 @@
 namespace Scumm {
 
 byte Actor::kInvalidBox = 0;
-ScummEngine *Actor::_vm = 0;
 
-void Actor::initActorClass(ScummEngine *scumm) {
-	_vm = scumm;
-	if (_vm->_game.features & GF_SMALL_HEADER) {
-		kInvalidBox = 255;
-	}
-}
-
-Actor::Actor(int id) {
+Actor::Actor(ScummEngine *scumm, int id) :
+	_vm(scumm), _number(id) {
 	assert(_vm != 0);
-	_number = id;
 }
 
 void Actor::initActor(int mode) {
@@ -492,7 +484,6 @@
 
 	_moving &= ~MF_NEW_LEG;
 	do {
-
 		if (_walkbox == kInvalidBox) {
 			setBox(_walkdata.destbox);
 			_walkdata.curbox = _walkdata.destbox;

Modified: scummvm/trunk/engines/scumm/actor.h
===================================================================
--- scummvm/trunk/engines/scumm/actor.h	2007-03-12 10:16:38 UTC (rev 26100)
+++ scummvm/trunk/engines/scumm/actor.h	2007-03-12 12:11:59 UTC (rev 26101)
@@ -77,14 +77,18 @@
 	byte box;
 };
 
+enum {
+	kOldInvalidBox = 255,	// For small header games
+	kNewInavlidBox = 0
+};
+
 class Actor : public Serializable {
-
 public:
 	static byte kInvalidBox;
 
-	static void initActorClass(ScummEngine *scumm);
+protected:
+	ScummEngine *_vm;
 
-protected:
 	/** The position of the actor inside the virtual screen. */
 	Common::Point _pos;
 
@@ -175,11 +179,9 @@
 	ActorWalkData _walkdata;
 	int16 _animVariable[27];
 
-	static ScummEngine *_vm;
-
 public:
 
-	Actor(int id);
+	Actor(ScummEngine *scumm, int id);
 	virtual ~Actor() {}
 
 //protected:
@@ -334,7 +336,7 @@
 
 class Actor_v3 : public Actor {
 public:
-	Actor_v3(int id) : Actor(id) {}
+	Actor_v3(ScummEngine *scumm, int id) : Actor(scumm, id) {}
 
 	virtual void walkActor();
 
@@ -345,7 +347,7 @@
 
 class Actor_v2 : public Actor_v3 {
 public:
-	Actor_v2(int id) : Actor_v3(id) {}
+	Actor_v2(ScummEngine *scumm, int id) : Actor_v3(scumm, id) {}
 
 	virtual void initActor(int mode);
 	virtual void walkActor();
@@ -361,7 +363,7 @@
 	byte _miscflags;
 
 public:
-	ActorC64(int id) : Actor_v2(id) {}
+	ActorC64(ScummEngine *scumm, int id) : Actor_v2(scumm, id) {}
 	virtual void initActor(int mode) {
 		Actor_v2::initActor(mode);
 		if (mode == -1) {

Modified: scummvm/trunk/engines/scumm/scumm.cpp
===================================================================
--- scummvm/trunk/engines/scumm/scumm.cpp	2007-03-12 10:16:38 UTC (rev 26100)
+++ scummvm/trunk/engines/scumm/scumm.cpp	2007-03-12 12:11:59 UTC (rev 26101)
@@ -1295,18 +1295,18 @@
 	_cursor.animate = 1;
 
 	// Allocate and Initialize actors
-	Actor::initActorClass(this);
+	Actor::kInvalidBox = ((_game.features & GF_SMALL_HEADER) ? kOldInvalidBox : kNewInavlidBox);
 	_actors = new Actor * [_numActors];
 	_sortedActors = new Actor * [_numActors];
 	for (i = 0; i < _numActors; ++i) {
 		if (_game.version == 0)
-			_actors[i] = new ActorC64(i);
+			_actors[i] = new ActorC64(this, i);
 		else if (_game.version <= 2)
-			_actors[i] = new Actor_v2(i);
+			_actors[i] = new Actor_v2(this, i);
 		else if (_game.version == 3)
-			_actors[i] = new Actor_v3(i);
+			_actors[i] = new Actor_v3(this, i);
 		else
-			_actors[i] = new Actor(i);
+			_actors[i] = new Actor(this, i);
 		_actors[i]->initActor(-1);
 
 		// this is from IDB


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