From e99ffb8307f7c4e501fe47d57ef614df0030673f Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Wed, 4 Mar 2015 16:29:34 -0800 Subject: [PATCH] fix bug in export --- libraries/entities/src/EntityItemProperties.h | 2 ++ libraries/entities/src/EntityItemPropertiesMacros.h | 4 +++- libraries/entities/src/EntityTree.cpp | 2 +- libraries/entities/src/EntityTypes.cpp | 4 +++- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index 12cc50b6ea..9bf3c93c2b 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -253,6 +253,8 @@ inline void EntityItemProperties::setPosition(const glm::vec3& value) inline QDebug operator<<(QDebug debug, const EntityItemProperties& properties) { debug << "EntityItemProperties[" << "\n"; + + debug << " _type:" << properties.getType() << "\n"; // TODO: figure out why position and animationSettings don't seem to like the macro approach if (properties.containsPositionChange()) { diff --git a/libraries/entities/src/EntityItemPropertiesMacros.h b/libraries/entities/src/EntityItemPropertiesMacros.h index 5e04614656..6a8f52719e 100644 --- a/libraries/entities/src/EntityItemPropertiesMacros.h +++ b/libraries/entities/src/EntityItemPropertiesMacros.h @@ -332,10 +332,12 @@ T _##n; \ bool _##n##Changed; +#define DEBUG_PROPERTY(D, P, N, n, x) \ + D << " " << #n << ":" << P.get##N() << x << "[changed:" << P.n##Changed() << "]\n"; + #define DEBUG_PROPERTY_IF_CHANGED(D, P, N, n, x) \ if (P.n##Changed()) { \ D << " " << #n << ":" << P.get##N() << x << "\n"; \ } - #endif // hifi_EntityItemPropertiesMacros_h diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index 8bb759c1b4..978ba43960 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -201,7 +201,7 @@ EntityItem* EntityTree::addEntity(const EntityItemID& entityID, const EntityItem // construct the instance of the entity EntityTypes::EntityType type = properties.getType(); result = EntityTypes::constructEntityItem(type, entityID, properties); - + if (result) { if (recordCreationTime) { result->recordCreationTime(); diff --git a/libraries/entities/src/EntityTypes.cpp b/libraries/entities/src/EntityTypes.cpp index fd9484e0d6..d66df84298 100644 --- a/libraries/entities/src/EntityTypes.cpp +++ b/libraries/entities/src/EntityTypes.cpp @@ -77,7 +77,9 @@ EntityItem* EntityTypes::constructEntityItem(EntityType entityType, const Entity factory = _factories[entityType]; } if (factory) { - newEntityItem = factory(entityID, properties); + EntityItemProperties mutableProperties = properties; + mutableProperties.markAllChanged(); + newEntityItem = factory(entityID, mutableProperties); } return newEntityItem; }