Exemple #1
1
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 1:
				{
					m_House = reader.ReadItem() as BaseHouse;
					goto case 0;
				}
				case 0:
				{
					m_Description = reader.ReadString();
					m_Marked = reader.ReadBool();
					m_Target = reader.ReadPoint3D();
					m_TargetMap = reader.ReadMap();

					CalculateHue();

					break;
				}
			}
		}
 public LocationStruct(GenericReader reader)
 {
     int version = reader.ReadInt();
     Map = reader.ReadMap();
     Location = reader.ReadPoint3D();
     Name = reader.ReadString();
 }
Exemple #3
0
		public void Deserialize( GenericReader reader )
		{
			int version = reader.ReadInt();

			switch ( version )
			{
				case 1:
				{
					m_Flag = reader.ReadItem() as IGameFlag;
					goto case 0;
				}
				case 0:
				{
					m_Members = reader.ReadMobileList();
					m_Home = reader.ReadPoint3D();
					m_FlagHome = reader.ReadPoint3D();
					m_Map = reader.ReadMap();
					m_Points = reader.ReadInt();
					m_Name = reader.ReadString();
					m_Hue = reader.ReadInt();
					m_UId = reader.ReadInt();
					m_Game = reader.ReadItem() as CTFGame;
					break;
				}
			}
		}
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 1:
				case 0:
				{
					m_MultiID = reader.ReadInt();
					m_Offset = reader.ReadPoint3D();
					m_ShipName = reader.ReadString();

					if ( version == 0 )
						reader.ReadUInt();

					break;
				}
			}

			if ( LootType == LootType.Newbied )
				LootType = LootType.Blessed;

			if ( Weight == 0.0 )
				Weight = 1.0;
		}
Exemple #5
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 1:
                    {
                        m_Offset = reader.ReadPoint3D();

                        goto case 0;
                    }
                case 0:
                    {
                        m_MultiID = reader.ReadInt();

                        break;
                    }
            }

            if ( Weight == 0.0 )
            {
                Weight = 1.0;
            }
        }
Exemple #6
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            _respawnLoc = reader.ReadPoint3D();
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            m_Target = reader.ReadPoint3D();
            m_TargetMap = reader.ReadMap();
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            TeleportLocation = reader.ReadPoint3D();
            LocationSet = reader.ReadBool();
            Level = (SecureLevel) reader.ReadInt();
        }
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            m_Active = reader.ReadBool();
            m_PointDest = reader.ReadPoint3D();
            m_MapDest = reader.ReadMap();
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            var version = reader.ReadInt();

            PointDest = reader.ReadPoint3D();
            MapDest = reader.ReadMap();
            Locked = reader.ReadBool();
            Active = reader.ReadBool();
        }
Exemple #11
0
		public override void Deserialize( GenericReader reader )
        {
            base.Deserialize(reader);

			int version = reader.ReadInt();

			switch ( version )
			{
				case 0:
				{
                    m_Home2 = reader.ReadPoint3D();
					break;
				}
			}
        }
Exemple #12
0
		public override void Deserialize( GenericReader reader )
		{
            base.Deserialize(reader);

			int version = reader.ReadInt();

			switch ( version )
			{
				case 1:
				{
					m_Flag = reader.ReadItem() as IGameFlag;
					m_FlagHome = reader.ReadPoint3D();
					break;
				}
			}
		}
Exemple #13
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 1:
				case 0:
				{
					m_Description = reader.ReadString();
					m_Marked = reader.ReadBool();
					m_Target = reader.ReadPoint3D();
					m_TargetMap = reader.ReadMap();

					break;
				}
			}
		}
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();
            switch (version)
            {
                case 2:
                    {
                        m_EventType = (EventType)reader.ReadByte();
                        goto case 1;
                    }
                case 1:
                    {
                        m_TargetLocation = reader.ReadPoint3D();
                        m_TargetMap = reader.ReadMap();
                        break;
                    }
            }
        }
Exemple #15
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize( reader );

                int version = reader.ReadInt();

                switch(version)
                {
                case 0:
                    m_StaffLevel = (AccessLevel)reader.ReadInt();
                    m_HomeLoc = reader.ReadPoint3D();
                    string mapname = reader.ReadString();

                    try{
                    m_HomeMap = Map.Parse(mapname);
                    } catch{}

                    break;
                }
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
                case 2:
                    {
                        m_GameItems = reader.ReadStrongItemList();
                        m_WinnerLocation = reader.ReadPoint3D();
                        goto case 1;
                    }
                case 1:
                    {
                        m_GameArea = reader.ReadRect2D();
                        break;
                    }
            }
        }
Exemple #17
0
        public override void ChildDeserialize(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            switch ( version )
            {
                case 1:
                    {
                        this.m_CorpseLocation = reader.ReadPoint3D();
                        goto case 0;
                    }
                case 0:
                    {
                        this.m_Corpse = (Corpse)reader.ReadItem();
                        break;
                    }
            }

            if (version == 0)
                this.m_CorpseLocation = RandomCorpseLocation();
        }
Exemple #18
0
        public RunebookEntry(GenericReader reader)
        {
            int version = reader.ReadByte();

            switch ( version )
            {
                case 1:
                    {
                        this.m_House = reader.ReadItem() as BaseHouse;
                        goto case 0;
                    }
                case 0:
                    {
                        this.m_Location = reader.ReadPoint3D();
                        this.m_Map = reader.ReadMap();
                        this.m_Description = reader.ReadString();

                        break;
                    }
            }
        }
