예제 #1
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 2:
				{
					m_Level = reader.ReadInt();
					goto case 1;
				}
				case 1:
				{
					m_TargetMap = reader.ReadMap();
					break;
				}
				case 0:
				{
					m_TargetMap = Map.Trammel;
					break;
				}
			}

			if ( version < 2 )
				m_Level = GetRandomLevel();
		}
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();
			m_Level = reader.ReadInt();
			m_TargetMap = reader.ReadMap();
		}
예제 #3
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			m_Point = reader.ReadPoint3D();
			m_Map = reader.ReadMap();
		}
예제 #4
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            /*int version = */
            reader.ReadInt();

            m_MapDest = reader.ReadMap();
            m_LocDest = reader.ReadPoint3D();
        }
예제 #5
0
        private void Deserialize(GenericReader reader)
        {
            int version = reader.ReadInt();

            switch (version)
            {
            case 0:
            {
                _Map      = reader.ReadMap();
                _Location = reader.ReadPoint3D();
                break;
            }
            }
        }
예제 #6
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);

			int version = reader.ReadInt();

			switch (version)
			{
				case 0:
					ToLocation = reader.ReadPoint3D();
					ToMap = reader.ReadMap();
					break;
			}
		}
예제 #7
0
파일: Place.cs 프로젝트: jasegiffin/JustUO
		private void Deserialize(GenericReader reader)
		{
			int version = reader.ReadInt();

			switch (version)
			{
				case 0:
					{
						_Map = reader.ReadMap();
						_Location = reader.ReadPoint3D();
						break;
					}
			}
		}
예제 #8
0
        public void Load( GenericReader reader )
        {
            int version = reader.ReadInt();

            if ( version >= 1 )
            {
                c_Hue = reader.ReadInt();
                c_Name = reader.ReadString();
            }

            c_TypeString = reader.ReadString();
            c_ItemID = reader.ReadInt();
            c_Location = reader.ReadPoint3D();
            c_Map = reader.ReadMap();
        }
예제 #9
0
        public PeerlessInstance( GenericReader reader )
        {
            m_Owner = reader.ReadItem<PeerlessPlatform>();
            m_Light = reader.ReadItem();
            m_Map = reader.ReadMap();
            m_EntranceLocation = reader.ReadPoint3D();
            m_BossSpawnLocation = reader.ReadPoint3D();
            m_RegionBounds = reader.ReadRect2D();

            Mobile boss = reader.ReadMobile();

            if ( boss != null )
                boss.Delete();

            Initialize();
        }
예제 #10
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadEncodedInt();
			Point = reader.ReadPoint2D();
			Range = reader.ReadInt();
			Map = reader.ReadMap();

			int count = reader.ReadInt();
			Messages = new string[ count ];

			for ( int i = 0; i < count; i++ )
				Messages[i] = reader.ReadString();

			OnMessage = reader.ReadInt();
		}	
예제 #11
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 0:
                    {
                        m_DestLoc = reader.ReadPoint3D();
                        m_DestMap = reader.ReadMap();
                        m_Charges = reader.ReadInt();
                        break;
                    }
            }
        }
예제 #12
0
파일: Rune.cs 프로젝트: Crome696/ServUO
        // Legacy... binary serialization only used in v1.00, deserialization preserved to migrate data.
        public static SR_Rune Deserialize(GenericReader reader, int version)
        {
            SR_Rune rune = null;

            string name = reader.ReadString();
            bool isRunebook = reader.ReadBool();

            Map targetMap = reader.ReadMap();
            Point3D targetLoc = reader.ReadPoint3D();

            if (isRunebook)
                rune = new SR_Rune(name, isRunebook);
            else
                rune = new SR_Rune(name, targetMap, targetLoc);

            int count = reader.ReadInt();
            for (int i = 0; i < count; i++)
                rune.AddRune(SR_Rune.Deserialize(reader, version));

            return rune;
        }
예제 #13
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 1:
				{
					m_CompletedBy = reader.ReadMobile();

					goto case 0;
				}
				case 0:
				{
					m_Level = (int)reader.ReadInt();
					m_Completed = reader.ReadBool();
					m_Decoder = reader.ReadMobile();
					m_Map = reader.ReadMap();
					m_Location = reader.ReadPoint2D();

					if ( version == 0 && m_Completed )
						m_CompletedBy = m_Decoder;

					break;
				}
			}

			if ( Core.AOS && m_Decoder != null && LootType == LootType.Regular)
				LootType = LootType.Blessed;
		}
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 0:
				{
					m_PlotLocation = reader.ReadPoint3D();
					m_Facet = reader.ReadMap();
					m_AwardedTo = reader.ReadMobile();

					break;
				}
			}
		}
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			
			int version = reader.ReadInt();
			
			_Level = reader.ReadInt();
			_MessageIndex = reader.ReadInt();
			_TargetMap = reader.ReadMap();
			_TargetLocation = reader.ReadPoint3D();
		}
