[Scummvm-cvs-logs] SF.net SVN: scummvm: [26230] scummvm/trunk/engines/parallaction

peres001 at users.sourceforge.net peres001 at users.sourceforge.net
Sun Mar 18 22:00:23 CET 2007


Revision: 26230
          http://scummvm.svn.sourceforge.net/scummvm/?rev=26230&view=rev
Author:   peres001
Date:     2007-03-18 14:00:22 -0700 (Sun, 18 Mar 2007)

Log Message:
-----------
changed DoorData::_cnv to be a pointer, in view of changes to Disk::loadFrames()

Modified Paths:
--------------
    scummvm/trunk/engines/parallaction/commands.cpp
    scummvm/trunk/engines/parallaction/graphics.cpp
    scummvm/trunk/engines/parallaction/zone.cpp
    scummvm/trunk/engines/parallaction/zone.h

Modified: scummvm/trunk/engines/parallaction/commands.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/commands.cpp	2007-03-18 20:35:12 UTC (rev 26229)
+++ scummvm/trunk/engines/parallaction/commands.cpp	2007-03-18 21:00:22 UTC (rev 26230)
@@ -284,7 +284,7 @@
 
 		case CMD_OPEN:	// open
 			u->_zone->_flags &= ~kFlagsClosed;
-			if (u->_zone->u.door->_cnv._count != 0) {
+			if (u->_zone->u.door->_cnv) {
 				_vm->addJob(&jobToggleDoor, (void*)u->_zone, kPriority18 );
 			}
 			break;
@@ -350,3 +350,4 @@
 } // namespace Parallaction
 
 
+

Modified: scummvm/trunk/engines/parallaction/graphics.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/graphics.cpp	2007-03-18 20:35:12 UTC (rev 26229)
+++ scummvm/trunk/engines/parallaction/graphics.cpp	2007-03-18 21:00:22 UTC (rev 26230)
@@ -521,11 +521,11 @@
 	byte *s = _buffers[kBit2] + x + y * SCREEN_WIDTH;
 	byte *d = data->_background;
 
-	for (uint16 i = 0; i < data->_cnv._height ; i++) {
-		memcpy(d, s, data->_cnv._width);
+	for (uint16 i = 0; i < data->_cnv->_height ; i++) {
+		memcpy(d, s, data->_cnv->_width);
 
 		s += SCREEN_WIDTH;
-		d += data->_cnv._width;
+		d += data->_cnv->_width;
 	}
 
 	return;

Modified: scummvm/trunk/engines/parallaction/zone.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/zone.cpp	2007-03-18 20:35:12 UTC (rev 26229)
+++ scummvm/trunk/engines/parallaction/zone.cpp	2007-03-18 21:00:22 UTC (rev 26230)
@@ -152,7 +152,9 @@
 		case kZoneDoor:
 			free(z->u.door->_location);
 			free(z->u.door->_background);
-			_vm->_gfx->freeCnv(&z->u.door->_cnv);
+			_vm->_gfx->freeCnv(z->u.door->_cnv);
+			if (z->u.door->_cnv)
+				delete z->u.door->_cnv;
 			delete  z->u.door;
 			break;
 
@@ -265,19 +267,19 @@
 			if (!scumm_stricmp(_tokens[0], "file")) {
 //				printf("file: '%s'", _tokens[0]);
 
-				Cnv *doorcnv = &u->door->_cnv;
+				u->door->_cnv = new Cnv;
 				strcpy(vC8, _tokens[1]);
 
 				StaticCnv vE0;
-				_disk->loadFrames(vC8, doorcnv);
+				_disk->loadFrames(vC8, u->door->_cnv);
 
 //				printf("door width: %i, height: %i", doorcnv->_width, doorcnv->_height );
 
-				vE0._width = doorcnv->_width;
-				vE0._height = doorcnv->_height;
+				vE0._width = u->door->_cnv->_width;
+				vE0._height = u->door->_cnv->_height;
 
 				uint16 _ax = (z->_flags & kFlagsClosed ? 0 : 1);
-				vE0._data0 = doorcnv->_array[_ax];
+				vE0._data0 = u->door->_cnv->_array[_ax];
 
 //				_ax = (z->_flags & kFlagsClosed ? 0 : 1);
 //				vE0._data1 = doorcnv->field_8[_ax];
@@ -445,7 +447,7 @@
 	case kZoneDoor:
 		if (z->_flags & kFlagsLocked) break;
 		z->_flags ^= kFlagsClosed;
-		if (z->u.door->_cnv._count == 0) break;
+		if (z->u.door->_cnv == NULL) break;
 		_vm->addJob(&jobToggleDoor, z, kPriority18 );
 		break;
 
@@ -473,20 +475,19 @@
 
 	Zone *z = (Zone*)parm;
 
-	Cnv *v18 = &z->u.door->_cnv;
 	StaticCnv v14;
 
-	if (v18) {
-		v14._width = v18->_width;
-		v14._height = v18->_height;
+	if (z->u.door->_cnv) {
+		v14._width = z->u.door->_cnv->_width;
+		v14._height = z->u.door->_cnv->_height;
 
-		Common::Rect r(z->_left, z->_top, z->_left+v18->_width, z->_top+v18->_height);
+		Common::Rect r(z->_left, z->_top, z->_left+z->u.door->_cnv->_width, z->_top+z->u.door->_cnv->_height);
 
 		_vm->_gfx->restoreZoneBackground(r, z->u.door->_background);
 
 		uint16 _ax = (z->_flags & kFlagsClosed ? 0 : 1);
 
-		v14._data0 = v18->_array[_ax];
+		v14._data0 = z->u.door->_cnv->_array[_ax];
 
 		_vm->_gfx->flatBlitCnv(&v14, z->_left, z->_top, Gfx::kBitBack);
 		_vm->_gfx->flatBlitCnv(&v14, z->_left, z->_top, Gfx::kBit2);

Modified: scummvm/trunk/engines/parallaction/zone.h
===================================================================
--- scummvm/trunk/engines/parallaction/zone.h	2007-03-18 20:35:12 UTC (rev 26229)
+++ scummvm/trunk/engines/parallaction/zone.h	2007-03-18 21:00:22 UTC (rev 26230)
@@ -125,7 +125,7 @@
 };
 struct DoorData {	// size = 28
 	char*	_location;
-	Cnv 	_cnv;
+	Cnv 	*_cnv;
 	byte*	_background;
 	Common::Point	_startPos;
 	uint16	_startFrame;
@@ -134,6 +134,7 @@
 		_location = NULL;
 		_background = NULL;
 		_startFrame = 0;
+		_cnv = NULL;
 	}
 };
 struct HearData {	// size = 20


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