ScriptAnyValue GetAnyValue(IMonoObject *pObject) { switch(pObject->GetType()) { case eMonoAnyType_String: return ScriptAnyValue(ToCryString((mono::string)pObject->GetManagedObject())); case eMonoAnyType_Float: case eMonoAnyType_Short: case eMonoAnyType_Integer: return ScriptAnyValue(pObject->Unbox<float>()); case eMonoAnyType_Boolean: return ScriptAnyValue(pObject->Unbox<bool>()); case eMonoAnyType_Vec3: return ScriptAnyValue(pObject->Unbox<Vec3>()); } return ScriptAnyValue(); }
//------------------------------------------------------------------------ //------------------------------------------------------------------------ //------------------------------------------------------------------------ ScriptAnyValue SUIToLuaConversationHelper::UIValueToLuaValue(const TUIData& value, bool& ok) { ok = true; switch ( value.GetType() ) { case eUIDT_Bool: return SUIConvHelperTmpl::GetValueRaw<bool>(value); case eUIDT_Int: return SUIConvHelperTmpl::GetValueRaw<int>(value); case eUIDT_EntityId: return SUIConvHelperTmpl::GetValueRaw<EntityId>(value); case eUIDT_Float: return SUIConvHelperTmpl::GetValueRaw<float>(value); case eUIDT_Vec3: return SUIConvHelperTmpl::GetValueRaw<Vec3>(value); case eUIDT_String: case eUIDT_WString: { string val; if ( value.GetValueWithConversion( val ) ) return ScriptAnyValue( val.c_str() ); } } ok = false; return ScriptAnyValue( false ); }
ScriptAnyValue GetValueRaw(const TUIData& value) { const T* val = value.GetPtr<T>(); assert(val); return ScriptAnyValue(*val); }