[Scummvm-cvs-logs] SF.net SVN: scummvm: [26883] scummvm/trunk/engines/lure

dreammaster at users.sourceforge.net dreammaster at users.sourceforge.net
Sun May 20 09:25:54 CEST 2007


Revision: 26883
          http://scummvm.svn.sourceforge.net/scummvm/?rev=26883&view=rev
Author:   dreammaster
Date:     2007-05-20 00:25:53 -0700 (Sun, 20 May 2007)

Log Message:
-----------
Added saving of the room walkable paths

Modified Paths:
--------------
    scummvm/trunk/engines/lure/res.cpp
    scummvm/trunk/engines/lure/res_struct.cpp
    scummvm/trunk/engines/lure/res_struct.h

Modified: scummvm/trunk/engines/lure/res.cpp
===================================================================
--- scummvm/trunk/engines/lure/res.cpp	2007-05-20 07:24:05 UTC (rev 26882)
+++ scummvm/trunk/engines/lure/res.cpp	2007-05-20 07:25:53 UTC (rev 26883)
@@ -650,6 +650,7 @@
 	_randomActions.saveToStream(stream);
 	_barmanLists.saveToStream(stream);
 	_exitJoins.saveToStream(stream);
+	_roomData.saveToStream(stream);
 }
 
 void Resources::loadFromStream(Common::ReadStream *stream) {
@@ -665,6 +666,8 @@
 	_barmanLists.loadFromStream(stream);
 	debugC(ERROR_DETAILED, kLureDebugScripts, "Loading room exit joins");
 	_exitJoins.loadFromStream(stream);
+	debugC(ERROR_DETAILED, kLureDebugScripts, "Loading walkable paths");
+	_roomData.loadFromStream(stream);
 	debugC(ERROR_DETAILED, kLureDebugScripts, "Finished loading");
 }
 

Modified: scummvm/trunk/engines/lure/res_struct.cpp
===================================================================
--- scummvm/trunk/engines/lure/res_struct.cpp	2007-05-20 07:24:05 UTC (rev 26882)
+++ scummvm/trunk/engines/lure/res_struct.cpp	2007-05-20 07:25:53 UTC (rev 26883)
@@ -269,6 +269,29 @@
 		*pOut-- = 0xffff;
 }
 
+// Room data class
+
+void RoomDataList::saveToStream(WriteStream *stream) {
+	RoomDataList::iterator i;
+
+	for (i = begin(); i != end(); ++i) {
+		RoomData *rec = *i;
+		const byte *pathData = rec->paths.data();
+		stream->write(pathData, ROOM_PATHS_HEIGHT * ROOM_PATHS_WIDTH);
+	}
+}
+
+void RoomDataList::loadFromStream(ReadStream *stream) {
+	RoomDataList::iterator i;
+	byte data[ROOM_PATHS_HEIGHT * ROOM_PATHS_WIDTH];
+
+	for (i = begin(); i != end(); ++i) {
+		RoomData *rec = *i;
+		stream->read(data, ROOM_PATHS_HEIGHT * ROOM_PATHS_WIDTH);
+		rec->paths.load(data);
+	}
+}
+
 // Room exit joins class
 
 RoomExitJoinData::RoomExitJoinData(RoomExitJoinResource *rec) {

Modified: scummvm/trunk/engines/lure/res_struct.h
===================================================================
--- scummvm/trunk/engines/lure/res_struct.h	2007-05-20 07:24:05 UTC (rev 26882)
+++ scummvm/trunk/engines/lure/res_struct.h	2007-05-20 07:25:53 UTC (rev 26883)
@@ -310,6 +310,7 @@
 	void load(byte *srcData) {
 		memcpy(_data, srcData, ROOM_PATHS_SIZE);
 	}
+	const byte *data() { return _data; }
 	bool isOccupied(int x, int y);
 	bool isOccupied(int x, int y, int width);
 	void setOccupied(int x, int y, int width);
@@ -339,7 +340,11 @@
 	RoomPathsData paths;
 };
 
-typedef ManagedList<RoomData *> RoomDataList;
+class RoomDataList: public ManagedList<RoomData *> {
+public:
+	void saveToStream(WriteStream *stream);
+	void loadFromStream(ReadStream *stream);
+};
 
 class RoomExitJoinData {
 public:


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