Esempio n. 1
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();
        }
Esempio n. 2
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);

			int version = reader.ReadInt();
			int count;
			bool idocannc = false;

			m_Region = new HouseRegion(this);

			switch (version)
			{
				case 20:
					{
						m_NPCData = reader.ReadUInt32();
						goto case 19;
					}
				case 19:
					{
						m_RestartDecay = reader.ReadTimeSpan();
						goto case 18;
					}
				case 18:
					{
						m_Flags = (ImplFlags)reader.ReadUInt32();
						goto case 17;
					}
				case 17:
					{
						m_UpgradeCosts = reader.ReadUInt32();
						goto case 16;
					}
				case 16:
					{
						m_LockBoxData = reader.ReadUInt32();
						goto case 15;
					}
				case 15:
					{
						m_SecurePremises = reader.ReadBool();
						goto case 14;
					}
				case 14:
					{
						idocannc = reader.ReadBool();
						goto case 13;
					}
				case 13:
					{
						m_DecayMinutesStored = reader.ReadDouble();
						m_NeverDecay = reader.ReadBool();
						goto case 11; //note, this isn't a mistake - we want to skip 12
					}
				case 12:
					{
						DateTime tempDT = reader.ReadDeltaTime();
						//StructureDecayTime = reader.ReadDeltaTime();
						m_DecayMinutesStored = (tempDT - DateTime.Now).TotalMinutes;

						m_NeverDecay = reader.ReadBool();
						goto case 11;
					}
				case 11:
					{
						m_MaxLockBoxes = reader.ReadInt();
						m_LockBoxCount = reader.ReadInt();

						goto case 9;
					}
				case 10: // just a signal for updates
				case 9:
					{
						m_Visits = reader.ReadInt();
						goto case 8;
					}
				case 8:
					{
						m_Price = reader.ReadInt();
						goto case 7;
					}
				case 7:
					{
						m_Access = reader.ReadMobileList();
						goto case 6;
					}
				case 6:
					{
						m_BuiltOn = reader.ReadDateTime();
						m_LastTraded = reader.ReadDateTime();
						goto case 5;
					}
				case 5: // just removed fields
				case 4:
					{
						m_Addons = reader.ReadItemList();
						goto case 3;
					}
				case 3:
					{
						count = reader.ReadInt();
						m_Secures = new ArrayList(count);

						for (int i = 0; i < count; ++i)
						{
							SecureInfo info = new SecureInfo(reader);

							if (info.Item != null)
							{
								info.Item.IsSecure = true;
								info.Item.CancelFreezeTimer();        // don't initiate for Deserialize
								m_Secures.Add(info);
							}
						}

						goto case 2;
					}
				case 2:
					{
						m_Public = reader.ReadBool();
						goto case 1;
					}
				case 1:
					{
						m_Region.GoLocation = reader.ReadPoint3D();
						goto case 0;
					}
				case 0:
					{

						if (version < 16)
						{
							LockBoxCeling = (uint)m_MaxLockBoxes * 2;   // high limit
							LockBoxFloor = (uint)m_MaxLockBoxes;        // low limit
						}

						if (version < 12)
						{
							Refresh();
							m_NeverDecay = false;
						}

						if (version < 4)
							m_Addons = new ArrayList();

						if (version < 7)
							m_Access = new ArrayList();

						if (version < 8)
							m_Price = DefaultPrice;

						m_Owner = reader.ReadMobile();

						if (version < 5)
						{
							count = reader.ReadInt();

							for (int i = 0; i < count; i++)
								reader.ReadRect2D();
						}

						UpdateRegionArea();

						Region.AddRegion(m_Region);

						m_CoOwners = reader.ReadMobileList();
						m_Friends = reader.ReadMobileList();
						m_Bans = reader.ReadMobileList();

						m_Sign = reader.ReadItem() as HouseSign;
						m_Trash = reader.ReadItem() as TrashBarrel;

						m_Doors = reader.ReadItemList();
						m_LockDowns = reader.ReadItemList();

						for (int i = 0; i < m_LockDowns.Count; ++i)
						{
							Item item = m_LockDowns[i] as Item;
							if (item != null)
							{
								item.IsLockedDown = true;
								item.CancelFreezeTimer();        // don't initiate for Deserialize
							}
						}

						if (version < 3)
						{
							ArrayList items = reader.ReadItemList();
							m_Secures = new ArrayList(items.Count);

							for (int i = 0; i < items.Count; ++i)
							{
								Container c = items[i] as Container;

								if (c != null)
								{
									c.IsSecure = true;
									m_Secures.Add(new SecureInfo(c, SecureLevel.CoOwners));
								}
							}
						}

						m_MaxLockDowns = reader.ReadInt();
						m_MaxSecures = reader.ReadInt();

						if ((Map == null || Map == Map.Internal) && Location == Point3D.Zero)
							Delete();

						if (m_Owner != null)
						{
							ArrayList list = (ArrayList)m_Table[m_Owner];

							if (list == null)
								m_Table[m_Owner] = list = new ArrayList();

							list.Add(this);
						}
						break;
					}
			}

			// patch m_NPCData to hold the default barkeep count
			if (version < 20)
				MaximumBarkeepCount = 2;		

			if (version <= 1)
				ChangeSignType(0xBD2);//private house, plain brass sign

			if (version < 10)
			{
				/* NOTE: This can exceed the house lockdown limit. It must be this way, because
				 * we do not want players' items to decay without them knowing. Or not even
				 * having a chance to fix it themselves.
				 */

				Timer.DelayCall(TimeSpan.Zero, new TimerCallback(FixLockdowns_Sandbox));
			}

			if (idocannc) // idoc announcement was running when we saved, re-create it
			{
				string[] lines = new string[1];
				lines[0] = String.Format("Lord British has condemned the estate of {0} near {1}.", this.Owner.Name, DescribeLocation());
				m_IDOC_Broadcast_TCE = new TownCrierEntry(lines, TimeSpan.FromMinutes(m_DecayMinutesStored), Serial.MinusOne);
				GlobalTownCrierEntryList.Instance.AddEntry(m_IDOC_Broadcast_TCE);
			}
		}
