public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: { m_House = reader.ReadItem() as BaseHouse; goto case 0; } case 0: { m_Description = reader.ReadString(); m_Marked = reader.ReadBool(); m_Target = reader.ReadPoint3D(); m_TargetMap = reader.ReadMap(); CalculateHue(); break; } } }
public LocationStruct(GenericReader reader) { int version = reader.ReadInt(); Map = reader.ReadMap(); Location = reader.ReadPoint3D(); Name = reader.ReadString(); }
public void Deserialize( GenericReader reader ) { int version = reader.ReadInt(); switch ( version ) { case 1: { m_Flag = reader.ReadItem() as IGameFlag; goto case 0; } case 0: { m_Members = reader.ReadMobileList(); m_Home = reader.ReadPoint3D(); m_FlagHome = reader.ReadPoint3D(); m_Map = reader.ReadMap(); m_Points = reader.ReadInt(); m_Name = reader.ReadString(); m_Hue = reader.ReadInt(); m_UId = reader.ReadInt(); m_Game = reader.ReadItem() as CTFGame; break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: case 0: { m_MultiID = reader.ReadInt(); m_Offset = reader.ReadPoint3D(); m_ShipName = reader.ReadString(); if ( version == 0 ) reader.ReadUInt(); break; } } if ( LootType == LootType.Newbied ) LootType = LootType.Blessed; if ( Weight == 0.0 ) Weight = 1.0; }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: { m_Offset = reader.ReadPoint3D(); goto case 0; } case 0: { m_MultiID = reader.ReadInt(); break; } } if ( Weight == 0.0 ) { Weight = 1.0; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); _respawnLoc = reader.ReadPoint3D(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_Target = reader.ReadPoint3D(); m_TargetMap = reader.ReadMap(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); TeleportLocation = reader.ReadPoint3D(); LocationSet = reader.ReadBool(); Level = (SecureLevel) reader.ReadInt(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Active = reader.ReadBool(); m_PointDest = reader.ReadPoint3D(); m_MapDest = reader.ReadMap(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); var version = reader.ReadInt(); PointDest = reader.ReadPoint3D(); MapDest = reader.ReadMap(); Locked = reader.ReadBool(); Active = reader.ReadBool(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize(reader); int version = reader.ReadInt(); switch ( version ) { case 0: { m_Home2 = reader.ReadPoint3D(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize(reader); int version = reader.ReadInt(); switch ( version ) { case 1: { m_Flag = reader.ReadItem() as IGameFlag; m_FlagHome = reader.ReadPoint3D(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 1: case 0: { m_Description = reader.ReadString(); m_Marked = reader.ReadBool(); m_Target = reader.ReadPoint3D(); m_TargetMap = reader.ReadMap(); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 2: { m_EventType = (EventType)reader.ReadByte(); goto case 1; } case 1: { m_TargetLocation = reader.ReadPoint3D(); m_TargetMap = reader.ReadMap(); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); switch(version) { case 0: m_StaffLevel = (AccessLevel)reader.ReadInt(); m_HomeLoc = reader.ReadPoint3D(); string mapname = reader.ReadString(); try{ m_HomeMap = Map.Parse(mapname); } catch{} break; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 2: { m_GameItems = reader.ReadStrongItemList(); m_WinnerLocation = reader.ReadPoint3D(); goto case 1; } case 1: { m_GameArea = reader.ReadRect2D(); break; } } }
public override void ChildDeserialize(GenericReader reader) { int version = reader.ReadEncodedInt(); switch ( version ) { case 1: { this.m_CorpseLocation = reader.ReadPoint3D(); goto case 0; } case 0: { this.m_Corpse = (Corpse)reader.ReadItem(); break; } } if (version == 0) this.m_CorpseLocation = RandomCorpseLocation(); }
public RunebookEntry(GenericReader reader) { int version = reader.ReadByte(); switch ( version ) { case 1: { this.m_House = reader.ReadItem() as BaseHouse; goto case 0; } case 0: { this.m_Location = reader.ReadPoint3D(); this.m_Map = reader.ReadMap(); this.m_Description = reader.ReadString(); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { m_BombHome = reader.ReadPoint3D(); m_Duration = reader.ReadTimeSpan(); m_TeamInfo = new BRTeamInfo[reader.ReadEncodedInt()]; for ( int i = 0; i < m_TeamInfo.Length; ++i ) m_TeamInfo[i] = new BRTeamInfo( i, reader ); break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_CurrentAI = (AIType)reader.ReadInt(); m_DefaultAI = (AIType)reader.ReadInt(); m_iRangePerception = reader.ReadInt(); m_iRangeFight = reader.ReadInt(); m_iTeam = reader.ReadInt(); m_dActiveSpeed = reader.ReadDouble(); m_dPassiveSpeed = reader.ReadDouble(); m_dCurrentSpeed = reader.ReadDouble(); if ( m_iRangePerception == OldRangePerception ) m_iRangePerception = DefaultRangePerception; m_pHome.X = reader.ReadInt(); m_pHome.Y = reader.ReadInt(); m_pHome.Z = reader.ReadInt(); if ( version >= 1 ) { m_iRangeHome = reader.ReadInt(); int i, iCount; iCount = reader.ReadInt(); for ( i=0; i< iCount; i++ ) { string str = reader.ReadString(); Type type = Type.GetType( str ); if ( type != null ) { m_arSpellAttack.Add( type ); } } iCount = reader.ReadInt(); for ( i=0; i< iCount; i++ ) { string str = reader.ReadString(); Type type = Type.GetType( str ); if ( type != null ) { m_arSpellDefense.Add( type ); } } } else { m_iRangeHome = 0; } if ( version >= 2 ) { m_FightMode = ( FightMode )reader.ReadInt(); m_bControlled = reader.ReadBool(); m_ControlMaster = reader.ReadMobile(); m_ControlTarget = reader.ReadMobile(); m_ControlDest = reader.ReadPoint3D(); m_ControlOrder = (OrderType) reader.ReadInt(); m_dMinTameSkill = reader.ReadDouble(); if ( version < 9 ) reader.ReadDouble(); m_bTamable = reader.ReadBool(); m_bSummoned = reader.ReadBool(); if ( m_bSummoned ) { m_SummonEnd = reader.ReadDeltaTime(); new UnsummonTimer( m_ControlMaster, this, m_SummonEnd - DateTime.Now ).Start(); } m_iControlSlots = reader.ReadInt(); } else { m_FightMode = FightMode.Closest; m_bControlled = false; m_ControlMaster = null; m_ControlTarget = null; m_ControlOrder = OrderType.None; } if ( version >= 3 ) m_Loyalty = reader.ReadInt(); else m_Loyalty = MaxLoyalty; // Wonderfully Happy if ( version >= 4 ) m_CurrentWayPoint = reader.ReadItem() as WayPoint; if ( version >= 5 ) m_SummonMaster = reader.ReadMobile(); if ( version >= 6 ) { m_HitsMax = reader.ReadInt(); m_StamMax = reader.ReadInt(); m_ManaMax = reader.ReadInt(); m_DamageMin = reader.ReadInt(); m_DamageMax = reader.ReadInt(); } if ( version >= 7 ) { m_PhysicalResistance = reader.ReadInt(); m_PhysicalDamage = reader.ReadInt(); m_FireResistance = reader.ReadInt(); m_FireDamage = reader.ReadInt(); m_ColdResistance = reader.ReadInt(); m_ColdDamage = reader.ReadInt(); m_PoisonResistance = reader.ReadInt(); m_PoisonDamage = reader.ReadInt(); m_EnergyResistance = reader.ReadInt(); m_EnergyDamage = reader.ReadInt(); } if ( version >= 8 ) m_Owners = reader.ReadStrongMobileList(); else m_Owners = new List<Mobile>(); if ( version >= 10 ) { m_IsDeadPet = reader.ReadBool(); m_IsBonded = reader.ReadBool(); m_BondingBegin = reader.ReadDateTime(); m_OwnerAbandonTime = reader.ReadDateTime(); } if ( version >= 11 ) m_HasGeneratedLoot = reader.ReadBool(); else m_HasGeneratedLoot = true; if ( version >= 12 ) m_Paragon = reader.ReadBool(); else m_Paragon = false; if ( version >= 13 && reader.ReadBool() ) m_Friends = reader.ReadStrongMobileList(); else if ( version < 13 && m_ControlOrder >= OrderType.Unfriend ) ++m_ControlOrder; if ( version < 16 && Loyalty != MaxLoyalty ) Loyalty *= 10; double activeSpeed = m_dActiveSpeed; double passiveSpeed = m_dPassiveSpeed; SpeedInfo.GetSpeeds( this, ref activeSpeed, ref passiveSpeed ); bool isStandardActive = false; for ( int i = 0; !isStandardActive && i < m_StandardActiveSpeeds.Length; ++i ) isStandardActive = ( m_dActiveSpeed == m_StandardActiveSpeeds[i] ); bool isStandardPassive = false; for ( int i = 0; !isStandardPassive && i < m_StandardPassiveSpeeds.Length; ++i ) isStandardPassive = ( m_dPassiveSpeed == m_StandardPassiveSpeeds[i] ); if ( isStandardActive && m_dCurrentSpeed == m_dActiveSpeed ) m_dCurrentSpeed = activeSpeed; else if ( isStandardPassive && m_dCurrentSpeed == m_dPassiveSpeed ) m_dCurrentSpeed = passiveSpeed; if ( isStandardActive && !m_Paragon ) m_dActiveSpeed = activeSpeed; if ( isStandardPassive && !m_Paragon ) m_dPassiveSpeed = passiveSpeed; if ( version >= 14 ) { m_RemoveIfUntamed = reader.ReadBool(); m_RemoveStep = reader.ReadInt(); } TimeSpan deleteTime = TimeSpan.Zero; if ( version >= 17 ) deleteTime = reader.ReadTimeSpan(); if ( deleteTime > TimeSpan.Zero || LastOwner != null && !Controlled && !IsStabled ) { if ( deleteTime == TimeSpan.Zero ) deleteTime = TimeSpan.FromDays( 3.0 ); m_DeleteTimer = new DeleteTimer( this, deleteTime ); m_DeleteTimer.Start(); } if( version <= 14 && m_Paragon && Hue == 0x31 ) { Hue = Paragon.Hue; //Paragon hue fixed, should now be 0x501. } CheckStatTimers(); ChangeAIType(m_CurrentAI); AddFollowers(); if ( IsAnimatedDead ) Spells.Necromancy.AnimateDeadSpell.Register( m_SummonMaster, this ); }
public override void Deserialize( GenericReader reader ) { base.Deserialize(reader); int version = reader.ReadInt(); switch( version ) { case 2: { alignment = (Alignment)reader.ReadInt(); goto case 1; } case 1: { TimeSpan deleteTime = TimeSpan.Zero; if( version >= 1 ) deleteTime = reader.ReadTimeSpan(); if( deleteTime > TimeSpan.Zero || LastOwner != null && !Controlled && !IsStabled ) { if( deleteTime <= TimeSpan.Zero || deleteTime > TimeSpan.FromDays(3.0) ) deleteTime = TimeSpan.FromDays(3.0); m_DeleteTimer = new DeleteTimer(this, deleteTime); m_DeleteTimer.Start(); } goto case 0; } case 0: { m_CurrentAI = (AIType)reader.ReadInt(); m_DefaultAI = (AIType)reader.ReadInt(); m_iRangePerception = reader.ReadInt(); m_iRangeFight = reader.ReadInt(); m_iRangeHome = reader.ReadInt(); m_iTeam = reader.ReadInt(); m_dActiveSpeed = reader.ReadDouble(); m_dPassiveSpeed = reader.ReadDouble(); m_dCurrentSpeed = reader.ReadDouble(); if( m_iRangePerception == OldRangePerception ) m_iRangePerception = DefaultRangePerception; m_pHome.X = reader.ReadInt(); m_pHome.Y = reader.ReadInt(); m_pHome.Z = reader.ReadInt(); int i, iCount; iCount = reader.ReadInt(); for( i = 0; i < iCount; i++ ) { string str = reader.ReadString(); Type type = Type.GetType(str); if( type != null ) { m_arSpellAttack.Add(type); } } iCount = reader.ReadInt(); for( i = 0; i < iCount; i++ ) { string str = reader.ReadString(); Type type = Type.GetType(str); if( type != null ) { m_arSpellDefense.Add(type); } } m_FightMode = (FightMode)reader.ReadInt(); m_bControlled = reader.ReadBool(); m_ControlMaster = reader.ReadMobile(); m_ControlTarget = reader.ReadMobile(); m_ControlDest = reader.ReadPoint3D(); m_ControlOrder = (OrderType)reader.ReadInt(); m_dMinTameSkill = reader.ReadDouble(); m_bTamable = reader.ReadBool(); m_bSummoned = reader.ReadBool(); if( m_bSummoned ) { m_SummonEnd = reader.ReadDeltaTime(); new UnsummonTimer(m_ControlMaster, this, m_SummonEnd - DateTime.Now).Start(); } m_iControlSlots = reader.ReadInt(); m_Loyalty = reader.ReadInt(); m_CurrentWayPoint = reader.ReadItem() as WayPoint; m_SummonMaster = reader.ReadMobile(); m_HitsMax = reader.ReadInt(); m_StamMax = reader.ReadInt(); m_ManaMax = reader.ReadInt(); m_DamageMin = reader.ReadInt(); m_DamageMax = reader.ReadInt(); m_PhysicalResistance = reader.ReadInt(); m_PhysicalDamage = reader.ReadInt(); m_FireResistance = reader.ReadInt(); m_FireDamage = reader.ReadInt(); m_ColdResistance = reader.ReadInt(); m_ColdDamage = reader.ReadInt(); m_PoisonResistance = reader.ReadInt(); m_PoisonDamage = reader.ReadInt(); m_EnergyResistance = reader.ReadInt(); m_EnergyDamage = reader.ReadInt(); m_Owners = reader.ReadStrongMobileList(); m_IsDeadPet = reader.ReadBool(); m_IsBonded = reader.ReadBool(); m_BondingBegin = reader.ReadDateTime(); m_OwnerAbandonTime = reader.ReadDateTime(); m_HasGeneratedLoot = reader.ReadBool(); bool hasFriends = reader.ReadBool(); if( hasFriends ) m_Friends = reader.ReadStrongMobileList(); else m_Friends = new List<Mobile>(); m_RemoveIfUntamed = reader.ReadBool(); m_RemoveStep = reader.ReadInt(); _spawner = reader.ReadItem(); _spawnerHome = reader.ReadPoint3D(); break; } } double activeSpeed = m_dActiveSpeed; double passiveSpeed = m_dPassiveSpeed; SpeedInfo.GetSpeeds(this, ref activeSpeed, ref passiveSpeed); bool isStandardActive = false; for( int i = 0; !isStandardActive && i < m_StandardActiveSpeeds.Length; ++i ) isStandardActive = (m_dActiveSpeed == m_StandardActiveSpeeds[i]); bool isStandardPassive = false; for( int i = 0; !isStandardPassive && i < m_StandardPassiveSpeeds.Length; ++i ) isStandardPassive = (m_dPassiveSpeed == m_StandardPassiveSpeeds[i]); if( isStandardActive && m_dCurrentSpeed == m_dActiveSpeed ) m_dCurrentSpeed = activeSpeed; else if( isStandardPassive && m_dCurrentSpeed == m_dPassiveSpeed ) m_dCurrentSpeed = passiveSpeed; if( isStandardActive ) m_dActiveSpeed = activeSpeed; if( isStandardPassive ) m_dPassiveSpeed = passiveSpeed; if( Core.AOS && NameHue == 0x35 ) NameHue = -1; CheckStatTimers(); ChangeAIType(m_CurrentAI); AddFollowers(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); ScoreModifier = 1.0; switch (version) { case 3: { ScoringType = (Scoring) reader.ReadInt(); ScoreModifier = reader.ReadDouble(); goto case 2; } case 2: { m_EventSupplier = reader.ReadItem<EventSupplier>(); m_UseSphereRules = reader.ReadBool(); m_GiveHorses = reader.ReadBool(); goto case 1; } case 1: { m_MatchMin = reader.ReadInt(); m_LeaveLocation = reader.ReadPoint3D(); m_LeaveMap = reader.ReadMap(); goto case 0; } case 0: { Started = reader.ReadBool(); m_Active = reader.ReadBool(); m_AcceptingContestants = reader.ReadBool(); m_DMSpawnPoints = reader.ReadStrongItemList<DMSpawnPoint>(); #region Verify loaded spawn points List<DMSpawnPoint> removalList = new List<DMSpawnPoint>(); foreach (DMSpawnPoint dmSpawnPoint in m_DMSpawnPoints) if (dmSpawnPoint.StoneLink != this) removalList.Add(dmSpawnPoint); foreach (DMSpawnPoint dmSpawnPoint in removalList) m_DMSpawnPoints.Remove(dmSpawnPoint); #endregion m_MountCollection = ReadMountCollection(reader); break; } } m_Started = false; AcceptingContestants = false; Active = false; }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Active = reader.ReadBool(); m_TeleDest = reader.ReadItem() as SHTeleComponent; m_TeleOffset = reader.ReadPoint3D(); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); m_Target = reader.ReadPoint3D(); m_TargetMap = reader.ReadMap(); if ( version >= 1 ) m_bDispellable = reader.ReadBool(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); this.m_Addon = reader.ReadItem() as BaseAddonContainer; this.m_Offset = reader.ReadPoint3D(); if (this.m_Addon != null) this.m_Addon.OnComponentLoaded(this); AddonComponent.ApplyLightTo(this); }
public virtual void Deserialize(GenericReader reader) { int version = reader.GetVersion(); if (version > 4) { reader.ReadBlock( () => { if (version > 5) { Serial = new PvPSerial(reader); } else { Serial = reader.ReadTypeCreate <PvPSerial>(reader) ?? new PvPSerial(reader); Serial = new PvPSerial(); } }); } else { Serial = new PvPSerial(); } switch (version) { case 6: case 5: case 4: case 3: RespawnOnStart = reader.ReadBool(); goto case 2; case 2: KickOnDeath = reader.ReadBool(); goto case 1; case 1: { GateLocation = new MapPoint(reader); Gate = reader.ReadItem <PvPTeamGate>(); } goto case 0; case 0: { Name = reader.ReadString(); MinCapacity = reader.ReadInt(); MaxCapacity = reader.ReadInt(); Color = reader.ReadInt(); HomeBase = reader.ReadPoint3D(); SpawnPoint = reader.ReadPoint3D(); RespawnOnDeath = reader.ReadBool(); RespawnDelay = reader.ReadTimeSpan(); reader.ReadBlock(() => Statistics = reader.ReadTypeCreate <PvPTeamStatistics>(this) ?? new PvPTeamStatistics(this)); } break; } if (version < 4) { RespawnOnStart = true; } if (version < 1) { GateLocation = MapPoint.Empty; } if (Gate != null) { Gate.Team = this; } if (Battle == null) { Delete(); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); this.m_MobFactionArea = new Rectangle3D[0]; switch (version) { case 1: { this.m_EjectLocation = reader.ReadPoint3D(); string ejectmap = reader.ReadString(); try { this.m_EjectMap = Map.Parse(ejectmap); } catch { } string factiontype = reader.ReadString(); try { this.m_FactionType = (XmlMobFactions.GroupTypes)Enum.Parse(typeof(XmlMobFactions.GroupTypes), factiontype); } catch { } this.m_FactionLevel = reader.ReadInt(); goto case 0; } case 0: { this.m_Music = (MusicName)reader.ReadInt(); this.m_MobFactionPriority = reader.ReadInt(); if (version < 1) { // old region area reader.ReadRect2D(); } this.m_MobFactionRegionName = reader.ReadString(); string mapname = reader.ReadString(); try { this.m_MobFactionMap = Map.Parse(mapname); } catch { } this.m_CopiedRegion = reader.ReadString(); // do the coord list int count = reader.ReadInt(); if (count > 0) { // the old version used 2D rectangles for the region area. The new version uses 3D if (version < 1) { Rectangle2D[] area = new Rectangle2D[count]; for (int i = 0; i < count; i++) { area[i] = reader.ReadRect2D(); } this.m_MobFactionArea = Region.ConvertTo3D(area); } else { this.m_MobFactionArea = new Rectangle3D[count]; for (int i = 0; i < count; i++) { this.m_MobFactionArea[i] = new Rectangle3D(reader.ReadPoint3D(), reader.ReadPoint3D()); } } } break; } } // refresh the region Timer.DelayCall(TimeSpan.Zero, new TimerCallback(RefreshRegions)); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 29: { m_GauntletPoints = reader.ReadDouble(); m_SSNextSeed = reader.ReadDateTime(); m_SSSeedExpire = reader.ReadDateTime(); m_SSSeedLocation = reader.ReadPoint3D(); m_SSSeedMap = reader.ReadMap(); m_LevelExp = reader.ReadLong(); m_Exp = reader.ReadLong(); m_Level = reader.ReadInt(); m_ExpTitle = reader.ReadString(); m_VASTotalMonsterFame = reader.ReadInt(); m_Quests = QuestReader.Quests(reader, this); m_Chains = QuestReader.Chains(reader); m_Collections = new Dictionary<Collection, int>(); m_CollectionTitles = new List<object>(); for (int i = reader.ReadInt(); i > 0; i--) { m_Collections.Add((Collection)reader.ReadInt(), reader.ReadInt()); } for (int i = reader.ReadInt(); i > 0; i--) { m_CollectionTitles.Add(QuestReader.Object(reader)); } m_SelectedTitle = reader.ReadInt(); goto case 28; } case 28: { m_PeacedUntil = reader.ReadDateTime(); goto case 27; } case 27: { m_AnkhNextUse = reader.ReadDateTime(); goto case 26; } case 26: { m_AutoStabled = reader.ReadStrongMobileList(); goto case 25; } case 25: { int recipeCount = reader.ReadInt(); if (recipeCount > 0) { m_AcquiredRecipes = new Dictionary<int, bool>(); for (int i = 0; i < recipeCount; i++) { int r = reader.ReadInt(); if (reader.ReadBool()) //Don't add in recipies which we haven't gotten or have been removed { m_AcquiredRecipes.Add(r, true); } } } goto case 24; } case 24: { m_LastHonorLoss = reader.ReadDeltaTime(); goto case 23; } case 23: { m_ChampionTitles = new ChampionTitleInfo(reader); goto case 22; } case 22: { m_LastValorLoss = reader.ReadDateTime(); goto case 21; } case 21: { m_ToTItemsTurnedIn = reader.ReadEncodedInt(); m_ToTTotalMonsterFame = reader.ReadInt(); goto case 20; } case 20: { m_AllianceMessageHue = reader.ReadEncodedInt(); m_GuildMessageHue = reader.ReadEncodedInt(); goto case 19; } case 19: { int rank = reader.ReadEncodedInt(); int maxRank = RankDefinition.Ranks.Length - 1; if (rank > maxRank) { rank = maxRank; } m_GuildRank = RankDefinition.Ranks[rank]; m_LastOnline = reader.ReadDateTime(); goto case 18; } case 18: { m_SolenFriendship = (SolenFriendship)reader.ReadEncodedInt(); goto case 17; } case 17: // changed how DoneQuests is serialized case 16: { m_Quest = QuestSerializer.DeserializeQuest(reader); if (m_Quest != null) { m_Quest.From = this; } int count = reader.ReadEncodedInt(); if (count > 0) { m_DoneQuests = new List<QuestRestartInfo>(); for (int i = 0; i < count; ++i) { Type questType = QuestSerializer.ReadType(QuestSystem.QuestTypes, reader); DateTime restartTime; if (version < 17) { restartTime = DateTime.MaxValue; } else { restartTime = reader.ReadDateTime(); } m_DoneQuests.Add(new QuestRestartInfo(questType, restartTime)); } } m_Profession = reader.ReadEncodedInt(); goto case 15; } case 15: { m_LastCompassionLoss = reader.ReadDeltaTime(); goto case 14; } case 14: { m_CompassionGains = reader.ReadEncodedInt(); if (m_CompassionGains > 0) { m_NextCompassionDay = reader.ReadDeltaTime(); } goto case 13; } case 13: // just removed m_PayedInsurance list case 12: { m_BOBFilter = new BOBFilter(reader); goto case 11; } case 11: { if (version < 13) { var payed = reader.ReadStrongItemList(); for (int i = 0; i < payed.Count; ++i) { payed[i].PayedInsurance = true; } } goto case 10; } case 10: { if (reader.ReadBool()) { m_HairModID = reader.ReadInt(); m_HairModHue = reader.ReadInt(); m_BeardModID = reader.ReadInt(); m_BeardModHue = reader.ReadInt(); } goto case 9; } case 9: { SavagePaintExpiration = reader.ReadTimeSpan(); if (SavagePaintExpiration > TimeSpan.Zero) { BodyMod = (Female ? 184 : 183); HueMod = 0; } goto case 8; } case 8: { m_NpcGuild = (NpcGuild)reader.ReadInt(); m_NpcGuildJoinTime = reader.ReadDateTime(); m_NpcGuildGameTime = reader.ReadTimeSpan(); goto case 7; } case 7: { m_PermaFlags = reader.ReadStrongMobileList(); goto case 6; } case 6: { NextTailorBulkOrder = reader.ReadTimeSpan(); goto case 5; } case 5: { NextSmithBulkOrder = reader.ReadTimeSpan(); goto case 4; } case 4: { m_LastJusticeLoss = reader.ReadDeltaTime(); m_JusticeProtectors = reader.ReadStrongMobileList(); goto case 3; } case 3: { m_LastSacrificeGain = reader.ReadDeltaTime(); m_LastSacrificeLoss = reader.ReadDeltaTime(); m_AvailableResurrects = reader.ReadInt(); goto case 2; } case 2: { m_Flags = (PlayerFlag)reader.ReadInt(); goto case 1; } case 1: { m_LongTermElapse = reader.ReadTimeSpan(); m_ShortTermElapse = reader.ReadTimeSpan(); m_GameTime = reader.ReadTimeSpan(); goto case 0; } case 0: { if (version < 26) { m_AutoStabled = new List<Mobile>(); } break; } } if (version < 29) { m_SSNextSeed = m_SSSeedExpire = DateTime.UtcNow; m_SSSeedLocation = Point3D.Zero; } if (m_RecentlyReported == null) { m_RecentlyReported = new List<Mobile>(); } #region QueensLoyaltySystem if (version < 29) { m_LevelExp = 2000; m_Exp = 0; m_Level = 0; m_ExpTitle = "Friend of TerMur"; } #endregion #region Mondain's Legacy if (m_Quests == null) { m_Quests = new List<BaseQuest>(); } if (m_Chains == null) { m_Chains = new Dictionary<QuestChain, BaseChain>(); } if (m_DoneQuests == null) { m_DoneQuests = new List<QuestRestartInfo>(); } if (m_Collections == null) { m_Collections = new Dictionary<Collection, int>(); } if (m_CollectionTitles == null) { m_CollectionTitles = new List<object>(); } #endregion // Professions weren't verified on 1.0 RC0 if (!CharacterCreation.VerifyProfession(m_Profession)) { m_Profession = 0; } if (m_PermaFlags == null) { m_PermaFlags = new List<Mobile>(); } if (m_JusticeProtectors == null) { m_JusticeProtectors = new List<Mobile>(); } if (m_BOBFilter == null) { m_BOBFilter = new BOBFilter(); } if (m_GuildRank == null) { m_GuildRank = RankDefinition.Member; //Default to member if going from older version to new version (only time it should be null) } if (m_LastOnline == DateTime.MinValue && Account != null) { m_LastOnline = ((Account)Account).LastLogin; } if (m_ChampionTitles == null) { m_ChampionTitles = new ChampionTitleInfo(); } var list = Stabled; for (int i = 0; i < list.Count; ++i) { BaseCreature bc = list[i] as BaseCreature; if (bc != null) { bc.IsStabled = true; bc.StabledBy = this; } } CheckAtrophies(this); if (Hidden) //Hiding is the only buff where it has an effect that's serialized. { AddBuff(new BuffInfo(BuffIcon.HidingAndOrStealth, 1075655)); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch(version) { case 8: { this.m_StartingLoc = reader.ReadPoint3D(); try { this.m_StartingMap = Map.Parse(reader.ReadString()); } catch { } goto case 7; } case 7: { string langstr = reader.ReadString(); try { this.m_CurrentLanguage = (LanguageType)Enum.Parse(typeof(LanguageType), langstr); } catch { } goto case 6; } case 6: { this.m_ChallengeGame = (BaseChallengeGame)reader.ReadItem(); this.m_ChallengeSetup = (BaseChallengeGame)reader.ReadItem(); goto case 5; } case 5: { TimeSpan remaining = reader.ReadTimeSpan(); if (remaining > TimeSpan.Zero) { this.DoTimer(remaining); } goto case 4; } case 4: { this.m_ReceiveBroadcasts = reader.ReadBool(); goto case 3; } case 3: { this.m_Rank = reader.ReadInt(); this.m_DeltaRank = reader.ReadInt(); this.m_WhenRanked = reader.ReadDateTime(); this.m_LastDecay = reader.ReadDateTime(); goto case 2; } case 2: { this.m_Credits = reader.ReadInt(); goto case 1; } case 1: { this.m_Broadcast = reader.ReadBool(); goto case 0; } case 0: { this.m_Points = reader.ReadInt(); this.m_Kills = reader.ReadInt(); this.m_Deaths = reader.ReadInt(); this.m_Challenger = reader.ReadMobile(); this.m_LastKill = reader.ReadDateTime(); this.m_LastDeath = reader.ReadDateTime(); // read in the kill list int count = reader.ReadInt(); this.KillList = new ArrayList(); for (int i = 0; i < count; i++) { Mobile m = reader.ReadMobile(); DateTime t = reader.ReadDateTime(); if (m != null && !m.Deleted) { this.KillList.Add(new KillEntry(m,t)); } } // get the owner of this in order to rebuild the rankings Mobile killer = reader.ReadMobile(); // rebuild the ranking list // if they have never made a kill, then dont rank if (killer != null && this.m_Kills > 0) { UpdateRanking(killer, this); } break; } } }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { int count = reader.ReadEncodedInt(); m_Entries = new ArrayList( count ); for ( int i = 0; i < count; ++i ) { Mobile mob = reader.ReadMobile(); Point3D loc = reader.ReadPoint3D(); Map map = reader.ReadMap(); m_Entries.Add( new ReturnEntry( mob, loc, map ) ); } break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: { int count = reader.ReadInt(); if (count > 0) { m_Entries = new List<MapTravelEntry>(); for (int i = 0; i < count; i++) { try { m_Entries.Add(new MapTravelEntry(reader.ReadInt(), reader.ReadInt(), reader.ReadString(), reader.ReadPoint3D(), reader.ReadMap(), reader.ReadInt(), reader.ReadInt(), reader.ReadInt(), reader.ReadInt(), reader.ReadBool(), reader.ReadBool())); } catch { } } if (m_Entries.Count != count) { Console.WriteLine("There was an error reading the Map Travel Entries for a Travel Map."); } } else { m_Entries = GetDefaultEntries(); } break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 12: { if (reader.ReadBool()) { m_RestoreEquip = reader.ReadStrongItemList(); } goto case 11; } case 11: { // Version 11, we move all bools to a CorpseFlag m_Flags = (CorpseFlag)reader.ReadInt(); m_TimeOfDeath = reader.ReadDeltaTime(); int count = reader.ReadInt(); for (int i = 0; i < count; ++i) { Item item = reader.ReadItem(); if (reader.ReadBool()) { SetRestoreInfo(item, reader.ReadPoint3D()); } else if (item != null) { SetRestoreInfo(item, item.Location); } } if (reader.ReadBool()) { BeginDecay(reader.ReadDeltaTime() - DateTime.UtcNow); } m_Looters = reader.ReadStrongMobileList(); m_Killer = reader.ReadMobile(); m_Aggressors = reader.ReadStrongMobileList(); m_Owner = reader.ReadMobile(); m_CorpseName = reader.ReadString(); m_AccessLevel = (AccessLevel)reader.ReadInt(); reader.ReadInt(); // guild reserve m_Kills = reader.ReadInt(); m_EquipItems = reader.ReadStrongItemList(); break; } case 10: { m_TimeOfDeath = reader.ReadDeltaTime(); goto case 9; } case 9: { int count = reader.ReadInt(); for (int i = 0; i < count; ++i) { Item item = reader.ReadItem(); if (reader.ReadBool()) { SetRestoreInfo(item, reader.ReadPoint3D()); } else if (item != null) { SetRestoreInfo(item, item.Location); } } goto case 8; } case 8: { SetFlag(CorpseFlag.VisitedByTaxidermist, reader.ReadBool()); goto case 7; } case 7: { if (reader.ReadBool()) { BeginDecay(reader.ReadDeltaTime() - DateTime.UtcNow); } goto case 6; } case 6: { m_Looters = reader.ReadStrongMobileList(); m_Killer = reader.ReadMobile(); goto case 5; } case 5: { SetFlag(CorpseFlag.Carved, reader.ReadBool()); goto case 4; } case 4: { m_Aggressors = reader.ReadStrongMobileList(); goto case 3; } case 3: { m_Owner = reader.ReadMobile(); goto case 2; } case 2: { SetFlag(CorpseFlag.NoBones, reader.ReadBool()); goto case 1; } case 1: { m_CorpseName = reader.ReadString(); goto case 0; } case 0: { if (version < 10) { m_TimeOfDeath = DateTime.UtcNow; } if (version < 7) { BeginDecay(m_DefaultDecayTime); } if (version < 6) { m_Looters = new List <Mobile>(); } if (version < 4) { m_Aggressors = new List <Mobile>(); } m_AccessLevel = (AccessLevel)reader.ReadInt(); reader.ReadInt(); // guild reserve m_Kills = reader.ReadInt(); SetFlag(CorpseFlag.Criminal, reader.ReadBool()); m_EquipItems = reader.ReadStrongItemList(); break; } } }