Exemple #19
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 0:
				{
					m_BombHome = reader.ReadPoint3D();

					m_Duration = reader.ReadTimeSpan();

					m_TeamInfo = new BRTeamInfo[reader.ReadEncodedInt()];

					for ( int i = 0; i < m_TeamInfo.Length; ++i )
						m_TeamInfo[i] = new BRTeamInfo( i, reader );

					break;
				}
			}
		}
Exemple #20
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			m_CurrentAI = (AIType)reader.ReadInt();
			m_DefaultAI = (AIType)reader.ReadInt();

			m_iRangePerception = reader.ReadInt();
			m_iRangeFight = reader.ReadInt();

			m_iTeam = reader.ReadInt();

			m_dActiveSpeed = reader.ReadDouble();
			m_dPassiveSpeed = reader.ReadDouble();
			m_dCurrentSpeed = reader.ReadDouble();

			if ( m_iRangePerception == OldRangePerception )
				m_iRangePerception = DefaultRangePerception;

			m_pHome.X = reader.ReadInt();
			m_pHome.Y = reader.ReadInt();
			m_pHome.Z = reader.ReadInt();

			if ( version >= 1 )
			{
				m_iRangeHome = reader.ReadInt();

				int i, iCount;

				iCount = reader.ReadInt();
				for ( i=0; i< iCount; i++ )
				{
					string str = reader.ReadString();
					Type type = Type.GetType( str );

					if ( type != null )
					{
						m_arSpellAttack.Add( type );
					}
				}

				iCount = reader.ReadInt();
				for ( i=0; i< iCount; i++ )
				{
					string str = reader.ReadString();
					Type type = Type.GetType( str );

					if ( type != null )
					{
						m_arSpellDefense.Add( type );
					}
				}
			}
			else
			{
				m_iRangeHome = 0;
			}

			if ( version >= 2 )
			{
				m_FightMode = ( FightMode )reader.ReadInt();

				m_bControlled = reader.ReadBool();
				m_ControlMaster = reader.ReadMobile();
				m_ControlTarget = reader.ReadMobile();
				m_ControlDest = reader.ReadPoint3D();
				m_ControlOrder = (OrderType) reader.ReadInt();

				m_dMinTameSkill = reader.ReadDouble();

				if ( version < 9 )
					reader.ReadDouble();

				m_bTamable = reader.ReadBool();
				m_bSummoned = reader.ReadBool();

				if ( m_bSummoned )
				{
					m_SummonEnd = reader.ReadDeltaTime();
					new UnsummonTimer( m_ControlMaster, this, m_SummonEnd - DateTime.Now ).Start();
				}

				m_iControlSlots = reader.ReadInt();
			}
			else
			{
				m_FightMode = FightMode.Closest;

				m_bControlled = false;
				m_ControlMaster = null;
				m_ControlTarget = null;
				m_ControlOrder = OrderType.None;
			}

			if ( version >= 3 )
				m_Loyalty = reader.ReadInt();
			else
				m_Loyalty = MaxLoyalty; // Wonderfully Happy

			if ( version >= 4 )
				m_CurrentWayPoint = reader.ReadItem() as WayPoint;

			if ( version >= 5 )
				m_SummonMaster = reader.ReadMobile();

			if ( version >= 6 )
			{
				m_HitsMax = reader.ReadInt();
				m_StamMax = reader.ReadInt();
				m_ManaMax = reader.ReadInt();
				m_DamageMin = reader.ReadInt();
				m_DamageMax = reader.ReadInt();
			}

			if ( version >= 7 )
			{
				m_PhysicalResistance = reader.ReadInt();
				m_PhysicalDamage = reader.ReadInt();

				m_FireResistance = reader.ReadInt();
				m_FireDamage = reader.ReadInt();

				m_ColdResistance = reader.ReadInt();
				m_ColdDamage = reader.ReadInt();

				m_PoisonResistance = reader.ReadInt();
				m_PoisonDamage = reader.ReadInt();

				m_EnergyResistance = reader.ReadInt();
				m_EnergyDamage = reader.ReadInt();
			}

			if ( version >= 8 )
				m_Owners = reader.ReadStrongMobileList();
			else
				m_Owners = new List<Mobile>();

			if ( version >= 10 )
			{
				m_IsDeadPet = reader.ReadBool();
				m_IsBonded = reader.ReadBool();
				m_BondingBegin = reader.ReadDateTime();
				m_OwnerAbandonTime = reader.ReadDateTime();
			}

			if ( version >= 11 )
				m_HasGeneratedLoot = reader.ReadBool();
			else
				m_HasGeneratedLoot = true;

			if ( version >= 12 )
				m_Paragon = reader.ReadBool();
			else
				m_Paragon = false;

			if ( version >= 13 && reader.ReadBool() )
				m_Friends = reader.ReadStrongMobileList();
			else if ( version < 13 && m_ControlOrder >= OrderType.Unfriend )
				++m_ControlOrder;

			if ( version < 16 && Loyalty != MaxLoyalty )
				Loyalty *= 10;

			double activeSpeed = m_dActiveSpeed;
			double passiveSpeed = m_dPassiveSpeed;

			SpeedInfo.GetSpeeds( this, ref activeSpeed, ref passiveSpeed );

			bool isStandardActive = false;
			for ( int i = 0; !isStandardActive && i < m_StandardActiveSpeeds.Length; ++i )
				isStandardActive = ( m_dActiveSpeed == m_StandardActiveSpeeds[i] );

			bool isStandardPassive = false;
			for ( int i = 0; !isStandardPassive && i < m_StandardPassiveSpeeds.Length; ++i )
				isStandardPassive = ( m_dPassiveSpeed == m_StandardPassiveSpeeds[i] );

			if ( isStandardActive && m_dCurrentSpeed == m_dActiveSpeed )
				m_dCurrentSpeed = activeSpeed;
			else if ( isStandardPassive && m_dCurrentSpeed == m_dPassiveSpeed )
				m_dCurrentSpeed = passiveSpeed;

			if ( isStandardActive && !m_Paragon )
				m_dActiveSpeed = activeSpeed;

			if ( isStandardPassive && !m_Paragon )
				m_dPassiveSpeed = passiveSpeed;

			if ( version >= 14 )
			{
				m_RemoveIfUntamed = reader.ReadBool();
				m_RemoveStep = reader.ReadInt();
			}

			TimeSpan deleteTime = TimeSpan.Zero;

			if ( version >= 17 )
				deleteTime = reader.ReadTimeSpan();

			if ( deleteTime > TimeSpan.Zero || LastOwner != null && !Controlled && !IsStabled )
			{
				if ( deleteTime == TimeSpan.Zero )
					deleteTime = TimeSpan.FromDays( 3.0 );

				m_DeleteTimer = new DeleteTimer( this, deleteTime );
				m_DeleteTimer.Start();
			}

			if( version <= 14 && m_Paragon && Hue == 0x31 )
			{
				Hue = Paragon.Hue; //Paragon hue fixed, should now be 0x501.
			}

			CheckStatTimers();

			ChangeAIType(m_CurrentAI);

			AddFollowers();

			if ( IsAnimatedDead )
				Spells.Necromancy.AnimateDeadSpell.Register( m_SummonMaster, this );
		}