Esempio n. 3
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 1:
				{
					m_RegionBounds = reader.ReadRect2D();
					m_Traps = reader.ReadStrongItemList<BaseTrap>();

					goto case 0;
				}
				case 0:
				{
					if ( version < 1 )
					{
						m_Traps = new List<BaseTrap>();
						m_RegionBounds = new Rectangle2D( X - 40, Y - 40, 80, 80 );
					}

					m_Creatures = reader.ReadStrongMobileList();

					m_TypeName = reader.ReadString();
					m_Door = reader.ReadItem<BaseDoor>(); ;
					m_Addon = reader.ReadItem<BaseAddon>(); ;
					m_Sequence = reader.ReadItem<GauntletSpawner>();

					State = (GauntletSpawnerState)reader.ReadInt();

					break;
				}
			}
		}
Esempio n. 4
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();
			int count;

			switch ( version )
			{
				case 14:
				{
					m_RelativeBanLocation = reader.ReadPoint3D();
					goto case 13;
				}
				case 13: // removed ban location serialization
				case 12:
				{
					m_VendorRentalContracts = reader.ReadItemList();
					m_InternalizedVendors = reader.ReadMobileList();

					int relocatedCount = reader.ReadEncodedInt();
					for ( int i = 0; i < relocatedCount; i++ )
					{
						Point3D relLocation = reader.ReadPoint3D();
						IEntity entity = World.FindEntity( reader.ReadInt() );

						if ( entity != null )
							m_RelocatedEntities.Add( new RelocatedEntity( entity, relLocation ) );
					}

					int inventoryCount = reader.ReadEncodedInt();
					for ( int i = 0; i < inventoryCount; i++ )
					{
						VendorInventory inventory = new VendorInventory( this, reader );
						m_VendorInventories.Add( inventory );
					}

					goto case 11;
				}
				case 11:
				{
					m_LastRefreshed = reader.ReadDateTime();
					m_RestrictDecay = reader.ReadBool();
					goto case 10;
				}
				case 10: // just a signal for updates
				case 9:
				{
					m_Visits = reader.ReadInt();
					goto case 8;
				}
				case 8:
				{
					m_Price = reader.ReadInt();
					goto case 7;
				}
				case 7:
				{
					m_Access = reader.ReadMobileList();
					goto case 6;
				}
				case 6:
				{
					m_BuiltOn = reader.ReadDateTime();
					m_LastTraded = reader.ReadDateTime();
					goto case 5;
				}
				case 5: // just removed fields
				case 4:
				{
					m_Addons = reader.ReadItemList();
					goto case 3;
				}
				case 3:
				{
					count = reader.ReadInt();
					m_Secures = new ArrayList( count );

					for ( int i = 0; i < count; ++i )
					{
						SecureInfo info = new SecureInfo( reader );

						if ( info.Item != null )
						{
							info.Item.IsSecure = true;
							m_Secures.Add( info );
						}
					}

					goto case 2;
				}
				case 2:
				{
					m_Public = reader.ReadBool();
					goto case 1;
				}
				case 1:
				{
					if ( version < 13 )
						reader.ReadPoint3D(); // house ban location
					goto case 0;
				}
				case 0:
				{
					if ( version < 14 )
						m_RelativeBanLocation = this.BaseBanLocation;

					if ( version < 12 )
					{
						m_VendorRentalContracts = new ArrayList();
						m_InternalizedVendors = new ArrayList();
					}

					if ( version < 4 )
						m_Addons = new ArrayList();

					if ( version < 7 )
						m_Access = new ArrayList();

					if ( version < 8 )
						m_Price = DefaultPrice;

					m_Owner = reader.ReadMobile();

					if ( version < 5 )
					{
						count = reader.ReadInt();

						for(int i=0;i<count;i++)
							reader.ReadRect2D();
					}

					UpdateRegion();

					m_CoOwners = reader.ReadMobileList();
					m_Friends = reader.ReadMobileList();
					m_Bans = reader.ReadMobileList();

					m_Sign = reader.ReadItem() as HouseSign;
					m_Trash = reader.ReadItem() as TrashBarrel;

					m_Doors = reader.ReadItemList();
					m_LockDowns = reader.ReadItemList();

					for ( int i = 0; i < m_LockDowns.Count; ++i )
						((Item)m_LockDowns[i]).IsLockedDown = true;

					for ( int i = 0; i < m_VendorRentalContracts.Count; ++i )
						((Item)m_VendorRentalContracts[i]).IsLockedDown = true;

					if ( version < 3 )
					{
						ArrayList items = reader.ReadItemList();
						m_Secures = new ArrayList( items.Count );

						for ( int i = 0; i < items.Count; ++i )
						{
							Container c = items[i] as Container;

							if ( c != null )
							{
								c.IsSecure = true;
								m_Secures.Add( new SecureInfo( c, SecureLevel.CoOwners ) );
							}
						}
					}

					m_MaxLockDowns = reader.ReadInt();
					m_MaxSecures = reader.ReadInt();

					if ( (Map == null || Map == Map.Internal) && Location == Point3D.Zero )
						Delete();

					if ( m_Owner != null )
					{
						List<BaseHouse> list = null;
						m_Table.TryGetValue( m_Owner, out list );

						if ( list == null )
							m_Table[m_Owner] = list = new List<BaseHouse>();

						list.Add( this );
					}
					break;
				}
			}

			if ( version <= 1 )
				ChangeSignType( 0xBD2 );//private house, plain brass sign

			if ( version < 10 )
			{
				/* NOTE: This can exceed the house lockdown limit. It must be this way, because
				 * we do not want players' items to decay without them knowing. Or not even
				 * having a chance to fix it themselves.
				 */

				Timer.DelayCall( TimeSpan.Zero, new TimerCallback( FixLockdowns_Sandbox ) );
			}

			if ( version < 11 )
				m_LastRefreshed = DateTime.Now + TimeSpan.FromHours( 24 * Utility.RandomDouble() );

			if ( !CheckDecay() )
			{
				if ( RelocatedEntities.Count > 0 )
					Timer.DelayCall( TimeSpan.Zero, new TimerCallback( RestoreRelocatedEntities ) );

				if ( m_Owner == null && m_Friends.Count == 0 && m_CoOwners.Count == 0 )
					Timer.DelayCall( TimeSpan.FromSeconds( 10.0 ), new TimerCallback( Delete ) );
			}
		}
