public CVOGReactionText(BinaryReader br, UInt32 mapVersion)
        {
            Type       = br.ReadByte();
            TargetType = br.ReadByte();
            Main       = br.ReadLengthedString();

            uint numParams = br.ReadUInt32();

            for (uint i = 0U; i < numParams; ++i)
            {
                TextParams.Add(TextParam.Read(br, mapVersion));
            }

            uint numChoices = br.ReadUInt32();

            for (uint i = 0U; i < numChoices; ++i)
            {
                var tChoice = new TextChoice
                {
                    TriggerCOID = br.ReadUInt64(),
                    Text        = br.ReadLengthedString(),
                    TextParams  = new List <TextParam>()
                };

                uint numChoiceParams = br.ReadUInt32();
                for (uint j = 0U; j < numChoiceParams; ++j)
                {
                    tChoice.TextParams.Add(TextParam.Read(br, mapVersion));
                }
            }
        }
        public static TextParam Read(BinaryReader br, UInt32 mapVersion)
        {
            var tParam = new TextParam {
                Type = br.ReadByte()
            };

            br.ReadBytes(3);

            tParam.Id          = br.ReadUInt32();
            tParam.CachedValue = mapVersion < 14 ? 0.0f : br.ReadSingle();

            return(tParam);
        }