Exemple #21
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch( version )
            {

                case 2:
                    {
                        alignment = (Alignment)reader.ReadInt();
                        goto case 1;
                    }

                case 1:
                    {
                        TimeSpan deleteTime = TimeSpan.Zero;

                        if( version >= 1 )
                            deleteTime = reader.ReadTimeSpan();

                        if( deleteTime > TimeSpan.Zero || LastOwner != null && !Controlled && !IsStabled )
                        {
                            if( deleteTime <= TimeSpan.Zero || deleteTime > TimeSpan.FromDays(3.0) )
                                deleteTime = TimeSpan.FromDays(3.0);

                            m_DeleteTimer = new DeleteTimer(this, deleteTime);
                            m_DeleteTimer.Start();
                        }

                        goto case 0;
                    }

                case 0:
                    {
                        m_CurrentAI = (AIType)reader.ReadInt();
                        m_DefaultAI = (AIType)reader.ReadInt();

                        m_iRangePerception = reader.ReadInt();
                        m_iRangeFight = reader.ReadInt();
                        m_iRangeHome = reader.ReadInt();

                        m_iTeam = reader.ReadInt();

                        m_dActiveSpeed = reader.ReadDouble();
                        m_dPassiveSpeed = reader.ReadDouble();
                        m_dCurrentSpeed = reader.ReadDouble();

                        if( m_iRangePerception == OldRangePerception )
                            m_iRangePerception = DefaultRangePerception;

                        m_pHome.X = reader.ReadInt();
                        m_pHome.Y = reader.ReadInt();
                        m_pHome.Z = reader.ReadInt();

                        int i, iCount;

                        iCount = reader.ReadInt();
                        for( i = 0; i < iCount; i++ )
                        {
                            string str = reader.ReadString();
                            Type type = Type.GetType(str);

                            if( type != null )
                            {
                                m_arSpellAttack.Add(type);
                            }
                        }

                        iCount = reader.ReadInt();
                        for( i = 0; i < iCount; i++ )
                        {
                            string str = reader.ReadString();
                            Type type = Type.GetType(str);

                            if( type != null )
                            {
                                m_arSpellDefense.Add(type);
                            }
                        }

                        m_FightMode = (FightMode)reader.ReadInt();
                        m_bControlled = reader.ReadBool();
                        m_ControlMaster = reader.ReadMobile();
                        m_ControlTarget = reader.ReadMobile();
                        m_ControlDest = reader.ReadPoint3D();
                        m_ControlOrder = (OrderType)reader.ReadInt();
                        m_dMinTameSkill = reader.ReadDouble();
                        m_bTamable = reader.ReadBool();
                        m_bSummoned = reader.ReadBool();

                        if( m_bSummoned )
                        {
                            m_SummonEnd = reader.ReadDeltaTime();
                            new UnsummonTimer(m_ControlMaster, this, m_SummonEnd - DateTime.Now).Start();
                        }

                        m_iControlSlots = reader.ReadInt();
                        m_Loyalty = reader.ReadInt();
                        m_CurrentWayPoint = reader.ReadItem() as WayPoint;
                        m_SummonMaster = reader.ReadMobile();
                        m_HitsMax = reader.ReadInt();
                        m_StamMax = reader.ReadInt();
                        m_ManaMax = reader.ReadInt();
                        m_DamageMin = reader.ReadInt();
                        m_DamageMax = reader.ReadInt();
                        m_PhysicalResistance = reader.ReadInt();
                        m_PhysicalDamage = reader.ReadInt();
                        m_FireResistance = reader.ReadInt();
                        m_FireDamage = reader.ReadInt();
                        m_ColdResistance = reader.ReadInt();
                        m_ColdDamage = reader.ReadInt();
                        m_PoisonResistance = reader.ReadInt();
                        m_PoisonDamage = reader.ReadInt();
                        m_EnergyResistance = reader.ReadInt();
                        m_EnergyDamage = reader.ReadInt();
                        m_Owners = reader.ReadStrongMobileList();
                        m_IsDeadPet = reader.ReadBool();
                        m_IsBonded = reader.ReadBool();
                        m_BondingBegin = reader.ReadDateTime();
                        m_OwnerAbandonTime = reader.ReadDateTime();
                        m_HasGeneratedLoot = reader.ReadBool();

                        bool hasFriends = reader.ReadBool();

                        if( hasFriends )
                            m_Friends = reader.ReadStrongMobileList();
                        else
                            m_Friends = new List<Mobile>();

                        m_RemoveIfUntamed = reader.ReadBool();
                        m_RemoveStep = reader.ReadInt();
                        _spawner = reader.ReadItem();
                        _spawnerHome = reader.ReadPoint3D();

                        break;
                    }
            }

            double activeSpeed = m_dActiveSpeed;
            double passiveSpeed = m_dPassiveSpeed;

            SpeedInfo.GetSpeeds(this, ref activeSpeed, ref passiveSpeed);

            bool isStandardActive = false;
            for( int i = 0; !isStandardActive && i < m_StandardActiveSpeeds.Length; ++i )
                isStandardActive = (m_dActiveSpeed == m_StandardActiveSpeeds[i]);

            bool isStandardPassive = false;
            for( int i = 0; !isStandardPassive && i < m_StandardPassiveSpeeds.Length; ++i )
                isStandardPassive = (m_dPassiveSpeed == m_StandardPassiveSpeeds[i]);

            if( isStandardActive && m_dCurrentSpeed == m_dActiveSpeed )
                m_dCurrentSpeed = activeSpeed;
            else if( isStandardPassive && m_dCurrentSpeed == m_dPassiveSpeed )
                m_dCurrentSpeed = passiveSpeed;

            if( isStandardActive )
                m_dActiveSpeed = activeSpeed;

            if( isStandardPassive )
                m_dPassiveSpeed = passiveSpeed;

            if( Core.AOS && NameHue == 0x35 )
                NameHue = -1;

            CheckStatTimers();

            ChangeAIType(m_CurrentAI);

            AddFollowers();
        }
