示例#1
0
        public List <string> packedItems = new List <string>(); // Display purposes

        public static CACQualities read(BinaryReader binaryReader)
        {
            CACQualities newObj = new CACQualities();

            newObj.CBaseQualities = CBaseQualities.read(binaryReader);
            newObj.header         = binaryReader.ReadUInt32();
            newObj._weenie_type   = (WeenieType)binaryReader.ReadUInt32();
            if ((newObj.header & (uint)QualitiesPackHeader.Packed_AttributeCache) != 0)
            {
                newObj._attribCache = AttributeCache.read(binaryReader);
                newObj.packedItems.Add(QualitiesPackHeader.Packed_AttributeCache.ToString());
            }
            if ((newObj.header & (uint)QualitiesPackHeader.Packed_SkillHashTable) != 0)
            {
                newObj._skillStatsTable = PackableHashTable <STypeSkill, Skill> .read(binaryReader);

                newObj.packedItems.Add(QualitiesPackHeader.Packed_SkillHashTable.ToString());
            }
            if ((newObj.header & (uint)QualitiesPackHeader.Packed_SpellBook) != 0)
            {
                newObj._spell_book = PackableHashTable <uint, float> .read(binaryReader);

                newObj.packedItems.Add(QualitiesPackHeader.Packed_SpellBook.ToString());
            }
            if ((newObj.header & (uint)QualitiesPackHeader.Packed_EnchantmentRegistry) != 0)
            {
                newObj._enchantment_reg = EnchantmentRegistry.read(binaryReader);
                newObj.packedItems.Add(QualitiesPackHeader.Packed_EnchantmentRegistry.ToString());
            }
            return(newObj);
        }
示例#2
0
        public static AppraisalProfile read(BinaryReader binaryReader)
        {
            AppraisalProfile newObj = new AppraisalProfile();

            newObj.header       = binaryReader.ReadUInt32();
            newObj.success_flag = binaryReader.ReadUInt32();
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_IntStats) != 0)
            {
                newObj._intStatsTable = PackableHashTable <STypeInt, int> .read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_Int64Stats) != 0)
            {
                newObj._int64StatsTable = PackableHashTable <STypeInt64, long> .read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_BoolStats) != 0)
            {
                newObj._boolStatsTable = PackableHashTable <STypeBool, int> .read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_FloatStats) != 0)
            {
                newObj._floatStatsTable = PackableHashTable <STypeFloat, double> .read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_StringStats) != 0)
            {
                newObj._strStatsTable = PackableHashTable <STypeString, PStringChar> .read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_DataIDStats) != 0)
            {
                newObj._didStatsTable = PackableHashTable <STypeDID, uint> .read(binaryReader);
            }
            // TODO: Lots more to read here
            return(newObj);
        }
示例#3
0
        public static AllegianceHierarchy read(BinaryReader binaryReader)
        {
            AllegianceHierarchy newObj = new AllegianceHierarchy();

            newObj.packed_nodes         = binaryReader.ReadUInt16();
            newObj.m_oldVersion         = (AllegianceVersion)binaryReader.ReadUInt16();
            newObj.m_AllegianceOfficers = PackableHashTable <uint, uint> .read(binaryReader);

            newObj.m_OfficerTitles = PList <PStringChar> .read(binaryReader);

            newObj.m_monarchBroadcastTime   = binaryReader.ReadInt32();
            newObj.m_monarchBroadcastsToday = binaryReader.ReadUInt32();
            newObj.m_spokesBroadcastTime    = binaryReader.ReadInt32();
            newObj.m_spokesBroadcastsToday  = binaryReader.ReadUInt32();
            newObj.m_motd            = PStringChar.read(binaryReader);
            newObj.m_motdSetBy       = PStringChar.read(binaryReader);
            newObj.m_chatRoomID      = binaryReader.ReadUInt32();
            newObj.m_BindPoint       = Position.read(binaryReader);
            newObj.m_AllegianceName  = PStringChar.read(binaryReader);
            newObj.m_NameLastSetTime = binaryReader.ReadInt32();
            newObj.m_isLocked        = binaryReader.ReadUInt32();
            newObj.m_ApprovedVassal  = binaryReader.ReadUInt32();
            if (newObj.packed_nodes > 0)
            {
                newObj.m_pMonarch = AllegianceNode.read(binaryReader, newObj.packed_nodes);
            }
            return(newObj);
        }
