private bool InternalTryGetTable(object inContext, StringHash32 inTableId, out VariantTable outTable, bool inbCheckBase) { if (inTableId.IsEmpty) { if (m_DefaultTable != null && m_DefaultTable.IsActive()) { outTable = m_DefaultTable.Resolve(inContext); return(true); } } else { if (m_TableLookup != null) { TableRule tableRule; if (m_TableLookup.TryGetValue(inTableId, out tableRule)) { outTable = tableRule.Resolve(inContext); return(true); } } if (m_GetTableWithContextFallback != null) { outTable = m_GetTableWithContextFallback(inTableId, inContext); if (outTable != null) { return(true); } } if (m_GetTableFallback != null) { outTable = m_GetTableFallback(inTableId); if (outTable != null) { return(true); } } } if (inbCheckBase) { if (m_Base != null) { return(m_Base.TryGetTable(inContext, inTableId, out outTable)); } } outTable = null; return(false); }