2011-02-23 10:52:22 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*
  
						 
					
						
							
								
									
										
										
										
											2008-04-16 22:40:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  * * * * *  BEGIN  GPL  LICENSE  BLOCK  * * * * * 
							 
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  program  is  free  software ;  you  can  redistribute  it  and / or 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  modify  it  under  the  terms  of  the  GNU  General  Public  License 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  as  published  by  the  Free  Software  Foundation ;  either  version  2 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-16 22:40:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  of  the  License ,  or  ( at  your  option )  any  later  version . 
							 
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  program  is  distributed  in  the  hope  that  it  will  be  useful , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  but  WITHOUT  ANY  WARRANTY ;  without  even  the  implied  warranty  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE .   See  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  GNU  General  Public  License  for  more  details . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  You  should  have  received  a  copy  of  the  GNU  General  Public  License 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  along  with  this  program ;  if  not ,  write  to  the  Free  Software  Foundation , 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-12 13:34:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Inc . ,  51  Franklin  Street ,  Fifth  Floor ,  Boston ,  MA  02110 - 1301 ,  USA . 
							 
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  The  Original  Code  is  Copyright  ( C )  2001 - 2002  by  NaN  Holding  BV . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  All  rights  reserved . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  The  Original  Code  is :  all  of  this  file . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Contributor ( s ) :  none  yet . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-16 22:40:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  * * * * *  END  GPL  LICENSE  BLOCK  * * * * * 
							 
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-25 13:30:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/** \file gameengine/Converter/KX_ConvertProperties.cpp
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ ingroup  bgeconv 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# include  "KX_ConvertProperties.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "DNA_object_types.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "DNA_property_types.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* end of blender include block */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-06 13:20:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# include  "Value.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "VectorValue.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "BoolValue.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "StringValue.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "FloatValue.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "KX_GameObject.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "IntValue.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SCA_TimeEventManager.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SCA_IScene.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-01-04 21:40:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "KX_FontObject.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "DNA_curve_types.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-09-06 13:20:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/* This little block needed for linking to Blender... */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# ifdef WIN32 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "BLI_winstuff.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-01-05 06:34:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								extern  " C "  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# include  "BKE_property.h" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-01-04 21:40:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* prototype */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  BL_ConvertTextProperty ( Object *  object ,  KX_FontObject *  fontobj , SCA_TimeEventManager *  timemgr , SCA_IScene *  scene ,  bool  isInActiveLayer ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								void  BL_ConvertProperties ( Object *  object , KX_GameObject *  gameobj , SCA_TimeEventManager *  timemgr , SCA_IScene *  scene ,  bool  isInActiveLayer )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									bProperty *  prop  =  ( bProperty * ) object - > prop . first ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									CValue *  propval ; 	
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									bool  show_debug_info ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									while ( prop ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										propval  =  NULL ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										show_debug_info  =  bool  ( prop - > flag  &  PROP_DEBUG ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										switch ( prop - > type )  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-24 21:23:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											case  GPROP_BOOL : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												propval  =  new  CBoolValue ( ( bool ) ( prop - > data  ! =  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												gameobj - > SetProperty ( prop - > name , propval ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												//promp->poin= &prop->data;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  GPROP_INT : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												propval  =  new  CIntValue ( ( int ) prop - > data ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												gameobj - > SetProperty ( prop - > name , propval ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  GPROP_FLOAT : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												//prop->poin= &prop->data;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												float  floatprop  =  * ( ( float * ) & prop - > data ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												propval  =  new  CFloatValue ( floatprop ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												gameobj - > SetProperty ( prop - > name , propval ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-24 21:23:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											case  GPROP_STRING : 
							 
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-24 21:23:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												//prop->poin= callocN(MAX_PROPSTRING, "property string");
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												propval  =  new  CStringValue ( ( char * ) prop - > poin , " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												gameobj - > SetProperty ( prop - > name , propval ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-24 21:23:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											case  GPROP_TIME : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												float  floatprop  =  * ( ( float * ) & prop - > data ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-24 21:23:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												CValue *  timeval  =  new  CFloatValue ( floatprop ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												// set a subproperty called 'timer' so that 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												// we can register the replica of this property 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												// at the time a game object is replicated (AddObjectActuator triggers this)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												CValue  * bval  =  new  CBoolValue ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												timeval - > SetProperty ( " timer " , bval ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												bval - > Release ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( isInActiveLayer ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													timemgr - > AddTimeProperty ( timeval ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												propval  =  timeval ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												gameobj - > SetProperty ( prop - > name , timeval ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												// todo make an assert etc.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( propval ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( show_debug_info ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												scene - > AddDebugProperty ( gameobj , STR_String ( prop - > name ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-01 19:46:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											// done with propval, release it
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											propval - > Release ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2009-06-08 20:08:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										
							 
						 
					
						
							
								
									
										
										
										
											2010-10-31 04:11:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# ifdef WITH_PYTHON 
  
						 
					
						
							
								
									
										
										
										
											2009-06-08 20:08:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										/* Warn if we double up on attributes, this isnt quite right since it wont find inherited attributes however there arnt many */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for ( PyAttributeDef  * attrdef  =  KX_GameObject : : Attributes ;  attrdef - > m_name ;  attrdef + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if ( strcmp ( prop - > name ,  attrdef - > m_name ) = = 0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												printf ( " Warning! user defined property name  \" %s \"  is also a python attribute for object  \" %s \" \n \t Use ob[ \" %s \" ] syntax to avoid conflict \n " ,  prop - > name ,  object - > id . name + 2 ,  prop - > name ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for ( PyMethodDef  * methdef  =  KX_GameObject : : Methods ;  methdef - > ml_name ;  methdef + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if ( strcmp ( prop - > name ,  methdef - > ml_name ) = = 0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												printf ( " Warning! user defined property name  \" %s \"  is also a python method for object  \" %s \" \n \t Use ob[ \" %s \" ] syntax to avoid conflict \n " ,  prop - > name ,  object - > id . name + 2 ,  prop - > name ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										/* end warning check */ 
							 
						 
					
						
							
								
									
										
										
										
											2010-10-31 04:11:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# endif  // WITH_PYTHON
  
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										prop  =  prop - > next ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-25 16:19:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// check if state needs to be debugged
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( object - > scaflag  &  OB_DEBUGSTATE ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										//  reserve name for object state
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										scene - > AddDebugProperty ( gameobj , STR_String ( " __state__ " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-04 21:40:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* Font Objects need to 'copy' the Font Object data body to ["Text"] */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( object - > type  = =  OB_FONT ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										BL_ConvertTextProperty ( object ,  ( KX_FontObject  * ) gameobj ,  timemgr ,  scene ,  isInActiveLayer ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2002-10-12 11:37:38 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2012-01-04 21:40:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								void  BL_ConvertTextProperty ( Object *  object ,  KX_FontObject *  fontobj , SCA_TimeEventManager *  timemgr , SCA_IScene *  scene ,  bool  isInActiveLayer )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									CValue *  tprop  =  fontobj - > GetProperty ( " Text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if ( ! tprop )  return ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-05 06:34:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									bProperty *  prop  =  get_ob_property ( object ,  " Text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if ( ! prop )  return ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-04 21:40:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Curve  * curve  =  static_cast < Curve  * > ( object - > data ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									STR_String  str  =  curve - > str ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-05 06:34:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									CValue *  propval  =  NULL ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-04 21:40:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-01-05 06:34:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									switch ( prop - > type )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										case  GPROP_BOOL : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											int  value  =  atoi ( str ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											propval  =  new  CBoolValue ( ( bool ) ( value  ! =  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											tprop - > SetValue ( propval ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-04 21:40:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-05 06:34:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										case  GPROP_INT : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											int  value  =  atoi ( str ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											propval  =  new  CIntValue ( value ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											tprop - > SetValue ( propval ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										case  GPROP_FLOAT : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											float  floatprop  =  atof ( str ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											propval  =  new  CFloatValue ( floatprop ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											tprop - > SetValue ( propval ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										case  GPROP_STRING : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											propval  =  new  CStringValue ( str ,  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											tprop - > SetValue ( propval ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										case  GPROP_TIME : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											float  floatprop  =  atof ( str ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											CValue *  timeval  =  new  CFloatValue ( floatprop ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// set a subproperty called 'timer' so that
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// we can register the replica of this property
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// at the time a game object is replicated (AddObjectActuator triggers this)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											CValue  * bval  =  new  CBoolValue ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											timeval - > SetProperty ( " timer " , bval ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											bval - > Release ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( isInActiveLayer ) 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-04 21:40:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-05 06:34:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												timemgr - > AddTimeProperty ( timeval ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-04 21:40:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-01-05 06:34:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											propval  =  timeval ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											tprop - > SetValue ( timeval ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-04 21:40:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-05 06:34:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// todo make an assert etc.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-04 21:40:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2012-01-05 06:34:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  ( propval )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										propval - > Release ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-04 21:40:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}