Exemple #22
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            ScoreModifier = 1.0;

            switch (version)
            {
                case 3:
                    {
                        ScoringType = (Scoring) reader.ReadInt();
                        ScoreModifier = reader.ReadDouble();
                        goto case 2;
                    }
                case 2:
                    {
                        m_EventSupplier = reader.ReadItem<EventSupplier>();
                        m_UseSphereRules = reader.ReadBool();
                        m_GiveHorses = reader.ReadBool();
                        goto case 1;
                    }
                case 1:
                    {
                        m_MatchMin = reader.ReadInt();
                        m_LeaveLocation = reader.ReadPoint3D();
                        m_LeaveMap = reader.ReadMap();
                        goto case 0;
                    }
                case 0:
                    {
                        Started = reader.ReadBool();
                        m_Active = reader.ReadBool();
                        m_AcceptingContestants = reader.ReadBool();
                        m_DMSpawnPoints = reader.ReadStrongItemList<DMSpawnPoint>();

                        #region Verify loaded spawn points

                        List<DMSpawnPoint> removalList = new List<DMSpawnPoint>();
                        foreach (DMSpawnPoint dmSpawnPoint in m_DMSpawnPoints)
                            if (dmSpawnPoint.StoneLink != this)
                                removalList.Add(dmSpawnPoint);

                        foreach (DMSpawnPoint dmSpawnPoint in removalList)
                            m_DMSpawnPoints.Remove(dmSpawnPoint);

                        #endregion

                        m_MountCollection = ReadMountCollection(reader);
                        break;
                    }
            }

            m_Started = false;
            AcceptingContestants = false;
            Active = false;
        }
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			m_Active = reader.ReadBool();
			m_TeleDest = reader.ReadItem() as SHTeleComponent;
			m_TeleOffset = reader.ReadPoint3D();
		}
Exemple #24
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            m_Target = reader.ReadPoint3D();
            m_TargetMap = reader.ReadMap();

            if ( version >= 1 )
                m_bDispellable = reader.ReadBool();
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            this.m_Addon = reader.ReadItem() as BaseAddonContainer;
            this.m_Offset = reader.ReadPoint3D();

            if (this.m_Addon != null)
                this.m_Addon.OnComponentLoaded(this);

            AddonComponent.ApplyLightTo(this);
        }
