TESVSnip.Domain.Model.Plugin.GetRecordByID C# (CSharp) Method

GetRecordByID() public method

public GetRecordByID ( uint id ) : Record
id uint
return Record
        public Record GetRecordByID(uint id)
        {
            uint pluginid = (id & 0xff000000) >> 24;
            if (pluginid > this.Masters.Length)
            {
                return null;
            }

            Record r;

            // first check self for exact match
            if (this.TryGetRecordByID(id, out r))
            {
                return r;
            }

            id &= 0xffffff;
            if (pluginid >= this.Masters.Length || this.Masters[pluginid] == null)
            {
                return null;
            }

            // find the reference master and search it for reference
            // TODO: in theory another master could override the first master
            id += this.Fixups[pluginid] << 24;
            if (this.Masters[pluginid].TryGetRecordByID(id, out r))
            {
                return r;
            }

            return null;
        }