Update of /cvsroot/wpdev/wolfpack
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11499
Modified Files:
items.cpp uobject.cpp world.cpp
Log Message:
More binary save features.
Index: items.cpp
===================================================================
RCS file: /cvsroot/wpdev/wolfpack/items.cpp,v
retrieving revision 1.434
retrieving revision 1.435
diff -C2 -d -r1.434 -r1.435
*** items.cpp 15 Aug 2004 02:17:39 -0000 1.434
--- items.cpp 18 Aug 2004 18:33:17 -0000 1.435
***************
*** 2358,2368 ****
void cItem::save( cBufferedWriter& writer )
{
! cUObject::save( writer );
// Save container content
ContainerContent::iterator it = content_.begin();
! for ( ; it != content_.end(); ++it )
! {
! ( *it )->save( writer );
}
}
--- 2358,2367 ----
void cItem::save( cBufferedWriter& writer )
{
! cUObject::save(writer);
// Save container content
ContainerContent::iterator it = content_.begin();
! for (; it != content_.end(); ++it) {
! (*it)->save(writer);
}
}
Index: world.cpp
===================================================================
RCS file: /cvsroot/wpdev/wolfpack/world.cpp,v
retrieving revision 1.115
retrieving revision 1.116
diff -C2 -d -r1.115 -r1.116
*** world.cpp 17 Aug 2004 00:13:50 -0000 1.115
--- world.cpp 18 Aug 2004 18:33:18 -0000 1.116
***************
*** 466,469 ****
--- 466,482 ----
// Special Type for Tags
}
+ else if ( type == 0xFA )
+ {
+ QString spawnregion = reader.readUtf8();
+ SERIAL serial = reader.readInt();
+
+ cSpawnRegion *region = SpawnRegions::instance()->region( spawnregion );
+ cUObject *object = findObject( serial );
+ if (object && region) {
+ object->setSpawnregion(region);
+ } else if (object) {
+ object->remove();
+ }
+ }
else if ( type == 0xFB )
{
***************
*** 752,758 ****
cSpawnRegion *region = SpawnRegions::instance()->region( spawnregion );
cUObject *object = findObject( serial );
! if (object && region)
! {
object->setSpawnregion(region);
}
}
--- 765,772 ----
cSpawnRegion *region = SpawnRegions::instance()->region( spawnregion );
cUObject *object = findObject( serial );
! if (object && region) {
object->setSpawnregion(region);
+ } else if (object) {
+ object->remove();
}
}
Index: uobject.cpp
===================================================================
RCS file: /cvsroot/wpdev/wolfpack/uobject.cpp,v
retrieving revision 1.173
retrieving revision 1.174
diff -C2 -d -r1.173 -r1.174
*** uobject.cpp 15 Aug 2004 02:17:39 -0000 1.173
--- uobject.cpp 18 Aug 2004 18:33:18 -0000 1.174
***************
*** 1070,1073 ****
--- 1070,1080 ----
writer.setSkipSize( getClassid(), length );
+ // Save the spawnregion association
+ if (spawnregion_) {
+ writer.writeByte(0xFA);
+ writer.writeUtf8(spawnregion_->name());
+ writer.writeInt(serial_);
+ }
+
// Save tags for this object
tags_.save( serial_, writer );
|