Exemple #26
0
        public virtual void Deserialize(GenericReader reader)
        {
            int version = reader.GetVersion();

            if (version > 4)
            {
                reader.ReadBlock(
                    () =>
                {
                    if (version > 5)
                    {
                        Serial = new PvPSerial(reader);
                    }
                    else
                    {
                        Serial = reader.ReadTypeCreate <PvPSerial>(reader) ?? new PvPSerial(reader);
                        Serial = new PvPSerial();
                    }
                });
            }
            else
            {
                Serial = new PvPSerial();
            }

            switch (version)
            {
            case 6:
            case 5:
            case 4:
            case 3:
                RespawnOnStart = reader.ReadBool();
                goto case 2;

            case 2:
                KickOnDeath = reader.ReadBool();
                goto case 1;

            case 1:
            {
                GateLocation = new MapPoint(reader);
                Gate         = reader.ReadItem <PvPTeamGate>();
            }
                goto case 0;

            case 0:
            {
                Name        = reader.ReadString();
                MinCapacity = reader.ReadInt();
                MaxCapacity = reader.ReadInt();
                Color       = reader.ReadInt();
                HomeBase    = reader.ReadPoint3D();
                SpawnPoint  = reader.ReadPoint3D();

                RespawnOnDeath = reader.ReadBool();
                RespawnDelay   = reader.ReadTimeSpan();

                reader.ReadBlock(() => Statistics = reader.ReadTypeCreate <PvPTeamStatistics>(this) ?? new PvPTeamStatistics(this));
            }
            break;
            }

            if (version < 4)
            {
                RespawnOnStart = true;
            }

            if (version < 1)
            {
                GateLocation = MapPoint.Empty;
            }

            if (Gate != null)
            {
                Gate.Team = this;
            }

            if (Battle == null)
            {
                Delete();
            }
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            this.m_MobFactionArea = new Rectangle3D[0];

            switch (version)
            {
                case 1:
                    {
                        this.m_EjectLocation = reader.ReadPoint3D();
                        string ejectmap = reader.ReadString();
                        try
                        {
                            this.m_EjectMap = Map.Parse(ejectmap);
                        }
                        catch
                        {
                        }

                        string factiontype = reader.ReadString();
                        try
                        {
                            this.m_FactionType = (XmlMobFactions.GroupTypes)Enum.Parse(typeof(XmlMobFactions.GroupTypes), factiontype);
                        }
                        catch
                        {
                        }
                        this.m_FactionLevel = reader.ReadInt();

                        goto case 0;
                    }
                case 0:
                    {
                        this.m_Music = (MusicName)reader.ReadInt();
                        this.m_MobFactionPriority = reader.ReadInt();
                        if (version < 1)
                        {
                            // old region area
                            reader.ReadRect2D();
                        }
                        this.m_MobFactionRegionName = reader.ReadString();
                        string mapname = reader.ReadString();
                        try
                        {
                            this.m_MobFactionMap = Map.Parse(mapname);
                        }
                        catch
                        {
                        }
                        this.m_CopiedRegion = reader.ReadString();
                        // do the coord list
                        int count = reader.ReadInt();
                        if (count > 0)
                        {
                            // the old version used 2D rectangles for the region area.  The new version uses 3D
                            if (version < 1)
                            {
                                Rectangle2D[] area = new Rectangle2D[count];
                                for (int i = 0; i < count; i++)
                                {
                                    area[i] = reader.ReadRect2D();
                                }
                                this.m_MobFactionArea = Region.ConvertTo3D(area);
                            }
                            else
                            {
                                this.m_MobFactionArea = new Rectangle3D[count];
                                for (int i = 0; i < count; i++)
                                {
                                    this.m_MobFactionArea[i] = new Rectangle3D(reader.ReadPoint3D(), reader.ReadPoint3D());
                                }
                            }
                        }

                        break;
                    }
            }

            // refresh the region
            Timer.DelayCall(TimeSpan.Zero, new TimerCallback(RefreshRegions));
        }
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);
			int version = reader.ReadInt();

			switch (version)
			{
                case 29:
					{
						m_GauntletPoints = reader.ReadDouble();

						m_SSNextSeed = reader.ReadDateTime();
						m_SSSeedExpire = reader.ReadDateTime();
						m_SSSeedLocation = reader.ReadPoint3D();
						m_SSSeedMap = reader.ReadMap();

						m_LevelExp = reader.ReadLong();
						m_Exp = reader.ReadLong();
						m_Level = reader.ReadInt();
						m_ExpTitle = reader.ReadString();

						m_VASTotalMonsterFame = reader.ReadInt();

						m_Quests = QuestReader.Quests(reader, this);
						m_Chains = QuestReader.Chains(reader);

						m_Collections = new Dictionary<Collection, int>();
						m_CollectionTitles = new List<object>();

						for (int i = reader.ReadInt(); i > 0; i--)
						{
							m_Collections.Add((Collection)reader.ReadInt(), reader.ReadInt());
						}

						for (int i = reader.ReadInt(); i > 0; i--)
						{
							m_CollectionTitles.Add(QuestReader.Object(reader));
						}

						m_SelectedTitle = reader.ReadInt();

						goto case 28;
					}
				case 28:
					{
						m_PeacedUntil = reader.ReadDateTime();

						goto case 27;
					}
				case 27:
					{
						m_AnkhNextUse = reader.ReadDateTime();

						goto case 26;
					}
				case 26:
					{
						m_AutoStabled = reader.ReadStrongMobileList();

						goto case 25;
					}
				case 25:
					{
						int recipeCount = reader.ReadInt();

						if (recipeCount > 0)
						{
							m_AcquiredRecipes = new Dictionary<int, bool>();

							for (int i = 0; i < recipeCount; i++)
							{
								int r = reader.ReadInt();
								if (reader.ReadBool()) //Don't add in recipies which we haven't gotten or have been removed
								{
									m_AcquiredRecipes.Add(r, true);
								}
							}
						}
						goto case 24;
					}
				case 24:
					{
						m_LastHonorLoss = reader.ReadDeltaTime();
						goto case 23;
					}
				case 23:
					{
						m_ChampionTitles = new ChampionTitleInfo(reader);
						goto case 22;
					}
				case 22:
					{
						m_LastValorLoss = reader.ReadDateTime();
						goto case 21;
					}
				case 21:
					{
						m_ToTItemsTurnedIn = reader.ReadEncodedInt();
						m_ToTTotalMonsterFame = reader.ReadInt();
						goto case 20;
					}
				case 20:
					{
						m_AllianceMessageHue = reader.ReadEncodedInt();
						m_GuildMessageHue = reader.ReadEncodedInt();

						goto case 19;
					}
				case 19:
					{
						int rank = reader.ReadEncodedInt();
						int maxRank = RankDefinition.Ranks.Length - 1;
						if (rank > maxRank)
						{
							rank = maxRank;
						}

						m_GuildRank = RankDefinition.Ranks[rank];
						m_LastOnline = reader.ReadDateTime();
						goto case 18;
					}
				case 18:
					{
						m_SolenFriendship = (SolenFriendship)reader.ReadEncodedInt();

						goto case 17;
					}
				case 17: // changed how DoneQuests is serialized
				case 16:
					{
						m_Quest = QuestSerializer.DeserializeQuest(reader);

						if (m_Quest != null)
						{
							m_Quest.From = this;
						}

						int count = reader.ReadEncodedInt();

						if (count > 0)
						{
							m_DoneQuests = new List<QuestRestartInfo>();

							for (int i = 0; i < count; ++i)
							{
								Type questType = QuestSerializer.ReadType(QuestSystem.QuestTypes, reader);
								DateTime restartTime;

								if (version < 17)
								{
									restartTime = DateTime.MaxValue;
								}
								else
								{
									restartTime = reader.ReadDateTime();
								}

								m_DoneQuests.Add(new QuestRestartInfo(questType, restartTime));
							}
						}

						m_Profession = reader.ReadEncodedInt();
						goto case 15;
					}
				case 15:
					{
						m_LastCompassionLoss = reader.ReadDeltaTime();
						goto case 14;
					}
				case 14:
					{
						m_CompassionGains = reader.ReadEncodedInt();

						if (m_CompassionGains > 0)
						{
							m_NextCompassionDay = reader.ReadDeltaTime();
						}

						goto case 13;
					}
				case 13: // just removed m_PayedInsurance list
				case 12:
					{
						m_BOBFilter = new BOBFilter(reader);
						goto case 11;
					}
				case 11:
					{
						if (version < 13)
						{
							var payed = reader.ReadStrongItemList();

							for (int i = 0; i < payed.Count; ++i)
							{
								payed[i].PayedInsurance = true;
							}
						}

						goto case 10;
					}
				case 10:
					{
						if (reader.ReadBool())
						{
							m_HairModID = reader.ReadInt();
							m_HairModHue = reader.ReadInt();
							m_BeardModID = reader.ReadInt();
							m_BeardModHue = reader.ReadInt();
						}

						goto case 9;
					}
				case 9:
					{
						SavagePaintExpiration = reader.ReadTimeSpan();

						if (SavagePaintExpiration > TimeSpan.Zero)
						{
							BodyMod = (Female ? 184 : 183);
							HueMod = 0;
						}

						goto case 8;
					}
				case 8:
					{
						m_NpcGuild = (NpcGuild)reader.ReadInt();
						m_NpcGuildJoinTime = reader.ReadDateTime();
						m_NpcGuildGameTime = reader.ReadTimeSpan();
						goto case 7;
					}
				case 7:
					{
						m_PermaFlags = reader.ReadStrongMobileList();
						goto case 6;
					}
				case 6:
					{
						NextTailorBulkOrder = reader.ReadTimeSpan();
						goto case 5;
					}
				case 5:
					{
						NextSmithBulkOrder = reader.ReadTimeSpan();
						goto case 4;
					}
				case 4:
					{
						m_LastJusticeLoss = reader.ReadDeltaTime();
						m_JusticeProtectors = reader.ReadStrongMobileList();
						goto case 3;
					}
				case 3:
					{
						m_LastSacrificeGain = reader.ReadDeltaTime();
						m_LastSacrificeLoss = reader.ReadDeltaTime();
						m_AvailableResurrects = reader.ReadInt();
						goto case 2;
					}
				case 2:
					{
						m_Flags = (PlayerFlag)reader.ReadInt();
						goto case 1;
					}
				case 1:
					{
						m_LongTermElapse = reader.ReadTimeSpan();
						m_ShortTermElapse = reader.ReadTimeSpan();
						m_GameTime = reader.ReadTimeSpan();
						goto case 0;
					}
				case 0:
					{
						if (version < 26)
						{
							m_AutoStabled = new List<Mobile>();
						}
						break;
					}
			}

			if (version < 29)
			{
				m_SSNextSeed = m_SSSeedExpire = DateTime.UtcNow;
				m_SSSeedLocation = Point3D.Zero;
			}

			if (m_RecentlyReported == null)
			{
				m_RecentlyReported = new List<Mobile>();
			}

			#region QueensLoyaltySystem
			if (version < 29)
			{
				m_LevelExp = 2000;
				m_Exp = 0;
				m_Level = 0;

				m_ExpTitle = "Friend of TerMur";
			}
			#endregion

			#region Mondain's Legacy
			if (m_Quests == null)
			{
				m_Quests = new List<BaseQuest>();
			}

			if (m_Chains == null)
			{
				m_Chains = new Dictionary<QuestChain, BaseChain>();
			}

			if (m_DoneQuests == null)
			{
				m_DoneQuests = new List<QuestRestartInfo>();
			}

			if (m_Collections == null)
			{
				m_Collections = new Dictionary<Collection, int>();
			}

			if (m_CollectionTitles == null)
			{
				m_CollectionTitles = new List<object>();
			}
			#endregion

			// Professions weren't verified on 1.0 RC0
			if (!CharacterCreation.VerifyProfession(m_Profession))
			{
				m_Profession = 0;
			}

			if (m_PermaFlags == null)
			{
				m_PermaFlags = new List<Mobile>();
			}

			if (m_JusticeProtectors == null)
			{
				m_JusticeProtectors = new List<Mobile>();
			}

			if (m_BOBFilter == null)
			{
				m_BOBFilter = new BOBFilter();
			}

			if (m_GuildRank == null)
			{
				m_GuildRank = RankDefinition.Member;
				//Default to member if going from older version to new version (only time it should be null)
			}

			if (m_LastOnline == DateTime.MinValue && Account != null)
			{
				m_LastOnline = ((Account)Account).LastLogin;
			}

			if (m_ChampionTitles == null)
			{
				m_ChampionTitles = new ChampionTitleInfo();
			}

			var list = Stabled;

			for (int i = 0; i < list.Count; ++i)
			{
				BaseCreature bc = list[i] as BaseCreature;

				if (bc != null)
				{
					bc.IsStabled = true;
					bc.StabledBy = this;
				}
			}

			CheckAtrophies(this);

			if (Hidden) //Hiding is the only buff where it has an effect that's serialized.
			{
				AddBuff(new BuffInfo(BuffIcon.HidingAndOrStealth, 1075655));
			}
		}