示例#4
0
        public static SendClientContractTrackerTable read(BinaryReader binaryReader)
        {
            SendClientContractTrackerTable newObj = new SendClientContractTrackerTable();

            newObj._contractTrackerHash = PackableHashTable <uint, CContractTracker> .read(binaryReader);

            return(newObj);
        }
示例#5
0
        public List <string> packedItems = new List <string>(); // Display purposes

        public static CBaseQualities read(BinaryReader binaryReader)
        {
            CBaseQualities newObj        = new CBaseQualities();
            var            startPosition = binaryReader.BaseStream.Position;

            newObj.header       = binaryReader.ReadUInt32();
            newObj._weenie_type = (WeenieType)binaryReader.ReadUInt32();
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_IntStats) != 0)
            {
                newObj._intStatsTable = PackableHashTable <STypeInt, int> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_IntStats.ToString());
            }
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_Int64Stats) != 0)
            {
                newObj._int64StatsTable = PackableHashTable <STypeInt64, long> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_Int64Stats.ToString());
            }
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_BoolStats) != 0)
            {
                newObj._boolStatsTable = PackableHashTable <STypeBool, int> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_BoolStats.ToString());
            }
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_FloatStats) != 0)
            {
                newObj._floatStatsTable = PackableHashTable <STypeFloat, double> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_FloatStats.ToString());
            }
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_StringStats) != 0)
            {
                newObj._strStatsTable = PackableHashTable <STypeString, PStringChar> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_StringStats.ToString());
            }
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_DataIDStats) != 0)
            {
                newObj._didStatsTable = PackableHashTable <STypeDID, uint> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_DataIDStats.ToString());
            }
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_IIDStats) != 0)
            {
                newObj._iidStatsTable = PackableHashTable <STypeIID, uint> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_IIDStats.ToString());
            }
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_PositionHashTable) != 0)
            {
                newObj._posStatsTable = PackableHashTable <STypePosition, Position> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_PositionHashTable.ToString());
            }
            newObj.Length = (int)(binaryReader.BaseStream.Position - startPosition);
            return(newObj);
        }
示例#6
0
        public static FellowshipFullUpdate read(BinaryReader binaryReader)
        {
            FellowshipFullUpdate newObj = new FellowshipFullUpdate();

            newObj._fellowship_table = PackableHashTable <uint, Fellow> .read(binaryReader);

            newObj._name             = PStringChar.read(binaryReader);
            newObj._leader           = binaryReader.ReadUInt32();
            newObj._share_xp         = binaryReader.ReadUInt32();
            newObj._even_xp_split    = binaryReader.ReadUInt32();
            newObj._open_fellow      = binaryReader.ReadUInt32();
            newObj._locked           = binaryReader.ReadUInt32();
            newObj._fellows_departed = PackableHashTable <uint, int> .read(binaryReader);

            newObj.unk = PackableHashTable <PStringChar, LockedFellowshipList> .read(binaryReader);

            return(newObj);
        }
示例#7
0
        public static GenericQualitiesData read(BinaryReader binaryReader)
        {
            GenericQualitiesData newObj = new GenericQualitiesData();

            newObj.header = binaryReader.ReadUInt32();
            if ((newObj.header & 0x01) != 0)
            {
                newObj.m_pIntStatsTable = PackableHashTable <STypeInt, int> .read(binaryReader);
            }
            if ((newObj.header & 0x02) != 0)
            {
                newObj.m_pBoolStatsTable = PackableHashTable <STypeBool, int> .read(binaryReader);
            }
            if ((newObj.header & 0x04) != 0)
            {
                newObj.m_pFloatStatsTable = PackableHashTable <STypeFloat, double> .read(binaryReader);
            }
            if ((newObj.header & 0x08) != 0)
            {
                newObj.m_pStrStatsTable = PackableHashTable <uint, PStringChar> .read(binaryReader);
            }
            return(newObj);
        }