Esempio n. 5
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            if (version >= 13)
            {
                c_ForcePrivate = reader.ReadBool();
                c_ForcePublic = reader.ReadBool();
                c_NoTrade = reader.ReadBool();
            }

            if (version >= 12)
            {
                c_Free = reader.ReadBool();
            }

            if (version >= 11)
            {
                c_Murderers = (Intu) reader.ReadInt();
            }

            if (version >= 10)
            {
                c_LeaveItems = reader.ReadBool();
            }

            if (version >= 9)
            {
                c_RentToOwn = reader.ReadBool();
                c_OriginalRentTime = reader.ReadTimeSpan();
                c_RTOPayments = reader.ReadInt();
            }

            c_PreviewItems = new List<Item>();
            if (version >= 7)
            {
                int previewcount = reader.ReadInt();
                for (int i = 0; i < previewcount; ++i)
                {
                    Item item = reader.ReadItem();
                    c_PreviewItems.Add(item);
                }
            }

            if (version >= 6)
            {
                c_ItemsPrice = reader.ReadInt();
                c_KeepItems = reader.ReadBool();
            }

            c_DecoreItemInfos = new List<DecoreItemInfo>();
            if (version >= 5)
            {
                int decorecount = reader.ReadInt();
                DecoreItemInfo info;
                for (int i = 0; i < decorecount; ++i)
                {
                    info = new DecoreItemInfo();
                    info.Load(reader);
                    c_DecoreItemInfos.Add(info);
                }

                c_Relock = reader.ReadBool();
            }

            if (version >= 4)
            {
                c_RecurRent = reader.ReadBool();
                c_RentByTime = reader.ReadTimeSpan();
                c_RentTime = reader.ReadDateTime();
                c_DemolishTime = reader.ReadDateTime();
                c_YoungOnly = reader.ReadBool();
                c_MinTotalSkill = reader.ReadInt();
                c_MaxTotalSkill = reader.ReadInt();
            }

            if (version >= 3)
            {
                c_MinZ = reader.ReadInt();
                c_MaxZ = reader.ReadInt();
            }

            if (version >= 2)
            {
                c_House = (TownHouse) reader.ReadItem();
            }

            c_Price = reader.ReadInt();
            c_Locks = reader.ReadInt();
            c_Secures = reader.ReadInt();
            c_BanLoc = reader.ReadPoint3D();
            c_SignLoc = reader.ReadPoint3D();
            c_Skill = reader.ReadString();
            c_SkillReq = reader.ReadDouble();

            c_Blocks = new List<Rectangle2D>();
            int count = reader.ReadInt();
            for (int i = 0; i < count; ++i)
            {
                c_Blocks.Add(reader.ReadRect2D());
            }

            if (c_RentTime > DateTime.Now)
            {
                BeginRentTimer(c_RentTime - DateTime.Now);
            }

            Timer.DelayCall(TimeSpan.Zero, StartTimers);

            ClearPreview();

            s_TownHouseSigns.Add(this);
        }
Esempio n. 6
0
		public static List<Rectangle2D> ReadRect2DArray( GenericReader reader ) {
			int size = reader.ReadInt();
			List<Rectangle2D> newAry = new List<Rectangle2D>();

			for( int i = 0; i < size; i++ ) {
				newAry.Add( reader.ReadRect2D() );
			}

			return newAry;
		}
Esempio n. 7
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 6:
				{
					m_MobilesSeekHome = reader.ReadBool();
					m_UsesSpawnerHome = reader.ReadBool();
					goto case 5;
				}
				case 5:
				{
					m_SpawnArea = reader.ReadRect2D();
					m_UsesSpawnerHome = reader.ReadBool();

					goto case 4;
				}
				case 4:
				{
					m_WalkingRange = reader.ReadInt();

					goto case 3;
				}
				case 3:
				case 2:
				{
					m_WayPoint = reader.ReadItem() as WayPoint;

					goto case 1;
				}

				case 1:
				{
					m_Group = reader.ReadBool();

					goto case 0;
				}

				case 0:
				{
					m_MinDelay = reader.ReadTimeSpan();
					m_MaxDelay = reader.ReadTimeSpan();
					m_Count = reader.ReadInt();
					m_Team = reader.ReadInt();
					m_HomeRange = reader.ReadInt();
					m_Running = reader.ReadBool();

					TimeSpan ts = TimeSpan.Zero;

					if ( m_Running )
						ts = reader.ReadDeltaTime() - DateTime.Now;

					int size = reader.ReadInt();

					m_SpawnNames = new List<string>( size );

					for ( int i = 0; i < size; ++i )
					{
						string creatureString = reader.ReadString();

						m_SpawnNames.Add( creatureString );
						string typeName = ParseType( creatureString );

						if ( ScriptCompiler.FindTypeByName( typeName ) == null )
						{
							if ( m_WarnTimer == null )
								m_WarnTimer = new WarnTimer();

							m_WarnTimer.Add( Location, Map, typeName );
						}
					}

					int count = reader.ReadInt();

					m_Spawned = new List<ISpawnable>(count);

					for ( int i = 0; i < count; ++i )
					{
						ISpawnable e = World.FindEntity(reader.ReadInt()) as ISpawnable;

						if (e != null)
						{
							e.Spawner = this;
							m_Spawned.Add(e);
						}
					}

					if ( m_Running )
						DoTimer( ts );

					break;
				}
			}

			if ( version < 3 && Weight == 0 )
				Weight = -1;
		}
