[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