]> git.mxchange.org Git - simgear.git/blobdiff - simgear/hla/HLAFixedRecordDataElement.cxx
math: Move lerp function into SGMisc.
[simgear.git] / simgear / hla / HLAFixedRecordDataElement.cxx
index c4c0c8b2d6cd4ae9baf0b8038edc9b60cbf713cb..9a0311bdec0a83b2ef8ee1447db031e291c36345 100644 (file)
@@ -120,6 +120,7 @@ HLAFixedRecordDataElement::HLAFixedRecordDataElement(const HLAFixedRecordDataTyp
 
 HLAFixedRecordDataElement::~HLAFixedRecordDataElement()
 {
+    clearStamp();
 }
 
 bool
@@ -181,7 +182,12 @@ HLAFixedRecordDataElement::setField(unsigned index, HLADataElement* value)
 {
     if (getNumFields() <= index)
         return;
+    if (_fieldVector[index].valid())
+        _fieldVector[index]->clearStamp();
     _fieldVector[index] = value;
+    if (value)
+        value->attachStamp(*this);
+    setDirty(true);
 }
 
 void
@@ -190,4 +196,15 @@ HLAFixedRecordDataElement::setField(const std::string& name, HLADataElement* val
     setField(getFieldNumber(name), value);
 }
 
+void
+HLAFixedRecordDataElement::_setStamp(Stamp* stamp)
+{
+    HLAAbstractFixedRecordDataElement::_setStamp(stamp);
+    for (FieldVector::iterator i = _fieldVector.begin(); i != _fieldVector.end(); ++i) {
+        if (!i->valid())
+            continue;
+        (*i)->attachStamp(*this);
+    }
+}
+
 }