Esempio n. 8
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
                case 1:
                    {
                        m_Facet = reader.ReadMap();
                        goto case 0;
                    }
				case 0:
				{
					m_Bounds = reader.ReadRect2D();

					m_Width = reader.ReadInt();
					m_Height = reader.ReadInt();

					m_Protected = reader.ReadBool();

					int count = reader.ReadInt();
					for ( int i = 0; i < count; i++ )
						m_Pins.Add( reader.ReadPoint2D() );

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

			int version = reader.ReadInt();

			m_ChallengeArea = new Rectangle3D[0];

			switch ( version )
			{
				case 2:
			    case 1:
				{
				    m_Disable = reader.ReadBool();
				    goto case 0;
				}
				case 0:
				{
                    m_Music = (MusicName)reader.ReadInt();
                    m_Priority = reader.ReadInt();
					if (version < 2)
					{
						// old region area
						reader.ReadRect2D();
					}
                    m_ChallengeRegionName = reader.ReadString();
                    string mapname = reader.ReadString();
                    try{
					   m_ChallengeMap = Map.Parse(mapname);
					} catch {}
					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 < 2)
							{
								Rectangle2D[] area = new Rectangle2D[count];
								for (int i = 0; i < count; i++)
								{
									area[i] = reader.ReadRect2D();
								}
								m_ChallengeArea = Region.ConvertTo3D(area);
							}
							else
							{
								m_ChallengeArea = new Rectangle3D[count];
								for (int i = 0; i < count; i++)
								{
									m_ChallengeArea[i] = new Rectangle3D(reader.ReadPoint3D(), reader.ReadPoint3D());
								}
							}
						}
					break;
				}
			}

			// refresh the region
			Timer.DelayCall(TimeSpan.Zero, new TimerCallback(RefreshRegions));
		}
Esempio n. 10
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            if( version >= 15 )
                m_Flip = reader.ReadBool();

            if( version >= 14 )
            {
                m_Nation = (Nation)reader.ReadInt();
                m_Treasury = (Container)reader.ReadItem();
            }

            if (version >= 13)
            {
                c_ForcePrivate = reader.ReadBool();
                c_ForcePublic = reader.ReadBool();
                c_NoTrade = reader.ReadBool();
            }

            if (version >= 12)
                c_Free = reader.ReadBool();

            if ( version >= 11 )
                c_Murderers = (Intu)reader.ReadInt();

            if ( version >= 10 )
                c_LeaveItems = reader.ReadBool();

            if ( version >= 9 )
            {
                c_RentToOwn = reader.ReadBool();
                c_OriginalRentTime = reader.ReadTimeSpan();
                c_RTOPayments = reader.ReadInt();
            }

            c_PreviewItems = new ArrayList();
            if ( version >= 7 )
                c_PreviewItems = reader.ReadItemList();

            if ( version >= 6 )
            {
                c_ItemsPrice = reader.ReadInt();
                c_KeepItems = reader.ReadBool();
            }

            c_DecoreItemInfos = new ArrayList();
            if ( version >= 5 )
            {
                int decorecount = reader.ReadInt();
                DecoreItemInfo info;
                for( int i = 0; i < decorecount; ++i )
                {
                    info = new DecoreItemInfo();
                    info.Load( reader );
                    c_DecoreItemInfos.Add( info );
                }

                c_Relock = reader.ReadBool();
            }

            if ( version >= 4 )
            {
                c_RecurRent = reader.ReadBool();
                c_RentByTime = reader.ReadTimeSpan();
                c_RentTime = reader.ReadDateTime();
                c_DemolishTime = reader.ReadDateTime();
                c_YoungOnly = reader.ReadBool();
                c_MinTotalSkill = reader.ReadInt();
                c_MaxTotalSkill = reader.ReadInt();
            }

            if ( version >= 3 )
            {
                c_MinZ = reader.ReadInt();
                c_MaxZ = reader.ReadInt();
            }

            if ( version >= 2 )
                c_House = (TownHouse)reader.ReadItem();

            c_Price = reader.ReadInt();
            c_Locks = reader.ReadInt();
            c_Secures = reader.ReadInt();
            c_BanLoc = reader.ReadPoint3D();
            c_SignLoc = reader.ReadPoint3D();
            c_Skill = reader.ReadString();
            c_SkillReq = reader.ReadDouble();

            c_Blocks = new ArrayList();
            int count = reader.ReadInt();
            for ( int i = 0; i < count; ++i )
                c_Blocks.Add( reader.ReadRect2D() );

            Timer.DelayCall(TimeSpan.Zero, new TimerCallback(StartTimers));

            ClearPreview();

            s_TownHouseSigns.Add( this );
        }