예제 #16
0
 public EGEntry(GenericReader reader)
 {
     m_Location    = reader.ReadPoint3D();
     m_Map         = reader.ReadMap();
     m_Description = reader.ReadString();
 }
예제 #17
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
                case 1:
                    {
                        goto case 0;
                    }
                case 0:
                    {
                        m_Level = (int)reader.ReadInt();
                        m_Map = reader.ReadMap();
                        m_Location = reader.ReadPoint2D();

                        //					if ( version == 0 && m_Completed )
                        //						m_CompletedBy = m_Decoder;

                        break;
                    }
            }
        }
예제 #18
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;
					}
				}
			}
예제 #19
0
		public Arena( GenericReader reader )
		{
			int version = reader.ReadEncodedInt();

			switch ( version )
			{
				case 7:
				{
					m_IsGuarded = reader.ReadBool();

					goto case 6;
				}
				case 6:
				{
					m_Ladder = reader.ReadItem() as LadderController;

					goto case 5;
				}
				case 5:
				{
					m_Tournament = reader.ReadItem() as TournamentController;
					m_Announcer = reader.ReadMobile();

					goto case 4;
				}
				case 4:
				{
					m_Name = reader.ReadString();

					goto case 3;
				}
				case 3:
				{
					m_Zone = reader.ReadRect2D();

					goto case 2;
				}
				case 2:
				{
					m_GateIn = reader.ReadPoint3D();
					m_GateOut = reader.ReadPoint3D();
					m_Teleporter = reader.ReadItem();

					goto case 1;
				}
				case 1:
				{
					m_Players = reader.ReadStrongMobileList();

					goto case 0;
				}
				case 0:
				{
					m_Facet = reader.ReadMap();
					m_Bounds = reader.ReadRect2D();
					m_Outside = reader.ReadPoint3D();
					m_Wall = reader.ReadPoint3D();

					if ( version == 0 )
					{
						reader.ReadBool();
						m_Players = new List<Mobile>();
					}

					m_Active = reader.ReadBool();
					m_Points = new ArenaStartPoints( reader );

					if ( m_Active )
					{
						m_Arenas.Add( this );
						m_Arenas.Sort();
					}

					break;
				}
			}

			if ( m_Zone.Start != Point2D.Zero && m_Zone.End != Point2D.Zero && m_Facet != null )
				m_Region = new SafeZone( m_Zone, m_Outside, m_Facet, m_IsGuarded );

			if ( IsOccupied )
				Timer.DelayCall( TimeSpan.FromSeconds( 2.0 ), new TimerCallback( Evict ) );

			if ( m_Tournament != null )
				Timer.DelayCall( TimeSpan.Zero, new TimerCallback( AttachToTournament_Sandbox ) );
		}
예제 #20
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 1:
				{
					m_Stone = reader.ReadItem<HouseRaffleStone>();

					goto case 0;
				}
				case 0:
				{
					m_PlotLocation = reader.ReadPoint3D();
					m_Facet = reader.ReadMap();
					m_AwardedTo = reader.ReadMobile();

					break;
				}
			}
		}