示例#8
0
        public static AppraisalProfile read(BinaryReader binaryReader)
        {
            AppraisalProfile newObj = new AppraisalProfile();

            newObj.header       = binaryReader.ReadUInt32();
            newObj.success_flag = binaryReader.ReadUInt32();
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_IntStats) != 0)
            {
                newObj._intStatsTable = PackableHashTable <STypeInt, int> .read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_Int64Stats) != 0)
            {
                newObj._int64StatsTable = PackableHashTable <STypeInt64, long> .read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_BoolStats) != 0)
            {
                newObj._boolStatsTable = PackableHashTable <STypeBool, int> .read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_FloatStats) != 0)
            {
                newObj._floatStatsTable = PackableHashTable <STypeFloat, double> .read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_StringStats) != 0)
            {
                newObj._strStatsTable = PackableHashTable <STypeString, PStringChar> .read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_DataIDStats) != 0)
            {
                newObj._didStatsTable = PackableHashTable <STypeDID, uint> .read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_SpellList) != 0)
            {
                newObj._spellsTable = PList <uint> .read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_ArmorProfile) != 0)
            {
                newObj._armorProfileTable = ArmorProfile.read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_CreatureProfile) != 0)
            {
                newObj._creatureProfileTable = CreatureAppraisalProfile.read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_WeaponProfile) != 0)
            {
                newObj._weaponProfileTable = WeaponProfile.read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_HookProfile) != 0)
            {
                newObj._hookProfileTable = HookAppraisalProfile.read(binaryReader);
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_ArmorEnchant) != 0)
            {
                newObj._armorEnchantment = binaryReader.ReadUInt32();
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_WeaponEnchant) != 0)
            {
                newObj._weaponEnchantment = binaryReader.ReadUInt32();
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_ResistEnchant) != 0)
            {
                newObj._resistEnchantment = binaryReader.ReadUInt32();
            }
            if ((newObj.header & (uint)AppraisalProfilePackHeader.Packed_ArmorLevels) != 0)
            {
                newObj._armorLevelsTable = ArmorLevels.read(binaryReader);
            }
            return(newObj);
        }
示例#9
0
        public static PlayerModule read(BinaryReader binaryReader)
        {
            PlayerModule newObj = new PlayerModule();

            newObj.header   = binaryReader.ReadUInt32();
            newObj.options_ = binaryReader.ReadUInt32();
            if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_ShortCutManager) != 0)
            {
                newObj.shortcuts_ = ShortCutManager.read(binaryReader);
            }
            // TODO: This message often gets fragmented. Need to combine fragments to prevent the reader from creating an exception from trying to read beyond buffer.
            newObj.favorite_spells_[0] = PList <uint> .read(binaryReader);

            if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_MultiSpellLists) != 0)
            {
                for (int i = 1; i < 5; ++i)
                {
                    newObj.favorite_spells_[i] = PList <uint> .read(binaryReader);
                }
            }
            else if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_ExtendedMultiSpellLists) != 0)
            {
                for (int i = 1; i < 7; ++i)
                {
                    newObj.favorite_spells_[i] = PList <uint> .read(binaryReader);
                }
            }
            else if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_8_SpellLists) != 0)
            {
                for (int i = 1; i < 8; ++i)
                {
                    newObj.favorite_spells_[i] = PList <uint> .read(binaryReader);
                }
            }
            if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_DesiredComps) != 0)
            {
                newObj.desired_comps_ = PackableHashTable <uint, int> .read(binaryReader);
            }
            if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_SpellbookFilters) != 0)
            {
                newObj.spell_filters_ = binaryReader.ReadUInt32();
            }
            else
            {
                newObj.spell_filters_ = 0x3FFF;
            }
            if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_2ndCharacterOptions) != 0)
            {
                newObj.options2 = binaryReader.ReadUInt32();
            }
            else
            {
                newObj.options2 = 0x948700;
            }
            if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_TimeStampFormat) != 0)
            {
                newObj.m_TimeStampFormat = PStringChar.read(binaryReader);
            }
            // TODO: Lots more to read here!
            return(newObj);
        }