Esempio n. 11
0
        public MaginciaHousingPlot(GenericReader reader)
        {
            int version = reader.ReadInt();

            m_Identifier = reader.ReadString();
            m_Writ = reader.ReadItem() as WritOfLease;
            m_Stone = reader.ReadItem() as MaginciaPlotStone;
            m_LottoEnds = reader.ReadDateTime();
            m_Bounds = reader.ReadRect2D();
            m_Map = reader.ReadMap();
            m_IsPrimeSpot = reader.ReadBool();
            m_Complete = reader.ReadBool();
            m_Winner = reader.ReadMobile();
            m_Expires = reader.ReadDateTime();
            
            int c = reader.ReadInt();
            for (int i = 0; i < c; i++)
            {
                Mobile m = reader.ReadMobile();
                int amount = reader.ReadInt();

                if (m != null)
                    m_Participants[m] = amount;
            }

            if ((m_Stone == null || m_Stone.Deleted) && LottoOngoing && MaginciaLottoSystem.IsRegisteredPlot(this))
                AddPlotStone();
            else if (m_Stone != null)
                m_Stone.Plot = this;

            if (m_Writ != null)
                m_Writ.Plot = this;
        }
Esempio n. 12
0
		public static ArrayList ReadRect2DArray(GenericReader reader)
		{
			int size = reader.ReadInt();
			ArrayList newAry = new ArrayList();

			for (int i = 0; i < size; i++)
			{
				newAry.Add(reader.ReadRect2D());
			}

			return newAry;
		}
Esempio n. 13
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);

			int version = reader.ReadInt();

			switch (version)
			{
				case 14:
					{
						//version 14
						m_Coords=ReadRect3DArray(reader);
						m_InnBounds=ReadRect3DArray(reader);
						goto case 13;
					}
				case 13:
					{
						m_TargetMap = reader.ReadMap();
						m_GoLocation = reader.ReadPoint3D();
						m_MinZ = reader.ReadInt();
						m_MaxZ = reader.ReadInt();
						goto case 12;
					}
				case 12:
					{
						m_Enabled = reader.ReadBool();
						goto case 11;
					}
				case 11:
					{
						int size = reader.ReadInt();
						m_Types = new ArrayList(size);

						for (int i = 0; i < size; ++i)
						{
							string typeName = reader.ReadString();
							m_Types.Add(typeName);

						}
						goto case 10;
					}

				case 10:
					{
						m_MaxFollowers = reader.ReadInt();
						goto case 9;
					}
				case 9:
					{
						m_RestrictedMagicMsg = reader.ReadString();
						goto case 8;
					}
				case 8:
					{
						m_Music = (MusicName)reader.ReadInt();
						goto case 7;
					}

				case 7:
					{
						if (m_InnBounds == null)
						{
							m_InnBounds = ReadRect2DArray(reader);
						}
						else
						{
							m_InnBounds.AddRange(ReadRect2DArray(reader));
						}
						m_InnLogoutDelay = reader.ReadTimeSpan();

						goto case 6;
					}
				case 6:
					{
						m_PlayerLogoutDelay = reader.ReadTimeSpan();
						goto case 5;
					}
				case 5:
					{
						if (version < 13)
						{	// converted to a flag
							bool m_IsDungeon = (bool)reader.ReadBool();
							IsDungeon = m_IsDungeon;
						}
						goto case 4;
					}
				case 4:
					{
						m_IOBAlignment = (IOBAlignment)reader.ReadInt();
						goto case 3;
					}

				case 3:
					{
						m_LightLevel = reader.ReadInt();
						goto case 2;
					}
				case 2:
					{
						goto case 1;
					}
				case 1:
					{
						if (Coords == null)
						{
							Coords = ReadRect2DArray(reader);
						}
						else
						{
							Coords.AddRange(ReadRect2DArray(reader));
						}
						m_Priority = (CustomRegionPriority)reader.ReadInt();

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

						m_Flags = (RegionFlag)reader.ReadInt();

						m_RegionName = reader.ReadString();
						break;
					}
				case 0:
					{
						Coords = new ArrayList();

						Coords.Add(reader.ReadRect2D());
						m_RestrictedSpells = ReadBitArray(reader);
						m_RestrictedSkills = ReadBitArray(reader);

						m_Flags = (RegionFlag)reader.ReadInt();

						m_RegionName = reader.ReadString();
						break;
					}
			}
			if (version < 12)
			{
				m_Enabled = true;
			}

			if (version < 11)
			{
				m_Types = new ArrayList();
			}

			if (version < 8)
			{
				m_Music = MusicName.Invalid;
			}

			// fixup this table if Skills have been added or removed.
			if (SkillInfo.Table.Length != m_RestrictedSkills.Count)
			{
				BitArray temp = new BitArray(SkillInfo.Table.Length);
				int MaxIterations = Math.Min(temp.Length, m_RestrictedSkills.Count);
				for (int ix = 0; ix < MaxIterations; ix++)
					temp[ix] = m_RestrictedSkills[ix];

				m_RestrictedSkills = temp;
			}

			// fixup this table if Spells have been added or removed.
			if (SpellRegistry.Types.Length != m_RestrictedSpells.Count)
			{
				BitArray temp = new BitArray(SpellRegistry.Types.Length);
				int MaxIterations = Math.Min(temp.Length, m_RestrictedSpells.Count);
				for (int ix = 0; ix < MaxIterations; ix++)
					temp[ix] = m_RestrictedSpells[ix];

				m_RestrictedSkills = temp;
			}

			UpdateRegion();

		}