Exemple #29
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch(version)
            {
                case 8:
                    {
                        this.m_StartingLoc = reader.ReadPoint3D();
                        try
                        {
                            this.m_StartingMap = Map.Parse(reader.ReadString());
                        }
                        catch
                        {
                        }
                        goto case 7;
                    }
                case 7:
                    {
                        string langstr = reader.ReadString();
                        try
                        {
                            this.m_CurrentLanguage = (LanguageType)Enum.Parse(typeof(LanguageType), langstr);
                        }
                        catch
                        {
                        }
                        goto case 6;
                    }
                case 6:
                    {
                        this.m_ChallengeGame = (BaseChallengeGame)reader.ReadItem();
                        this.m_ChallengeSetup = (BaseChallengeGame)reader.ReadItem();
                        goto case 5;
                    }
                case 5:
                    {
                        TimeSpan remaining = reader.ReadTimeSpan();
                        if (remaining > TimeSpan.Zero)
                        {
                            this.DoTimer(remaining);
                        }
                        goto case 4;
                    }
                case 4:
                    {
                        this.m_ReceiveBroadcasts = reader.ReadBool();
                        goto case 3;
                    }
                case 3:
                    {
                        this.m_Rank = reader.ReadInt();
                        this.m_DeltaRank = reader.ReadInt();
                        this.m_WhenRanked = reader.ReadDateTime();
                        this.m_LastDecay = reader.ReadDateTime();
                        goto case 2;
                    }
                case 2:
                    {
                        this.m_Credits = reader.ReadInt();
                        goto case 1;
                    }
                case 1:
                    {
                        this.m_Broadcast = reader.ReadBool();
                        goto case 0;
                    }
                case 0:
                    {
                        this.m_Points = reader.ReadInt();
                        this.m_Kills = reader.ReadInt();
                        this.m_Deaths = reader.ReadInt();
                        this.m_Challenger = reader.ReadMobile();
                        this.m_LastKill = reader.ReadDateTime();
                        this.m_LastDeath = reader.ReadDateTime();

                        // read in the kill list
                        int count = reader.ReadInt();
                        this.KillList = new ArrayList();
                        for (int i = 0; i < count; i++)
                        {
                            Mobile m = reader.ReadMobile();
                            DateTime t = reader.ReadDateTime();
                            if (m != null && !m.Deleted)
                            {
                                this.KillList.Add(new KillEntry(m,t));
                            }
                        }

                        // get the owner of this in order to rebuild the rankings
                        Mobile killer = reader.ReadMobile();

                        // rebuild the ranking list
                        // if they have never made a kill, then dont rank
                        if (killer != null && this.m_Kills > 0)
                        {
                            UpdateRanking(killer, this);
                        }
                        break;
                    }
            }
        }
