diff --git a/Engine/source/T3D/item.cpp b/Engine/source/T3D/item.cpp index 5caf8e5c4..fbc7b7ca6 100644 --- a/Engine/source/T3D/item.cpp +++ b/Engine/source/T3D/item.cpp @@ -457,11 +457,6 @@ void Item::onDeleteNotify( SimObject *obj ) Parent::onDeleteNotify( obj ); } -void Item::inspectPostApply() -{ - setMaskBits(InitialUpdateMask); -} - // Lighting: ----------------------------------------------------------------- void Item::registerLights(LightManager * lightManager, bool lightingScene) @@ -1281,11 +1276,26 @@ DefineEngineMethod( Item, getLastStickyNormal, const char *, (),, //---------------------------------------------------------------------------- +bool Item::_setStatic(void *object, const char *index, const char *data) +{ + Item *i = static_cast(object); + i->mAtRest = false; + i->setMaskBits(InitialUpdateMask | PositionMask); + return true; +} + +bool Item::_setRotate(void *object, const char *index, const char *data) +{ + Item *i = static_cast(object); + i->setMaskBits(InitialUpdateMask | RotationMask); + return true; +} + void Item::initPersistFields() { addGroup("Misc"); - addField("static", TypeBool, Offset(mStatic, Item), "If true, the object is not moving in the world (and will not be updated through the network).\n"); - addField("rotate", TypeBool, Offset(mRotate, Item), "If true, the object will automatically rotate around its Z axis.\n"); + addProtectedField("static", TypeBool, Offset(mStatic, Item), &_setStatic, &defaultProtectedGetFn, "If true, the object is not moving in the world (and will not be updated through the network).\n"); + addProtectedField("rotate", TypeBool, Offset(mRotate, Item), &_setRotate, &defaultProtectedGetFn, "If true, the object will automatically rotate around its Z axis.\n"); endGroup("Misc"); Parent::initPersistFields(); diff --git a/Engine/source/T3D/item.h b/Engine/source/T3D/item.h index b3020009e..27e46fb70 100644 --- a/Engine/source/T3D/item.h +++ b/Engine/source/T3D/item.h @@ -149,7 +149,9 @@ class Item: public ShapeBase bool buildPolyList(PolyListContext context, AbstractPolyList* polyList, const Box3F &box, const SphereF &sphere); void buildConvex(const Box3F& box, Convex* convex); void onDeleteNotify(SimObject*); - void inspectPostApply(); + + static bool _setStatic(void *object, const char *index, const char *data); + static bool _setRotate(void *object, const char *index, const char *data); protected: void _updatePhysics();