Esempio n. 14
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 3:
                {
                    m_LightLevel = reader.ReadInt();
                    goto case 2;
                }
                case 2:
                {
                    m_Music = (MusicName)reader.ReadInt();
                    goto case 1;
                }
                case 1:
                {
                    Coords = ReadRect2DArray( reader );
                    m_Priority = (CustomRegionPriority) 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:
                {
                    Coords = new ArrayList();

                    Coords.Add( reader.ReadRect2D() );
                    m_RestrictedSpells = ReadBitArray( reader );
                    m_RestrictedSkills = ReadBitArray( reader );

                    m_Flags = (RegionFlag)reader.ReadInt();

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

            UpdateRegion();
        }
Esempio n. 15
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 3:
				{
					m_State = (HouseRaffleState) reader.ReadEncodedInt();

					goto case 2;
				}
				case 2:
				{
					m_ExpireAction = (HouseRaffleExpireAction) reader.ReadEncodedInt();

					goto case 1;
				}
				case 1:
				{
					m_Deed = reader.ReadItem<HouseRaffleDeed>();

					goto case 0;
				}
				case 0:
				{
					bool oldActive = ( version < 3 ) ? reader.ReadBool() : false;

					m_Bounds = reader.ReadRect2D();
					m_Facet = reader.ReadMap();

					m_Winner = reader.ReadMobile();

					m_TicketPrice = reader.ReadInt();
					m_Started = reader.ReadDateTime();
					m_Duration = reader.ReadTimeSpan();

					int entryCount = reader.ReadInt();
					m_Entries = new List<RaffleEntry>( entryCount );

					for ( int i = 0; i < entryCount; i++ )
					{
						RaffleEntry entry = new RaffleEntry( reader, version );

						if ( entry.From == null )
							continue; // Character was deleted

						m_Entries.Add( entry );
					}

					InvalidateRegion();

					m_AllStones.Add( this );

					if ( version < 3 )
					{
						if ( oldActive )
							m_State = HouseRaffleState.Active;
						else if ( m_Winner != null )
							m_State = HouseRaffleState.Completed;
						else
							m_State = HouseRaffleState.Inactive;
					}

					break;
				}
			}
		}
Esempio n. 16
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch ( version )
            {
                case 0:
                    _Rect = reader.ReadRect2D();
                    _Items = reader.ReadStrongItemList();
                    _Battle = reader.ReadItem<BattleController>();
                    _Owner = reader.ReadInt();
                    _ScoreFactor = reader.ReadSByte();
                    break;
            }

            Timer.DelayCall(TimeSpan.Zero, new TimerCallback(UpdateRect));

            _CheckTimer = Timer.DelayCall(TimeSpan.Zero, TimeSpan.FromSeconds(1.0), new TimerCallback(CheckOwner));
        }
Esempio n. 17
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
                case 8:
                    {
                        m_MinimumDuelers = (int)reader.ReadInt();
                        m_LastReset = (DateTime)reader.ReadDateTime();
                        goto case 7;
                    }
                case 7:
                    {
                        m_TimerEnabled = (bool)reader.ReadBool();
                        goto case 6;
                    }
                case 6:
                    {
                        m_CoinsPerRound = (int)reader.ReadInt();
                        m_CoinsWinner = (int)reader.ReadInt();
                        goto case 5;
                    }
                case 5:
                    {
                        m_BroadcastHue = (int)reader.ReadInt();
                        goto case 4;
                    }
                case 4:
                    {
                        m_WallHue = (int)reader.ReadInt();
                        m_WallID = (int)reader.ReadInt();
                        goto case 3;
                    }
                case 3:
                    {
                        m_WallMidPoint = (Point3D)reader.ReadPoint3D();
                        m_WallExtendWidth = (int)reader.ReadInt(); ;
                        m_WallNorthToSouth = (bool)reader.ReadBool();
                        goto case 2;
                    }
                case 2:
                    {
                        m_CurrentRound = (int)reader.ReadInt();
                        m_TotalParticipants = (int)reader.ReadInt();
                        goto case 1;
                    }
                case 1:
                    {
                        m_Running = (bool)reader.ReadBool();
                        m_AcceptingPlayers = (bool)reader.ReadBool();
                        m_MapLocation = (Map)reader.ReadMap();
                        goto case 0;
                    }
                case 0:
                    {
                        m_EventRate = (TimeSpan)reader.ReadTimeSpan();
                        m_StartLocation = (Point3D)reader.ReadPoint3D();
                        m_LostLocation = (Point3D)reader.ReadPoint3D();
                        m_DuelLocation1 = (Point3D)reader.ReadPoint3D();
                        m_DuelLocation2 = (Point3D)reader.ReadPoint3D();
                        m_LastEvent = (DateTime)reader.ReadDateTime();

                        m_DuelingArea = (Rectangle2D)reader.ReadRect2D();
                        m_StageingArea = (Rectangle2D)reader.ReadRect2D();
                        m_ViewingArea = (Rectangle2D)reader.ReadRect2D();
                        break;
                    }
            }
            if (version == 7)
                m_LastReset = DateTime.Now;

            if (version == 5)
            {
                m_CoinsPerRound = 2;
                m_CoinsWinner = 10;
            }

            if (version == 4)
                m_BroadcastHue = 269;

            if (version == 3)
            {
                m_WallHue = 0;
                m_WallID = 0x0081;
            }

            if (m_DuelList == null)
                m_DuelList = new List<Mobile>();
            if (m_CurrentDuelers == null)
                m_CurrentDuelers = new List<Mobile>();
            if (m_WallList == null)
                m_WallList = new List<Item>();
            if (m_BroadcastList == null)
                m_BroadcastList = new List<Mobile>();
            m_CountDown = 0;
            UpdateRegions(false);

            m_RestartTimer = new InternalTimer(this, TimeSpan.FromSeconds(1.0));

            if(m_TimerEnabled)
                m_RestartTimer.Start();
        }