예제 #21
0
		public override void Deserialize( GenericReader reader ) {
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch( version ) {
				case 6: {
						_minZ = reader.ReadInt();
						_maxZ = reader.ReadInt();

						goto case 5;
					}
				case 5: {
						m_EditAccessLevel = (AccessLevel)reader.ReadInt();

						goto case 4;
					}
				case 4: {
						m_RegionArea = ReadRect3DArray( reader );

						m_Flags = (RegionFlag)reader.ReadInt();

						m_RestrictedSpells = ReadBitArray( reader );
						m_RestrictedSkills = ReadBitArray( reader );

						m_Active = reader.ReadBool();

						m_RegionName = reader.ReadString();
						m_RegionPriority = reader.ReadInt();
						m_Music = (MusicName)reader.ReadInt();
						m_PlayerLogoutDelay = reader.ReadTimeSpan();
						m_LightLevel = reader.ReadInt();

						if( version <= 4 ) {
							reader.ReadMap();
							reader.ReadPoint3D();
							reader.ReadMap();
							reader.ReadPoint3D();
						}

						break;
					}
				case 3: //pre-RunUO 2.0
					{
						m_LightLevel = reader.ReadInt();
						goto case 2;
					}
				case 2: {
						m_Music = (MusicName)reader.ReadInt();
						goto case 1;
					}
				case 1: {
						List<Rectangle2D> rects2d = ReadRect2DArray( reader );
						foreach( Rectangle2D rect in rects2d ) {
							Rectangle3D newrect = Server.Region.ConvertTo3D( rect );
							DoChooseArea( null, this.Map, newrect.Start, newrect.End, this );
						}

						m_RegionPriority = reader.ReadInt();
						m_PlayerLogoutDelay = reader.ReadTimeSpan();

						m_RestrictedSpells = ReadBitArray( reader );
						m_RestrictedSkills = ReadBitArray( reader );

						m_Flags = (RegionFlag)reader.ReadInt();

						m_RegionName = reader.ReadString();
						break;
					}
				case 0: {
						List<Rectangle2D> rects2d = ReadRect2DArray( reader );
						foreach( Rectangle2D rect in rects2d ) {
							Rectangle3D newrect = Server.Region.ConvertTo3D( rect );
							DoChooseArea( null, this.Map, newrect.Start, newrect.End, this );
						}

						m_RestrictedSpells = ReadBitArray( reader );
						m_RestrictedSkills = ReadBitArray( reader );

						m_Flags = (RegionFlag)reader.ReadInt();

						m_RegionName = reader.ReadString();
						break;
					}
			}

			m_AllControls.Add( this );

			if( RegionNameTaken( m_RegionName ) )
				m_RegionName = FindNewName( m_RegionName );

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

			m_DestLoc = reader.ReadPoint3D();
			m_DestMap = reader.ReadMap();
			m_AllowCreatures = reader.ReadBool();
			m_TelePets = reader.ReadBool();
		}
