public VendorInventory( BaseHouse house, GenericReader reader ) { m_House = house; /*int version = */reader.ReadEncodedInt(); m_Owner = reader.ReadMobile(); m_VendorName = reader.ReadString(); m_ShopName = reader.ReadString(); m_Items = reader.ReadItemList(); m_Gold = reader.ReadInt(); m_ExpireTime = reader.ReadDeltaTime(); if ( m_Items.Count == 0 && m_Gold == 0 ) { Timer.DelayCall( TimeSpan.Zero, new TimerCallback( Delete ) ); } else { TimeSpan delay = m_ExpireTime - DateTime.Now; m_ExpireTimer = new ExpireTimer( this, delay > TimeSpan.Zero ? delay : TimeSpan.Zero ); m_ExpireTimer.Start(); } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadEncodedInt(); m_Receivers = reader.ReadItemList(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); verSion = reader.ReadInt(); switch (verSion) { case 1: locs = reader.ReadItemList(); break; } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 2: { BodyMod = reader.ReadInt(); goto case 1; } case 1: { m_Items = reader.ReadItemList(); break; } case 0: { m_Items = new ArrayList(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: { m_RegionBounds = reader.ReadRect2D(); m_Traps = reader.ReadItemList(); goto case 0; } case 0: { if ( version < 1 ) { m_Traps = new ArrayList(); m_RegionBounds = new Rectangle2D( X - 40, Y - 40, 80, 80 ); } m_Creatures = reader.ReadMobileList(); m_TypeName = reader.ReadString(); m_Door = reader.ReadItem() as BaseDoor; m_Addon = reader.ReadItem() as BaseAddon; m_Sequence = reader.ReadItem() as GauntletSpawner; State = (GauntletSpawnerState)reader.ReadInt(); break; } } }
public override void Deserialize( GenericReader reader ) { m_spell = true; base.Deserialize( reader ); int version = reader.ReadInt(); switch( version ) { case 1: { m_spell = reader.ReadBool(); goto case 0; } case 0: { m_Owner = reader.ReadMobile(); m_SleepingBodyName = reader.ReadString(); m_Blessed = reader.ReadBool(); m_EquipItems = reader.ReadItemList(); break; } } m_NextSnoreTrigger = DateTime.Now; // Delete on Server restart if spell action if( m_spell ) this.Delete(); }
/// <summary> /// Deserializes the specified reader. /// </summary> /// <param name="reader">The reader.</param> public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 3: { m_LastAnnounceTime = reader.ReadDateTime(); goto case 2; } case 2: { m_ShopperQueue = new Queue<PlayerMobile>(reader.ReadMobileList<PlayerMobile>()); goto case 1; } case 1: { m_VisitorQueue = new Queue<PlayerMobile>(reader.ReadMobileList<PlayerMobile>()); m_City = (KinFactionCities)reader.ReadInt(); m_Champs = reader.ReadItemList<ChampKinCity>(); goto case 0; } case 0: break; } }
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 ) ); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 1: { m_Cost = reader.ReadInt(); m_AmountCollected = reader.ReadLong(); goto case 0; } case 0: { m_Active = reader.ReadBool(); m_Owner = reader.ReadMobile(); m_Decays = reader.ReadBool(); m_DecayTime = reader.ReadTimeSpan(); m_AccessLevel = (AccessLevel)reader.ReadInt(); if (reader.ReadBool()) m_RuneBooks = reader.ReadItemList(); m_DecayRunning = reader.ReadBool(); if (m_DecayRunning) this.DoDecayTimer(reader.ReadTimeSpan()); break; } } UpdateDate(); }
public override void Deserialize(GenericReader reader) { base.Deserialize (reader); int version = reader.ReadInt(); switch ( version ) { case 0: { m_Links = reader.ReadItemList(); m_Charges = reader.ReadInt(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); bool haveproximityrange = false; bool hasnewobjectinfo = false; int tmpSpawnListSize = 0; ArrayList tmpSubGroup = null; ArrayList tmpSequentialResetTime = null; ArrayList tmpSequentialResetTo = null; ArrayList tmpKillsNeeded = null; ArrayList tmpRequireSurface = null; ArrayList tmpRestrictKillsToSubgroup = null; ArrayList tmpClearOnAdvance = null; ArrayList tmpMinDelay = null; ArrayList tmpMaxDelay = null; ArrayList tmpNextSpawn = null; ArrayList tmpDisableSpawn = null; ArrayList tmpPackRange = null; ArrayList tmpSpawnsPer = null; switch( version ) { case 30: { m_AllowNPCTriggering = reader.ReadBool(); goto case 29; } case 29: { tmpSpawnListSize = reader.ReadInt(); tmpSpawnsPer = new ArrayList( tmpSpawnListSize ); for( int i = 0; i < tmpSpawnListSize; ++i ) { int spawnsper = reader.ReadInt(); tmpSpawnsPer.Add( spawnsper ); } goto case 28; } case 28: { if( version < 29 ) tmpSpawnListSize = reader.ReadInt(); tmpPackRange = new ArrayList( tmpSpawnListSize ); for( int i = 0; i < tmpSpawnListSize; ++i ) { int packrange = reader.ReadInt(); tmpPackRange.Add( packrange ); } goto case 27; } case 27: { if( version < 28 ) tmpSpawnListSize = reader.ReadInt(); tmpDisableSpawn = new ArrayList( tmpSpawnListSize ); for( int i = 0; i < tmpSpawnListSize; ++i ) { bool disablespawn = reader.ReadBool(); tmpDisableSpawn.Add( disablespawn ); } goto case 26; } case 26: { m_SpawnOnTrigger = reader.ReadBool(); m_FirstModified = reader.ReadDateTime(); m_LastModified = reader.ReadDateTime(); goto case 25; } case 25: { goto case 24; } case 24: { if( version < 27 ) tmpSpawnListSize = reader.ReadInt(); tmpRestrictKillsToSubgroup = new ArrayList( tmpSpawnListSize ); tmpClearOnAdvance = new ArrayList( tmpSpawnListSize ); tmpMinDelay = new ArrayList( tmpSpawnListSize ); tmpMaxDelay = new ArrayList( tmpSpawnListSize ); tmpNextSpawn = new ArrayList( tmpSpawnListSize ); for( int i = 0; i < tmpSpawnListSize; ++i ) { bool restrictkills = reader.ReadBool(); bool clearadvance = reader.ReadBool(); double mind = reader.ReadDouble(); double maxd = reader.ReadDouble(); DateTime nextspawn = reader.ReadDeltaTime(); tmpRestrictKillsToSubgroup.Add( restrictkills ); tmpClearOnAdvance.Add( clearadvance ); tmpMinDelay.Add( mind ); tmpMaxDelay.Add( maxd ); tmpNextSpawn.Add( nextspawn ); } bool hasitems = reader.ReadBool(); if( hasitems ) { m_ShowBoundsItems = reader.ReadItemList(); } goto case 23; } case 23: { IsInactivated = reader.ReadBool(); SmartSpawning = reader.ReadBool(); goto case 22; } case 22: { SkillTrigger = reader.ReadString(); // note this will also register the skill m_skill_that_triggered = (SkillName)reader.ReadInt(); m_FreeRun = reader.ReadBool(); m_mob_who_triggered = reader.ReadMobile(); goto case 21; } case 21: { m_DespawnTime = reader.ReadTimeSpan(); goto case 20; } case 20: { if( version < 24 ) tmpSpawnListSize = reader.ReadInt(); tmpRequireSurface = new ArrayList( tmpSpawnListSize ); for( int i = 0; i < tmpSpawnListSize; ++i ) { bool requiresurface = reader.ReadBool(); tmpRequireSurface.Add( requiresurface ); } goto case 19; } case 19: { m_ConfigFile = reader.ReadString(); m_OnHold = reader.ReadBool(); m_HoldSequence = reader.ReadBool(); m_FirstModifiedBy = reader.ReadString(); m_LastModifiedBy = reader.ReadString(); // deserialize the keyword tag list int tagcount = reader.ReadInt(); m_KeywordTagList = new ArrayList( tagcount ); for( int i = 0; i < tagcount; i++ ) { BaseXmlSpawner.KeywordTag tag = new BaseXmlSpawner.KeywordTag( null, this ); tag.Deserialize( reader ); } goto case 18; } case 18: { m_AllowGhostTriggering = reader.ReadBool(); goto case 17; } case 17: { if( version < 25 ) { // the textentrybooks are deleted on deserialization so no need to track them reader.ReadItem(); } goto case 16; } case 16: { hasnewobjectinfo = true; m_SequentialSpawning = reader.ReadInt(); TimeSpan seqdelay = reader.ReadTimeSpan(); m_SeqEnd = DateTime.Now + seqdelay; if( version < 20 ) { tmpSpawnListSize = reader.ReadInt(); } tmpSubGroup = new ArrayList( tmpSpawnListSize ); tmpSequentialResetTime = new ArrayList( tmpSpawnListSize ); tmpSequentialResetTo = new ArrayList( tmpSpawnListSize ); tmpKillsNeeded = new ArrayList( tmpSpawnListSize ); for( int i = 0; i < tmpSpawnListSize; ++i ) { int subgroup = reader.ReadInt(); double resettime = reader.ReadDouble(); int resetto = reader.ReadInt(); int killsneeded = reader.ReadInt(); tmpSubGroup.Add( subgroup ); tmpSequentialResetTime.Add( resettime ); tmpSequentialResetTo.Add( resetto ); tmpKillsNeeded.Add( killsneeded ); } m_RegionName = reader.ReadString(); // 2004.02.08 :: Omega Red goto case 15; } case 15: { m_ExternalTriggering = reader.ReadBool(); m_ExternalTrigger = reader.ReadBool(); goto case 14; } case 14: { m_NoItemTriggerName = reader.ReadString(); goto case 13; } case 13: { m_GumpState = reader.ReadString(); goto case 12; } case 12: { int todtype = reader.ReadInt(); switch( todtype ) { case (int)TODModeType.Gametime: m_TODMode = TODModeType.Gametime; break; case (int)TODModeType.Realtime: m_TODMode = TODModeType.Realtime; break; } goto case 11; } case 11: { m_KillReset = reader.ReadInt(); m_skipped = reader.ReadBool(); m_spawncheck = reader.ReadInt(); goto case 10; } case 10: { m_SetPropertyItem = reader.ReadItem(); goto case 9; } case 9: { m_TriggerProbability = reader.ReadDouble(); goto case 8; } case 8: { m_MobPropertyName = reader.ReadString(); m_MobTriggerName = reader.ReadString(); m_PlayerPropertyName = reader.ReadString(); goto case 7; } case 7: { m_SpeechTrigger = reader.ReadString(); goto case 6; } case 6: { m_ItemTriggerName = reader.ReadString(); goto case 5; } case 5: { m_ProximityTriggerMessage = reader.ReadString(); m_ObjectPropertyItem = reader.ReadItem(); m_ObjectPropertyName = reader.ReadString(); m_killcount = reader.ReadInt(); goto case 4; } case 4: { haveproximityrange = true; m_ProximityRange = reader.ReadInt(); m_ProximityTriggerSound = reader.ReadInt(); m_proximityActivated = reader.ReadBool(); m_durActivated = reader.ReadBool(); m_refractActivated = reader.ReadBool(); m_StackAmount = reader.ReadInt(); m_TODStart = reader.ReadTimeSpan(); m_TODEnd = reader.ReadTimeSpan(); m_MinRefractory = reader.ReadTimeSpan(); m_MaxRefractory = reader.ReadTimeSpan(); if( m_refractActivated == true ) { TimeSpan delay = reader.ReadTimeSpan(); DoTimer3( delay ); } if( m_durActivated == true ) { TimeSpan delay = reader.ReadTimeSpan(); DoTimer2( delay ); } goto case 3; } case 3: { m_ShowContainerStatic = reader.ReadItem() as Static; goto case 2; } case 2: { m_Duration = reader.ReadTimeSpan(); goto case 1; } case 1: { m_UniqueId = reader.ReadString(); m_HomeRangeIsRelative = reader.ReadBool(); goto case 0; } case 0: { m_Name = reader.ReadString(); // backward compatibility with old name storage if( m_Name != null && m_Name != String.Empty ) Name = m_Name; m_X = reader.ReadInt(); m_Y = reader.ReadInt(); m_Width = reader.ReadInt(); m_Height = reader.ReadInt(); if( m_Width == m_Height ) m_SpawnRange = m_Width / 2; else m_SpawnRange = -1; if( !haveproximityrange ) { m_ProximityRange = -1; } m_WayPoint = reader.ReadItem() as WayPoint; m_Group = reader.ReadBool(); m_MinDelay = reader.ReadTimeSpan(); m_MaxDelay = reader.ReadTimeSpan(); m_Count = reader.ReadInt(); m_Team = reader.ReadInt(); m_HomeRange = reader.ReadInt(); m_Running = reader.ReadBool(); if( m_Running == true ) { TimeSpan delay = reader.ReadTimeSpan(); DoTimer( delay ); } // Read in the size of the spawn object list int SpawnListSize = reader.ReadInt(); m_SpawnObjects = new ArrayList( SpawnListSize ); for( int i = 0; i < SpawnListSize; ++i ) { string TypeName = reader.ReadString(); int TypeMaxCount = reader.ReadInt(); SpawnObject TheSpawnObject = new SpawnObject( TypeName, TypeMaxCount ); m_SpawnObjects.Add( TheSpawnObject ); string typeName = BaseXmlSpawner.ParseObjectType( TypeName ); // does it have a substitution that might change its validity? // if so then let it go if( typeName == null || ((SpawnerType.GetType( typeName ) == null) && (!BaseXmlSpawner.IsTypeOrItemKeyword( typeName ) && typeName.IndexOf( '{' ) == -1 && !typeName.StartsWith( "*" ) && !typeName.StartsWith( "#" ))) ) { if( m_WarnTimer == null ) m_WarnTimer = new WarnTimer2(); m_WarnTimer.Add( Location, Map, TypeName ); this.status_str = "invalid type: " + typeName; } // Read in the number of spawns already int SpawnedCount = reader.ReadInt(); TheSpawnObject.SpawnedObjects = new ArrayList( SpawnedCount ); for( int x = 0; x < SpawnedCount; ++x ) { int serial = reader.ReadInt(); if( serial < -1 ) { // minusone is reserved for unknown types by default // minustwo on is used for referencing keyword tags int tagserial = -1 * (serial + 2); // get the tag with that serial and add it BaseXmlSpawner.KeywordTag t = BaseXmlSpawner.GetFromTagList( this, tagserial ); if( t != null ) { TheSpawnObject.SpawnedObjects.Add( t ); } } else { IEntity e = World.FindEntity( serial ); if( e != null ) TheSpawnObject.SpawnedObjects.Add( e ); } } } // now have to reintegrate the later version spawnobject information into the earlier version desered objects if( hasnewobjectinfo && tmpSpawnListSize == SpawnListSize ) { for( int i = 0; i < SpawnListSize; ++i ) { SpawnObject so = (SpawnObject)m_SpawnObjects[i]; so.SubGroup = (int)tmpSubGroup[i]; so.SequentialResetTime = (double)tmpSequentialResetTime[i]; so.SequentialResetTo = (int)tmpSequentialResetTo[i]; so.KillsNeeded = (int)tmpKillsNeeded[i]; if( version > 19 ) so.RequireSurface = (bool)tmpRequireSurface[i]; bool restrictkills = false; bool clearadvance = true; double mind = -1; double maxd = -1; DateTime nextspawn = DateTime.MinValue; if( version > 23 ) { restrictkills = (bool)tmpRestrictKillsToSubgroup[i]; clearadvance = (bool)tmpClearOnAdvance[i]; mind = (double)tmpMinDelay[i]; maxd = (double)tmpMaxDelay[i]; nextspawn = (DateTime)tmpNextSpawn[i]; } so.RestrictKillsToSubgroup = restrictkills; so.ClearOnAdvance = clearadvance; so.MinDelay = mind; so.MaxDelay = maxd; so.NextSpawn = nextspawn; bool disablespawn = false; if( version > 26 ) { disablespawn = (bool)tmpDisableSpawn[i]; } so.Disabled = disablespawn; int packrange = -1; if( version > 27 ) { packrange = (int)tmpPackRange[i]; } so.PackRange = packrange; int spawnsper = 1; if( version > 28 ) { spawnsper = (int)tmpSpawnsPer[i]; } so.SpawnsPerTick = spawnsper; } } break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 2: { m_Guardians = reader.ReadMobileList(); m_Temporary = reader.ReadBool(); goto case 1; } case 1: { m_Owner = reader.ReadMobile(); goto case 0; } case 0: { m_Level = reader.ReadInt(); m_DeleteTime = reader.ReadDeltaTime(); m_Lifted = reader.ReadItemList(); if ( version < 2 ) m_Guardians = new ArrayList(); break; } } if ( !m_Temporary ) { m_Timer = new DeleteTimer( this, m_DeleteTime ); m_Timer.Start(); } else { Delete(); } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { m_Items = reader.ReadItemList(); m_Mobiles = reader.ReadMobileList(); m_DecayTime = reader.ReadDeltaTime(); RefreshDecay( false ); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); PetHolders = reader.ReadItemList(); exit = reader.ReadItem(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); SaveFlag saveFlags = ReadSaveBits(reader, version, 30); /////////////////////////////////////////////////// // put all normal serialization below this line /////////////////////////////////////////////////// switch ( version ) { case 32: { //Adam: v32 add mini game ID and save data. if (GetSaveFlag(saveFlags, SaveFlag.ZCodeMiniGame) == true) { m_ZCodeMiniGameID = reader.ReadInt(); // hash code of the string naming the mini game int size = reader.ReadInt(); // saved game size m_ZCodeMiniGameData = new byte[size]; // allocate a new game buffer for (int ix = 0; ix < size; ix++) m_ZCodeMiniGameData[ix] = reader.ReadByte(); // saved game } goto case 31; } case 31: { if (GetSaveFlag(saveFlags, SaveFlag.NPCGuild) == true) m_NpcGuildPoints = reader.ReadDouble(); goto case 30; } case 30: // Adam: v.30 Dummy version, removed NPCGuild vars when not needed { goto case 29; } case 29: //Pla: Dummy version, removed duel system vars { goto case 28; } case 28: //Pix: Kin Faction additions { m_KinSoloPoints = reader.ReadDouble(); m_KinTeamPoints = reader.ReadDouble(); goto case 27; } case 27: //Pix: challenge duel system { //pla: not used anymore if (version < 29) { //m_iChallengeDuelWins = reader.ReadInt(); //m_iChallengeDuelLosses = reader.ReadInt(); reader.ReadInt(); reader.ReadInt(); } goto case 26; } case 26: //Adam: ghost blindness { m_Blind = reader.ReadBool(); m_SightExpire = reader.ReadDateTime(); if (m_SightExpire != DateTime.MaxValue) { if (m_SightExpire <= DateTime.Now) Timer.DelayCall(TimeSpan.Zero, new TimerCallback(GoBlind)); else Timer.DelayCall(m_SightExpire - DateTime.Now, new TimerCallback(GoBlind)); } goto case 25; } case 25: //Pix: WatchList enhancements { m_WatchReason = reader.ReadString(); m_WatchExpire = reader.ReadDateTime(); goto case 24; } case 24: // Rhi: FilterMusic { m_FilterMusic = reader.ReadBool(); goto case 23; } case 23: // Pix: IOB System changes { m_IOBKillPoints = reader.ReadDouble(); m_LastGuildIOBAlignment = (IOBAlignment)reader.ReadInt(); m_LastGuildChange = reader.ReadDateTime(); goto case 22; } case 22: { m_Reported = reader.ReadDateTime(); if (m_Reported > DateTime.Now - ReportTime) { m_ReportLogger = new LogHelper( GetReportLogName(m_Reported.ToString("MM-dd-yyyy HH-mm-ss")), false ); m_ReportLogStopper = Timer.DelayCall(ReportTime - (DateTime.Now - m_Reported), new TimerCallback(EndReport)); } goto case 21; } case 21: { LastRegion = Region.Find( this.Location, this.Map ); goto case 20; } case 20: //Pix: Offline short count decay { m_LastShortDecayed = reader.ReadDateTime(); goto case 19; } case 19: //Pix - for IOB Ranks { m_IOBRankTime = reader.ReadTimeSpan(); goto case 18; } case 18: //Pigpen - Addition for IOB Sytem { if( version < 23 ) { //m_IOBAlignment = (IOBAlignment)reader.ReadInt(); //IOBTimer = reader.ReadTimeSpan(); reader.ReadInt(); reader.ReadTimeSpan(); } m_IOBEquipped = reader.ReadBool(); goto case 16; } case 17: // changed how DoneQuests is serialized case 16: { m_Quest = QuestSerializer.DeserializeQuest( reader ); if ( m_Quest != null ) m_Quest.From = this; int count = reader.ReadEncodedInt(); if ( count > 0 ) { m_DoneQuests = new ArrayList(); for ( int i = 0; i < count; ++i ) { Type questType = QuestSerializer.ReadType( QuestSystem.QuestTypes, reader ); DateTime restartTime; if ( version < 17 ) restartTime = DateTime.MaxValue; else restartTime = reader.ReadDateTime(); m_DoneQuests.Add( new QuestRestartInfo( questType, restartTime ) ); } } m_Profession = reader.ReadEncodedInt(); goto case 15; } case 15: { m_LastCompassionLoss = reader.ReadDeltaTime(); goto case 14; } case 14: { m_CompassionGains = reader.ReadEncodedInt(); if ( m_CompassionGains > 0 ) m_NextCompassionDay = reader.ReadDeltaTime(); goto case 13; } case 13: // just removed m_PayedInsurance list case 12: { m_BOBFilter = new Engines.BulkOrders.BOBFilter( reader ); goto case 11; } case 11: { if ( version < 13 ) { ArrayList payed = reader.ReadItemList(); // Adam: no more insurance //for ( int i = 0; i < payed.Count; ++i ) //((Item)payed[i]).PayedInsurance = true; } goto case 10; } case 10: { if ( reader.ReadBool() ) { m_HairModID = reader.ReadInt(); m_HairModHue = reader.ReadInt(); m_BeardModID = reader.ReadInt(); m_BeardModHue = reader.ReadInt(); // We cannot call SetHairMods( -1, -1 ) here because the items have not yet loaded Timer.DelayCall( TimeSpan.Zero, new TimerCallback( RevertHair ) ); } goto case 9; } case 9: { SavagePaintExpiration = reader.ReadTimeSpan(); if ( SavagePaintExpiration > TimeSpan.Zero ) { // BodyMod = ( Female ? 184 : 183 ); HueMod = 0; } goto case 8; } case 8: { if (version < 30) { m_NpcGuild = (NpcGuild)reader.ReadInt(); m_NpcGuildJoinTime = reader.ReadDateTime(); m_NpcGuildGameTime = reader.ReadTimeSpan(); } else if (GetSaveFlag(saveFlags, SaveFlag.NPCGuild) == true) { m_NpcGuild = (NpcGuild)reader.ReadInt(); m_NpcGuildJoinTime = reader.ReadDateTime(); m_NpcGuildGameTime = reader.ReadTimeSpan(); } goto case 7; } case 7: { m_PermaFlags = reader.ReadMobileList(); goto case 6; } case 6: { NextTailorBulkOrder = reader.ReadTimeSpan(); goto case 5; } case 5: { NextSmithBulkOrder = reader.ReadTimeSpan(); goto case 4; } case 4: { m_LastJusticeLoss = reader.ReadDeltaTime(); m_JusticeProtectors = reader.ReadMobileList(); goto case 3; } case 3: { m_LastSacrificeGain = reader.ReadDeltaTime(); m_LastSacrificeLoss = reader.ReadDeltaTime(); m_AvailableResurrects = reader.ReadInt(); goto case 2; } case 2: { m_Flags = (PlayerFlag)reader.ReadInt(); goto case 1; } case 1: { m_LongTermElapse = reader.ReadTimeSpan(); m_ShortTermElapse = reader.ReadTimeSpan(); m_GameTime = reader.ReadTimeSpan(); goto case 0; } case 0: { break; } } if ( m_PermaFlags == null ) m_PermaFlags = new ArrayList(); if ( m_JusticeProtectors == null ) m_JusticeProtectors = new ArrayList(); if ( m_BOBFilter == null ) m_BOBFilter = new Engines.BulkOrders.BOBFilter(); ArrayList list = this.Stabled; for ( int i = 0; i < list.Count; ++i ) { BaseCreature bc = list[i] as BaseCreature; if ( bc != null ) bc.IsStabled = true; } //Pix: this is for safety... to make sure it's set m_InmateLastDeathTime = DateTime.MinValue; //Pix: make sure this is set to minvalue for loading m_IOBStartedWearing = DateTime.MinValue; //wea: SpiritCohesion is not persistent across saves m_SpiritCohesion = 0; //wea: For spirit cohesion, last resurrect time m_LastResurrectTime = DateTime.MinValue; }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); 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() ); if ( c_RentTime > DateTime.Now ) BeginRentTimer( c_RentTime-DateTime.Now ); Timer.DelayCall(TimeSpan.Zero, new TimerCallback(StartTimers)); ClearPreview(); s_TownHouseSigns.Add( this ); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { m_Components = reader.ReadItemList(); break; } } Delete(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch( version ) { case 4: { m_ConfinedRoaming = reader.ReadBool(); m_Idol = reader.ReadItem() as 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.ReadMobileList(); m_RedSkulls = reader.ReadItemList(); m_WhiteSkulls = reader.ReadItemList(); m_Platform = reader.ReadItem() as ChampionPlatform; m_Altar = reader.ReadItem() as 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 ) ); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 18: { m_NextBountyDecay = reader.ReadDateTime(); goto case 17; } case 17: { m_LastUpdate = reader.ReadInt(); m_LastLogin = reader.ReadDateTime(); goto case 16; } case 16: { m_NextNotoUp = reader.ReadDateTime(); m_Cohesion = reader.ReadInt(); m_LastCohesion = DateTime.Now - reader.ReadTimeSpan(); m_AssumeGhost = reader.ReadBool(); int skillCount = reader.ReadByte(); m_SkillUsageOrder = new byte[skillCount]; for(int i=0;i<skillCount;i++) m_SkillUsageOrder[i] = reader.ReadByte(); goto case 15; } case 15: { m_Bounty = reader.ReadInt(); goto case 14; } case 14: { m_CompassionGains = reader.ReadEncodedInt(); if ( m_CompassionGains > 0 ) m_NextCompassionDay = reader.ReadDeltaTime(); goto case 13; } case 13: // just removed m_PayedInsurance list case 12: { goto case 11; } case 11: { if ( version < 13 ) { ArrayList payed = reader.ReadItemList(); for ( int i = 0; i < payed.Count; ++i ) ((Item)payed[i]).PayedInsurance = true; } goto case 10; } case 10: { if ( reader.ReadBool() ) { m_HairModID = reader.ReadInt(); m_HairModHue = reader.ReadInt(); m_BeardModID = reader.ReadInt(); m_BeardModHue = reader.ReadInt(); // We cannot call SetHairMods( -1, -1 ) here because the items have not yet loaded Timer.DelayCall( TimeSpan.Zero, new TimerCallback( RevertHair ) ); } goto case 9; } case 9: { SavagePaintExpiration = reader.ReadTimeSpan(); if ( SavagePaintExpiration > TimeSpan.Zero ) { BodyMod = ( Female ? 184 : 183 ); HueMod = 0; } goto case 8; } case 8: { m_NpcGuild = (NpcGuild)reader.ReadInt(); m_NpcGuildJoinTime = reader.ReadDateTime(); m_NpcGuildGameTime = reader.ReadTimeSpan(); goto case 7; } case 7: { /*m_PermaFlags =*/ reader.ReadMobileList(); goto case 6; } case 6: { NextTailorBulkOrder = reader.ReadTimeSpan(); goto case 5; } case 5: { NextSmithBulkOrder = reader.ReadTimeSpan(); goto case 4; } case 4: { m_LastJusticeLoss = reader.ReadDeltaTime(); m_JusticeProtectors = reader.ReadMobileList(); goto case 3; } case 3: { m_LastSacrificeGain = reader.ReadDeltaTime(); m_LastSacrificeLoss = reader.ReadDeltaTime(); m_AvailableResurrects = reader.ReadInt(); goto case 2; } case 2: { m_Flags = (PlayerFlag)reader.ReadInt(); goto case 1; } case 1: { m_LongTermElapse = reader.ReadTimeSpan(); m_ShortTermElapse = reader.ReadTimeSpan(); m_GameTime = reader.ReadTimeSpan(); goto case 0; } case 0: { break; } } if ( m_PermaFlags == null ) m_PermaFlags = new ArrayList(); if ( m_JusticeProtectors == null ) m_JusticeProtectors = new ArrayList(); List<Mobile> list = this.Stabled; for ( int i = 0; i < list.Count; ++i ) { BaseCreature bc = list[i] as BaseCreature; if ( bc != null ) bc.IsStabled = true; } if ( m_NextBountyDecay == DateTime.MinValue ) { if ( m_LastLogin != DateTime.MinValue ) m_NextBountyDecay = m_LastLogin + TimeSpan.FromDays( 1.0 ); } while ( m_Bounty > 0 && m_NextBountyDecay < DateTime.Now ) { m_Bounty -= 100; m_NextBountyDecay += TimeSpan.FromDays( 1.0 ); } if ( m_Bounty <= 0 ) { m_Bounty = 0; Kills = 0; } if ( m_Bounty > 0 && m_Bounty > BountyBoard.LowestBounty ) BountyBoard.Update( this ); if ( m_SkillUsageOrder == null ) { m_SkillUsageOrder = new byte[PlayerMobile.SkillCount]; for(int i=0;i<PlayerMobile.SkillCount;i++) m_SkillUsageOrder[i] = (byte)i; } }
public override void Deserialize( GenericReader reader ) { base.Deserialize(reader); int version = reader.ReadInt(); m_market = reader.ReadItemList(); m_marketmob = reader.ReadMobileList(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: { goto case 0; } case 0: { m_Lifted = reader.ReadItemList(); m_IOBAlignment = (IOBAlignment)reader.ReadInt(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch( version ) { case 3: { goto case 2; } case 2: case 1: { m_Level = (SecureLevel)reader.ReadInt(); goto case 0; } case 0: { m_Active = reader.ReadBool(); m_Multiplier = reader.ReadDouble(); m_Charges = reader.ReadInt(); if (version < 3) { //m_Connected = reader.ReadItemList(); ArrayList list = reader.ReadItemList(); m_Connected = new List<Serial>(list.Count); for (int i = 0; i < list.Count; i++) { CommunicationCrystal cc = list[i] as CommunicationCrystal; if( cc != null ) { m_Connected.Add(cc.Serial); } } } else { m_Connected = ItemBroker.ReadSerialList(reader); } m_TextHue = reader.ReadInt(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Active = reader.ReadBool(); m_AllSpawn = reader.ReadItemList(); m_DungeonsSpawn = reader.ReadItemList(); m_LostLandsSpawn = reader.ReadItemList(); m_IlshenarSpawn = reader.ReadItemList(); m_TokunoSpawn = reader.ReadItemList(); m_RandomizeDelay = reader.ReadTimeSpan(); m_ActiveAltars = reader.ReadInt(); //m_SpawnRange = 24; m_ExpireDelay = TimeSpan.FromMinutes( 10.0 ); m_RestartDelay = TimeSpan.FromMinutes( 5.0 ); if ( m_Active ) { m_Timer = new RandomizeTimer( this, m_RandomizeDelay ); m_Timer.Start(); } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Region = new HouseRegion( this ); switch ( version ) { case 0: { m_KeyValue = reader.ReadUInt(); m_Visits = reader.ReadInt(); m_Price = reader.ReadInt(); m_BuiltOn = reader.ReadDateTime(); m_LastTraded = reader.ReadDateTime(); m_Public = reader.ReadBool(); m_Region.GoLocation = reader.ReadPoint3D(); if ( version < 8 ) m_Price = DefaultPrice; m_Owner = reader.ReadMobile(); UpdateRegionArea(); Region.AddRegion( m_Region ); m_Sign = reader.ReadItem() as HouseSign; m_Trash = reader.ReadItem() as TrashBarrel; m_Doors = reader.ReadItemList(); m_Addons = reader.ReadItemList(); if ( (Map == null || Map == Map.Internal) && Location == Point3D.Zero ) Delete(); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 1: { m_Cost = reader.ReadInt(); m_AmountCollected = reader.ReadLong(); goto case 0; } case 0: { m_Active = reader.ReadBool(); m_Decays = reader.ReadBool(); m_DecayTime = reader.ReadTimeSpan(); if (reader.ReadBool()) m_RuneBooks = reader.ReadItemList(); if (m_Decays) m_TimeLeft = reader.ReadTimeSpan(); LootType = LootType.Blessed; break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Code = ""; m_PuzzleCode = ""; m_PuzzleCode = GenerateCode( m_PuzzleCode ); m_Levers = reader.ReadItemList(); m_Statues = reader.ReadItemList(); m_Pads = reader.ReadItemList(); m_Box = reader.ReadItem() as PuzzleBox; m_CanActive = true; m_Box.CanSummon = true; }
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 ) ); } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: { m_Owner = reader.ReadMobile(); goto case 0; } case 0: { m_Level = reader.ReadInt(); m_DeleteTime = reader.ReadDeltaTime(); m_Lifted = reader.ReadItemList(); m_Timer = new DeleteTimer( this, m_DeleteTime ); m_Timer.Start(); break; } } }
public override void Deserialize( GenericReader reader ) { int version = reader.ReadInt(); switch ( version ) { case 5: case 4: { m_Signpost = reader.ReadItem(); m_SignpostGraphic = reader.ReadInt(); goto case 3; } case 3: { m_Type = (FoundationType)reader.ReadInt(); goto case 2; } case 2: { m_SignHanger = reader.ReadItem(); goto case 1; } case 1: { if ( version < 5 ) m_DefaultPrice = reader.ReadInt(); goto case 0; } case 0: { if ( version < 3 ) m_Type = FoundationType.Stone; if ( version < 4 ) m_SignpostGraphic = 9; m_LastRevision = reader.ReadInt(); m_Fixtures = reader.ReadItemList(); m_Current = new DesignState( this, reader ); m_Design = new DesignState( this, reader ); m_Backup = new DesignState( this, reader ); break; } } base.Deserialize( reader ); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch(version) { case 0: { m_Books = reader.ReadItemList(); ManageLockDowns(); break; } } }