Esempio n. 18
0
 public override void Deserialize(GenericReader reader)
 {
     base.Deserialize(reader);
     int version = reader.ReadInt();
     SheepRegionMap = reader.ReadMap();
     SheepRegionPoint = reader.ReadRect2D();
     RabbitRegionMap = reader.ReadMap();
     RabbitRegionPoint = reader.ReadRect2D();
     abled = reader.ReadBool();
     SheepSpawnPoint = reader.ReadPoint3D();
     RabbitSpawnPoint = reader.ReadPoint3D();
     SheepSpawnMap = reader.ReadMap();
     RabbitSpawnMap = reader.ReadMap();
 }
Esempio n. 19
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 1:
                {
                    m_Deed = reader.ReadItem<HouseRaffleDeed>();

                    goto case 0;
                }
                case 0:
                {
                    m_Active = reader.ReadBool();

                    m_Bounds = reader.ReadRect2D();
                    m_Facet = reader.ReadMap();

                    m_Winner = reader.ReadMobile();

                    m_TicketPrice = reader.ReadInt();
                    m_Started = reader.ReadDateTime();
                    m_Duration = reader.ReadTimeSpan();

                    int entryCount = reader.ReadInt();
                    m_Entries = new List<RaffleEntry>( entryCount );

                    for ( int i = 0; i < entryCount; i++ )
                    {
                        RaffleEntry entry = new RaffleEntry( reader, version );

                        if ( entry.From == null )
                            continue; // Character was deleted

                        m_Entries.Add( entry );
                    }

                    InvalidateRegion();

                    m_AllStones.Add( this );

                    break;
                }
            }
        }
Esempio n. 20
0
        public void Deserialize(GenericReader reader)
        {
            int version = reader.ReadInt();

            m_HasSpawned = reader.ReadBool();
            m_LastAttempt = reader.ReadDateTime();
            m_Active = reader.ReadBool();

            m_Charydbis = reader.ReadMobile() as Charydbis;
            m_NextSpawn = reader.ReadDateTime();
            m_IsSummoned = reader.ReadBool();
            m_Map = reader.ReadMap();
            m_CurrentLocation = reader.ReadRect2D();
            m_LastLocation = reader.ReadRect2D();

            if (m_NextSpawn > DateTime.UtcNow)
                m_Timer = new InternalTimer(this, m_NextSpawn - DateTime.UtcNow);
            else
                Reset();
        }
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			
			int version = reader.ReadInt();
			
			_ChestLocation = reader.ReadPoint2D();
			_ChestMap = reader.ReadMap();
			_Decoder = reader.ReadMobile();
			_Level = reader.ReadInt();
			_Bounds = reader.ReadRect2D();
		}
Esempio n. 22
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize (reader);

			int version = reader.ReadInt();

			switch ( version )
			{
                case 5:

			        SafeZone = reader.ReadBool();
			        goto case 4;

                case 4:

			        m_BoardWhiteHue = reader.ReadInt();
                    m_BoardBlackHue = reader.ReadInt();
                    m_BoardStairsHue = reader.ReadInt();
			        m_BoardWhiteTiles = reader.ReadStrongItemList();
                    m_BoardBlackTiles = reader.ReadStrongItemList();
                    m_BoardStairsTiles = reader.ReadStrongItemList();
			        goto case 3;

				case 3:

					m_OverrideMinorHue = reader.ReadBool();
					m_AllowSpectators = reader.ReadBool();
					goto case 2;

				case 2 :

					m_Orientation = (BoardOrientation) reader.ReadByte();
					m_BlackMinorHue = reader.ReadInt();
					m_WhiteMinorHue = reader.ReadInt();
					goto case 1;

				case 1:

					m_ChessSet = ( ChessSet ) reader.ReadInt();
					m_WhiteHue = reader.ReadInt();
					m_BlackHue = reader.ReadInt();
					m_AttackEffect = reader.ReadInt();
					m_CaptureEffect = reader.ReadInt();
					m_BoltOnDeath = reader.ReadBool();
					goto case 0;

				case 0:
					
					m_Bounds = reader.ReadRect2D();
					m_SquareWidth = reader.ReadInt();
					m_BoardHeight = reader.ReadInt();
					break;
			}
		}
Esempio n. 23
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 ) );
		}
Esempio n. 24
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);
			int version = reader.ReadInt();
			
			Spawn = new Dictionary<BaseCreature, List<BaseCreature>>();
			SpawnZones = new List<Rectangle2D>();
			
			if(Map == Map.Trammel)
				TramInstance = this;
			
			if(Map == Map.Felucca)
				FelInstance = this;
			
			CurrentInvasion = (City)reader.ReadInt();
			InvasionType = (InvasionType)reader.ReadInt();
			Beacon = reader.ReadItem() as InvasionBeacon;
			CurrentWave = reader.ReadInt();

            if (Beacon != null)
                Beacon.Controller = this;
			
			int count = reader.ReadInt();
			for(int i = 0; i < count; i++)
			{
				SpawnZones.Add(reader.ReadRect2D());
			}
			
			count = reader.ReadInt();
			for(int i = 0; i < count; i++)
			{
				BaseCreature captain = reader.ReadMobile() as BaseCreature;
				int c = reader.ReadInt();
				
				List<BaseCreature> list = new List<BaseCreature>();
				
				for(int j = 0; j < c; j++)
				{
					BaseCreature spawn = reader.ReadMobile() as BaseCreature;
					
					if(spawn != null)
					{
						list.Add(spawn);
					}
				}
				
				if(captain != null)
					Spawn[captain] = list;
				else
				{
					list.Clear();
				}
			}

            Timer.DelayCall(TimeSpan.FromSeconds(10), () =>
            {
                if (Beacon != null && Beacon.Destroyed)
                {
                    Timer.DelayCall(TimeSpan.FromMinutes(2), () =>
                    {
                        Cleanup();
                        BeginInvasion();
                    });
                }
            });
		}
