LevelAIDeserializer( LevelDirector & level ) : RootXMLDeserializer( "Level" ) , m_briefingDes( level ) , m_pbpDes( level ) , m_reflectDes( level.m_reflectionParams, XMLDataDeserializer::DataFinisherDelegate( &level, &LevelDirector::SetHasReflection ) ) , m_groundDes( level.m_groundParams, XMLDataDeserializer::DataFinisherDelegate( &level, &LevelDirector::SetHasGround ) ) , m_skyDes( level.m_skyParams ) { SubDeserializer( m_aiDes ); m_aiDes.SetReceiver( level, &LevelDirector::AddProto ); SubDeserializer( m_briefingDes ); SubDeserializer( m_pbpDes ); SubDeserializer( m_reflectDes ); SubDeserializer( m_groundDes ); SubDeserializer( m_skyDes ); Attrib_Value( "Name", false, level.m_name ); Attrib_Value( "TargetObject", false, level.m_targetObjectProto ); Attrib_ConvertedValue( "TX", false, &ConvertTX, level.m_targetObjectX ); Attrib_ConvertedValue( "TY", false, &ConvertTY, level.m_targetObjectY ); Attrib_Value( "SinkLineY", false, level.m_sinkLineY ); Attrib_Value( "SinkPercent", false, level.m_sinkPercent ); Attrib_Value( "MaxObjects", true, level.m_maxObjects ); }
void CMOListBox::SetReceiver(CGXReceiver* pReceiver) { SetReceiver(TryCastReceiver<CMOListBoxReceiver>(pReceiver, NULL)); }
void CMOPropertySheet::SetReceiver(CGXReceiver* pReceiver) { SetReceiver(TryCastReceiver<CMOPropertySheetReceiver>((CMOPropertySheetReceiver*)pReceiver, NULL)); }
void Bind( SAIProto & object ) { Attrib_Value( "Object", false, object.m_objectProto ); Attrib_SetterValue<SAIProto, float>( "Cooldown", false, object, &SAIProto::SetCooldown ); m_interDeser.SetReceiver( object, &SAIProto::AddInterval ); }
void Bind( SAIInterval & object ) { Attrib_SetterValue<SAIInterval, std::string>( "Region", false, object, &SAIInterval::SetRegion ); Attrib_ConvertedValue( "Dir", false, &ParseDirection, object.dir ); m_schemeDes.SetReceiver( object, &SAIInterval::AddScheme ); }