Exemple #30
0
			public override void Deserialize( GenericReader reader )
			{
				base.Deserialize( reader );

				int version = reader.ReadInt();

				switch ( version )
				{
					case 0:
					{
						int count = reader.ReadEncodedInt();

						m_Entries = new ArrayList( count );

						for ( int i = 0; i < count; ++i )
						{
							Mobile mob = reader.ReadMobile();
							Point3D loc = reader.ReadPoint3D();
							Map map = reader.ReadMap();

							m_Entries.Add( new ReturnEntry( mob, loc, map ) );
						}

						break;
					}
				}
			}
Exemple #31
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            switch (version)
            {
                case 0:
                    {
                        int count = reader.ReadInt();
                        if (count > 0)
                        {
                            m_Entries = new List<MapTravelEntry>();
                            for (int i = 0; i < count; i++)
                            {
                                try
                                {
                                    m_Entries.Add(new MapTravelEntry(reader.ReadInt(), reader.ReadInt(),
                                        reader.ReadString(), reader.ReadPoint3D(),
                                        reader.ReadMap(), reader.ReadInt(), reader.ReadInt(), reader.ReadInt(),
                                        reader.ReadInt(), reader.ReadBool(), reader.ReadBool()));
                                }
                                catch
                                {
                                }
                            }
                            if (m_Entries.Count != count)
                            {
                                Console.WriteLine("There was an error reading the Map Travel Entries for a Travel Map.");
                            }
                        }
                        else
                        {
                            m_Entries = GetDefaultEntries();
                        }
                        break;
                    }
            }
        }