Esempio n. 25
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            if ( version >= 2 )
                c_Hanger = reader.ReadItem();

            c_Sign = (TownHouseSign)reader.ReadItem();

            if (version <= 2)
            {
                int count = reader.ReadInt();
                for (int i = 0; i < count; ++i)
                    reader.ReadRect2D();
            }

            if( Price == 0 )
                Price = 1;

            ItemID = 0x1DD6 | 0x4000;
        }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            switch (version)
            {
                case 2:
                    m_MinutesOpen = reader.ReadInt();
                    m_Rewards = reader.ReadBool();
                    goto case 1;
                case 1:
                    m_RegionRect = reader.ReadRect2D();
                    goto case 0;
                case 0:
                    m_MaxCrates = reader.ReadInt();
                    m_Laps = reader.ReadInt();
                    Track = reader.ReadItem();
                    m_Animalised = reader.ReadBool();
                    m_Price = reader.ReadInt();

                    int count = reader.ReadInt();
                    for (int i = 0; i < count; i++)
                        Rectangles.Add(new CrateRectangle(reader));
                    break;
            }
        }
Esempio n. 27
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            m_DamageEntries = new Dictionary<Mobile, int>();

            int version = reader.ReadInt();

            switch (version)
            {
                case 5:
                    {
                        int entries = reader.ReadInt();
                        Mobile m;
                        int damage;
                        for (int i = 0; i < entries; ++i)
                        {
                            m = reader.ReadMobile();
                            damage = reader.ReadInt();

                            if (m == null)
                                continue;

                            m_DamageEntries.Add(m, damage);
                        }

                        goto case 4;
                    }
                case 4:
                    {
                        m_ConfinedRoaming = reader.ReadBool();
                        m_Idol = reader.ReadItem<IdolOfTheChampion>();
                        m_HasBeenAdvanced = reader.ReadBool();

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

                        goto case 2;
                    }
                case 2:
                    {
                        m_RandomizeType = reader.ReadBool();

                        goto case 1;
                    }
                case 1:
                    {
                        if (version < 3)
                        {
                            int oldRange = reader.ReadInt();

                            m_SpawnArea = new Rectangle2D(new Point2D(X - oldRange, Y - oldRange), new Point2D(X + oldRange, Y + oldRange));
                        }

                        m_Kills = reader.ReadInt();

                        goto case 0;
                    }
                case 0:
                    {
                        if (version < 1)
                            m_SpawnArea = new Rectangle2D(new Point2D(X - 24, Y - 24), new Point2D(X + 24, Y + 24));	//Default was 24

                        bool active = reader.ReadBool();
                        m_Type = (ChampionSpawnType)reader.ReadInt();
                        m_Creatures = reader.ReadStrongMobileList();
                        m_RedSkulls = reader.ReadStrongItemList();
                        m_WhiteSkulls = reader.ReadStrongItemList();
                        m_Platform = reader.ReadItem<ChampionPlatform>();
                        m_Altar = reader.ReadItem<ChampionAltar>();
                        m_ExpireDelay = reader.ReadTimeSpan();
                        m_ExpireTime = reader.ReadDeltaTime();
                        m_Champion = reader.ReadMobile();
                        m_RestartDelay = reader.ReadTimeSpan();

                        if (reader.ReadBool())
                        {
                            m_RestartTime = reader.ReadDeltaTime();
                            BeginRestart(m_RestartTime - DateTime.Now);
                        }

                        if (version < 4)
                        {
                            m_Idol = new IdolOfTheChampion(this);
                            m_Idol.MoveToWorld(new Point3D(X, Y, Z - 15), Map);
                        }

                        if (m_Platform == null || m_Altar == null || m_Idol == null)
                            Delete();
                        else if (active)
                            Start();

                        break;
                    }
            }

            Timer.DelayCall(TimeSpan.Zero, new TimerCallback(UpdateRegion));
        }
Esempio n. 28
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadEncodedInt();

			m_Active = reader.ReadBool();
			m_Word = reader.ReadString();
			m_Destination = reader.ReadRect2D();
		}
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {

                case 0:
                {
                    m_Music = (MusicName)reader.ReadInt();
                    m_Priority = reader.ReadInt();
                    m_MobFactionArea = reader.ReadRect2D();
                    m_MobFactionRegionName = reader.ReadString();
                    string mapname = reader.ReadString();
                    try{
                       m_MobFactionMap = Map.Parse(mapname);
                    } catch {}
                    m_CopiedRegion = reader.ReadString();

                    m_MobFactionRegion = new MobFactionRegion(m_MobFactionRegionName, m_MobFactionMap);

                    // do the coord list
                    int count = reader.ReadInt();
                    m_MobFactionRegion.Coords = new ArrayList();
                    for(int i =0;i<count;i++)
                    {
                        m_MobFactionRegion.Coords.Add(reader.ReadRect2D());
                    }

                    m_MobFactionRegion.Priority = m_Priority;
                    m_MobFactionRegion.Music = m_Music;
                    m_MobFactionRegion.Map = m_MobFactionMap;

                    break;
                }
            }

            // refresh the region
            RefreshRegions();
        }
Esempio n. 30
0
 public override void Deserialize(GenericReader reader)
 {
     base.Deserialize(reader);
     int version = reader.ReadInt();
     regionmap = reader.ReadMap();
     regionpoint = reader.ReadRect2D();
     abled = reader.ReadBool();
     spawnpoint = reader.ReadPoint3D();
     spawnmap = reader.ReadMap();
 }