diff --git a/src/dobject.cpp b/src/dobject.cpp index c70a51e9a..ab4f25bf6 100644 --- a/src/dobject.cpp +++ b/src/dobject.cpp @@ -50,6 +50,12 @@ #include "farchive.h" #include "serializer.h" +//========================================================================== +// +// +// +//========================================================================== + ClassReg DObject::RegistrationInfo = { NULL, // MyClass @@ -62,6 +68,12 @@ ClassReg DObject::RegistrationInfo = }; _DECLARE_TI(DObject) +//========================================================================== +// +// +// +//========================================================================== + CCMD (dumpactors) { const char *const filters[32] = @@ -96,6 +108,12 @@ CCMD (dumpactors) } } +//========================================================================== +// +// +// +//========================================================================== + CCMD (dumpclasses) { // This is by no means speed-optimized. But it's an informational console @@ -235,6 +253,12 @@ CCMD (dumpclasses) Printf ("%d classes shown, %d omitted\n", shown, omitted); } +//========================================================================== +// +// +// +//========================================================================== + void DObject::InPlaceConstructor (void *mem) { new ((EInPlace *)mem) DObject; @@ -256,6 +280,12 @@ DObject::DObject (PClass *inClass) GC::Root = this; } +//========================================================================== +// +// +// +//========================================================================== + DObject::~DObject () { if (!PClass::bShutdown) @@ -305,11 +335,23 @@ DObject::~DObject () } } +//========================================================================== +// +// +// +//========================================================================== + void DObject::Destroy () { ObjectFlags = (ObjectFlags & ~OF_Fixed) | OF_EuthanizeMe; } +//========================================================================== +// +// +// +//========================================================================== + size_t DObject::PropagateMark() { const PClass *info = GetClass(); @@ -331,6 +373,12 @@ size_t DObject::PropagateMark() return 0; } +//========================================================================== +// +// +// +//========================================================================== + size_t DObject::PointerSubstitution (DObject *old, DObject *notOld) { const PClass *info = GetClass(); @@ -353,6 +401,12 @@ size_t DObject::PointerSubstitution (DObject *old, DObject *notOld) return changed; } +//========================================================================== +// +// +// +//========================================================================== + size_t DObject::StaticPointerSubstitution (DObject *old, DObject *notOld) { DObject *probe; @@ -418,6 +472,12 @@ size_t DObject::StaticPointerSubstitution (DObject *old, DObject *notOld) return changed; } +//========================================================================== +// +// +// +//========================================================================== + void DObject::SerializeUserVars(FArchive &arc) { PSymbolTable *symt; @@ -480,6 +540,12 @@ void DObject::SerializeUserVars(FArchive &arc) } } +//========================================================================== +// +// +// +//========================================================================== + void DObject::Serialize(FSerializer &arc) { ObjectFlags |= OF_SerialSuccess; diff --git a/src/p_saveg.cpp b/src/p_saveg.cpp index 1b9a0bfab..581d66fd6 100644 --- a/src/p_saveg.cpp +++ b/src/p_saveg.cpp @@ -675,6 +675,7 @@ FSerializer &Serialize(FSerializer &arc, const char *key, subsector_t *&ss, subs if (num_verts == numvertexes && num_subs == numsubsectors && hasglnodes) { success = true; + int sub = 0; for (int i = 0; str[i] != 0; i++) { by = str[i]; @@ -688,6 +689,14 @@ FSerializer &Serialize(FSerializer &arc, const char *key, subsector_t *&ss, subs success = false; break; } + for (int s = 0; s < 6; s++) + { + if (sub + s < numsubsectors && (by & (1 << s))) + { + subsectors[sub + s].flags |= SSECF_DRAWN; + } + } + sub += 6; } } if (hasglnodes && !success)