Exemple #32
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 12:
            {
                if (reader.ReadBool())
                {
                    m_RestoreEquip = reader.ReadStrongItemList();
                }

                goto case 11;
            }

            case 11:
            {
                // Version 11, we move all bools to a CorpseFlag
                m_Flags = (CorpseFlag)reader.ReadInt();

                m_TimeOfDeath = reader.ReadDeltaTime();

                int count = reader.ReadInt();

                for (int i = 0; i < count; ++i)
                {
                    Item item = reader.ReadItem();

                    if (reader.ReadBool())
                    {
                        SetRestoreInfo(item, reader.ReadPoint3D());
                    }
                    else if (item != null)
                    {
                        SetRestoreInfo(item, item.Location);
                    }
                }

                if (reader.ReadBool())
                {
                    BeginDecay(reader.ReadDeltaTime() - DateTime.UtcNow);
                }

                m_Looters = reader.ReadStrongMobileList();
                m_Killer  = reader.ReadMobile();

                m_Aggressors = reader.ReadStrongMobileList();
                m_Owner      = reader.ReadMobile();

                m_CorpseName = reader.ReadString();

                m_AccessLevel = (AccessLevel)reader.ReadInt();
                reader.ReadInt();         // guild reserve
                m_Kills = reader.ReadInt();

                m_EquipItems = reader.ReadStrongItemList();
                break;
            }

            case 10:
            {
                m_TimeOfDeath = reader.ReadDeltaTime();

                goto case 9;
            }

            case 9:
            {
                int count = reader.ReadInt();

                for (int i = 0; i < count; ++i)
                {
                    Item item = reader.ReadItem();

                    if (reader.ReadBool())
                    {
                        SetRestoreInfo(item, reader.ReadPoint3D());
                    }
                    else if (item != null)
                    {
                        SetRestoreInfo(item, item.Location);
                    }
                }

                goto case 8;
            }

            case 8:
            {
                SetFlag(CorpseFlag.VisitedByTaxidermist, reader.ReadBool());

                goto case 7;
            }

            case 7:
            {
                if (reader.ReadBool())
                {
                    BeginDecay(reader.ReadDeltaTime() - DateTime.UtcNow);
                }

                goto case 6;
            }

            case 6:
            {
                m_Looters = reader.ReadStrongMobileList();
                m_Killer  = reader.ReadMobile();

                goto case 5;
            }

            case 5:
            {
                SetFlag(CorpseFlag.Carved, reader.ReadBool());

                goto case 4;
            }

            case 4:
            {
                m_Aggressors = reader.ReadStrongMobileList();

                goto case 3;
            }

            case 3:
            {
                m_Owner = reader.ReadMobile();

                goto case 2;
            }

            case 2:
            {
                SetFlag(CorpseFlag.NoBones, reader.ReadBool());

                goto case 1;
            }

            case 1:
            {
                m_CorpseName = reader.ReadString();

                goto case 0;
            }

            case 0:
            {
                if (version < 10)
                {
                    m_TimeOfDeath = DateTime.UtcNow;
                }

                if (version < 7)
                {
                    BeginDecay(m_DefaultDecayTime);
                }

                if (version < 6)
                {
                    m_Looters = new List <Mobile>();
                }

                if (version < 4)
                {
                    m_Aggressors = new List <Mobile>();
                }

                m_AccessLevel = (AccessLevel)reader.ReadInt();
                reader.ReadInt();         // guild reserve
                m_Kills = reader.ReadInt();
                SetFlag(CorpseFlag.Criminal, reader.ReadBool());

                m_EquipItems = reader.ReadStrongItemList();

                break;
            }
            }
        }