| 2024 | } |
| 2025 | |
| 2026 | bool PersistenceManager::saveDirtyObject(SimObject* object) |
| 2027 | { |
| 2028 | // find our object passed in |
| 2029 | for (U32 i = 0; i < mDirtyObjects.size(); i++) |
| 2030 | { |
| 2031 | const DirtyObject& dirtyObject = mDirtyObjects[i]; |
| 2032 | |
| 2033 | if (dirtyObject.isNull()) |
| 2034 | continue; |
| 2035 | |
| 2036 | if (dirtyObject.getObject() == object) |
| 2037 | { |
| 2038 | // Open our new file and parse it |
| 2039 | bool success = parseFile(dirtyObject.fileName); |
| 2040 | |
| 2041 | if (!success) |
| 2042 | { |
| 2043 | const char *name = object->getName(); |
| 2044 | if (name) |
| 2045 | { |
| 2046 | Con::errorf("PersistenceManager::saveDirtyObject(): Unable to open %s to save %s %s (%d)", |
| 2047 | dirtyObject.fileName, object->getClassName(), name, object->getId()); |
| 2048 | } |
| 2049 | else |
| 2050 | { |
| 2051 | Con::errorf("PersistenceManager::saveDirtyObject(): Unable to open %s to save %s (%d)", |
| 2052 | dirtyObject.fileName, object->getClassName(), object->getId()); |
| 2053 | } |
| 2054 | |
| 2055 | return false; |
| 2056 | } |
| 2057 | |
| 2058 | // if the file exists then lets update and save |
| 2059 | if(mCurrentFile) |
| 2060 | { |
| 2061 | updateObject(object); |
| 2062 | saveDirtyFile(); |
| 2063 | } |
| 2064 | |
| 2065 | break; |
| 2066 | } |
| 2067 | } |
| 2068 | |
| 2069 | // remove this object from the dirty list |
| 2070 | removeDirty(object); |
| 2071 | |
| 2072 | return true; |
| 2073 | } |
| 2074 | |
| 2075 | void PersistenceManager::removeObjectFromFile(SimObject* object, const char* fileName) |
| 2076 | { |