示例#10
0
        public List <string> packedItems; // For display purposes

        public static PlayerModule read(BinaryReader binaryReader)
        {
            PlayerModule newObj = new PlayerModule();

            newObj.packedItems = new List <string>();
            newObj.header      = binaryReader.ReadUInt32();
            newObj.options_    = binaryReader.ReadUInt32();
            if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_ShortCutManager) != 0)
            {
                newObj.shortcuts_ = ShortCutManager.read(binaryReader);
                newObj.packedItems.Add(PlayerModulePackHeader.PM_Packed_ShortCutManager.ToString());
            }

            newObj.favorite_spells_[0] = PList <SpellID> .read(binaryReader);

            if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_MultiSpellLists) != 0)
            {
                for (int i = 1; i < 5; ++i)
                {
                    newObj.favorite_spells_[i] = PList <SpellID> .read(binaryReader);
                }
                newObj.packedItems.Add(PlayerModulePackHeader.PM_Packed_MultiSpellLists.ToString());
            }
            else if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_ExtendedMultiSpellLists) != 0)
            {
                for (int i = 1; i < 7; ++i)
                {
                    newObj.favorite_spells_[i] = PList <SpellID> .read(binaryReader);
                }
                newObj.packedItems.Add(PlayerModulePackHeader.PM_Packed_ExtendedMultiSpellLists.ToString());
            }
            else if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_8_SpellLists) != 0)
            {
                for (int i = 1; i < 8; ++i)
                {
                    newObj.favorite_spells_[i] = PList <SpellID> .read(binaryReader);
                }
                newObj.packedItems.Add(PlayerModulePackHeader.PM_Packed_8_SpellLists.ToString());
            }
            if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_DesiredComps) != 0)
            {
                newObj.desired_comps_ = PackableHashTable <uint, int> .read(binaryReader);

                newObj.packedItems.Add(PlayerModulePackHeader.PM_Packed_DesiredComps.ToString());
            }
            if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_SpellbookFilters) != 0)
            {
                newObj.spell_filters_ = binaryReader.ReadUInt32();
                newObj.packedItems.Add(PlayerModulePackHeader.PM_Packed_SpellbookFilters.ToString());
            }
            else
            {
                newObj.spell_filters_ = 0x3FFF;
            }
            if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_2ndCharacterOptions) != 0)
            {
                newObj.options2 = binaryReader.ReadUInt32();
                newObj.packedItems.Add(PlayerModulePackHeader.PM_Packed_2ndCharacterOptions.ToString());
            }
            else
            {
                newObj.options2 = 0x948700;
            }
            if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_TimeStampFormat) != 0)
            {
                newObj.m_TimeStampFormat = PStringChar.read(binaryReader);
                newObj.packedItems.Add(PlayerModulePackHeader.PM_Packed_TimeStampFormat.ToString());
            }
            if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_GenericQualitiesData) != 0)
            {
                newObj.m_pPlayerOptionsData = GenericQualitiesData.read(binaryReader);
                newObj.packedItems.Add(PlayerModulePackHeader.PM_Packed_GenericQualitiesData.ToString());
            }
            if ((newObj.header & (uint)PlayerModulePackHeader.PM_Packed_GameplayOptions) != 0)
            {
                newObj.m_colGameplayOptions = PackObjPropertyCollection.read(binaryReader);
                Util.readToAlign(binaryReader); // Align to dword boundary
                newObj.packedItems.Add(PlayerModulePackHeader.PM_Packed_GameplayOptions.ToString());
            }
            return(newObj);
        }