|  | @@ -782,6 +782,9 @@ void tnstouched_Object(tnsObject *o, int hint){
 | 
											
												
													
														|  |      tnsInvalidateEvaluation(o);
 |  |      tnsInvalidateEvaluation(o);
 | 
											
												
													
														|  |      laNotifyUsers("tns.world");
 |  |      laNotifyUsers("tns.world");
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  | 
 |  | +int tnsfilter_SavableObject(void* unused, tnsObject* o){
 | 
											
												
													
														|  | 
 |  | +    if(o->InRoot) return 1; return 0;
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  int tnsget_MeshObjectVertSize(tnsMeshObject* o){ return o->totv*sizeof(tnsVert);/*can't use maxv*/ }
 |  |  int tnsget_MeshObjectVertSize(tnsMeshObject* o){ return o->totv*sizeof(tnsVert);/*can't use maxv*/ }
 | 
											
												
													
														|  |  int tnsget_MeshObjectEdgeSize(tnsMeshObject* o){ return o->tote*sizeof(tnsEdge);/*can't use maxv*/ }
 |  |  int tnsget_MeshObjectEdgeSize(tnsMeshObject* o){ return o->tote*sizeof(tnsEdge);/*can't use maxv*/ }
 | 
											
										
											
												
													
														|  | @@ -976,6 +979,7 @@ void la_RegisterTNSProps(){
 | 
											
												
													
														|  |          laSubGroupDetachable(sp, tnsget_detached_FirstRootObject, laget_ListNext);
 |  |          laSubGroupDetachable(sp, tnsget_detached_FirstRootObject, laget_ListNext);
 | 
											
												
													
														|  |          laAddSubGroup(p, "active_root", "Active Root Object", "Global active root object", "tns_object",0,0,0,offsetof(tnsWorld,ActiveRoot),tnsget_detached_FirstRootObject,0,laget_ListNext,0,0,0,0,LA_UDF_REFER);
 |  |          laAddSubGroup(p, "active_root", "Active Root Object", "Global active root object", "tns_object",0,0,0,offsetof(tnsWorld,ActiveRoot),tnsget_detached_FirstRootObject,0,laget_ListNext,0,0,0,0,LA_UDF_REFER);
 | 
											
												
													
														|  |          sp = laAddSubGroup(p, "objects", "Objects", "List of all objects", "tns_object",tnsget_ObjectType, 0,0,-1,0,0,0,0,0,0,offsetof(tnsWorld, AllObjects), 0);
 |  |          sp = laAddSubGroup(p, "objects", "Objects", "List of all objects", "tns_object",tnsget_ObjectType, 0,0,-1,0,0,0,0,0,0,offsetof(tnsWorld, AllObjects), 0);
 | 
											
												
													
														|  | 
 |  | +        laSubGroupExtraFunctions(sp,tnsfilter_SavableObject,tnsfilter_SavableObject,0,0,0);
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      p = laAddPropertyContainer("tns_child_object", "Child Object", "Child object linker", 0,0,sizeof(laListItemPointer), 0,0,0);{
 |  |      p = laAddPropertyContainer("tns_child_object", "Child Object", "Child object linker", 0,0,sizeof(laListItemPointer), 0,0,0);{
 | 
											
										
											
												
													
														|  | @@ -1204,7 +1208,7 @@ void la_RegisterInternalProps(){
 | 
											
												
													
														|  |              laAddSubGroup(p, "managed_props", "Managed Props", "Managed properties for saving", "managed_prop",0,0,0,-1, 0,0,0,0,0,0,offsetof(LA, ManagedSaveProps), LA_UDF_IGNORE|LA_READ_ONLY);
 |  |              laAddSubGroup(p, "managed_props", "Managed Props", "Managed properties for saving", "managed_prop",0,0,0,-1, 0,0,0,0,0,0,offsetof(LA, ManagedSaveProps), LA_UDF_IGNORE|LA_READ_ONLY);
 | 
											
												
													
														|  |              laAddSubGroup(p, "managed_udfs", "Managed UDFs", "Managed UDFs for saving", "managed_udf", 0,0,laui_ManagedUDFOps, -1, 0,0,0,0,0,0,offsetof(LA, ManagedUDFs), LA_UDF_IGNORE|LA_READ_ONLY);
 |  |              laAddSubGroup(p, "managed_udfs", "Managed UDFs", "Managed UDFs for saving", "managed_udf", 0,0,laui_ManagedUDFOps, -1, 0,0,0,0,0,0,offsetof(LA, ManagedUDFs), LA_UDF_IGNORE|LA_READ_ONLY);
 | 
											
												
													
														|  |              laAddSubGroup(p, "user_preferences", "User Preference", "Kernel Settings For LA Main Structure", "la_user_preference",0,0,0,-1, laget_Main, 0,0,0,0,0,0,LA_UDF_LOCAL);
 |  |              laAddSubGroup(p, "user_preferences", "User Preference", "Kernel Settings For LA Main Structure", "la_user_preference",0,0,0,-1, laget_Main, 0,0,0,0,0,0,LA_UDF_LOCAL);
 | 
											
												
													
														|  | -            laSubGroupExtraFunctions(sp,0,0,0,laget_PanelTemplateCategory);
 |  | 
 | 
											
												
													
														|  | 
 |  | +            laSubGroupExtraFunctions(sp,0,0,0,0,laget_PanelTemplateCategory);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |              laAddSubGroup(p, "themes", "Themes", "Themes Loded In The Program", "theme",0,0,laui_Theme, -1, 0,laget_ActiveTheme, 0,laset_ActiveTheme, 0,0,offsetof(LA,Themes), 0);
 |  |              laAddSubGroup(p, "themes", "Themes", "Themes Loded In The Program", "theme",0,0,laui_Theme, -1, 0,laget_ActiveTheme, 0,laset_ActiveTheme, 0,0,offsetof(LA,Themes), 0);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -1213,7 +1217,7 @@ void la_RegisterInternalProps(){
 | 
											
												
													
														|  |              LA_PROP_CONTROLLER=sp;
 |  |              LA_PROP_CONTROLLER=sp;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |              sp=laAddSubGroup(p, "node_categories", "Node Categories", "Node categories","la_node_category",0,0,0,offsetof(LA,CurrentNodeCategory),0,0,0,0,0,0,offsetof(LA,NodeCategories),0);
 |  |              sp=laAddSubGroup(p, "node_categories", "Node Categories", "Node categories","la_node_category",0,0,0,offsetof(LA,CurrentNodeCategory),0,0,0,0,0,0,offsetof(LA,NodeCategories),0);
 | 
											
												
													
														|  | -            laSubGroupExtraFunctions(sp,lafilter_NodeCategory,0,0,0);
 |  | 
 | 
											
												
													
														|  | 
 |  | +            laSubGroupExtraFunctions(sp,lafilter_NodeCategory,0,0,0,0);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |              laAddSubGroup(p, "input_mapping", "Input Mapping", "Input mapping page collection","la_input_mapping_collection",0,0,0,offsetof(LA,InputMapping),0,0,0,0,0,0,0,LA_UDF_SINGLE);
 |  |              laAddSubGroup(p, "input_mapping", "Input Mapping", "Input mapping page collection","la_input_mapping_collection",0,0,0,offsetof(LA,InputMapping),0,0,0,0,0,0,0,LA_UDF_SINGLE);
 | 
											
												
													
														|  |              
 |  |              
 | 
											
										
											
												
													
														|  | @@ -1629,7 +1633,7 @@ void la_RegisterInternalProps(){
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          p = laAddPropertyContainer("la_animation", "Animation", "Animation data",0,0,sizeof(laAnimation),0,0,1);{
 |  |          p = laAddPropertyContainer("la_animation", "Animation", "Animation data",0,0,sizeof(laAnimation),0,0,1);{
 | 
											
												
													
														|  |              sp = laAddSubGroup(p, "action_holders", "Action Holders", "All action holders","la_animation_action_holder",0,0,0,-1,0,0,0,0,0,0,offsetof(laAnimation,ActionHolders),0);
 |  |              sp = laAddSubGroup(p, "action_holders", "Action Holders", "All action holders","la_animation_action_holder",0,0,0,-1,0,0,0,0,0,0,offsetof(laAnimation,ActionHolders),0);
 | 
											
												
													
														|  | -            laSubGroupExtraFunctions(sp,0,0,0,laget_AnimationActionHolderCategory);
 |  | 
 | 
											
												
													
														|  | 
 |  | +            laSubGroupExtraFunctions(sp,0,0,0,0,laget_AnimationActionHolderCategory);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |              laAddSubGroup(p, "current_action", "Current Action", "Current action","la_animation_action",0,0,0,offsetof(laAnimation,CurrentAction),0,0,0,0,0,0,0,LA_UDF_REFER|LA_READ_ONLY);
 |  |              laAddSubGroup(p, "current_action", "Current Action", "Current action","la_animation_action",0,0,0,offsetof(laAnimation,CurrentAction),0,0,0,0,0,0,0,LA_UDF_REFER|LA_READ_ONLY);
 | 
											
												
													
														|  |              
 |  |              
 |