예제 #23
0
        public static bool Deserialize( GenericReader reader )
        {
            bool success = false;

            Map map = null;
            Point3D location = new Point3D();

            MegaSpawner megaSpawner = new MegaSpawner( true );

            try
            {
                int version = reader.ReadInt();

                if ( version >= 1 )
                {
                    location = reader.ReadPoint3D();
                    map = reader.ReadMap();
                    megaSpawner.Active = reader.ReadBool();

                    megaSpawner.Imported = reader.ReadString();
                    megaSpawner.ImportVersion = reader.ReadString();
                    megaSpawner.ContainerSpawn = (Container) reader.ReadItem();
                    megaSpawner.Workspace = reader.ReadBool();

                    int count = reader.ReadInt();

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.EntryList.Add( reader.ReadString() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.SpawnRangeList.Add( reader.ReadInt() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.WalkRangeList.Add( reader.ReadInt() );

                    for ( int i = 0; i < count; i++ )
                    {
                        int amount = reader.ReadInt();

                        if ( amount == 0 )
                            amount = 1;

                        megaSpawner.AmountList.Add( amount );
                    }

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.MinDelayList.Add( reader.ReadInt() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.MaxDelayList.Add( reader.ReadInt() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.SpawnTypeList.Add( reader.ReadInt() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.ActivatedList.Add( reader.ReadBool() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.EventRangeList.Add( reader.ReadInt() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.EventKeywordList.Add( reader.ReadString() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.KeywordCaseSensitiveList.Add( reader.ReadBool() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.TriggerEventNowList.Add( reader.ReadBool() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.EventAmbushList.Add( reader.ReadBool() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.BeginTimeBasedList.Add( reader.ReadInt() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.EndTimeBasedList.Add( reader.ReadInt() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.GroupSpawnList.Add( reader.ReadBool() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.MinStackAmountList.Add( reader.ReadInt() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.MaxStackAmountList.Add( reader.ReadInt() );

                    for ( int i = 0; i < count; i++ )
                        megaSpawner.MovableList.Add( reader.ReadBool() );

                    if ( version >= 2 )
                    {
                        for ( int i = 0; i < count; i++ )
                            megaSpawner.MinDespawnList.Add( reader.ReadInt() );

                        for ( int i = 0; i < count; i++ )
                            megaSpawner.MaxDespawnList.Add( reader.ReadInt() );

                        for ( int i = 0; i < count; i++ )
                            megaSpawner.DespawnList.Add( reader.ReadBool() );

                        for ( int i = 0; i < count; i++ )
                            megaSpawner.DespawnGroupList.Add( reader.ReadBool() );

                        for ( int i = 0; i < count; i++ )
                            megaSpawner.DespawnTimeExpireList.Add( reader.ReadBool() );
                    }
                    else
                    {
                        for ( int i = 0; i < count; i++ )
                            megaSpawner.MinDespawnList.Add( 1800 );

                        for ( int i = 0; i < count; i++ )
                            megaSpawner.MaxDespawnList.Add( 3600 );

                        for ( int i = 0; i < count; i++ )
                            megaSpawner.DespawnList.Add( (bool) false );

                        for ( int i = 0; i < count; i++ )
                            megaSpawner.DespawnGroupList.Add( (bool) false );

                        for ( int i = 0; i < count; i++ )
                            megaSpawner.DespawnTimeExpireList.Add( (bool) true );
                    }

                    int settingsCount = reader.ReadInt();

                    if ( version >= 3 )
                    {
                        for ( int i = 0; i < settingsCount; i++ )
                        {
                            ArrayList List = new ArrayList();

                            Setting setting = (Setting) reader.ReadInt();

                            List.Add( setting );

                            switch ( setting )
                            {
                                case Setting.OverrideIndividualEntries:
                                {
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadBool() );
                                    List.Add( reader.ReadBool() );
                                    List.Add( (SpawnType) reader.ReadInt() );
                                    List.Add( reader.ReadString() );
                                    List.Add( reader.ReadBool() );
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadBool() );
                                    List.Add( reader.ReadBool() );
                                    List.Add( reader.ReadBool() );

                                    break;
                                }
                                case Setting.AddItem:
                                {
                                    List.Add( reader.ReadString() );
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadString() );
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadInt() );

                                    break;
                                }
                                case Setting.AddContainer:
                                {
                                    List.Add( reader.ReadString() );
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadString() );
                                    List.Add( reader.ReadInt() );
                                    List.Add( reader.ReadInt() );

                                    int settingCount = reader.ReadInt();

                                    for ( int j = 6; j < settingCount; j++ )
                                    {
                                        ArrayList ItemsList = new ArrayList();

                                        ItemsList.Add( reader.ReadString() );
                                        ItemsList.Add( reader.ReadInt() );
                                        ItemsList.Add( reader.ReadInt() );

                                        List.Add( ItemsList );
                                    }

                                    break;
                                }
                            }

                            megaSpawner.SettingsList.Add( List );
                        }
                    }
                    else
                    {
                        for ( int i = 0; i < settingsCount; i++ )
                            megaSpawner.SettingsList.Add( reader.ReadString() );

                        megaSpawner.ConvertOldSettings();
                    }
                }

                if ( megaSpawner.Workspace )
                {
                    megaSpawner.Delete();
                }
                else
                {
                    megaSpawner.MoveToWorld( location, map );
                    megaSpawner.Start();

                    if ( megaSpawner.Imported != "" )
                        MC.FileImportAdd( megaSpawner.Imported, megaSpawner.ImportVersion );

                    megaSpawner.CompileSettings();
                    megaSpawner.CheckEntryErrors();

                    megaSpawner.SettingsList.Sort( new MC.SettingsSorter() );

                    if ( megaSpawner.OverrideIndividualEntries )
                    {
                        for ( int i = 0; i < megaSpawner.OverrideAmount; i++ )
                        {
                            megaSpawner.OverrideRespawnEntryList.Add( "" );
                            megaSpawner.OverrideRespawnTimeList.Add( 0 );
                            megaSpawner.OverrideSpawnCounterList.Add( DateTime.Now );
                            megaSpawner.OverrideSpawnTimeList.Add( 0 );
                            megaSpawner.OverrideDespawnTimeList.Add( 0 );
                        }
                    }
                    else
                    {
                        for ( int i = 0; i < megaSpawner.EntryList.Count; i++ )
                        {
                            ArrayList respawnEntryList = new ArrayList();
                            ArrayList respawnTimeList = new ArrayList();
                            ArrayList spawnCounterList = new ArrayList();
                            ArrayList spawnTimeList = new ArrayList();
                            ArrayList respawnOnSaveList = new ArrayList();
                            ArrayList despawnTimeList = new ArrayList();

                            for ( int j = 0; j < (int) megaSpawner.AmountList[i]; j++ )
                            {
                                respawnEntryList.Add( (string) megaSpawner.EntryList[i] );
                                respawnTimeList.Add( 0 );
                                spawnCounterList.Add( DateTime.Now );
                                spawnTimeList.Add( 0 );
                                respawnOnSaveList.Add( (bool) false );
                                despawnTimeList.Add( 0 );
                            }

                            megaSpawner.RespawnEntryList.Add( respawnEntryList );
                            megaSpawner.RespawnTimeList.Add( respawnTimeList );
                            megaSpawner.SpawnCounterList.Add( spawnCounterList );
                            megaSpawner.SpawnTimeList.Add( spawnTimeList );
                            megaSpawner.RespawnOnSaveList.Add( respawnOnSaveList );
                            megaSpawner.DespawnTimeList.Add( despawnTimeList );
                            megaSpawner.SpawnedEntries.Add( new ArrayList() );
                            megaSpawner.LastMovedList.Add( new ArrayList() );
                        }
                    }

                    megaSpawner.Respawn();
                }

                success = true;
            }
            catch
            {
                if ( megaSpawner != null )
                    megaSpawner.Delete();
            }

            return success;
        }
예제 #24
0
        public virtual void Deserialize( GenericReader reader )
        {
            int version = reader.ReadInt();

            SetLastMoved();

            switch ( version )
            {
                case 7:
                case 6:
                {
                    SaveFlag flags = (SaveFlag)reader.ReadInt();

                    if ( version < 7 )
                    {
                        LastMoved = reader.ReadDeltaTime();
                    }
                    else
                    {
                        int minutes = reader.ReadEncodedInt();

                        try{ LastMoved = Core.Now - TimeSpan.FromMinutes( minutes ); }
                        catch{ LastMoved = Core.Now; }
                    }

                    if ( GetSaveFlag( flags, SaveFlag.Direction ) )
                        m_Direction = (Direction)reader.ReadByte();

                    if ( GetSaveFlag( flags, SaveFlag.Bounce ) )
                        m_Bounce = BounceInfo.Deserialize( reader );

                    if ( GetSaveFlag( flags, SaveFlag.LootType ) )
                        m_LootType = (LootType)reader.ReadByte();

                    int x = 0, y = 0, z = 0;

                    if ( GetSaveFlag( flags, SaveFlag.LocationFull ) )
                    {
                        x = reader.ReadEncodedInt();
                        y = reader.ReadEncodedInt();
                        z = reader.ReadEncodedInt();
                    }
                    else
                    {
                        if ( GetSaveFlag( flags, SaveFlag.LocationByteXY ) )
                        {
                            x = reader.ReadByte();
                            y = reader.ReadByte();
                        }
                        else if ( GetSaveFlag( flags, SaveFlag.LocationShortXY ) )
                        {
                            x = reader.ReadShort();
                            y = reader.ReadShort();
                        }

                        if ( GetSaveFlag( flags, SaveFlag.LocationSByteZ ) )
                            z = reader.ReadSByte();
                    }

                    m_Location = new Point3D( x, y, z );

                    if ( GetSaveFlag( flags, SaveFlag.ItemID ) )
                        m_ItemID = reader.ReadEncodedInt();

                    if ( GetSaveFlag( flags, SaveFlag.Hue ) )
                        m_Hue = reader.ReadEncodedInt();

                    if ( GetSaveFlag( flags, SaveFlag.Amount ) )
                        m_Amount = reader.ReadEncodedInt();
                    else
                        m_Amount = 1;

                    if ( GetSaveFlag( flags, SaveFlag.Layer ) )
                        m_Layer = (Layer)reader.ReadByte();

                    if ( GetSaveFlag( flags, SaveFlag.Name ) )
                        m_Name = string.Intern(reader.ReadString());

                    if ( GetSaveFlag( flags, SaveFlag.Parent ) )
                    {
                        Serial parent = reader.ReadInt();

                        if ( parent.IsMobile )
                            m_Parent = World.FindMobile( parent );
                        else if ( parent.IsItem )
                            m_Parent = World.FindItem( parent );
                        else
                            m_Parent = null;

                        if ( m_Parent == null && (parent.IsMobile || parent.IsItem) )
                            Delete();
                    }

                    if ( GetSaveFlag( flags, SaveFlag.Items ) )
                        m_Items = reader.ReadItemList();
                    //else
                    //	m_Items = new ArrayList( 1 );

                    if ( GetSaveFlag( flags, SaveFlag.IntWeight ) )
                        m_Weight = reader.ReadEncodedInt();
                    else if ( GetSaveFlag( flags, SaveFlag.WeightNot1or0 ) )
                        m_Weight = reader.ReadDouble();
                    else if ( GetSaveFlag( flags, SaveFlag.WeightIs0 ) )
                        m_Weight = 0.0;
                    else
                        m_Weight = 1.0;

                    if ( GetSaveFlag( flags, SaveFlag.Map ) )
                        m_Map = reader.ReadMap();
                    else
                        m_Map = Map.Internal;

                    if ( GetSaveFlag( flags, SaveFlag.Visible ) )
                        SetFlag( ImplFlag.Visible, reader.ReadBool() );
                    else
                        SetFlag( ImplFlag.Visible, true );

                    if ( GetSaveFlag( flags, SaveFlag.Movable ) )
                        SetFlag( ImplFlag.Movable, reader.ReadBool() );
                    else
                        SetFlag( ImplFlag.Movable, true );

                    if ( GetSaveFlag( flags, SaveFlag.Stackable ) )
                        SetFlag( ImplFlag.Stackable, reader.ReadBool() );

                    if ( GetSaveFlag( flags, SaveFlag.ImplFlags ) )
                        m_Flags = (ImplFlag)reader.ReadEncodedInt();

                    if ( GetSaveFlag( flags, SaveFlag.InsuredFor ) )
                        /*m_InsuredFor = */reader.ReadMobile();

                    if ( GetSaveFlag( flags, SaveFlag.BlessedFor ) )
                        m_BlessedFor = reader.ReadMobile();

                    if ( GetSaveFlag( flags, SaveFlag.HeldBy ) )
                        m_HeldBy = reader.ReadMobile();

                    if ( GetSaveFlag( flags, SaveFlag.SavedFlags ) )
                        m_SavedFlags = reader.ReadEncodedInt();

                    if ( m_Map != null && m_Parent == null )
                        m_Map.OnEnter( this );

                    break;
                }
                case 5:
                {
                    SaveFlag flags = (SaveFlag)reader.ReadInt();

                    LastMoved = reader.ReadDeltaTime();

                    if ( GetSaveFlag( flags, SaveFlag.Direction ) )
                        m_Direction = (Direction)reader.ReadByte();

                    if ( GetSaveFlag( flags, SaveFlag.Bounce ) )
                        m_Bounce = BounceInfo.Deserialize( reader );

                    if ( GetSaveFlag( flags, SaveFlag.LootType ) )
                        m_LootType = (LootType)reader.ReadByte();

                    if ( GetSaveFlag( flags, SaveFlag.LocationFull ) )
                        m_Location = reader.ReadPoint3D();

                    if ( GetSaveFlag( flags, SaveFlag.ItemID ) )
                        m_ItemID = reader.ReadInt();

                    if ( GetSaveFlag( flags, SaveFlag.Hue ) )
                        m_Hue = reader.ReadInt();

                    if ( GetSaveFlag( flags, SaveFlag.Amount ) )
                        m_Amount = reader.ReadInt();
                    else
                        m_Amount = 1;

                    if ( GetSaveFlag( flags, SaveFlag.Layer ) )
                        m_Layer = (Layer)reader.ReadByte();

                    if ( GetSaveFlag( flags, SaveFlag.Name ) )
                        m_Name = string.Intern(reader.ReadString());

                    if ( GetSaveFlag( flags, SaveFlag.Parent ) )
                    {
                        Serial parent = reader.ReadInt();

                        if ( parent.IsMobile )
                            m_Parent = World.FindMobile( parent );
                        else if ( parent.IsItem )
                            m_Parent = World.FindItem( parent );
                        else
                            m_Parent = null;

                        if ( m_Parent == null && (parent.IsMobile || parent.IsItem) )
                            Delete();
                    }

                    if ( GetSaveFlag( flags, SaveFlag.Items ) )
                        m_Items = reader.ReadItemList();
                    //else
                    //	m_Items = new ArrayList( 1 );

                    if ( GetSaveFlag( flags, SaveFlag.IntWeight ) )
                        m_Weight = reader.ReadEncodedInt();
                    else if ( GetSaveFlag( flags, SaveFlag.WeightNot1or0 ) )
                        m_Weight = reader.ReadDouble();
                    else if ( GetSaveFlag( flags, SaveFlag.WeightIs0 ) )
                        m_Weight = 0.0;
                    else
                        m_Weight = 1.0;

                    if ( GetSaveFlag( flags, SaveFlag.Map ) )
                        m_Map = reader.ReadMap();
                    else
                        m_Map = Map.Internal;

                    if ( GetSaveFlag( flags, SaveFlag.Visible ) )
                        SetFlag( ImplFlag.Visible, reader.ReadBool() );
                    else
                        SetFlag( ImplFlag.Visible, true );

                    if ( GetSaveFlag( flags, SaveFlag.Movable ) )
                        SetFlag( ImplFlag.Movable, reader.ReadBool() );
                    else
                        SetFlag( ImplFlag.Movable, true );

                    if ( GetSaveFlag( flags, SaveFlag.Stackable ) )
                        SetFlag( ImplFlag.Stackable, reader.ReadBool() );

                    if ( m_Map != null && m_Parent == null )
                        m_Map.OnEnter( this );

                    break;
                }
                case 4: // Just removed variables
                case 3:
                {
                    m_Direction = (Direction)reader.ReadInt();

                    goto case 2;
                }
                case 2:
                {
                    m_Bounce = BounceInfo.Deserialize( reader );
                    LastMoved = reader.ReadDeltaTime();

                    goto case 1;
                }
                case 1:
                {
                    m_LootType = (LootType) reader.ReadByte();//m_Newbied = reader.ReadBool();

                    goto case 0;
                }
                case 0:
                {
                    m_Location = reader.ReadPoint3D();
                    m_ItemID = reader.ReadInt();
                    m_Hue = reader.ReadInt();
                    m_Amount = reader.ReadInt();
                    m_Layer = (Layer) reader.ReadByte();
                    m_Name = reader.ReadString();
                    if (m_Name != null)
                        m_Name = string.Intern(m_Name);

                    Serial parent = reader.ReadInt();

                    if ( parent.IsMobile )
                        m_Parent = World.FindMobile( parent );
                    else if ( parent.IsItem )
                        m_Parent = World.FindItem( parent );
                    else
                        m_Parent = null;

                    if ( m_Parent == null && (parent.IsMobile || parent.IsItem) )
                        Delete();

                    int count = reader.ReadInt();

                    if ( count > 0 )
                    {
                        m_Items = new ArrayList( count );

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

                            if ( item != null )
                                m_Items.Add( item );
                        }
                    }

                    m_Weight = reader.ReadDouble();

                    if ( version <= 3 )
                    {
                        /*m_TotalItems =*/ reader.ReadInt();
                        /*m_TotalWeight =*/ reader.ReadInt();
                        /*m_TotalGold =*/ reader.ReadInt();
                    }

                    m_Map = reader.ReadMap();
                    SetFlag( ImplFlag.Visible, reader.ReadBool() );
                    SetFlag( ImplFlag.Movable, reader.ReadBool() );

                    if ( version <= 3 )
                        /*m_Deleted =*/ reader.ReadBool();

                    Stackable = reader.ReadBool();

                    if ( m_Map != null && m_Parent == null )
                        m_Map.OnEnter( this );

                    break;
                }
            }

            if ( m_HeldBy != null )
                Timer.DelayCall( TimeSpan.Zero, new TimerCallback( FixHolding_Sandbox ) );
        }
예제 #25
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 3:
				{
					m_CombatCheck = reader.ReadBool();
					goto case 2;
				}
				case 2:
				{
					m_SourceEffect = reader.ReadBool();
					m_DestEffect = reader.ReadBool();
					m_Delay = reader.ReadTimeSpan();
					m_SoundID = reader.ReadEncodedInt();

					goto case 1;
				}
				case 1:
				{
					m_Creatures = reader.ReadBool();

					goto case 0;
				}
				case 0:
				{
					m_Active = reader.ReadBool();
					m_PointDest = reader.ReadPoint3D();
					m_MapDest = reader.ReadMap();

					break;
				}
			}
		}
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			
			int version = reader.ReadInt();
			
			if( version >= 2 )
			{
				_BoardMap = reader.ReadMap();
			}
			else
			{
				_BoardMap = Map;
			}
			
			if( version >= 1 )
			{
				_AllowPlayerConfiguration = reader.ReadBool();
			}
			else
			{
				_AllowPlayerConfiguration = true;
			}
			
			State = (BoardGameState)reader.ReadInt();
			_CostToPlay = reader.ReadInt();
			
			CurrentMaxPlayers = reader.ReadInt();
			
			_BoardWidth = reader.ReadInt();
			_BoardHeight = reader.ReadInt();
			
			GameZone = new Rectangle3D( new Point3D( reader.ReadInt(), reader.ReadInt(), reader.ReadInt() ), new Point3D( reader.ReadInt(), reader.ReadInt(), reader.ReadInt() ) );
			
			
			_BoardOffset = new Point3D( reader.ReadInt(), reader.ReadInt(), reader.ReadInt() );
			
			int count = reader.ReadInt();
			for( int i = 0; i < count; i++ )
			{
				Players.Add( reader.ReadMobile() );
			}
			
			count = reader.ReadInt();
			for( int i = 0; i < count; i++ )
			{
				BackgroundItems.Add( (GamePiece)reader.ReadItem() );
			}
			
			if( _State == BoardGameState.Pending || _State == BoardGameState.Recruiting )
			{
				_State = BoardGameState.Inactive;
				_Players = null;
			}
			
			_BoardGameRegion = new BoardGameRegion( this );
			_BoardGameRegion.Register();

			_SettingsReady = !_AllowPlayerConfiguration;
		}
예제 #27
0
 public void Deserialize(GenericReader reader)
 {
     Location = reader.ReadPoint3D();
     Map      = reader.ReadMap();
 }
예제 #28
0
        public static BounceInfo Deserialize( GenericReader reader )
        {
            if ( reader.ReadBool() )
            {
                Map map = reader.ReadMap();
                Point3D loc = reader.ReadPoint3D();
                Point3D worldLoc = reader.ReadPoint3D();

                object parent;

                Serial serial = reader.ReadInt();

                if ( serial.IsItem )
                    parent = World.FindItem( serial );
                else if ( serial.IsMobile )
                    parent = World.FindMobile( serial );
                else
                    parent = null;

                return new BounceInfo( map, loc, worldLoc, parent );
            }
            else
            {
                return null;
            }
        }
		public override void Deserialize( GenericReader reader ) 
		{ 
			base.Deserialize( reader ); 

			int version = reader.ReadInt();

            switch (version)
            {
                case 3:
                    {
                        m_AllowPets = reader.ReadBool();
                        goto case 2;
                    }
                case 2:
                    {
                        m_MaxSkills = reader.ReadInt();
                        m_MinSkills = reader.ReadInt();
                        goto case 1;
                    }
                case 1:
                    {
                        m_EntranceMap = reader.ReadMap();
                        goto case 0;
                    }
                case 0:
                    {
                        m_DungeonName = reader.ReadString();
                        m_Size = reader.ReadInt();
                        m_MaxPlayers = reader.ReadInt();
                        m_EntrancePoint = reader.ReadPoint3D();
                        break;
                    }
            }

            UnRegisterDungeon(this);
            RegisterDungeon(this);
		} 
예제 #30
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();
            m_creation = reader.ReadDateTime();
            m_EndTime = reader.ReadDateTime();
            m_RemainTime = reader.ReadTimeSpan();
            m_map = reader.ReadMap();
            m_Destination = reader.ReadPoint3D();
            m_Active = reader.ReadBool();
            m_Expires = reader.ReadBool();
        }
예제 #31
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 1:
 				{
 				m_Themed = reader.ReadBool();
 				m_type = (ChestThemeType)reader.ReadInt();
 				goto case 0;
 				}
	
				case 0:
				{
					m_Level = (int)reader.ReadInt();
					m_Completed = reader.ReadBool();
					m_Decoder = reader.ReadMobile();
					m_Map = reader.ReadMap();
					m_Location = reader.ReadPoint2D();

					break;
				}
			}
			if ( version < 1)
			{
 			m_Themed = false;
 			m_type = ChestThemeType.None;
 			}
		}
예제 #32
0
파일: Runebook.cs 프로젝트: guy489/runuot2a
        public RunebookEntry( GenericReader reader )
        {
            int version = reader.ReadByte();

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

                    break;
                }
            }
        }
예제 #33
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			m_AutoLock = reader.ReadBool();

			if ( !Locked && m_AutoLock )
				m_RelockTimer = new InternalTimer( this, reader.ReadDeltaTime() - DateTime.UtcNow );

			m_TargetMap = reader.ReadMap();
			m_Target = reader.ReadPoint3D();
			m_Description = reader.ReadString();
		}