summaryrefslogtreecommitdiff
path: root/src/project.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/project.cpp')
-rw-r--r--src/project.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/project.cpp b/src/project.cpp
index e8679c8..d371f68 100644
--- a/src/project.cpp
+++ b/src/project.cpp
@@ -29,6 +29,7 @@ const char* const PKE_PROJ_FILE_PROJ_SETTINGS_SCENES_END = "PkeSet::Scenes: ]";
const char* const PKE_PROJ_FILE_ENTITY_TYPE_MODEL_ASSET_KEY = "ModelAssetKey: ";
const char* const PKE_PROJ_FILE_ENTITY_TYPE_ENTITY_TYPE_CODE = "EntityTypeCode: ";
const char* const PKE_PROJ_FILE_ENTITY_TYPE_ENTITY_HANDLE = "EntityHandle: ";
+const char* const PKE_PROJ_FILE_ENTITY_TYPE_UUID = "UUID: ";
const char* const PKE_PROJ_FILE_ENTITY_TYPE_CREATE_INSTANCE_CALLBACK_SIGNATURE = "InstanceCreateCallbackSignature: ";
const char* const PKE_PROJ_FILE_ENTITY_TYPE_COLLISION_CALLBACK_SIGNATURE = "CollisionCallbackSignature: ";
const char* const PKE_PROJ_FILE_ENTITY_TYPE_DETAILS_BEGIN = "EntityHandleDetails: {";
@@ -77,6 +78,9 @@ void Proj_SerializeEntityType(std::ostream &stream, const EntityType &et) {
stream << PKE_PROJ_FILE_ENTITY_TYPE_ENTITY_TYPE_CODE << et.entityTypeCode.val << std::endl;
if (et.handle != e.handle)
stream << PKE_PROJ_FILE_ENTITY_TYPE_ENTITY_HANDLE << handleStr << std::endl;
+ if (et.uuid != pk_uuid_zed && et.uuid != pk_uuid_max) {
+ stream << PKE_PROJ_FILE_ENTITY_TYPE_UUID << et.uuid << std::endl;
+ }
if (et.createInstanceCallback.name[0] != '\0') {
stream << PKE_PROJ_FILE_ENTITY_TYPE_CREATE_INSTANCE_CALLBACK_SIGNATURE << et.createInstanceCallback.name << std::endl;
}
@@ -404,7 +408,11 @@ void PkeProject_Save(const char *filePath) {
}
stream << PKE_PROJ_FILE_END << std::endl;
+ } catch (std::exception e) {
+ fprintf(stderr, "[%s][PkeProject_Save] Failed to serialize project file: %s\n", __FILE__, e.what());
+ failed = false;
} catch (...) {
+ fprintf(stderr, "[%s][PkeProject_Save] Failed to serialize project file, uncaught exception.\n", __FILE__);
failed = false;
}
@@ -412,6 +420,8 @@ void PkeProject_Save(const char *filePath) {
std::ofstream f(saveFilePath);
if (!f.is_open()) {
failed = true;
+ } else {
+ f << stream.str();
}
f.flush();
f.close();