[Scummvm-cvs-logs] CVS: scummvm/scumm actor.h,1.15,1.16 actor.cpp,1.67,1.68

Max Horn fingolfin at users.sourceforge.net
Thu Mar 6 18:44:11 CET 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv5984

Modified Files:
	actor.h actor.cpp 
Log Message:
properly init Actor objects instead of one big evil hackish memset...

Index: actor.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- actor.h	6 Mar 2003 21:45:48 -0000	1.15
+++ actor.h	7 Mar 2003 02:43:21 -0000	1.16
@@ -109,8 +109,22 @@
 
 	// Constructor, sets all data to 0
 	Actor() {
-		memset(this, 0, sizeof(Actor));
-	} void initActorClass(Scumm *scumm) {
+		top = bottom = 0;
+		number = 0;
+		needRedraw = needBgReset = costumeNeedsInit = visible = false;
+		flip = false;
+		frame = 0;
+		walkbox = 0;
+		animProgress = 0;
+		memset(animVariable, 0, sizeof(animVariable));
+		memset(palette, 0, sizeof(palette));
+
+		walk_script = 0;
+
+		initActor(1);
+	}
+	
+	void initActorClass(Scumm *scumm) {
 		_vm = scumm;
 	}
 //protected:

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -d -r1.67 -r1.68
--- actor.cpp	6 Mar 2003 21:45:46 -0000	1.67
+++ actor.cpp	7 Mar 2003 02:43:21 -0000	1.68
@@ -53,14 +53,7 @@
 	talkPosY = 0;
 	scaley = scalex = 0xFF;
 	charset = 0;
-	sound[0] = 0;
-	sound[1] = 0;
-	sound[2] = 0;
-	sound[3] = 0;
-	sound[4] = 0;
-	sound[5] = 0;
-	sound[6] = 0;
-	sound[7] = 0;
+	memset(sound, 0, sizeof(sound));
 	newDirection = 0;
 
 	stopActorMoving();
@@ -74,6 +67,7 @@
 	ignoreBoxes = 0;
 	forceClip = 0;
 	ignoreTurns = false;
+	
 	initFrame = 1;
 	walkFrame = 2;
 	standFrame = 3;
@@ -83,15 +77,14 @@
 	walk_script = 0;
 	talk_script = 0;
 
-	if (_vm->_features & GF_AFTER_V7) {
-		_vm->_classData[number] = _vm->_classData[0];
-	} else {
-		_vm->_classData[number] = 0;
+	if (_vm) {
+		_vm->_classData[number] = (_vm->_features & GF_AFTER_V7) ? _vm->_classData[0] : 0;
 	}
 }
 
 void Actor::stopActorMoving() {
-	_vm->stopScriptNr(walk_script);
+	if (_vm)
+		_vm->stopScriptNr(walk_script);
 	moving = 0;
 }
 





More information about the Scummvm-git-logs mailing list