X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fhla%2FRTIObjectInstance.hxx;h=e3e37b6d27e25d32e48a53c5bcc025f8a91fc2ec;hb=64ce231705b3000e18a69c2b610a10288bff1109;hp=fb8f096a39546324ef7235466149fd9bb6e9deef;hpb=ce71b8c1cf761742ab88975442f4037b5e460114;p=simgear.git diff --git a/simgear/hla/RTIObjectInstance.hxx b/simgear/hla/RTIObjectInstance.hxx index fb8f096a..e3e37b6d 100644 --- a/simgear/hla/RTIObjectInstance.hxx +++ b/simgear/hla/RTIObjectInstance.hxx @@ -50,9 +50,6 @@ public: unsigned getAttributeIndex(const std::string& name) const; std::string getAttributeName(unsigned index) const; - // FIXME: factor out an ambassador base - virtual void addToRequestQueue() = 0; - virtual void deleteObjectInstance(const RTIData& tag) = 0; virtual void deleteObjectInstance(const SGTimeStamp& timeStamp, const RTIData& tag) = 0; virtual void localDeleteObjectInstance() = 0; @@ -136,6 +133,8 @@ public: } else { _attributeData[i].setUpdateEnabled(false); _attributeData[i].setOwned(false); + if (getAttributeSubscribed(i)) + _attributeData[i].setRequestUpdate(true); } } _attributeData.resize(numAttributes); @@ -143,9 +142,13 @@ public: if (getAttributePublished(i)) { _attributeData[i].setUpdateEnabled(true); _attributeData[i].setOwned(owned); + if (!owned && getAttributeSubscribed(i)) + _attributeData[i].setRequestUpdate(true); } else { _attributeData[i].setUpdateEnabled(false); _attributeData[i].setOwned(false); + if (getAttributeSubscribed(i)) + _attributeData[i].setRequestUpdate(true); } } } @@ -213,7 +216,6 @@ public: if (request) { if (!_pendingAttributeUpdateRequest) { _pendingAttributeUpdateRequest = true; - addToRequestQueue(); } } }