Snapshot Object "Relationships" maintained for Exported Objects and Scenarios Bug Number: n/a Release notes (y/n): Yes For Release Nums: 6.3 Exporting and re-importing Snapshot Objects had not previously been fully supported in RiverWare: the associations of the Snapshot Object's slots with the original slots from which the snapshot was made had not been retained. This was also a problem for the current Scenario enhancements which include a special automatically generated Snapshot Object for the Scenario's outputs. (New scenario files contain a serialized Snapshot Object if the scenario had been run). Both of these limitations have been addressed. In the case of both exported objects and saved scenarios, the snapshot objects "relationships" are written out after the objects standard "entity" values. This results in "snapshotOf" Tcl commands to be included in the serialization. When loading these objects or scenarios, a call to the Snapshot Manager's "resolveCachedSlots" method finalizes the recreation of the "snapshotOf" relationships. Changes to Sim/SimWS.cpp: (1) In SimWorkspace::dumpObjectFile(const QString& filename, const std::set&) const ... after iterating through the given SimObj set to call SimObj::dumpEnt(), a second iteration calls SimObj::dumpRel() only on Snapshot Objects within that list. (2) In these two methods: SimWorkspace::loadObjectFile(const rwFile& ..) SimWorkspace::loadScenarioFile(const rwFile& ..) ... snapShotMgr->resolveCachedSlots() is called as a final step. Changes to Sim/Scenario.cpp: In Scenario::dump(cwostream &os) const ... If the Scenario has an associated Scenario Output Snapshot Object, dump that objects "relationships" as well as its "entities": snapObj->dumpEnt(os); snapObj->dumpRel(os); // <<< ADDED ---