public LangSysRecord GetLangSysRecord(uint i) { LangSysRecord lsr = null; if (i < LangSysCount) { uint offset = m_offsetScriptTable + (uint)FieldOffsets.LangSysRecord + i * 6; lsr = new LangSysRecord(); lsr.LangSysTag = m_bufTable.GetTag(offset); lsr.LangSysOffset = m_bufTable.GetUshort(offset + 4); } return(lsr); }
public LangSysTable_val GetLangSysTable_val(LangSysRecord lsr) { return new LangSysTable_val((ushort)(m_offsetScriptTable + lsr.LangSysOffset), m_bufTable); }
public bool Validate(Validator v, string sIdentity, OTTable table) { bool bRet = true; bool bScriptTableOk = true; // check the DefaultLangSys offset if (DefaultLangSysOffset != 0) { if (m_offsetScriptTable + DefaultLangSysOffset > m_bufTable.GetLength()) { v.Error(T.T_NULL, E._OTL_ScriptTable_E_DefaultLangSysOffset, table.m_tag, sIdentity); bScriptTableOk = false; bRet = false; } else { // check the DefaultLangSys table LangSysTable_val lst = GetDefaultLangSysTable_val(); bRet &= lst.Validate(v, sIdentity + ", DefaultLangSysTable", table); } } // check the LansgSysRecord array length if (m_offsetScriptTable + (uint)FieldOffsets.LangSysRecord + LangSysCount * 6 > m_bufTable.GetLength()) { v.Error(T.T_NULL, E._OTL_ScriptTable_E_LangSysRecordArray_pastEOT, table.m_tag, sIdentity); bScriptTableOk = false; bRet = false; } // check that the LangSysRecord array is sorted alphabetically if (LangSysCount > 1) { for (uint i = 0; i < LangSysCount - 1; i++) { LangSysRecord ThisLsr = GetLangSysRecord(i); LangSysRecord NextLsr = GetLangSysRecord(i + 1); if (ThisLsr.LangSysTag >= NextLsr.LangSysTag) { v.Error(T.T_NULL, E._OTL_ScriptTable_E_LangSysRecordArray_order, table.m_tag, sIdentity); bScriptTableOk = false; bRet = false; } } } // check each LangSysRecord for (uint i = 0; i < LangSysCount; i++) { LangSysRecord lsr = GetLangSysRecord(i); // check the tag if (!lsr.LangSysTag.IsValid()) { v.Error(T.T_NULL, E._OTL_ScriptTable_E_LangSysRecord_tag, table.m_tag, sIdentity + ", LangSysRecord[" + i + "]"); bScriptTableOk = false; bRet = false; } // check the offset if (m_offsetScriptTable + lsr.LangSysOffset > m_bufTable.GetLength()) { v.Error(T.T_NULL, E._OTL_ScriptTable_E_LangSysRecord_offset, table.m_tag, sIdentity + ", LangSysRecord[" + i + "]"); bScriptTableOk = false; bRet = false; } // validate the langsys table LangSysTable_val lst = GetLangSysTable_val(lsr); bRet &= lst.Validate(v, sIdentity + ", LangSysRecord[" + i + "], LangSysTable", table); } if (bScriptTableOk) { v.Pass(T.T_NULL, P._OTL_ScriptTable_P_valid, table.m_tag, sIdentity); } return(bRet); }
public LangSysTable_val GetLangSysTable_val(LangSysRecord lsr) { return(new LangSysTable_val((ushort)(m_offsetScriptTable + lsr.LangSysOffset), m_bufTable)); }
public virtual LangSysTable GetLangSysTable(LangSysRecord lsr) { return new LangSysTable((ushort)(m_offsetScriptTable + lsr.LangSysOffset), m_bufTable); }
public LangSysRecord GetLangSysRecord(uint i) { LangSysRecord lsr = null; if (i < LangSysCount) { uint offset = m_offsetScriptTable + (uint)FieldOffsets.LangSysRecord + i*6; lsr = new LangSysRecord(); lsr.LangSysTag = m_bufTable.GetTag(offset); lsr.LangSysOffset = m_bufTable.GetUshort(offset+4); } return lsr; }
public virtual LangSysTable GetLangSysTable(LangSysRecord lsr) { return(new LangSysTable((ushort)(m_offsetScriptTable + lsr.LangSysOffset), m_bufTable)); }